基于深度学习方法的推荐系统(转载)

原文:Deep Learning based Recommender System: A Survey and New Perspectives

作者:张帅, 新南威尔士大学

翻译:沈春旭,清华大学

随着在线信息量的不断增加,推荐系统已经成为克服这种信息过载的有效策略。推荐系统的效用无论如何强调都不过分,因为它在许多Web应用程序中被广泛采用,以及它对于改善与过度选择相关的许多问题的潜在影响。近年来,深层学习在计算机视觉、自然语言处理等许多研究领域引起了人们的极大兴趣,不仅因为其优异的性能,还因为其具有从头开始学习特征表示的吸引力。深度学习的影响也很广泛,最近在信息检索和推荐系统研究中证明了它的有效性。显然,深度学习在推荐系统中的应用非常广泛。本文旨在对基于深度学习的推荐系统的最新研究成果进行全面综述。更具体地说,我们提供和设计了基于深度学习的推荐模型的分类,并提供了最新技术的全面总结。最后,我们扩展当前的趋势,并提供与该领域令人兴奋的新发展相关的新视角。

1. 简介

推荐系统是防止消费者过度选择的直观防线。由于网络上可获得的信息爆炸式增长,用户经常受到不计其数的产品、电影或餐馆的欢迎。因此,个性化是促进更好的用户体验的基本策略。总之,这些系统在各种信息访问系统中一直发挥着关键和不可或缺的作用,以促进业务和便利决策过程[69,121],并且广泛存在于诸如电子商务和/或媒体网站等许多网络领域。

通常,基于用户偏好、项目特征、用户与项目过去的交互以及一些其他附加信息,例如时间(序列感知推荐器)和空间(POI推荐器)数据来生成推荐列表。基于输入数据的类型,推荐模型主要分为协同过滤推荐模型、基于内容的推荐模型和混合推荐模型[1]。

目前,深度学习受到大量宣传。近几十年来,深度学习在计算机视觉、语音识别等许多应用领域取得了巨大的成功。学术界和工业界正在竞相将深度学习应用到更广泛的应用领域,这是因为它有能力解决许多复杂的任务,同时提供最先进的成果[27]。最近, 深度学习已经极大地革新了推荐体系结构,为提升推荐性能带来了更多的机会。近年来,基于深度学习的推荐系统克服了传统模型的障碍,获得了广泛的关注。深度学习能够有效地捕获非线性和非平凡的用户项关系,并能够将更复杂的抽象作为更高层的数据表示进行编码。此外,它从丰富的可访问数据源(如上下文、文本和可视信息)捕捉数据本身中的复杂关系。

  • 深度学习在推荐系统中的普遍性和普遍性。

在工业中,推荐系统是增强用户体验和促进许多在线网站和移动应用销售/服务的关键工具[20、27、30、43、113]。例如,80%的在Netflix上观看的电影来自推荐[43],60%的视频点击来自YouTube的主页推荐[30]。最近,许多公司采用深度学习来进一步提高推荐质量[20,27,113]。Covington等[27]提出了一种基于深度神经网络的视频推荐算法。Cheng等人[20]提出了一个具有广度和深度模型的Google Play应用推荐系统。Shumpei等人[113]提出了一个基于RNN的雅虎新闻推荐系统。所有这些模型都经过了在线测试,显示出传统模型无法比拟的迹象。因此,我们可以看到,深度学习推动了工业推荐应用的显著革命。

近年来,基于深度学习的推荐方法出版物数量呈指数增长,有力地证明了深度学习在推荐系统研究中不可避免的普遍性。RecSys作为国际领先的推荐系统会议,从2016年开始定期组织推荐系统深度学习研讨会。这个研讨会旨在促进基于深度学习的推荐系统的研究和鼓励应用。

无论是在学术界还是在工业界,深度学习推荐的成功都需要对后续的研究者和实践者进行全面的回顾和总结,以便更好地理解这些模型的优缺点和应用场景。

  • 本文综述和之前综述的区别

很多研究学者在基于深度学习的推荐领域已经做了大量的研究。然而,就我们所知,很少有系统的综述能很好地塑造这个领域并评价现有工作和当前进展。虽然一些工作已经探索了建立在深度学习技术之上的推荐应用,并试图使这一研究领域正式化,但是很少有人试图提供当前工作的深入总结或详细说明这一领域存在的开放性问题。此调查旨在提供对基于深度学习推荐系统的当前研究进行全面总结,以指出当前推荐系统的困境,并指出未来方向。

过去的几年,在传统的推荐系统中已经出现了许多综述。例如,Su等人[138]对协同滤波技术进行了系统综述;Burke等人[8]提出了关于混合推荐系统的全面调综述;Fernandez等人[40]和Khan等人[74]对跨域推荐模型进行了评述。然而,目前对于基于深度学习的推荐系统还缺乏广泛的研究。就我们所知,只有两个相关的简短综述[7,97]正式发表。Betru等人[7]介绍了三种基于深度学习的推荐模型[123、153、159],尽管这三项工作在这个研究领域有一定的影响,但是该综述忽略了其他正在出现的高质量的工作。Liu等人[97]回顾了13篇关于深度学习用于推荐的论文,提出了基于输入(使用内容信息的方法和没有内容信息的方法)和输出(评级和排名)的形式对这些模型进行分类。然而,随着新的研究成果的不断涌现,这种分类框架已不再适用,需要新的包容性框架来更好地理解这一研究领域。鉴于深度学习在推荐系统中应用的日益普及和潜力,对其进行系统综述具有较高的科学性和实用价值。我们从不同的角度分析了这些论文,并对这一领域提出了一些新的见解。为此,在本次综述中,超过100项研究被列入候选名单并被分类。

  • 我们是从那些渠道收集到-基于深度学习推荐系统-的研究工作?

在这次综述中,我们收集了一百多篇相关的论文。我们使用Google Scholar作为主要的搜索引擎,还采用了数据库,即科学网,作为发现相关论文的重要工具。此外,我们筛选了大多数相关的高级文件会议,如NIPSICMLICLRKDDWWWSIGIRWSDMRecSys等。我们使用的关键词包括:推荐系统、推荐、深度学习、神经网络、协同变换、矩阵分解等

  • 该综述的贡献

综述的目的是全面回顾有关基于深度学习的推荐系统进展的文献。它提供了一个全景图,读者可以快速理解并进入基于深度学习的推荐领域。本文为促进推荐系统领域的创新和挖掘这一研究领域的丰富性奠定了基础。这项综述为那些对推荐系统感兴趣的研究者、实践者和教育者服务,希望当他们选择深度学习来解决手头的推荐任务时,能有一个粗略的指导。综上所述,本研究的主要贡献有三个方面:(1)我们对基于深度学习技术的推荐模型进行了系统的回顾,并提出了分类方案来定位和组织当前的工作;(2)我们对现有技术进行了综述和总结。(3)探讨了基于深度学习的推荐系统研究面临的挑战和面临的问题,指出了本研究的新趋势和今后的研究方,拓展基于深度学习的推荐系统研究的视野。

第二节介绍了深度神经网络和推荐系统的基本知识,讨论了基于深度神经网络的推荐模型的优缺点。第三节首先介绍了我们的分类框架,然后详细介绍了最新的分类框架。第四部分探讨了本研究面临的挑战和突出的开放性问题。第五部分对本文进行了总结。

2. 推荐系统和深度学习概述

在开展综述细节之前,我们首先介绍有关推荐系统和深度学习技术的基本术语和概念。讨论了将深度神经网络引入推荐系统的原因和动机。

2.1 推荐系统

推荐系统估计用户对项目的偏好,并主动地推荐用户可能喜欢的项目[1,121]。推荐模型通常分为三类[1,69]:协同过滤、基于内容和混合推荐系统。协作过滤通过从用户项目历史交互中学习来提供推荐,无论是显式的(用户以前的评分)还是隐式的反馈(浏览历史)基于内容的推荐主要基于项目与用户辅助信息的比较。可以考虑各种各样的辅助信息,例如文本、图像和视频。混合模型是指综合两种或多种推荐策略的推荐系统[8,69]。

假设我们有M个用户和N个项目R表示相互作用矩阵Rˆ表示预测的相互作用矩阵.令r(u,i)表示用户u对项目i的偏好, r^(u,i)表示预测得分.同时,我们使R的行向量表示每一个用户u r(u) = { r(u,1), r(u,2),..., r(u,N)}; 使用R的列向量表示每一各项目i r(i) = {r(1,i), r(2,i), ..., r(M,i)}。O, O−表示观测和没有观测交互的数据集。使用U∈R Mxk , V ∈R N×k表示用户和项目潜在因素,k是潜在因素的维度。此外,序列信息,如时间戳,也可以考虑作出序列感知的建议。其他符号和外延将在相应的章节介绍。

2.2 深度学习技术

深度学习一般被认为是机器学习的子领域。深层学习的典型精髓在于学习深层表示,即从数据中学习多层表示和抽象。出于实际原因,我们认为任何神经可微结构都是“深度学习”,只要它使用随机梯度下降的变体(SGD)优化可微目标函数。神经结构在监督和非监督学习任务中都显示出巨大的成功[31]。在本小节中,我们仅仅介绍与本综述密切相关的各种体系结构范例。

  • 多层感知机。多层感知器是在输入层和输出层之间具有多个(一个或多个)隐层的前馈神经网络。这里,感知器可以采用任意的激活函数,而不必严格表示二进制分类器。MLP可以被理解为非线性变换的层叠,学习分层的特征表示。MLP也是众所周知的通用逼近器。
  • 自编码器。自动编码器试图在输出层重建其输入数据的无监督模型。通常,最中间层用作输入数据的显著特征表示。自编码器有许多变体,如去噪自编码器、边缘化去噪自编码器、稀疏自编码器、压缩自编码器和变分自编码器(VAE)[15,45]。
  • 卷积神经网络。卷积神经网络[45]是一种特殊的具有卷积层和池操作的前馈神经网络。它能够捕捉到全局和局部特征,并能够有效地提高数据的准确性和科学性。它在处理具有网格状拓扑结构的数据方面表现良好。
  • 递归神经网络。递归神经网络[45]适用于序列数据的建模。与前馈神经网络不同,RNN具有循环和记忆来记忆以前的计算。长短期存储器(LSTM)和栅极递归单元(GRU)网络等变体在实际应用中经常被采用,以克服梯度消失问题。
  • 对抗网络。对抗网络(AN)[46]是由一个鉴别器和一个发生器组成的生成神经网络。在极大极小博弈框架下,通过相互竞争来同时训练两个神经网络。
  • 注意力模型。注意力模型(AM)是基于软内容操作的可微分神经结构。在输入序列(或图像)上寻址。注意机制普遍存在于计算机视觉和自然语言处理领域。然而,在深度推荐系统的研究中,它也是一个新兴的趋势。
  • 深度强化学习(DRL)。强化学习在试错范式下运行。整个框架主要包括以下几个组成部分:代理、环境、状态、行为和奖励。深度神经网络与强化学习的结合形成了深度推荐学习,该学习在多个领域(如游戏和自驾车)实现了人类水平的性能。深层神经网络使代理能够从原始数据中获取知识,并且无需手工特征和领域启发式就能够得到高效的表示。

请注意,每年都有许多先进的深度模型出现,这里我们只列出了一些重要的模型。对细节或更高级模型感兴趣的读者请参阅[45]。

2.3 为什么选择深度学习进行推荐?

在深入研究最近进展的细节之前,了解将深度学习技术应用于推荐系统的原因是有益的。显然,在短短的几年时间里,已经提出了许多深度推荐系统。这个领域确实充满了创新。在这一点上,很容易质疑需要这么多不同的体系结构, 甚至质疑深度学习在推荐领域的效用。我们自然要质疑为什么要提出不同的体系结构以及该结构最适合于哪个场景。总之,这个问题与任务、领域和推荐方案密切相关。神经结构的最吸引人的特性是:(1)端到端可微;(2)提供适合输入数据类型的inductive biases归纳偏置。因此,如果模型可以利用固有的结构,那么深度学习应该是有用的。例如,CNN和RNN长期以来一直利用视觉(或人类语言)中的非本征结构。类似地,会话或点击日志的顺序结构非常适合由递归/卷积模型提供的归纳偏置[56,143,175]。

此外,深层神经网络是可以复合的,多个神经构可以组合为单个(巨大的)可微函数和端到端的训练。这里的主要优点是在处理基于内容的推荐时。当在web上对用户/项进行建模时,多模式数据是常见的,很难避免的。例如,当处理文本数据(评论[202]、推特[44]等)、图像数据(社交文章、产品图像)时,CNN/RNNs成为不可缺少的神经构建块。与之相比较的是,传统的替代方案(设计特定于模态的特征等)变得非常缺乏吸引力,因为基于传统特征工程的推荐系统不能利用联合表示进行学习。在某种意义上,推荐系统领域的发展还与相关模式(如视觉或语言社区)的进展研究紧密结合。例如,要处理评论,传统推荐算法必须执行昂贵的预处理(例如,关键词提取、主题建模等),而基于深度学习的更新方法能够端到端地摄取所有文本信息[202]。总而言之,这方面的深度学习的能力可以被视为一种范式的转换,如果没有这些最新的进展,在统一的框架[197]中表示图像、文本和交互的能力是不可能的。

关于仅交互设置interaction-only setting(协作排序问题). 关键思想是,当存在大量复杂性或存在大量训练实例时,对深层神经网络进行调整。在文献[53]中,作者使用MLP来近似相互作用函数,并且显示出比传统方法(如MF)更合理的性能增益。虽然这些神经模型表现得更好,但我们也注意到,已知标准机器学习模型,如BPR、MF和CML,在仅基于交互数据的基于动量的梯度下降的训练中表现得相当好[145]。然而,我们也可以认为这些模型也是神经结构,因为它们利用了最近的深度学习进展,如Adam、Dropout或Batch Normalization [53,195]。也容易看出,传统的推荐算法(矩阵分解法、分解机等)也可以用神经/可微结构[53,54]来表示,并且用诸如Tensorflow或Pytorch这样的框架来科学地训练效率,从而实现高效的GPU-emabled训练和自由的自动微分。因此,在当今的研究环境中(甚至在工业环境中),完全没有理由不使用基于深度学习的工具来开发任何推荐系统。

综上所述,我们总结了基于深度学习的推荐模型的优点,读者在尝试将它们用于实践时可能会记住它们。

  • 非线性变换。与线性模型相反,深层神经网络能够通过非线性函数,如relu、sigmoid、tanh等,对数据进行非线性建模。传统的矩阵分解法、因子分解机、稀疏线性模型等本质上是线性模型。例如,矩阵分解通过线性组合用户和项目潜在因素来建模用户-项目交互[53];因子分解机是多元线性家族的成员[54];显然,SLIM是具有稀疏约束的线性回归模型。简化,将极大地限制它们的建模表达能力。人们已经充分认识到,通过改变激活选择和组合,神经网络能够以任意精度逼近任何连续函数[58,59]。这个属性使得处理复杂的交互模式并精确地反映用户的偏好成为可能。
  • 表征学习。深层神经网络能有效地从输入数据中学习潜在的解释和有用的表示。通常,关于项目-用户(item-user)的大量描述性信息在现实世界的应用程序中是非常有用的。利用这些信息可以提高我们对项目-用户的理解,从而产生更好的推荐。因此,将深层神经网络应用于推荐模型中进行表示学习是一种自然的选择。使用深层神经网络辅助表示学习的优点有两方面:(1)减少了手工特征设计的工作量。特征工程是本身就是一种费时费力的工作,深层神经网络能够以无监督或监督的方式从原始数据中自动进行特征学习;(2)它能够使推荐模型应对包括诸如文本、图像、音频甚至视频等异构内容信息。深层学习网络在多媒体数据处理方面取得了突破性进展,并显示出从不同来源学习表示法的潜力。
  • 序列建模。深层神经网络在诸如机器翻译、自然语言理解、语音识别、聊天机器人和许多其它的序列建模任务上已经显示出良好的结果。RNN和CNN在这些任务中起着关键作用。RNN通过内部存储状态来实现这一点,而CNN通过滤波器随时间滑动来实现这一点。这两种方法在数据序列结构挖掘中具有广泛的适用性和灵活性。序列信号建模是挖掘用户行为和项目演化的时间动态的重要课题。例如,基于会话的推荐是典型的应用。因此,深层神经网络非常适合这种顺序模式挖掘任务。
  • 灵活性。深层学习技术具有很高的灵活性,特别是随着许多流行的深层学习框架的出现,如Tensorflow、Keras、Caffe、MXnet、Deep.ing4j、PyTorch、theano等。这些工具大多数都是以模块化的方式开发的,并且具有活跃的社区和专业支持。良好的模块化使得开发和工程更加高效。例如,很容易将不同的神经结构组合起来形成强大的混合模型,或者用一个模块替换另一个模块。因此,我们可以很容易地建立混合和复合推荐模型,以同时捕获不同的特征。

2.4 潜在的局限性

使用深度学习进行推荐算法设计有缺点和限制吗?在本节中,我们旨在解决几个常见的反对使用深度学习进行推荐系统研究的论点。

  • 可解释性。尽管深度学习取得了成功,但众所周知,深层学习的行为就像黑匣子,提供可解释的预测似乎是一项非常具有挑战性的任务。反对深层神经网络的一个常见论点是,隐藏的权重和激活通常是不可解释的。然而,随着神经注意力模型的出现,这种担忧已经普遍缓解,并且已经为具有改进的可解释性的深层神经模型铺平了道路[126、146、178]。虽然解释单个神经元仍然对神经模型提出了挑战(不仅仅是在推荐中),目前最先进的模型已经能够进行某种程度的可解释性,从而能够进行可解释的推荐。我们在“公开问题”一节中更详细地讨论这个问题。
  • 数据需求。第二个可能的限制是,深度学习模型需要大量的数据进行测试。因为深度学习需要足够多的数据来充分支持其丰富的参数化。然而,与缺乏标记数据的其他领域(如语言或视觉)相比,在推荐系统研究的背景下获取大数据相对容易。百万/十亿规模的数据集不仅在工业上很常见,而且已经作为学术数据集发布
  • 扩展超参数调优。反对深度学习的第三个公认的论点是需要广泛的超参数调整。然而,我们注意到,超参数调整不仅仅是深度学习的问题,一般机器学习(例如,传统的矩阵分解等类似地必须调整正则化因子和学习率)。在某些情况下,深度学习还可能引入额外的超参数。例如,最近的工作[145],对传统度量学习算法[60]的扩展只引入了单个超参数。

3. 基于深度学习的推荐算法:最高水平

在这一部分中,我们首先介绍了基于深度学习的推荐模型的分类,然后重点介绍了最新的研究原型,旨在确定近年来最引人注目和最有前途的进展。

3.1 基于深度学习的推荐模型分类

为了对这一领域提供鸟瞰图,我们根据所使用的深度学习技术的类型对现有模型进行分类。我们将基于深度学习的推荐模型进一步分为以下两类。图1总结了分类方案。

  • Recommendation with Neural Building Blocks. 在该类别中,根据前面提到的八个深度学习模型,模型被分成八个子类别:MLP、AE、CNN、RNN、RBM、NADE、AM、AN和DRL。根据深度学习技术不同确定了推荐模型的适用性。例如,MLP可以很容易地对用户和项目之间的非线性交互进行建模;CNN能够从诸如文本和可视信息之类的异构数据源中提取局部和全局表示;RNN使推荐系统能够对内容信息的时间动态和顺序演化进行建模。
  • Recommendation with Deep Hybrid Models. 一些基于深度学习的推荐模型使用了不止一种深度学习技术。深层神经网络的灵活性使得将多个神经构建块组合在一起以互补并形成更强大的混合模型成为可能。这些深度学习技术有许多可能的组合,但并非所有都已经被开发出来。注意,与[31]中的混合深层网络不同,后者指的是使用生成组件和区分组件的深层体系结构。

表1列出了所有综述的深度模型,我们按照上述分类方案组织它们。此外,我们还从任务角度总结了表2中的一些文章。这些文章使用了诸如基于会话、图像、视频推荐的深层神经网络,一些任务已经开始受到关注。一些任务对于推荐研究领域来说可能不是新颖的(关于推荐系统的辅助信息的详细回顾可以在[131]中找到),但是DL提供了更多的可能性来找到更好的解决方案。例如,如果没有深度学习技术的帮助,处理图像和视频将是一项艰巨的任务。深度神经网络的序列建模能力也使得捕获用户行为的序列模式变得容易。

3.2 基于多层感知机的推荐算法

MLP是一个简洁而有效的网络,已经证明它能够将任何可测函数逼近到任何期望的精确度[59]。因此,它是许多高级方法的基础,并在许多领域得到广泛应用。许多现有的推荐模型本质上是线性方法。MLP可在现有的推荐系统方法中增加非线性变换。

  • 神经网络-协同过滤算法。

在大多数情况下,推荐被认为是用户偏好和项目特征之间的双向交互。例如,矩阵分解将打分矩阵分解为低维factor。构造一个对偶神经网络来模拟用户和项目之间的双向交互是很自然的。神经网络矩阵因子分解(NNMF)[37]和神经协同滤波(NCF)[53]是两个具有代表性的工作。图2a显示了NCF体系结构。设s(u,user)和s(i,item)表示辅助信息(例如,用户profile和项目feature),打分函数定义如下:

其中函数f()表示多层感知器,θ是这个网络的参数。传统的矩阵因子可以看作是NCF的一个特例。因此,将矩阵因式分解的神经解释与MLP相融合,可以方便地构造出既利用矩阵因子分解的线性又利用MLP的非线性来提高推荐质量。整个网络可以用加权平方损失(用于显式反馈)或二进制交叉熵损失(用于隐式反馈)进行训练。交叉熵损失定义为:

 

负采样方法可用于减少训练未观察实例的数量。后续工作[112,134]提出使用成对排序损失来增强性能。He等[92,166]将NCF模型扩展到跨域推荐。Xue等人[184]和Zhang等人[195]的研究表明,可以用交互矩阵的列或行替换one-hot identifier,以保持用户项交互模式。

  • 深层因子分解机

DeepFM[47]是一个端到端的模型,它无缝集成了因子分解机和MLP。它能够通过深层神经网络、与因式分解机的低阶交互来对高阶特征交互进行建模。MLP利用非线性激活和深层结构来模拟高阶相互作用。神经网络的广度和深度也为MLP与FM的结合提供了启示。我们可以用因子分解机的神经解释代替了宽分量。与深度&宽度模型相比,深层FM不需要繁琐的特征工程。图2b说明了DeepFM的结构。DeepFM x的输入是由对(用户身份user和项目特征feature)构成。将FM和MLP的输出分别表示为y_FM(x)和y_MLP(x)。通过以下步骤计算预测得分:

σ是sigmoid激活函数。

连等[93]改进了DeepMF,提出了极深分解机来联合建模显式特征和隐式特征交互。通过压缩的交互网络学习显式的高阶特征交互。He等人提出的并行工作[54], 用MLP代替二阶相互作用,提出用drop和batchnormalization对模型进行正则化。

  • 具有深度结构化语义模型的推荐算法

深层结构化语义模型(DSSM)[65]是一种用于学习公共连续语义空间中实体的语义表示并测量其语义相似性的深层神经网络。它广泛应用于信息检索领域,非常适合于top-n推荐[39,182]。DSSM将不同的实体投影到一个公共的低维空间中,并计算它们与余弦函数的相似性。基本的DSSM由MLP组成,所以我们把它放在本节中。注意,更先进的神经层,如卷积层和maxpooling也可以很容易地集成到DSSM中。

3.3 基于自编码网络的推荐系统

应用自动编码器进行推荐系统一般有两种方法:(1)利用自动编码器学习低维特征表示;(2)直接在重建层填充交互矩阵。几乎所有的自编码器变体,如去噪自编码器、变分自编码器、接触式自编码器和边缘化自编码器,都可以应用于推荐任务。表3总结了基于使用的自动编码器类型的推荐模型。

  • 基于自编码器的协同过滤

AutoRec[125]将用户部分向量r(u)或项目部分向量r(i)作为输入,并致力于在输出层中重构它们。显然,对应于这两种类型的输入,它有两个变体:基于项目的AutoRec(I-AutoRec)和基于用户的AutoRe(U-AutoRec). 

关于AutoRec,在部署前需要注意的四个重要方面是:(1)I-AutoRec的性能优于U-AutoRec,这可能是由于用户部分观察向量的方差较大。(2)激活函数f()和g()的不同组合将显著影响性能。(3)适当增加隐含单元大小将改善结果,因为扩展隐含层维度使AutoRec有更大的能力对输入的特性进行建模。(4)增加更多的层以形成深层网络可以导致稍微的改进。

3.4 基于卷积神经网络的推荐算法

卷积神经网络在处理非结构化多媒体数据时具有强大能力。大多数基于CNN的推荐模型利用CNN进行特征提取。

  • 基于CNN的特征表示学习。CNN可用于从图像、文本、音频、视频等多个源进行特征表示学习。
  • 基于CNN的协同过滤。

直接应用CNN进行协同过滤也是可行的。例如,He等人[51]提出使用CNN来改进NCF,并且提出了ConvNCF。它使用外部产品而不是点产品来建模用户项交互模式。将CNN应用到外积结果上,可以捕获嵌入尺寸之间的高阶相关性。Tang等人[143]提出了具有CNN的顺序推荐(带有用户标识符),其中使用两个CNN(分层和垂直)来建模联合级别的顺序模式和跳过行为,用于序列感知推荐。

  • 基于图CNN的推荐算法。

图卷积网络是一种用于非欧拉数据的强大工具,如:社会网络、知识图、蛋白质相互作用网络等[77]。推荐区域中的交互也可以看作一个这样的结构化数据集(二部图)。因此,它也可以应用于推荐任务。例如,Berg等人[6]提出将推荐问题考虑为具有图CNN的链接预测任务。该框架使得用户/项目侧信息(如社交网络和项目关系)很容易集成到推荐模型中。Ying等人[190]建议在Pinterest中使用图形CNN进行推荐。该模型同时利用随机游走和图CNN从图结构以及项目特征信息生成项目嵌入,适用于大规模的网络推荐。提出的模型已经部署在Pinterest中以解决各种现实世界的推荐任务。

3.5 基于递归神经网络的推荐算法

RNN非常适合于顺序数据处理。因此,它成为处理交互的时间动态和用户行为的顺序模式,以及具有顺序信号(例如文本、音频等)的辅助信息的自然选择。

3.6 基于受限玻尔兹曼机的推荐算法

3.7 基于神经网络注意力机制的推荐算法

3.8 基于神经自回归的推荐算法

3.9 基于强化学习的推荐算法

3.10 基于对抗网络的推荐算法

3.11 基于混合模型的推荐算法

利用深层神经网络的良好灵活性,可以集成许多神经构建块,从而形成更强大、更具表现力的模型。尽管有很多可能的组合方式,我们建议混合模型应该合理而仔细地设计用于特定任务的。这里,我们总结了一些已被证明在某些应用领域有效的现有模型。

  • CNN + Autoencoder

基于协作知识的嵌入(CKE)[192]将CNN与自动编码器结合用于图像特征提取。CKE可以看作是CDL的进一步步骤。CDL只考虑条目文本信息(例如,文章摘要和电影情节),而CKE使用不同的嵌入技术利用结构内容、文本内容和视觉内容。结构信息包括项目的属性以及项目与用户之间的关系。CKE采用TransR[96],一种异构网络嵌入方法来解释结构信息。类似地,CKE使用SDAE从文本信息学习特性表示。在视觉信息方面,CKE采用堆叠式卷积自动编码器(SCAE)。SCAE通过将SDAE的全连接层替换为卷积层来充分利用卷积。推荐过程以类似于CDL的概率形式完成。

  • CNN + RNN

Lee等人[82]提出了一个具有RNNs和CNNs的深度混合模型用于引文推荐。引文推荐被看作是在给定查询文本或对话框(每个对话框包含一系列tweet)的情况下生成引文排序列表的任务。它应用CNN从tweet学习重要的本地语义并将它们映射到分布向量。LSTM进一步处理分布向量,以计算目标引号与给定tweet对话的相关性。

Zhang等人[193]提出了一种基于CNN和RNs的混合哈希表推荐模型。给定一个包含相应图像的tweet,作者利用CNN从图像中提取特征,利用LSTM从tweet中学习文本特征。同时,作者提出了一个共同注意机制来模拟相关影响,平衡文本和图像的贡献。

Ebsesu等人[38]提出了一种将CNN和RNN在编码器-解码器框架中集成的神经引文网络,用于引文推荐。在这个模型中,CNN充当从引用上下文中捕获长期依赖关系的编码器。RNNs作为解码器工作,它学习被引论文标题中给定所有先前单词以及CNNs获得的表示的单词的概率。Chen等人[17]提出了一种与CNN和RN相结合的个性化关键帧(视频)推荐框架,其中CNN用于从关键帧图像中学习特征表示,RNN用于处理文本特征。

  • RNN + Autoencoder

前面提出的协作式深度学习模型缺乏鲁棒性,不能对文本信息序列进行建模。Wang等人[160]进一步利用集成RNNs和去噪自编码器来克服这种限制。作者首先设计了一个广义RNNs,称为鲁棒递归网络。基于鲁棒递归网络,提出了层次贝叶斯推荐模型CRAE。CRAE还包括编码和解码部分,但是它用RNN代替前馈神经层,这使得CRAE能够捕获项目内容信息的顺序信息。此外,作者还设计了一个通配符去噪和beta-pooling技术来防止模型过拟合。

  • RNN + DRL

Wang等人[163]提出将监督式深层强化学习与RNNs相结合进行治疗推荐。该框架可以从指标信号和评价信号中学习处方策略。实验证明,该系统能够自动推理、发现最佳治疗方案。我们认为,这是一个有价值的话题,对社会有好处。

4. 未来研究方向与开放问题

虽然现有的工作已经奠定了深厚的推荐系统研究的坚实基础,本节概述了一些有前途的前瞻性研究方向。我们还详细阐述了几个悬而未决的问题,我们认为这些问题对于这个领域当前状态至关重要。

4.1 从用户和项目内容信息中学习联合表示

做出准确的推荐需要对项目特性和用户的实际需求和偏好有深入的理解[1,85]。当然,这可以通过利用丰富的辅助信息来实现。例如,上下文信息根据用户的环境和环境定制服务和产品[151],并减轻冷启动的影响;隐性反馈指示用户的隐性意图,并且更容易收集,而收集显性反馈是一项资源要求很高的任务。虽然已有的工作已经调查了深度学习模型在挖掘用户和项目概况[92,196]、隐性反馈[50,188,196,203]、上下文信息[38,75,118,149,151]以及评论文本[87,127,174,202]中的电子有效性,但是它们没有以综合的方式利用这些各种辅助信息,并且充分利用现有数据。此外,很少有研究来自社交媒体[61]和物理世界(例如物联网)[186]的用户足迹(例如Tweet或Facebook帖子)的作品。人们可以从这些辅助数据资源推断用户的时间兴趣或意图,而深度学习方法是集成这些附加信息的理想和强大的工具。深度学习在处理异构数据源方面的能力还为使用非结构化数据(如文本、视觉、音频和视频特征)推荐各种项目带来了更多的机会。

此外,特征工程在推荐研究界还没有得到充分研究,但它在工业应用中是必不可少的[20,27]。然而,大多数现有模型需要手工制作和选择的特性,这既费时又乏味。通过减少人工干预,深度神经网络是一种很有前途的自动特征加工工具[129]。还有一个附加的优点,即从存在于“野生”中的自由文本、图像或数据中进行表示学习,而不必设计复杂的特征工程管道。对推荐系统的深层特征工程规范进行更深入的研究,可以节省人力,提高推荐质量。

一个有趣的前瞻性研究问题是如何设计神经架构,以最佳地利用其他数据模式的可用性。最近一项可能为这种性质的模型铺平道路的工作是联合表示学习框架[197]。学习用户和项目的联合(可能是多模式表示)很可能成为推荐系统研究的下一个新趋势。为此,这方面的深入学习将是如何以端到端的方式设计更好的归纳偏倚(混合神经结构)。例如,对不同模式(文本、图像、交互)数据进行推理以获得更好的推荐性能。

4.2 基于深度学习模型的可解释性

通常的解释是深层神经网络是高度不可解释的。因此,提出可解释的建议似乎是一项艰巨的任务。同样,假设大的、复杂的神经模型只是对数据进行任何真实的理解(参见机器推理的后续部分以获得推荐)也是很自然的。这就是为什么这个方向既令人兴奋又至关重要。解释性深层学习主要有两种方式。第一种是向用户做出可解释的预测,允许他们理解网络推荐背后的因素(即,为什么推荐此项目/服务?)〔126, 178〕。第二条轨道主要集中于向实践者解释能力,探测权重和激活,以便更多地了解模型[145]。

直到今天,注意力模型[126,146,178]或多或少减轻了神经模型的不可解释的性。因为注意力权重不仅提供了关于模型内部工作的洞察力,而且能够向用户提供可解释的结果。这已经成为“前深度学习”的现有研究方向。注意模型不仅能够提高性能,而且具有更强的解释能力。这进一步激发了使用深度学习进行推荐。

值得注意的是,模型的可解释性强烈依赖于应用领域和内容信息的使用,这既直观又自然。例如[126,146]主要使用评论作为可解释性的媒介(评论导致做出哪些预测)。可以考虑许多其他介质/模式,例如图像[18]。

为此目的,一个有希望的方向是设计更好的注意力机制,可能达到提供会话或产生性解释的水平([87]所示)。考虑到模型已经能够突出对决策有贡献的内容,我们相信这是下一个前沿。

4.3 深入推荐

根据以前的研究[53,53,177,195],我们发现大多数神经CF模型的性能在三到四层时处于平稳状态。在许多任务[48,64]中,越深越显示出优于浅层网络的有希望的性能,然而,在基于深层神经网络的RS的背景下,越深越不明确。如果更深能产生良好的效果,我们如何训练深层网络结构呢?如果没有,这背后的原因是什么?一种可能性是,以类似于[147]来研究不同层的辅助损耗,尽管是分级的,而不是顺序的。另一种可能性是针对深层网络的每一层改变分层学习速率或应用一些策略。

4.4 机器推理用于推荐系统算法设计

在深层学习中,机器推理已经取得了许多最新的进展,经常涉及基于自然语言或视觉输入的推理[67,124,181]。我们认为,诸如机器阅读、推理、问题回答甚至视觉推理等任务都会对推荐系统的性能产生很大的影响。考虑到这些任务对于推荐系统而言似乎完全任意且不相关,因此它们常常被忽略。然而,推荐系统经常需要对单个(或多个)模式(评论、文本、图像、元数据)进行推理,这最终需要从这些相关领域借用(和调整)技术。基本上,推荐和推理(例如,问题回答)高度相关,因为它们都是信息检索问题。

能够进行机器推理的唯一最有影响的体系结构创新是关注的关键思想[155,181]。值得注意的是,这个关键的直觉已经(而且是最近的)证明了在几个推荐问题上的有效性。Tay等人[146]提出了一种用于在评论中进行推理的共同关注的体系结构,并表明不同的推荐域具有不同的“证据聚合”模式。对于只进行交互的推荐,类似的推理架构利用了类似的共同关注机制来对元路径进行推理[62]。为此,推荐系统的下一个前沿可能是适应需要多步骤推理和推理的情况。一个简单的例子可以推理用户的社会概况、购买等,推理多种模式来推荐产品。综上所述,我们可以预料,推理体系结构将开始在推荐系统研究中占据前沿。

4.5 利用深度神经网络实现跨领域推荐

如今,许多大公司向顾客提供多样化的产品或服务。例如,Google为我们提供网络搜索、移动应用和新闻服务;我们可以从亚马逊购买书籍、电子产品和衣服。单域推荐系统只关注一个域,而忽略了用户对其他域的兴趣,这也加剧了稀疏性和冷启动问题[74]。跨域推荐系统利用从源域获取的知识来辅助目标域推荐,为解决上述问题提供了理想的解决方案。在跨领域推荐中研究最广泛的课题之一是转移学习,它旨在通过使用从其他领域转移的知识来改进一个领域的学习任务[40,115]。深层学习非常适合于转移学习,因为它学习高层次的抽象,从而消除不同领域的差异。现有的一些著作[39,92]表明了深度学习在捕捉不同领域的概括和差异以及产生更好的推荐方面的有效性。因此,这是一个非常有前景但很大程度上未被探索的领域,预计会有更多的研究。

4.6 深度多任务学习进行推荐算法设计

多任务学习已经在许多深层学习任务中取得了成功,如计算机视觉、自然语言处理[26,31]。在综述的研究中,一些工作[5,73,87,187]也把多任务学习应用于深层神经框架中的推荐系统,并且相对于单任务学习取得了一些改进。应用基于深层神经网络的多任务学习的优点有三个方面:(1)一次学习多个任务可以通过泛化共享隐含层的的表示,从而防止过拟合现象;(2)辅助任务提供解释进而可以对推荐结果进行解释;(3)多任务提供隐式数据扩充可以减轻过拟合,解决稀疏问题。多任务可以在传统的推荐系统[111]中使用,深度学习使得它们能够以更紧密的方式集成。除了引入辅助任务,我们还可以部署跨域推荐的多任务学习,其中每个特殊的任务为每个域生成推荐。

4.7 深层神经网络推荐的可扩展性

在大数据时代,不断增加的数据量对现实世界的应用程序提出了挑战。因此,可拓展性对于推荐模型在现实世界中的有效性至关重要,并且时间复杂性也是选择模型的主要考虑因素。幸运的是,在大数据分析中,特别是随着GPU计算能力的增加,深层学习已经被证明是非常有效和有前途的[109]。然而,如何有效地进行推荐,还有待进一步研究:(1)对非平稳、流式数据(如大量输入用户和项目)进行增量式学习;(2)对高维张量和多媒体数据源进行高效计算;(3)平衡模型复杂度和参数指数增长的可扩展性。这个领域的一个有前景的研究领域涉及知识提炼,这在[144]中已经被探索用于学习用于推荐系统中推理的小型/紧凑模型。其核心思想是培养从大型教师模型中吸收知识的小型学生模型。鉴于推理时间对于百万/十亿用户规模的实时应用至关重要,我们认为这是值得进一步研究的另一个有前途的方向。另一个有前途的方向涉及压缩技术[128]。高维输入数据可以压缩为紧凑的嵌入,以减少模型学习过程中的空间和计算时间。

4.8 推荐领域需要更好、更统一的评价

每次提出一个新的模型,预计该出版物将提供评估j结果和与几个基线算法的性能比较。在多数论文中,对基线算法和数据集的选择似乎是任意的,并且作者通常对数据集/基线的选择有自由支配权。这是存在问题的。

首先,这会产生不一致的分数报告,每个作者报告他们自己的分类结果。直到今天,关于模型的一般排名似乎还有共识(值得注意的是,我们承认不存在免费午餐定理)。偶尔,我们会发现结果可能会有冲突,而且相对位置变化非常频繁。例如,[201]中的NCF分数与提出模型[53]的原始论文相比排名非常低。这使得新神经模型的相对基准极具挑战性。问题是我们如何解决这个问题?研究邻近的领域(计算机视觉或自然语言处理),这确实令人困惑。为什么推荐系统没有MNIST、ImageNet或SQuAD?因此,我们认为应该提出一套标准化的评价数据集。

我们还注意到,像MovieLens这样的数据集通常被许多实践者用于评估他们的模型。然而,测试分隔通常是任意的(随机的)。第二个问题是没有对评估程序的控制。为此,我们敦促推荐系统领域应该学习CV/NLP领域,建立一个官方测试集,其中预测结果只能通过网络接口(如Kaggle)提交。

最后,第三个问题是,在推荐系统结果中测试样本的难度没有控制。根据时间进行数据难度认定是最好的吗?我们如何知道测试样本是否太小或无法推断?如果不设计适当的测试集,我们认为实际上很难估计和测量该领域的进展。为此,我们认为,推荐系统的领域需要从计算机视觉或NLP社区中学到很多东西。

5. 总结

在本文中,我们对迄今为止基于深度学习的推荐系统最值得注意的工作进行了广泛的回顾。我们提出了一个分类方案,用于组织和聚类现有的推荐算法,并强调了一些有影响的研究模型。我们还讨论了在推荐任务中使用深度学习技术的优缺点。此外,我们还详细介绍了一些最紧迫的问题、未解决的问题和有前途的未来扩展。深度学习和推荐系统是近几十年来研究的热点。每年都有大量的新开发技术和新模型。我们希望这次调查能给读者提供一个对这个领域的关键方面的全面了解,讲清楚最显著的进展,并为今后的研究提供一些启示。

你可能感兴趣的:(大数据,深度学习,算法)