感想
最近看了一篇基于深度学习的推荐系统的综述,这个综述还是蛮新的,论文上显示的时间是2017年8月3号,讲得挺全的,读完后,我对深度学习应用推荐系统有了一个比较深的认识,我这里分享出来,希望也能够帮助大家的研究和学习,当然,本人水平有限,如果有错误,可以指正,我们共同进步哈。
1 介绍
互联网信息的爆炸性增长使用户迷失,推荐系统(Recommender system,RS)是一个有用的信息过滤工具,以个性化的方式来发现产品和服务,为用户提供向导,这些服务和产品是在一个很大的可供选择空间中可能感兴趣的。在各种信息访问系统中,推荐系统扮演者一个至关重要且本质的角色,用以促进商业联系(boost business)和辅助决策过程(facilitatedecision-making process)。
通常,推荐列表是基于用户偏好产生的,物品特征(item features),用户-物品过去的交互,和一些其他额外的信息,例如时序和空间数据(temporal and spatial data)。推荐模型主要分为协同过滤,基于内容的推荐系统,基于不同输入数据类型的混合推荐系统。可是,这些模型在处理数据稀疏性和冷启动问题上,以及在不同的评价尺度(evaluation metrics)上权衡推荐质量上,有着自身的局限性。
过去几年见证了深度学习的在许多领域的巨大成功,例如计算机视觉和语音识别。因其在处理复杂任务上能得到最好效果的能力,学术界和工业界都争相把深度学习广泛应用到应用中。最近,深度学习正在变革推荐结构,在重塑用户体验(in reinventing the user experiences)得到更高的客户满意度(customer satisfaction)方面带来了更多的机会。最近基于深度学习的推荐系统的研究得到了很多关注,深度学习主要用来克服传统模型的缺点且得到高推荐的质量。深度学习可以有效的捕获非线性和非平凡的用户-物品(non-linear and non-trivial user-item)关系,使得更复杂的编码作为更高层的数据表示。另外,它抓住了数据本身的复杂联系,例如上下文,文本和视觉信息等丰富的容易获得的数据源。
1.1 为什么我们要关心基于深度学习的推荐系统?
推荐系统在工业领域的重要组成部分,它是许多网站和手机应用促进销售和服务的关键所在。例如,Netflix上80%的电影观看来自于推荐,YouTube上60%的视频点击来自于主页的推荐。最近,许多公司利用深度学习来进一步提升他们的推荐质量。Covington等人提出了一个基于深度神经网络的推荐算法,这个算法用于YouTube上的视频推荐。Cheng等人用wide & deep模型提出了一个Google Play的App推荐系统。所有这些模型都经受住了上线测试,取得了比传统模型更好的效果。因此,我们可以看出深度学习已经在工业推荐应用中驱动着巨大的变革。
另一个显著的变化是在研究领域上,最近几年,关于基于深度学习推荐方法的研究发表的数量成指数性的增长,在推荐系统顶级的国际会议,RecSys, 从2016年开始组织定期的深度学习推荐系统的研讨会。
基于深度学习的推荐在学术界和工业界的成功需要一个完整的回顾和总结,以便于后来的研究者和参与者能更好的理解其优势和弱势以及这些模型的应用场景。
1.2 本次的综述和前面的综述有什么不一样?
····在基于深度学习的推荐领域已经有了大量的研究,可是,据我们所知,很少有系统的回顾能很好地塑造这个领域,定位现有的工作和当前的进展。即使有些工作已经吊样了建立在深度学习技术上的推荐应用,也已经尝试正式化这个研究领域,但是很少有工作能够对当前的研究提供一个深度总结,使得在这个领域的公开问题详细化。这个调查旨在提供这样一个对现在基于深度学习的推荐系统研究的总结,识别当前限制真实世界实现的公开问题,指出这个维度的未来的方向。
在过去的几年里,有很多在传统推荐系统的调查,例如,Su等人对协同过滤技术做了一个系统的回顾,Fernandez-Tobias等人和Khan等人回顾了交叉域推荐模型;举几个例子来说,缺乏基于深度学习的推荐系统的回顾的拓展,据我们了解,只有两个相关的短调查被正式发表。Betru等人介绍了3个基于深度学习的推荐模型,即使这三个工作在这个研究领域有影响力,这个调查丢失了其它出现的高质量工作。Liu等人回顾了深度学习推荐的12篇文章,然后根据输入*(使用内容信息和不使用内容信息的方法)和输出(打分和排序)的不同来划分这些模型。可是,随着新的工作的不断出现,这些分类框架不再合适,需要一个新的框架来更好的理解这个研究领域。考虑到深度学习应用在推荐系统中的正在上涨的流行度和潜力,在这方面系统的调查将会有很高的科学和使用价值。我们从不同的角度分析现在的工作,提出了对这个领域的一些新的见解。为此,在这次调查中,超过100个研究被列举和分类。
1.3 本次调查的贡献
这篇调查的目标是完全的回顾基于深度学习推荐系统的研究进展的文献。本次调查提供了一个全景图,读者可以迅速的理解并进入基于深度学习的推荐领域。这项调查对于在推荐系统领域提供创新和挖掘这一研究领域奠定了基础,另外,这个调查可以为研究者,从业者(practitioners)和教育者提供参考。主要强调基于深度学习的推荐系统。这项调查的主要贡献有三点:
1.
在深度学习技术的推荐模型方面,我们进行了系统的回顾。提出了一个新的方法用来定位和组织现在的工作;
2.
我们概述了最新的研究成果,并总结了它们的优点和局限性。专业人员可以很容易的找到模型对应的问题或者找到未解决的问题。
3.
我们讨论了挑战和公开的问题,认出在这个领域的新的趋势和未来的发展方向,分享基于深度学习的推荐系统的远景以及拓展其视野。
2 术语和背景概念
在我们深入这篇调查前,我们先介绍一下和推荐系统和深度学习技术有关的基本术语和概念。·
推荐系统
推荐系统用于估计用户对未知物品的偏好,根据输出的形式的不同,现在有三种类型的推荐任务:评分预测(rating prediction),排名预测(ranking prediction,top-n推荐)和分类。评分预测的目的是填充用户物品评分矩阵(user-item rating matrix)的丢失的条目,top-n推荐产生物品n的排序列表给用户,分类任务旨在把候选项归为正确的类别用于推荐。
推荐模型通常分为三类:协同过滤,基于内容和混合推荐系统。协同过滤是学习用户物品的交互历史来做推荐的,要么是显式的反馈,如用户先前的评分,要么是隐式的反馈,如浏览历史。基于内容的推荐主要是基于用户和物品的辅助信息的比较。各种各样的辅助信息,例如文本,图片和视频可以考虑在内。推荐系统的混合模型是集成两种或者更多类型的推荐策略。
假设我们有M个用户,N个物品,R代表评分矩阵。同时,我们使用一个部分观察的向量r^((u))={r^u1,…,r^uN}来代表每个用户u,部分观察向量r^((i))={r^1i,…,r^Mi}来代表每个物品i.
2.2 深度学习技术
深度学习是机器学习的一个子领域,它学习不同级别的数据表示和数据的抽象,可以解决有监督和无监督学习任务。本节,我们阐述和本次调查的一系列的深度学习概念。
多层感知机(MLP):是一个前馈神经网络,在输入和输出层之间有多个隐藏层。这里,感知机可以随意的利用激活函数,不局限与严格表示二分类。
Autoencoder(AE):是一个无监督模型,它试图在输出层重构输入数据。通常,bottleneck层(最中间的一层)用于输入数据的突出的特征表达。Autoencoders有很多的变体,例如denoising autoencoder,marginalized denoising autoencoder,sparse autoencoder,contractive autoencoder和variational autoencoder(VAE)。
卷积神经网络(CNN):是一个特别种类的前馈神经网络,有卷积核池化操作,他可以有效的捕捉全局和局部特征,以增强效率和精度。它在处理网格状拓扑结构(grid-like topology)的数据上表现良好。
循环神经网络(RNN):对序列化数据建模比较合适,不像前馈神经网络,RNN有循环和记忆,能够记住前面的计算,其变体经常被用于克服梯度消失问题,如LSTM,GRU。
深度语义相似度模型(Deep Semantic Similarity Model,DSSM):特别是Deep Structured Semantic Model,是一个深度神经网络,用于在连续的语义空间中学习条目的语义表示(semantic representations of entities),衡量他们的语义相似度。
受限的玻尔兹曼机(RBM):是一个两层的神经网络,由一个可见层和一个隐藏层组成。它可以很容易的被堆叠成深度网络,受限这里的意思是隐藏层和可见层的内部是没有交流的。
神经自回归分布(Neural Autoregressive Distribution Estimation, NADE)是一个无监督神经网络,建立在自回归模型和前馈神经网络之上。它是一个易处理的且高效的估计器(tractable and efficient estimator),用来对数据分布和密度进行建模。
生成对抗网络(GAN, Generative Adversarial Network):是一个生成式神经网络,由一个判别器和一个生成器组成。这两个网络可以同时训练,在一个最大最小游戏框架(minimax game framework)下相互竞争进行训练。
3 分类方案和分析
3.1 二维分类方案
为了给予现在工作一个更好的鸟瞰图,我们提出了一个分类方案,用于从两种不同的视角(神经网络模型和整合模型(integration model))来组织现在的工作。
3.1.1 神经网络模型
我们根据现在研究利用的深度学习技术的类型来进行分类。我们把基于深度学习的模型分为两大类:使用单个深度学习技术和使用混合模型(推荐系统使用了两种或者多种深度学习技术)。
使用单个深度学习技术的模型
在这个类别中,模型分为了前面所述的八个类别:基于MLP,AE, CNN, RNN, DSSM, RBM, NADE, GAN的推荐系统,使用的深度学习技术类型决定着这些推荐模型的优势和应用场景。CNN可以从异构的数据源中提取局部和全局的表示,例如文本和视觉信息;RNN使得推荐系统对时序动态的评分数据建模,以及对内容信息的时序影响进行建模。DSSM可以把用户和物品进行语义匹配。
深度复合模型(Deep Composite Model)
一些基于深度学习的推荐模型利用了不止一种深度学习技术。其动机是,不同的深度学习技术可以相辅相成,使得生成一个更强大的混合模型。这8个深度学习技术有多种可能的结合方式,但是不是所有的模型都能利用上。我们在第5部分列举了这些结合,注意深度复合模型和混合深度网络不同,混合深度学习涉及的是深度结构,同时利用其生成和判别组件。
3.1.2 整合模型(Integration Model)
整合模型的分类依据主要是考虑到推荐系统是否把传统的推荐模型和深度学习整合,或者是否仅仅依赖于深度学习技术。
将深度学习与传统推荐模型相结合
一些研究尝试将深度学习方法和传统的推荐技术以一种方式或者另一种方式相结合,传统的技术有矩阵分解,概率矩阵分解,分解机(factorization machine, FM),或者最近邻算法等等。基于两种方法整合的紧密度,这些模型进一步分为松耦合模型(Loosely Coupled Model)和紧耦合模型(Tightly CoupledModel)。例如,当把autoencoder学习到的特征表示作为隐语义模型(latent factor model)的特征,如果autoencoder的参数和隐语义模型(latent factor model)的参数是同时优化的,这个模型就是紧耦合的。这样,隐语义模型和特征学习过程就相互影响。如果参数的学习是分开的,这个模型就是松耦合的。
推荐只靠深度学习
在这种情况下,推荐系统的训练和预测步骤仅依赖于深度学习技术,没有其它形式的传统推荐模型的帮助。
注意,对于新出现的模型,例如基于GAN的推荐,目前的研究工作很少,这可以作为一个研究课题来研究。
3.2 定性分析
这里,我们对发表的量,实验数据,评估尺度和发表的引用做了基础的统计分析。
上图是从2007年开始,每年发表的量。在过去5年的时间里呈现爆炸性的增长。基于AE, RNN, CNN和MLP的推荐系统研究已经很广泛了,紧接着的是深度复合模型(deep compositemodels),基于RBM和DSSM的模型。最近的研究尝试把GAN和NADE用于推荐任务上。
上图显示的是前面工作所用的数据集和评估尺度。两个电影推荐数据集:Movielens,Netflix是最常用的数据集。其它数据集,例如Amazon,Yelp和 CiteUlike也频繁的用到。至于评估尺度,均方根误差(Root Mean Square Error,RMSE)和均方平均误差(Mean Average Error,MAE)经常用于评分预测评估。而Recall, Precision,Normalized DiscountedCumulative Gain(NDCG)和AreaUnder the Curve(AUC)经常用于评估排序分数。Precision,Recall和F1-score被广泛用于分类结果评估。
表3显示的是年度引用量超过10的最有影响的的工作,从表上看,我们可以清楚的认出最出名的基于推荐系统的模型。然而,其它优秀的模型可能随着时间而显现出来。
另一个是在不同推荐任务上的研究工作的比例,排序预测是最流行的(66%),接着的是流行范式(the prevailing paradigm),打分预测为28%,只有6%的工作会把推荐任务转换为分类问题。
3.3 应用领域
在所有回顾的发表中,一些推荐模型有着特定的应用领域。通常的推荐系统可能在特定领域表现得不好。这些域通常需要单独来调研,因为它本身有着独特的特点。在这部分,我们集中在回顾的发表中的特定的应用领域,把他们分类为:图片推荐,音乐推荐,兴趣点(point of interest)推荐,新闻推荐,hashtag推荐,引用推荐(quote recommendation),引文推荐(citation recommendation)。
4 基于深度学习的推荐系统
4.1 基于多层感知机的推荐系统
多层感知机是一个简单而高效的模型。广泛应用于许多领域,特别是工业领域。多层前馈网络被证明可以以任意精度逼近一个可测函数(measurable function),它是许多高级模型的基础。
4.1.1 仅依赖于MLP的推荐
神经协同过滤(Neural Collaborative Filtering.)
在大多数情况,推荐是用户偏好和物品特征这两种方式的交互。例如,矩阵分解把评分矩阵分为一个低维的隐式用户空间和一个低维的隐式物品空间。基于内容的推荐系统产生了基于用户画像和物品特征的相似度的推荐列表。因此,很自然的我们就可以建立一个对偶网络,对用户和物品两种交互方式进行建模。神经协同过滤(Neural Collaborative Filtering, NCF)就是这样一个框架,它旨在捕获用户和物品的非线性关系。
上图显示的是NCF的网络结构。
让s_u^user和s_i^item表示边信息(side information),例如用户画像和物品特征。或者就是用户u和物品i的one-hot标识。NCF的预测规则定义如下:
其中,f为多层感知机,θ为网络的参数,用于预测明确的等级的损失函数定义为权重均方误差。
这里解释一下边信息:边信息(Side Information)是指利用已有的信息Y辅助对信息X进行编码,可以使得信息X的编码长度更短。边信息一个通俗的例子是:假设到马场去赌马,根据每个马的赔率可以得到一个最佳的投资方案。但是如果知道赌马的一些历史数据,例如上几场的胜负情况,那么可以得出一个更优的投资方案。赌马中的历史数据就是边信息。
其中w_ui标识训练实例(u, i),对于二分等级或者隐式的反馈(例如1代表喜欢,0代表不喜欢)。有的作者提出了一个概率方法,例如Logistic函数或者Probit函数,用来把输出r ̂_ui限制在[0,1]范围内,修正后的交叉熵损失的形式如下:
因为有大量的未观察的实例(unobserved instances),NCF利用负采样来减少训练数据的大小,这能很大程度上提升训练效率。传统的矩阵分解(MF)可以被认为是NCF的一个特殊情况,因此,很容易把矩阵分解和NCF融合,来定义一个更通用的模型,这个模型能同时利用MF的线性和MLP的非线性来增强推荐质量。
这里解释一下Probit函数:在概率论和统计学中,probit函数是一个和标准的正态分布相关的分位函数,通常定义为N(0,1)。数学上,它是标准正态分布的累积分布函数的逆,它在exploratory statistical graphics和特定的二分变量回归模型有着广泛的应用。例如:
详情请参考我的参考文献的链接
He等人把NCF模型拓展为交叉域的社交推荐,例如,推荐信息域的物品给社交网络的潜在用户,提出了一个神经社交协同等级推荐系统,另一个拓展是CCCFNet(Cross-domain Content-boosted Collaborative Filtering neural Network),CCCFNet的基本组件也是一个对偶的网络(分别对用户和物品),在最后一层用内积对用户-物品交互进行建模,为了嵌入内容信息,作者进一步把对偶的每个网络分解为两个成分:协同过滤因子(用户和物品潜在因素)和内容信息(物品特征的用户偏好和物品特征)。多视角神经框架建立在这个基本模型的基础上,用来进行交叉域推荐。
Wide & Deep Learning.
如上图,这个一般的模型既可以解决回归问题又可以解决分类问题。最开始它是用于Google Play的App推荐,wide learning组件是一个单层感知机,这可以被看做一个一般的线性模型,deep learning组件是一个多层感知机,结合这两个学习技术的依据是它使得推荐系统能同时捕获记忆memorization和generalization。Memorization是从wide learning组件获得的,它代表抓住从历史数据直接特征的的能力。与此同时,deep learning组件能抓住generalization,它产生了更多一般和抽象的表达。这个模型能够提高精度且实现推荐的多样性。
正式地,wide learning定义为:
其中,W_wide^T和b是模型的参数,{x,∅(x)}是联结的特征集合,由输入特征x和转换(例如交叉内积转换,用来捕捉特征之间的关系)后的特征∅(x),每层的深度神经组件的形式为:
其中l表示为第l层,f代表激励函数。W_deep^((l))和b^((l))分别为权重和偏置项,因此,wide & deep learning模型是这两个模型的融合:
其中,σ是一个sigmoid函数,r ̂_ui是二元等级标签,a^((lf))是最终的激励,这个联合的模型是用随机反向传播(follow-the-regularized-leader algorithm)进行优化的,根据预测的分数产生推荐列表。
通过拓展这个模型,Chen等人设计了一个局部连接的wide & deep learning模型,用于大规模工业级别的推荐任务,它利用了高效的局部连接网络来替换深度学习组件,把运行时间减少到了一个数量级。
部署wide & deep learning的一个很重要的步骤就是选择宽度和深度部分的特征,换句话说,系统应该可以决定哪个特征该记忆或者被泛化。另外,交叉内积转换也需要手工设计,这些预步骤对模型的效果影响很大,为了缓解特征工程中的手工处理,Guo等人提出了深度因子分解机(Deep Factorization Machine, DeepFM)。
Deep Factorization Machine
DeepFM是一个端到端的模型,它无缝的整合了因子分解机和MLP.它可以通过深度神经网络进行高阶特征交互,通过因子分解机进行低阶交互。因子分解机利用额外操作和内积操作去捕获特征间的线性和成对的交互。MLP均衡了非线性激励和深度解构,用来对高阶交互进行建模。和wide & deep模型相比,DeepFM不需要枯燥的特征工程,它把wide组件替换成了一个因子分解机的神经解释。
如上图,其为DeepFM的结构,DeepFM的输入x是一个m域的数据(m-fields data),由(u,i)对(身份和用户及物品的特征)组成。为了简单起见,FM和MLP的输出分别用yFM(x)和yMLP(x)表示,预测分数计算如下:
其中σ为sigmoid函数。
4.1.2 整合MLP和传统的推荐系统
注意力的协同过滤(Attentive Collaborative Filtering)
注意力机制是受人类视觉注意力的启发。例如,人们只需要关注视觉输入的特定部分就可以理解和识别它们。注意力机制可以从输入中过滤掉无信息的特征,减少噪声数据的副作用。基于attention的模型在一些任务上表现出了可喜的效果,例如语音识别,机器翻译。最近的工作证明他可以增强推荐的性能,把它和深度学习技术结合起来用于推荐系统。Chen等人提出了一个注意力的协同过滤模型,对隐式因子模型引入了一个两级注意力机制。注意力模型是一个MLP,由物品级别和部件级别的注意力组成。物品级别的注意力用于选择最有代表性的物品来描述用户,组件级别的注意力旨在给用户从多媒体辅助信息中捕获最有信息的特征。
Alashkar等人提出了一个基于MLP的模型用于化妆品推荐。这个工作使用了两个相同的MLPs去分别对标记的样例和专家规则进行建模,这两个网络的参数同时更新,最小化他们的输出的差别。它证明了采用专业知识的功效,用它去指导推荐系统在MLP框架中的学习过程。但是,专业知识的获取需要大量的人力参与,代价很高。
Covington把MLP应用到YouTube推荐上。这个系统把推荐任务分为两个阶段:候选产生(candidate generation)和候选排序(candidate ranking)。候选产生网络从所有的视频语料库中检索一个子集(几千)。候选排序网络用基于最近邻分数的方法从候选项中产生top-n列表。我们注意到工业领域关注的是特征工程和推荐模型的可拓展性,特征工程例如例如转换,规范化,交叉。
还没有说完,下一篇继续