A Survey of Recommender Systems Based on Deep Learning
(本文为同名paper的个人翻译版本,如有认知上的偏差,请谅解)
原文地址:https://www.researchgate.net/publication/328843931_A_Survey_of_Recommender_Systems_Based_on_Deep_Learning
此文只仅作为阅读学习笔记用。
由于最近在打KDD CUP的竞赛,刚刚接触到推荐系统的一些知识,先从Survey开始入手了解相关技术
ABSTRACT
(背景描述和文章大致结构)今年来,深度学习的高速发展在语音识别,图像分析和自然语言处理等领域得到了很好的效果,基于深度学习的推荐系统也是其应用之一,相比于传统的推荐系统,基于深度学习的推荐系统能够更好地捕捉到用户和物品间的非线性和并且更加有意义的特征,并且使得更加抽象复杂的信息在高层中得以以数据的形式进行编码。在这篇paper中,作者主要讲了三点:
- 介绍了一些深度学习的技术和术语
- 介绍了基于深度学习的推荐系统的现状
- 讲述了对于未来基于深度学习的推荐系统的发展可能
I. INTRODUCTION
推荐系统的中心思想是分析用户的历史行为和偏好信息,建立相关的模型然后自动的推荐给用户他们感兴趣的物件。推荐系统不局限于基于用户喜好推荐给他们与他们喜好类似的商品,也可以推荐未知的他们可能感兴趣的商品。目前的研究主要分为三类:
- 基于内容的推荐(content-based recommendation): 利用用户信息和商品的描述来推荐商品。
缺点:用户隐私问题使得该方法难以很好的实现 - 协同过滤推荐 (filtering-based recommendation):利用用户过去产生的信息和偏好信息来推荐(如对商品的评价),而不依赖于用户的个人信息和商品描述
缺点:当评价矩阵(rating matrix )很稀疏时,基于协同过滤的方法效果会有明显的下降。其次该方法不能推荐没打过分的商品,因此有时候在使用协同过滤方法时也会使用一些商品描述信息 - 混合推荐:混合多种推荐方法
与此同时,深度学习在其他领域的杰出表现也给推荐系统领域带来了更多的机会。基于深度学习的推荐系统(deep learning-based recommedation system DLRS)已经能超越传统的模型并取得很好的推荐质量。深度学习基础能够很好的捕捉到用户和商品之间的非线性关系和许多不为人察觉的重要联系。此外,深度学习基础还能将商品本身的信息如:上下文信息,文本和视觉信息很好的结合到一起。
II. TERMINOLOGIES AND BACKGROUND CONCEPTS
这块主要介绍一些专业术语和背景知识
A. RECOMMENDER SYSTEM
传统的三种推荐系统:基于内容的推荐,协同过滤和混合推荐。
1)基于内容的推荐:
先对商品描述对商品进行相似度的分析,然后通过用户提供的喜好,推荐系统为其推荐相关商品。
举个栗子:当前系统要为用户推荐喜好的书籍。基于内容的推荐系统会获取到该用户已经阅读过的书籍信息,通过关键词分析技术如:TF-IDF将书籍表示成一个多维的向量信息,然后通过聚类的技术就可以展示出用户的信息偏好。
2)协同过滤:
协同过滤方法假设对相同物品进行过评分的用户很可能会有相似的偏好。协同过滤方法会给用户推荐和他类似的用户或者与他喜欢的商品类似的商品,即分为user-based 和item-based两类。
3)混合推荐:
混合推荐系统分为单片式混合推荐(monolithic hybrid recommendation)、并行式混合推荐(hybrid recommendation)和管道式混合推荐(pipeline hybrid recommendation)三类
单片式就是将多种推荐系统融合成一种算法。
并行式:根据输入,并联的混合型推荐器各自独立运行,分别生成推荐列表,再将输出的数据组合成最终的推荐集。
管道式推荐:以管道式架构连接多个推荐系统,前一个推荐系统的输出部分成为后一个推荐系统的输入部分。
B. DEEP LEARNING TECHNOLOGY
- AUTOENCODER (自编码器)
自动编码器(AE)是一种无监督的模型,试图在输出层重构其输入数据。一般来说,瓶颈层(最中间层)作为输入数据的突出特征表示。Autoencoder可以看作是传统的多层感知器的变体。自动编码器对输入数据进行重构,通过编码和解码过程学习数据的深层特征。
(图片摘自原Survey)
在网络训练过程中,每训练一个样本,通过网络在输出层产生一个新的信号。网络学习的目的是为了使输出信号和输入信号尽可能的相似性。这种相似性用重建误差来表示。
自动编码器有许多变种,如去噪自动编码器、边缘化去噪自动编码器、稀疏自动编码器、堆叠式去噪自动编码器(SDAE)、收缩式自动编码器和变异自动编码器(VAE)等。
几乎所有的自编码器都可以被用到推荐系统的应用当中。
-
RESTRICTED BOLTZMANN MACHINE (受限玻尔兹曼机)
受限玻尔兹曼机(RBM)是一个由可见层和隐藏层组成的两层神经网络。它是最早的人工神经网络之一,能够通过学习固有的 "内隐 层 "来解决复杂的学习问题。数据的内在表现形式。由于消除了相同层之间的联系,学习效率大大提高。这里限制的意思是,层内不存在层间的 可见层或隐藏层的通信。它可以轻易地堆积到深层网络中。
(图片摘自原Survey)
可见层和隐藏层之间的联合概率分布定义为:𝑃(𝑣, ℎ) = 1 Z \frac{1}{Z} Z1 𝑒−(𝑎𝑇𝑣+𝑏𝑇ℎ+ℎ𝑇𝑤𝑣 )
a为可见层的偏置量,b为 隐层的偏差,Z为归一化的函数,W代表可见层和隐藏层之间的连接权重。
该模型的优化目标是基于最大似然估计:
arg 𝑚𝑎𝑥 ∑ v ∈ V \sum_{v\in V}^{} ∑v∈V log 𝑃(𝑣, ℎ)与稀疏自编码器等其他模型相比,RBM模型的速度非常快,只需要进行简单的前向编码操作即可。但如果用传统的采样方法来解决,迭代次数太多,效率很低。Hinton提出了一种快速逆向发散算法(contrastive divergence) 可以解决这个问题。
通过层叠多个单层限制性波尔兹曼机模型,可以形成一个深层结构。并通过逐层的优化方法来进行网络的优化。 -
RECURRENT NEURAL NETWORK(循环神经网络)
循环神经网络(Recurrent Neural Network,RNN)适用于序列数据的建模。与前馈神经网络不同的是,RNN中存在循环和记忆,用于记忆以前的计算。RNNs已经被广泛应用于机器翻译、语音识别[、标签生成等领域。
RNN结构
在每一时刻RNN都会有一个输入和输出,并且前一时刻的hidden_state也会作为当前时刻的输入之一,这个是RNN最大的特点。
有一些针对不同应用需求的RNN模型,如长短时记忆(long short-termmemory,LSTM)、门控循环单元(gated recurrent unit,GRU)、记忆网络、堆栈增强型循环神经网络(stack-augmented recurrent Net )、神经图灵机(neural turing machines,NTM)、可分化神经计算机(diverable neural computer,DNC)等。LSTM是一种长短期记忆神经网络。它是一种时间递归神经网络,适用于处理和预测具有相对较长的时间间隔和时间序列延迟的重要事件。LSTM通过微妙的门控将短期记忆与长期记忆结合在一起,在一定程度上解决了渐变记忆的问题。LSTM与RNNN之间的区别在于,它在算法中加入了一个 "处理器 "来判断信息是否有用。这个处理器的结构被称为cell。在一个单元格中放置三个单元格,分别称为输入门、遗忘门和输出门。只有符合算法认证的信息才会被保留,不符合的信息会通过遗忘门被遗忘。
RNN可以被用来分析用户的时序行为,视频和文本特征等。
- CONVOLUTIONAL NEURAL NETWORK(卷积神经网络)
卷积神经网络(Convolutional Neural Network,CNN)是一种特殊的前馈神经网络,具有卷积层和池化操作。它可以捕获全局和局部特征,并显著提高了效率和精度。它在处理具有网格状拓扑结构的数据时表现良好。CNN是由一个或多个卷积层(通常有一个子采样步骤)组成,然后像标准的多层神经网络一样,由一个或多个完全连接的层组成。卷积神经网络(Convolutional neural network)是一种多层感知器。近年来,卷积神经网络(convolutional neural networks(CNN)成为图像理解领域的热门话题。
与传统的多层感知器相比,CNN采用池化操作,减少了模型中的神经元数量,具有较强的移位不变性或空间不变性。此外,CNN的共享权重架构可以减少模型中的参数数量,降低模型的复杂度,增强模型的归纳能力。CNN主要用于处理二维图像数据。卷积神经网络的基本结构是由输入层、卷积层、子采样层(池化层)、全连接层、输出层组成。
-
DEEP BELIEF NETWORK (深度信念网络)
深度信念网络( Deep Belief Network, DBN) 是一种深层的概率有向图模型, 其图结构由多层的节点构成.每层节点的内部没有连接, 相邻两层的节点之间为全连接. 网络的最底层为可观测变量, 其他层节点都为隐变量. 最顶部的两层间的连接是无向的, 其他层之间的连接是有向的。
DBN的结构可以被认为是由多个受限玻尔兹曼机堆叠组成。上一个RBM的隐藏层被认为是网络中下一个RBM的可见层。这样,在DBN的训练过程中,每个RBM都可以单独使用前一个RBM的输出进行训练,所以与传统的神经网络相比,DBN的训练比较简单。(注:结构上虽然和全连接网络一样,但是本质是概率图模型!!,内部计算的是概率)DBN结构
一般这种网络都是用来做特征提取用的。
III. DEEP LEARNING-BASED RECOMMENDER SYSTEM
A. DEEP LEARNING IN CONTENT-BASED RECOMMENDER SYSTEMS
基于内容的推荐系统主要是基于项目和用户的辅助信息,可以考虑到各种辅助信息,如文本、图像、视频等各种辅助信息,基于内容的推荐系统中的深度学习主要用于有效地捕捉用户与项目之间的非线性和非琐碎的用户-项目关系,并使更复杂的抽象作为数据表示在更高的层级中被编码成数字信息。此外,它还从上下文信息、文本信息和视觉信息中捕捉到了数据本身的错综复杂的关系。
B. DEEP LEARNING IN COLLABORATIVE FILTERING RECOMMENDER SYSTEMS
协作过滤(Collaborative filtering,CF)是推荐系统中广泛使用的一种方法,用于解决许多现实世界中的问题。传统的基于CF的方法采用了用户-项目矩阵(user-item matrix),通过对用户对项目的个人偏好进行编码,从而进行学习推荐。在实际应用中,通常情况下,评分矩阵是非常稀疏的,导致基于CF的方法在推荐性能上明显下降,一些改进的CF方法利用不断增加的侧信息量来解决数据稀疏问题以及冷启动问题,但是由于用户-项目矩阵和侧信息的稀疏性,学习到的 latent factors可能会失效。一些研究者利用深度学习中学习有效表示的进展,提出了基于深度学习的协同过滤方法,这是一种基于模型的协同过滤推荐方法。
1) AUTOENCODER-BASED COLLABORATIVE FILTERING METHOD
基于自动编码器的协作过滤(ACF)是第一个基于自动编码器的协作推荐模型。它不使用原始的部分观测向量,而是通过整数评级来分解它们。Sedhain 等人 ,提出了基于自动编码器的推荐模型。提出了基于autoencoder的协同过滤推荐方法(AutoRec),模型的输入是基于用户的评分或基于条目的评分矩阵R,通过编码和解码过程产生一个输出,并通过最小化重构误差来优化模型参数。例如,如果评级得分在[ 1-5 ]范围内的整数,则每个 r u i r_{ui} rui 将被分为5个部分向量。
协作式去噪自动编码器(Collaborative Denoising Auto-Encoder CDAE) 主要用于排名预测。CDAE 的输入是用户的部分观察到的隐式反馈。如果用户喜欢这部电影,则输入值为 1,否则为 0。它也可以被看作是一个反映用户对项目兴趣的偏好向量。
CDAE最初使用SGD对所有反馈进行参数更新。然而,原作者认为,在现实世界的应用中考虑到所有的评级是不切实际的,所以他们提出了一种负采样技术,从负集中抽取一小部分子集(用户没有交互过的商品),这样可以在不降低排名质量的前提下,大幅降低时间复杂度。
2) RESTRICTED BOLTZMANN MACHINEBASED COLLABORATIVE FILTERING METHOD
受限波尔兹曼机器(RBM)是一个由可见层和隐藏层组成的双层神经网络。它是最早的人工神经网络之一,能够通过学习数据的内在内在表达来解决复杂的学习问题。由于消除了同层之间的联系,学习效率大大提高。Salakhutdinov等人提出了一个受限制玻尔兹曼机推荐系统。研究者进一步提出了使用conditional RBM来体现隐式反馈信息。由于RBM可见层的unit规定是二值分布,所以评分(rating score)以one-hot的形式来表示 。
每一个RBM都有相同数量的隐藏单元,但一个RBM只对该用户评分的电影有可见的softmax单元,所以如果该用户评分的电影不多,那么一个RBM的连接就很少。每一个RBM只有一个training case,但所有相应的权重和偏向都是绑定在一起的,所以如果两个用户对同一部电影进行了评分,他们的两个RBM必须使用相同的权重,即该电影的softmax可见单元和隐藏单元之间的权重相同。对于不同的用户,隐藏单元的binary states可以是完全不同的。
(省去一下不是人话的公式)…
3) RECURRENT NEURAL NETWORK-BASED COLLABORATIVE FILTERING METHOD
递归神经网络(RNNN)适用于对顺序数据进行建模。与前馈神经网络不同,RNN中存在循环和记忆,以记住以前的计算。在实际应用中经常部署一些变体如长短期记忆(LSTM)和门控循环单元(GRU)网络来克服消失梯度问题。基于RNN的协同过滤的基本思想是利用RNN对用户历史序列行为对用户当前行为的影响进行建模,然后为用户推荐items并预测用户的行为。下图是基于RNN的协作过滤方法的基本框架 。假设输入是 { I1 , I2 , … , It } 𝑂𝑡 = 𝜎 ( 𝑔 ( W ⋅ h t − 1 W \cdot h_{t-1} W⋅ht−1+ V ⋅ I t V\cdot I_t V⋅It ) 𝑉 ) ,g是激活函数,𝑂𝑡是输出,它表示在时间t时选择特定项目的概率,通常由时间t时的隐藏向量计算。最近的进展证明了RNN在解决这种基于会话的推荐问题上的有效性。
4) GENERATIVE ADVERSARIAL NETWORKBASED COLLABORATIVE FILTERING METHOD
生成对抗网络(GAN)是一种生成神经网络,它由一个判别器和一个生成器组成(生成用来生成假的样本,判别器即接受来自生成器的模拟样本,也会接受真实样本,来学习分辨真假)。这两个神经网络在最小化博弈框架下通过相互竞争同时进行训练。信息检索生成对抗性神经网络(IRGAN)是第一个将GAN应用于信息检索领域的模型。传统的GAN由一个判别器和一个生成器组成。在信息检索中可能有两种思路:生成式检索侧重于预测给定一个查询的相关文档,而判别式检索侧重于预测给定一个查询-文档对的相关性。一方面,判别性模型,旨在从有标签和无标签的数据中挖掘信号,为训练生成性模型提供指导,以拟合给定查询的文档的底层相关性分布。在另一方面,生成模型作为当前判别模型的攻击者,通过最小化其判别目标,以对抗性的方式为判别模型生成困难的例子。
因此,受GAN的启发,IRGAN通过让这两种不同类型的IR模型进行最小化游戏,将这两种不同类型的IR模型统一起来:生成式检索模型会尝试生成(或选择)看起来像地面真相相关文档的相关文档,因此可以骗过判别式检索模型,而判别式检索模型会尝试在ground-truth相关文档和对手生成的相关文档之间做出明确的区分。
(虽然这段讲了好多Information retrieval 的东西,但是其实本质是一样,推荐系统也可以看做一种query-docoment的检索模式)
C. DEEP LEARNING-BASED HYBRID RECOMMENDER SYSTEMS
传统的基于CF的方法采用了用户项目矩阵来编码用户对items的个人偏好,从而进行学习推荐。在实际应用中,评级矩阵通常非常稀疏,导致基于CF的方法在推荐性能上明显下降。在这种情况下,一些改进的CF方法利用不断增加的side-information来解决数据稀疏问题以及冷启动问题。然而,由于user-items矩阵和side-information的稀疏性,学习到的 latent factors可能并不有效。基于深度学习的混合推荐方法的基本思想是将基于内容的推荐方法与协同过滤推荐方法相结合,将users或items的特征学习和推荐过程整合到一个统一的框架中。
一些研究者利用深度学习中学习有效表征的特性,提出了一种基于堆叠式去噪自动编码器的混合模型,该模型从side-information和评分矩阵协同过滤,共同进行深度users和items的latent factors学习。
基于栈式去噪自动编码器的混合推荐模型利用评级矩阵和侧信息,将SDAE和矩阵因子化结合在一起。矩阵因子化 (Matrix Factorization)是一种广泛使用的基于模型的CF方法,具有良好的可扩展性和准确性,而SDAE是一种从原始输入中提取高级表示的强大方法。这两种模型的结合利用了它们的优点,可以学习更多的表达式模型。该模型包含三个部分:上分量和下分量是两个SDAE,分别提取用户和items的latent factor vectors;中间分量将评分矩阵R分解为两个 latent factor matrices。
a r g m i n U , V arg min_{U,V} argminU,V 𝑮(𝑹, UTV) + 𝜶( ‖ U ‖ F 2 ‖U‖^2_F ‖U‖F2+ ‖ V ‖ F 2 ‖V‖^2_F ‖V‖F2) + 𝜷𝝈( S ( u ) S^{(u)} S(u), 𝑿, 𝑼) + 𝜸𝝈( S ( i ) S^{(i)} S(i), 𝒀, 𝑽)
其中 𝝈 ( ∙ , ∙ , ∙ )是连接用户或item side information与latent factors的函数, 𝑮 ( ∙ , ∙ )是将评级矩阵R分解为两个潜伏因子矩阵U和V的损失函数, 𝛼是正则化参数,β和𝛾是权衡参数。注意,方程(2)中的最后两个项是利用SDAE模型设计的,它从评级矩阵中提取latent factor matrix和附加的side information .
D. COMBINATION OF DEEP LEARNING AND SOCIAL NETWORK-BASED RECOMMENDER SYSTEMS
传统的推荐系统总是忽略了用户之间的社交关系。但在我们的现实生活中,当我们在向朋友求推荐好的数码相机或者是看电影的时候,其实是在口头上的推荐。社会化推荐是每天都会发生的事情,我们总是会向朋友种草。因此,为了完善推荐系统,提供更多个性化的推荐结果,我们需要结合用户之间的社交网络信息。在社交网络中,用户之间存在着各种类型的社交关系,用户之间会通过社交关系进行互动。
基于社会化网络的推荐系统最重要的是通过对用户之间的社交关系的影响建模,提高推荐系统的质量。在社会化网络中,所有的物品都具有位置属性,用户行为在时间和空间上具有时空序列模式。对这种时空序列模式进行建模,有利于提高兴趣点推荐的准确性。因此,基于位置社交网络的推荐系统需要关注用户之间的社交关系,还需要掌握用户的位置影响、序列运动模式等因素。最近,基于用户信任关系的直觉,可以利用用户的信任关系来增强传统的推荐系统,提出了一些信任感知推荐方法。这些方法利用推断出的隐式信任信息或观察到的显式信任信息来进一步改进传统的推荐系统。Trust-aware推荐系统在推荐系统的研究中向前迈进了重要一步
E. CONTEXT-AWARE RECOMMENDER SYSTEMS BASED ON DEEP LEARNING
语境感知推荐系统(Context-aware recommender systems,简称CARS),它将语境信息融入到推荐系统中,已经成为推荐系统领域最热门的话题之一。
深度学习被应用于情境感知推荐系统。深度学习方法可以有效地将情境信息整合到推荐系统中,在许多复杂的推荐场景中通过深度学习方法获得情境信息的潜伏表示。在此基础上,情境感知推荐可以有效地集成到各种粗略的情境数据中,缓解情境推荐系统中的数据稀疏问题。目前,基于深度学习的情境感知推荐系统的应用主要集中在如何利用深度学习的方法对情境信息进行有效的建模。
时序信息在建模用户行为中起着重要的作用,各种时序推荐方法已经被提出。基于马尔可夫假设的方法被广泛使用,但独立地结合了几个最新的成分。最近,基于Recurrent Neural Networks(RNN)的方法已经成功地应用于多个时序建模任务。然而,对于现实世界的应用,这些方法在建模的上下文信息方面有困难,而这些对于行为建模来说是非常重要的。
(未完待续)