这是对近年来基于深度学习的推荐系统的内容的一份综述,具体来说,大部分内容来自 Deep Learning based Recommender System: A Survey and New Perspectives,我翻译和总结了其中的一些内容。同时,我有时也会阅读该survey提到的工作的原文,并对某些更具体的内容做一些补充。
正文开始
深度学习近年来在各个领域都被广泛应用,推荐系统也不例外,那么,深度学习算法是如何与推荐系统联系起来的呢?文章旨在全面回顾最近基于深度学习的推荐系统的研究成果,并展望未来的趋势。
推荐系统是对信息爆炸的防线,对于用户的选择起到至关重要的作用。通常,我们基于用户偏好,项目特征,用户历史以及时序数据和空间数据的一些其他附加信息来生成推荐列表。我们把推荐系统分为协同过滤,content-based推荐系统和混合推荐系统。最近,基于深度学习的推荐系统通过克服传统模型的一些问题和实现高推荐质量而获得了显著的进步。深度学习能够有效地捕获非线性和非平凡的用户-项目关系,并且能够将数据表示为更复杂的抽象的编码。此外,它还从丰富的可访问数据源(如上下文,文本和可视信息)中捕获数据本身的错综复杂的关系。
近年来,基于深度学习的推荐方法的研究出版物数量呈指数增长,深度学习成为推荐系统研究中不可避免的部分。推荐系统领域领先的国际会议RecSys自2016年起开始定期进行深度学习推荐系统研讨会。该研讨会旨在促进研究并鼓励基于深度学习的推荐系统的应用。我们应该了解学术界和工业界的深度学习模型的优缺点和应用场景。这篇survey调查的文章主要来自NIPS, ICML, ICLR, KDD, WWW, SIGIR, WSDM, RecSys等顶级会议,具有相当程度的代表性。该调查的目的是为从业人员提供一个快速查询的目录。该survey似乎到目前为止还在不断更新,我这个系列只包括截止到2018.10.08的该survey中的内容。
首先,在讨论问题之前,我们需要确定我们讨论的范围,并做一些预定义。
Overview of Recommendation Systems and Deep Learning
推荐系统估计user对item的偏好,并推荐user可能喜欢的item。我们把推荐系统分为协同过滤,content-based推荐系统和混合推荐系统。 协作过滤从user-item 交互历史中进行学习并作出推荐,其中交互行为包括显式反馈(例如,user对item的先前评分)或隐式反馈(例如,用户的浏览历史)。 基于内容的推荐主要基于一些item和user的辅助信息,通过比较这些辅助信息能得出一些推荐结果。 可以考虑各种辅助信息,例如文本,图像和视频。 混合模型是指整合两种或更多种推荐策略的推荐系统
符号定义
我们设定如下讨论情景:我们有个user和个item,是交互矩阵,是预测的交互矩阵。代表用户对item 的偏好,是模型预测的用户对item 的偏好。的某一行代表一个用户的偏好行为,表示为。的某一列代表一个item的被用户偏好行为,表示为。和分别代表被观察到和未被观察到的交互行为。我们另外使用和来代表user和item的latent factor(隐藏特征)。是隐特征的维数。
深度学习技术
深度学习通常被认为是机器学习的子领域。 深度学习的典型定义是它学习深层表征,即从数据中学习多层次的表示和抽象。 出于实际原因,我们将任何可分解为神经网络的架构视为“深度学习”,只要它使用随机梯度下降(SGD)的变体优化可微的目标函数。 神经网络架构在监督和非监督学习任务中都取得了巨大的成功。 在本小节中,我们阐明了与本survey密切相关的各种架构范式。
- Multilayer Perceptron (MLP):多层感知器(MLP)是一种在输入层和输出层之间具有多个(一个或多个)隐藏层的前馈神经网络。 这里,感知器可以使用任意激活函数,并不一定是严格的二元分类器。 MLP可以被表示为非线性变换的堆叠层,学习分层特征表示。 MLP也被称为通用逼近器。
- Autoencoder(AE):自编码器(AE)是一种无监督模型,用于在输出层中重建其输入数据。通常,瓶颈层(最中间层)用作输入数据的特征表示。自编码器有许多变体,如去噪自编码器(denoising autoencoder),边缘化去噪自编码器(marginalized denoising autoencoder),稀疏自编码器(sparse autoencoder),收缩自编码器(contractive autoencoder)和变分自编码器(variational autoencoder,VAE)。
- Convolutional Neural Network (CNN):卷积神经网络(CNN)是一种特殊的前馈神经网络,具有卷积层和池化操作。 它可以捕获全局和局部特征,并显著提高效率和准确性。它在处理具有网格状拓扑的数据方面表现良好。
- Recurrent Neural Network (RNN) :循环神经网络(RNN)适用于对sequential数据建模。 与前馈神经网络不同,RNN中存在循环和记忆结构以记住之前的计算结果。 诸如长短时记忆(LSTM)和门控循环单元(GRU)网络的变体通常在实践中被部署以克服梯度消失问题。
- Restricted Boltzmann Machine (RBM) :受限玻尔兹曼机(RBM)是一个由可见层和隐藏层组成的双层神经网络。 它可以很容易地堆叠到深网。 此处Restricted意味着可见层或隐藏层中没有层内通信。
- Neural Autoregressive Distribution Estimation (NADE):神经自回归分布估计(NADE)是一种在自回归模型和前馈神经网络之上构建的无监督神经网络。 它是用于建模数据分布和密度的易处理且有效的估计器。
- Adversarial Networks (AN) :对抗网络(AN)是一种生成神经网络,由鉴别器和发生器组成。 通过在极小极大游戏框架中相互竞争来同时训练两个神经网络。
- Attentional Models (AM):注意模型(AM)是一个技巧。注意机制通常无处不在,并且在计算机视觉和自然语言处理领域中被接受。 然而,它也是深度推荐系统研究的新兴趋势。
- Deep Reinforcement Learning (DRL):深度强化学习。深度神经网络和强化学习的结合。
深度学习技术的优势
我们总结了基于深度学习的推荐模型的优势:
- 非线性变换。与线性模型相反,深度神经网络能够利用非线性激活(例如relu,sigmoid,tanh等)对数据中的非线性进行建模。该属性使得捕获复杂且复杂的用户项交互模式成为可能。诸如MF,FM,稀疏线性模型的常规方法基本上是线性模型。
- 表征学习。深度神经网络有效地从输入数据中学习潜在的解释因素和有用的表示。通常,在实际应用程序中可以获得有关项目和用户的大量描述性信息。利用这些信息可以促进我们对项目和用户的理解,从而产生更好的推荐者。因此,将深度神经网络应用于推荐模型中的表示学习是一种自然的选择。使用深度神经网络来辅助表示学习的优点有两方面:(1)它减少了手工特征设计的工作量。特征工程是一项劳动密集型工作,深度神经网络能够在无监督或监督的方法中自动从原始数据中学习特征; (2)它使推荐模型能够包括异构内容信息,例如文本,图像,音频甚至视频。深度网络在多媒体数据处理方面取得了突破,并展示了从各种来源学习的表现形式的潜力。
- 序列建模。 深度神经网络已经在许多顺序建模任务上展示了希望,例如机器翻译,自然语言理解,语音识别,聊天机器人等等。 RNN和CNN在这些任务中发挥着关键作用。 RNN通过内部存储状态来实现这一点,而CNN通过随着时间滑动的过滤器来实现这一点。 它们在数据挖掘顺序结构中具有广泛的适用性和灵活性。
- 灵活性。深度学习技术具有很高的灵活性,特别是随着许多流行的深度学习框架的出现,如Tensorflow,Keras,Caffe,MXnet,DeepLearning4j,PyTorch,Theano等。这些工具大多以模块化方式开发并具有活跃的社区和专业的支持。 良好的模块化使开发更有效率。 例如,很容易将不同的神经结构组合起来以形成强大的混合模型,或者用其他模块替换一个模块。 因此,我们可以轻松地构建混合和复合推荐模型,以同时捕获不同的特征和因素。
深度学习技术潜在的劣势
- 解释性。尽管成功,但是深度学习工作机制如同黑盒,提供可解释的预测似乎是一项非常具有挑战性的任务。反对深度神经网络的一个常见论点是隐藏的权重和激活通常是不可解释的,限制了可解释性。然而,随着神经元模型的出现,这种担忧得到了一些缓解,现有的最先进模型已经能够在一定程度上解释意义,从而能够提供可解释的推荐。
- 数据要求。第二个可能的限制是,深度学习被认为是数据饥渴的,因为它需要足够的数据才能完全支持其丰富的参数化。然而,与标记数据稀缺的其他领域(例如语言或视觉)相比,在推荐系统研究的背景下获得大量数据相对容易。百万/亿级别的数据集不仅在工业中很常见,而且也作为学术数据集发布。
- 广泛的超参数调整。反对深度学习的第三个成熟论点是需要进行广泛的超参数调整。然而,我们注意到,超参数调整不是深度学习的特有问题,而是一般的机器学习中都会出现的(例如,正规化因子和学习速率同样必须针对传统的矩阵分解等进行调整)。但是,在某些情况下,深度学习可能会引入额外的超参数。
深度学习推荐方法的分类
为了提供这个领域的鸟瞰,我们根据所采用的深度学习技术的类型对现有模型进行分类。 我们进一步将基于深度学习的推荐模型分为以下两类。 下图总结了分类方案。
- Recommendation with Neural Building Blocks: 使用单个深度学习方法的推荐。我们按照之前的八种技术分类分别讨论不同的推荐方法。
- Recommendation with Deep Hybrid Models:混合模型。
表1列出了所有已被调查的模型,我们按照上述分类方案对其进行组织。 此外,我们还从表2中的任务角度总结了一些publications。我们调查的publications涉及各种推荐任务。 由于使用深度神经网络(例如基于会话的推荐,图像,视频推荐),一些原来不常见的任务已开始受到关注。 一些任务对于推荐研究领域可能并不新颖,但DL提供了更多找到更好解决方案的可能性。 例如,如果没有深度学习技巧的帮助,处理图像和视频将是一项艰巨的任务。 而深度神经网络的序列建模功能可以轻松捕获用户行为的顺序模式。
我们将在之后的博客中讨论这些方法的具体细节。这个survey目前的参考文献列表如下,感兴趣的读者可以自己索引文章: