基于深度学习的推荐系统综述

Focus on deep learning

Posted by Jiayue Cai on August 8, 2018

Last updated on 2018-8-9…

本文是对发表在ACM 2017的《Deep Learning based Recommender System: A Survey and New Perspectives》一文的笔记,作梳理用。 》原文链接

数据集和评估指标

常用数据集:MovielensNetflixAmazonYelpCiteUlike 评估指标分类:

  • rate prediction evaluation:均方根误差(RMSE)、平均误差(MAE)
  • evaluate the ranking scores:精确度、召回率、标准化折扣累积增益(NDCG)、曲线下面积(AUC)
  • classifcation result evaluation:精确度、召回率、F1-score

模型介绍

作者采用了二维分类方案,即神经网络模型和集成模型:

MLP 多层感知器

一种前馈神经网络,在输入层和输出层之间具有多个(一个或多个)隐藏层。这里,感知器可以使用任意激活函数,并不一定代表严格的二元分类器。 特点:可以轻松地模拟用户和项目之间的非线性交互

  • NCF 神经协同过滤(U和V分别embedding然后一起CF layer):结合了矩阵分解(将分级矩阵分解为低维潜在用户空间和低维潜在项目空间)和基于内容的推荐系统(基于用户配置文件和项目特征之间的相似性生成推荐列表)的思想,构建了双网络以建模用户和项目之间的双向交互。
  • CCCFNet 跨域内容提升的协同过滤神经网络:基本组合也是双网络(分别针对用户和项目)。 它使用点积来模拟最后一层中的用户项交互。 为了嵌入内容信息,作者进一步将双网的每个网络分解为两个组成部分:协同过滤因子(用户和项目潜在因素)和内容信息(用户对项目特征和项目特征的偏好)。
  • Wide & Deep模型(将LR与FM+NN并行最后一起sigmoid):Wide学习组件实现的记忆代表了从历史数据中捕获直接特征的能力。 同时,Deep学习组件通过产生更一般和抽象的表示来捕捉泛化。
  • DeepFM 深度分解机(一边原始特征和embedding一起FM,一边embedding后NN,最后一起sigmoid): 使用FM的神经解释取代了Wide组件。FM利用加法和内积运算来捕获特征之间的线性和成对相互作用;MLP利用非线性激活和深层结构来模拟高阶交互。

*将MLP与传统推荐系统集成:

  • Attentive CF:作者通过在潜在因子模型中引入两级保持机制,提出了一种临时协同过滤模型。注意力模型是由项目级别和组件级别的注意力组成的MLP:项目级别的注意力用于选择最具代表性的项目来表征用户;组件级别的注意力旨在从每个用户的多媒体辅助信息(multimedia auxiliary information)中捕获最丰富的信息。(注意力机制能够从原始输入中滤除无信息特征,并减少噪声数据的副作用。)

AE 自动编码器

一种无监督模型,试图在输出层重建其输入数据。通常,bottleneck层(最中间层)用作输入数据的显着特征表示。 自动编码器有许多变体,例如去噪自动编码器、边缘化去噪自动编码器、稀疏自动编码器、收缩自动编码器和变分自动编码器(VAE)。 将自动编码器应用于推荐系统有两种通用方法:利用自动编码器学习bottleneck层的低维特征表示; 或者直接在重建层中填充评级矩阵的空白。

  • AutoRec:将用户部分向量r(u)或项目部分向量r(i)作为输入(对应I-AutoRec和U-AutoRec),旨在输出层中重构它们。
  • CFN 协同过滤神经网络:是AutoRec的扩展,具有以下两个优点:采用了去噪技术,使CFN更加健壮; 结合了诸如用户配置文件和项目描述之类的辅助信息,以减轻稀疏性和冷启动影响。
  • ACF 基于自动编码器的协同过滤:它不是使用原始的部分观察向量,而是通过整数等级对它们进行分解。例如,如果评级分数是[1-5]范围内的整数,则每个r(i)将被分成5个部分向量。然而,ACF有两个缺点:无法处理非整数等级; 部分观测矢量的分解增加了输入数据的稀疏性,导致预测精度更差。
  • CDAE 协同去噪自动编码器:该模型主要用于排名预测,最初使用SGD在所有反馈上更新其参数。作者认为在实际应用中考虑所有评级是不切实际的,因此提出了一种负抽样技术来从负集合(用户没有与之交互的项目)中抽取一小部分,这样减少了时间复杂度且基本上没有降低排名质量

*将AE与传统推荐系统集成: 紧耦合模型同时学习自动编码器和推荐器模型的参数,使推荐器模型能够为自动编码器提供指导,以学习更多的语义特征:

  • CDL 协作深度学习:一种分层贝叶斯模型,它将堆叠去噪自动编码器(SDAE)集成到概率矩阵分解中。 由两个紧密联系的组件组成:感知组件(深度神经网络)和任务特定组件。 具体而言,CDL的感知成分是序数SDAE的概率解释,PMF充当任务特定成分。
  • CDR 协作深度排名:该模型是在成对框架中专门为top-n推荐设计的。 CDL是最初为评级预测提出的逐点模型,然而研究表明成对模型更适合排序列表生成。 实验结果还表明CDR在排名预测方面优于CDL。
  • DCFF 深层协同过滤框架(item隐特征V x user隐特征U = R):该模型是协同过滤结合深度学习的一般框架,该框架使得更容易利用深度特征学习技术来辅助协作推荐。 松耦合模型分两步执行:通过自动编码器学习显着特征表示,然后将这些特征表示馈送到推荐系统:
  • AutoSVD++:利用收缩自动编码器来学习项目特征表示,然后将它们集成到经典推荐模型SVD++中。 所提出的模型具有以下优点:与其他自动编码器变体相比,压缩自动编码器捕获了无穷小的输入变化;对隐式反馈进行建模,以进一步提高准确性;设计了一种有效的训练算法来减少训练时间。
  • HRCD:一种基于自动编码器和timeSVD ++的混合协作模型。它是一种时间感知模型,使用SDAE从原始特征中学习项目表示,旨在解决冷项目问题,但用于冷项目推荐的基于相似性的方法在计算上是昂贵的。

CNN 卷积神经网络

一种特殊的前馈神经网络,具有卷积层和池化层。它能够捕获全局和局部特征,并显着提高效率和准确性。它在处理具有网格状拓扑的数据方面表现良好。 特点:能够从异构数据源(如文本和视觉信息)中提取本地和全局表示。

  • Attention based CNN:模型包括全球信道和本地信道:全局通道由卷积滤波器和最大池层组成,所有单词都在全局通道的输入中编码;本地保留信道具有具有给定窗口大小h和阈值η的保留层,以选择信息性词语(在该工作中称为触发词)。

*将CNN与传统推荐系统集成: 紧耦合模型:

  • DeepCoNN 深度协同神经网络(用户网络和项目网络的输出最终连接为FM的输入):采用两个并行卷积神经网络来模拟评论文本中的用户行为和项目属性,在最终层中FM用于捕获它们的相互作用以进行评级预测。 它通过利用复杂文本的丰富语义表示来缓解稀疏性问题并增强模型可解释性;利用单词嵌入技术将评论文本映射到较低维度的语义空间,并保留单词序列信息;提取的评论表示然后连续地通过具有不同内核,最大池化层和全连接层的卷积层。
  • ConvMF:与CDL类似的方式将CNN与PMF相结合。CDL使用自动编码器来学习项目特征表示,而ConvMF使用CNN来学习高级项目表示。 ConvMF相对于CDL的主要优点是CNN能够通过世界嵌入和卷积内核捕获更准确的项目上下文信息。 松耦合模型(根据CNN处理的特征类型分为以下三类):
  • (用于图像特征提取)VPOI模型: VPOI采用CNN提取图像特征,通过探索 视觉内容和潜在用户因素 以及 视觉内容和潜在位置因素 之间的相互作用,是建立在PMF上的推荐模型。
  • (用于音频特征提取)使用CNN从音乐信号中提取特征,其卷积内核和池化层允许多个时间段的操作。 这种基于内容的模型可以缓解音乐推荐的冷启动问题。
  • (用于文本特征提取)使用CNN从学习资源的文本信息中提取项目特征。

RNN 递归神经网络

适用于对序列数据建模。与前馈神经网络不同,RNN中存在循环和记忆以记住以前的计算。诸如长短期存储器(LSTM)和门控循环单元(GRU)网络的变体在实践中被部署以克服消失的梯度问题。 特点:使推荐系统能够对评级数据的时间动态和内容信息的连续影响进行建模

  • 基于会话的RNN推荐模型(session或cookie机制使得系统能够获得用户的短期偏好):输入是具有1-N编码的实际会话状态,其中N是项目数。如果相应的项目在此会话中处于活动状态,则坐标将为1,否则为0。输出是每个项目在会话中成为下一个项目的可能性。
  • RRN 经常性推荐网络:它能够模拟项目的季节性演变和用户偏好随时间的变化。
  • Neural Survival Recommender 患者生存分析模型:作者提出了一个多任务学习框架以预测患者的生存时间。
  • Attention based RNN:利用RNN和注意机制的优势来捕获顺序属性并识别来自微博帖子的信息性词语。该模型使用LSTM学习隐藏状态用于微博帖子,使用主题模型LDA来学习帖子的主题分布,经过一系列非线性变换和softmax归一化,最后通过最小化交叉熵来训练这个模型。

*将RNN与传统推荐系统集成:

  • GRU多任务学习模型:用GRU将文本序列编码为潜在因子模型,通过多任务正则化器来防止过载并减轻训练数据的稀疏性。 主要任务是评级预测,而辅助任务是项目元数据(例如标签,流派)预测。
  • 共同进化的潜在模型:用户和项目之间的交互在推动用户偏好和项目状态的变化方面起着重要作用。为了对历史交互进行建模,作者提出使用RNN自动学习用户和项目特征漂移(drift)的影响表示,包含进化和共同进化。

DSSM 深度语义相似度模型

也称作深度结构化语义模型,是一种广泛应用于信息检索领域的深度神经网络,用于学习公共连续语义空间中实体的语义表示并测量它们的语义相似性。DSSM将不同的实体投射到一个共同的低维空间,并计算它们与余弦函数的相似性。 基本DSSM由MLP组成,而更高级的神经层,如卷积和最大池层,可以轻松添加。 特点:能够在用户和项目之间执行语义匹配

  • DSPR 基于深度语义相似度的个性化推荐:其中每个用户xu和项xi由标签注释表示并映射到公共标签空间。 余弦相似度和softmax函数用于确定项目和用户的相关性(或用户对项目的偏好)。
  • MV-DNN 多视图深度神经网络: 该模型专为跨域推荐而设计。它将用户视为枢轴视图,并将每个域(假设我们有Z域)视为辅助视图。显然,Z用户域对有Z个相似度得分。 MV-DNN类似于前面评论的基于MLP的模型CCCFNet,但CCCFNet不涉及任何相似性和后验概率估计。

RBM 受限玻尔兹曼机

一个由可见层和隐藏层组成的双层神经网络。它可以很容易地堆叠到深层网络。此处受限制意味着可见层或隐藏层中没有层内通信。

  • RBM-CF 受限玻尔兹曼机协同过滤: RBM的可见单元限于二进制值,因此,评级分数以独热矢量表示以适应该限制,每个用户都有一个具有共享参数的唯一RBM。 RBM不易处理,因此我们通常使用Contrastive Divergence算法来近似参数的对数似然梯度,这也限制了RBM-CF的使用。
  • Hybrid RBM-CF 混合RBM-CF:将项目特征(项目类别)纳入RBM协同过滤。该模型也基于条件RBM。是具有隐式反馈的条件RBM-CF的混合模型之间的两个差异:这里的条件层用二元项类型建模; 条件层用不同的连接权重来影响隐藏层和可见层。

NADE 神经自回归分布估计

一种在自回归模型和前馈神经网络之上构建的无监督神经网络。 它是用于建模数据分布和密度的易处理且有效的估计器,它为RBM提供了理想的替代方案。 NADE提供了一种易于处理的方法来近似源数据的实际分布,并在几个实验数据集上的评级预测(与其他基于深度学习的推荐模型相比)方面产生了最新的推荐准确度。

  • CF-NADE:通过链规则模拟评级向量r的联合概率。理想情况下,电影的顺序应遵循评级的时间戳。然而实证研究表明,随机抽取也会产生良好的性能。该模型可以进一步扩展到深层模型。在后续文件中,Zheng等提出结合隐式反馈来克服评级矩阵的稀疏性问题。

GAN 生成对抗网络

一种生成神经网络,由判别网络和生成网络组成。 通过在minimax game framework中相互竞争,同时训练两个神经网络。在信息检索任务中GAN展现了三种能力,包括:网络搜索、项目推荐和问答。

  • IRGAN:生成检索假设在文档和查询之间存在潜在的生成过程,并且可以通过在给定查询q的情况下生成相关文档来实现检索任务。 判别式检索学习预测给定标记的相关查询 - 文档对的相关性得分r。生成检索旨在生成类似于基本事实的相关文档,以欺骗判别性检索模型。

深层复合模型

尽管有很多可能的组合方式,但每个深层复合模型都应该合理,并且针对特定任务进行精心设计。 在本节中,我们总结了已被证明在某些应用领域有效的现有模型:

1、CNN and Autoencoder

  • CKE 基于协同知识的嵌入:可以被视为CDL的又一步。 CDL仅考虑项目文本信息(例如文章摘要和电影情节),而CKE利用不同嵌入技术的结构内容,文本内容和视觉内容。结构信息包括项目的属性以及项目和用户之间的关系,这里CKE采用TransR(一种异构网络嵌入方法,用于解释结构信息)。 同样,CKE使用SDAE从文本信息中学习特征表示。 至于视觉信息,CKE采用堆叠卷积自动编码器(SCAE)。SCAE通过用卷积层替换完全连接的SDAE层来有效地使用卷积。推荐过程以类似于CDL的概率形式完成。

2、CNN and RNN

  • 神经引文网络:将CNN与RNN集成在编码器 - 解码器框架中,用于引用推荐。 在此模型中,CNN充当编码器,捕获来自引用上下文的长期依赖性。 RNN用作解码器,其在所引用的论文的标题中学习单词的概率,给出所有先前的单词以及CNN所表达的表示。

3、CNN and MLP

  • 基于比较的深度学习模型:用于图像推荐。该网络包括两个用于图像表示学习的CNN和一个用于用户偏好建模的MLP。它将两个图像(一个正图像用户喜欢,一个负图像用户不喜欢)与用户进行比较。
  • ConTagNet:一种上下文感知标签推荐系统。CNN学习了图像特征,上下文表示由两层完全连接的前馈神经网络处理。 将两个神经网络的输出连接起来并馈入softmax归一化以预测候选标签的概率。

4、RNN and Autoencoder

  • CRAE 分层贝叶斯推荐模型:前面提到的协同深度学习模型缺乏鲁棒性,无法对文本信息序列进行建模,而作者进一步利用集成RNN和去噪自动编码器来克服这种局限。CRAE还包括编码和解码部分,但它用RNN替换前馈神经层,这使得CRAE能够捕获项目内容信息的顺序信息。

5、RNN and MLP

  • NRT:能够预测评级以及同时为用户生成文本提示。 生成的提示提供简明的建议,并预测用户对某些产品的体验和感受。

6、CNN and DSSM

  • 基于interest-aware的推荐系统:与传统的DSSM和DSPR不同,作者将卷积和最大池操作添加到隐藏层。 卷积和最大池层分别用于捕获局部和全局特征。 另一个重要的变化是,作者不是最大化可能性,而是提出成对训练技术。

7、RNN and DSSM

  • TDSSM:即temporal DSSM,它将RNN集成到DSSM中进行推荐。 基于传统的DSSM,TDSSM用项目静态特征替换左边网络,用两个子网络替换右边网络来建模用户静态特征(具有MLP)和用户时间特征(具有RNN)。

展望

1、Deep Understanding of Users and Items 深入理解用户和项目: 准确的推荐需要深入了解项目特征和用户的真实需求,通过利用丰富的辅助信息可以实现这一点。例如:

  • 上下文信息根据用户的环境和环境定制服务和产品,并减轻冷启动影响;
  • 隐式反馈表明用户的隐含意图并且更容易收集,而收集明确的反馈是一项需要资源的任务;
  • 特征工程在推荐研究界尚未得到充分研究,但它在工业应用中必不可少并广泛应用。 然而,大多数现有模型需要手动选择和选择的特征,通过减少人工干预,深度神经网络是一种很有前途的特征工具。

2、Deep Composite Models 深度复合模型

  • 组合多个深度神经网络的深度复合模型使得能够在推荐系统中对确定因素(例如,用户,项目,上下文等)的异构特征进行建模的更强大的工具。
  • 已有研究将不同的深度学习技术整合在一起以提高表现,然而与可能的扩展相比,尝试是有限的

3、Temporal Dynamics 时间动力学

  • 与基于静态偏好的传统推荐相比,基于会话的推荐系统更适合于捕获动态和时间用户需求。虽然基于会话的推荐系统不是一个新的研究课题,但它的研究很少。
  • 跟踪用户的长期互动不适用于许多网站和移动应用程序,但可以通过收集和利用其他推荐过程进行短期访问。
  • 项目和用户的进化和共同进化也是时间影响的重要方面,因为用户和项目特征可以独立发展并随着时间的推移依赖于共同演化。

4、Cross Domain Recommendation 跨领域推荐

  • 单域推荐系统只关注一个域而忽略了其他域上的用户兴趣,这也加剧了稀疏性和冷启动问题。跨域推荐系统利用从源域学到的知识来协助目标域推荐,为这些问题提供了理想的解决方案。
  • 跨领域推荐中研究最广泛的主题之一是迁移学习,旨在通过使用从其他领域转移的知识来改善一个领域的学习任务。

5、Multi-Task Learning 多任务学习: 应用基于深度神经网络的多任务学习的优点有三个方面:

  • 一次学习几个任务可以通过推广共享隐藏表示来防止过载;
  • 辅助任务提供可解释的输出以解释推荐;
  • 多任务提供隐式数据增强,以减轻稀疏性问题。

6、Atention Mechanism 注意力机制

  • 基于注意力机制的CNN能够捕获输入中信息量最大的元素。通过将推荐机制应用于推荐系统,可以利用保留机制来筛选出无信息的内容,并选择最具代表性的项目,同时提供良好的可解释性。
  • 虽然LSTM可以在理论上解决长记忆问题,但在处理远程依赖时仍然存在问题。

7、Scalability可扩展性: 大数据时代不断增长的数据量给实际应用带来了挑战。因此,可扩展性对于推荐模型在实际系统中的有用性至关重要,时间复杂度也是选择模型的主要考虑因素。应该通过探索以下问题来研究如何有效推荐的未来工作:

  • 非固定和流数据增量学习,如大量的传入用户和项目;
  • 高维张量多媒体数据源的计算效率;
  • 平衡模型的复杂性和可扩展性的参数的指数增长问题

8、Novel Evaluation Metrics 新的评估指标: 大多数以前的研究都集中在提高准确度上,或者旨在提高召回率/精确度或减少预测误差。然而,对于高质量的推荐系统而言,准确性远远不够[74],甚至可能导致过度专业化( over-specialization)。

  • 增加可信度和隐私将释放用户的担忧,并让他们更自由地探索他们感兴趣的项目;
  • 良好的可解释性为每项建议提供了证据,并为用户提供了更有说服力的结果。 因此,推荐系统不仅应该执行准确的历史建模,而且应该为用户提供整体体验