点击上方蓝字“小透明的推荐之路”一起学习吧
MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS
前言(Foreword)
本篇文章是由来自Yahoo Research的Koren等人在2009年发表在IEEE Computer Society期刊上。矩阵分解用于推荐系统最早是 Simon、Funk等人在 Netflix比赛的评分任务,提出了Funk-SVD算法。之后的研究改进了矩阵分解, 并且提供了很多变种,例如本文。
背景(Background)
由于信息过载问题,现代用户被选择给淹没。给用户匹配最合适的物品能够提高用户的满意度和忠实度。因此,很多的零售商开始对可以给用户提供个性化推荐的推荐系统感兴趣。推荐系统在一些娱乐产品如电影、音乐、商品交易等有了用武之地。
总的来说,推荐系统基于两个策略(当时):基于内容的过滤方法(创建一个轮廓(profile)来描述用户或者物品的本质)和协同过滤方法。
基于内容的过滤(Content Filtering Approach)
例如,一个电影轮廓可以包括关于它的类型、参与的演员、它的票房的受欢迎程度,等等。用户资料可能包括人口统计信息或在适当的调查表上提供的答案。这些轮廓允许程序将用户与匹配的产品关联起来。当时,一个非常成功的内容过滤是the Music Genome Project,它被应用在Pandora.com。
协同过滤(Colaborative Filtering)
只依赖于过去的用户行为,例如,以前的交易或物品的评级,而不需要创建显式的轮廓配置信息,这种方法被称为协同过滤,这是Tapestry的开发人员创造的一个术语,Tapestry是第一个推荐系统。协同过滤分析用户之间的关系和产品之间的相互依赖关系,以识别新的用户-物品的关联。协同过滤的一个主要优点是它是领域自由的,它可以解决数据方面的问题,而这些问题通常很难用内容过滤来分析。尽管协同过滤通常比基于内容的技术更准确,但它存在所谓的冷启动问题,因为它无法处理系统的新产品和用户,在这方面,内容过滤是优越的。
协同过滤两个主要的方法是:基于邻域方法和隐语义模型。
基于邻域的方法(Neighborhood Methods )
基于邻域方法由于计算的关系不同(物品/用户)被分为基于物品的协同过滤和基于用户的协同过滤。
面向物品的方法基于同一用户对“邻近”物品的评分来评估用户对某个物品的偏好。一个物品的邻居是同一个用户打出相似评分的其他物品。比如电影《拯救大兵瑞恩》。它的邻居可能包括战争片,斯皮尔伯格的电影,汤姆汉克斯的电影,等等。为了预测某个特定用户对《拯救大兵瑞恩》的评分,我们会寻找该用户实际评价的电影的最近邻居。
面向用户的方法是去找到志同道合(相似)的用户,这些用户可以互相补充各自的评分,如下图所示。
隐语义模型(Latent Factor Model)
隐语义模型通过根据评分模式推断出的20到100个因子来表征物品和用户,从而试图解释评分。对于电影来说,发现的因素可能会衡量明显的维度,例如喜剧与戏剧,动作量或对儿童的定向;不太明确的尺寸,例如角色发展的深度或古怪成都;亦或者是完全无法解释的尺寸。对于用户来说,每个因素都会衡量用户对在相应电影的喜欢程度。
下图以二维的简化示例说明了这种想法。考虑两个假设维度,分别是面向女性和男性(x轴)以及严肃与逃避(y轴)。该图显示了这两个维度上可能有几部著名电影和一些虚拟用户。对于此模型,相对于电影的平均评分,用户对电影的预测评分将等于电影和用户在图表上位置的点积。例如,我们希望Gus 喜欢Dumb和Dumber,讨厌The Color Purple,并且将《勇敢的心》(Braveheart)评为平均水平。
矩阵分解方法(MatRix Factorization Methods)
一些最成功的潜在因素模型的实现是基于矩阵分解的。在其基本形式中,矩阵分解通过从物品评分模式中推断出的隐向量来表征物品和用户。推荐系统依赖于不同类型的输入数据,这些输入数据通常放置在一个矩阵中,其中一个维度表示用户,另一维度表示物品。
输入的数据集分为两类:
最方便的数据是高质量的显式反馈,其中包括用户对其物品兴趣的显式输入。例如,Netflix收集电影的星级评分。我们将明确的用户反馈称为评分。通常,显式反馈包含一个稀疏矩阵,因为任何单个用户都可能只对可能物品的一小部分进行了评分。
当没有明确的反馈时,推荐系统可以使用隐式反馈来推断用户的偏好,隐式反馈通过观察用户的行为(包括购买历史,浏览历史,搜索模式甚至鼠标移动)来间接反映意见。隐式反馈通常表示事件的存在或不存在,因此通常由密集填充的矩阵表示。
最基础的矩阵分解模型(Basic Matrix Factorization Model)
矩阵分解模型将用户和物品都映射到维数为的联合潜在因子空间,并将用户和物品的交互建模为两者之间的内积操作。
定义:对于每一个物品表征为隐向量,每一个用户表征为隐向量,内积代表了物品和用户之间的交互,即用户对物品特性的兴趣程度(评分),用户对物品的真实评分为,评分估计可被公式化为:
为了学习隐向量(和),系统通过最小化正则化后的均方误差:
文章使用两个方法来最小化上式:随机梯度下降法(stochastic gradient descent)和最小二乘法(alternating least squares)。
随机梯度下降法
对于每一个训练样本,系统需要预测的真实评分与计算得出的评分之间的误差为:
然后沿着梯度的反方向以步长来修改其中的参数:
最小二乘法
ALS轮换来拟合和。当被拟合时,系统会通过解决最小二乘问题来重新计算,反之亦然。
添加偏置(Adding Biaes)
虽然基本的矩阵分解可以捕获用户和物品之间的交互,但是,观察到的许多评分变化是由于与用户或物品相关的影响(称为偏差)所致,而与任何交互无关。例如,典型的协同过滤数据表现出较大的系统性倾向,有些用户给出的评分比其他用户高,有些物品得到的评分比其他项目高,因为有些物品被普遍认为比其他物品更好(或更差)。
因此单纯用内积的交互来解释一个评分值是比较粗糙的。因此,使用偏置来解释用户/物品的自身影响:
其中被定义为总平均评分(例如单个用户对所有电影的平均评分),参数和分别表示物品和用户的偏置,将偏置加入最终的评分中:
评分被分解为四项:总平均得分,物品偏置,用户偏置和物品用户的交互。
故损失函数为:
隐式反馈----额外的输入源(AdditionaL Input Sources)
推荐系统总会面临一个冷启动问题,一个缓解这个问题的方案是添加额外的用户信息源。推荐系统可以使用隐式反馈来深入了解用户的偏好。实际上,无论用户是否愿意提供明确的评分,他们都可以收集行为信息。零售商除了可以提供客户的评价外,还可以使用其客户的购买或浏览历史记录来了解其趋势。
简单起见,定义一个来表示用户隐式偏好的物品集。对于物品关联一个向量(等于对每一个物品的隐式偏好做一个one-hot编码)。因此,一个用户的偏爱对于在中的物品来说可以形容为一个向量:
归一化后,
另一个信息源是用户属性,定义一个布尔属性来表示用户相关的信息,如性别、年龄、组群、所在地的邮编、收入水平等,对于每一个属性可以用一个向量表示,,一个用户的所有属性表示为:
矩阵分解模型整合输入源,最后的评分形式为:
时间的动态性(TemporaL Dynamics)
实际上,随着新选择的出现,物品的感知度和受欢迎度会不断变化。同样,用户的喜好也在不断发展,导致他们重新定义了品味。矩阵分解方法非常适合于对时间效应进行建模,从而可以显着提高准确性。将评分分解为不同的项可以使系统分别处理不同的时间方面。
一个评分项中随着时间的改变发生变化的有:物品偏置,用户偏置以及用户偏好。最终评分形式可以变为:
输入中不同的置信度水平(Inputs With Varying Confidence Levels)
并非所有观察到的评分都应具有相同的权重或置信度。例如,大规模广告可能会影响某些物品的投票,而这些投票不能恰当地反映长期特征。同样,系统可能会遇到试图倾斜某些商品的评分的敌对用户。
另一个示例是围绕隐式反馈构建的系统。在这种解释持续的用户行为的系统中,用户的确切偏好很难量化。因此,该系统使用“可能喜欢该产品”或“可能对该产品不感兴趣”来表示偏好。在这种情况下,将置信度得分与估计的偏好相联系是很有价值的。置信度可以来自描述动作频率的可用数值,例如,用户观看特定节目的时间或用户购买特定物品的频率。这些数值表示每个观察结果的置信度。与用户偏好无关的各种因素都可能导致一次性事件。但是,重复发生的事件更可能反映用户的意见。
矩阵分解模型中给出一个置信度水平,对无意义的观测给出一个较低的权重,对于每一个评分的置信度为,最终代价函数形式为:
实验(Experiment)
通过对Netflix用户电影矩阵进行因子分解,可以发现最具描述性的维度来预测电影偏好。可以从矩阵分解中找出前几个最重要的维度,并探索电影在这个新空间中的位置,如下图所示,作者选取了矩阵分解中两个最重要的维度。
电影根据其因子向量进行放置。第一个因子向量(x轴)的一侧是针对男性或青少年观众的低俗喜剧和恐怖电影(Half Baked,Freddy vs. Jason),而另一侧则包含带有严肃色彩和坚强女性的戏剧或喜剧(Sophie’s Choice, Moonstruck)。第二个分解轴(y轴)的顶部是独立的,广受好评的古怪电影(Punch-Drunk Love,I Heart Huckabees),底部是主流的公式化电影( Armageddon,Runaway Bride)。这些边界之间存在有趣的交集:在左上角,独立与低俗相遇的是(Kill Bill)《杀死比尔》和(Natural Born Killers)《天生杀手》,这两部附庸风雅的电影都以暴力主题为背景。在右下角,严肃的女性主导的电影与主流的人群讨好,(The Sound of Music)《音乐之声》。在中间,吸引所有类型的是(The Wizard of Oz)《绿野仙踪》。
下图显示显示了不同的模型和参数数量如何影响RMSE以矩阵分解不断发展的实现方式的性能:普通矩阵分解,添加偏置,增加隐式反馈以及两种添加时间成分的变体。
我们分析可得到结论:更为复杂的矩阵分解模型(其描述涉及更多不同的参数集)更加准确。实际上,时间成分对于建模尤为重要,因为数据中存在明显的时间影响。
总结(Conclusion)
在协同过滤算法中,矩阵分解技术是一种主流的方法。并且模型可以自然地集成数据的许多关键方面,例如多种形式的反馈,时间动态和置信度。
End
▼更多精彩内容,请长按二维码▼