文章目录
3 冷启动
3.1 利用用户注册信息
3.2 利用物品的内容信息
3 冷启动
冷启动问题主要分为3类:
用户冷启动:解决为新用户做个性化推荐的问题
物品冷启动:解决将新物品推荐给可能对它感兴趣的用户这一问题
系统冷启动:解决在新开发的网站上,没有用户,也没有用户行为,只有一些物品信息的推荐问题
这里主要分享两个算法,一个是利用用户的注册信息进行冷启动,一个是利用物品本身信息进行冷启动。
3.1 利用用户注册信息
这里主要利用用户注册时填写的人口统计学信息,如年龄、性别、职业、民族、学历和居住地等,来进行推荐。其基本流程如下:
获取用户的注册信息
根据注册信息对用户进行分类
给用户推荐他所属那个分类中用户喜欢的物品
其中核心问题是计算每种分类(特征)的用户喜欢的物品,即对于每种类别(特征)f
f,计算具有这种特征的用户对各个物品的喜好程度p(f,i)
p(f,i)。
令N(i)
N(i)为喜欢物品i的用户集合,U(f)U(f)是具有特征f
f的用户集合。计算方式有如下两种:
a. 物品i在具有f
f的特征的用户中的热门程度
p(f,i)=∣N(i)⋂U(f)∣
p(f,i)=∣N(i)⋂U(f)∣
b. 喜欢物品i的用户中具有特征f
f的比例
p(f,i)=N(i)⋂U(f)∣N(i)∣+α
p(f,i)=∣N(i)∣+αN(i)⋂U(f)
α
α是为了解决数据稀疏的问题,比如有一个物品只被1个用户喜欢过,而这个用户刚好就有特征ff,那么就有p(f,i)=1
p(f,i)=1。但是,这种情况并没有统计意义,因此为分母加上一个比较大的数,可以避免这样的物品产生比较大的权重。
3.2 利用物品的内容信息
一般物品都有自己的内容信息,比如有一些文本等信息,这时候可以用NLP的知识将物品内容表示成向量空间模型,即表示为一个关键词向量。其流程如下图:
例如对于物品d,它的内容表示为关键词向量如下:其中ei
ei是关键词,wi
wi是关键词对应的权重。
di=(e1,w1),(e2,w2),...
di=(e1,w1),(e2,w2),...
对于关键词权重的计算可以使用著名的TF-IDF公式:
wi=TF(ei)logDF(ei)
wi=logDF(ei)TF(ei)
在给定物品内容的关键词向量之后,对于物品相似度的计算就可以通过余弦相似度进行计算:
wij=<di,dj>∣∣di∣∣∣∣dj∣∣√
wij=∣∣di∣∣∣∣dj∣∣
<di,dj>
同样的,与前面的协同过滤算法类似,可以建立关键词-物品的倒排表加速计算过程。
在得到物品之间的相似度之后,就可以用前面的ItemCF进行推荐了。