《基于深度学习的推荐系统研究综述》_黄立威——阅读笔记

一、常用的深度学习模型和方法介绍

1.自编码器

自编码器通过一个编码和一个解码过程来重构输入数据,学习数据的隐表示。基本的自编码器可视为一个三层的神经网络结构.下图是自编码器结构示意图:

自编码器的目的是使得输入 x 与输出 y 尽可能接近,这种接近程度通过重构误差表示,根据数据的不同形式,通常重构误差有均方误差和交叉熵两种定义方式。

如果仅仅通过最小化输入输出之间的误差来实现对模型的训练,自编码器很容易学习到一个恒等函数。为了解决这个问题,研究者提出了一系列自编码器的变种,其中比较经典的包括稀疏自编码器和降噪自编码器。2007 年,Bengio 等人通过堆叠多个降噪自编码器,提出了栈式降噪自动编码器(StackedDenoising Autoencoder, SDAE)的概念,其是一种深度神经网络结构,通过逐层非监督学习的预训练可以学习多层次的数据抽象表示。

应用场景主要包括评分预测、文本推荐、图像推荐等。

2.受限玻尔兹曼机

玻尔兹曼机(Boltzmann machine, BM)是一种生成式随机神经网络,由Hinton和Sejnowski在1986年提出。。BM能够学习数据中复杂的规则,具有强大的无监督学习能力。但是,玻尔兹曼机的训练过程非常耗时。为此,Sejnowski等 人 进 一 步 提 出 了 一 种 受 限 玻 玻 尔 兹 曼 机(Restricted Boltzmann Machine, RBM)其在玻尔兹曼机的基础上,通过去除同层变量之间的所有连接极大地提高了学习效率。

尽管无法有效计算RBM所表示的分布,但是通过Gibbs采样能够得到RBM所表示的分布的随机样本。Gibbs采样的问题是需要使用较大的采样步数,使得RBM的训练效率仍不高。考虑到这种情况,Hinton提出了一种对比散度(contrastivedivergence, CD)快速学习算法,CD算法同样利用Gibbs采样过程(即每次迭代包括从可见层更新隐层,以及从隐层更新可见层)来获得随机样本,但是只需迭代 k (通常 k =1)次就可获得对模型的估计,而不需要像Gibbs采样一样直到可见层和隐层达到平稳分布。

应用场景主要是用户评分预测。

3.深度信念网络

Hinton等人在 2006 年提出了一种深度信念网络(Deep Belief Network, DBN),其是一种由多层非线性变量连接组成的生成式模型。在深度信念网络中,靠近可见层的部分是多个贝叶斯信念网络,最远离可见层的部分则是一个 RBM,其结构如下图所示:

DBN 的结构可以看作由多个受限玻尔兹曼机层叠构成,网络中前一个 RBM 的隐层视为下一个 RBM 的可见层。

DBN 网络的训练可采用一种贪婪逐层算法。

深度信念网络当前在推荐系统中应用较少。由于DBN在建模一维数据上比较有效,因此被应用于提取音乐的特征表示,从而进行音乐推荐。当前的应用场景仅限于音乐推荐

4.卷积神经网络

卷积神经网络是一种多层感知机,主要被用来处理二维图像数据。卷积神经网络在推荐系统中应用较为广泛,主要被用于从图像、文本、音频等内容中提取项目的隐藏特征,从而获取项目的低维向量表示,并结合用户隐表示为用户产生推荐。当前的用场景主要包括图像推荐、音乐推荐、文本推荐等

5.循环神经网络

1986年 Rumelhart 等人[34]提出循环神经网络(Recurrent Neural Network, RNN)的概念。RNN 的最大特点在于神经网络各隐层之间的节点是具有连接的,它能够通过获取输入层的输出和前一时刻的隐层状态来计算当前时刻隐层的输出,也就是说 RNN 能够对过去的信息进行记忆。将 RNN 展开之后发现,它是一类所有层共享相同权值的深度前馈神经网络。但是,普通的 RNN结构存在梯度消失问题,很难学习数据之间的长程依赖关系。针对这个问题,研究者相继提出了一些RNN 的变种,其中最著名的包括 Hochreiter 等人提出的长短时记忆网络(Long Short-Term Memory, LSTM)和 Cho 等人[67]提出的门限循环单元(GatedRecurrent Unit, GRU)。

随着深度学习的不断发展,通过增加更加广泛的记忆模块,研究者提出了记忆网络(Memory Network)、栈式增强循环网络(Stack-augmented Recurrent Net)、神经图灵机(Neural Turing Machines, NTM)和可微分神经计算机(Differentiable Neural Computer,DNC)模型来建模数据之间长程依赖关系。尤其是 NTM 等工作,通过将 RNN 与注意力机制进行结合,极大地发展了循环神经网络的研究与应用。

循环神经网络在推荐系统中的应用主要是用来建模数据之间的序列影响,从而帮助获取更有效的用户和项目隐表示。。主要包括两个方面:首先是被应用于建模推荐系统中用户行为的序列模式,其次是在获取用户和项目隐表示的过程中,循环神经网络被应用于建模用户和项目相关的文本信息中词语之间序列影响。当前的应用场景主要包括评分预测、图像推荐、文本推荐、基于位置社交网络中的兴趣点推荐等。

二、基于深度学习的推荐系统

1.基于深度学的推荐系统通常将各类用户和项目相关的数据作为输入,利用深度学习模型学习到用户和项目的隐表示,并利用这种隐表示为用户产生项目推荐。下图是基于深度学习的推荐系统框架:

2.深度学习在推荐系统中的运用主要分为五个方向

1)深度学习在基于内容的推荐系统中的运用

2)深度学习在协同过滤中的运用

3)深度学习在混合推荐中的运用

4)深度学习在基于社交网络的推荐系统中的运用

5)深度学习在情感感知的推荐系统中的运用

目的都是利用深度学习得到用户的隐表示和项目的隐表示再处理产生推荐列表

3.深度学习在基于内容的推荐系统中的运用

深度学习在基于内容的推荐中主要被用于从项目的内容信息中提取项目的隐表示,以及从用户的画像信息以及历史行为数据中获取用户的隐表示,然后基于隐表示通过计算用用户和项目的匹配度来产生推荐。在假设用户和项目携带辅助信息的情况下,深度神经网络模型被作为有效的特征提取工具。

1)基于多层感知机的方法

深度结构化语义模型:

Elkahky等人考虑到传统的基于内容的推荐系统中,用户特征难以获取的问题,通过分析用户的浏览记录和搜索记录提取用户的特征,丰富用户的特征表示。作者将深度结构化语义模型(DSSM,Deep Structured SemanticModels)进行扩展,提出了一种多视角深度神经网 络 模 型 ( Multi-View  Deep Neural Network, Multi-View DNN),该模型通过用户和项目两种信息实体的语义匹配来实现用户的项目推荐,是一种实用性非常强的基于内容的推荐方法。

Zheng等人通过采用与DSSM相似的结构,考虑将评论信息融入到推荐系统中以缓解推荐系统的数据稀疏问题,并提高推荐系统的质量,提出了一种深度协作作神经网络模型(Deep CooperativeNeural Network, DeepCoNN)。其主要思路是利用两个并行的神经网络模型学习用户和项目的隐特征,一个网络通过用户的所有评论数据建模了用户的偏好,另一个网络通过项目的所有评论信息建模项目的特征,然后在两个神经网络上面构建一个交互层来预测用户对项目的评分。该方法通过利用用户评论的文本内容信息,有效提升了推荐的质量。Xu等人基于DSSM模型研究标签感知的个性化推荐问题,分别利用用户的所有标签和项目的所有标签定义用户和项目的输入特征,从而学习用户和项目的隐表示,通过计算用户隐表示和项目隐表示的相似度来产生推荐。Chen等人研究了位置感知的个性化新闻推荐问题。通过DSSM中增加一个位置通道,利用MLP从用户信息、项目信息和位置局部主题分布中学习用户、项项目和位置的隐表示,最后联合三个方面的信息计算特定位置下用户兴趣与新闻内容之间的关联度来产生新闻推荐。

2)基于卷积神经网络

3)基于RNN和DBN

4.深度学习载协同过滤中的运用

1)基于RBM的协同过滤(玻尔兹曼机)

2007年Salakhutdinov等人[46]首次将深度学习应用于解决推荐问题,提出一种基于受限玻尔兹曼机的协同过滤推荐模型。

Phung等人[47]通过将Salakhutdinov等人的工作进行扩展,用于建模用户评分的序数特征,采用一种统一的方式同时抓住了相似性和共现性。此外,考虑到RBM模型仅仅利用了项目之间的关联,Georgiev等人[48]通过增加用户之间的关联,对RBM模型进行了扩展,并且对模型的训练和预测过程进行了简化,同时还使得模型能够直接处理实值评分数据。何洁月等人[49]将RBM模型进行扩展,提出一种基于实值状态的玻尔兹曼机,该模型从三个方面对RBM进行改进,一是能够直接将评分数据作为可见单元的状态,不再需要转化为 K 维的0-1向量表示,二是在训练数据中增加使用了未评分信息,三是将好友信任关系融入到该模型之中,能够有效缓解模型的稀疏性。

2)基于自编码器的协同过滤方法

Sedhain等人[37]提 出 了 一 种 基 于 自 编 码 器 的 协 同 过 滤 方 法(AutoRec),该模型的输入为评分矩阵R中的一行(User-based)或者一列(Item-based),利用一个编码过程和一个解码过程产生输出,通过最小化重构误差进行模型参数优化。Strub等人[95]采用两个栈式降噪自编码器(SDAE),将用户和项目的评分向量分别作为输入,分别学习用户和项目的隐表示,然后通过隐表示对缺失评分进行预测。

协同降噪自编码模型

Wu等人[20]利用降噪自编码器来解决top-N推荐问题,提出了一种协同降噪 自 编 码 器 模 型 ( Collaborative Denoising Auto-Encoders, CDAE)。CDAE与AutoRec方法的结构类似,通过将用户的评分向量作为输入,学习用户的低维向量表示来进行推荐。但是与AutoRec相比存在一些差异:一是该方法不是评分预测,而是top-N推荐;二是该方法通过在评分向量中加入了噪声数据,提升了模型的鲁棒性;三是考虑不同用户的个性化因素,为每个用户引入了一个用户因子提升了推荐的准确性。

3)基于分布式表示技术的系统过滤方法

4)基于RNN的协同过滤算法

基于循环神经网络的协同过滤的主要思路是利用循环神经网络建模用户历史序列行为对当前时刻用户行为的影响,从而实现用户的项目推荐和行为预测。

根据应用场景不同,基于循环神经网络的协同过滤模型主要被用于基于会话的推荐、融入时间序列信息的协同过滤等应用中.

Song 等人[12]通过融入时间信息并在多种粒度上建模用户的兴趣偏好,提出一种多等级时间深度语义结构化模型(Mutli-Rate TDSSM)。Liu 等人[73]考虑到推荐系统中的用户行为往往存在多种类型,采用循环神经网络模型和 Log 双线性模型(Log-BiLinear, LBL)[99]分别建模用户行为之间的长程依赖关系和短时情境信息,从而提出了一种循环 Log 双线性模型(Recurrent Log-BiLinear, RLBL)实现用户在下一时刻的行为类型预测。

Dai 等人[78]考虑到用户偏好和项目特征会因为用户交互而随时间演化,基于循环神经网络和多维时间点过程模型,提出了一种循
环 共 演 化 特 征 嵌 入 过 程 模 型 ( RecurrentCoevolutionary Feature Embedding Processes)实现用户偏好和项目特征的演化跟踪,并学习用户和项目在每一时刻的隐表示,最后通过对用户和项目的隐表示进行内积来产生项目推荐。

5)基于生成对抗网络的协同过滤方法

猜你喜欢

转载自blog.csdn.net/qq_38285573/article/details/81568829