干货|深度学习在推荐算法上的应用进展

Posted 全球人工智能

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货|深度学习在推荐算法上的应用进展相关的知识,希望对你有一定的参考价值。

全球人工智能:专注为AI开发者服务


深度学习将在多领域产生重要影响


摘要:最近几年是深度学习发展的黄金时间,在多个领域取得了重要进展,包括图像领域、语音领域、文本领域等。深度学习为科研工作者提供了一种非常有效的技术途径,其本质上是对数据特征进行深层次的抽象挖掘,通过大规模数据来学习有效的特征表示以及复杂映射机制,从而建立起有效的数据模型。从方法上来说,深度学习具有的优点本质上是领域无关的。因此,在可预见的未来,深度学习将会作为一种较为通用的数据建模方法,对于多个潜在领域的应用产生重要影响。


信息处理系统的两种主要工作模式


在信息大数据时代,用户的个性化需求不断提高,对于信息系统智能度的要求带来了很多挑战。面对大量的数据信息,如何帮助用户有效获取所需要的信息,有力改善信息超载(information overload)问题,是数据科研工作者的主要研究挑战之一。整体来说,目前信息处理系统有两种工作模式:


  • 第一种称之为“拉”模式:比较典型的就是搜索引擎,用户提交查询,系统返回搜索结果。

  • 第二种称之为“推”模式:比较典型的就是推荐系统,用户不要求显式提交任何查询和兴趣偏好,而系统通过自动化算法来进行“信息”推送。


在信息智能时代,推荐系统显得尤为重要,已经成为互联网以及数据服务公司的核心技术模块之一,对于推荐系统技术的推进具有重要应用意义。在此选择推荐系统作为主要应用,初步介绍深度学习算法在该领域内的若干应用进展。本文接下来首先介绍推荐系统和深度学习的相关基础知识,然后围绕目前的相关研究进展进行梳理,主要包括浅层嵌入式表示模型和神经网络模型,最后展望了四个未来的研究方向。


推荐系统简介


典型任务和相关算法:

  • 评分预测

最早的推荐系统任务(也是目前较为常见的任务)是评分预测。输入归纳起来可以分为用户(User)、物品(Item)和打分(Rating)三个方面,因此可以使用一个二维矩阵来刻画评分预测的输入,分别对应于一个矩阵中的行、列、值。为了解决这一问题,常见的算法如基于相似近邻的协同过滤算法、矩阵分解等。其中矩阵分解算法得到了广泛应用,并且在实践中具有很好的实战效果 [1]。

  • 物品推荐

与评分预测相似,输入归纳起来可以分为用户(User)对应的物品(Item)二维矩阵来刻画输入,不同的是每个矩阵数值不是一个具体的打分,而是一个用户是否选择了某一物品。大部分评分预测算法都可以(可能需要进行适当改动)应用到物品推荐中。

  • 基于背景或者特征的推荐 (Context-aware recommendation)

推荐系统的不断发展进一步丰富了可供推荐算法使用的信息。如对于新闻推荐,物品的属性则有可能是新闻的文本内容、关键词、时间等,同时包括用户的点击、收藏和浏览行为等等。在电商网站上,还可能包含很多信息评论文本(Review Text)、用户查看的历史记录、用户购买的记录等。还可能获得用户的反馈信息,总体上可以分为两类:一是显式的用户反馈(Explicit Feedback),这是用户对商品或信息给出的显式反馈信息,评分、评论属于该类;另一类是隐式的用户反馈(Implicit Feedback),这类一般是用户在使用网站的过程中产生的数据,它们也反映了用户对物品的喜好,比如用户查看了某物品的信息,用户在某一页面上的停留时间,等等。对于基于背景敏感的推荐,可以使用SVD++ [2], SVDFeature [3], libFM [4]等基于特征的推荐算法。

  • 复杂推荐任务

在真实的推荐中,往往要面临很多复杂的推荐任务 [5]。例如,基于session的推荐任务。在这个任务中,用户在一个时间片段内连续做出相应的操作和选择,需要连续考虑用户整体的兴趣偏好和在一个特定session内的行为。这种任务的解决方法往往和序列模型相关。另一种复杂任务叫做基于页面的推荐。上述所提到的推荐任务的返回结果都是一个单一列表,而实际上往往需要进行基于用户UI方面的结果展示。例如,在一个电商平台,如何将推荐产品合理地展示在页面的各个部分,可能的策略如按照类别分类展示、重点区域突出个性化推荐结果。这种任务目前在研究中还很少被关注,主要原因是很难得到相关的科研数据。


深度学习与分布式表示学习概览


深度学习的概念源于人工神经网络的研究。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的有效表示,而这种使用相对较短、稠密的向量表示叫做分布式特征表示(也可以称为嵌入式表示)。本部分主要对于目前使用较广的一些学习算法进行一个简单的回顾。


首先介绍一些浅层的分布式表示模型。目前在文本领域,浅层分布式表示模型得到了广泛的使用,例如word2vec、GloVec等 [6]。与传统词袋模型对比,词嵌入模型可以将词或者其他信息单元(例如短语、句子和文档等)映射到一个低维的隐含空间。在这个隐含空间中,每个信息单元的表示都是稠密的特征向量。词嵌入表示模型的基本思想实际还是上来自于传统的“Distributional semantics”[7],概括起来讲就是当前词的语义与其相邻的背景词紧密相关。因此,词嵌入的建模方法就是利用嵌入式表示来构建当前词和背景词之间的语义关联。相比多层神经网络,词嵌入模型的训练过程非常高效,而且实践效果很好、可解释性也不错,因此得到了广泛的应用。


对应于神经网络模型,最为常见的模型包括多层感知器、卷积神经网络、循环神经网络、递归神经网络等 [8]。多层感知器主要利用多层神经元结构来构建复杂的非线性特征变换,输入可以为提取得到的多种特征,输出可以为目标任务的标签或者数值,本质上可以构建一种复杂的非线性变换;卷积神经网络可以直接部署在多层感知器上,感知器的输入特征很有可能是不定长或者有序的,通过多个卷积层和子采样层,最终得到一个固定长度的向量。循环神经网络是用来对于时序序列建模的常用模型,刻画隐含状态的关联性,可以捕捉到整个序列的数据特征。针对简单的循环神经网络存在长期依赖问题(“消失的导数”),不能有效利用长间隔的历史信息,两个改进的模型是长短时记忆神经网络(LSTM) 和基于门机制的循环单元(GRU)。递归神经网络根据一个外部给定的拓扑结构,不断递归得到一个序列的表示,循环神经网络可以被认为是一种简化的递归神经网络。


应用进展分类:在这一部分,我们回顾一下已有的深度学习以及分布式表示学习在推荐系统中的应用。


嵌入式表示模型:


最近几年,浅层神经网络模型得到了广泛应用,特别是词嵌入表示模型。词嵌入表示模型(embedding models)最早应用在自然处理领域中,利用背景信息构建词汇的分布式表示。嵌入式表示模型往往简单而又相对比较有效,因此很快被人们应用到推荐系统中。其核心思想就是同时构建用户和物品(或者其他背景信息)的嵌入式表示,使得多种实体的嵌入式表示存在于同一个隐含空间,进而可以计算两个实体之间的相似性。


在[9]中,嵌入式表示被应用到了产品推荐中,给定一个当前待推荐的产品,其对应的生成背景(context)为用户和上一个交易的产品集合,利用这些背景信息对应的嵌入式表示向量可以形成一个背景向量,刻画了用户偏好和局部购买信息的依赖关系。然后基于该背景向量,生成当前待推荐的产品。经推导,这种模型与传统的矩阵分解模型具有很强的理论联系。在[10]中,Zhao等人使用doc2vec模型来同时学习用户和物品的序列特征表示,然后将其用在基于特征的推荐框架中,引入的嵌入式特征可以在一定程度上改进推荐效果。在[11]中,嵌入式表示模型被用来进行地点推荐,其基本框架就是刻画一个地理位置的条件生成概率,考虑了包括用户、轨迹、临近的地点、类别、时间、区域等因素。比较有趣的是,该研究中发现了类似文本中的“man-woman ≈ king-queen”等模式。图1中给出了一个“城市vs.地点”的例子,可以看到可以观察到


“Beijing-Tian’anmen Square ≈ New York-Madison Square Park”


嵌入式表示模型通过刻画相关因素之间的距离以及联系可以增加模型的可解释性。


整体来说,这类模型的目标函数都是在构建数据点的条件概率者背景信息的条件概率,其中item和context分别表示推荐物品以及其对应的背景信息,因此一个关键问题就是如何构建背景信息(context)。在嵌入式表示模型中,多个实体的嵌入式特征可以进行多种组合(包括max pooling、average pooling等),对于搭建分布式表示模型非常灵活。上述工作都是利用了分布式表示模型具有较强的相关性建模能力。很多推荐任务,本质可以转换为相关度排序问题,因此嵌入式表示模型是一种适合的候选方法。一般来说,浅层的嵌入式表示模型的训练非常高效,因此在大规模数据集合上有效性和复杂度都能达到不错的效果。


干货|深度学习在推荐算法上的应用进展


神经网络模型的结构和功能:


较早使用神经网络模型的一个代表性工作可以追溯到NIPS 2007。Salakhutdinov等人使用限制玻尔兹曼机进行评分预测 [12]。如图2所示,其所使用的模型较为简单,具有一个两层的类二部图结构,其中用户层为隐含层 (h),可见层为用户的评分信息 (V),通过非线性关联两层上的数据信息。其中隐含层为二元变量,而用户评分信息被刻画为多项式分布变量。建立用户隐含表示信息以及其评分信息的联合能量函数,然后进行相应的参数求解。该方法的一个主要问题是连接隐含层和评分层的权重参数规模过大(对于大数据集合),也就是权重矩阵W。因此作者进一步提出使用将W分解为两个低秩矩阵,减小参数规模。值得一提的是,该工作是Ruslan Salakhutdinov和Geoffrey Hinton合作完成,其中Salakhutdinov也是Probabilistic Matrix Factorization[13]的作者。不过实验效果表明[13]中所提出的方法并没有比基于矩阵分解的方法具有显著的改进,而且参数求解使用较为费时的近似算法。在[14]中,Zhang 等人提出使用Neural Autoregressive Distribution Estimator来改进上述问题,该方法不需要显式对于二元隐含变量进行推理,减少了模型复杂度,并且使用排序代价函数来进行参数最优化。实验表明所提出的方法能够取得非常好的效果。不同于[13,14],在[15]中,Wu等人使用去噪自动编码模型(Denoising Autoencoder)进行top-N物品推荐,其输入为加入噪声的对于物品的偏好(采纳为1,否则为0),输出为用户对于物品的原始评分,通过学习非线性映射关系来进行物品预测。如图3所示,用户可见的评分数据通过加上噪音后进入输入层,然后通过非线性映射形成隐含层,再由隐含层经映射后重构评分数据。注意,该模型中加入了用户偏好表示(User Node)和偏置表示(Bias Node)。


干货|深度学习在推荐算法上的应用进展


这两个工作相同的地方都是基于用户的原始评分(或者反馈)来挖掘深度的数据模式特征。还有一些工作试图利用深度神经网络模型当做信息变换模块来引入辅助信息,可以看做是一种同时基于协同过滤和基于内容进行推荐的方法。在[16]中,Wang等人关注推荐系统中的一个重要问题:带有文本信息的评分预测(如博客文章等)。传统解决方法通常联合使用主题模型与矩阵分解。[16]中的主要想法就是替换掉主题模型,使用Stacked Denoising Autoencoders进行文本特征与评分预测中的数据特征相融合。在[17]中,Oord等人主要解决音乐推荐系统中的冷启动问题。通常来说,冷启动问题包括两个方面,新用户和新物品,这里主要考虑新物品。传统矩阵分解的推荐算法通过将评分分解为两个低秩向量来进行预测,也就是干货|深度学习在推荐算法上的应用进展其中为用户i对于物品j 的预测评分,干货|深度学习在推荐算法上的应用进展是两个K维的向量,分别代表用户和物品的隐含表示。基本想法是从音乐的音频数据中提取到相关的特征干货|深度学习在推荐算法上的应用进展然后将这些音乐自身的数据特征映射为通过矩阵分解学习得到的隐含向量,也就是学习一个函数f,使之达到干货|深度学习在推荐算法上的应用进展通过学习这样的变换函数,当新音乐来到时,可以通过提取其自身的音频特征来得到其隐含向量,而不必要求使用用户数据来训练干货|深度学习在推荐算法上的应用进展得到干货|深度学习在推荐算法上的应用进展的预测值之后,从而可以使用传统矩阵分解的方法来计算待推荐用户与新物品直接的相似性。与[17]非常相似,Wang等人在[18]中使用深度信念网络(Deep Belief Network)进行音频数据特征变换,不同的是同时保留两种表示,第一种表示从协同过滤方法中得到的数据表示,而第二部分则对应基于内容方法得到的数据表示,最后两部分表示分别做点积,用来拟合最后的评分结果。这三种方法都是将传统协同过滤的矩阵分解方法与神经网络模型相结合的途径。在矩阵分解模型中,用户和物品能够得到隐含表示,在这三个工作中都是假设物品本身携带了其他附加内容信息,将深度神经网络模型当做特征变换模块,使之可以打通两部分信息的可用性:从附加内容信息到矩阵分解的隐含表示。


此外,还需要简要介绍一下来自微软的深度结构化语义模型(Deep Structured Semantic Models,简称为DSSM)是基于多层神经网络模型搭建的广义语义匹配模型 [19]。其本质上可以实现两种信息实体的语义匹配。基本思想是设置两个映射通路,两个映射通路负责将两种信息实体映射到同一个隐含空间,在这个隐含空间,两种信息实体可以同时进行表示,进一步利用匹配函数进行相似度的刻画。图4展示了一个DSSM的通用示意图,其中Q表示一个Query,D表示一个Document,对应到推荐系统里面的用户和物品。通过级联的深度神经网络模型的映射与变换,最终Query和Document在同一个隐含空间得到了表示,可以使用余弦相似度进行计算。DSSM最初主要用在信息检索领域,用来刻画文档和查询之间的相似度,随后被用在推荐系统中:一端对应着用户信息,另外一端对应着物品信息 [20]。以DSSM为主的这些工作的基本出发点实际上和浅层嵌入式表示模型非常相似,能够探索用户和物品两种不同的实体在同一个隐含空间内的相似性。其中一个较为关键的地方,就是如何能够融入任务特定的信息(例如物品内容信息)以及模型配置(例如可以使用简单多层神经网络模型或者卷积神经网络模型),从而获得理想的结果。


干货|深度学习在推荐算法上的应用进展


上述工作都是基于用户与物品的点对推荐模式,并没有充分考虑物品的时序关系。Hidasi等人[21]使用循环神经网络进行基于session的推荐,该工作是对于RNN的一个直接应用。Brébisson等人[22]使用神经网络模型进行解决2015年的ECML/PKDD 数据挑战题目“出租车下一地点预测”,取得了该比赛第一名。在[22]中,作者对于多种多层感知器模型以及循环神经网络模型进行对比,最后发现基于改进后的多层感知器模型取得了最好的效果,比结构化的循环神经网络的效果还要好。在[23]中,Yang等人同时结合RNN及其变种GRU模型来分别刻画用户运动轨迹的长短期行为模式,通过实验验证,在“next location”推荐任务中取得了不错的效果。如图5所示,给定一个用户生成的轨迹序列,在预测下一个地点时,直接临近的短期访问背景和较远的长期访问背景都同时被刻画。

干货|深度学习在推荐算法上的应用进展


研究展望:基于上面的讨论,可以看到目前神经网络模型(特别是深度模型)在推荐系统中的应用还是处于很初步的阶段,在未来会有更多更广泛的尝试。下面对于未来四个可能的研究方向进行简要介绍。


结构化神经网络模型:目前在推荐系统中已发表的学术论文中,比较成功的神经网络模型还是基于多层感知器架构进行变型的模型,很少有相关公开的科研成果报道基于结构化的神经网络模型取得了显著的提高。这里结构化神经网络主要包括基于序列的循环神经网络或者树结构的递归神经网络。目前推荐系统面临的数据附加信息不断增加,因此原始的用户物品二维矩阵不能刻画复杂的推荐场景,如基于session的推荐等。因此,如何在实践中充分挖掘结构化神经网络模型的实战效果将是一个很重要的研究方向。其中[21,23]是该方向的相关研究基础。


推荐结果的可解释性:推荐系统中一个重要问题就是如何加强推荐结果的可解释性,较好的推荐结果可解释性,将会增加用户采用推荐结果的可能性。而大部分深度学习推荐算法是将数据变换到一个隐含空间,在这个隐含空间可以计算用户与物品之间的相似性,但是很难提供直接的推荐理由。可以说,这也是神经网络模型中的一个基本问题,模型输出不应该是简单给出神经元间的权重系数以及连接结构。已有的方法是使用主题模型学习得到的话题[24] 以及显式的物品特征[25,26] 来加强可解释性,这两个途径都值得深度学习推荐算法借鉴,加强模型的可解释性。


跨平台的信息融合与聚合:随着信息技术的不断发展,推荐系统所面临的推荐场景不在局限于单一用户信息领域和单一物品信息领域。例如,同一个用户可能同时对应着多个社交账号的信息,可能需要对其推荐多种类型的物品,实现信息的跨网站应用 [10,27,28,29]。在这种情况下,对于跨平台的信息融合与聚合尤为重要。之前的工作实际上已经在这方面初露端倪 [16,30],神经网络模型在异构信息融合上已经发挥了一定的效果。这一方向值得继续深入挖掘。


在线学习以及增量学习:对于实用的推荐系统来说,需要对于模型的效果和效率做一个权衡,特别是要考虑到数据的实时到达,因此在这种场景下在线学习和增量学习显得格外重要。传统情况下,深度神经网络模型的训练往往是比较耗时的,需要一种在模型复杂度与训练速度两者之间有效的均衡,以满足数据的在线处理以及增量处理。


参考文献


[1] Yehuda Koren, Robert M. Bell, Chris Volinsky. Matrix Factorization Techniques for Recommender Systems. IEEE Computer 42(8): 30-37 (2009)

[2] Yehuda Koren. Factor in the neighbors: Scalable and accurate collaborative filtering. TKDD 4(1) (2010)

[3] Tianqi Chen, Weinan Zhang, Qiuxia Lu, Kailong Chen, Zhao Zheng, Yong Yu. SVDFeature: a toolkit for feature-based collaborative filtering. Journal of Machine Learning Research 13: 3619-3622 (2012)

[4] Steffen Rendle. Factorization Machines with libFM. ACM TIST 3(3): 57 (2012)

[5] Xavier Amatriain, Bamshad Mobasher. The recommender problem revisited: tutorial. KDD 2014

[6] Tomas Mikolov. Using Neural Networks for Modeling and Representing Natural Languages. COLING (Tutorials) 2014: 3-4

[7] Daoud Clarke. A Context-Theoretic Framework for Compositionality in Distributional Semantics. Computational Linguistics 38(1): 41-71 (2012)

[8] Ian Goodfellow, Yoshua Bengio and Aaron Courville. Deep Learning. Book. The MIT press.2016.

[9] Pengfei Wang, Jiafeng Guo, Yanyan Lan, Jun Xu, Shengxian Wan, Xueqi Cheng. Learning Hierarchical Representation Model for NextBasket Recommendation. SIGIR 2015: 403-412

[10] Wayne Xin Zhao, Sui Li, Yulan He, Edward Y. Chang, Ji-Rong Wen, Xiaoming Li. Connecting Social Media to E-Commerce: Cold-Start Product Recommendation Using Microblogging Information. IEEE Trans. Knowl. Data Eng. 28(5): 1147-1159 (2016)

[11] Ningnan Zhou Wayne Xin Zhao, Xiao Zhang, Ji-Rong Wen, Shan Wang.A General Multi-Context Embedding Model For Mining Human Trajectory Data. IEEE Trans. Knowl. Data Eng. :Online first, 2016.

[12] Ruslan Salakhutdinov, Andriy Mnih, Geoffrey E. Hinton. Restricted Boltzmann machines for collaborative filtering. ICML 2007: 791-798

[13] Ruslan Salakhutdinov, Andriy Mnih. Probabilistic Matrix Factorization. NIPS 2007: 1257-1264

[14] Yin Zheng, Bangsheng Tang, Wenkui Ding, Hanning Zhou. A Neural Autoregressive Approach to Collaborative Filtering. CoRR abs/1605.09477 (2016)

[15] Yao Wu, Christopher DuBois, Alice X. Zheng, Martin Ester. Collaborative Denoising Auto-Encoders for Top-N Recommender Systems. WSDM 2016: 153-162

[16] Hao Wang, Naiyan Wang, Dit-Yan Yeung. Collaborative Deep Learning for Recommender Systems. KDD 2015: 1235-1244

[17] Aäron Van Den Oord, Sander Dieleman, Benjamin Schrauwen. Deep content-based music recommendation. NIPS 2013: 2643-2651

[18] Xinxi Wang, Ye Wang. Improving Content-based and Hybrid Music Recommendation using Deep Learning. ACM Multimedia 2014: 627-636

[19] Po-Sen Huang, Xiaodong He, Jianfeng Gao, Li Deng, Alex Acero, Larry P. Heck. Learning deep structured semantic models for web search using clickthrough data. CIKM 2013: 2333-2338

[20] Ali Mamdouh Elkahky, Yang Song, Xiaodong He. A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems. WWW 2015: 278-288

[21] Balázs Hidasi, Alexandros Karatzoglou, Linas Baltrunas, Domonkos Tikk. Session-based Recommendations with Recurrent Neural Networks. CoRR abs/1511.06939 (2015)

[22] Alexandre de Brébisson, Étienne Simon, Alex Auvolat, Pascal Vincent, Yoshua Bengio. Artificial Neural Networks Applied to Taxi Destination Prediction. DC@PKDD/ECML 2015

[23] Cheng Yang, Maosong Sun, Wayne Xin Zhao, Zhiyuan Liu. A Neural Network Approach to Joint Modeling Social Networks and Mobile Trajectories. arXiv:1606.08154 (2016)

[24] Chong Wang, David M. Blei. Collaborative topic modeling for recommending scientific articles. KDD 2011: 448-456

[25] Yongfeng Zhang. Incorporating Phrase-level Sentiment Analysis on Textual Reviews for Personalized Recommendation. WSDM 2015: 435-440

[26] Wayne Xin Zhao, Jinpeng Wang, Yulan He, Ji-Rong Wen, Edward Y. Chang, Xiaoming Li. Mining Product Adopter Information from Online Reviews for Improving Product Recommendation. TKDD 10(3): 29 (2016)

[27] Wayne Xin Zhao, Yanwei Guo, Yulan He, Han Jiang, Yuexin Wu, Xiaoming Li. We know what you want to buy: a demographic-based system for product recommendation on microblogs. KDD 2014: 1935-1944

[28] Yang Xiao, Wayne Xin Zhao, Kun Wang, Zhen Xiao. Knowledge Sharing via Social Login: Exploiting Microblogging Service for Warming up Social Question Answering Websites. COLING 2014: 656-666

[29] Meng Jiang, Peng Cui, Nicholas Jing Yuan, Xing Xie, Shiqiang Yang. Little Is Much: Bridging Cross-Platform Behaviors through Overlapped Crowds. AAAI 2016: 13-19

[30] Shiyu Chang, Wei Han, Jiliang Tang, Guo-Jun Qi, Charu C. Aggarwal, Thomas S. Huang. Heterogeneous Network Embedding via Deep Architectures. KDD 2015: 119-128


干货|深度学习在推荐算法上的应用进展




热门文章推荐









以上是关于干货|深度学习在推荐算法上的应用进展的主要内容,如果未能解决你的问题,请参考以下文章

GNN在几何深度学习有何进展?

干货合集机器学习与深度学习必备资料汇总

深度学习在推荐系统上的应用

《搜索和推荐中的深度匹配》——1.5 近期进展

《搜索和推荐中的深度匹配》——1.5 近期进展

干货!深度学习加速综述:算法编译器体系结构与硬件设计