解析协同过滤方法(二)

本文介绍了协同过滤中的隐语义模型,该模型通过隐含特征联系用户兴趣和物品,常用于推荐系统。矩阵分解是实现隐语义模型的主要方法,包括基础的矩阵分解、添加偏置的矩阵分解和SVD++模型。这些模型能够结合用户和物品的偏置、隐式反馈等因素,提高推荐准确性。

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

点击上方“蓝字”关注我们

协同过滤(二)

Mar 26, 2020

本期介绍介绍协同过滤中的隐语义模型。

本文约2k字,预计阅读12分钟。

上篇文章【解析协同过滤方法】讲述了协同过滤的概念:只依赖于「过去的用户行为」,例如用户以前的交易或对物品的评分,而不需要创建显式的用户/物品的具体信息,这种方法被称为协同过滤。以及对协同过滤主要的方法之一-----「基于邻域的方法(the neighborhood approach)」进行了详细的阐述,并且分析了「基于用户的协同过滤」与「基于物品的协同过滤」的优缺点。

本篇文章将介绍协同过滤中另一种主要的方法-----「隐语义模型(latent factor model)」

隐语义模型

自从Netflix Prize比赛举办以来,隐语义模型逐渐成为推荐系统主流的模型算法。其实该算法最早在文本挖掘领域被提出,用于找到文本的隐含语义。它的核心思想是通过隐含特征(latent factor)联系用户兴趣和物品。具体来说是通过将物品和用户都转换为相同的「隐含特征空间(latent factor space)」,从而使它们直接具有可比性。隐含特征空间试图通过根据用户反馈自动推断出的特征(factor)来表征物品和用户,从而解释评分。

参考[1],举个例子,对于电影来说,发现的特征(factor)可能会衡量「明显的维度」,例如喜剧与戏剧、电影中动作的数量、或对儿童的定向;「一些不太明确的维度」,例如角色发展的深度或古怪的程度;亦或者是「完全无法解释的维度」。对于用户来说,每个因素都会衡量用户对在相应电影的喜欢程度。

下图以二维的简化示例说明了这种想法。考虑两个假设维度,分别是女性和男性(x轴)以及严肃(Serious)与逃避现实的(escapist)(y轴)。对于此模型,相对于电影的平均评分,用户对电影的预测评分将等于电影和用户在图表上位置的点积。例如,Gus喜欢《Dumb and Dumber》,讨厌《The Color Purple》,并且将《Braveheart》评为平均水平。请注意,某些电影(例如《Ocean‘s 11》)和用户(例如Dave)的特征在这两个维度上都相当中立。

矩阵分解

矩阵分解(Matrix Factorization)是LFM(隐语义模型)中最主要的方法之一。最开始是Simon Funk等人[2]在2006年Netflix Prize比赛中,使用了Funk-SVD模型。之后一些研究进行了改进,如2008年Koren等人提出的SVD++以及基于邻域方法和SVD的整合[3]、2009年Koren等人[2]提出在基础的矩阵分解中引入用户和物品的偏置、隐式反馈、时间动态性、置信水平来进行建模,(具体可参考另一篇文章【论文导读】MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS)。

接下来我们简单的介绍下以上提到的部分模型:1、最基础的矩阵分解模型;2、添加偏置的矩阵分解模型;3、SVD++模型;

1.基础的矩阵分解模型

矩阵分解模型将用户和物品都映射到维数为 的联合潜在因子空间,并将用户和物品的交互建模为两者之间的内积操作。

定义:对于每一个物品 表征为隐向量 ,每一个用户 表征为隐向量 ,内积 代表了物品 和用户 之间的交互,即用户 对物品 特性的兴趣程度(评分),用户 对物品 的真实评分为 ,评分估计可被公式化为:

  

为了学习隐向量( ),系统通过最小化正则化后的均方误差:

  

2.添加偏置的矩阵分解模型

虽然基本的矩阵分解可以捕获用户和物品之间的交互,但是,观察到的许多评分变化是由于与用户或物品相关的影响(称为偏差)所致,而与任何交互无关。例如,典型的协同过滤数据表现出较大的系统性倾向,有些用户给出的评分比其他用户高,有些物品得到的评分比其他项目高,因为有些物品被普遍认为比其他物品更好(或更差)。

因此单纯用内积的交互来解释一个评分值是比较粗糙的。因此,使用偏置来解释用户/物品的自身影响:

  

其中 被定义为总平均评分(例如单个用户对所有电影的平均评分),参数 分别表示物品和用户的偏置,将偏置加入最终的评分中:

评分被分解为四项:总平均得分,物品偏置,用户偏置和物品用户的交互。

故损失函数为: 

3. SVD++模型

作者首先将用户(user)关联了两个物品(items)的集合:1、R(u),里面包含了u所有评价过的物品的集合;2、N(u),包含了u所有提供的「隐式偏好」。这里隐式偏好指的是收集用户u的行为信息,如用户的购买或浏览历史记录。

作者在原来的基础矩阵分解模型加入了用户对物品的隐式偏好:

  

其中 和上个模型定义相同, 是一个和 相同的长度的向量,代表了u对物品j的一个隐式偏好。

作者通过Assymmetric-SVD模型进行简化,具体的可以参考[3]。

总结

在协同过滤算法中,矩阵分解技术是一种主流的方法。并且模型可以自然地集成数据的许多关键方面,例如结合偏置、隐式反馈、置信度等。但随着深度学习在计算机视觉(CV)、自然语言处理(NLP)和语音识别的成功应用,大量的协同过滤研究开始向神经网络偏移。下一篇文章,我会对神经网络在协同过滤上的应用进行一个简单的分析,并对整个协同过滤的概况进行一个总结,并放上自己的代码实现的GitHub,喜欢的希望大家关注一下。

参考文献

[1] Y. Koren, R. Bell and C. Volinsky, Matrix factorization techniques for recommender systems, Computer 42 (2009) 30-37.

[2] S. Funk, “Netflix Update: Try This At Home”, http://sifter.org/simon/journal/20061211.html, 2006.

[3] Yehuda Koren, Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model, KDD’08, August 24–27, 2008.

[4] 项亮.推荐系统实战[M].北京:人民邮电出版社,2012.

扫码关注更多精彩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值