推荐算法——隐语义模型

LFM(latent factor model) 

通过隐含特征联系用户兴趣和物品。 

计算用户u对物品i的兴趣: 

preference(u,i)=rui=pTuqi=∑f=1Fpu,kqi,k

其中pu,k度量了用户u的兴趣和隐类k之间的关系,qi,k度量了隐类k和物品I之间的关系。

如何计算两个参数?需要训练集,对每个用户u,训练集包含用户u喜欢的和不感兴趣的物品,通过学习这个数据集,得到模型参数。我们知道推荐系统中用户的行为分为显性反馈和隐性反馈,LFM在显性反馈(评分数据)上解决评分预测可以有很好的精度,但是对于隐性反馈(只有喜欢什么,没有不喜欢什么),在隐性反馈中需要为用户生成负样本,Rong Pan 在其文章中对负样本的生成做了讨论:

1、对于一个用户,他没有过行为的物品作为负样本

2、从他没有行为的物品均匀采样出一些物品作为负样本

3、从没有行为的物品中采样,但是采样时保证用户的正负样本数目相当

4、从没有行为的物品中采样,偏重不热门的物品。 

Rong Pan 在论文中提出1负样本太多,计算复杂度高且精度差,3好于2,2好于4。

后来在11年的KDD Cup 推荐系统比赛中,发现应该遵循如下原则:

1、每个用户保证正负样本的均衡

2、采样负样本时选取很热门但是用户没有行为的物品

当采样出负样本之后,得到用户-物品集K={(u,i)},正样本r=1,负样本r=0. 

损失函数为: 

C=∑(u,i)∈K(rui−r^ui)2=∑(u,i)∈K(rui−∑k=1Kpu,kqi,k)2+λ||pu||2+λ||qi||2

其中λ||pu||2+λ||qi||2是防止过拟合的正则化项。利用诸如随记梯度下降法等算法优化损失。 

基于LFM实际系统的例子 

雅虎的研究人员公布过一个使用LFM进行首页个性化设计的方案方案连接 

雅虎以CTR(点击通过率)作为优化的目标,利用LFM预测用户是否会点击一个连接。但是LFM难以实现实时的推荐,经典的LFM每次扫描所有的用户,计算隐向量pu, 耗时,冷启动问题非常明显,雅虎的技术人员提出了一个解决方案,利用新闻链接的内容属性(关键词,类别等)得到链接i的内容特征向量yi, 实时收集用户对链接的行为,利用这些数据得到链接i的隐特征qi,利用如下公式判断用户u是否会点击链接i 

rui=xTu.yi+pTu.qi

yi是根据链接内容直接生成,xu是根据历史记录获得的,每天计算一次即可。pu、qi是利用用户近几个小时的行为训练LFM获得的。


转载自:http://blog.csdn.net/u011060119/article/details/75632533

你可能感兴趣的:(推荐算法——隐语义模型)