从零开始学推荐系统二:隐语义模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从零开始学推荐系统⼆:隐语义模型
2. 隐语义模型
隐语义模型⼜可称为LFM(latent factor model),它从诞⽣到今天产⽣了很多著名的模型和⽅法,其中和该技术相关且⽿熟能详的名词
有pLSA、 LDA、隐含类别模型(latent class model)、隐含主题模型(latent topic model)、矩阵分解(matrix factorization)。
本节将对隐含语义模型在Top-N推荐中的应⽤进⾏详细介绍,并通过实际的数据评测该模型。
核⼼思想:
通过隐含特征(latent factor)联系⽤户兴趣和物品。
举例:
⽤户A的兴趣涉及侦探⼩说、科普图书以及⼀些计算机技术书,⽽⽤户B的兴趣⽐较集中在数学和机器学习⽅⾯。
对A和B推荐图书时,根据第⼀篇⽂章,我们可以采⽤基于邻域的算法:UserCF 和ItemCF。
UserCF:⾸先需要找到和他们看了同样书的其他⽤户(兴趣相似的⽤户),然后给他们推荐那些⽤户喜欢的其他书。
ItemCF:需要给他们推荐和他们已经看的书相似的书,⽐如⽤户B看了很多关于数据挖掘的书,可以给他推荐机器学习或者模式识别⽅⾯的书。
还有⼀种是基于兴趣分类的⽅算法,也就是隐语义模型,隐语义模型通过如下公式计算⽤户u对物品 i 的兴趣:
其中,pu,k 和 qi,k 是模型的参数,其中 pu,k 度量了⽤户u的兴趣和第k个隐类的关系,⽽ qi,k 度量了第k个隐类和物品 i 之间的关系。
这样,就可以通过隐类,把⽤户u与物品 i 的兴趣联系起来。
需要注意的是推荐系统的⽤户⾏为分为显性反馈和隐性反馈。
LFM在显性反馈数据(也就是评分数据)上解决评分预测问题并达到了很好的精度。
不过本章主要讨论的是隐性反馈数据集,这种数据集的特点是只有正样本(⽤户喜欢什么物品),⽽没有负样本(⽤户对什么物品不感兴趣)。
因此,需要构造负样本数据。
构造负样本时,要注意以下两点:
1. 对每个⽤户,要保证正负样本的平衡(数⽬相似)。
2. 对每个⽤户采样负样本时,要选取那些很热门,⽽⽤户却没有⾏为的物品。
LFM损失函数:
通过利⽤梯度下降来最⼩化损失函数C,从⽽求解出pu,k 和 qi,k 。
在LFM中,重要的参数有4个:
隐特征的个数F;
学习速率alpha;
负样本/正样本⽐例 ratio。
正则化参数lambda;
举例:
数据集包含的是所有的user, 所有的item,以及每个user有过⾏为的item列表,使⽤LFM对其建模后,我们可以得到如下图所⽰的模型:(假设数据集中有3个user, 4个item, LFM建模的分类数为3)
其中,R是user-item矩阵,矩阵值Rij表⽰的是⽤户 i 对物品 j 的兴趣度。
对于⼀个⽤户来说,当计算出他对所有物品的兴趣度后,就可以进⾏排序并作出推荐。
LFM算法从数据集中抽取出若⼲主题,作为⽤户和物品之间连接的桥梁,将R矩阵表⽰为P矩阵和Q矩阵相乘。
其中P矩阵是user-class矩阵,矩阵值Pij表⽰的是⽤户 i 对class j的兴趣度;Q矩阵式class-item矩阵,矩阵值Qij表⽰的是物品 j 在class i中的权重,权重越⾼越能作为该类的代表。
优点:
1. 不需要关⼼分类的⾓度,结果都是基于⽤户⾏为统计⾃动聚类的,全凭数据⾃⼰说了算。
2. 不需要关⼼分类粒度的问题,通过设置LFM的最终分类数就可控制粒度,分类数越⼤,粒度约细。
3. 对于⼀个物品,并不是明确的划分到某⼀类,⽽是计算其属于每⼀类的概率,是⼀种标准的软分类。
4. 对于⼀个⽤户,我们可以得到他对于每⼀类的兴趣度,⽽不是只关⼼可见列表中的那⼏个类。
5. 对于每⼀个class,我们可以得到类中每个item的权重,越能代表这个类的item,权重越⾼。
总结:
LFM的研究⼀直是在评分预测问题上的,很少有⼈⽤它去⽣成TopN推荐的列表,⽽且也很少有⼈研究如何将这个数据⽤到⾮评分数据上。
其实LFM在评分预测和在TopN上应⽤的道理是⼀样的。
在TopN问题上,隐反馈数据集上R只有1和0,分别表⽰感兴趣和不感兴趣,并且原始数据中只有明确1类的正样本,负反馈数据需要我们⾃⼰收集⽣成。
通过获取PQ矩阵,就可以向某个特定⽤户推荐他喜欢的电影类内电影中权重最⾼的电影或者按权重从⼤到⼩排序推荐N个电影给此⽤户。
LFM和基于邻域的⽅法的⽐较
LFM具有⽐较好的理论基础,它是⼀种学习⽅法,通过优化⼀个设定的指标建⽴最优的模型。
基于邻域的⽅法更多的是⼀种基于统计的⽅法,并没有学习过程。
LFM在⽣成⼀个⽤户推荐列表时速度太慢,因此不能在线实时计算。
ItemCF算法⽀持很好的推荐解释,它可以利⽤⽤户的历史⾏为解释推荐结果。
但LFM⽆法提供这样的解释。