基于深度学习的论文个性化推荐算法
2018-05-29王妍,唐杰
王 妍, 唐 杰
(清华大学 计算机科学与技术系, 北京 100084)
0 引言
当前,个性化推荐在众多社会网络活动中扮演着重要的角色。如亚马逊平台,电商根据用户的历史购买行为推测其购买偏好,并向用户推荐其可能喜欢的其他产品,从而增加潜在利润[1-2]。本文的推荐系统是基于Aminer 学术搜索平台的论文个性化推荐系统。Aminer平台利用数据挖掘、社会网络分析等技术,向用户供搜索服务,包括研究者搜索、论文搜索、综述文献搜索等一系列检索功能,同时兼有学术话题趋势分析、研究者社会网络关系挖掘等众多功能。Aminer系统约搜集有8 000万篇论文信息、4 000万研究者信息。在服务于用户搜索需求的同时,用户个性化推荐的需求也变得更为重要。面对庞大的检索结果集,用户可能需要花费额外的时间去人工筛选自己想要的论文。因此,本项目的目标是实现一个建立在海量数据上的个性化推荐系统,从而给用户提供个性化的决策和个性化的信息服务。具体而言,该推荐系统旨在向注册用户推荐他可能感兴趣的论文,该推荐系统基于以下信息对用户做出个性化推荐: 1)用户偏好,即用户已关注的论文列表; 2)论文相关的文本信息,包括论文关键词、摘要; 3)用户相关的文本信息,包括用户的搜索日志,用户关注的论文文本信息。
目前的个性化推荐系统通过收集用户反馈,如对各种物品的评分数据来对用户进行个性化推荐,其中经典的推荐算法可划分为两大类,协同过滤推荐算法和基于内容的推荐算法。本文的推荐系统混合使用了这两种经典模型。
1 模型1.1 协同过滤推荐模型
协同过滤是广泛使用的个性化推荐算法[3-4],其中结合聚类分析的协同过滤算法也被广泛研究应用[5-6]。在本文的推荐系统中,我们采用基于物品的协同过滤推荐模型。基于物品的协同过滤分为以下两个主要步骤。
1) 构造用户对论文的评级矩阵,在该项目中,评级数据简化为0-1二值数据,表示是否关注该论文。
2) 用户尚未关注的论文构成候选集,对论文候选集中的每篇论文预测用户的关注概率。降序排序后返回前K篇预测评分最高的候选论文。
假设有m个用户,n篇论文,首先构造用户—论文关注矩阵(1),其中rui表示用户u是否关注了论文i,
(1)
对用户未关注的论文集中的每篇论文,预测目标用户对它的喜爱程度。目标用户对该论文喜爱程度的预测可以用式(2)计算,其中N表示与论文i相似的近邻集合,相似度用余弦相似度计算,如式(3)所示。
(2)
其中,
(3)
其中ruk取值为0或1,Sik表示两篇论文的相似度。得到预测分数Pui后,选择排在前K位的物品作为推荐结果返回给目标用户。
通过实验,我们发现直接利用用户评级矩阵进行基于物品的协同过滤推荐,效果并不理想。分析可知,原因是实际数据集的标注数据非常稀疏,即已产生关注行为的用户占总用户比例,以及产生关注行为的用户所关注的论文数占总论文的比例都很小。针对这个问题,我们采用奇异值分解算法进行改进。通过对用户的评级矩阵进行SVD降维来取其隐藏的特征,进一步利用降维后的矩阵对目标用户进行物品推荐。具体到实验中,我们通过SVD降维并保留90%的能量值,一定程度上缓解矩阵稀疏的问题。
1.2 基于内容推荐模型
仅采用协同过滤推荐模型的另一弊端是会产生无法推荐新论文的问题。因为推荐的论文必然是在其他用户已关注的论文集中。而那些符合目标用户兴趣,但没有被任何其他用户关注过的论文,就无法对其进行推荐。为了解决这个问题,我们结合了基于内容的推荐[7-8]。通过基于内容的推荐模型产生一批候选论文,可以有效推荐那些没有被其他用户标注的新论文。且该方法受用户数据稀疏性的影响较小。
在本项目中,我们用文本表示论文特征和用户特征并计算相似度,基于内容推荐与用户兴趣特征相似的论文。
首先构造论文特征,取论文关键词,计算TF-IDF值,则论文特征可表示成其关键词的权重向量,每一维特征对应一个关键词的权重,特征维数即词汇总数。其次构造用户的兴趣特征,假设用户关注的论文集合为P,通过对集合P中的论文特征取平均值得到用户特征。计算和目标用户兴趣内容最相似的K篇论文时,采用余弦距离衡量。
基于内容的余弦相似度,选取相似度排名前K名的论文返回。
1.3 基于内容推荐模型的优化
在基于内容进行推荐时,我们将用户和论文都映射到同一个向量空间,而推荐问题则转化成计算距离用户最近的论文。在上一小节,我们采用的是最常见的方式,将文本由其词频-逆文档频率(TF-IDF)表示它们的特征值,并通过向量的余弦相似性来进行推荐,本质上可以退化成比较特征词的重合程度。然而这种特征分析往往不适合表示用户和文档的距离,首先因为它们近似正交,即两个文本实际相似,但是单词交集可能会很少。另外一个重要的原因是它们并不能捕捉单词层面的相似性。如在该项目的关键词集合中,“algorithm”和“machine learning”在语义上具有较高的相关性,但是仅仅使用余弦相似度模型并不能捕捉这一层次的相似性。
因此,当论文内容在词汇层面重合度较小,语义层面却较为相似的情况下,这种模型表现并不令人满意。考虑这样一个例子,两个文本“Obama speaks to the media in Illinois.” 和“The president greet the press in Chicago.”在单词层面正交,没有重合,而其在语义上却十分相似。为了刻画这种相似性,我们采用了基于词向量的Word Mover Distance (WMD)模型来衡量相似度。
1.3.1 词向量
仅仅利用语料的上下文语境对单词的隐含表示进行学习,生成词向量表示在自然语言处理的各个研究领域被广泛地使用。词向量模型的输入是大量的无监督语料,输出是所有单词(不包括低频词汇)的低维向量表示。
本文采用经典的Skip-gram模型训练词向量[9],使用谷歌新闻的语料来训练词向量。输入为一个单词,预测其上下文词汇出现的概率。采用经典的三层网络结构,第一层为输入层,由一个单词的K维词向量表示。第二层为隐藏层。第三层为输出层。输出为已知输入单词时,其余各单词在其上下文出现的概率,采用Softmax模型估计概率值。训练目标是,最大化已知输入单词的条件下,相邻语境中单词出现的概率,其中条件概率用Softmax估计。模型的直观解释是,若单词的上下文相似,则它们的词向量更相似。
该模型的训练模型也有各种各样的实现,如通过随机梯度下降法进行参数更新,通过负采样的方法提高模型的性能等等。
在本项目中,有很大一部分特征词是复合单词,即短语。如“data mining”,如果拆成“data”和“mining”两个单词分别训练则会损失其作为一个短语的语义信息。因此,我们的做法就是将它作为一个短语学习它的向量。首先对语料进行短语探测,一种简单有效的方法是采用探测二元词出现的次数来探测两个单词的短语,当其在文本中出现次数大于某个阈值时,则判定其为短语。这里通过实验,将该阈值设定为10。将“data mining”处理表示成“data_mining”,以下划线连接,接下来短语向量的训练过程和词向量学习的过程相似。实验证明引入短语后,向量的语义表示上有更好的表现。
1.3.2 WMD距离函数 (Word Mover Distance)
我们将用户模型和文档模型里的特征词表示成词向量。然后,基于内容推荐转化成如何评价用词向量表示的用户模型及文档模型的相似度,这个问题可以抽象成用词向量表示的两个文本之间的距离。
简单做法是将一个文本中所有的词向量连接成一个长向量,然后直接应用计算向量相似度的方法来计算用户和论文的相似度。但这个方法的弊端是,每个数据的词汇数不同,导致连接向量的长度不同。通过补零会引入额外误差,或是将向量相加,实验证明效果并不理想。
基于这两点考虑,我们通过改进版的Earth Mover Distance (EMD)来进行衡量[10],这里称之为Word Mover Distance (WMD)。即,我们将一个用户模型或是文本模型抽象成带有权重的词汇的集合,然后利用WMD来衡量从一个集合变换到另一个集合的距离。
可以把这个目标函数表示成式(4)。
(4)
上述最优化目标可以直观理解成,为文档中的每个单词找到其在文档中最相似的单词,所有单词的转移距离之和则为文本的最小距离。最优化的过程本质上可以看成是推土机距离的一种特殊变形。
举例来说,图1描述了一个计算文本距离的过程。
图1 Word Mover Distance示例[10]
首先去掉停用词,样例中的三个句子分别剩下四个单词,因此假设每个单词的权重为0.25,我们注意到每个转移箭头上标记了该转移对总转移距离的贡献大小,可以发现,Word Mover Distance (WMD)可以很好的契合我们的动机,将一个句子里的单词转移到另一个句子里语义最为相似的单词。例如,把单词“Illinois”变成单词“Chicago”比从单词“Japan”变成“Chicago”损失更少,则文本D1比文本D2和目标文本D0更为接近。这是因为在计算单词向量时,“Illinois”和“Chicago”的距离更为靠近,语义更为接近。因此可以推断出,WMD可以很好地刻画共有单词很少或有较多同义词时,两个句子的语义信息。
实验证明,通过引入词向量模型,并采用 WMD距离衡量文本距离,可以有效地改善模型,在各数据集上取得更好的表现。
1.4 混合模型
为了提高整个推荐系统的性能,常常结合使用协同过滤模型和基于内容推荐的模型[11]。最后的混合模型,采取按比例返回结果的合成方式,即按比例返回两种算法产生的推荐结果。协同过滤和基于内容的推荐算法,返回结果的比例初始值设为0.5和0.5。根据反馈,对该比例进行调整。当用户对推荐的结果有积极的反馈,即有点击或是直接关注等行为时,我们相应增加产生该条推荐结果的算法在整个混合模型中的比重。
为了取得更好的推荐效果,该模型中加入了一些工程性的技术技巧。
例如在基于内容作出推荐前,首先对不活跃用户的兴趣特征进行预测。该数据集大约有 70%用户未产生任何标注或关注行为。对这一部分用户的兴趣的预测需要借助其他文本信息。该项目中,分析具体数据可发现用户均产生一定数量的搜索记录。通过对搜索关键词进行预处理后,可以通过有相似搜索行为的用户的兴趣来预测该目标用户的兴趣。
首先对杂乱的搜索记录进行预处理,包括去停用词,取单词词干,去掉低频的词语,这里经过实验设定阈值为5。其次发现一部分用户的产生搜索日志的时间跨度较大,其兴趣也随着时间有所变化,为了突出刻画用户的短期兴趣,在计算每个关键词权重时都乘上时间衰减因子,越久远的关键词,则其权重越小。其次进行降维处理后计算相似度。同样获取与该用户最相似的K个用户,用他们的兴趣向量平均值来预测目标用户的兴趣向量。
同时,在实际工程中并不是固定推荐排名最高的论文,而是在推荐集合中(集合大小设为 20)随机抽取推荐,增加结果的多样性,提供更好的用户体验。
2 实验
2.1 数据集
Aminer: 我们采用的数据集是Aminer平台上约4 100个用户的用户数据。需要的训练数据均需自己预处理得到。最后的数据集规模为,约4 768个参与人次,而所有的参与人次来源于其中30%的用户。
Meetup: Meetup是一个广泛使用的聚会活动网站。我们通过Meetup API获取了从2013到2016年在纽约举办的活动数据。对每个活动,我们抓取了它的文本描述信息和参与者信息,共22 313个活动和15 324个用户,然后筛选不少于20人参加的聚会和参加不少于20个活动的用户,最后得到4 722个用户和5 064个活动。
Douban:豆瓣活动是国内使用广泛的聚会网站。我们获取了从2012至今在北京举办的活动。然后筛选不少于20人参加的聚会和参加不少于20个活动的用户。最后获得6 513用户,5 326个活动(共222 795个参与人次)。对于每个活动,我们同样抓取了它的文本描述信息。
表1列出了数据集的信息。
表1 数据集信息
2.2 实验结果
首先介绍两个基本的个性化推荐算法,以做比较:
1) 基于用户的协同过滤算法: 构造用户评级矩阵,通过相似用户的评级信息,来预测目标用户对该物品的喜爱程度。
2) 基于物品的协同过滤推荐算法: 与基于用户的协同过滤算法类似,该算法首先构造物品评级矩阵,再通过相似物品的评级信息,来预测用户对目标物品的喜爱程度。
在推荐系统中,常常使用准确率来刻画返回结果的相关性。在返回的推荐条目中,希望包含尽可能多的相关结果。为了刻画返回结果集的相关程度,用准确率来定义相关文档占总返回结果的比例,用召回率来定义相关文档占总相关文档的比例(这里指用户已关注的论文集合)。因此,我们采用了以下几种评估方法。
1) 准确率(Prec): 表示正确推荐的数目在总推荐数中占有的比例。
2) 召回率(Rec): 表示正确推荐的数目在用户相关集中所占的比例。
对比该项目算法和其他基础算法在Aminer数据集上的表现,如表2所示。
表2 推荐模型性能比较
通过表中数据可以看出在所有的模型中,该文的模型在准确率,召回率和首位准确率等评估指标上较基本的推荐算法都取得了最好的表现。对比准确率和召回率发现,两者并没有相互制约,该文模型的准确率和召回率均有上升。其中Prec@1表示推荐列表的第一位是否准确,这个评估方法强调了推荐的排序。
同时发现,使用混合模型比单一的协同推荐模型显著提高了性能。提高的9%到14%,表明了词向量模型的引入在推荐系统中的显著作用。与使用余弦距离的方法三相比,采用WMD距离的推荐模型,即方法四,在Aminer数据集上,Prec@1,Prec@20, Rec@20分别显著提高约4%, 3%和2%。在Meetup和Douban数据集上,Prec@1分别提高3%和4%。分析可知,该性能的提升,是因为在文本长度比较短,单词重合较少的情况下,WMD模型对于语义信息的捕捉优于余弦相似度模型。
2.3 系统实现和界面
系统后端使用Scala语言实现,推荐算法使用python实现,周期性地离线运行推荐算法,并将更新后的算法结果存储到SSDB数据库中。线上推荐则可通过直接索引,加以简单的逻辑就可实现。且效率高,反应时间短。系统的界面如图2所示, 提供了关注按钮,以供用户反馈。
图2 推荐系统界面
3 结语
本文基于深度学习在Aminer平台上实现了个性化推荐算法,对注册用户进行个性化论文推荐。在项目中,主要有以下创新。
1) 采用混合推荐的框架,将协同过滤和基于内容的推荐相结合,相互弥补缺点。基于内容的推荐可以推荐没有任何评价数据的新论文,协同过滤可以充分利用用户评价数据来挖掘用户或是论文之间的相似性,推荐高质量的论文。
2) 在基于内容推荐的模块中,创新性地提出了用文本距离度量用户和论文的相似性,并引入了语言模型中最近广泛使用的词向量模型,最后通过WMD距离来衡量用户和论文的文本距离。实验证明该算法的表现优异。
效果上,本文混合推荐模型相较于基本的协同过滤模型,在Aminer, Meetup, Douban三个数据集上进行验证,有明显的提升。
[1] Bennett J, Lanning S. The Netflixprize[C]//Proceedings of KDD cup and workshop. 2007: 35.
[2] Linden G, Smith B, York J. Amazon.com recommendations: Item-to-item collaborative filtering[J]. IEEE Internet computing, 2003, 7(1): 76-80.
[3] Cai Y, Leung H, Li Q, et al. Typicality-based collaborative filtering recommendation[J].Knowledge and Data Engineering, 2014, 26(3): 766-779.
[4] Resnick P, Iacovou N, Suchak M, et al. GroupLens: an open architecture for collaborative filtering of netnews[C]//Proceedings of the 1994 ACM conference on Computer supported cooperative work. ACM, 1994: 175-186.
[5] Shepitsen A, Gemmell J, Mobasher B, et al. Personalized recommendation in social tagging systems using hierarchical clustering[C]//Proceedings of the 2008 ACM conference on Recommender systems. ACM, 2008: 259-266.
[6] Gong S. A collaborative filtering recommendation algorithm based on user clustering and item clustering[J]. Journal of Software, 2010, 5(7): 745-752.
[7] Pazzani M, Billsus D. Content-based recommendation systems[M]//Peter B, Alfred K. Wolfgang N. The adaptive web. New York: Springer, 2007: 325-341.
[8] Balabanovic M, Shoham Y. Fab: content-based, collaborative recommendation[J].Communications of the ACM, 1997, 40(3): 66-72.
[9] Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[C]//Proceedings of the Advances in neural information processing systems. 2013: 3111-3119.
[10] Kusner M, Sun Y, Kolkin N, et al. From Word Embeddings To Document Distances[C]//Proceedings of the 32nd International Conference on Machine Learning. 2015: 957-966.
[11] Burke R. Hybrid web recommender systems[M]//Peter B, Alfred K. Wolfgang N.The adaptive web. New York: Springer, 2007: 377-408.
E-mail: jietang@tsinghua.edu.cn