隐语义模型:LFM

一、协同过滤推荐算法

协同过滤算法是指基于用户行为数据设计的推荐算法,主要包括:

  • 1.基于邻域的算法:UserCF(基于用户的协同过滤算法)、ItemCF(基于物品的协同过滤算法)
  • 2.隐语义模型:LFM
  • 3.基于图的随机游走算法:PersonalRank

本文主要介绍隐语义模型LFM

二、隐语义模型:LFM

可以通过对用户的兴趣和物品进行分类实现推荐。在给用户推荐物品时,首先得到用户的兴趣分类,接着找出属于这些类别的物品推荐给用户。这种基于兴趣分类的的推荐方法需要解决以下3个问题:

  • 1.如何给物品分类
  • 2.如何确定用户对那些类别感兴趣,以及感兴趣的程度
  • 3.对于一个给定的类别,选择那些属于这个类别的物品推荐给用户,以及如何确定这些物品在一个类中的权重

对于第一个问题的简单解决方法是人工的给物品进行分类,然而,人工给物品分类存在以下缺点:

  • 1.分类人员的意见不能代表各种用户的意见
  • 2.分类人员很难控制分类的粒度:例如对于《推荐系统实践》在粗粒度上属于计算机技术,但在细粒度上属于人工智能推荐系统,对不同的用户可能需要不同的粒度。
  • 3.分类人员很难给一个物品多个分类
  • 4.分类人员很难给出多维度的分类:分类是有很多维度的,例如书籍可以根据作者、出版社、内容等进行分类,不同人选择书籍的原因可能不同,有些人根据作者选择书,有些人根据书的内容选择书。
  • 5.分类人员很难决定一个物品在某一类别中的权重

为了解决上面问题,LFM从数据出发,采用基于用户行为统计的自动聚类,自动的找到那些类,然后进行个性化推荐。LFM的核心是通过隐含特征联系用户兴趣和物品。

在这里插入图片描述LFM将用户物品矩阵Rm×n R_{m \times n}Rm×n
​    
 分解为用户兴趣矩阵Pm×k P_{m \times k }P 
m×k
​    
 和物品类别矩阵Qk×n Q_{ k\times n}Q 
k×n
​    
 的乘积:
Rm×n≈Pm×kQk×n=Rˆm×n R_{m\times n} \approx P_{m \times k} Q_{k \times n}=\hat{R}_{m\times n}R 
m×n
​    
 ≈P 
m×k
​    
 Q 
k×n
​    
 = 
R
^
  
m×n
​    
 
通过下面公式计算用户 u 对物品 i 的兴趣:
Preference(u,i)=Rˆu,i=PuQi=∑kf=1Pu,fQf,i Preference(u,i)=\hat{R}_{u,i}=P_{u} Q_{i}=\sum_{f=1}^{k}{P_{u,f} Q_{f,i}}Preference(u,i)= 
R
^
  
u,i
​    
 =P 
u
​    
 Q 
i
​    
 =∑ 
f=1
k
​    
 P 
u,f
​    
 Q 
f,i
​    
 
其中,Pu,f表示用户u的兴趣和第f个隐类之间的关系,Qf,i表示第f个隐类和物品i之间的关系 P_{u,f}表示用户u的兴趣和第f个隐类之间的关系,Q_{f,i}表示第f个隐类和物品i之间的关系P 
u,f
​    
 表示用户u的兴趣和第f个隐类之间的关系,Q 
f,i
​    
 表示第f个隐类和物品i之间的关系
计算出用户u uu对所有未产生行为的物品的感兴趣程度进行排序,就可以实现对用户u的推荐

举例如下:Preference(2,1)=P2Q1=[P2,1,P2,2,P2,3][Q1,1,Q2,1,Q3,1]T=P2,1Q1,1+P2,2Q2,1+P2,3Q3,1 Preference(2,1)=P_{2}Q_{1}=[P_{2,1},P_{2,2},P_{2,3}][Q_{1,1},Q_{2,1},Q_{3,1}]^{T}=P_{2,1}Q_{1,1}+P_{2,2}Q_{2,1}+P_{2,3}Q_{3,1}Preference(2,1)=P 
2
​    
 Q 
1
​    
 =[P 
2,1
​    
 ,P 
2,2
​    
 ,P 
2,3
​    
 ][Q 
1,1
​    
 ,Q 
2,1
​    
 ,Q 
3,1
​    
 ] 
T
 =P 
2,1
​    
 Q 
1,1
​    
 +P 
2,2
​    
 Q 
2,1
​    
 +P 
2,3
​    
 Q 
3,1
​    
 

LFM的分类来自于对用户行为的统计,代表了用户的看法,每个物品可以属于多个类别,并且可以计算出物品属于每个类别的权重。隐类个数k kk控制了分类的粒度,k越大,类别个数越多,分类的粒度越细。

三、LFM模型求解
数据集构建:
对于隐性反馈数据集,只有正样本,需要利用用户没有过行为的物品生成负样本,负样本的采样应遵循以下原则:
1.对每个用户,要保证正负样本的平衡(数目相似)
2.对每个用户采样负样本时,选取很热门但用户却没有行为的物品,因为很热门但是用户却没有行为更加说明用户对该物品不感兴趣

经过负样本采样,得到用户物品集合UI={(u,i)} UI=\{(u,i)\}UI={(u,i)},若(u,i) (u,i)(u,i)是正样本,则Ru,i=1 R_{u,i}=1R 
u,i
​    
 =1,否则Ru,i=0 R_{u,i}=0R 
u,i
​    
 =0
求解:
损失函数:L=∑(u,i)∈UI(Ru,i−Rˆu,i)2=∑(u,i)∈UI(Ru,i−∑kf=1Pu,fQf,i)2+λ∣∣Pu∣∣2+λ∣∣Qi∣∣2 L=\sum\limits_{(u,i)\in UI}{(R_{u,i}-\hat R_{u,i})^2}=\sum\limits_{(u,i)\in UI}{(R_{u,i}-\sum\limits_{f=1}^{k}P_{u,f}Q_{f,i})^2}+\lambda \left|{\left|{P_{u}}\right|}\right|^2+\lambda \left|{\left|{Q_{i}}\right|}\right|^2L= 
(u,i)∈UI

​    
 (R 
u,i
​    
 − 
R
^
  
u,i
​    
 ) 
2
 = 
(u,i)∈UI

​    
 (R 
u,i
​    
 − 
f=1

k
​    
 P 
u,f
​    
 Q 
f,i
​    
 ) 
2
 +λ∣∣P 
u
​    
 ∣∣ 
2
 +λ∣∣Q 
i
​    
 ∣∣ 
2
 
其中λ∣∣Pu∣∣2+λ∣∣Qi∣∣2 \lambda \left|{\left|{P_{u}}\right|}\right|^2+\lambda \left|{\left|{Q_{i}}\right|}\right|^2λ∣∣P 
u
​    
 ∣∣ 
2
 +λ∣∣Q 
i
​    
 ∣∣ 
2
 为正则项,用来防止过拟合,λ \lambdaλ的值可以根据实验获得

使用随机梯度下降法求解:
∂L∂Pu,f=−2(Ru,i−∑kf=1Pu,fQf,i)Qf,i+2λPu,f \frac{\partial L}{\partial P_{u,f}}=-2(R_{u,i}-\sum\limits_{f=1}^{k}P_{u,f}Q_{f,i})Q_{f,i}+2\lambda P_{u,f} 
∂P 
u,f
​    
 
∂L
​    
 =−2(R 
u,i
​    
 − 
f=1

k
​    
 P 
u,f
​    
 Q 
f,i
​    
 )Q 
f,i
​    
 +2λP 
u,f
​    
 
∂L∂Qf,i=−2(Ru.i−∑kf=1Pu,fQf,i)Pu,f+2λQf,i \frac{\partial L}{\partial Q_{f,i}}=-2(R_{u.i}-\sum\limits_{f=1}^{k}P_{u,f}Q_{f,i})P_{u,f}+2\lambda Q_{f,i} 
∂Q 
f,i
​    
 
∂L
​    
 =−2(R 
u.i
​    
 − 
f=1

k
​    
 P 
u,f
​    
 Q 
f,i
​    
 )P 
u,f
​    
 +2λQ 
f,i
​    
 
沿着负梯度方向更新变量,步长取值α \alphaα
Pu,f=Pu,f+α((Ru,i−∑kf=1Pu,fQf,i)Qf,i−λPu,f) P_{u,f}=P_{u,f}+\alpha((R_{u,i}-\sum\limits_{f=1}^{k}P_{u,f}Q_{f,i})Q_{f,i}-\lambda P_{u,f})P 
u,f
​    
 =P 
u,f
​    
 +α((R 
u,i
​    
 − 
f=1

k
​    
 P 
u,f
​    
 Q 
f,i
​    
 )Q 
f,i
​    
 −λP 
u,f
​    
 )
Qf,i=Qf,i+α((Ru,i−∑kf=1Pu,fQf,i)Pu,f−λQf,i) Q_{f,i}=Q_{f,i}+\alpha((R_{u,i}-\sum\limits_{f=1}^{k}{P_{u,f}Q_{f,i}})P_{u,f}-\lambda Q_{f,i})Q 
f,i
​    
 =Q 
f,i
​    
 +α((R 
u,i
​    
 − 
f=1

k
​    
 P 
u,f
​    
 Q 
f,i
​    
 )P 
u,f
​    
 −λQ 
f,i
​    
 )


参考书籍:《推荐系统实战》
————————————————
版权声明:本文为CSDN博主「hhjhh76」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hhjhh76/article/details/89632557

发布了254 篇原创文章 · 获赞 583 · 访问量 1270万+

猜你喜欢

转载自blog.csdn.net/pengjunlee/article/details/104833933