刘树栋,张 可,陈 旭
(1.中南财经政法大学 人工智能法商应用研究中心,湖北 武汉 430073;2.中南财经政法大学 信息与安全工程学院,湖北 武汉 430073)
为了缓解信息过载,满足用户阅读的需要,许多新闻平台,例如,谷歌新闻[1-2]应用推荐系统技术进行新闻推荐,为用户推送个性化的文章内容,能显著提高用户的文章点击率与阅读满意度,改善用户体验。新闻推荐带来的潜在价值是多方面的,除了直观地增加用户点击率、阅览概率,推荐系统能够通过不断满足用户偏好的需求,增加用户黏性,为媒体平台培养用户忠诚度。与其他推荐系统相比,新闻推荐除了会受到冷启动、数据稀疏等问题的影响外,还面对着该领域独有的问题,如新闻内容的快速迭代、新闻文本产生的非结构化数据、新闻的热度不均衡问题等。因此,研究者需要对症下药,针对新闻推荐领域实际存在的问题提出有效的解决办法[3]。
本文关注新闻推荐中的新闻热度不均衡所造成的一种头部领域问题,即处于头部的少数热点新闻容易获得大量用户的阅读,因而更容易获得大量的用户反馈,在推荐系统学习了这些用户偏好后,更容易倾向于把热点新闻推荐给用户,忽略处于尾部的冷门新闻。然而,处于尾部的冷门新闻虽然阅读数量较少,但加起来的总和却可能超过热门新闻,这种现象被称作“长尾效应”[4]。图1展示了Adressa新闻数据集一周内新闻分类的阅读数统计,其分布符合长尾分布。互联网的发展也在一定程度上加重了长尾效应的影响,在一般的新闻推荐系统中,往往会出现热门类别的新闻被大量推荐给用户而忽略了小众文章的现象。
图1 新闻分类阅读数统计
针对上述问题,本文在处理用户长期阅读历史时,将用户的兴趣分为多个维度进行学习,结合用户自身的属性信息,利用注意力机制区分各个维度的影响,以此提取用户在较长一段时间的阅读历史中不同维度上的兴趣作为用户的长期偏好。除此之外,本文利用卷积神经网络(Convolutional Neural Network,CNN)[5]与注意力网络[6]构成的新闻表示模型学习进行新闻建模,利用门控循环单元(Gate Recurrent Unit,GRU)[7]从用户的近段时间内的新闻阅读序列中学习用户的短期偏好,将长短期偏好进行融合形成完整的用户表示。据此,本文提出了一种基于多维度兴趣注意力的用户长短期偏好的新闻推荐模型,从多维度兴趣的基础上进行召回,从一定程度上缓解头部与尾部不均衡的问题,尽可能将冷门新闻准确地推荐给所需用户。
本文的主要贡献包括3个方面:
(1)在对用户长期偏好建模时,根据新闻的不同属性特征,引入多维度的兴趣偏好,以从不同角度探索用户的兴趣,减缓头部热点新闻的影响,让尾部冷门新闻更有机会受到推荐。
(2)对于多维度兴趣的处理,引入注意力机制,结合用户本身信息作为查询向量,使长期偏好建模能够区分不同维度兴趣的重要性,使用户处于尾部的兴趣偏好也能得到相应的关注,提高了模型挖掘用户兴趣的能力。
(3)结合用户长短期偏好建模,提出了本文的基于多维度兴趣的新闻推荐方法,使模型能够同时学习到用户对新闻的稳定长期偏好与易变的短期偏好,获得信息更丰富的用户表示模型,以此提高新闻推荐的准确度。
早期的新闻推荐大多使用的是推荐领域中常见的方法,大体可以被分为基于内容的推荐[8]和基于协同过滤的推荐[9]。近几年随着深度学习和神经网络的发展,许多学者也开始将相关技术应用于新闻推荐领域。文献[10]提出了一种通过深度知识感知网络来预测新闻点击率,利用知识图谱来改进新闻表示学习方法。文献[11]提出了一种深度强化学习框架,能够动态地完成新闻与用户的建模,在保证推荐精度的同时提高新闻推荐的多样性。文献[12]提出了一种结合注意力机制的深度神经网络模型来完成新闻推荐任务,模型包含了三个提取器,分别学习新闻表示、序列信息特征与用户兴趣,有效提高了新闻匹配的准确度。文献[13-14]分别提出了基于个性化注意力机制的神经网络新闻推荐模型和基于注意力多视图的神经网络新闻推荐方法,前者侧重于通过应用注意力机制挖掘新闻在词语级、文档级对用户的影响,而后者侧重于融合多视图的新闻推荐方法挖掘不同类型的新闻信息,从而更好地进行新闻推荐。可见,目前在新闻推荐领域主流的方法大多基于神经网络和深度学习的相关技术,在未来一段时间内,神经网络和深度学习都是该领域的重要方向。
新闻推荐存在以下几种特质[3]:①用户对新闻的偏好与用户当前上下文信息密切相关;②用户的社交网络关系容易对用户偏好造成影响;③新闻热度的不同导致热点新闻与冷门新闻用户反馈差异较大;④新闻更新迭代非常快,对时间更加敏感;⑤新闻数据量庞大,而且增加速度快;⑥新闻和用户交互大多都是非结构化数据。不少文献从上述特质的角度提出针对性的解决方法。例如,文献[15]提出一种二分图表示学习的新闻推荐系统,在用户偏好建模方面,不仅考虑用户的新闻点击行为,还考虑网络中近邻用户的偏好表示。文献[16]提出了一个基于内容与协同过滤的混合推荐模型,在新闻阅读社区中探索用户之间的潜在社交网络关系,通过挖掘出相对专业的评论来为拥有较少阅读历史的用户提供阅读推荐,从而在一定程度上能缓解新闻推荐冷启动问题。文献[17]针对实时推荐中数据量大、更新迭代速度快的问题,提出了一个基于表示的端到端新闻推荐方法,先使用变种降噪自编码器学习文章的分布式表示,然后通过RNN 学习用户的浏览历史序列作为用户表示,最后通过内积计算用户与新闻的匹配概率,该方法在拥有大流量的实际系统中仍能够发挥效用,并在文献发表时已投入了使用。
用户偏好的提取是新闻推荐研究中十分重要的一个环节,这部分的工作会直接影响到推荐结果的好坏[3]。以前的新闻推荐更多依赖于特征工程来提取用户偏好[18],目前更多的研究是通过基于深度神经网络的表示学习来自动抽取特征。本文目的在于融合多兴趣维度与用户长短期兴趣的方法来进行新闻推荐。在新闻推荐中,对用户进行兴趣表示是十分重要的,而长短期兴趣的分开建模意味着用户特征建模的细化,对用户相对长久稳定的偏好和短期内容易变化的偏好分别进行建模,从而提取到更完整的用户表示。
长短期偏好建模常见的流程可以概括为:首先学习用户的短期交互历史,获得短期偏好;然后学习用户的长期交互历史与用户档案信息,获得长期偏好;最后通过直接拼接或其他方式融合长短期偏好进行推荐。文献[19]提出了一个基于长短期用户偏好的模型进行下一兴趣点推荐,分别通过一个上下文感知的非局部网络和一个地理扩张的长短期记忆网络对长期和短期兴趣建模。文献[20]提出了一个基于四元数与自注意力的长短期用户兴趣建模的推荐方法,利用四元数门控机制来将长期与短期偏好融合,同时提出了一种基于四元数与对抗攻击的贝叶斯个性化排序损失函数来增加该方法的鲁棒性。文献[21]提出了一个基于注意力机制的方法捕捉用户当前查询的长短期用户偏好,从而推测用户的搜索意图来个性化搜索结果。目前,虽然已有少量文献使用了长短期偏好融合进行新闻推荐,但将相关领域的研究还有待补充。文献[18]将用户兴趣拆分成长期兴趣与短期兴趣,并分别使用用户ID 序列和用户短期新闻浏览历史对长短期兴趣进行表征,最后将两种兴趣融合进行推荐。文献[22]提出了一种异构图结构,通过图神经网络对用户长期兴趣进行建模,从而挖掘图中高阶信息结构所隐含的用户长期兴趣,然后再与短期兴趣相结合获得新闻的推荐结果。
多兴趣融合本质上也是在建模过程中对用户兴趣进行一定程度的区分,而其与长短期兴趣分别建模的不同之处在于,在对用户偏好建模的过程中,模型通过筛选、分类或者聚类的方法将用户兴趣分成不同的维度或类别再融合进行推荐,这种方法的好处在于用户的弱势兴趣也能得到体现。在长尾效应出现的情况下,减少头部新闻的优势问题,能够在一定程度上增加推荐的多样性。文献[23]使用胶囊网络构建多兴趣提取网络层,结合标签感知的注意力层来建立一个深度神经网络完成个性化推荐任务。文献[24]在进行长期用户兴趣建模时,结合注意力网络对用户历史购买中多种商品属性的潜在兴趣进行挖掘,完成对用户长期偏好的建模。文献[25]针对用户兴趣遵从的层级模式,提出了一种层级式的注意力网络结构,分别从物品级别和属性级别来对用户兴趣进行建模,将得到的多个兴趣表示向量进行拼接,得到最终的用户兴趣特征表示。目前,新闻推荐领域鲜有研究应用多兴趣融合进行表示学习,而这种方法能够对用户的多种兴趣进行挖掘,在一定程度上改进推荐的精度,并丰富推荐结果,增加推荐序列的多样性。
本文提出的新闻推荐模型框架如图2所示。首先,右侧虚线框内表示当前候选新闻,以新闻各项信息作为输入,获得候选新闻的表示作为输出。其次,左侧与中间虚线框内分别表示用户长期与短期阅读历史,前者以用户完整的长期阅读历史作为输入,输出用户长期偏好表示;后者以用户当前短期阅读记录作为输入,输出用户短期偏好表示。两者通过拼接获得最终的用户表示,即结合了用户长短期兴趣的用户表示。最后,左侧获得的候选新闻表示与完整的用户表示进行点乘,产生最终的预测得分,预测得分越高,意味着用户对该候选新闻的兴趣度越高。
图2 新闻推荐模型框架
对于一篇新闻来说,新闻标题、新闻分类、新闻内容的关键词可以覆盖新闻的大部分信息,而且用户也往往是根据标题与分类判断自己是否感兴趣,根据新闻内容判断是否值得阅读。因此,对于新闻建模部分,本文采用新闻标题、新闻分类和子分类、内容关键词这几个字段进行建模,完成新闻模型的建立。
对于新闻标题的建模,本文使用预训练好的挪威语Skip-gram 词嵌入模型[26]获得标题词语序列的词嵌入矩阵,记为V=[v1,v2,…,vM],其中,M
为新闻标题的长度。为了更好地保留词语序列的信息,本文使用卷积神经网络CNN 捕获文本中的局部相关性,可得到词语序列的上下文信息。将窗口大小设置为h,v[i-h:i+h]表示从v[i-h]到v[i+h]总共2h个词向量,Wc和bc为CNN 过滤器的两个参数,词语序列的特征向量为C=[c1,c2,…,cM],计算方式如式(1)所示。
得到包含上下文信息的词语序列特征向量C后,还需要关注标题文本中关于“注意力”的变化。标题文本中更重要的词语可能会得到用户更多的关注,为了减少不相干的单词造成的误差,增加重要单词的影响力,通过引入注意力机制来解决这个问题。awi表示第i个单词的注意力权重,Wq和bq为投影参数,q为注意力网络中的查询向量,如式(2)、式(3)所示。
新闻标题的最终表示dt根据词语序列的特征向量与注意力权重的加权和计算得出:
对于新闻分类、子分类、关键词的建模,由于这些字段由非连续的几个单词组成,我们根据词嵌入模型学习它们的表示,分别得到dtp、dtps、dk作为新闻分类、子分类与关键词的表示向量。四种表示向量的拼接d=concat(dtp,dtps,dk)作为新闻的最终表示向量。
用户阅览新闻时往往会倾向于选择某一类型的新闻,这种较稳定的选择偏好,被视为用户的长期兴趣。这种长期兴趣往往可从某位用户一段较长的浏览历史中观察得出。例如,某一位用户总是偏向阅读体育类别的新闻,又或者,某一位用户总会被某一种关键词吸引。而这些不同类型的兴趣对于一个用户的重要程度也可能有所不同。除此之外,长期兴趣还可以体现在拥有相同属性的用户群体上的偏好,如处于某个地区的用户会优先选择当地新闻进行阅读。
如图2所示,在对用户长期兴趣建模的过程中,将新闻类别、子类别、内容关键词,用户所在城市、地区等属性纳入考量,通过用户长时间产生的历史阅读序列,对用户多维度上的兴趣进行挖掘。在挖掘用户多维度兴趣的过程中,为了平衡用户不同种类的偏好造成的影响,如用户处于头部领域的阅读偏好可能会在推荐中占据主导,从而更难挖掘出用户小众的偏好,因此,我们加入注意力机制以更有效地捕捉用户不同种类的兴趣偏好。假设一段用户的长期阅读历史表示为H=(Hid,Htp,Htps,Hk),Hj∈H表示阅读历史中某一种属性的集合,ek∈Hj表示集合中通过词嵌入模型产生的向量。Hid、Htp、Htps、Hk四种属性分别代表新闻的唯一编号ID、新闻类别、子类别、新闻内容的关键词,其中,新闻的分类与内容关键词是一篇新闻的“门面”,用户浏览新闻时往往不止关注文章本身,还会倾向于选择特定的新闻类别或者关键词,这种选择倾向通常与用户的长期偏好有关。用户个人属性信息,如用户ID、所在地区等,将属性编码通过一个变换矩阵Wd转换成稠密向量pd,将pd作为注意力机制中的查询向量来计算每个兴趣维度的注意力权重ak与兴趣表示yj,如式(5)、式(6)所示。
将每个维度的兴趣表示拼接,作为一个全连接神经网络的输入,得到结果ulong为用户长期兴趣表示,如式(7)、式(8)所示。
用户的短期兴趣是动态的、多变的,通常我们从用户近段时间内的新闻阅读历史中学习用户的短期偏好。为了捕获用户阅读历史中的序列信息,我们使用GRU 网络来学习用户的短期兴趣表示。从2.1节可知,我们对新闻建模所得的新闻表示向量为d,用户短期阅读历史序列的表示向量可表示为{d1,d2,…,dN},N为短期序列的长度,则GRU 网络计算用户短期兴趣表示如式(9)~式(13)所示。
其中,“◦”表示hadamard乘积,Wr、Wz、Wh~是GRU 网络中需要学习的参数,最后一个输出的隐藏状态记为用户的短期兴趣表示ushort。
最终,我们将用户的长期兴趣表示与短期兴趣表示拼接,得到用户完整的兴趣偏好表示,如式(14)所示。
对于用户与新闻的评分预测,我们采用简单的点积来高效率地计算用户与新闻的匹配得分,即score=uTd。
我们采用负采样技术[18]进行模型训练。对于每一个正样本,即用户点击过的新闻,我们都随机选取K个没有被点击的新闻作为负样本,以此将原本复杂的预测问题转变成K+1个二分类问题,以此简化训练过程,提高计算效率。此条件下,每个正样本被点击的后验概率可表示如式(15)所示。
其中,P代表正样本的数量,dPi表示第i个正样本,dNi,j表示第i个正样本的第j个负样本,取所有正样本点击率的负似然对数之和作为模型的损失函数,即:
为了验证本文提出的推荐方法的效果,我们采用以下几种推荐系统常见的评价指标来衡量方法的效果。
AUC该指标指的是ROC 曲线与坐标轴围成的面积,其主要用来评价二分类模型的准确度,在推荐场景中能够反映模型对项目推荐效果的好坏。假设M、N分别为正负样本的个数,ranki为第i个正样本的预测概率值的排序,AUC 的计算定义如式(17)所示。
MRR该指标指的是多个推荐列表中项目排名的倒数平均值,它能够反映第一个相关项目在推荐列表中的位置。假设Q为推荐列表的个数,ranki为第i个推荐列表中第一个相关项目的排名,MRR 的计算定义如式(18)所示。
NDCG@K该指标指的是归一化折损累计增益,它能够反映推荐中排序结果的准确度和整个排序列表次序的质量。其中,DCG@K 表示折损累计增益,它在计算中能够使实际排名靠前的项目增益更高,对实际排名较后的项目进行折损,K表示排序列表的长度,假设r(i)表示列表中第i个物品是否相关,只有0和1两种取值,DCG@K 的计算定义如式(19)所示。
使用DCG@K可对一个推荐列表进行评价,但是每一位用户的推荐列表长度可能不一致,因此需要将DCG 归一化。假设Krel表示实际的排序列表中相关性最高的Krel个项目,计算理想的折损累计增益然后取DCG@K与IDCG@K的比值作为最终结果,即:
本文在公开的Adressa新闻数据集[27]上验证方法的有效性,该数据集是挪威当地新闻公司与挪威科技大学共同发表的一个大型真实新闻数据集,完整的数据集中包含了将近2 000万条页面浏览记录。本文使用的是Adressa一周内的数据集,数据集具体信息如表1所示。
表1 Adressa数据集统计信息
采取前五天数据作为训练集,后两天数据作为测试集进行实验。数据集涉及的新闻文本为挪威语,本文使用预训练好的Skip-gram 词嵌入模型对新闻标题、关键词等字段进行处理,词嵌入维度为100。新闻标题最大长度与历史序列最大长度皆设置为50。CNN 卷积核个数设置为400,窗口大小为3,GRU 单元数设置为400。为了防止过拟合,增加了Dropout层[28]并将其比率设置为0.2。模型选择Adam[29]作为优化器,学习率设置为0.000 1,训练批次大小为32,负采样中的K设置为4。
本文选用了七个基线模型与本文提出的模型进行比较。
DeepFM[30]Deep FM 是一个结合了因子分解机与深度神经网络的方法。本文使用新闻标题、分类、关键词的词嵌入作为新闻特征,使用用户阅读历史中的标题序列结合用户自身属性作为用户特征进行实验。
Wide&Deep[31]Wide&Deep是一个融合了深层和浅层模型进行联合训练的方法,结合两种模型各自的优点提升了模型的性能。实验所使用的特征与Deep FM 方法相同。
A2SVD[32]A2SVD 是在异步SVD[33]的基础上添加了注意力机制的方法。实验使用的特征同样与Deep FM 方法相同。
Caser[34]Caser是一个基于卷积核的Top N序列推荐模型,模型的输入采用用户的历史阅读序列。
GRU4Rec[35]通过GRU 网络进行用户表示学习,预测接下来用户可能点击的项目,模型同Caser一样采用用户的历史阅读序列作为输入。
Sli-Rec[32]Sli-Rec是一个基于深度学习的序列推荐模型,其目标是捕捉用户的长期与短期兴趣进行推荐。
LSTUR[18]LSTUR 分别使用用户ID 与用户阅读历史挖掘用户的长期与短期兴趣,从而进行新闻推荐。
MDIA-LSTUP本文提出的方法,结合了注意力机制对多维度兴趣进行学习,融合用户的长短期偏好进行新闻推荐。
我们将本文提出MDIA-LSTUP方法与另外七个基线模型在Adressa数据集上进行了大量实验,结果如表2所示。
表2 本文方法与基线模型效果对比
结合各项指标总体来看,除了MRR 指标以外,在AUC、NDCG@5、NDCG@10几个指标上,本文方法都优于其他基线模型。其中,MRR 与NDCG是对推荐系统具有排序意义的度量指标,在3.1节有所介绍,MRR 关注的是列表中最相关的一个项目的次序,只能反映一个项目在列表中的推荐效果,因此对于整个推荐列表的好坏无法准确地反映,而NDCG 关注的是整个排序列表的质量。本文所提出的MDIA-LSTUP方法虽然在MRR 指标上低于GRU4Rec与Sli-Rec模型,但是在NDCG 指标上都远高于这两个模型,证明本文方法在推荐整个新闻列表的场景中是优于GRU4Rec与Sli-Rec模型的。除此之外,本文的方法在MRR 指标上低于这两个模型的原因可能在于,考虑到长尾效应的存在,方法融合了多个兴趣维度,在推荐结果的新闻匹配列表中,有可能包含更多用户不同维度兴趣上的匹配新闻,提高了推荐的多样性,但是与用户最相关的新闻次序却不一定能够排在最前面,因而降低了MRR指标。
其次,从表2还可看出,使用神经网络进行表示学习的方法(如Sli-Rec、GRU4Rec、Caser)的表现都要优于利用特征工程进行特征抽取的方法(如Deep FM、Wide&Deep),这是因为特征工程需要依赖人工进行特征的选取,而表示学习是利用模型自动地对特征进行学习,能够抽取出更利于模型匹配的特征。另外,我们还发现基于序列推荐的模型(如Sli-Rec、GRU4Rec、Caser)要优于其他几类非序列推荐的模型,这可能是因为在本文所使用的数据集中用户与新闻的交互拥有严格的时间顺序上的关系,序列推荐相关的模型能够考虑到用户与新闻的交互历史中的顺序依赖性,从而捕获到更准确的用户偏好,因此在接下来预测用户可能进行交互的新闻时,推荐结果会比没有考虑顺序性的模型更加准确。
在几个方法中,本文提出的方法MDIA-LSTUP与LSTUR、Sli-Rec两个模型都对用户的长短期兴趣进行了挖掘,而且这三个方法都比没有学习用户长短期兴趣的方法效果更好。这一定程度上可以证明,对用户的长期兴趣与短期兴趣分别建立模型,学习长短期偏好的表示,是能够提高新闻推荐的预测结果的。而且,本文方法的实验结果比LSTUR 模型略有提升,这可能是因为,本文模型在进行长期兴趣表征时学习了用户阅读历史中多维度的兴趣表示,并通过注意力机制调整了不同维度兴趣的影响力,而LSTUR 仅使用用户ID 进行长期兴趣表示,缺少对用户兴趣的挖掘,因此本文提出的方法效果要更好一些。
最后,我们对用户长期偏好建模中各部分的效果进行了对比,结果如图3、图4所示。图3展示了长期偏好建模中是否使用注意力机制的不同效果,其中,“平均权重”指的是在进行兴趣维度的拼接时,使用平均值而不是注意力权重来合成长期兴趣表示。而使用注意力机制的方法明显要比平均权重的方法表现得更好,可见用户不同兴趣维度对用户整体长期偏好建模的重要性有所不同,因此需要注意力机制捕捉不同兴趣对用户的影响力,从而建立更准确的长期偏好表示。
图3 长期偏好建模中注意力机制与平均权重的效果对比
图4 长期偏好建模中不同属性的效果对比
图4展示了长期偏好建模中使用不同属性时的结果,比如“仅类别”指的是在建立长期偏好表示的过程中,只使用新闻ID 与新闻类别属性,其余以此类推。从图中可以看出,仅加入关键词属性的方法表现最好,仅加入子类别的方法表现次之,而仅加入类别时模型准确率最低,这大概是因为三者包含的信息量不一样。关键词属性所包含的信息量最丰富,因此单独对关键词建模时模型效果已经令人较为满意,子类别包含的信息虽然不如关键词丰富,但也比类别属性好一些。最后,使用全部属性的时候模型效果最好,可证明选择融合这几种属性对用户长期兴趣建模是有效的。
本文提出了一种基于多维度兴趣注意力的用户长短期偏好模型进行新闻推荐。针对新闻推荐数据集中长尾效应的现象,本文的模型在进行长期用户偏好学习时,结合注意力机制对用户多维度兴趣进行挖掘,得到含有多种兴趣维度信息的长期偏好建模。除此之外,本文方法使用基于CNN 与注意力网络的方法对新闻标题、分类、关键词进行建模,然后结合GRU 网络从用户的近期阅读历史中学习用户的短期偏好,再与上述学习到的长期偏好相融合进行新闻推荐。本文在一个大型的真实新闻数据集上进行了大量实验,通过与其他基线模型相对比,证实了本文方法的有效性。