基于协同表示学习的个性化新闻推荐
2018-12-20梁仕威张晨蕊程军军许洪波程学旗
梁仕威,张晨蕊,曹 雷,程军军,许洪波,程学旗
(1. 中国科学院 计算技术研究所 网络数据科学与技术重点实验室,北京 100190;2. 中国科学院大学,北京 100190;3. 中国信息安全测评中心,北京 100085)
0 引言
信息技术和互联网的发展,深刻地影响了当今人们获取资讯的方式。人们的新闻消费模式已经从传统的订阅报纸,转变成了通过互联网访问海量的新闻资讯。互联网不仅加速了人们的新闻消费速度,也开拓了消费的渠道,与此同时也带来了信息过载问题。推荐系统是解决信息过载问题的有效方法之一,因此,新闻推荐系统也吸引了工业界和学术界越来越多的关注。
迄今为止,研究人员已经提出了很多用于个性化推荐领域的算法和模型,其中,协同过滤算法是最有效和应用最广泛的个性化推荐方法,而基于矩阵分解[1-2]的协同过滤算法在Netflix大赛中表现出了巨大的潜力,吸引了众多研究人员的关注。对于上述方法,历史行为数据对于学习用户和物品的潜在因子向量是至关重要的。但是在很多场景下,行为数据是无法获取或者非常稀疏的,比如在新闻推荐中,一篇新发布的新闻,通常没有或者只有很少的用户点击记录,这就促使我们在推荐中考虑新闻的内容信息。本文中,我们以新闻推荐作为场景,研究融合文本语义信息的个性化推荐模型。
为了理解文本内容信息从而做出更好的推荐,一个好的基于文本语义信息的表示方式是基础。传统的基于内容的推荐方法[3]通常只对文本信息做了简单的处理,使用词袋模型做文档的表示。一方面,基于词袋模型的表示方式具有特征稀疏和词汇鸿沟的缺点,无法编码词之间的相似性,在很多NLP任务上的表现不如近年提出的文本表示学习模型[4-6]。另一方面,用户兴趣的建模受到物品表示方式的影响,如果基于词袋模型做文本的表示,那么用户的兴趣也通常表示成词的组合,这些词可以由用户事先指定或者根据某种人工规则从用户的行为历史中提取。然而先对物品建模,再对用户建模的两阶段建模方式中由于存在人工规则使得模型的调优变得极为困难,而且也难以捕捉用户和物品内容间的潜在关系。
我们通过融合文本的表示学习模型和个性化推荐方法来解决上述问题。我们在基于矩阵分解的协同过滤模型的基础上进行拓展,提出一种将用户—新闻交互矩阵结合文档与词的语义关系进行联合表示学习的推荐模型,给用户与新闻的表示向量加入语义信息,从而能更好地发掘用户与新闻话题的内在相关性。由于用户和文档被映射到同样的潜在空间,用户对一篇文档的偏好可以通过用户的表示向量和文档的表示向量的点积来计算。在一个真实的新闻点击数据集上的实验结果表明了我们提出的模型的有效性。
1 相关研究
1.1 个性化推荐
现有的个性化推荐算法可以分为基于内容过滤的推荐、协同过滤推荐和混合推荐三大类。
基于内容过滤的推荐方法[3]背后的基本思想是: 用户可能会喜欢那些跟他以前做出过正面评价的物品相似的物品。直接的做法就是给用户推荐具有他喜欢的属性的物品。比如一个用户经常看科幻小说,那么基于内容过滤的推荐系统就可能会给这个用户推荐《三体》这部作品。基于内容过滤的推荐能解决数据稀疏性和项目冷启动问题,但由于过度强调物品属性的相似性,容易导致推荐结果的新颖性不足。
协同过滤推荐方法[7]背后的基本思想是: 用户可能会对具有相似兴趣的其他用户做出过积极评价的物品感兴趣。与基于内容的推荐方法不同,协同过滤是一种领域无关的推荐方法,除了用户对物品的评分信息外,协同过滤不需要任何的物品描述信息。这种方法模拟了生活中人与人之间通过“口碑”互相推荐的行为,依赖于人与人之间的信赖关系。矩阵分解(Matrix Factorization, MF)[2]是最有效的协同过滤方法之一。协同过滤算法具有较高的推荐精度,但由于依赖用户对物品的历史行为,所以不能对新的物品做推荐,面临严重的冷启动问题,难以应用于新闻推荐场景中。
为了克服基于内容过滤和协同过滤各自的限制,研究人员提出了将内容和历史行为数据相结合的混合推荐方法[8-10],这也是在现代推荐系统中应用最广泛的方法。引入内容过滤能在一定程度上缓解冷启动问题的影响。本文提出的模型也是一种混合方法,在推荐中结合了新闻内容信息。
新闻是最早使用推荐系统的领域之一,新闻推荐系统通过分析用户的浏览、点击、评论等行为,发掘用户的阅读兴趣,给不同的用户展现不同的个性化新闻列表,来提高新闻网站或者新闻App的点击率和转化率。早期的新闻推荐系统通过用户自动选择喜欢的新闻类型可以为用户提供一定程度的个性化服务,但这会给用户带来额外的负担,也不能随着用户的使用过程自动发掘用户的潜在喜好动态调整推荐的新闻[11]。Google News在文献[12]中将协同过滤算法应用到了新闻推荐中,由于协同过滤算法的固有缺点,Google News又提出了结合用户的点击行为做内容过滤的方法[13],但这种方法和后来提出来的SCENE新闻推荐系统[14]都是采用先对新闻建模再对用户建模的两阶段式的建模方式,不能很好地捕捉用户的阅读偏好和新闻内容间的潜在关系。
1.2 相关模型
1.2.1 矩阵分解
MF是常用的协同过滤算法之一,通过使用机器学习的方式训练一个统计模型用于推荐。具体来说,MF将高度稀疏的用户—物品评分矩阵降维成潜在因素的子空间,从而捕捉用户和物品的潜在属性。为了使得训练更加高效,潜在子空间的维度通常远远小于用户和物品的数量。一般地,给定包含m个用户和n个物品的用户-物品评分矩阵R∈m×n,MF将其分解为R≈PTQ,其中P∈d×m是用户潜在因子矩阵,Q∈d×n是物品潜在因子矩阵,d是潜在因子的维度。用户u对物品i的预测评分为
新闻作为一种快速消费的资讯,大多数用户不愿意在阅读完一篇新闻后花费时间显式给出对该新闻的评分,推荐系统通常只能收集到用户对新闻的隐性反馈数据,即点击或者不点击,所以用户i对新闻j的隐性评分rij∈{1,0},因此本文中我们只关注用户的隐性反馈,将新闻推荐看作一个二分类问题。文献[15]中提出了用于二分类的Logistic MF模型,和MF模型的主要区别是增加了Sigmoid函数将预测评分转换成点击概率,如式(1)所示。
(1)
其中,σ(x)=1/(1+exp(-x))。Logistic MF模型的对数似然函数,如式(2)所示。
(2)
1.2.2 文本嵌入技术
文本嵌入技术指将文本映射到一个潜在空间,使用一定维度的向量来表示,这些向量可以被应用到后续的NLP任务中。Le和Mikolov等[5]提出了句子/文档的向量学习模型PV-DBOW,该模型直接用句子/文档向量预测从句子/文档中随机抽取出来的词,从而同时学习到词和句子/文档的表示向量。PV-DBOW模型的优化目标为最大化如下对数似然函数,如式(3)所示。
(3)
其中,D为语料集,d代表一个句子或一篇文档,wi为从d中选取的词。
2 我们的方法
2.1 符号说明
在提出我们的模型之前,先列举我们在后面会用到的符号。我们用U={u1,u2,…,um}表示用户集合,用D={d1,d2,…,dn}表示新闻语料集合,用W={w1,w2,…,wv}表示由v个词组成的词表。用户与新闻的交互矩阵用R∈m×n表示,第i行,第j列的元素rij=1表示用户i点击了新闻j,rij=0则表示没有点击。dj∈ui表示用户i与新闻j有交互行为,wa∈dj表示词a出现在新闻j中。每一个用户u∈U,每一篇新闻d∈D和每一个词w∈W,都分别与一个表示向量关联:K和K,其中K为表示向量的维度。这些表示向量是需要学习的模型参数。
2.2 模型描述
用户对新闻的内容其实是有很强的偏好性的,比如有些人喜欢军事新闻,有些人喜欢娱乐新闻,有些人喜欢体育新闻,但是Logistic MF模型只基于用户对新闻的点击矩阵做分解,没有考虑新闻内容、类别等包含的丰富的语义信息,也就没有捕捉到用户对新闻内容的偏好。基于Logistic MF模型的这个不足之处,我们考虑新闻和词的关系,提出将点击矩阵的分解和文档与词的嵌入表示联合学习的模型,从而能同时捕捉用户的兴趣和新闻的语义信息。模型结构如图1所示,其中lj为新闻j包含的词语数量。
图1 CJE模型结构图
在这个模型中,Logistic MF部分对用户—新闻交互矩阵做分解,以监督学习的方式学习用户和新闻的潜在表示,捕捉用户对新闻的偏好。D&W Embedding部分类似于PV-DBOW模型,预测新闻内部出现的词,以无监督的方式学习词和文档的嵌入表示,捕捉内容的语义信息。而文档的表示由模型的两部分共享,从而将语义信息传递到了用户的表示中,使得模型能捕捉到用户对新闻内容信息的偏好。我们把这个模型叫做协同表示学习(Collaborative Joint Embedding, CJE)模型。形式化地,CJE模型的目标函数为两部分的对数似然函数之和,如式(4)所示。
(4)
其中,β是超参,用于平衡模型中的用户偏好和语义两部分对似然函数的作用,当β=0时退化为Logistic MF模型,β越大,语义部分对似然函数的影响越大。xja为词a在文档j里的TF-IDF权重,加入TF-IDF权重是为了加强文档内的关键词对文档表示向量的影响。对于D&W Embedding部分,我们使用softmax函数定义的概率函数p(wa|dj),如式(5)所示。
(5)
CJE模型能同时学习到新闻和用户的表示向量,以及作为副产品的词向量。用户对一篇新闻的喜好程度可以通过对应的用户向量和新闻向量的点积值来衡量,类似于Logistic MF,通过Sigmoid函数将其转换为点击概率,如式(6)所示。
(6)
其中σ(x)=1/(1+exp(-x))。
2.3 模型学习
训练模型时,由于直接计算式(5)中的概率函数代价太大,我们采用了负采样技术[4]进行更高效的训练。基于负采样技术的训练目标函数,如式(7)所示。
(7)
CJE模型需要用到两种类型的数据,一种是用户与新闻的交互数据,另一种是新闻的内容数据。用户向量和词向量的训练都只与一种类型的数据相关,而新闻向量的更新与这两种类型的数据都相关,在训练过程中我们交替使用这两种类型的数据更新新闻向量,直到收敛。
3 实验
在本节中,我们首先对实验设置进行说明,包括使用的数据集、评价指标和baseline模型,然后探究CJE模型中的平衡因子β对实验结果的影响,最后对比我们提出的模型和baseline模型在数据集上的表现。
3.1 实验设置
我们使用的数据集来源于2014年CCF主办的第二届中国大数据技术创新大赛[注]大赛官网 https: //bigdatacontest.ccf.org.cn。该数据集随机选取了财新网的10 000名用户,并抽取了这些用户在2014年3月份的新闻点击记录,数据集包含新闻的标题和内容。我们对数据集做了过滤,去除了少于5次点击与多于500次点击的用户,以及内容少于10个字的新闻,最终得到含有9 213名用户与5 666篇新闻的数据集。对于数据集里的新闻,我们不区分标题和正文,将标题和正文连接起来,采用基于Python语言的Jieba分词工具对新闻分词,并去除停用词与低频词。
我们采用离线的、基于排序的指标评价本文提出的方法: Precision@K,Recall@K和MAP(Mean Average Precision)。给用户推荐一个新闻列表,用户点击的新闻越靠前,则表明推荐效果越好,上述指标也就越高。
假设我们给用户推荐一个包含K篇新闻的列表,按预测分数从高到低排序;该用户在测试集里总计点击了n篇新闻;rel(·)是一个指示函数,如果用户点击了列表里的第i篇新闻,则rel(i)=1,否则rel(i)=0。那么对于单个用户的Precision和Recall的K截断计算如式(11)、式(12)所示。
整个系统的Precision@K和Recall@K为所有用户的平均值。
MAP是所有用户的AP(average precision)的平均值。对单个用户,假设推荐的列表含有m篇新闻,AP的计算如式(13)所示。
(13)
在本文的实验中,我们对比以下模型在数据集上的结果。
• LogisticMF[13]: 这是一个对隐性反馈数据做推荐的state-of-art模型,等同于CJE模型在β=0时的情况。
• AveVec: 首先使用PV-DBOW模型学习新闻的表示向量,然后对每一个用户,将这个用户在训练集里点击过的新闻的向量取均值作为这个用户的表示向量,最后根据用户向量与测试集中的新闻向量的余弦值从大到小排序并做推荐。
• CJE: Collaborative Joint Embedding是本文提出的模型。
• CJE+: 使用预先学习好的词嵌入模型初始化CJE模型中的词向量,这是我们提出的第二个模型。在本文中,我们使用Skip-Gram模型[4]训练用于初始化的词向量。
3.2 平衡因子β对结果的影响
CJE模型里的β是一个很重要的参数,用于调整用户偏好和新闻的语义信息对模型似然函数的影响,能影响推荐的效果。β越大,语义信息对似然函数的影响越大,用户历史行为信息对似然函数的影响就越小。图2展示了β在不同取值下CJE模型的MAP指标,这里的向量维度设为50。从图中可以看出,当β的取值范围在0.02到0.15的区间内时,MAP指标呈上升趋势;当β的取值大于0.15时,MAP指标呈下降趋势。在本文使用的数据集下,β的取值为0.15时结果最好。
图2 CJE模型的β参数在不同取值下的MAP指标
3.3 模型对比
我们对5折交叉验证的结果取平均值作为最后的实验结果,β取0.15,表1给出了CJE模型、CJE+模型和作为Baseline的LogisticMF模型与AveVec模型在数据集上的结果。表中P@K表示Precision@K,R@K表示Recall@K,dim列是向量的维度,我们对比了在50、100和200维下的结果。从表中的结果可以看出,由于AveVec只对新闻向量做了简单的平均处理,没有能很好地捕捉用户的兴趣偏好,是四个模型中表现最差的。对用户的历史点击行为做分解的LogisticsMF的表现比AveVec好,是一个很强的baseline。本文提出的CJE和CJE+模型各项指标都比其余两个模型高,甚至50维的结果比LogisticsMF模型200维的结果还要好,这说明同时融合用户的历史行为信息与新闻的语义信息能有效提升推荐效果。除此之外,由于我们的模型将用户、新闻和词嵌入到了同样的潜在语义空间,所以用户和新闻的向量可以通过若干最相近的词来解释(可以通过计算点积找最相近的词)。由于CJE+模型使用了预先训练好的词向量,引入了额外的词的语义信息,故结果比CJE模型稍好。
表1 实验结果
图3是各个模型在不同维度下的MAP指标柱状图,从图中可以直观地看出从50维到100维,CJE和CJE+模型的MAP指标有较大的提升,从100维到200维的提升幅度较小,趋于平缓。
图3 在不同维度下的MAP指标柱状图
4 总结
本文将文档与词的表示学习模型与基于矩阵分解的协同过滤算法结合起来,提出一种用于推荐领域的协同表示学习模型CJE,能同时学习带有语义信息的用户和文档的表示向量。在真实的新闻点击数据集上的实验表明,我们提出的模型优于其他基准模型。
本文提出的模型的语义部分以词袋模型为基础,不可避免地会造成信息丢失,考虑词的顺序关系是我们未来的研究方向之一。除此之外,结合时间因素的协同表示学习模型也是一个值得探究的方向。