推荐系统研究综述
来源:用户上传
作者:
摘 要:随着互联网技术的快速发展,如何对海量网络信息进行挖掘分析,已成为热点和难点问题。推荐系统能够帮助用户在没有明确需求或者信息量巨大时解决信息过载的问题,为用户提供精准、快速的业务(如商品、项目、服务等)信息,成为近年来产业界和学术界共同的兴趣点和研究热点,但是,目前数据的种类多种多样并且应用场景广泛,在面对这种情况时,推荐系统也会遇到冷启动、稀疏矩阵等挑战。深度学习是机器学习的一个重要研究领域和分支,近年来发展迅猛。研究人员使用深度学习方法,在语音识别、图像处理、自然语言处理等领域都取得了很大的突破与成就。目前,深度学习在推荐领域也得到了许多研究人员的青睐,成为推荐领域的一个新方向。推荐方法中融合深度学习技术,可以有效解决传统推荐系统中冷启动、稀疏矩阵等问题,提高推荐系统的性能和推荐精度。
文中主要对传统的推荐方法和当前深度学习技术中神经网络在推荐方法上的应用进行了归纳,其中传统推荐方法主要分为以下3类:1)基于内容推荐方法主要依据用户与项目之间的特征信息,用户之间的联系不会影响推荐结果,所以不存在冷启动和稀疏矩阵的问题,但是基于内容推荐的结果新颖程度低并且面临特征提取的问题。2)协同过滤推荐方法是目前应用最为广泛的一种方法,不需要有关用户或项目的信息,只基于用户和诸如点击、浏览和评级等项目的交互信息做出准确的推荐。虽然该方法简单有效但是会出现稀疏矩阵和冷启动的问题。3)混合推荐方法融合了前2种传统推荐方法的特点,能取得很好的推荐效果,但在处理文本、图像等多源异构辅助信息时仍面临一些挑战与困难。
依据神经网络基于深度学习的推荐方法主要分为4类:基于深度神经网络(DNN)的推荐方法、基于卷积神经网络(CNN)的推荐方法、基于循环神经网络(RNN)和长短期记忆神经网络(LSTM)的推荐方法、基于图神经网络(GNN)的推荐方法、将深度学习技术融入到推荐领域,构造的模型具有以下优势:具有较强的表征能力,可以直接从内容中提取用户和项目特征;具有較强的抗噪能力,可以轻易地处理含有噪声的数据;可以对动态或者序列数据进行建模;可以更加精准地学习用户或项目特征;便于对数据进行统一处理,并且可以处理大规模数据。将深度学习技术应用到推荐领域,可以积极有效地应对传统推荐方法面临的挑战,提高推荐效果。
关键词:计算机神经网络;推荐系统;数据挖掘;深度学习;信息过载
中图分类号:TP311.13 文献标识码:A doi:10.7535/hbkd.2020yx01009
Abstract: With the rapid development of the internet, how to mine and analyze massive network information has become a recognized hot and difficult problem. Among them, the recommendation system can provide users with accurate and fast business (commodities, projects, services, etc.) information, which is the common interest and research hotspot of industry and academia in recent years. A recommendation system can help users to solve the problem of information overload when there is no clear demand or a large amount of information. However, at present, the types of data are diverse and the application scenarios are extensive. When faced with this situation, the recommendation system also encounters challenges such as cold start and sparse matrix. Deep learning is an important research field and the most important branch of machine learning. In recent years, deep learning has developed rapidly. Researchers have made great breakthroughs and achievements in speech recognition, image processing, natural language processing and other fields by using deep learning. At present, deep learning has also been favored by a large number of researchers in the field of recommendation and has become a new direction. Incorporating deep learning technology into the recommendation method can effectively solve the problems of cold start and sparse matrix in traditional recommendation systems, and improve the performance and recommendation accuracy of the recommendation system.
This paper mainly summarizes the application of traditional recommendation methods and the application of neural network in current deep learning technology in recommendation methods, among which the traditional recommendation methods can be divided into the following three categories: 1) Content-based recommendation methods is mainly based on the feature information between the user and the project. The connection between users will not affect the recommendation result, so there is no problem of cold start and sparse matrix, but the content-based recommendation results are low in novelty and face the problem of feature extraction. 2) The collaborative filtering recommendation method is the most widely used method that does not require information about users or items, but only makes accurate recommendations based on the user's interactions with items such as clicks, views, and ratings. Although this method is simple and effective, sparse matrix and cold start problems will occur. 3) The hybrid recommendation method combines the characteristics of the first two traditional recommendation methods and can achieve good recommendation effect. However, this method still faces some challenges and difficulties in processing multi-source heterogeneous auxiliary information such as text and images.
Recommendation methods based on deep learning are mainly classified according to neural network categories, which are divided into the following four categories: Recommendation methods based on deep neural network (DNN); recommendation methods based on convolutional neural network (CNN); recommended methods based on cyclic neural network (RNN) and long and short term memory neural network (LSTM); and recommended methods based on graph neural network (GNN). Incorporating deep learning technology into the recommendation field, the constructed model has the following five advantages: it has strong representation ability, and can directly extract the characteristics of users and items from the content; with strong anti-noise ability, it can easily process data with noise; in deep learning, cyclic neural network can model dynamic or sequential data; it can learn user or project characteristics more accurately; and deep learning facilitates the unified processing of data and can process large-scale data. Applying deep learning technology to the recommendation field can effectively overcome the challenges faced by traditional recommendation methods and improve the recommendation effect. Keywords:computer neural network; recommendation system; data mining; deep learning; information overload
当前,互聯网中的数据规模增速日趋加快,每天新增的数据量高达2.5×1018字节,人类已经步入内容过载、数据噪声泛滥的时代,可以通过各种途径获得更加丰富的信息,微博、微信等各种社交工具和自媒体给用户带来了更加便捷的信息获取渠道,与此同时,信息超负荷也成为了人们遇到的困难。
推荐系统作为一种筛选信息的工具,存在于海量数据挖掘基础之上,可以有效解决信息过载问题,通过以个性化的方式提供满足用户需求的内容。此外,推荐系统作为用户和信息之间的联系,不仅可以帮助用户发现自己需要的信息,还可以让信息展现在对其感兴趣的用户面前,从而实现信息生产者和信息消费者的互利双赢。目前,推荐系统已经成为产业界和学术界关注、研究的热点问题,应用领域十分广泛,在电子商务、社交网络、视频音乐推荐[1-2]等领域都有所应用[3]。例如亚马逊网站、京东、淘宝网站为用户推荐商品[4-5],MovieLens推荐电影的功能[6-7]等。
传统的推荐方法主要分为基于内容的推荐方法、协同过滤的推荐方法以及混合推荐方法,虽然传统的推荐方法可以实现推荐任务,并且融合多源异构辅助信息(多源异构信息:包含用户行为信息和个性化需求信息的图像、文本等)的混合推荐方法在一定程度上可以缓解冷启动、稀疏矩阵的问题,但是辅助信息往往具有多模态、数据异构、大规模、数据稀疏和分布不均匀等复杂特征,在处理存在融合多源异构信息的数据时混合推荐方法仍然面临着严峻挑战[8-9]。
目前,深度学习在数据挖掘[10]、自然语言处理[11]、图像识别[12]、推荐以及其他相关领域都得到了应用。其中,基于深度学习的推荐系统克服了传统模型的障碍,实现了高质量推荐。深度学习能够有效挖掘用户和项目间的非线性关系,并能够将更复杂的抽象编码为更高层次的数据表示;此外,它从大量可访问的数据源(如上下文、文本和可视信息[13])捕获数据本身内部的复杂关系[14]。本文对深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆神经网络(LSTM)以及图神经网络(GNN)在推荐系统领域的应用进行分析和归纳。
1 传统的推荐系统
在20世纪90年代,推荐系统发展成为一门独立的学科,推荐系统的核心部分是推荐算法,推荐算法根据用户与项目之间的关系帮助用户发现其感兴趣的项目。文献[15]给出了推荐算法的定义:定义函数s来计算一个项目i∈I(I代表所有项目的集合),推荐给某一位用户u∈U(U代表所有用户的集合)的可能性P,推荐算法就是通过计算P来为用户找到其最感兴趣的项目i′∈I,即u∈U,i′u=argmaxs(u,i),i∈I 。 (1) 传统的推荐方法主要分为3类[16]:基于内容的推荐(content-based recommendation)方法[17]、基于协同过滤的推荐方法(collaborative filtering recommendation)[18-19]和混合推荐方法(hybrid recommendation)[20],如图1所示。
1.1 基于内容的推荐
基于内容的推荐方法是最早被使用的推荐算法,来自于信息获取领域[21]。基于内容的推荐方法的思想非常简单,就是向用户推荐与他们过去兴趣相似的项目。首先分析用户感兴趣的项目信息,推荐流程如图2所示。
基于内容的推荐建立在项目信息基础上做出推荐,需要从关于内容特征描述的事例中得到用户的兴趣资料,然后根据用户偏好和项目特征信息产生推荐结果。这种方法的优点是能对具有小众口味的用户产生有效推荐,在一些特定的场景下表现良好;对于新添加的项目,系统只需要提取新项目的特征即可产生推荐结果,不存在项目冷启动的问题,其缺点在于十分依赖于项目所标记的属性特征,对标记特征要求较高。此外,该方法无法衡量待推荐项目品质的优劣,推荐失败的概率也很高。
1.2 基于协同过滤的推荐
GOLDBERG等[22]在1992年提出协同过滤推荐方法,又称为社会过滤,是指筛选出特定用户感兴趣的项目集合,根据这些项目集合挖掘用户的潜在需求,辅助用户做决定[23]。在推荐领域,协同过滤推荐算法是研究的主流方向,也是目前使用最广泛的推荐方法。
用户的历史行为数据是基于协同过滤推荐算法生成推荐项的来源,协同过滤是建立在这样的假设基础上的,如果用户X和Y对t个项目进行相似的评分,或者有相似的行为,那么用户就会对其他项目进行类似的评分或行为[24]。基于协同过滤的推荐方法主要分为基于用户(user-based)的协同过滤和基于项目(item-based)的协同过滤[25-27]。基于用户的协同过滤,首先根据用户偏好计算用户之间的相似度,找出与目标用户相似度高的用户,然后预测出目标用户对相似用户感兴趣物品的评分,最后将评分最高的若干个物品推荐给用户。基于项目的协同过滤与基于用户的协同过滤类似,通过计算物品之间的相似度来进行推荐。计算已购买物品i和待推荐物品j之间相似度的基本思想是:首先提取出对2个物品共同做出评分的用户,如果这些用户对2个物品i和j的评分相近,那么2个物品相似度就高,反之则相似度就低,之后将相似度高的待推荐物品放入推荐列表。协同过滤算法的基础思想如图3所示。由于在淘宝等电商网站中用户数量总是远多于商品的数量,因此在实际应用中基于物品的协同过滤比基于用户的协同过滤更受欢迎。协同过滤推荐方法使用方便、简单,只依据用户的历史评分数据计算用户之间的相似度即可,但是在很多情况下常常遇到评分数据不足造成稀疏矩阵的问题和新用户没有项目评分数据的冷启动问题。 1.3 混合推荐
任何推荐方法都有着自身独特的优点,但是在一些场景中单独使用一种方法时,推荐结果并不理想,通过将多种推荐方法相结合进行混合推荐能够实现取长补短,提高推荐系统的性能。在实际场景中使用的推荐方法大部分都是将2种或2种以上的推荐方法混合而得到的,盡管从理论上有很多种混合推荐方法,但在某一具体问题中并不是每种方法的混合都有效,因此如何将2种或2种以上的方法进行混合,产生更为有效的推荐也是推荐系统中一个重要的研究方向。混合推荐技术可以克服传统推荐方法的大多数限制,将它们组合起来以获得更好的推荐结果。混合推荐方法有很多,如加权型、切换型、交叉型、特征组合型、瀑布型、特征递增型、元层次型[24]等。
推荐系统以用户与项目的交互关系作为依据来发掘用户的偏好来实现推荐功能。但是当用户和项目的数据量增大时,用户与项目之间的评分矩阵会出现越来越稀疏的现象,协同过滤的方法面临数据稀疏的问题,而基于内容的推荐方法只能实现浅层模型捕捉特征,而且人工设计特征对浅层模型的影响巨大,会极大限制方法的可扩展性和推荐效果。虽然混合推荐方法可以有效解决以上问题,但是在面对多模态辅助信息时,混合推荐方法依然面临着严峻挑战。
2 深度学习在推荐系统上的应用
近年来,深度学习在推荐系统领域上发展迅速,在推荐系统中深度学习技术将用户的潜在特征和项目的潜在特征提取出来,基于这些潜在特征表示为用户产生推荐项目,完成推荐任务。深度学习技术中的神经网络不仅能学习用户或项目的潜在特征表示,而且可以学习用户与项目之间复杂的非线性交互特征,深入地分析用户偏好,解决传统推荐方法中的一些问题,更好地实现推荐[25]。
2.1 基于DNN的推荐
深度神经网络(deep neural networks,DNN)可以理解为有很多隐藏层的神经网络,又被称为深度前馈网络(DFN),多层感知机(multi-layer perceptron,MLP)。DNN被提出来之后在计算机视觉[28-29]、图像分类[30-31]、自然语言处理[32]等领域都得到了广泛的应用,同样在推动推荐系统领域的发展上DNN也发挥了很大的作用[33]。
考虑到Youtobe网站视频的数据规模大、数据新鲜度高、视频数据噪音较大的特点,提出使用DNN实现高效的推荐,系统架构如图4所示。系统分为候选集生成和排序2个阶段,这2个阶段分别使用了1个DNN模型。候选集生成阶段使用Candidate Generation Model负责基于用户画像及场景数据从海量的视频库(百万级别)中将相关度最高的资源检索出来,作为候选集。在候选集生成阶段作者将推荐任务转化为1个超级多分类问题,即在t时刻用户U在场景C下观看的视频ωt属于视频库V中的i类,其中每一个视频i可以视作为1个类别,其分类模型公式如式(2)所示:P(ωt=i|U,C)=eviu∑j∈Vevju 。 (2) 使用DNN的一个关键优点是,DNN的输入可以方便地处理离散和连续变量。笔者将用户观看历史和搜索历史通过嵌入的方式映射为1个稠密的向量,用户场景信息以及用户画像信息,比如年龄、性别等离散特征也被归一化到[0,1]作为DNN的输入。排序阶段Ranking Model负责基于更加精细的特征对候选集(百级别)进行排序,最终呈现给用户的只是很少的一部分数据。对生成的候选集进一步做细粒度的排序时,可以参考更多维度的特征,集成多个来自候选集的打分,将它们集合在一起综合一个分数排序,最终完成视频推荐。此外,在排序阶段的DNN结构与候选集生成阶段类似,并基于逻辑回归对每一个视频进行独立打分。但是Candidate Generation Model网络在分类训练时是用户向量和视频向量的点乘计算,在查询的时候是用户向量和视频向量的距离运算,那么相关运算不能确定是否能完全反映相似性,学习出来的用户向量和视频向量可能会有一定的分布偏差。
ZHANG等[35]提出一种协同过滤推荐算法与DNN相结合的模型,该模型由特征表示模块和评分预测模块组成,如图5所示。首先,该模型改进传统的矩阵分解算法,使用二次多项式回归模型捕捉潜在特征表示,使模型得到的潜在特征表示更加精准,然后将这些潜在特征输入到DNN中,预测评分。该模型能有效提高推荐的性能。
2.2 基于CNN的推荐
卷积神经网络(convolutional neural networks,CNN)是深度学习中经典并且广泛得到应用的神经网络。使用CNN构建的模型训练复杂度较低,而且训练参数的数目相较于其他网络来说也较少,主要是由于CNN可以实现共享权值、局部连接等操作,除此之外CNN的容错能力和鲁棒性也比较强[36],是一种易于训练和优化的网络结构。将CNN应用到推荐系统中,可以明显提高推荐的精准度。
TANG等[37]提出一种基于卷积的序列嵌入模型——Caser模型,模型结构如图6所示。Caser模型解决了Top-N顺序推荐中在一个序列里最近的项对其下一个项有较大影响的这一问题,是在时间和潜在空间中将一组最近的物品序列嵌入到一张“图像”中,并利用卷积滤波器来学习作为图像的局部特征的序列模式[38-39],这种方法为提取长期兴趣和序列模式提供了一种统一而又简洁的网络结构。该模型主要分为嵌入查找层(embedding look-up)、卷积层(convolutional layers)、全连接层(fully-connected layers)。嵌入查找层将前L项物品在潜在空间的表示连接起来,作为用户u在当前时刻t的序列矩阵表示E(u,t)∈RL×d。
除了物品的表示之外,本文还为用户u提供了一个用户的潜在表示Pu∈Rd,它表示潜在空间中的用户特性。卷积层包括水平卷积和垂直卷积两部分,Caser模型将前L项物品在潜在空间的表示看作一张“图像”,利用卷积滤波器对其进行序列模式的搜索和学习。水平滤波器可以被训练来提取具有多个联合大小的联合级模式,滤波器由上到下滑动;垂直滤波器通过对前几项物品的潜在表示的加权和来捕获点级序列模式,滤波器从左到右滑动。在全连接层中,将这2个卷积层的输出串联起来,并将它们和Pu输入到1个全连接的神经网络中,以获得更高层次和更抽象的特征。该模型通过将最近的行为建模为时间和潜在维度之间的“图像”,并使用卷积滤波器来学习序列模式,从而解决了Top-N序列推荐的问题。但是由于userembedding和itemembedding在Caser模型中是分开训练的,在捕捉user与items的交互信息时有问题,且与下文中的ConvMF模型相比没有引入上下文的信息。
转载注明来源:https://www.xzbu.com/1/view-15136285.htm