一、什么是推荐系统:
根据用户需求、兴趣等,通过推荐算法从海量数据中挖掘出用户感兴趣的项目(如信息、服务、物品等),并将结果以个性化列表的形式推荐给用户。推荐系统的核心是推荐算法,它利用用户与项目之间的二元关系,基于用户历史行为记录或相似性关系帮助发现用户可能感兴趣的项目
推荐算法的形式化定义:用U 表 示 所 有 用 户(User)的集合,用I表示所有项目(item)的集合.在实际系统中,U 和I 具有非常大的规模.定定义一个效用函数s,用来计算项目i对用户u 的推荐度,即s:U×I→R,其中R是一个全序集合。推荐算法的研究问题就是通过计算推荐度为每一个用户u∈U 找到其最感兴趣的项目i′∈I,如下:
。
推 荐 系 统 面 临 的 一个关键问题是效用函数s通常定义在U×I的一个子空间上,推荐算法 必 须 将s外 推 到 整 个U×I空间.例如,我们通常 将 推 荐 度 定 义 为 用 户 对 项 目 的评分,但真实的推 荐 系 统 中,用 户 仅 仅 评 分 了 一 小部分项目,因此在选择推荐度最高的 项目推荐给用户之前,必须先根据已知的评分来 实现对未知评分的预测,这就 是 外 推 的 过 程.推 荐 算 法 对 未 知评分的预测能够 采 用 不 同 的 方 法,包 括 近 似 理 论、机器学习和各种启发式方法等。
目的:快速有效的从纷繁复杂的数据中获取有价值的信息。解决信息过载问题
二、传统的推荐方法
- 关联规则推荐:基于关联规则的推荐算法,应用统计学知识在数据分析的基础上寻找数据集间的相关性。首先找出事件中频繁发生的项目之间的关联特性,形成X→Y形式的关联规则,得到用户感兴趣的内容,然后进行关联推荐。如果某一规则同时满足最小支持度(事件X和事件Y同时发生的概率称为支持度)和最小置信度(在发生X的基础上发生事件Y的概率称为置信度),则称次为强规则关联规则推荐过程:首先设定最小支持度和最小置信度,然后从数据中找到不低于最小支持度的频繁项集,再利用前一步中得到的高频项集来产生满足最小置信度的强规则,最后根据强规则进行推荐。关联规则的相关算法有:Apriori算法、基于划分的算法、FP-树频集算法。该算法的优点是,产生的推荐列表准确性较高,通常用于捆绑销售(强规则)和竞品分析(弱规则)。
- 协同过滤推荐(collaborative filtering recommendation):最经典的推荐算法。基本思想:利用相似用户之间具有相似兴趣偏好的方法,来发现用户对项目的潜在偏好。主要包括:启发式和基于模型两种类型。启发式方法首先通过用户的历史评分差异计算用户(或者项目)之间的相似度,然后根据用户的历史评分和用户之间的相似度计算效用值;基于模型的方法主要通过构建一个用户偏好模型预测用户对项目的潜在偏好。经典的协同过滤算法如:矩阵因子分解,利用用户与项目之间的交互信息为用户进行推荐。是目前应用最为广泛的推荐算法。优点:仅仅需要利用用户的历史评分数据,因此简单有效,是目前应用最为成功的推荐方法.缺点:数据稀疏严重(一个用户评分过的项目仅仅占总项目数量的极少部分)和冷启动问题(新的用户和新的项目往往没有评分数据)。经典的协同过滤算法(CF)采用浅层模型无法学到用户和项目的深层次特征。
- 基于内容的推荐(content-based recommendation):主要根据用户已经选择或者评分的项目,挖掘其它内容上相似的项目作为推荐。首先通过显式反馈(例如评分、喜欢/不喜欢)或隐式反馈(例如观看、搜索、点击、购买等行为)的方式获取用户交互过的项目,然后从这些项目的特征中学习用户的偏好并表示为特征,就能计算用户与待预测项目在内容(由特征刻画)上的匹配度(或相似度),最后根据匹配度对所有待预测项目进行排序,从而为用户推荐潜在感兴趣的项目.基于内容推荐方法的优点:①不需要其他用户数据,不存在冷启动和数据稀疏问题;②可以为有特殊兴趣爱好的用户进行推荐;③对推荐出的项目具有可解释性。缺点是要求内容能抽象成有意义的特征(特征提取困难),且特征内容结构性较好。
- 混合推荐(hybrid recommendation):融合多源异构辅助信息(side information)的混合推荐方法由于能够缓解传统推荐系统中的数据稀疏和冷启动问题,而越来越受到重视,但是由于辅助信息往往具有多模态、数据异构、大规模、数据稀疏和分布不均匀等复杂特征。单一的推荐算法各有各的不足,通过组合不同的推荐算法进行混合推荐可以产生优质的推荐效果。常见的组合策略有:后融合,将多种推荐算法产生的结果以投票或者线性加权等方式组合来产生最终的推荐结果;中融合,以一种推荐算法为主,同时融合另一种推荐算法;前融合,将多种推荐算法集成到统一的模型当中,然后将各类数据中提取的特征输入到模型中,最后产生统一的结果。辅助信息往往具有多模态、数据异构、大规模、数据稀疏和分布不均匀等复杂特征,融合多源异构数据的混合推荐方法研究依然面临着严峻的挑战
总结:①经典的协同过滤方法采用浅层模型无法学习到用户和项目的深层次特征;②基于内容的推荐方法利用用户已选择的项目来寻找其它类似属性的项目进行推荐,但是这种方法需要有效的特征提取,传统的浅层模型依赖于人工设计特征(先验知识),其有效性及可扩展性非常有限,制约了基于内容的推荐方法的性能。
新的推荐算法:基于社交网络的推荐方法、情境感知的推荐方法等
注:多源异构数据指:随着互联网中越来越多的数据能够被感知获取,包括图像、文本、标签在内的多源异构数据蕴含着丰富的用户行为信息及个性化需求信息。
三、深度学习
深度学习通过组合低层特征形成更加稠密的高层语义抽象,从而自动发现数据的分布式特征表示,解决了传统机器学习中需要人工设计特征的问题,在图像识别、机器翻译、语音识别和在线广告等领域取得了突破性进展。在推荐系统领域有利于提取用户项目的深层特征,提高推荐准确的。
1.自编码器(Autoencoder,AE):用于高维复杂数据处理.通过一个编码和一个解码过程来重构输入数据,学习数据的隐层表示.基本的自编码器可视为一个三层神经网络结构:一个输入层x、一个隐层h和一个输 出 层y,其中输出层和输入层具有相同的规模,结构如图1所示:自编码器的目的是使得输入x与输出y 尽可能接近,这种接近程度通过重构误差表示,根据数据的不同形式,通常重构误差有均方误差和交叉熵两种定义方式。如果仅仅通过最小化输入输出之间的误差来实现对模型的训练,自编码器很容易学习到一个恒等函数.为了解决这个问题,研究者提出了一系列自编码器的变种,比较经典的有:稀疏自编码器和降噪自编码器。
稀疏自编码器:通过在损失函数中加入L1正则项,其目的是对过大的权重进行惩罚,使隐层表示中的大量节点为0,从而确保隐层表示尽量稀疏。
降噪自编码器则是通过在自动编码器的输入数据中加入噪声得到,这样降噪自编码器在重构输入数据时,就被迫去除这种
噪声来学习到更加鲁棒的输入数据的表达,降噪自编码器通过这种方式提升了泛化能力。
自编码器,尤其是栈式降噪自编码器,在推荐系统中主要被应用于学习用户和项目的隐层特征表
示,其通过对用户或项目相关的信息(包括评分数据和文本、图像等信息)进行重构学习到用户或项目的隐表示,然后基于这种隐表示预测用户对项目的偏好.应用场景主要包括评分预测、文本推荐、图像推荐等。
2.受限玻尔兹曼机(Restricted Boltzmann Machine, RBM ):玻尔兹曼机(BM)是一种生成式随机神经网络,BM 由一些可见单元(对应可见变量,亦即数据样本)和一些隐层单元(对应隐层变量)构成,可见变量和隐层变量都是二元变量,其状 态取0-1,状态0表示该神经元处于抑制状态,状态1代表该神经元处于**状态.BM 能够学习数据中复杂的规则,具有强大的无监督学习能力。但是BM训练过程异常耗时。RBM是对BM的改进,其在玻尔兹曼机的基础上,通过去除同层变量之间的所有连接极大地提高了学习效率.受限玻尔兹曼机的结构如图2所示,包括可见层v以及隐层h,两层之间的节点是全连接的,同层节点间是互不连接的。从 RBM 的结构可以发现,在给定隐层单元的状态时,可见层单元之间是条件独立的;反之,在给定可见层单元的状态时,各隐层单元之间也条件独立。RBM 是推荐系统中最早被应用的神经网络模型,当前的应用主要是通过对用户的评分数据进行重构学习到用户的隐表示,从而实现对未知评分的预测.应用场景主要是用户评分预测
3.深度信念网络(Deep Belief Network,DBN):是一种由多层非线性变量连接组成的生成式模型。在深度信念
网络中,靠近可见层的部分是多个贝叶斯信念网络,最远离可见层的部分则是一个 RBM,其结构如图3所示.DBN 的结构可以看作由多个受限玻尔兹曼机层叠构成,网络中前一个 RBM 的隐层视为下一 个RBM 的可见层.这样,在 DBN 的训练过程中,每一个 RBM 都可以使用上一个 RBM 的输出单独训练,因此与传统的神经网络相 比,DBN 的训练更加简单.同时,通过这种训练方法,DBN 也能够从无标记数据获取深层次的特征表示。深度信念网络当前在推荐系统中应用较少.由于 DBN 在建 模一维数据上比较有效,因此被应用于提取音乐的特征表示,从而进行音乐推荐。当前的应用场景仅限于音乐推荐
4.卷积神经网络(Convolutional Neural Network,CNN):卷积神经网络是一种多层感知机,主要被用来处理二维图像数据.相比传统的多 层 感 知 机,CNN 使用池化操作减少了模型中的神经元数量,同时对输入空间的平移不变性具有更高的鲁棒性.另 外,CNN的权值共享网络结构能够减少模型中参数数量,降低了网络模型的复杂度,提升了模型的泛化能力.尤其是当网络的输入是多维图像时,通过将图像直接作为网络的输入,从而避免了传统图像处理算法中复杂的特征提取和数据重建过程.卷积神经网络的基本结构由输入层、卷积层、下采样层(池化层)、全连接层和输出层构成,如图4所示:卷积 神 经 网 络 在 推 荐 系 统中应用较为广泛,主要被用于从图像、文 本、音频等内容中提取项目的隐藏特征,从而获取项目的低维向量表示,并结合用户隐表示为用户产生推荐.当前的应用场景主要包括图像推荐、音乐推荐、文本推荐等.
5.循环神经网络(Recurrent Neural Network,RNN):普通的全连接网络或卷积神经网络,是从输入层到隐层再到输出层的结构,层与层之间是全连接的,每层之间的节点是无连接的.这种神经网络结构在面对序列数据建模时往往显得无能为力。RNN 因为能够建模序列数据中不同时刻数据之间的依赖关系,在机器翻译、语音识别、图标标注生成等领域取得了广泛应用。RNN 的最大特点在于神经网络各隐层之间的节点是具有连接的,它能够通过获取输入层的输出和前一时刻的隐层状态来计算当前时刻隐层的输出,也就是说 RNN 能够对过去的信息进行记忆.理论上来说,RNN 能够对任意长度的序列数据进行建模,但在实际应用中往往假设当前状态仅与前几个时刻的历史状态相关,从而帮助降低模型的复杂度,图5是一个典型的 RNN 结构,包含输入单元、输出单元和隐层单元。将 RNN 展 开 之 后 发 现,它是一类所有层共享相同权值的深度前馈神经网络.但是,普通的 RNN结构存在梯度消失问题,很难解决学习数据之间的长程依赖关系。提出RNN的变种:长短时记忆网络(LSTM)和门限循环单元(GRU)。LSTM 和 GRU采用了特殊的隐层结构,通过增加保存长期状态的隐层单元,能够更加有效地建模长程依赖关系,是目前应用最为广泛的循环神经网络模型。
通过增加广泛的记忆模块:记忆网络(Memory Network)、栈式增强循环网络(Stack-augmented Recurrent Network)、神经图灵机(Neural Turing Machines,NTM)和可微分神经计算机(Differentiable Neural Computer,DNC).
循环神经网络在推荐系统中的应用主要是用来建模数据之间的序列影响,从而帮助获取更有效的用户和项目隐表示.主要 包括两个方面:首先是被应用于建模推荐系统中用户行为的序列模式,其次是在获取用户和项目隐表示的过程中,循环神经网络被应用于建模用户和项目相关的文本信息中词语之间序列影响。当前的应用场景主要包括评分预测、图像推荐、文本推荐、基于
位置社交网络中的兴趣点推荐等。
.
四、基于深度学习的推荐系统
基于深度学习的推荐系统通常将各类用户和项目相关的数据作为输入,利用深度学习模型学习到用户和项目的隐表示,并基于这种隐表示为用户产生项目推荐。一个基本的架构如图6所示,包含输入层、模型层和输出层.输入层的数据主要包括:用户的显式反馈(评分、喜欢/不喜欢)或隐式反馈数据(浏览、点击等行为数据)、用户画像(性别、年龄、喜好等)和项目内容(文本、图像等描述或内容)数据、用户生成内容 (社会化关系、标注、评论等辅助数据)。在模型层,使用的深度学习模型比较广泛,包括自编码器、受限玻尔兹曼机、卷积神经网络、循环神经网络等.在输出层,通过利用学习到的用户和项目隐表示,通过内积、Softmax、相似度计算等方法产生项目的推荐列表。
4.1深度学习在基于内容的推荐系统中的应用:利用用户的显式反馈或隐式反馈数据、用户画像和项目内容数据,以及各种类型的用户生成内容,采用深度学习方法来学习用户与项目的隐向量,并将与用户访问过的项目相似的项目推荐给用户。基于内容的推荐方法的性能严重依赖于有效的数据特征提取.深度学习的最大优势是能够通过一种通用的端到端的过程学习到数据的特征,自动获取到数据的高层次表示,而不依赖于人工设计特征。因此,深度学习在基于内容的推荐中主要被用于从项目的内容信息中提取项目的隐表示,以及从用户的画像信息以及历史行为数据中获取用户的隐表示,然后基于隐表示通过计算用户和项目的匹配度来产生推荐.在假设用户和项目携带辅助信息的情况下,深度神经网络模型被作为有效的特征提取工具。
4.1.1基于多层感知机(MLP)的方法:
① 深度结构化语义模型(Deep Structured Semantic Models,DSSM):多视角深度神经网络模 型(Multi-ViewDeepNeuralNetwork,Multi-ViewDNN),DSSM的扩展。该模型通过用户和项目两种信息实体的语义匹配来实现用户的项目推荐,是一种实用性非常强的基于内容的推荐方法.其基本思想是设置两类映射通路,分别通过深度学习模型将两类信息实体映射到同一个隐空间,在这个隐含空间中通过余弦相似度计算两个实体的匹配度,然后根据匹配度产生推荐。图7展 示 了 一 个 Multi-View DNN 的通用示意图,在用户视角上,通过利用用户的搜索、浏览、下载、视频观看等历史记录作为输入 ,通过深度学习模型学习用户的隐表示
,在项目视角上,通过利用项目的标题、类别、描述等信息作为输入
,通过深度学习模型学习项目的隐表示
,模型共包括一个用户视角和N个项目视角,其中N 为所有项目的数量,用户视角的深度神经网络模型为
,第i个项目视角的深度神经网络模型为
).假设有 M个样本{(
)} ,0<=j<=M,其中,(
)表 示 用 户u 和 项 目a之间的一次交互,通过拟合用户与项目的交互历史进行参数学习。在模型训练完成之后,基于模型学习到的用户隐表示
和项目隐表示
,通过在隐空间中计算用户和项目的相似度,选择相似度最高的k个项目产生推荐。
深度度协作神经网络模型(Deep Cooperative Neural Network,DeepCoNN)
② 深广学习模型(Wide&Deep Learning):通过利用用户特征、情境特征和项目特征等多源异构数据。用于手机APP推荐,模型同时具有了高的记忆(memorization)能力和泛化(generalization)能 力。记忆主要依靠统计方法,通过关联学习分析历史记录中的共现现象,主要利用了相关性,不具有泛化性且需要手动特征工程。泛化需要研究关联的传递性,通过探索更多的信息能够提升推荐的多样性.图8展示了一个深广学习模型的通用示意图,这种模型联合训练一个宽广线性模型(图中左侧)和一个深度神经网络(图中右侧)来确保模型记忆能力和泛化能力的均衡。
神经协同过滤方法(Neural Collaborative Filtering,NCF)
③基于MLP的广告点击率预测:多层感知机(MLP)模型目前在广告点击率预测问题中得到了广泛应用.Web领域中的输入特征通常是离散和稀疏的,为了有效建模这类数据,学习特征之间的交互至关重要。其中一种思路是利用MLP直接学习特 征之间的交互,例如 Wide&Deep、DeepCrossing、Deep&Cross、DEF和DIN。另一种思路是结合因子化机与 MLP,首先利用因子化机建模特征之间的成对交互,然后通过增加全连接层来进一步建模高阶的特征交互,例如PNN、DEEP-FM、NFM和AFM。
④基于MLP的YouTube视频推荐方法:通过利用用户信息、情境信息、历史行为数据和项目的特征信息等多源异构数据,提出了一种深度神经网络模型用于 YouTube视频推荐.YouTube视频推荐主要面临三个方面的挑战:可扩展性、新鲜度和数据噪声问题.为了克服这三个挑战,该研究将深度神经网络模型应用到视频推荐系统的两个关键过程:候选集生成和排序,系统架构如图11所示。候选集生成的目的是从海量视频库中筛选出和用户相关的几百个视频,主要利用用户在 YouTube上的历史行为数据、用户特征和情境信息建模用户对视频的个性化偏好,其核心方法是将推荐问题转化为一个基于深度神经网络的分类问题,寻找与用户向量(神经网络变换后的特征向量)距 离 最 近 的 N 个 视频.排序过程是通过进一步考虑更多的视频特征,利用神经网络和逻辑回归模型对每个候选视频进行打分,并根据打分值对视频进行排序。
4.1.2 基于卷积神经网络的方法
①基于注意力的CNN:微博Hashtag推荐。多标记分类问题。提出的模型包括一个全局通道和一个局部注意力通道.全局通道由一个卷积层和一个Pooling层组成,局部注意力通道由一个注意力层和一个Pooling层组成,模型的架构如图12所示:
②比较深度学习方法:图像推荐。图像推荐最重要的是需要在图像的语义理解与用户对图像的偏好或意图之间建立桥梁,因此学习到的图像表示不仅仅需要具有高的表达性和可分类性,更重要的是需要反映用户对图像的偏好。针对这个问题,该研
究提 出 了 一 种 比 较 深 度 学 习 方 法 (Comparative Deep Learning,CDL),其主要思路是利用MLP和CNN 分别从用户的多源异构数据(包括用户画像、标签信息等)和图像的视觉信息中学习用户和图像的隐表示,并将用户和图像映射到同一隐空间中.模型的训练过程中,利用了比较学习的思想,即同时利用正反馈图像和负反馈图像,比较它们与用户之间距离(即正反馈图像与用户的距离应该比负反馈图像与用户的距离要小),并采用交叉熵损失函数进行参数学习.最后通过计算用户和图像之间的距离来产生图像推荐。
③基于CNN的音乐推荐:在音乐推荐中,协同过滤通常面临冷启动问题,即对于一些没有用户数据的音乐,往往不
能够被推荐给用户.作者首先利用用户的历史收听数据和音乐的音频信号数据,通过组合加权矩阵因子分解和卷积神经网络,将用户和音乐投影到一个共 享的隐空间,从而能够学习到用户和歌曲的隐表示.对于新的歌曲,可以通过训练好的卷积神经网络从自身的音频信号中提取出歌曲的隐表示,从而能够在共享隐空间中通过计算用户与新音乐之间的相似性来为用户推荐音乐,帮助解决新项目的冷启动问题。
4.1.3基于RNN的方法
①基于注意力的RNN:基于注意力的LSTM来进行微博中的Hashtag推荐,注意力机制与 RNN 结合的优势是能够抓住文本的序列特征,同时能够从微博中识别最具有信息量的词。模型首先利用LSTM来学习微博的隐状态 (h1,h2,…,hN ),同时采用主题模型来学习微博的主题分布.隐状态的注意力权值aj通过微博第j 个位置附近的词和微博的主题分布来计算。注意力层的输出:
。模型架构如下图:
4.2 DL在协同过滤中的应用
4.2.1 基于受限玻尔兹曼机的协同过滤方法:W.Salakhutdinov等人对传统的RBM 模型进行了改进,一是在可见层,评分数据通过一个固定长度的0-1向量进行表示;二是考虑到用户只对很少的项目进行了评分,使用一种不与任何隐层单元连接的 Missing单元表示未评分的项目.为了考虑用户未评分的电影的信息,Salakhutdinov等人采用一个0-1向量r表示电影是否被评分过,通过融入这种辅助信息提出了一种条件 RBM.模型的结构如图14所示:
基于受限玻尔兹曼机的协同过滤方法的最大问题是连接隐层和可见层的权重参数规模过大,同时由于受限玻尔兹曼机的训练过程往往依靠变分推理和蒙特卡罗采样等近似优化方法,训练的时间过长,导致基于受限玻尔兹曼机的协同过滤方法在实际应
用中受到很大限制。
4.2.2 基于自编码器的协同过滤方法:自编码器通过对用户或项目的显式或隐式反馈数据进行重构,能够学习用户或项的隐表示,并基于这种隐表示预测用户对项目的偏好.图15给出了一个基本的模型结构,给定一个用户的评分向量Ri,其中包含 评分数据(图中用灰色圆圈表示)和未评分数据(图中用白色圆圈表示),通过最小化自编码器的重构误差训练得到模型的参数,最后对未知评分进行预测:
①基于自编码器的协同过滤方法:
②协同降噪自编码模型(CDAE):通过将用户的评分向量作为输入,学习用户的低维向量表示来进行推荐。该方法不是评分预测,而是top-N推荐;该方法通过在评分向量中加入了噪声数据,提升了模型的鲁棒性;考虑不同用户的个性化因素,为每个用户引入了一个用户因子提升了推荐的准确性。
③基于自编码器的表示学习:
4.2.3 基于分布式表示技术的协同过滤方法:对模型的学习通常采用层次Softmax和Negativesampling方法.最终,通过学习到的项目分布式表示,能够利用基于用户的协同过滤、最近邻等方法来产生推荐。
①基于分布式表示技术的下一次购物篮推荐:层次表示模型。
②基于分布式表示技术的广告推荐:邮件系统的广告推荐问题,利用用户与不同电子商务网站之间的邮件往来获取到的用户历史购买行 为数据,预测用户对产品的兴趣。
4.2.4基于循环神经网络(RNN)的协同过滤方法:基于循环神经网络的协同过滤与基于分布式表示技术的协同过滤类似,都能用来建模用户行为的序列模式,但区别在于分布式表示技术仅仅抓住了用户行为的 局 部 情 境 信 息,而 RNN 能 够 建 模 用户行为之间的相互依赖关系.基于循环神经网络的协同过滤的主要思路是利用循环神经网络建模用户历史序列行为对当前时刻用户行为的影响,从而实现用户的项目推荐和行为预测。
①基于会话的推荐:基于会话的推荐系统主要利用当前会话中的历史行为记录预测下一步点击每个项目的概率,其最大特点是仅仅考虑了一个会话期间的行为数据。
②融入时间序列信息的协同过滤:传统的协同过滤方法 并 没 有 考 虑 用 户 行 为 的 时 间 信 息,但 是 时间信息反映了用户行为的时间序列模式,有效地利用时间信 息 有 利 于 提 升 推 荐 系 统 的 性 能。
4.2.5基于生成对抗网络的协同过滤方法:Wang等人提出的IRGAN 首次将 GAN 引入到信息检索领域,实现了信息检索建模中两种思维流派(生成检索模型和判别检索模型)的统一描述.生成检索模型聚焦于给定一个查询q,生成相关的文档d,判别检索模型聚焦于给定一个查询和文档(q,d),预测二者之间的相关性.IRGAN 的目的是借鉴GAN中生成器和判别器相互对抗的思想,采用一个博弈理论式中的极小化极大算法来将生成检索模型和判别检索模型集成到一个统一的框架中。
4.3 深度学习在混合推荐系统中的应用:传统的协同过滤方法仅仅利用了用户的显式反馈或隐式反馈数据,面临数据稀疏问题.通过融入用户画像数据、项目内容数据、社会化标注、评论等辅助数据,混合推荐方法能够有效缓解数据稀疏问题,但是这种方法面临最大的难题是辅助数据的表示问题,经典的方法,如协同主题回归,并不能获取有效的辅助数据。基于深度学习的推荐方法的主要思路是组合基于内容的推荐方法与协同过滤,将用户或项目的特征学习与项目推荐过程集成到一个统一的框架中,首先利用各类深度学习模型学习用户或项目的隐特征,并结合传统的协同过滤方法构建统一的优化函数进行参数训练,然后利用训练出来的模型获取用户和项目最终的隐向量,进而实现用户的项目推荐。
①基于自编码器的混合推荐方法:自编码器在基于深度学习的混合推荐方法中应用最为广泛.基于自编码器的混合推荐方法的基本架构如图20所示,自编码器由于具有强的表示学习能力,很自然地用来从用户特征 X 或项目特征Y 中学习用户隐表示U 或项目隐表示V,然后将隐表示融入到隐因子模型中拟合用户 -项目交互矩阵R(如评分矩阵),最后联合自编码器的重构误差和
),以 及 拟 合 交 互 矩 阵 的 误 差
构建统一的损失函数,通过梯度下降等方法学习到最终的用户和项目隐表示,从而对用户进行推荐。
②协同深度学习模型:Wang等人在 KDD2015年的论文中提出了一种贝叶斯版本的降噪自编码器模型,即贝叶斯栈式降噪自编码 器模型 (BayesianSDAE),然后组合 BayesianSDAE和概率矩阵分解,提出了一种协同深度学(Collaborative Deep Learning,CDL)混合推荐方法
③协同知识库嵌入模型:Zhang等 人利 用 一 个与 CDL相似的模型架构,融入项目之间的结构化信息(项目之间的各类关系)和非结构化信息(文本数据和图像数据)到推荐系统中,通过组合深度学习方法和概率矩阵分解模型,提出了一种协同知识库嵌入模型(Collaborative Knowledge BaseEmbedding,CKE)。CKE利用了三种非监督表示学习方法从项目相关的结构化和非结构化数据中学习项目的隐表示.
④基于SDAE的方法;基于mDA的方法;基于aSDAE的方法
4.3.2基于其它深度学习模型的混合推荐方法:用于混合推荐的深度学习模型还包括多层感知机、卷积神经网络和循环神经网络等.虽然基于深度学习的混合推荐方法都采用深度学习加协同过滤的模型框架,但是自编码器从辅助信息中学习用户和项目隐表示的过程是一个非监督过程,因此在模型最终的优化过程中除了拟合用户与项目的显式反馈或隐式反馈数据之外,还融入了自编码器的重构误差,而其它监督深度学习方法将从辅助信息中学习用户和项目隐表示的过程和拟合协同信息的过程集成到一个统一的监督学习框架中,从而在最终的模型优化过程中只拟合用户与项目的显式反馈或隐式反馈数据.因此,与基于自编码器的混合推荐方法的最大区别在于最终优化目标函数的构建。图22给出了一个基本的模型架构,深度学习模型用来从用户特征 X 和项目特征Y中学习用户隐表示U 或项目隐表示V(此处并没有自编码器的输入数据重构过程),然后将隐表示融入到隐因子模型中拟合用户 -项目交互矩阵R(如评分矩阵),通过拟合交互矩阵的误差构建统一的目标优化函数,利用最终学习到的用户和项目隐表示对用户产生推荐.
①基于MLP的混合推荐方法:传 统 矩 阵 分 解 方法通常采用内积的方式来衡量用户向量和项目向量的距离,Hsieh等人利用测度学习来学习数据之间的相似度,并将测度学习(Metric Learning,ML)和协同过滤结合,提出了一种协同测度学习(Collaborative Metric Learning,CML)方法。该研究指出内积操作由于不具有距离相似度的传递性,并不是一个合理的距离测度,会带来相似度学习不准确的问题.因此,CML通过大边界最近邻方法(Large Margin Nearest Neighbor ,LMNN)进 行 测度学习来学习数据之间的相似度.最后,在测度学习损失函数的 基 础 上,通 过 MLP 融 入 项 目 相 关 的 特征数据,同时将加权近似排序成对损失融入用户的隐式反馈数据,并加入正则化因子,构建统一的目标优化函数,最后学习到用户和项目隐向量,进而实现 Top-K 推荐。
②基于CNN的混合推荐方法:Kim 等人利 用卷积神经网络将项目相关的文本辅助数据融入到推荐 系 统 中,提出了一种卷积矩阵因子分解模型(Convolution Matrix Factorization,ConvMF)。
③基于RNN的混合推荐方法:与 ConvMF相同,为了抓住文本辅助数 据中词语之间的序列 关 系,Bansal等人基于循环神经网络模型提出了一种文本推荐方法,在利用评分数据的同时,还利用了文本内容信息和文本标签数据进行推荐.具体来说,为了更好地抓住文本中词语的序列模式,该模型利用GRU 学习文本内容的向量表示,然后基于隐因子模型采用一个多任务学习框架(包括文本推荐和标签预测两个任务)构建一个联合优化目标函数,在监督学习框 架 下 实 现 对 模 型 参 数 的 优 化.与 CDL 和CRAE相比,虽然该模型也利用了项目相关的文本数据学习项目的隐向量表示,但是该模型是一个完全端到端的监督学习架构。
4.4深度学习在基于社交网络的推荐系统中的应用:深度学习与基于社交网络的推荐系统的结合主要可以分为两个方向:(1)基于深度学习的社交网络社会化关系影响建模;(2)基 于 深度学习的位置社交网络序列模式建模。
4.4.1基于深度学习的社交网络社会化关系影响建模:社交网络中用户之间存在各种类型的社会化关系(例如朋友关系、关注关系等),用户之间通过社会化关系会产生相互影响,并具有相似的兴趣偏好.基于社交网络的推荐系统最重要的是需要通过建模用户之间的社会化关系影响来提升推荐系统的质量。社会化关系通过图结构进行表示,因此传统的方法一般采用图模型或正则化技术来建模用户之间的社会化关 系 影 响但是这些方法容易受到图结构的稀疏性以及高的计算复杂性的影响。
①基于MLP的推荐方法:Wang等人研究了跨信息网络和社交网络的社会化推荐问题,即如何利用信息网络中用户与项目之间的交互和社交网络中用户之间的连接,将信息网络中的项目推荐给社交网络中的潜在用户。在信息网络领域,作 者 基 于
MLP,提出了一种属性感知的深度 协同过滤模型(Attributed-aware Deep CF Model),模型架构如图23所示.模型将 用 户 和 项 目 的ID 号 以 及 它 们 的 属性信息作为输入,通过多层神经网络预测用户对项目的偏好.在社交网络领域,基于信息网络中桥接用户的隐表示,通过假设朋友之间具有相近的兴趣来学习其它用户的隐表示,最后通过组合两个领域的损失函数构建统一的优化函数进行模型训练。
②基于分布式表示技术的推荐方法:Yang等人为了融入社会化影响到推荐系统中,采用了基于深度学习的网络表示技术建模用户之间的社会化影响.基于用户的社交网络结构,通过网络表示技术将用户节点嵌入到一个共享的隐空间,每个用户用一个低维、稠密的向量进行表示.通过使用网络表示技术建模社交网络的生成,能够缓解社交网络图结构的稀疏性问题,同时基于深度学习的网络表示技术具 有 高 的 可 扩 展 性,能 够 适 应 于 大 规 模 数 据 集。
③基于自编码器的推荐方法:Deng等人针对传统矩阵因子分解中用户和项目的隐特征初始化困难以及用户信任关系多样化的问题,采用深度自编码器模型初始化用户和项目的隐特征向量,通过正则化技术融入用户信任关系的影响到推荐系统中,有效提升了推荐系统的性能。
④基于RBM的推荐方法:Nguyen 等 人在Salakhutdinov等人的 工 作 的 基 础 上,通 过 两 种方式建模社会化关系对推荐结果的影响,一种是将社会化关系和 用 户 评 分 一 样,都 作 为 RBM 的 观 测变量,通过同时拟合社会化关系和用户评分实现社会化影响建模;另 一 种 是 在 RBM 中 增 加 一 个 隐 含层,在这个隐层上通过朋友间的权值共享实现社会化影响建模。
4.4.2 基于深度学习的位置社交网络序列模式建模:位置社交网络中,所有项目(也就是兴趣点,Point-Of-Interset,POI)都具有位置属性,用户行为具有时间和空间上的序列模式,对这种时空序列模式的建模有利于提升POI推荐的准确率.因此,位置社交网络的推荐系统除了需要关注用户之间的社会化关系,还需要抓住用户的位置影响、序列移动模式等因素。
①基于MLP的推荐方法:Yang等 人指出当前的 POI推荐方法都是针对特定的数据和问题 而设计,提出了一种通用的半监督学习模型,即偏好与情境嵌入模型(Preference and Context Embeddin,PACE),能够利用相邻用户和位置的信息来缓解推荐系统的数据稀疏问题。PACE 首 先 构 建 情 境 图 作为观测数据,包括利用位置间的距离构建的位置图,以及利用用户间的朋友关系构建的用户图.PACE的模型架构 如 图 24 所 示,其输入是用户和项目的one-hot向量,输出是用户和项目的情境信息以及用户对 POI的访问次数,分别建模了用户与用户之间的情境、项目与项目之间的情境,以及用户对 POI的偏好.最后,PACE联合三个方面的损失建立优化函数,通过学习到的模型进行 POI推荐。
②基于 CNN 的 推 荐 方 法:Wang等 人研 究 了如何融入图像内容信息来提升 POI推 荐 的 问 题,作者基于 CNN 和 概 率 矩 阵 因 子 分 解,提 出 了 一 种视觉 内 容 增 强 的 POI推 荐 模 型 (Visual Content Enhanced POI Recommendation,VPOI ).VPOI 利用 CNN 从图像内容中提取特征,通过用户-图像关系、POI-图像关系 和 用 户-POI关 系 三 类 关 系,构 建了一个概率主题模型,最后将图像的特征提取和概率主题模型融合到一个统一框架中构建优化函数,采用 NeagtiveSampling方法进行参数优化.
③基于RNN的推荐方法:Liu等 人研究了位置社交网络中的行为预测问题,通过利用循环神经网络抓住序列行为之间的依赖关系,从而基于用户的历史行为序列帮助预测下一时刻的行为。模型由两个部分组成:社会网络的构建和移动轨迹的生成。首先采用网络嵌入方法构建社会网络,再利用用户的访问偏好、用户朋友的影响、用户的短时序列情境和长时序列情境共
同建模行为序列的生成.为了刻画两种情境信息,在短时和长时两个情境下分别采 用 RNN 和 GRU 抓住用户移动模式中的序列关联性.最后组合社会网络的构建和移动轨迹的生成建立目标函数,采用随机梯度下降法进行模型训练。
④基于分布式表示的推荐方法:Ozsoy利用用户与项目之间的共现信息,采用 Word2Vec技 术 开展位 置 社 交 网 络 推 荐 问 题 研 究.首 先,通 过Word2Vec技术利用用户的历史签到行为将用户和项目嵌入到一个共享的低维空间,然后,借鉴基于内容的推荐方法和基于用户的协同过滤方法,采用最近邻算法找到用户最感兴趣的项目,并产生用户的项目推荐。
4.5 深度学习在情境感知的推荐系统中的应用:情境感知的推荐系统主要通过集成用户的情境信息到推荐过程中,从而改善推荐效果.在情境感知的推荐系统中,因为考虑了情境信息,传统的推荐函数从s:U×I→R 变为s:U×I×C→R,其中C 表示所有情境的集合.当前,深度学习在情境感知的推荐系统中的应用主要集中在如何采用深度学习方法对情 境 信 息 进 行 有 效 建 模,主要表现在两个方面:(1)如何采用深度学习方法融入情境信息到推荐系统中,即基于深度学习的情境感知的推荐;(2)如何采用深度学习方法实现对情境信息的有效表示,即基于深度学习的情境信息表示.
①基于深度学习的情境感知的推荐:传统的情境感知的推荐系统通过将问题转化为一个三维矩阵上的矩阵补全问题,能够简单地融入情境信息到推荐系统中.但是对于很多复杂场景下的推荐问题(例如序列推荐问题),融入情境信息到推荐系统中是很困难的。空时循环神经网络模型(Spatial Temporal Recurrent Neural Network,ST-RNN),针对不同粒度的时间间隔和距离长度,通过在循环神经网络模型中定义不同的时间转换矩阵和位置转换矩阵,有效地抓住了连续的时间和空间情境信息对用户行为 的 影 响,提升了位置推荐的质量。将情境信息分为输入情境(如位置、天气等)和转换情境(时间间隔长度),通过在循环神经网络中采用可适应的、情境具体的输入矩阵和转换矩阵对两种情境信息进行建模,帮助提升了序列推荐的质量。
②基于深度学习的情境信息表示:传统的情境感知的推荐系统通常采用图模型、主题模型和张量分解技术等,但是,当情境数据大量增加时,这些技术会因为情境集合维度过大而遭遇到严重的数据稀疏问题.深度学习通过将各种类型的情境数据进行建模,并表示为一个低维、稠密的隐向量,能够有效缓解这种数据稀疏问题。
Zhou等人将分布式表示技术用于情境信息建模,提出一种多情境轨迹嵌入模型(Multi-Context Trajectory Embedding Model,MC-TEM)通 过 将包括用户、轨迹、临近的地点、类别、时间、区域在内的情境信息嵌入到一个统一的隐空间中,能够抓住多种类型的情境信息用于轨迹数据挖掘,此外,分布式表示技术通过刻画相关因素之间的距离以及联系,可以增加模型的可解释性。
总结:基于深度学习的推荐方法能够融入多源异构数据进行推荐,包括用户的显式反馈或隐式反馈数据、用户画像和项目内容数据、用户生成内容等.深度学习方法通过将多源异构数据作为输入从而采用一个端到端的模式自动训练预测模型,能够有效融入多源异构数据到推荐系统中,从而缓解传统推荐系统中面临的数据稀疏和冷启动问题,并提升推荐系统的能力。
主要的优势表现在:(1)可以避免复杂的人工特征工程,尤其是面对图像、视频等非结构化数据,深度学习的表示学习能力能够帮助从非结构化数据中提取特征信息;(2)可 以 学 习 非 线 性的多层次抽象特征表示,而且获取的特征通常是稠密和低维的,这是传统浅层模型所不具备的;(3)可以克服不同数据之间的异构性,将各类粗糙的原 始 数 据 作 为 输 入 来 学 习 用 户 和 项 目 的 隐 表示
不足:(1)可扩展性问题.当前,虽 然 深 度 学 习 在 YouTube视 频 推 荐、Google的 App推荐和 Yahoo的新闻推荐等实际场景中得到了应用,但由于其模型复杂往往需要长的训练时间,如何平衡模型可扩性和复杂度仍然
是一个大的问题;(2)可解释性问题.深度学习模型往往类似于一个黑盒,容易带来推荐系统可解释性不足的问题,如何在增强推荐能力的同时增强可解释性仍然有待深入研究
参考文献:基于深度学习的推荐系统研究综述 黄立威1)江碧涛1)吕守业1)刘艳博1)李德毅