携程最新基于深度学习的混合协同过滤模型论文学习和分享

近些年,深度学习在语音识别、图像处理、天然语言处理等领域都取得了很大的突破与成就。相对来讲,深度学习在推荐系统领域的研究与应用还处于早期阶段。算法

携程在深度学习与推荐系统结合的领域也进行了相关的研究与应用,并在国际人工智能顶级会议AAAI 2017上发表了相应的研究成果《A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems》,本文将分享深度学习在推荐系统上的应用。数组

1、推荐系统介绍

推荐系统的功能是帮助用户主动找到知足其偏好的个性化物品并推荐给用户。推荐系统的输入数据能够多种多样,概括起来分为用户(User)、物品(Item)和评分(Ratings)三个层面,它们分别对应于一个矩阵中的行、列、值。对于一个特定用户,推荐系统的输出为一个推荐列表,该列表按照偏好得分顺序给出了该用户可能感兴趣的物品。网络

 

图片描述
图1. 推荐系统问题描述

 

如图1右边所示,推荐问题一个典型的形式化描述以下:咱们拥有一个大型稀疏矩阵,该矩阵的每一行表示一个User,每一列表示一个Item,矩阵中每一个“+”号表示该User对Item的Rating,(该分值能够是二值化分值,喜欢与不喜欢;也能够是0~5的分值等)。ide

如今须要解决的问题是:给定该矩阵以后,对于某一个User,向其推荐那些Rating缺失的Item(对应于矩阵中的“?”号)。有了如上的形式化描述以后,推荐系统要解决的问题归结为两部分,分别为预测(Prediction)与推荐(Recommendation)。函数

“预测”要解决的问题是推断每个User对每个Item的偏心程度,“推荐”要解决的问题是根据预测环节所计算的结果向用户推荐他没有打过度的Item。但目前绝大多数推荐算法都把精力集中在“预测”环节上,“推荐”环节则根据预测环节计算出的得分按照高低排序推荐给用户,本次分享介绍的方案主要也是”预测”评分矩阵R中missing的评分值。性能

2、基于协同过滤的推荐

基于协同过滤的推荐经过收集用户过去的行为以得到其对物品的显示或隐式信息,根据用户对物品的偏好,发现物品或者用户的相关性,而后基于这些关联性进行推荐。 
其主要能够分为两类:分别是memory-based推荐与model-based推荐。其中memory-based推荐主要分为Item-based方法与User-based方法。协同过滤分类见图2。学习

 

图片描述
图2. 协同过滤分类

 

Memory-based推荐方法经过执行最近邻搜索,把每个Item或者User当作一个向量,计算其余全部Item或者User与它的类似度。有了Item或者User之间的两两类似度以后,就能够进行预测与推荐了。优化

 

图片描述
图3. 矩阵分解示意图

 

Model-based推荐最多见的方法为Matrix factorization,其示意图见图3左边。矩阵分解经过把原始的评分矩阵R分解为两个矩阵相乘,而且只考虑有评分的值,训练时不考虑missing项的值,如图3右边所示。R矩阵分解成为U与V两个矩阵后,评分矩阵R中missing的值就能够经过U矩阵中的某列和V矩阵的某行相乘获得。矩阵分解的目标函数见图3,U矩阵与V矩阵的能够经过梯度降低(gradient descent)算法求得,经过交替更新u与v屡次迭代收敛以后可求出U与V。编码

矩阵分解背后的核心思想,找到两个矩阵,它们相乘以后获得的那个矩阵的值,与评分矩阵R中有值的位置中的值尽量接近。这样一来,分解出来的两个矩阵相乘就尽量还原了评分矩阵R,由于有值的地方,值都相差得尽量地小,那么missing的值经过这样的方式计算获得,比较符合趋势。人工智能

协同过滤中主要存在以下两个问题:稀疏性与冷启动问题。已有的方案一般会经过引入多个不一样的数据源或者辅助信息(Side information)来解决这些问题,用户的Side information能够是用户的基本我的信息、用户画像信息等,而Item的Side information能够是物品的content信息等。例如文献[1]提出了一个Collective Matrix Factorization(CMF)模型,如图4所示。

 

图片描述
图4. Collective Matrix Factorization模型

 

CMF模型经过分别分解评分矩阵R,User的side information矩阵,Item的side information矩阵,其中User或者Item出如今多个矩阵中,其所分解的隐向量都是一致的。

3、深度学习在推荐系统中的应用

Model-based方法的目的就是学习到User的隐向量矩阵U与Item的隐向量矩阵V。咱们能够经过深度学习来学习这些抽象表示的隐向量。

Autoencoder(AE)是一个无监督学习模型,它利用反向传播算法,让模型的输出等于输入。文献[2]利用AE来预测用户对物品missing的评分值,该模型的输入为评分矩阵R中的一行(User-based)或者一列(Item-based),其目标函数经过计算输入与输出的损失来优化模型,而R中missing的评分值经过模型的输出来预测,进而为用户作推荐,其模型如图5所示。

 

图片描述
图5. Item-based AutoRec模型

 

Denoising Autoencoder(DAE)是在AE的基础之上,对输入的训练数据加入噪声。因此DAE必须学习去除这些噪声而得到真正的没有被噪声污染过的输入数据。所以,这就迫使编码器去学习输入数据的更加鲁棒的表达,一般DAE的泛化能力比通常的AE强。Stacked Denoising Autoencoder(SDAE)是一个多层的AE组成的神经网络,其前一层自编码器的输出做为其后一层自编码器的输入,如图6所示。

 

图片描述
图6. SDAE

 

文献[3]在SDAE的基础之上,提出了Bayesian SDAE模型,并利用该模型来学习Item的隐向量,其输入为Item的Side information。该模型假设SDAE中的参数知足高斯分布,同时假设User的隐向量也知足高斯分布,进而利用几率矩阵分解来拟合原始评分矩阵。该模型经过最大后验估计(MAP)获得其要优化的目标函数,进而利用梯度降低学习模型参数,从而获得User与Item对应的隐向量矩阵。其图模型如图7所示。

 

图片描述
图7. Bayesian SDAE for Recommendation Sysytem

 

在已有工做的基础之上,携程基础BI算法团队经过改进现有的深度模型,提出了一种新的混合协同过滤模型,并将其成果投稿与国际人工智能顶级会议AAAI 2017并被接受。该成果经过利用User和Item的评分矩阵R以及对应的Side information来学习User和Item的隐向量矩阵U与V,进而预测出评分矩阵R中missing的值,并为用户作物品推荐。

 

图片描述
图8. Additional Stacked Denoising Autoencoder(aSDAE)

 

该成果中提出了一种Additional Stacked Denoising Autoencoder(aSDAE)的深度模型用来学习User和Item的隐向量,该模型的输入为User或者Item的评分值列表,每一个隐层都会接受其对应的Side information信息的输入(该模型灵感来自于NLP中的Seq-2-Seq模型,每层都会接受一个输入,咱们的模型中每层接受的输入都是同样的,所以最终的输出也尽量的与输入相等),其模型图见图8。

结合aSDAE与矩阵分解模型,咱们提出了一种混合协同过滤模型,见图9所示。该模型经过两个aSDAE学习User与Item的隐向量,经过两个学习到隐向量的内积去拟合原始评分矩阵R中存在的值,其目标函数由矩阵分解以及两个aSDAE的损失函数组成,可经过stochastic gradient descent(SGD)学习出U与V。

 

图片描述
图9. 混合协同过滤模型

 

咱们利用RMSE以及RECALL两个指标评估了咱们模型的效果性能,而且在多个数据集上和已有的方案作了对比实验。实验效果图如图10所示,实验具体详情可参看咱们的paper。

 

图片描述
图10. 实验效果对比

 

在今年的推荐系统顶级会议RecSys上,Google利用DNN来作YouTube的视频推荐[5],其模型图如图11所示。经过对用户观看的视频,搜索的关键字作embedding,而后在串联上用户的side information等信息,做为DNN的输入,利用一个多层的DNN学习出用户的隐向量,而后在其上面加上一层softmax学习出Item的隐向量,进而便可为用户作Top-N的推荐。

 

图片描述
图11. YouTube推荐模型图

 

此外,文献[6]经过卷积神经网络(CNN)提出了一种卷积矩阵分解,来作文档的推荐,该模型结合了几率矩阵分解(PMF)与CNN模型,图见图12所示。该模型利用CNN来学习Item的隐向量,其对文档的每一个词先作embedding,而后拼接全部词组成一个矩阵embedding矩阵,一篇文档便可用一个二维矩阵表示,其中矩阵的行即为文档中词的个数,列即为embedding词向量的长度,而后在该矩阵上作卷积、池化以及映射等,便可获得item的隐向量。User的隐向量和PMF中同样,假设其知足高斯分布,其目标函数由矩阵分解以及CNN的损失函数组成。

 

图片描述
图12. 卷积矩阵分解模型

 

 

引用: [1] Ajit P. Singh, Geoffrey J. Gordon. “Relational Learning via Collective Matrix Factorization”, KDD 2008 [2] Suvash Sedhain, Aditya Krishna Menon, Scott Sanner, Lexing Xie. “AutoRec: Autoencoders Meet Collaborative Filtering”, WWW 2015 [3] Hao Wang,Naiyan Wang, Dit-Yan Yeung. “Collaborative Deep Learning for Recommender Systems”, KDD 2015 [4] Xin Dong, Lei Yu, ZhonghuoWu, Yuxia Sun, Lingfeng Yuan, Fangxi Zhang. “A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems”, AAAI 2017 [5] Paul Covington, Jay Adams, Emre Sargin. “Deep Neural Networks for YouTube Recommendations”, RecSys 2016 [6] Donghyun Kim, Chanyoung Park, Jinoh Oh, Sungyoung Lee, Hwanjo Yu. “Convolutional Matrix Factorization for Document Context-Aware Recommendation”, RecSys 2016

相关文章
相关标签/搜索