【推荐系统论文精读系列】(三)--Matrix Factorization Techniques For Recommender Systems

简介: 现在推荐系统一般是基于两种策略,一种是基于文本过滤的方式,另外一种是协同过滤,而基于文本过滤的方法是创造画像为用户或者物品,说白了就是用一些描述性的特征去描述它们,例如对于一部电影来说,可以为其创造画像电影类型、导演、演员、电影市场、票房等来进行描述,对于用户来说,可以用一些人口统计特征来进行描述。

@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.

目录
相关文章
|
1月前
|
设计模式 搜索推荐 测试技术
电影推荐系统的设计与实现(论文+系统)_kaic
电影推荐系统的设计与实现(论文+系统)_kaic
|
机器学习/深度学习 搜索推荐 算法
基于协同过滤的旅游推荐系统设计与实现(论文+源码)_kaic
摘要:旅游已经成为了大众节假日放松的主要方式,但因为不熟悉旅游地点带来的选择困难却是不可避免的。随着旅游业的发展旅游行业越来越信息化,用户获取旅游景点信息更加方便。然而,用户在选择旅游目的地时,往往会面对海量的景点信息,这导致他们难以找到适合自己的景点,同时也费时费力 。数量众多的旅游景点存在着信息过载现象且日益严重,用户在网上查找时很难真正搜索到自己感兴趣的旅游景点,对此推荐系统是一种行之有效的解决方法。目前推荐系统已在电影、新闻、音乐、电子商务等方面应用广泛,但在旅游领域还未广泛使用。各大旅游网站多是提供信息查询及订票服务,因此本文将协同过滤算法应用于旅游景点的推荐。
|
SQL 存储 搜索推荐
基于线上考研资讯数据抓取的推荐系统的设计与实现(论文+源码)_kaic
随着互联网的飞速发展,互联网在各行各业的应用迅速成为众多学校关注的焦点。他们利用互联网提供电子商务服务,然后有了“考研信息平台”,这将使学生考研的信息平台更加方便和简单。 对于考研信息平台的设计,大多采用java技术。在设计了一个搭载mysal数据库的全人系统,是根据目前网上考研信息平台的情况,专门开发的,专门根据学生的需要,实现网上考研信息平台的在线管理,并定期进行各种信息存储,进入考研信息平台页面后,即可开始操作主控界面。系统功能包括学生前台:首页、考研信息、申请指南、资料信息、论坛信息、我的、跳转到后台、购物车、客服、管理员:首页、人人中心、研究生信息管理、学生管理、申请指南管理、资料信
|
搜索推荐 安全 关系型数据库
基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic
最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的需求情况,以至于推荐效果差强人意。与此同时,这种信息数字化的新学习方法在给学生群体带来方便的同时,也带来了很多其他的问题,例如信息冗杂、形式让人眼花缭乱的问题,导致系统检索变得难以运行。 解决问题的关键是个性化学习推荐系统,它适合于各式各样的用户产生的各式各样的需求。
|
人工智能 搜索推荐 算法
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
239 0
|
机器学习/深度学习 搜索推荐 TensorFlow
【推荐系统】TensorFlow复现论文Wide&Deep网络结构
【推荐系统】TensorFlow复现论文Wide&Deep网络结构
148 0
【推荐系统】TensorFlow复现论文Wide&Deep网络结构
|
搜索推荐 TensorFlow 数据处理
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
101 1
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
|
搜索推荐 算法
十六、推荐系统(Recommender systems)
十六、推荐系统(Recommender systems)
十六、推荐系统(Recommender systems)
|
搜索推荐 TensorFlow 数据处理
【推荐系统】TensorFlow复现论文PNN网络结构
【推荐系统】TensorFlow复现论文PNN网络结构
96 0
【推荐系统】TensorFlow复现论文PNN网络结构
|
搜索推荐 TensorFlow 算法框架/工具
【推荐系统】TensorFlow复现论文NeuralCF网络结构
【推荐系统】TensorFlow复现论文NeuralCF网络结构
146 0
【推荐系统】TensorFlow复现论文NeuralCF网络结构