介绍系统中基于深度学习的混合协同过滤模型

近些年,深度学习在语音识别、图像处置、人造言语处置等畛域都取得了很大的打破与成就。相对来说,深度学习在介绍系统畛域的钻研与运行还处于早期阶段。

携程在深度学习与介绍系统联合的畛域也启动了关系的钻研与运行,并在国内人工默认***会议AAAI 2017上宣布了相应的钻研成绩《A HybridCollaborative Filtering Model with Deep Structure for RecommenderSystems》,本文将分享深度学习在介绍系统上的运行,同时引见携程基础BI团队在这一畛域上的通常。

一、介绍系统引见

介绍系统的配置是协助用户被动找到满足其偏好的共性化东西并介绍给用户。介绍系统的输入数据可以多种多样,演绎起来分为用户(User)、东西(Item)和评分(Ratings)三个层面,它们区分对应于一个矩阵中的行、列、值。关于一个特定用户,介绍系统的输入为一个介绍列表,该列表依照偏好得分顺序给出了该用户或许感兴味的东西。

图1. 介绍系统疑问形容

如图1左边所示,介绍疑问一个典型的方式化形容如下:咱们领有一个大型稠密矩阵,该矩阵的每一行表示一个User,每一列表示一个Item,矩阵中每个“+”号表示该User对Item的Rating,(该分值可以是二值化分值,喜欢与不喜欢;也可以是0~5的分值等)。

如今须要处置的疑问是:给定该矩阵之后,关于某一个User,向其介绍那些Rating缺失的Item(对应于矩阵中的“?”号)。有了如上的方式化形容之后,介绍系统要处置的疑问归结为两局部,区分为预测(Prediction)与介绍(Recommendation)。

“预测”要处置的疑问是推断每一个User对每一个Item的偏爱水平,“介绍”要处置的疑问是依据预测环节所计算的结果向用户介绍他没有打过火的Item。但目前绝大少数介绍算法都把精神集中在“预测”环节上,“介绍”环节则依据预测环节计算出的得分依照高下排序介绍给用户,本次分享引见的打算关键也是”预测”评分矩阵R中missing的评分值。

二、基于协同过滤的介绍

基于协同过滤的介绍经过搜集用户过去的行为以取得其对东西的显示或隐式消息,依据用户对东西的偏好,发现东西或许用户的关系性,而后基于这些关联性启动介绍。

其关键可以分为两类:区分是memory-based介绍与model-based介绍。其中memory-based介绍关键分为Item-based方法与User-based方法。协同过滤分类见图2。

图2. 协同过滤分类

Memory-based介绍方法经过口头最近邻搜查,把每一个Item或许User看成一个向量,计算其余一切Item或许User与它的相似度。有了Item或许User之间的两两相似度之后,就可以启动预测与介绍了。

图3. 矩阵合成示用意

Model-based介绍最经常出现的方法为Matrixfactorization,其示用意见图3左边。矩阵合成经过把原始的评分矩阵R合成为两个矩阵相乘,并且只思考有评分的值,训练时不思考missing项的值,如图3左边所示。R矩阵合成成为U与V两个矩阵后,评分矩阵R中missing的值就可以经过U矩阵中的某列和V矩阵的某行相乘获取。矩阵合成的目的函数见图3,U矩阵与V矩阵的可以经过梯度降低(gradientdescent)算法求得,经过交替更新u与v屡次迭代收敛之后可求出U与V。

矩阵合成面前的外围现实,找到两个矩阵,它们相乘之后获取的那个矩阵的值,与评分矩阵R中有值的位置中的值尽或许凑近。这样一来,合成进去的两个矩阵相乘就尽或许恢复了评分矩阵R,由于有值的中央,值都相差得尽或许地小,那么missing的值经过这样的方式计算获取,比拟合乎趋向。

协同过滤中关键存在如下两个疑问:稠密性与冷启动疑问。已有的打算通常会经过引入多个不同的数据源或许辅佐消息(Sideinformation)来处置这些疑问,用户的Side information可以是用户的基本团体消息、用户画像消息等,而Item的Sideinformation可以是东西的content消息等。例如文献[1]提出了一个Collective MatrixFactorization(CMF)模型,如图4所示。

图4. Collective Matrix Factorization模型

CMF模型经过火别合成评分矩阵R,User的side information矩阵,Item的sideinformation矩阵,其中User或许Item出如今多个矩阵中,其所合成的隐向量都是分歧的。

三、深度学习在介绍系统中的运行

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

Autoencoder(AE)是一个无监视学习模型,它应用反向流传算法,让模型的输入等于输入。文献[2]应用AE来预测用户对东西missing的评分值,该模型的输入为评分矩阵R中的一行(User-based)或许一列(Item-based),其目的函数经过计算输入与输入的损失来提升模型,而R中missing的评分值经过模型的输入来预测,进而为用户做介绍,其模型如图5所示。

图5. Item-based AutoRec模型

DenoisingAutoencoder(DAE)是在AE的基础之上,对输入的训练数据添加噪声。所以DAE必定学习去除这些噪声而取得真正的没有被噪声污染过的输入数据。因此,这就迫使编码器去学习输入数据的愈加鲁棒的表白,通常DAE的泛化才干比普通的AE强。StackedDenoising Autoencoder(SDAE)是一个多层的AE组成的神经网络,其前一层自编码器的输入作为其后一层自编码器的输入,如图6所示。

图6. SDAE

文献[3]在SDAE的基础之上,提出了Bayesian SDAE模型,并应用该模型来学习Item的隐向量,其输入为Item的Sideinformation。该模型假定SDAE中的参数满足高斯散布,同时假定User的隐向量也满足高斯散布,进而应用概率矩阵合成来拟合原始评分矩阵。该模型经过***后验预计(MAP)获取其要提升的目的函数,进而应用梯度降低学习模型参数,从而获取User与Item对应的隐向量矩阵。其图模型如图7所示。

图7. Bayesian SDAE for Recommendation Sysytem

在已有上班的基础之上,携程基础BI算法团队经过改良现有的深度模型,提出了一种新的混合协同过滤模型,并将其成绩投稿与国内人工默认***会议AAAI2017并被接受。该成绩经过应用User和Item的评分矩阵R以及对应的Sideinformation来学习User和Item的隐向量矩阵U与V,进而预测出评分矩阵R中missing的值,并为用户做东西介绍。

图8. Additional Stacked Denoising Autoencoder(aSDAE)

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

联合aSDAE与矩阵合成模型,咱们提出了一种混合协同过滤模型,见图9所示。该模型经过两个aSDAE学习User与Item的隐向量,经过两个学习到隐向量的内积去拟合原始评分矩阵R中存在的值,其目的函数由矩阵合成以及两个aSDAE的损失函数组成,可经过stochasticgradient descent(SGD)学习出U与V,概略大家可以阅读咱们的paper《A Hybrid Collaborative FilteringModel with Deep Structure for Recommender Systems》[4]。

图9. 混合协同过滤模型

咱们应用RMSE以及RECALL两个目的评价了咱们模型的效果性能,并且在多个数据集上和已有的打算做了对比试验。试验效果图如图10所示,试验详细概略可参看咱们的paper。

图10. 试验效果对比

在往年的介绍系统***会议RecSys上,Google应用DNN来做YouTube的视频介绍[5],其模型图如图11所示。经过对用户观看的视频,搜查的关键字做embedding,而后在串联上用户的sideinformation等消息,作为DNN的输入,应用一个多层的DNN学习出用户的隐向量,而后在其下面加上一层softmax学习出Item的隐向量,进而即可为用户做Top-N的介绍。

图11. YouTube介绍模型图

此外,文献[6]经过卷积神经网络(CNN)提出了一种卷积矩阵合成,来做文档的介绍,该模型联合了概率矩阵合成(PMF)与CNN模型,图见图12所示。该模型应用CNN来学习Item的隐向量,其对文档的每个词先做embedding,而后拼接一切词组成一个矩阵embedding矩阵,一篇文档即可用一个二维矩阵表示,其中矩阵的行即为文档中词的个数,列即为embedding词向量的长度,而后在该矩阵上做卷积、池化以及映射等,即可获取item的隐向量。User的隐向量和PMF中一样,假定其满足高斯散布,其目的函数由矩阵合成以及CNN的损失函数组成。

图12. 卷积矩阵合成模型

四、总结

本文引见了一些深度学习在介绍畛域的运行,咱们发现一些经常出现的深度模型(DNN, AE,CNN等)都可以运行于介绍系统中,然而针对不同畛域的介绍,咱们须要更多的高效的模型。随着深度学习技术的开展,咱们置信深度学习将会成为介绍系统畛域中一项十分关键的技术手腕。

本文由携程技术中心投递,ID:ctriptech。作者:董鑫,携程基础业务部BI团队初级算法工程师,博士毕业于上海交通大学计算机迷信与技术系。

您可能还会对下面的文章感兴趣: