introduction
Recommender system (RS) is a useful information €ltering tool for guiding users in a personalized way of discovering products or services they might be interested in from a large space of possible options.
数据稀疏性、冷启动是推荐系统的两大问题。
这篇survey的主要贡献如下:
•对基于深度学习技术的推荐模型进行了系统评估。
•概述了最先进的研究并总结了它们的优点和局限性。
•讨论未解决的问题,新趋势和未来方向。
TERMINOLOGY AND BACKGROUND CONCEPTS
三种推荐任务(基于输出形式的不同):
- 概率预测
- 排名预测(top-n推荐)
- 分类:分类任务旨在将候选项目分类为正确的类别以供推荐。
三类推荐模型:
- 协同过滤:通过从user-item的历史交互学习(通过显式(用户先前的评分)或隐式反馈(例如浏览历史))来进行推荐。
- 基于内容的推荐:主要基于user-item辅助信息的,包括文本图像视频。
- 混合推荐系统:包含集中推荐策略的推荐系统。
一些相关的深度学习概念:
其中,DSSM:是一种深度神经网络,用于在共同的连续语义空间中学习实体的语义表示并测量它们的语义相似性。
Restricted Boltzmann Machine (RBM) is a two layer neural network consisting of a visible layer and a hidden layer. It can be easily stacked to a deep net. Restricted here means that there are no intra-layer communications in visible layer or hidden layer.
Neural Autoregressive Distribution Estimation (NADE) [57, 108] is an unsupervised neural network built atop autoregressive model and feedforward neural network. It is a tractable and ecient estimator for modelling data distributions and densities.
CLASSIFICATION SCHEME AND ANALYSIS
上图表现了本文对推荐模型的从两个维度上的分类。
-
从神经网络模型的角度(单类神经网络或神经网络之间的组合)
又将基于深度学习的推荐模型分为两大类:使用单一深度学习技术的模型和深度复合模型(包含两种或更多种深度学习技术的推荐系统)。- 使用单一深度学习技术的模型。 如上图所示,在这个类别中,模型分为八个子类别,与上述八种深度学习模型相一致:MLP,AE,CNN,RNN,DSSM,RBM,NADE和GAN的推荐系统。 使用深度学习技术决定了这些推荐模型的优势和应用场景。 例如,MLP可以轻松模拟用户和项目之间的非线性交互; CNN能够从异构数据源(如文本和视觉信息)中提取本地和全球的表示形式; RNN使得推荐系统能够模拟评价数据的时间动态性和内容信息的有序性; DSSM能够执行用户和项目之间的语义匹配。
- 深层复合模型。 一些基于深度学习的推荐模型利用多种深度学习技术。 动机是,不同的深度学习技术可以相互补充,并使一个更强大的混合模型。 上图中8种深度学习技术有许多可能的组合,并非全部都已被利用。
-
从模型的组合角度(神经网络与传统推荐模型的组合)
通过考虑将传统推荐模型与深度学习相结合还是仅依靠深度学习技术对模型进行分类。- 组合深度学习和传统推荐模型:在这里又分了Tightly coupled和Loosely coupled。直观上来看就是模型的参数是同时训练的就是Tightly。如果要是分开训练就是Loosely。
- 只依靠深度学习推荐
具体划分如下图:
然后作者对已有的推荐工作做了一些统计,如下图:
其他的还有一些被引用数量的统计,不同领域推荐(例如电影、音乐、POI等方向)的统计等等…
DEEP LEARNING BASED RECOMMENDER SYSTEM
1. MLP
仅依靠MLP
NCF:
推荐就是用户特征和物品特征的交互。
神经协同过滤(NCF)旨在捕捉用户和项目之间的非线性关系。
NCF模型图如下:
这是模型的函数以及目标函数。
因为输出是1或0,也可以使用sigmoid函数将输出固定在1 0 之间,因此目标函数可以修改为交叉熵形式:
扩展:CCCFNet:
Wide & Deep Learning:
由一个wide模型,一个deep模型组合而成。wide模型可以捕获历史数据的记忆。deep模型捕获更一般抽象的特征。
然而这种模型的一个问题就是需要人工的选择适用wide或deep模型的特征。这些人工操作会影响模型的结果。为了减轻人工带来的影响,因此,Deep Factorization Machine.出现。
Deep Factorization Machine:
无缝集成因子分解机和MLP的端到端模型。
使用深度神经网络建模高阶特征,使用因子分解机建模低阶特征。如图所示,分解机用加法和内积操作捕捉特征之间的线性和相互作用。MLP利用非线性**和深度结构去建模高阶特征。两个模型的结合方式与Wide & Deep相同。
与Wide & Deep不同的是,DFM用FM取代了Wide & Deep中的手工的特征工程。
MLP + 传统推荐模型
Attentive Collaborative Filtering.
Attention + CF(Attention使用MLP实现)
Attention机制能从原始输入过滤掉不提供信息的特征、减少噪声数据的副作用。
还有两个其他的模型:
2. AE
两个AE应用到推荐系统的一般方法:
(1)使用AE在bottleneck layer学习低维特征表示;
(2)在reconstruction layer填补空白的评级矩阵。
仅依靠AE
AutoRec
输入r(u)或r(i),在输出层重构它们。这里以重构r(i)为例。
目标函数为:(就是拉近输入与输出)
Here ||·|| O means that it only considers observed ratings
目标函数可以使用resilient propagation优化。
关于resilient propagation
有4点值得注意:
简单来说就是不同的**函数有不同的效果,适当加宽、加深模型都会提升效果。
Collaborative Filtering Neural network (CFN).
AutoRec的扩展版本。
使用去噪技术,让CFN更鲁棒
包含一些其他上下文信息减轻数据稀疏和冷启动问题。
这里的上下文信息不仅仅加入的是输入层,而是每一层都加入,如下边公式:(输出层的公式)
目标函数:
Autoencoder-based Collaborative Filtering (ACF).
如图,这是一个专门为整数评分的模型。
他有两个缺点:只能适应整数评分、增加了数据的稀疏性(将评分编程onehot的形式)。
Collaborative Denoising Auto-Encoder (CDAE)
CDAE is principally used for ranking prediction。
如图所示,user pref就是某一个user对所有item的喜好程度。例如:喜欢就是1,不喜欢就是0.
输出层公式:
目标函数:
loss function l(·) can be square loss or logistic loss.
组合AE与传统推荐系统
正如上文所述,可以分为Tightly coupled model与Loosely coupled model
Tightly coupled model:AE与推荐模型同时优化。
Loosely coupled model:先用AE学习特征表示,再把特征塞到推荐模型中。
下边简单介绍3个Tightly Coupled Model.
Collaborative Deep Learning (CDL).
感知机(对SDAE(stacked denoising autoencoder)的概率性解释) + PMF
SDAE是什么?——参考内容:
栈式自编码算法
将多个AE分别训练然后stack到一起。先用原始数据训练第一个AE,训练好之后得到隐藏层数据。再用隐藏层数据训练第2个AE,以此类推,最终结果如下图:
栈式自编码神经网络具有强大的表达能力及深度神经网络的所有优点。
Stacked Denoising Autoencoders (SDAE)
推荐系统总结MF->PMF->CTR->CDL->CNN
PMF
上图左边是CDL,右边是CD Ranking
更好的解释:
简单来说就是使用SDAE获取一个中间隐层来构成item的feature,再和user的特征向量进行PMF。
Deep Collaborative Filtering Framework.
目标函数:
L(X,U ) and L(Y,V ) act as hinges for connecting deep learning and collaborative models and link side information with latent factors
两个Loosely Coupled Model.
AutoSVD++: contractive autoencoder + SVD++
contractive autoencoder来学习item的特征表示
contractive autoencoder可以捕获极小的输入变量
Contractive Autoencoder
Contractive Autoencoder是在AE的目标函数的基础上增加一个F范式下的雅克比矩。这部分是为了让模型具有局部不变性。我们的目标是使偏导尽可能的小,假设极端情况下偏导为0,那么即表示模型对局部的抖动具有鲁棒性。
HRCD:SDAE + timeSVD++
3. CNN
一般CNN用作特征提取。
仅靠CNN
Attention based CNN.
用于微博的标签推荐,看做一个多分类问题。
如图,左边attention,右边cnn
attention这边是通过计算中心词的分数,与一个阈值作比较,大于阈值说明这个词是有用的,就留下来进入下边的神经层。
中心词的分数计算公式:
Personalized CNN Tag Recommendation.
为了优化该网络,用BPR算法来最大化相关和不相关tag之间的差异。
Bayesian Personalized Ranking
组合CNN与传统推荐系统
Tightly Coupled Model:
Deep Cooperative Neural Network (DeepCoNN).
左右两个CNN的输出拼接起来作为FM的输入。
ConvMF.
CNN + PMF
组合CNN和PMF类似 CDL的方式。只不过用CNN代替CDL中的AE来学习item的特征表示。使用CNN的ConvMF比CDL更可以准确的抓取上下文信息通过word embedding和卷积。
目标函数:
Loosely Coupled Model.
把CNN应用于推荐,并与推荐模型部分分开训练,一般就是用来提取数据特征。
分为三类:
图像特征提取:使用CNN提取图像特征。有在POI推荐、餐厅推荐等等应用。
音频特征提取:对CNN提取的item特征与MF出的item特征做minimize square error
文本特征提取:与音频类似,只不过是用CNN提取文本信息。
4. RNN
递归神经网络适用于处理推荐系统中的时间动态评分和时序特征。
仅靠RNN
Session-based Recommendation with RNN.
很多应用不会打扰用户去注册登录。因此缺乏用户长期数据。但是cookie、session机制可以获取用户短期表现。
使用类似Onehot的形式对session中的记录进行编码,item数量为N,session中**的item表示为1 ,其他的为0。输入如图模型中。
输出是下一个session中每个item出现的可能性。
其目标函数:
这是最基础的模型版本,之后还有一些改进,例如加入点击序列带来的影响、或者加入一些side information等等。
Recurrent Recommender Network (RRN).
使用LSTM提取不同时刻的user item特征,再辅助以长期特征。最终评分有这四部分得出,如下图。
通过最小化预测和真实值的平方误差来优化模型。
Neural Survival Recommender.
一个多任务模型,用LSTM预测回归时间,用LSTM推荐item。不做展开。
Attention based RNN.
如图,先用LSTM学习出推送的state。
使用LDA学习到文本的topic distribution
使用attention机制提取相关的topic distribution,在与每个timestep的state
进行运算,输出。(P是一条post的长度)
组合RNN与传统推荐系统
1.使用GRU提取文本特征,
f(x)为gru获取的特征。
2.使用GRU提取用户浏览过的文本信息,然后使用LFM做推荐。
LFM(Latent Factor Model)模型
LFM (Latent Factor Model) 隐因子模型 + SVD (singular value decomposition) 奇异值分解
5. DSSM : Deep Semantic Similarity Model based Recommender System
深度语义匹配模型-DSSM 及其变种
DSSM简单来说就是将输入query和doc,onehot输入做Word Hashing 之后去训练 DNN 网络,分别输出特征向量做cos相似度计算,从而得到某个query下不同doc的点击率。
Word Hashing 就是将原本海量的词表中的单词用另一种形式来表示,从而达到降低维度的效果。
Deep Semantic Similarity based Personalized Recommendation (DSPR).
如图所示,其中sim为:
f(·)为神经网络。
模型输出为:
Here γ is a smoothing factor of so‰max function.
目标函数是负似然对数:
Multi-View Deep Neural Network (MV-DNN).
MV-DNN是为跨域推荐而设计的。
6. RBM
Restricted Boltzmann Machine(限制玻尔兹曼机)
层间全链接,层内无连接的BM,来学习数据的固有内在表示。
Restricted Boltzmann Machine Collaborative Filtering (RBM-CF).
7. Emerging Methods: NADE and GAN
NADE是建立在自回归模型和前馈神经网络之上的无监督神经网络。
RBM不易处理,因此我们通常使用Contrastive Divergence算法来近似参数的对数似然梯度,这也限制了RBM-CF的使用。 所谓的神经自回归分布估计器(NADE)是一种易处理的分布估计器,它提供了一种RBM的理想替代方案。
the CF-NADE models the joint probability of the rating vector r by the chain rule:
GAN:IRGAN
给query,生成器输出document
给query和生成器生成的document,鉴别器输出q和d的相关分数
生成器与鉴别器就像gan一样play a minimax game,从而使生成器可以输出符合query的document。
IRGAN除了信息检索,也可以应用在推荐的场景中。
在推荐中可以使用MF来进行D的评分工作。
DEEP COMPOSITE MODELS FOR RECOMMENDATION
CNN and Autoencoder
Collaborative Knowledge Based Embedding (CKE)
类似CDL,CKE除了使用AE提取文本信息之外,还使用stacked convolutional auto-encoders(将SDAE的全连接层变成CNN)提取视觉信息。
CNN and RNN
存在多种组合:
例如:使用CNN提取语义,再用LSTM提取语义之间的关系。
还有的直接使用CNN提取图像,RNN提取文本,然后用attenttion平衡CNN和RNN的输出结果。
CNN and MLP
图片推荐,两个CNN用来提取图像特征,MLP用来提取user特征。其中一个CNN提取正采样,另一个提取负采样。因此一个训练数据由三部分组成:user, pos image, neg image。
目标函数:
其中,
目标就是最大化p,就是让σ(p)趋近于1。
还有一种模型用来tag推荐,用CNN处理图像,MLP处理文本。两个网络的输出连在一起进入一个softmax层来预测候选tag的概率。
RNN and Autoencoder
把AE中的前馈神经网络层换成RNN来增加模型鲁棒性和处理文本信息的能力。
RNN and MLP
NRT.
多任务学习模型。(预测评分和为user生成文本形式的tips)
用MLP生成评分r,再将r、user和item的特征向量输入GRU生成tips。
CNN and DSSM
通过user度过的document推荐user感兴趣的document。
将CNN应用到DSSM的隐藏层中,来抓取局部和全局的特征。
模型的优化与DSSM也不同,通过最大化
使得模型效果比DSSM显著提升。
其中t1代表比t2更高兴趣的document。
RNN and DSSM
TDSSM
和CNN、DSSM一样,也是对DSSM的内结构做一下改变。TDSSM将提取item特征的神经网络变成静态特征。建模user的网络被两个网络代替,一个是提取静态特征的MLP,和提取user临时特征的RNN。
FUTURE RESEARCH DIRECTIONS AND OPEN ISSUES
- Deep Understanding of Users and Items
虽然文本信息、隐式反馈等内容已被应用到模型中,但是目前还没有完全应用这些信息的模型。也还没有使用user足迹的模型。在推荐系统的研究中,很少有人使用特征工程,但是特征工程在实际工程中很有用。 大多数现有模型都需要手动构建和选择特征,这非常耗时。对于推荐系统的深度特征工程特定更深入的研究可以节省人力和提高推荐质量。 - Deep Composite Models
虽然已经有了很多组合模型,但是还有更多的组合还没有被探索。 - Temporal Dynamics
将辅助信息纳入RNN(来提取短期的动态特征)或将其他深度学习模型应用于基于session的推荐,在将来可以被探索。
item和user的演变也是Temporal特征的重要部分,深度序列模型是建模这些特征的好办法。 - Cross Domain Recommendation
跨领域推荐,可以在推荐本领域的item时,借鉴从其他领域学得的知识,可以解决数据稀疏和冷启动问题。
迁移学习适合进行跨领域推荐。 - Multi-Task Learning
多任务学习的优势:
一次学习几个任务可以通过共享隐藏表示来防止过拟合;可以对推荐做出可解释输出;多任务提供了隐式数据增强以减轻稀疏性问题。 - Attention Mechanism
在推荐系统中使用Attention机制可以过滤掉无用信息,得到更有代表性的特征。 - Scalability
现在是大数据时代,因此实际工程中的推荐系统对可扩展性和时间复杂度要求很高。因此对大量数据的学习,计算效率,模型复杂性和可扩展性与参数数量的指数增长的平衡等方面值得深入研究。 - Novel Evaluation Metrics
对于高质量的推荐系统而言,准确度等等目前已有的度量方式远远不够,甚至可能导致过度专业化。推荐系统不仅要执行准确的历史建模,还要为用户提供全面的体验。
CONCLUSION
在这篇文章中,我们对基于深度学习的推荐系统中迄今最着名的作品进行了广泛的回顾。 我们提出了一个二维分类方案来组织和聚集现有的出版物。 我们还对这些作品进行了简要的统计分析,以确定这些研究的贡献和特点。 我们重点介绍一系列潜在的研究原型,并分析它们的优缺点和适用场景。 此外,我们详细介绍了一些最紧迫的未解决问题和有希望的未来扩展。 近几十年来,深度学习和推荐系统都是正在进行的热门研究课题。 每年都有大量的新兴技术和新兴模式,在这里,我们提供了一个包容性的框架,以全面理解这个领域的关键方面,阐明最显着的进步并为未来的研究提供一些启示。