持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第25天,点击查看活动详情
SIGIR-2018-综述:推荐系统中的深度学习模型
图1 基于深度神经网络的推荐模型分类
基于多层感知器的推荐(Multilayer Perceptron based Recommendation)
传统方法的神经扩展(Neural Extension of Traditional Recommendation Methods)
许多现有的推荐模型本质上是线性方法。MLP可用于将非线性变换添加到现有的RS方法中,并将其解释为神经扩展。
神经协同过滤( Neural Collaborative Filtering,NCF)
大多时候,推荐被认为是用户偏好和项目特征之间的双向交互
NCF结构定义如下:
最底层输入层仅使用一个用户和一个项目(独热编码)作为输入特征向量,经过Embedding层分别输出一个表示用户的特征向量和表示项目的特征向量,作为NCF层的输入特征向量。
NCF的评分函数定义如下:
其中,f认为是一个多层感知器,U为用户的潜在因素矩阵,V为项目的潜在因素矩阵,U、V可以通过用户——项目的评分(交互)矩阵进行矩阵分解得到。U的转置乘以S_u得到表示用户u的特征向量,V的转置乘以S_i得到表示项目i的特征向量(稠密向量),实现了从one-hot编码到embedding的一个转换。
进一步将MLP的非线性和FM的线性形成一个更加通用的模型。
MF是FM在仅有用户ID和物品ID信息下的特殊形式。
Deep Factorization Machine
因子分解机(FM)利用加法和内积运算来捕获特征之间的线性和成对交互作用。MLP利用非线性激活和深层结构来模拟高阶相互作用。
基于MLP的特征表示学习(Feature Representation Learning with MLP)
Wide & Deep Learning
提升预测准确度和推荐的广泛性
如上图所示,为Wide & Deep Learning模型的结构。
-
Wide部分:通过线性模型处理大量历史行为特征,使模型具有记忆能力。
-
Deep部分:通过对稀疏特征的embedding进行学习,是模型具有泛化能力。
该模型的Wide部分:
Deep部分:
总的模型:
这里r_ui使二元评级标签,取值只有0/1,这个模型根据预测评分得到推荐列表。
Wide & Deep Learning的扩展
-
Chen提出了一个 *a locally-connected wide & deep learning model *减少运行时间。
-
Covington等人在YouTube推荐中应用MLP,将推荐任务分为两个阶段:候选生成(得到一个子集,粗排)和候选排序(从子集中选出n个构成推荐列表),工业界更关心特征工程和可伸缩性(根据需求,计算资源能够弹性变化)。
-
Alashkar等人提出了一种基于MLP的化妆品推荐模型。
-
协作度量学习(CML)。CML将MF的点积替换为欧氏距离,在CML中,MLP用于从项目特征(如文本、图像和标记)学习表示。
具有深层结构语义模型的推荐(Recommendation with Deep Structured Semantic Model)
DSSM是一种深层神经网络,用于学习公共连续语义空间中实体的语义表示,并测量其语义相似性。
将用户和项目映射到公共标签空间,余弦相似性sim(u,i)用于确定项目和用户的相关性(或用户对项目的偏好)。
DSPR的损失函数定义如下:
多视点深度神经网络 (Multi-View Deep Neural Network (MV-DNN))
为跨域推荐而设计的。它将用户视为轴心视图,将每个域(假设我们有两个域)视为辅助视图。显然,对于Z个用户域对,存在Z个相似性分数。如图:
MV-DNN能够扩展到多个域。它是基于这样一个假设,即用户在一个领域有相似的爱好,在其他领域也应该有相似的爱好。
基于自编码器的推荐(Autoencoder based Recommendation)
自编码器应用于推荐系统有两种方法:(1)使用自编码器学习低维特征表示;(2)直接在重构层中填充交互矩阵的空白。
基于自编码器的协同过滤(Autoencoder based Collaborative Filtering,ACF)
AutoRec模型将用户部分向量r(u)或项目部分向量r(i)作为输入,旨在在输出层重建它们。
-
item-based AutoRec (I-AutoRec)
-
user-based AutoRec(U-AutoRec)
I-AutoRec模型结构:
公式表示:
以I-AutoRec为主介绍,损失函数:
模型的输入输出都是得分向量。但是输入的时候,矩阵不是全的,一定有很多缺失的值。目标就是预测这些缺失的值。而最开始输入的得分,在后面也会得到一个预测值,那么拿这个预测值和输入的真实值比较就是误差。只有让这个误差更小,我们预测那些缺失的值才会更精准。这和矩阵分解的想法很相似。
推荐过程:
-
当输入物品 i 的评分向量为r (i),模型的输出向量h(r (i);θ) 就是所有用户对于物品 i 的评分预测
-
h第u维就是用户u对物品i的评分
-
这里输入的评分向量r(i)有些维度是没有评分的,重构的评分向量h是对所有维度都有评分的,计算误差时只利用h和r(i)中对应有评分的维度进行计算,则h剩余的维度则是预测出来的对物品i的评分
***CFN ***
CFN是AutoRec的一个扩展,(1)采用去噪技术;(2)添加了用户简介和项目描述等信息,减轻数据稀疏性和冷启动问题。
同样有两种形式:I-CFN和U-CFN
CFN不是仅仅在第一层中结合辅助信息,而是在每一层中注入辅助信息。CFN的公式表示:
s_i是项目的辅助信息
协同去噪自编码器(CDAE)
模型结构:
CDAE的输入是用户的部分观测的隐式反馈 ,r_(u)pref,有损输入r~是从r_(u)的条件高斯分布中提取的,重构定义为:
其中Vu表示用户节点的权重矩阵。
目标函数:
Muli-VAE和Multi DAE提出了一种变分自编码器,性能比CDAE好。
基于自动编码器的协同过滤(Autoencoder-based Collaborative Filtering,ACF)
ACF是第一个基于自动编码器的协同推荐模型。它不使用原始的部分观测向量,而是通过整数评级对其进行分解。例如,如果评分分数是[1-5]范围内的整数,则每个r(i)将被划分为五个部分向量。与AutoRec和CFN类似,ACF的成本函数旨在减少均方误差。然而,ACF有两个缺点:(1)它不能处理非整数评级;(2) 部分观测向量的分解增加了输入数据的稀疏性,导致预测精度下降。
使用自编码器进行特征学习(Feature Representation Learning with Autoencoder)
协同深度学习 Collaborative Deep Learning (CDL)
分层贝叶斯模型:
-
感知组件(深度神经网络)——SDAE
-
任务特定组件——PMF
模型结构:
协作深度学习(左)和协作深度排名(右)的图形模型
在CDL之前,Wang等 [158]提出了一个类似的模型,关系栈式去噪自编码器(RSDAE),用于标签推荐。 CDL和RSDAE的区别在于,RSDAE用关系信息矩阵替换PMF。
CDL的另一个扩展是协同变分自编码器(CVAE)[89],它用变分自编码器代替CDL的深层神经组件。 CVAE学习内容信息的概率潜变量,并且可以轻松地合并多媒体(视频,图像)数据源。
协同深度排名 Collaborative Deep Ranking (CDR)
CDR专门为成对框架设计,用于 top-n 推荐,成对模型更适合排名列表生成。
深层协同过滤框架 Deep Collaborative Filtering Framework
深度学习和协同过滤结合的一般化总结,框架定义如下:
其中,β、γ和δ是平衡这三个组成部分影响的参数交换,X和Y是辅助信息 l(·) 是协作过滤模型的损失。L(X,U)和L(Y,V)充当连接深度学习和协作模型的枢纽,并将次要信息与潜在因素联系起来。
在此基础上,提出了基于边缘化去噪自编码器的协同过滤模型(mDA-CF),它通过边缘化损坏的输入,来节省搜索足够损坏的输入版本的计算开销,这使得mDA-CF比CDL更具可扩展性。 此外,mDA-CF嵌入项目和用户的内容信息,而CDL仅考虑项目特征的效果。
AutoSVD ++ 利用收缩自编码器来学习项目特征表示,然后将它们集成到经典推荐模型SVD ++ 中。 所提出的模型具有以下优点:(1)捕获无穷小的输入变化;(2)对隐式反馈进行建模,来进一步提高准确性;(3)设计了一种有效的训练算法,来减少训练时间。
HRCD 是基于自编码器和timeSVD ++ 的混合协同模型。 它是一种时间感知模型,它使用SDAE从原始特征中学习项目表示,旨在解决冷项目问题。
基于卷积神经网络的推荐(Convolutional Neural Networks based Recommendation)
基于CNNs的特征表示学习
主要是利用CNN提取图像、文本、音频等特征,作为推荐的辅助信息,提升推荐效果。更倾向于是一种基于内容的推荐系统。
图像特征提取 CNNs for Image Feature Extraction.
提取视觉特征作为辅助信息用于提升推荐效果
***文本特征提取 CNNs for Text Feature Extraction. ***
DeepCoNN采用两个并行的CNN来模拟评论文本中的用户行为和项目属性。 该模型通过利用评论文本的丰富语义表示,使用 CNN 来缓解稀疏性问题并增强模型的可解释性。
音频和视频特征提取 CNNs for Audio and Video Feature Extraction.
从音乐信号中提取特征,基于内容的模型可以缓解音乐推荐的冷启动问题。
基于CNNs的协同过滤
可以通过CNN 改善NCF,并提出了ConvNCF模型
图CNN用于推荐
图结构数据是推荐系统中非常常见的数据,而图卷积神经网络是处理这类数据强有力的工具。
基于循环神经网络的推荐 Recurrent Neural Networks based Recommendation
RNN非常适合顺序数据处理。 因此,它成为处理交互的时间动态,用户行为和顺序模式,以及具有顺序信号(如文本,音频等)的辅助信息的自然选择。
没有用户标识符的基于会话的推荐 Session-based Recommendation without User Identifer
对于没有用户标识符的用户进行推荐,比如用户在游客模式下(不用账号登录,无法获得用户的表示信息,也无法获得用户的长期兴趣偏好,也没有与其他用户之间的关系)。但是可以利用cookie等获得用户的短期兴趣(比如短期内浏览了那些东西),但数据极度稀疏,则可以利用RNN处理这一问题。
GRU4Rec
Hidasi等人提出了一个基于会话的推荐模型GRU4Rec,基于GRU。
模型结构:
输入是使用 1/N 编码的会话的实际状态,其中N是项目数。如果相应项目在此会话中处于活动状态,则坐标为1,否则为0。输出是每个项目在会话中成为下一个项目的可能性。
损失函数:
其中,样本量S、r_sj和r_si是负项j和正项i的得分,σ是逻S型函数。最后一项用作正则化。
改进策略:(:(1)通过序列预处理和退出正则化来增加点击序列;(2) 通过使用完整的训练数据进行预训练,并使用最近的点击序列调整模型,以适应时间变化;(3) 将具有特权信息的模型升华为教师模型;(4) 使用项目嵌入来减少参数数量,从而加快计算速度。
Wu等人为现实世界的电子商务网站设计了一个基于会话的推荐模型。它利用基本RNN根据点击历史预测用户下一步将购买什么。
研究表明,辅助信息对提升会话推荐质量有影响。
Smirnova等 [132]提出了一种基于条件RNN的基于上下文感知会话的推荐系统。
具有用户标识的顺序推荐 Sequential Recommendation with User Identifer
循环推荐网络 Recurrent Recommender Network (RRN)
它能够模拟物品的演变以及用户偏好随时间的变化。RRN使用两个LSTM网络作为构建块来建模动态用户状态和项目状态。模型结构如下:
同时,考虑用户和项目的静态特征,模型还结合了用户和项目的静态潜在属性:Uu和Vi,评分定义如下:
其中,Uut和Vit从LSTM中学习,Uu和Vi通过标准矩阵分解学习。优化的目的是最小化预测值和实际额定值之间的平方误差。
Wu等人[174]通过同时模拟文本评论和评级,进一步改进了RRNs模型。该模型旨在通过具有用户和项目潜在状态的字符级LSTM网络生成评论,作为辅助信息,促进评级预测。
Jing等人[73]提出了一个多任务学习框架,可以同时预测用户的返回时间和推荐项目。作者使用LSTM对该模型进行了修正,以估计顾客的返回时间。项目推荐也通过LSTM根据用户过去的会话操作执行。与上述基于会话的建议不同,该模型侧重于在同一会话中提出建议,旨在提供会话内建议。
Li等人[91]提出了一种用于顺序推荐的行为密集型模型。该模型由两部分组成:神经项embedding和判别行为学习。后一部分由两个LSTM组成,分别用于会话和偏好行为学习。
Christakopoulou等人[24]设计了一个带有RNN的交互式推荐程序。该框架旨在解决交互式推荐中的两个关键任务:询问和响应。RNN用于处理这两项任务:根据用户最近的行为(例如,观看事件)预测用户可能提出的问题,并预测响应。
Donkers等人[35]设计了一种新型的选通循环单元,以明确表示下一个项目推荐的个人用户。
基于RNN的特征表示学习 Feature Representation Learning with RNNs
对于具有顺序模式的辅助信息,使用RNN进行特征学习是一个好的选择。
Dai 等提出了一个共同进化的潜在模型,来捕捉用户和项目潜在特征的共同演化特性。
Bansal等人提出使用GRU将文本序列编码到潜在因子模型中。该混合模型解决了热启动和冷启动问题。 此外,作者采用了多任务正则化器来防止过拟合并减小训练数据的稀疏性。 主要任务是评分预测,而辅助任务是项目元数据(例如标签,流派)预测。
Okura等。建议使用GRU来学习用户浏览历史(浏览的新闻)的更具表现力的聚合,并使用潜在因子模型推荐新闻文章,与传统的基于文本的方法相比,效果显著提高。
Li 等提出了一个多任务学习框架NRT,用于预测评分以及同时为用户生成文本提示。 生成的提示提供简明的建议,并预测用户对某些产品的体验和感受。
Song 等设计了一个时态DSSM模型,该模型将RNN集成到DSSM中进行推荐。 基于传统的DSSM,TDSSM将左侧网络替换为项目静态特征,将右侧网络替换为两个子网络,来建模用户静态特征(具有MLP)和用户时间特征(具有RNN)。
基于受限受限玻尔兹曼机的推荐 Restricted Boltzmann Machine based Recommendation
本质上来说,RBM是一个编码解码器:将原始输入数据从可见层映射到隐藏层,并且得到原始输入数据的隐含因子,对应的是编码过程;然后利用得到的隐藏层向量在映射回可见层,得到新的可见层数据,对应的是解码过程。而优化目标是希望让解码后的数据和原始输入数据尽可能的接近。在推荐场景中,可以获取到用户对物品的评分矩阵,进过RBM的编码-解码过程处理后,不仅得到了已有评分对应的新评分,同时对未评分的物品进行预测,并将预测分数从高到低排序就可以生成推荐列表。换句话说,就是将RBM应用到协同过滤中。
Salakhutdinov等提出了一种基于受限玻尔兹曼机的推荐系统,网络结构如图:
RBM的可视单位仅限于二进制值,因此,评级分数以一个热向量表示,以适应此限制。例如,[0,0,0,1,0]表示用户对该项目的评分为4分。设hj,j=1,···,F,表示大小为F的隐藏单元。*每个用户都有一个具有共享参数的唯一RBM。*假设一个用户将m部电影评级为可见单元数m,设X为K×m矩阵,其中,如果用户u将电影i评级为y,则x_y_i=1,否则为x_y_i=0。
给定可见层状态时,隐藏层上某个神经元被激活的概率,这里的X就是网络结构中的V:
给定隐藏层状态时,可见层上某个神经元被激活的概率:
基于神经注意力的推荐 Neural Atention based Recommendation
通过将注意力机制应用于推荐系统,可以利用注意力机制来过滤无信息内容并选择最具代表性的项目,同时提供良好的可解释性。
根据注意力模型计算注意力权重系数的方式,模型分为:
-
标准的普通注意力
-
共同注意力
普通注意力利用参数化的背景向量来学习注意力,而共同注意力涉及从两个序列学习注意力权重。 自我注意力是共同关注的一个特例
使用普通注意力的推荐
Chen 等通过在潜在因子模型中引入二级注意力机制,提出了一种注意力协同过滤模型。 它由项目级别和组件级别的注意力组成。 项目级注意力用于选择最具代表性的项目来表示用户。 组件级别的注意力旨在从每个用户的多媒体辅助信息中捕获最丰富的信息。
Tay 等为协同度量学习提出了基于记忆的注意力。 它引入了潜在关系向量,通过CML的关注来习得。
Jhamb等提出,使用注意力机制来提高基于自编码器的CF的性能。
Liu等提出了一种基于短期注意力和记忆优先级的模型,其中长期和短期用户兴趣都集成在基于会话的推荐中。
Ying等提出了序列推荐的分层注意力模型。 两个注意力网络用于模拟用户的长期和短期兴趣。
向RNN引入注意力机制可以显着提高其性能
Li等提出了一种基于注意力的LSTM模型,用于标签推荐。 这项工作利用RNN和注意力机制的优势,来捕获序列属性并识别来自微博帖子的信息性单词。
Loyala等提出了一种编码器 - 解码器架构,注重用户会话和意图建模。 该模型由两个RNN组成,可以以更具表现力的方式捕捉过渡性规律。
普通注意力也可以与CNN一起用于推荐任务
Gong等提出了一个基于注意力的CNNs系统,用于微博中的 # 标签推荐。 它将主题标签推荐视为多标签分类问题。 所提出的模型由全局通道和局部注意力通道组成。 全局通道由卷积滤波器和最大池化层组成。 所有单词都在全局通道的输入中编码。 局部注意力通道具有一个具有给定窗口大小和阈值的注意层,来选择信息性词语(在本工作中称为触发词)。 因此,只有触发词在后续层中起作用。
Seo等利用相同的两个神经网络(没有最后两层)来学习来自用户和项目评论文本的特征表示,并使用最终层中的点积来预测评分。
Wang等提出了文章推荐的组合模型,其中CNN用于学习文章表示,并且注意力被用于处理编辑的选择行为的多样化差异。
共同注意力的推荐
共同注意力机制就是同时对多个输入序列进行操作,并共同学习它们的注意力权重,以捕获这些输入之间的交互作用。
Zhang等提出了一个组合模型AttRec,它通过利用自我注意力和度量学习的强度来改进顺序推荐性能。 它利用自我注意力从最近的交互中学习用户的短期意图,并利用度量学习的优势来学习更具表现力的用户和项目嵌入。
Zhou等建议使用自我注意力进行用户异构行为建模。
Tay等提出了一种基于评论的推荐系统,具有多指针的共同注意力。 共同注意力使模型能够通过用户和项目评论的共同学习来选择信息性评论。
Zhang等提出了一种基于共同注意力的标签推荐模型,该模型集成了视觉和文本信息。
Shi等提出了一种神经共同注意力模型,用于带有元路径的个性化排名任务。
基于神经自回归的推荐
Neural Autoregressive Distribution Estimation (NADE):神经自回归分布估计(NADE)是一种在自回归模型和前馈神经网络之上构建的无监督神经网络。 它是用于建模数据分布和密度的易处理且有效的估计器。
深度强化学习推荐
大多数推荐模型将推荐过程视为一个静态过程,这使得捕获用户的时间意图和及时做出反应是困难的。
Zhao等提出了一个DRL框架DEERS,用于在顺序交互设置中提供负反馈和正反馈。
Zhao等使用DRL探索了页面推荐方案,建议的框架DeepPage能够根据用户的实时操作自适应地优化项目页面。
Zheng等新闻推荐系统DRN,用DRL来应对以下三个挑战:(1)新闻内容和用户偏好的动态变化;(2)合并用户的返回模式(服务);(3)增加建议的多样性。
Chen等提出了一种强大的深度Q学习算法,用两种策略解决不稳定的奖励估计问题:分层抽样重放和近似后悔奖励。
崔等提出用RL和双聚类解决冷启动问题。
Munemasa等建议使用DRL进行商店推荐。
深度神经网络增加了RL的实用性,并且可以为设计实时推荐策略建模各种额外信息。
基于对抗网络的推荐
He 等提出了一种对抗性的个性化排名方法,使用对抗性训练增强了贝叶斯个性化排名。它在原始BPR目标和对手之间进行极小极大游戏,增加噪音或排列来最大化BPR损失。
Cai等为引文文献网络提出了一种基于GAN的表示学习方法,可以有效地解决个性化的引文推荐任务。
Wang等建议使用GAN为基于存储器网络的流推荐系统生成负样本。
用于推荐的深度混合模型
尽管有很多可能的组合方式,但我们建议混合模型应该针对特定任务而合理并精心设计。在这里,我们总结了据证明在某些应用领域有效的现有模型。
CNN和自编码器
基于协同知识嵌入(Collaborative Knowledge Based Embedding,CKE)将CNN与自编码器相结合,用于图像特征提取。
CNN和RNN
Lee等提出了一个带有RNN和CNN的深度混合模型,用于引用推荐。引用推荐被视为,在给定查询文本或对话的情况下,生成有序的引用列表的任务(每个对话包含一系列推文)。它应用CNN来学习重要的局部语义,并将它们映射到分布向量。 LSTM进一步处理这些分布向量,来计算目标引用与给定推文对话的相关性。
Zhang等提出了基于CNN和RNN的混合模型,用于标签推荐。给定带有相应图像的推文,作者利用CNN从图像中提取特征,并利用LSTM从推文中学习文本特征。同时,作者提出了一种共同关注机制来模拟相关影响并平衡文本和图像的贡献。
Ebsesu等提出了一个神经引文网络,它将CNN与RNN集成在一个编码器 - 解码器框架中,用于引用推荐。在此模型中,CNN充当编码器,捕获来自引用上下文的长期依赖性。给定所有先前的单词以及CNN获得的表示,RNN用作解码器,学习所引用的论文的标题中的单词的概率。
Chen 等提出了一个集成CNN和RNN的集成框架,用于个性化(视频中)关键帧的推荐,其中CNN用于学习关键帧图像的特征表示,RNN用于处理文本特征。
RNN和自编码器
前面提到的协同深度学习模型缺乏鲁棒性,无法对文本信息序列进行建模。Wang 等进一步利用集成RNN和去噪自编码器来克服这些限制。作者首先设计了一种名为鲁棒复现网络的泛化RNN。基于强大的循环网络,作者提出了称为CRAE的分层贝叶斯推荐模型。CRAE还包括编码和解码部分,但它用RNN替换前馈神经层,这使得CRAE能够捕获项目内容信息的顺序信息。此外,作者设计了通配符去噪和β池化技术来防止模型过拟合。
具有DRL的RNN
Wang 等建议将监督的深度强化学习与RNNs结合起来用于治疗推荐。该框架可以从指标信号和评估信号中学习处方策略。实验表明,该系统可以自动推断和发现最佳处理方法。我们相信这是一个有价值的话题,有益于社会利益。
未来的研究方向和开放的问题
从用户和项目内容信息学习的联合表示
提出准确的建议需要深入了解项目特征以及用户的实际需求和偏好。
特征工程、设计更好的端到端的学习减少预测偏差、多模态联合表示(将多个模态的信息一起映射到一个统一的多模态向量空间)
基于深度学习的可解释推荐
首先,是对用户做出可解释的预测,让他们了解网络推荐背后的因素(即,为什么推荐这个项目/服务?)。
第二个轨道主要集中于向从业者解释能力,探索权重和激活,以了解更多关于模型的信息
更深层的推荐
更深层的网络结构是否有利
机器推理的推荐
推荐系统的下一个前沿可能是适应需要多步骤推理的情况。一个简单的例子是对用户的社交活动、购买行为等进行推理,通过多种方式来推荐产品。
基于深度神经网络的跨域推荐
跨域推荐系统利用从源域学习到的知识辅助目标域推荐,为这些问题提供了理想的解决方案。跨领域推荐中研究最广泛的主题之一是迁移学习,其目的是通过使用从其他领域转移的知识来改进一个领域的学习任务。
用于推荐的深度神经网络的可伸缩性
大数据时代不断增加的数据量给现实世界的应用带来了挑战,可伸缩性对于现实系统中推荐模型的有用性至关重要。
(1)针对非平稳和流式数据的增量学习,如大量传入用户和项目;(2) 高维张量和多媒体数据源的计算效率;(3) 模型复杂性和可伸缩性与参数指数增长的平衡。