什么是冷启动?
在之前有关推荐系统的博文中,都是基于用户行为数据集,用户物品的数据集等已经累积的大量用户数据中进行算法推荐,形成个性化推荐系统。这些数据集的获取对于一些热门的网站或者app来说也许不是个担心的问题,但是对于一些全新上线的网站等开始阶段的平台来说,如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动的问题。
冷启动问题的类型
主要分为三大类,用户冷启动,物品冷启动和系统冷启动。其实前两者并不能想到,因为冷启动问题说白了就是系统没有用户和物品的数据获得根据做算法推荐分析,所以用户冷启动和物品冷启动是必然考虑。
下面稍微的介绍一下者三大类:
- 用户冷启动 主要解决如何给新用户做个性化推荐的问题。对于新用户,我们没有他的行为数据,所以也无法根据他的历史行为预测其兴趣给他做个性化推荐。
- 物品冷启动 主要解决如何将新的物品推荐给可能对它感兴趣的用户。也可以看成是基于用户冷启动的基础上做的物品冷启动。
- 系统冷启动 主要解决如何在一个新开发的网站上(如上文说的,还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统。
之前接触过一些平台类似的解决这些冷启动的方式,大概是这样的,在一个IT资源平台寻找学习课程的时候,平台有一个问题弹框,先让你选择哪个专业学习,然后随机给你做一些题目,最后给你推荐课程。下面截取了“慕课网-程序员的梦工厂”的1分钟获得个性化免费课程推荐的功能。
截取自慕课网网站,图中相关内容的著作权归原著作权人所有
图1 选择就业方向
截取自慕课网网站,图中相关内容的著作权归原著作权人所有
图2 选择能力水平
截取自慕课网网站,图中相关内容的著作权归原著作权人所有
图3 题目测试
通过对你的职业方向,能力水平给你分配相应的题目测试,最后根据你的测试结果对你进行个性化推荐课程。
以此案例介绍冷启动问题的解决方案
对于这以上3种不同的冷启动问题,官方给予的解决方案有很多,我就选几个目前较为热门的解决方案做介绍。但其中大部分可以归为是基于“提供非个性化的推荐”的这一种解决方案,一般思路是这样,先给用户推荐热门排行榜,然后等到用户数据收集到一定的时候,再切换为个性化推荐。
- 利用用户注册信息
- 获取用户的注册信息;
- 根据用户的注册信息对用户分类;
- 给用户推荐他所属分类中用户喜欢的物品。
简单举个例子如下:
图4: 一个基于用户特征推荐的简单例子
- 选择合适的物品启动用户的兴趣
- 给用户提供一些物品;
- 让用户反馈他们对这些物品的兴趣;
- 根据用户反馈给提供个性化推荐。
这里需要注意一点:给用户提供的物品方式必须符合数据集需要(比较热门、具有代表性和区分性、启动物品集合需要有多样性),比如你给用户提供的是冷门或者没有区分度的物品,这样的数据集对于个性化推荐的设计不利。
- 利用物品的内容信息
- 对文本进行分词,将字流变成词流;
- 从词流中检测出命名实体(如人名、地名、组织名等);
- 把实体和一些其他重要的词将组成关键词集合;
- 对关键词进行排名,计算每个关键词的权重;
- 生成关键词向量,根据关键词个性推荐。