论文笔记:Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model

本文提出了一种新的基于邻域的推荐系统模型,该模型基于正式优化全局成本函数,提高了预测准确性并保持了邻域方法的优点。同时,文章介绍了一个基于SVD的潜在因子模型的扩展,通过整合隐式反馈提高准确性。最终,将这两种模型结合,形成一个更加精确的推荐系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先给出参考列表

https://blog.youkuaiyun.com/qq_35771020/article/details/88026045

https://blog.youkuaiyun.com/fangqingan_java/article/details/50762296

https://blog.youkuaiyun.com/weixin_43249938/article/details/84393467

摘要

摘要信息量比较大,大概说了几件事情

1.推荐系统的通用做法是协同过滤,两种思路,描述用户和物品之间关系的LFM模型,和描述用户&用户或者物品&物品相似度的近邻模型。

2.本文中,对两种模型都进行了一些创新

3.两种模型可以平滑地连接起来,从而建立一个更加精确的模型

4.加入用户的显式和隐式反馈,可以让模型更加精确

5.还提出了一种新的评估指标,根据它们在TopK推荐任务中的性能,突出了不同方法之间的差异

绪论

分析领域模型和隐因子模型各自的优缺点,然后提出了将两者结合起来的想法。邻域模型最有效地检测非常局部的关系。他们依赖一些明显的邻里关系,经常忽略用户的绝大多数评分。因此,这些方法无法捕获所有用户评级中包含的弱信号的总量。潜在因素模型通常能有效地估计与大多数或所有项目同时相关的总体结构。然而,这些模型在检测一小组密切相关的项目之间的强关联性方面很差,这正是邻域模型做得最好的地方。

引用自https://blog.youkuaiyun.com/qq_35771020/article/details/88026045

因此,本文将两种方法结合了起来。

受到Netflix大赛的启发,本文在将两种方法结合使用时不仅使用了显式的用户评分数据,还使用了隐式的数据。

原来LFM模型包括SVD啊,那我是不是也可以认为它包括LDA……

准备工作

首先给出符号:

u,v表示用户

i,j表示物品

表示已知的用户评分(也就是user-item矩阵中的非零元素)

表示预测的用户评分

表示有评分的那些user-item集合

表示正则化系数

2.1 baseline估计

由于用户和物品各自的评分通常都表示出强烈的倾向性,所以这里选择平均值作为baseline。

其中,等式右边分别表示数据集中所有电影的平均分、用户的平均偏差和物品的平均偏差。所有电影的平均分好算,后两项用最小均方误差估计。

关于这几个参数的理解,这里有一个非常形象的例子。

2.2 邻居模型

UserCF算法和ItemCF算法都是主流算法,现在我们重点来看ItemCF算法,因为它有更好的解释性。传统意义上的物品相似度度量写作

其中,是同时评价了i和j的用户的个数,是i和j的Pearson距离。是对于用户u来说,和物品i最相似的k个物品。则预测表达式可以写为

这个式子尽管通用,但是没有严格的理论证明,而且太过于依赖模型,这里修正为

是差值权重,据说在参考文献中可以找到怎么估计,具体我没看。

2.3 LFM模型

隐语义模型的一个常见例子是奇异值分解。对于不完整的矩阵,奇异值分解不是一家容易的事情。为此,我们只关心那些已经有了的样本对矩阵的修正。

p和q都是f维向量,分别代表用户和物品对于f个主题的特征值大小。上面的优化问题由于是无约束的,可以借助梯度下降法解决。

NSVD模型给出了另一个预测的思路,预测值为

其中,用户u的特征被表示为

是用户u评价过的商品。

我觉得其实就是把p换成了x,但是p是用户的特征,而x是物品的特征,这样的话如果用户u和v评价过一模一样的一堆电影,他们的用户向量就完全相同了,这个我没有明白为什么。

2.4 数据集

大家都用Netflix数据集,所以我们也用。

2.5 隐式反馈

据说Netflix里有一个隐式反馈是一个二元矩阵,类似于我们在知乎上的“赞同”“反对”。

邻域模型

这一部分我们介绍近邻模型。传统的ItemCF模型中,用统计学的方法来估计相似度。我们不这么做,我们将相似度建模,然后用训练的方法寻找其中的参数(而不是统计,我觉得这里很像机器学习了)。

第一步是得到这个模型

它看起来和上面那个有theta的公式没什么不同。实际上它的改进是首先w是学习得到的而不是统计得到的,而且它是一个全局参数(这有利于最后的优化);其次它用了所有的物品而不仅仅是最相似的前k个。当我们解释这个方程时,我们不再把w看作两个物品的相似度,相反我们把它看作是“用品和baseline的偏离程度”。

这么做的好处在于,将权重看作是全局偏移,而不是用户特定的插值系数,强调了缺失评级的影响。换句话说,用户的意见不仅仅是由打过分的item决定的,也由没有打过分的item决定。如果用户没有给“指环王1-2”打分,他对“指环王3”的预测等级将受到惩罚,因为一些必要的权重不能加到总和中。

考虑到隐式反馈的问题,加入隐式反馈项,目标变成

是和u有隐式反馈的item。

注意到上面等式右边第一项还是统计得到的,不要,改成

bu和bi都是模型参数,要通过学习得到。

然后呢,很熟悉的思路,归一化惩罚热门物品/用户

为了减少需要的参数,我们现在又只考虑前k个了

Ok,我们得到了优化目标函数

我们很高兴地发现,这是一个凸问题,并且还能用正则化最小二乘法来求解。不过根据自适应算法的知识我们知道,我们更愿意用梯度下降法,没有别的原因,好算。

表示,对中的所有样本迭代(单次梯度下降)

废话不多说给出实验结果

完全不意外,我们的结果最棒棒(但是随着k的增加,运行时长也在变长,这一点令人头秃)。

修正的LFM模型

众所周知,SVD模型原来是这样的

我们把它改成了这样

没有q,有x和y。我们没有为用户提供显式的参数化,而是通过用户喜欢的项来表示用户。这一整项,用的是item的参数,但是表示了用户的取向。我们叫它“非对称SVD”。它的好处包括:

更少的参数:用户数通常都远大于物品数,这样减少了参数个数

冷启动问题:对于新用户不需要重新训练模型

解释性:解释性是隐语义模型向来的硬伤,这个模型因为没有抽象,可以解释是哪些用户行为造成了推荐结果

对隐反馈的利用

然后,我们还是建立了目标函数,最小二乘法也还是可以用的。

梯度下降法也可以被应用。实验表明,这个算法的精确度好于SVD,而且还快。

另外,如果我们有很强的算力,其实还可以把模型进一步改进为

这个模型叫做SVD++。SVD难算一点,但它很准确,比之前讲过的模型都要准确。不过我们不用它,因为下面我们要讲一种继承模型,更准确。

完整的模型

把问题写成优化的标准形式,这样做的好处就是可以很方便地加减乘除,也就是我们所说的可扩展性。绪论中已经提到,邻域模型和隐语义模型是互补的,那么,新的优化模型长这样:

描述物品和用户的一般属性

描述隐藏主题

描述最近邻特性

这个式子看着有点长没错,但是每一项的物理意义都十分清楚。而且我们可以用梯度下降法来解决这个问题。

结果显示它的精确度非常好。

通过TopK推荐进行评估

虽然RMSE是一个通用的办法,但是对于工程来说,更有意义的可能是TopK评估。

所以我们来看实验结果。这个评估方法我是第一次见到,它对于每一个用户,选择了这个用户最喜欢【也就是打了五星】的电影,这是一部电影,然后再随机选择1000部电影,这总共是1001部电影,都是从验证集里选的。用我们在训练集中训练好的模型来对这1001部电影评分,看最开始最好的那一部电影排在第几名或者前百分之多少。由于我们已知这个电影是用户超喜欢的,所以我们期望它的排名靠前,越靠前说明算法性能越好。

实验结果告诉我们,综合算法的累计分布最靠上,也就是它最好。

另一个问题是假如对于Top10推荐,排在第11名和排在第500名的结果是一样的,都不被推荐。所以我们应该关注的是上面那个图的x轴最开始的部分。

综合算法还是很好。

结论

(以下内容来自谷歌翻译)

这项工作提出了两种最流行的协作过滤方法的改进。首先,我们提出了一种新的基于邻域的模型,它与以前的邻域方法不同,它基于正式优化全局成本函数。这导致提高预测准确性,同时保持邻域方法的优点,例如预测的可解释性和处理新用户的能力而无需重新训练模型。其次,我们引入了基于SVD的潜在因子模型的扩展,通过将隐式反馈集成到模型中,可以提高准确性。其中一个模型还提供了通常被认为属于邻域模型的优点,即能够解释推荐和无缝处理新用户的能力。此外,新的邻域模型使我们能够首次将集合模型结合邻域和潜在因子模型。这有助于提高系统性能,因为邻域和潜在因子模型可以处理不同级别的数据并相互补充。

推荐系统的质量通过多个维度表达,包括:准确性,多样性,意外推荐意外的能力,可解释性,适当的前K推荐和计算效率。其中一些标准相对容易衡量,例如本工作中提到的准确性和效率。其他一些方面更难以量化,难以量化。我们提出了一种测量top-K推荐器成功率的新方法,这对大多数系统至关重要,因为每个系统都应向每个用户建议一些产品。值得注意的是,评估top-K推荐者可以显着提高方法之间的差异,超出传统的准确度测量所显示的范围。

超越这项工作的一个重要见解是,改进的推荐质量取决于成功解决数据的不同方面。一个主要的例子是使用隐式用户反馈来提供模型的质量,这是我们的方法所促成的。对此的评估基于非常有限的隐式反馈形式,可在Netflix数据集中获得。这足以显示出显着的改善,但需要进一步的实验以获得更好的隐式反馈来源,例如购买/租赁历史。可以被集成以提高预测质量的数据的其他方面是诸如用户或产品的属性的内容信息,或者与评级相关联的日期,这可以帮助解释用户偏好的变化。

 

我的思考

我看了那么多论文,这一篇的流畅程度可以排前三。行云流水,循序渐进,几乎不太费力气,看着太舒服了。

这篇论文是推荐系统的开山之作之一,我们从中可以学到利用信息和模型融合的思路。万能的梯度下降法也值得拥有姓名。最后,这个评估方法我从来没见过,以后可以注意一下。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值