1. 用户冷启动(以下A和B和E)
2. 物品冷启动(以下C和D)
3. 系统冷启动(没有任何用户行为的前提下;以下D)
A. 根据用户注册信息
1. 人口统计学信息;2. 用户兴趣标签;3.社交账号获取用户的好友关系和朋友圈微博等历史行为;
人口统计学信息,包括:年龄、性别、工作、学历、居住地、国籍、民族...
多个排名表Merge:年龄-->物品,性别-->物品,国籍-->物品,... 新用户来了以后,先把他填了的注册信息,每一项得到该项对应的物品排名表(连续特征需要预先分桶),对多个特征对应的物品排名表进行加权相加,得到总物品排名表;
物品i对于特征A=j人群的分值,= (喜欢物品i AND 具有特征A=j 的人数) / 喜欢物品i的人数
B. 让用户对物品进行打分或"喜欢/不喜欢/不知道"选择;
物品的选择:
1. 热门:用户都不知道这个东西,那还打什么分;
2. 有区分性:老少皆宜的就不适合,问了等于没问;
3. 多样性:要覆盖所有主流兴趣;例如让用户去挑选喜欢的电影类型,而不是让用户挑选喜欢的电影;
决策树物品启动系统:先规定一批物品,让所有用户对这批物品打分;决策树当前节点还剩m个用户,n个物品,则枚举这n个物品,计算每个物品对剩下这m个用户的区分度,挑选最大区分度的进行分裂(用户被分成<喜欢,不喜欢,不知道>这3个分支上去);区分度 = 喜欢该物品的用户方差 + 不喜欢该物品的用户方差 + 不知道该物品的用户方差; 喜欢该物品的用户方差=喜欢该物品的用户对其他物品评分的方差;新用户来了以后顺着决策树从上到下直到分到叶子节点,叶子节点即他所属的用户小群体,按这个小群体的画像给他推荐即可;
C. 基于内容
UserCF比ItemCF在物品的冷启动上表现更好;(因为ItemCF新上物品后需要更新物品-物品相似度矩阵)
每个物品得到特征向量,用cosine距离计算两个特征向量之间的距离;对于文本内容,可以用VSM模型、TF-IDF;
如果特征特别强,基于物品内容相似度的KNN效果会好于ItemCF;
短文本,用TF-IDF可能两个物品之间没有任何共同的关键词,效果太差;此时可以用效果不是太差的LDA,把物品转成主题分布,再用KL散度求相似度(用cosine距离可以吗?);(把用户看成文章,把用户的特征们看成单词们,用LDA得到每个用户的主题向量;同理物品也是!Hulu用的也是这个方法,对付冷启动!)
D. 专家标注
Pandora用音乐家来对歌曲进行特征标注(400维特征);
Jinni除了让专家对电影进行标注,还用机器学习自动补全特征,特别是新电影(根据电影的评论和其他内容属性)
E. 利用用户社交账号登陆,得到朋友圈内容和好友信息