矩阵分解(Koren等人,2009 年)是推荐系统文献中公认的算法。矩阵分解模型的第一个版本是由 Simon Funk 在一篇著名的博文中提出的他在其中描述了分解交互矩阵的想法。由于 2006 年举行的 Netflix 竞赛,它变得广为人知。当时,媒体流媒体和视频租赁公司 Netflix 宣布了一项提高其推荐系统性能的竞赛。能够在 Netflix 基准(即 Cinematch)上提高 10% 的最佳团队将赢得 100 万美元的奖金。因此,本次比赛引起了推荐系统研究领域的广泛关注。随后,大奖由 BellKor 的 Pragmatic Chaos 团队获得,该团队由 BellKor、Pragmatic Theory 和 BigChaos(您现在无需担心这些算法)组成。尽管最终得分是集成解决方案(即许多算法的组合)的结果,矩阵分解算法在最终混合中发挥了关键作用。Netflix大奖解决方案技术报告( Töscher et al. , 2009 )详细介绍了所采用的模型。在本节中,我们将深入探讨矩阵分解模型及其实现的细节。
21.3.1。矩阵分解模型
矩阵分解是一类协同过滤模型。具体来说,该模型将用户-项目交互矩阵(例如,评分矩阵)分解为两个低秩矩阵的乘积,捕获用户-项目交互的低秩结构。
让R∈Rm×n表示交互矩阵m用户和n项和值R表示明确的评级。用户-项目交互将被分解为用户潜在矩阵 P∈Rm×k和一个项目潜在矩阵 Q∈Rn×k, 在哪里 k≪m,n, 是潜在因子大小。让pu 表示uth一排P和 qi表示ith一排 Q. 对于给定的项目i, 的元素 qi衡量项目在多大程度上拥有电影的流派和语言等特征。对于给定的用户u, 的元素pu衡量用户对物品相应特征的兴趣程度。这些潜在因素可能会衡量那些示例中提到的明显维度,或者完全无法解释。预测评级可以通过以下方式估算
在哪里R^∈Rm×n是预测的评分矩阵,其形状与R. 该预测规则的一个主要问题是无法对用户/项目偏差进行建模。例如,一些用户往往会给出较高的评分,或者某些项目由于质量较差而总是获得较低的评分。这些偏差在实际应用中很常见。为了捕获这些偏差,引入了特定于用户和特定于项目的偏差项。具体来说,预测评分用户u给项目i计算方式
然后,我们通过最小化预测评分和实际评分之间的均方误差来训练矩阵分解模型。目标函数定义如下:
在哪里λ表示正则化率。正则化项 λ(‖P‖F2+‖Q‖F2+bu2+bi2) 用于通过惩罚参数的大小来避免过度拟合。这