基于深度学习的智能推荐系统综述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第10卷第1期2021年1月
网络新媒体技术
Vol.10No.1Jan.2021
·前沿与综述·
基于深度学习的智能推荐系统综述
*
王星凯邓浩江盛益强
(中国科学院声学研究所
国家网络新媒体工程技术研究中心
北京100190
中国科学院大学北京100049)
摘要:随着互联网技术的发展,人们对于网络资源的依赖和需求也在增长,如何为用户推荐其感兴趣的项目成为重要的研究课题,
因此推荐系统被提出并应用。

本文首先介绍了传统推荐算法和结合深度学习技术的智能推荐算法,阐述了推荐系统中的关键问题,并介绍了结合深度学习技术解决相应问题的方法,最后分析了基于深度学习的智能推荐系统未来的研究方向。

关键词:推荐算法,深度学习,序列推荐,冷启动,数据稀疏
A Review of Intelligent Recommendation System Based on Deep Learning
WANG Xingkai ,DENG Haojiang ,SHENG Yiqiang
(National Network New Media Engineering Research Center ,Institute of Acoustics ,Chinese Academy of Science ,
Beijing ,100190,China ,University of Chinese Academy of Sciences ,Beijing ,100049,China )
Abstract :With the development of Internet technology ,the user ’s needs for network resources are also growing.How to recommend i-tems has become an important research topic.The recommendation system has been proposed and applied to solve the problem.First-ly ,this paper introduces the traditional recommendation algorithm and the intelligent recommendation algorithm combined with deep learning technology.Then ,it describes the key problems in the recommendation system.It also introduces methods based on deep learning technology to solve the corresponding problems.Finally ,it analyzes the possible research direction of the intelligent recom-mendation system based on deep learning in the future.
Keywords :recommendation algorithm ,deep learning ,sequential recommendatio ,cold -start ,data -sparse
本文于2020-06-28收到,
2020-09-07收到修改稿。

*SEANET 技术标准化研究与系统研制(课题号:XDC02070100)。

0引言
随着互联网技术的发展,人们对于网络资源的依赖和需求也在增长[1]。

用户的多样化需求带来了海量
信息和商品的发展,
在满足用户需求的同时,也为用户和商品提供商提出了巨大的挑战。

从用户的角度来看,
在时间有限的情况下,需要从海量的信息和商品中获得自己感兴趣的信息和商品。

从信息提供商和商品提供商的角度来看,
需要实现资源最大化的吸引用户,进而最大化自己的收益。

正是在上述的需求下,推荐系统被提出,
用来预测用户可能会需要的信息和商品,并生成推荐列表提供给用户。

众多研究人员对于推荐系统的研究取得了重大的成果。

推荐系统的研究内容包括多个方面,
其中包括对于用户和项目数据集的采集分析处理的研究。

推荐算法是推荐系统中最核心的研究内容。

推荐系统需要根据用户兴趣偏好向
用户推荐其感兴趣的项目。

由于用户的兴趣偏好是随着各种因素动态变化的,所以对于如何捕获用户兴趣偏好的迁移也需要进一步的研究
[2]。

推荐系统的发展也离不开推荐系统性能评价的研究。

对于多种推荐
网络新媒体
技术2021年
系统性能评价指标的研究可以不断推动推荐系统的完善
[3]。

此外,对于推荐系统的可解释性的研究[4]
和隐
私安全[5]
的研究都十分重要。

本文首先介绍了传统推荐算法和结合深度学习技术的智能推荐算法,然后阐述了针对推荐系统中的关
键问题包括如何学习时序特征的问题,
缓解冷启动的问题以及缓解数据稀疏问题的相关研究,最后分析了基于深度学习的智能推荐系统未来可能的研究方向。

1推荐系统
推荐系统是个交叉学科领域,包含数据挖掘,机器学习和人机交互。

本章将阐述传统推荐算法和结合
深度学习技术的智能推荐算法的思路。

1.1
基于内容的推荐
基于内容的推荐是将通过计算内容之间的相似度向用户推荐与其曾经喜欢的内容相似的其他内容。

该类算法源于一般的信息检索方法,在用户的历史数据中通过多个内容特征学习出用户的偏好。

该推荐方法通过特征的属性值来定义项目,
学习用户偏好,进而为用户推荐与其曾经喜欢的项目特征表示相似的项目。

例如,
当项目是电影的时候,可以用电影的导演、演员、主题和名称等来表示。

图1
基于内容的推荐的基本流程
基于内容的推荐的基本流程通常包括以下3个部分,如
图1所示。

(1)项目表示:通过对项目提取出的一些特征来表示该项目。

(2)特征学习:利用一个用户曾经喜欢或者不喜欢项目的特征数据学习得出该用户的喜好特征。

(3)产生推荐列表:通过比较上一步得到的用户喜好特征
与候选项目的特征,
从候选项目集中特征找到相匹配的项目,将匹配度高的项目返回推荐给用户,将特征返馈进行步
骤(2)再学习。

基于内容的推荐算法的示例如图2所示。

一个用户喜欢
图2
基于内容的推荐算法示例
的视频类型为动作和悬疑的视频A 。

图2中视频B 的视频类型也是动作和悬疑的。

基于内容的推荐算法会对于视频进行项目表示,通过特征学习得到用户喜好。

通过相似性计算找到相匹配的项目,发现视频A 和视频B 是相似的,
将视频B 推荐给用户。

基于内容的推荐算法的优点[6]
包括:对用户的项目类型的分析是有隔离性的,
即不需要其他用户的数据就可以为兴趣爱好特殊的用户进行推荐;解决新项目冷启动的问题;具有一定的可解释性,使用户更容易接受推荐系统的推荐结果。

当然该算法也存在一定的缺点,
包括以下几点:对内容的分析是有限的,
要求项目的特征内容具有良好的结构性,
这对数据清理带来一定的挑战;难以区分项目内容的质量和风格,
例如,难以区分主题和作者相同但质量差很多的文章;难以处理新用户冷启动的问题。

基于内容的推荐系统的研究已经取得了诸多成果[7-11]。

Degemmis [7]等人提出了一种新的基于内容和
协同过滤组合的推荐方法。

郑志娴[
9]提出了一种移动环境下的内容推荐方法。

该方法通过“用户-内容-时间-位置”
四者之间的关系来进行计算相关性。

目前,基于内容的推荐算法开始利用神经网络的技术进一步提高推荐的质量
[12-15]。

Chiliguano 等人[12]提出了一种混合的推荐系统,该系统结合用户真实信2
1期王星凯等:基于深度学习的智能推荐系统综述息和音频数据高维表示,
算法实例为用户推荐其感兴趣的歌曲。

他们使用深度学习技术中的卷积深度神经网络从歌曲中提取特征。

该研究通过一种分布算法的估计来捕获用户的行为,
与传统的基于内容的推荐方法相比,
所提出的组合推荐的方法性能更好。

Saravanan [13]提出在hadoop 框架下实现的改进的MapReduce 数据处理方式和基于内容推荐的算法。

此外,他们还开发了图形用户界面来与推荐系统进行交互,通过实验证明hadoop 分布式的集群环境是实现大规模推荐系统的一个高效的和可扩展的平台。

Elkahky 等人[14]提出了一个基于内容的推荐系统来解决推荐质量和推荐系统扩展性的问题。

他们通过从用户的浏览历史等行为中抽取特征表示用户来提高基于内容推荐算法的性能。

他们使用深度学习的方法将用户和项目映射到一个潜在的空间。

用户和他们喜欢的项目之间的相似度在该空间中最大。

并通过引入多视角的深度学习模型将所提出的模型扩展为从不同领域的项目特征和用户特征中共同学习。

1.2协同过滤推荐算法
协同过滤推荐算法[16]
是基于项目和用户之间的交互行为来预测用户的兴趣爱好。

协同过滤推荐算法和基于内容的推荐算法相比存在以下优点:
(1)由于协同过滤推荐算法是基于其他用户的行为进行推荐,因此该方法可以发现用户潜在的兴趣偏好;
(2)与被推荐项目的领域无关[17],对被推荐项目相关的领域知识没有要求;(3)相似用户之间的数据可以借鉴,缓解数据稀疏的问题。

协同过滤推荐算法通常分为基于用户或项目的近邻方法[18,19]
和基于模型的方法。

基于模型的协同过
滤算法主要有基于矩阵分解[20]和神经网络
[21,22]
等。

近邻方法的优势有可解释性,也就是说用户容易理解基于近邻进行推荐得到的结果。

然而,
由于有些用户虽然没有共同的评分行为但依旧有相似偏好情况的存在,
会导致该方法难以完整的找到近邻。

基于模型的协同过滤是从用户和项目的数据中学习用户和项目的表示,
通过训练模型来进行预测,为用户生成推荐列表。

基于用户的协同过滤算法是从用户角度出发,借助用户之间的相似度找到与目标用户兴趣相似的近邻,
将目标用户近邻喜欢的项目,且目标用户没有接触的项目推荐给目标用户。

协同过滤推荐算法中相似度的计算尤为重要。

协同过滤推荐算法常使用的相似度度量有皮尔逊相关系数,
向量相似度和Jaccard 相似系数等方法。

Stephen 等人[
23]针对协同过滤推荐系统中常用的各种相似性度量方法进行了综合研究。

一个基于用户的协同过滤算法的示例,
如图3所示。

图3中用户A 对项目1、项目2和项目4进行了交互,用户B 对项目3进行了交互,
用户C 对项目1、项目2、项目4和项目5进行了交互。

由于用户A 和用户C 对于项目1、
项目2、项目4都进行了交互,且给出相似的评价,因此通过计算得到用户A 和用户C 是相似的,将用户C 喜好的项目5推荐给用户A。

图3
基于用户的协同过滤算法图4基于项目的协同过滤算法
3
网络新媒体技术2021年4
基于项目的协同过滤算法是针对用户对于项目的评分等行为来计算项目之间的相似度。

它根据项目的相似度和用户的历史行为提供用户合适的推荐服务。

一个基于项目的协同过滤算法的示例,如图4所示。

用户A喜欢项目1和项目2。

基于项目的协同过滤算法会找到与这两个项目相似的项目。

通过定义的公式可以得到用户对于不同项目的感兴趣程度。

假设项目4和项目1相似,相似度为0.4,项目2和项目4也相似,相似度是0.5。

因为用户对于项目1的兴趣度是0.9,对于项目2的兴趣度是0.7,通过计算得到用户对于项目4的兴趣度为0.71。

从图4中可以看出项目4在所提供的5个项目中兴趣度最高,因此,优先推荐项目4给用户。

基于用户的协同过滤算法注重的是反映和用户兴趣相似的小群体中的项目的热门程度,而基于项目的协同过滤算法的推荐反映了用户自己的历史兴趣,其推荐的结果更加个性化[24]。

协同过滤推荐算法应用广泛,众多学者不断对其进行研究,提出改进的方法。

Wu等人[25]提出了一种有效的基于用户部分相似性的协同过滤算法。

同时他们结合项目的属性相似度和评分相似度来计算缺失的评分。

有的学者[26]通过从用户评论中的关键词提取项目特征,进而进行项目相似度的计算。

他们采用一种基于情感分析和自然语言处理的算法解决噪声和虚假信息等问题。

与传统的协同过滤算法直接计算用户之间的相似度不同,有的学者[27]提出一种在预测过程中对其进行优化的基因算法,以此来提高推荐算法的性能。

Katarya等人[28]针对电影推荐系统进行了研究。

该研究的主要内容是通过数据聚类和计算智能来实现推荐系统。

他们使用k -means聚类算法对用户进行聚类,再使用杜鹃搜索的方法对聚类的结果进行优化。

Zhang等人[29]提出了一种基于二聚类(bi-clustering)和混合(fusion)策略的方法用于解决云计算场景下的冷启动问题。

为了在大规模的环境下能快速产生高质量的推荐结果,Sarwar等人[30]通过聚类技术来扩展邻域的形成过程以此解决相应的性能问题。

经典的矩阵分解模型是假设用户-项目矩阵满足低秩假设。

针对协同过滤不能处理大规模数据集的问题,Salakhutdinov等人[31]提出了概率矩阵分解模型,它与观测值的数量成线性关系。

通过实验证明该模型在大型、稀疏、不平衡的数据集上表现良好。

用户的反馈根据方式可以分为显式反馈和隐式反馈。

当用户明确评价项目时为显式反馈,其他为隐式反馈。

隐性反馈信息可以反映用户的偏好,因此很多学者将其用于建模用户的偏好。

Koren[32]提出了一种新的邻域模型用来提高预测精度,采用最小化全局代价函数来建模邻域关系。

利用用户的显式反馈和隐式反馈进一步扩展模型,提高性能。

由于难以追踪用户偏好的时间动态,Koren[33]提出了timeSVD++方法应用到推荐系统中。

该方法通过建模整个时间段的动态智能地分离短期因素和长期因素。

相对于矩阵分解模型而言,神经网络模型具有很好的非线性映射能力。

随着深度学习技术的发展,神经网络强大的特征提取能力以及非线性映射能力使得神经网络在图像等领域取得了巨大的成绩。

研究人员将神经网络应用到推荐系统中。

Vassiliou等人在2006年时就开始进行将神经网络应用到推荐系统的研究。

他们提出了一个结合神经网络和协同过滤方法的混合推荐系统框架[34]。

Salakhutdinov等人在2007年的时候采用受限玻尔兹曼机(RBM)的一类两层无向图形模型来进行建模[35]。

他们提供了有效的学习和推理过程,通过实验证明了RBM的性能优于SVD模型。

Cui等人通过结合DBN与协同过滤推荐算法应用到视频推荐系统中[36]。

他们通过基于用户的协同过滤方法来预测所需要推荐电影的评分。

Devooght等人协同过滤算法定义为序列预测问题,并将LSTM应用到推荐系统中[37]。

在他们2017年的研究中描述了许多协同过滤方法的短期/长期的完整概况。

他们提出了一种新的基于RNN模型的推荐系统方法[38]。

1.3其他推荐算法
基于关联规则的推荐算法是以关联规则为基础,通过挖掘用户多次购买项目之间的内在联系为用户进行推荐[39]。

基于关联规则的推荐算法的优点在于该方法的研究相对成熟,易于工程实现,容易被理解,并且可以发现用户新的兴趣点。

该推荐算法的缺点是数据处理工作比较繁重。

此外,在模型的建立阶段耗时较长,且无法进行实时推荐。

1期王星凯等:基于深度学习的智能推荐系统综述
5基于知识的推荐算法是基于特定领域的知识进行推荐[40]。

通过先验知识确定项目的属性和用户偏好之间对应关系。

常见的有基于实例的推荐系统[41]。

该类推荐系统要求使用相似函数来评估用户的需求和被推荐项目之间的匹配程度。

基于知识的推荐算法的优点是能将用户的需求映射到项目中。

该类推荐算法的缺点包括获取特定领域的知识是十分困难的,难以挖掘用户潜在偏好以及推荐的结果是静态的。

基于社区的推荐算法是对用户的社交好友关系以及好友的兴趣爱好建模,进而为用户生成推荐列表。

Sinha等人[42]通过实验表明用户更倾向于来自好友的推荐而非偏好相似的未知用户。

此外,有学者提出基于社交网络的推荐。

Groh等人[43]将基于社交网络社区过滤的算法与传统的协同过滤算法进行比较,证明了其有效性。

他们认为在移动的时代里该算法会起到更大的作用。

人口统计信息包括了用户的性别,年龄,职业和民族等,这些特征可以用于预测用户的兴趣。

当一个新用户刚加入到推荐系统时,通过该用户加入推荐系统填报的统计信息,例如年龄,性别和地区等来预测用户的兴趣。

基于人口统计信息的推荐算法是假设相似背景的用户兴趣偏好可能相似。

Krulwich等[44]将基于人口统计信息的算法与随机算法进行了对比,证明了人口统计信息算法可以大幅度提升点击率。

该算法可以作为其他算法的辅助方法起作用。

由于不同的推荐算法各有不足,因此在实际的推荐系统中是将多种推荐算法组合起来。

常见的方式是将基于内容的推荐和协同过滤组合。

组合的思路大致分为三类:后融合、中融合和前融合。

后融合是将算法独立实现,再将不同的推荐结果进行加权融合得到最终的推荐结果。

中融合是以一种推荐算法为核心,使用另一种算法来增加实现核心算法的部分功能,避免单一推荐算法存在的不足。

前融合是直接构建一个融合两种推荐算法的模型。

实验表明组合推荐的算法优于单一推荐算法的效果[45]。

2关键问题
用户数量和项目数量的快速增长导致推荐算法面临着越来越多的挑战。

用户的兴趣偏好是随着时间动态变化的,传统的推荐算法难以准确捕获用户的兴趣偏好。

当新的用户和新的项目加入到推荐系统时,由于缺乏相应的数据,推荐系统难以学习新用户和新项目的表示,进而无法提供高质量的个性化推荐服务。

此外,推荐系统的数据稀疏问题也会影响推荐系统的精度。

本章主要介绍了针对推荐系统中的关键问题包括如何学习时序特征的问题,缓解冷启动的问题以及缓解数据稀疏问题的相关研究。

2.1序列推荐
用户的行为不是独立存在的,通常是发生在序列中,这些序列中用户的行为数据是存在依赖关系的。

传统的推荐算法不能很好地捕获用户行为的时序特征。

因此,为了捕获用户行为的时序特征来给用户提供更好的个性化推荐服务,研究人员提出序列推荐系统。

由于用户的兴趣偏好是随着时间而动态变化的,因此捕获用户兴趣偏好的动态变化对精准的提供个性化推荐服务有重大的意义。

序列推荐系统是将用户的行为数据作为输入来预测未来哪些商品会被用户交互,通过构建一个序列模型来学习用户行为的时序特征。

越来越多的研究人员开始注意到用户兴趣偏好时序特征的重要性,通过学习用户的时序特征来提高推荐系统的性能。

他们认为把生成推荐的内容看作序列决策的问题是更加合理的。

马尔科夫决策过程和循环神经网络可以用于处理序列决策问题。

Shani等人通过马尔可夫决策过程模型来改进基于会话的推荐系统模型[46]。

He等人[47]将基于相似度的融合方法与马尔可夫链的方法相结合,用来解决真实情景下的数据稀疏和序列动态变化的问题。

随着深度学习技术的发展,研究人员开始使用深度学习技术来利用用户兴趣偏好的时序特征。

目前,RNN模型在处理序列数据方面表现的越来越出色,研究人员开始将基于RNN的模型应用到序列推荐系统中。

2015年,Hidasi等人认为用RNN模型建模可以提高序列推荐的准确性,因此他们提出一种基于RNN的模型应用到基于会话的推荐中[48]。

在2018年,Hidasi等人提出一种针对RNN模型的损失函数排序的方法[49]。

Devooght等人[37]将协同过滤算法定义为序列预测问题,并将LSTM应用到推荐系统中。

2017年,他们证明RNN不仅适用基于会话的推荐系统,而且也适合密集数据集的协同
网络新媒体技术2021年6
过滤[38]。

在现实的序列推荐系统中,由于真实的环境的多样性和复杂性导致现有的序列推荐算法仍存在许多挑战。

当用户的序列行为中两个有比较高依赖关系的项目在距离上离得很远时,循环神经网络可以在一定程度上解决此类问题。

循环神经网络模型被应用到序列推荐系统捕获序列中用户行为之间的长期依赖关系,目前该方面的研究已经取得了相应的进展。

然而,由于循环神经网络模型假设相邻项目在序列中都存在依赖关系,这会导致生成错误的依赖关系。

因为用户的行为序列中不是所有相邻的项目都有顺序依赖关系。

由于用户行为的不确定性,两个用户行为之间可能没有任何依赖关系。

Tang等人[50]研究如何构建一个模型根据上下文的请求来利用不同的时间范围和动态。

他们提出了一个基于神经网络的混合模型,结合不同时间范围内的多个子模型以处理短期和长期的依赖关系。

当用户序列中存在用户一些不相关的行为时会为模型的学习带来一些噪音,这些噪音往往和序列中的其他行为不相关。

例如,存在用户由于意外而造成的点击,以及由于用户行为不确定性带来的噪音行为等。

因此在序列推荐系统中需要准确的学习序列依赖的关系,区别的对待有噪声的用户交互行为序列。

目前,研究人员尝试使用基于注意力机制的模型和记忆网络来选择性的保留和利用与预测下一个用户交互行为相关的信息。

Wang等人[51]认为不仅应该考虑当前所观察到的项目,而且应该用不同的相关性赋予项目不同的权值。

他们提出了一个有效的基于注意力机制的模型,可以在不假设序列顺序的情况下对每个观察到的项目进行加权,以此来建立一个基于注意力的上下文的预测模型,精准地预测输出下一个用户交互的项目。

Chen等人[52]将记忆力机制引入到推荐系统中。

他们设计了一种记忆力增强的神经网络模型,该模型结合了协同过滤推荐算法的思想。

通过利用模型中外部的记忆力矩阵来存储和更新用户的历史行为,这增强了模型的表达能力。

此外,他们根据个性化的推荐场景设计了相应的记忆力的读写操作。

虽然用户的行为序列中相邻的项目之间可能没有顺序依赖关系,但是他们的组合可能会影响后续的行为。

例如,当用户的行为序列中存在牛奶,黄油和面粉时,牛奶和黄油之间哪个先购买是不存在依赖关系的,但是牛奶和黄油的购买会增加面粉购买的可能性,也就是说虽然牛奶和黄油没有严格的顺序依赖关系但是面粉的购买会取决于这个组合。

因此,一个灵活排序的序列会更好的捕获集合之间的序列依赖关系[53]。

目前仅有很少的相关研究工作,有学者利用卷积神经网络去构造局部和全局的依赖关系以此解决此类问题[54]。

用户项目的交互序列中存在2种层次结构:①元数据和用户项目交互之间的层次结构,用户的人口统计信息可以影响用户的兴趣偏好和用户项目之间的交互,项目的特征也会影响用户是否喜欢该项目[55];②子序列和用户项目交互的层次结构,在序列推荐系统中,用户项目的交互序列包括了多个子序列,除了当前子序列的先前交互以外,历史的子序列也会影响当前子序列的下一个用户项目交互行为的预测[56]。

因此,在序列推荐系统的研究中如何将嵌入在这2种层次结构中的层次依赖关系融入到序列依赖学习并以此生成更加精确地序列推荐结果是一个重要的研究内容。

从本节的内容中可以看出虽然在序列推荐的研究上已经取得了很大的进展,但是现有的序列推荐算法仍面临许多的挑战。

2.2冷启动问题
冷启动的问题一般可以分为3种情况:
(1)用户冷启动:当新用户加入推荐系统时,由于系统中没有该用户的历史数据,因此,无法根据该用户的历史行为来预测其兴趣。

(2)项目冷启动:当新的项目加入推荐系统时,不存在该项目评分等数据,不能通过协同过滤算法找到其近邻的项目,缓解项目冷启动的目标侧重解决如何将新的项目推荐给可能对其感兴趣的用户的问题。

(3)系统冷启动:系统冷启动主要解决如何在一个新开发的系统中提供个性化的推荐服务,使得系统上线时就可以让用户体验个性化推荐服务。

针对上述3种冷启动的情况,一般有以下几种解决方法[24]:热门推荐算法,为新用户提供一个热门项目的推荐列表,当收集到一定数量的用户数据时,推荐系统切换为个性化的推荐服务;通过用户注册时填写的。

相关文档
最新文档