其他分享
首页 > 其他分享> > 隐语义模型:LFM

隐语义模型:LFM

作者:互联网

一、协同过滤推荐算法

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

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

二、隐语义模型:LFM

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

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

为了解决上面问题,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

标签:Pu,LFM,模型,语义,用户,UI,物品,lambda
来源: https://blog.csdn.net/pengjunlee/article/details/104833933