矩阵分解早期开创性的经典文章:矩阵分解技术在推荐系统中的应用
Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. Computer, 42(8), 30–37.
要解决的问题依旧是从已知的数据——用户对一些项目(item)的反馈来预测未知——用户对其它项目的反馈。
推荐系统策略
- 内容过滤(content filtering)
对用户和项目都创建出能描述其特性的属性量,以便程序将用户和项目进行匹配。在音乐推荐上的应用较成功。 - 协同过滤(collaborative filtering)
基于用户过去的行为,如对之前项目的明确反馈,来分析用户之间的关联、项目之间的关联,以推断出新的用户-项目关联。 - 两者相比较而言,如果对内容过滤来说用户和项目的属性模糊且难以描述,则协同过滤是更优的选择。协同过滤往往更准确,但由于它对用户、项目的数据量要求,所以更受限于冷启动问题。
协同过滤实现方法
近邻法(neighborhood methods)
基于用户与用户间的联系和项目与项目间的联系,认为喜欢项目I1的用户U1也会喜欢同样喜欢I1的其它用户喜欢的项目。
如图,绿色线表示正向反馈,则基于近邻法,Joe很可能喜欢另外三人都喜欢的#1。潜在因素模型(latent factor models)
从用户对项目的评分中推断出若干属性(20-100),用以反映用户和项目的特征。
例如下图,用两个维度来描述用户和电影,以估计用户对电影的喜爱程度。
矩阵分解法
优秀的潜在因素模型往往是基于矩阵分解法的,在最基本的形式中,矩阵分解法从已知的用户项目评分中推断出两个向量,用来分别描述用户和项目的属性。
推荐系统的输入数据有很多来源,其中包括明确反馈(explicit feedback)和不明确反馈(implicit feedback).
明确反馈表示评分、点赞、踩等明确的喜好表达。但明确反馈的数据往往是稀疏的,所以为了增强矩阵分解法的性能,我们选择综合用户的不明确的反馈进行推断。不明确反馈包括用户的浏览、搜索或是鼠标停留点等。
######基本的矩阵分解模型
对用户u,使用在f维空间上的向量pu来描述用户对f个属性值的喜好程度。对于项目i,使用f维空间中的向量qi描述i在f个属性上的表现。则两向量的内积一定程度上反映了用户u对项目i的感兴趣程度。应用奇异值分解(singular value decomposition,SVD)来解决pu和qi的求解问题。又由于数据稀疏问题,我们通过增补缺省值来提高SVD的性能。在此需要注意,大量不准确的增补会歪曲数据,对数据的过拟合也会影响最后的求解。为求解qi和pu,计算下式:
k为所有已知评分r(u,i)的(u,i)点集。######计算方法
- 随机梯度下降法(stochastic gradient descent)
计算出每次的预测误差e,结合下降梯度参数γ来循环修正qi和pu。
此方法实现比较简单,收敛快,在某些情况下优于ALS。 交替最小二乘法(Alternating least squares)
对于Eauation 2而言,每次确定qi和pu中的一个,另一个就可以通过二次方程的最小值问题进行求解。这样交替求解可达到最终结果收敛。相比较来说,SGD比ALS更快更简便,而ALS可以并行,适用于密集数据的情况。
- 随机梯度下降法(stochastic gradient descent)
######修正偏差
根据用户u的评分习惯(评分偏高或偏低),项目I的普遍受欢迎情况(质量较高或较低)及所有用户和项目的全局平均评分,设定三个修正值:bu、bi、μ。因此进一步将Equation 2完善为:
######增加更多数据源
针对冷启动问题,在输入数据中增加被用户u表现出不明确倾向的项目集N(u),将N(u)中每个项目的Xi相加并标准化:另外增加用布尔值描述用户u的属性集A(u),来界定用户的年龄、收入等属性。针对每个属于A(u)的属性a,均对应一个f维空间的向量Ya来描述该特征人群的喜好。综合上述考虑,将Equation1完善为:
######增加时间维度
考虑到某个项目的受欢迎程度bi、用户的打分偏好bu和用户的喜好pu是随时间变化的,我们增加时间维度,将Equation 1修正为:######增加置信度
由于水军等因素的存在,有些评分数据的可信度较低。另外由于一些偶然因素的影响,用户的行为会出现一定随机性。在处理数据时这些因素都需要被排除,如果不增加置信度参数的话,最终预测结果会被歪曲。因此我们在矩阵分解中增加置信度参数,将Equation2修正如下:
矩阵分解法的修正结果比较
用Netflix的数据集来对以上提到的各种协同过滤方法的准确度作比较。用来评估的值是均方误差RMSE,RMSE越小表示预测结果越准确。
由图可见,增加时间维度和不明确反馈是提高预测准确率的关键步骤。
该篇论文从协同过滤引出潜在因素模型,进而引出矩阵分解法,及其修正偏差、增加数据源、增加时间纬度后的改进。总而言之,在协同过滤的推荐系统中,矩阵分解法有着重要地位。