MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS论文笔记;推荐系统中的矩阵分解(MF)
MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS
Yehuda Koren,Yahoo Research
Robert Bell and Chris Volinsky,AT & T Labs—Research_
在文章开篇处提及,在商品推荐领域中采用矩阵分解方法相较于最近邻技术而言更为有效,并且能够整合其他相关数据如隐式反馈、时间效应以及置信度
电子零售商及内容提供者均致力于提升消费者对其服务的满意度与忠诚度,并对推荐系统的开发与研究投入了大量资源。他们能够分析用户在其产品上的兴趣所在,并据此定制推荐方案以实现精准营销。
- **Recommender System Strategies **
介绍之前的推荐算法。
content filtering:基于用户与商品的特征描述来进行推荐;此外这种过滤方法仅依赖用户的交易记录与产品评价
collaborative filtering is as opposed to content-based filtering. Collaborative filtering is more precise in its approach and can ignore any domain-specific challenges. It efficiently handles items or users that are difficult to concretely characterize. Despite this, it is confronted with the cold-start problem. In this regard, content-based filtering tends to perform slightly better.
在协同过滤中,主要分为两类:领域方法和隐式因子模型(neighborhood methods and latent factor models)。
其中领域方法又可分为基于项的方法和基于用户的的方法两种,并分别计算项与项之间的关系以及用户与用户之间的关系。

latent factor models尝试解释评分,通过将item和user特征化表示。
举例说明,在这两个维度上分别是seriously escapist风格与男性化倾向。其中一位用户的偏好与电影《海洋十一日》在这两个维度上的表现较为中性。而另一位用户的偏好则可能更倾向于观看《 dumb and dumb》,而不喜欢《the color purple》;而对《braveheart》的评价通常较为中间。评分相当于用户和电影在图中位置的点积

Matrix Factorization Methods
The most notable implementations of latent factors are grounded in matrix decomposition. Among the most impactful implementations of latent factor models, matrix decomposition stands out as a foundational technique.
在推荐系统中,默认输入的是一个矩阵结构,在该矩阵中一个维度用于表示用户群体信息,在另一个维度则表示用户对不同项目的兴趣点或偏好值;其中最为直观的数据来源就是显式反馈(explicit feedback),这包括用户对项目的评分体系、星级评价以及类似于B站平台的点赞与反点赞等行为;当显式反馈难以获取时,则可采用隐式反馈(implicit feedback),这主要通过用户的实际行为数据来进行表征分析
其优点体现在能够整合额外的数据源以实现推荐功能。
当显示反馈难以获取时,则可采用隐式反馈的数据。
其中,在显示反馈方面(Explicit feedback),生成的矩阵通常是高度稀疏的(sparse matrix),这是因为物品数量庞大(abundant),而每个用户的兴趣范围通常局限于少数特定物品(specific items)。就隐式反馈而言(Implicit feedback),每个事件的发生与否是一个二元状态(binary state),即某个事件要么发生要么不发生;因此,在这种情况下,默认使用的矩阵类型通常是密集型而非稀疏型(dense matrix vs. sparse matrix)。
**A Basic Matrix Factorization Model **
通过将user 和item使用latent factor将其映射到维度为f的空间。
每个 item i 都会被其特征向量 q_i \in \mathbb{R}^f 表示出来;同样地, 每个 user u 则会被其特征向量 p_u \in \mathbb{R}^f 所表征. 这些向量之间的点积则用于估算用户对相应 item 的偏好程度, 并将其计算结果记作 \overset{-}{r}_{ui} = q_i^\top p_u.
主要的挑战就是如何得到映射关系,从而得到 q_i,p_u
文章中涉及奇异值分解(SVD),然而由于矩阵存在严重的数据稀疏性问题会导致计算上产生困难。同时由于样本数量有限同样也会引发模型过拟合的现象。以往的系统方法多是采用估计手段以达到使矩阵边缘密度增加的目的但这种估计过程往往不够精确容易导致数据被扭曲从而影响模型的学习效果;近年来研究者们开始倾向于仅利用观测数据并结合正则化技术来避免过拟合的问题

**Learning Algorithms **
解决前面提到的方程最小化问题的两种方案分别是随机梯度下降和交替最小二乘法。下面是对这些方法的详细解释。
* stochastic gradient descent
* alternating least squares
- stochastic gradient descent
对于每个给定的训练例子,计算相关误差:
e_{ui} \overset{def}= r_{ui}-q_i^Tp_u
按照与梯度相反的方向进行参数的更新

这个方法易于实现,而且相对快速。
- alternating least squares****
固定q,p中的一个,去优化另一个,交替固定,最终会收敛.
关于ALS的优势:首先它具备良好的可并行化特性,在处理多个item factors时它们彼此互不干扰;同时在处理各个user factors时也能保持高度独立性。然而在学习过程中突然产生了诸多疑问:比如对于当前所指的具体概念(如 item factor 与 previous product 等)及其定义尚不够明确;此外还存在对它们为何能够实现互不干扰这一机制的理解偏差
2.可以处理稀疏的训练集的情况
Adding Biases
评分过程中存在一些用户的评分标准较为严格,在同一作品中对他人的评分相对较低;但从该用户的个人历史记录来看其评分为其他观众对这部电影的评价一致因此引入偏置值的概念来处理这种现象的发生情况
偏置定义为:b_{ui}=\mu +b_i +b_u
其中\mu代表全体物品的平均评分;而b_i即为某特定项目i对应的平均评分;同样地,b_u则是某特定用户u的平均评分。
例如,在评估用户Joe对电影Titanic的首次估算时,请考虑以下因素:假设所有电影的平均评分为µ=3.7颗星。由于itanic的质量高于平均水平的电影,默认情况下通常会获得比平均高出0.5颗星的评价。然而另一方面,在这种情况下估算出的结果显示Joe对itanic的评分为3.9颗星(即µ+ΔR=itc-ΔR=jo)。因此,在这种情况下估算出的结果显示Joe对itanic的评分为(即)μ+ΔR_italic - ΔR_joe = 39
所以将其带入方程可得\overset{-}r_{ui}=\mu +b_i +b_u+q_i^Tp_u
最小化误差函数相应的变为如下形式:

关于偏置的设定,还有更多的论文讨论了多种多样的偏置形式
- **additional input sources **
该系统在运行过程中会遇到 cold start 问题。为此设计了一种解决方案:通过引入用户的额外信息来应对这一挑战,并结合具体的反馈机制以提升推荐效果。其中一种方法是利用隐式反馈机制(如用户的购买记录、浏览行为以及收藏记录等详细信息),另一种方法则是基于已知的用户特征数据(如年龄、收入水平和邮政编码等)进行分析与预测。
将上边提到的两种信息加入用户可得:

上边是增强用户的表示能力,必要时可以对item进行类似的操作。
- **TemporaL Dynamics **
文中提到该模型为静态结构。然而在现实中由于选择数量增多产品的认知度与受欢迎程度呈现出随时间推移而变化的趋势这一特性使得其呈现动态化特征。随着时间的推移用户的兴趣爱好会发生转变例如最初可能偏好《龙珠》但随着几年时间的演进可能会转向《火影忍者》因此用户的偏好必定会随之发生变动;与此同时用户的评价也可能因身份地位或时间背景的变化而产生相应的变化例如一部电影起初可能获得4分但随着个人发展其评价可能会降至3分因此用户的评价也会随之发生变化;同样item的表现也会受到时间因素的影响一部作品或一首歌曲若因特定事件的发生可能会重新焕发活力或陷入冷寂从而导致其评分出现波动就像近期热衷于讨论的《Last Dance》便重新走红了这一现象表明item的表现会因外部环境的变化而发生动态调整;另一方面由于该item作为一个静态实体不会受到外界因素的影响因而不会发生任何变化对应的数学表达式可以采用如下形式:

- **Inputs With Varying Confidence Levels **
文章指出并非所有评分都应该具有相同的权重。其归因于可能存在部分广告用户(adversarial users)试图偏倚某些item的评分情况。那么我的看法是不是就像是给好评呢??如此做是否合乎情理?
另一个需要注意的问题是主要依赖于用户的显式反馈信息的系统,在量化用户的偏好方面存在较大的挑战
为了应对这些问题,我们引入了置信分数(confidence score)这一概念。该指标用于描述用户观看某个特定物品的频率。具体而言,Confidence源自可获得的数值数据,并通过反映观众行为模式来体现用户的兴趣程度。例如观众花了多少时间观看某一节目或购买某一商品的频率。
将置信分数c_{ui}引入方程得到如下形式:

参考链接
在推荐系统领域中所采用的一种矩阵分解技术
在推荐系统领域中所采用的一种矩阵分解技术
