@TOC
论文名称:Matrix Factorization Techniques for Recommender System
原文地址:Matrix Factorization
⚡本系列历史文章⚡
【推荐系统论文精读系列】(一)--Amazon.com Recommendations
【推荐系统论文精读系列】(二)--Factorization Machines
【推荐系统论文精读系列】(三)--Matrix Factorization Techniques For Recommender Systems
【推荐系统论文精读系列】(四)--Practical Lessons from Predicting Clicks on Ads at Facebook
【推荐系统论文精读系列】(五)--Neural Collaborative Filtering
【推荐系统论文精读系列】(六)--Field-aware Factorization Machines for CTR Prediction
【推荐系统论文精读系列】(七)--AutoRec Autoencoders Meet Collaborative Filtering
【推荐系统论文精读系列】(八)--Deep Crossing:Web-Scale Modeling without Manually Crafted Combinatorial Features
【推荐系统论文精读系列】(九)--Product-based Neural Networks for User Response Prediction
【推荐系统论文精读系列】(十)--Wide&Deep Learning for Recommender Systems
【推荐系统论文精读系列】(十一)--DeepFM A Factorization-Machine based Neural Network for CTR Prediction
【推荐系统论文精读系列】(十二)--Neural Factorization Machines for Sparse Predictive Analytics
一、推荐系统策略
现在推荐系统一般是基于两种策略,一种是基于文本过滤的方式,另外一种是协同过滤,而基于文本过滤的方法是创造画像为用户或者物品,说白了就是用一些描述性的特征去描述它们,例如对于一部电影来说,可以为其创造画像电影类型、导演、演员、电影市场、票房等来进行描述,对于用户来说,可以用一些人口统计特征来进行描述。
这些画像信息可以将不同的用户和物品联系起来,当然这是非常好的,但是也会存在一个问题就是:这些信息往往是很难获得的。
一个成功的基于文本过滤的项目就是Music Genome Project,它现在受用于Pandora.com的广播服务。一些训练有素的音乐分析师根据数以百计的音乐特征,将这个音乐基因组项目的音乐进行了打分。
这些属性或者说是基因不仅捕捉了歌曲的音乐特性还捕捉了一些重大的品质,这些品质与理解听者音乐偏好是相关的。
而且一个可供选择的方式就是基于使用用户过去的行为,例如,用户前端时间的事务操作或者商品的一些评分,好处就是不需要显示的画像信息,这种方式被广泛叫做协同过滤,这是被Tapestry创造的,协同过滤分析了用户和众多物品之间的依赖关系去分析新物品和新用户之间的联系。
协同过滤主要的特点就是它是免费的在某些领域,然后它是不可解决一些数据层面,经常是那些难以捉摸或者很困难去使用文本过滤的时候。
协同过滤是比文本过滤更加精确的,但是协同过滤会面临一个问题就是它们会遭受冷启动的问题,冷启动就是当一个新用户来的时候,我们会没用用户画像,所以在这种情况,我们发现文本过滤是更加好的方式。
基于协同过滤有两个主要的方式就是邻域方式,另外一种就是隐语义模型,基于近邻的方式是集中计算物品间或者用户间的关系。面向物品的方式就是,通过同一用户进行打分,然后判断其相似度,而基于用户的就是寻求不同用户的相似度。
隐语义模型是另外一种方式,它可以从另外一种方式去解释评分再现矩阵,它可以推断出用户为什么喜欢某物品,使用向量矩阵的方式。对于电影来说,挖掘的隐特征可以衡量明显的维度,例如戏剧或者喜剧,是动作的还是面向孩童的,或者是那些较不明确的,例如电影中角色特征的深浅或者古怪,或者那些完全不可解释的特征。
对于用户,每个隐特征可视衡量电影为什么会为电影打分。
二、矩阵分解方式
最成功的方式去实现隐语义模型就是基于矩阵分解。它的基本形式就是从用户物品评分矩阵中推断出物品和用户的隐特征。高度一致对应的隐特征会构成完整的推荐系统。
这种方式已经通过结合可伸缩性和高精度已经变得很广泛了,此外,它们已经提供了不同种真实情况的更多灵活性。
这种推荐系统依赖不同种的输入数据,经常会被放置到一个矩阵中,其中一个维度会呈现用户,而另外一个维度会呈现物品的兴趣。最方便的就是高质量的显示反馈,包括一些显示数据通过用户关于它们对一些物品的兴趣。
例如网飞公司会收集明星收视率,或者表明用户兴趣对电影节目的偏好,通过用户对那些电影节目的点赞或者不喜欢的按钮。我们推断显示的用户反馈作为评分。通常显示反馈会构成一个巨大的稀疏矩阵,因为对于任何一个单一用户仅仅会评价小部分百分比的物品。
分解矩阵的一个优点就是它允许兼并额外的信息。当显示反馈数据很难获得时,推荐系统就可以使用隐式反馈,间接的反映观测用户的意见,例如用户的购买历史,搜索方式,或者鼠标操作。隐式反馈通常可以表示一个特征是否会被呈现,所以它通常被一个稠密矩阵所表示。
三、一个基本的矩阵分解模型
矩阵分解将用户和物品的信息映射到一个空间维度中,使用用户物品评分交互矩阵进行建模通过这个空间维度向量的内积形式。
每个物品i会有一个向量,而且每个用户u也会被联系一个向量,对于物品向量它衡量的是这个物品是多么符合隐特征,而用户向量是一个用户对这些隐特征多么偏爱。
现在最主要的问题就是如果计算这个用户物品向量匹配矩阵,在推荐系统匹配后,是很容易的评估一个用户的评分。
这样的模型是密切相关的关于奇异值分解,一个广泛用于信息检索的用于识别潜在语义特征,应用SVD到矩阵分解会存在一个问题就是我们的评分矩阵式稀疏的,而一般SVD需要的矩阵是稠密的,这样会给我们的工作提升极大的难度。
早期的系统依赖于计算填充评分矩阵或者是评分矩阵变得稠密,可是填充数据是非常贵的,此外,计算精度可能会扰乱数据。因此现在越来越多的工作会直接建立在评分矩阵,同时避免过度拟合会通过一个正则化的模型,为了学习隐向量,我们会最小化一个均方误差:
这个系统会学习模型通过拟合先前的观测到的数据。可是我们的目标是概括这些先前的评分通过一种方式去预测未来未知的评分,因此这个系统应该避免过度拟合观测到的数据通过正则化学习到的参数那些可以被惩罚的参数,常数
四、学习算法
两种方式去最小化优化方程分别是随机梯度下降和交替最小二乘(ALS)。
4.1 Stochastic gradient descent
首先我们会根据原评分矩阵计算误差:
然后我们会通过按照一定比例进行修改参数,向着梯度的反方向下降:
这个受欢迎的计算是非常快的,然而在一些情况,是更加好的使用ALS进行优化。
4.2 Alternating least squares
由于我们的分解矩阵是未知的,所以优化方程不是凸的,然而,如果我们填补一个未知的,那么我们的优化问题就会变成二次型的并且可以求得最优解。
因此,ALS方法会翻转两个矩阵的向量,不断交替进行填补,然后分解进行优化,这样就确保每步都会减小直至收敛。
然后在一些时候,随机梯度下降收敛是更加快的比ALS。但是ALS也有两种情况是由于随机梯度下降的,第一种是这个系统可以使用并行化,第二个是系统会计算隐式数据。因为训练集不能够被考虑的稀疏,就像每个单一数据集,而对于梯度下降是不实际的。
五、增加偏置项
基于协同过滤的矩阵分解是它的灵活性去处理不同的数据和其它的一些特定需求,这需要保持计算要在相同的框架下进行计算。
上面我们已经获得了优化方程以及梯度更新公式,然后可以使用梯度下降法进行求解,但是此时会存在问题,结果可能有所偏差。
原因是有一些因素还没有考虑到,我们只是考虑用户矩阵和物品矩阵,这两个矩阵分别代表用户、物品与那些隐特征之间的联系,没有考虑到一些个人或者物品自身的一些影响。
比如说现在长津湖电影是非常火的,那么它的评分一定是很高的,但是它不一定都与用户有关系,一定程度上有它自身的因素影响,比如说里面的演员很出名或者上映时间等,这些与用户是没有关系的。
再比如一个用户是比较批判的,不管他观看什么类型的电影最终给出的评分都是比较低的,这个与电影就没什么关系了,单纯是个人因素影响。
所以针对这些问题,只考虑两个矩阵显然是不科学的,还需要在原来基础上加入一些偏置项来消除用户和物品打分的偏差,即:
这个预测公式加入了3项偏置
-
网络异常,图片无法展示|
-
网络异常,图片无法展示|网络异常,图片无法展示|
-
网络异常,图片无法展示|网络异常,图片无法展示|
加入偏置项后的优化函数为:
对于新加入的偏置项的梯度为:
六、添加输入源
一个推荐系统必须要能够处理冷启动问题,对于一些用户供应的评分,使它是很困难的达到它们的口味。
一种方式去缓解这个问题就是去兼并额外的数据源关于用户的,推荐系统能够使用隐式反馈去连接用户的偏好。事实上,它们获得了举止的信息不管用户的意愿去提供显示评分,零售商可以使用顾客的购买或者浏览历史去学习它们的趋向,除了那些它们可以提供的评分。
为了简单,考虑一个布尔反馈,会显示用户的隐式偏好,这种方式,系统画像会被隐式的推断,这是一个用户的偏好会被一个向量所表示。
但是通常这个指标通常会被正则化,另外一个人口信息源就是用户的属性,例如,人口统计特征。这是也可以使用一个向量去去描述一个用户通过用户的画像属性。
这个分解矩阵模型应该继承所有的信号源用于增强用户的表现。
然而先前的例子去处理增强用户的呈现,当必要的时候事物会得到相似的对待。
七、时间动态
之前讲过的模型都是基于静态的,在事实中,商品的感知和受欢迎程度都会不断地改变随着新选择的不断涌现,相似用户的偏好倾向同样也会改变,导致他们会有不同的爱好。因此这个系统应该要加入时间动态效应,考虑时间动态效应对用户物品的交互影响。
分解矩阵导致者模型时间效应,它是非常重要的证实精度,分解分数不同的方式去允许系统去对待不同的动态时间效应。特别地,下列的都会随着时间改变,包括物品偏置,用户偏置和用户偏好,因为这些都是会随着时间改变的。
第一个时间效应就是一个物品的受欢迎程度可能随着时间改变,例如,电影的受欢迎程度可能会有所改变根据一个电影演员的新偏好。因此这些模型的偏置是会随着时间而改变的,第二个就是用户在不同的时间可能会打出不同的分数,例如一个用户可能在一段时间会打出高分,但是在有些时间或者针对不同的电影也会打出不同的评分。因此那些偏置都应该是t的函数,随着时间而变化。
八、不同置信水平的输入
在一些情况,不是所有的观测数据都会有相同的权重或者置信度水平。例如,大量的广告可能会影响不同物品的评分,不是所有的物品都会有长期特点,同样,一个系统可能面对很多敌对的用户尝试去倾斜某些物品的评分。
另外一个例子就是围绕隐式反馈的系统,在这样的系统,一些用户正在进行的行为是很难进行量化的。因此系统工作是一个粗狂的二进制表达,要么是对商品感兴趣要么是不感兴趣,在这种情况,它是很值得去联系置信水平和评估偏好。置信水平来源于大量的数值,就是那些描述行为的频率,例如一个用户看某个节目多长时间,或者一个用户买了一个物品的次数,这些数值会表明用户的置信度。和用户没有关系的那些因素可能造成一次性事件,然而一个重复的事件是更加有可能的反映出用户的意见。
分解矩阵模型轻易的会接受不同的置信水平,它会给与较少的权重给那些不太重要的观测值。
References
1.D. Goldberg et al., “Using Col- laborative Filtering to Weave an Information Tapestry,” Comm. ACM, vol. 35, 1992, pp. 61-70.
2.B.M. Sarwar et al., “Application of Dimensionality Reduction in Recommender System—A Case Study,” Proc. KDD Workshop on Web Mining for e-Commerce: Challenges and Opportunities (WebKDD), ACM Press, 2000.
3.S. Funk, “Netflix Update: Try This at Home,” Dec. 2006; http://sifter.org/~simon/journal/20061211.html.
4.Y. Koren, “Factorization Meets the Neighborhood: A Multifaceted Collaborative Filtering Model,” Proc. 14th ACM SIGKDD Int’l Conf. Knowledge Discovery and Data Mining, ACM Press, 2008, pp. 426-434.
5.A. Paterek, “Improving Regularized Singular Value Decomposition for Collaborative Filtering,” Proc. KDD Cup and Workshop, ACM Press, 2007, pp. 39-42.
6.G. Takács et al., “Major Components of the Gravity Recommendation System,” SIGKDD Explorations, vol. 9, 2007, pp. 80-84.
7.R. Salakhutdinov and A. Mnih, “Probabilistic Matrix Factorization,” Proc. Advances in Neural Information Processing Systems 20 (NIPS 07), ACM Press, 2008, pp. 1257-1264.
8.R. Bell and Y. Koren, “Scalable Collaborative Filtering with Jointly Derived Neighborhood Interpolation Weights,” Proc. IEEE Int’l Conf. Data Mining (ICDM 07), IEEE CS Press, 2007, pp. 43-52.
9.Y. Zhou et al., “Large-Scale Parallel Collaborative Filtering for the Netflix Prize,” Proc. 4th Int’l Conf. Algorithmic Aspects in Information and Management, LNCS 5034, Springer, 2008, pp. 337-348.
10.Y.F. Hu, Y. Koren, and C. Volinsky, “Collaborative Filtering for Implicit Feedback Datasets,” Proc. IEEE Int’l Conf. Data Mining (ICDM 08), IEEE CS Press, 2008, pp. 263-272.
11.Y. Koren, “Collaborative Filtering with Temporal Dynamics,” Proc. 15th ACM SIGKDD Int’l Conf. Knowledge Discovery and Data Mining (KDD 09), ACM Press, 2009, pp. 447-455.
12.J. Bennet and S. Lanning, “The Netflix Prize,” KDD Cup and Workshop, 2007; www.netflixprize.com.