何 丽,王京豪,段建勇
(1.北方工业大学 信息学院,北京 100144;2.北方工业大学 CNONIX国家标准应用与推广实验室,北京 100144;3.北京城市治理研究基地,北京 100144)
个性化新闻推荐极大地提升了用户筛选信息的效率,为用户准确推荐新闻。有研究表明,在推荐的同时提供文字解释可以提升用户对推荐系统的信赖,增加系统的可信度与满意度[1]。
为了对推荐做出直观的解释,近来的一些研究使用元数据,例如从用户浏览记录中获取用户感兴趣的标签和主题阐明用户偏好[2]。尽管这些方法可以使用外部元数据来解释推荐,但是支持推荐解释的可解释特征很难获取,因此,在真实数据中人们很难使用该方式生成推荐的解释。
现有的一些可解释推荐方法通常将推荐预测和生成解释分成两个独立的步骤分别优化,或是只优化其中一个目标,例如嵌入法[3],其采用将解释语句生成模块直接整合到推荐模型中,其优化目标通常只为推荐准确度,无法保证解释的质量;后处理法[4],先优化常规推荐系统的准确性,再根据推荐结果生成对应解释,这种解释通常是固定模板的句式,很难使用户对其产生信任。
可解释推荐通常是基于用户与内容的交互信息,例如用户的评分、评分等内容,对推荐的内容生成解释[5]。也因此,现有的可解释推荐系统通常进行电影推荐、电商推荐等包含用户评论和评分内容的研究,新闻推荐领域则鲜有可解释推荐系统。
基于此,本文提出了一种特征映射方法,通过将使用基本潜在因子模型学习的一般特征映射到可解释的方面特征,可以在不影响基本潜在因子模型的推荐性能的情况下使用方面特征解释输出,将新闻数据中的一般不可解释特征映射到可解释的方面特征;同时,采用联合学习机制综合学习用户表征和新闻特征,模型借此来挑选出用户最感兴趣的新闻特征,进而优化解释语句。
个性化新闻推荐是自然语言处理领域的一项重要任务,其有着广泛的应用[6]。对于新闻推荐来说,学习到准确的新闻表示和用户表示是十分重要的,现有的方法大多只专注于优化获取到的用户表征和新闻表示,如An Mingxiao等[7]提出的LSTUR模型能够较好的结合用户长期爱好和短期兴趣的方法,Wu等[8]从新闻数据多个方面学习新闻特征,但是这些方法都没有涉及推荐系统的可解释性,无法提高系统的透明度、说服力和可信度。
传统观念认为,可解释性和准确性被认为是模型设计中两个相互冲突的目标,可以选择一个简单的模型来获得更好的可解释性,或者选择一个复杂的模型来获得更好的准确性[9]。然而,近年的研究表明开发具有可解释性的深度学习模型成为了可能,例如Zhang等利用大规模文本评论和基于方面的方法,生成词云解释;Wang等[10]通过联合张量因式分解框架,集成了推荐的用户偏好建模和解释的自定义内容建模两个配套学习任务,生成个性化文本解释。
针对新闻推荐,可解释推荐系统则相对较少,主要是因为新闻数据中用户的行为数据只包含用户的浏览和点击历史,不包含用户的评论、评分等交互数据,因而很难生成个性化解释语句。Wang等[11]利用知识图谱发现用户和项目之间的关联,但也只在电影和音乐这种有用户评论的数据集上进行了实验。本文利用映射方法将新闻数据中的一般特征映射为可解释方面特征,并利用联合学习模型获取新闻和用户特征之间的关联,在准确推荐的同时提供推荐的解释语句,实现了可靠的可解释新闻推荐。
在本节中,首先介绍如何将新闻数据的一般特征映射到可解释方面特征空间。方面(Aspect)[12]指的是表征项目的属性。之后介绍基于互注意力机制的可解释推荐模型,以及如何生成新闻推荐预测和解释语句。
新闻数据通常包含不同类型的信息,比如主题类别、标题、摘要等特征,它们对于学习新闻的表示都是很有帮助的。包含多种信息类别的新闻数据见表1。
表1 新闻数据样例
为了实现可解释推荐模型,首先新闻的类别要与用户喜好的相似,本文利用映射到方面特征[12]来做可解释特征。将新闻数据集的每种主题类别视作不同方面,如(体育、军事、生活、娱乐、美食),例如表1中的新闻数据主题类别对应的方面特征就为 (1,0,0,0,0), 同理对副类别也进行方面特征映射,进一步细粒度化新闻特征。
新闻数据集中用户的行为一般只包含用户的浏览和点击新闻记录,数据样例见表2。
表2 用户行为数据样例
(1)
如果是从未点击或浏览过的新闻,得分则定义为0。
最后,将这些映射后的新闻特征与用户评分数据作为模型的输入,进行新闻的可解释推荐,具体细节将在2.2节中展示。
为了实现既可以准确推荐新闻,又可以为推荐生成语句解释,本文提出了一种将两种任务联合学习的模型,其整体模型如图1所示。
图1 联合学习模型
经过2.1节处理后得到的用户评分矩阵作为新增的用户数据,与数据集中的用户行为数据与新闻数据共同作为模型输入。
模型先使用用户编码器和新闻编码器来进行用户兴趣建模和新闻特征建模,两个编码器的输出作为预测评分和解释生成的输入;计算后的预测评分与2.1节映射后的用于可解释的新闻方面特征也作为解释生成的输入,最终生成对应的推荐解释语句。模型将新闻推荐与解释生成作为两个任务,联合学习,利用了两个任务间共享的用户和新闻的隐含表示。接下来对模型进行详细介绍。
2.2.1 编码器
用户编码器的作用是从用户浏览过的新闻中学习到用户表示,这对于提高新闻推荐的准确度来说至关重要。由于新闻是具有高度时效性的,用户的兴趣也是随着时间在改变的,对于新闻推荐来说能够同时学习用户长期爱好和短期兴趣表示的方法取得的效果较好[7],用户的表示分为长期和短期的,学习长期用户表示的方法为通过用户ID的嵌入,用u表示用户的id,Wu为用户id的嵌入,长期用户表示就为ue=Wu[u]。 之后,从用户最近浏览过的新闻中学习用户的短期表示,应用门控递归网络(GRU)来获取新闻阅读顺序[13],将用户的长期表示作为GRU网络隐藏层的初始状态,用户浏览过的新闻按顺序表示为ni,k表示用户浏览过的新闻总量,将这些新闻按顺序通过新闻编码器后得到对应的新闻表示ei,由于改进了新闻编码器,因此得到的新闻表示ei是更为准确的,这能够帮助用户编码器更好学习用户的短期表示,用户短期表示的计算公式如下
ri=σ(Wr[hi-1,ei])zi=σ(Wz[hi-1,ei])gi=tanh(Wg[ri⊙hi-1,ei])hi=zi⊙hi+(1-zi)⊙gi
(2)
其中:σ为sigmoid函数,W为GRU网络的参数,⊙表示同或运算。最终,最后一个GRU网络的隐藏状态就是结合了长短期的用户表示u=hk。
新闻编码器用来从不同类别的信息(主题类别、副类别、标题、摘要)中学习新闻的统一表示。同一新闻中不同的词可能具有不同的信息量,所以采用注意力机制学习不同单词的重要性。由于主题类别和副类别为一个单词,通过主题类别编码器、副类别编码器得到的最终表示分别为ec,esc,其公式为
ec=ReLU(Pc×bc+pc)
(3)
式中:Pc,pc均是全连接层的参数,ReLU是非线性激活函数,同理得到esc。
(4)
(5)
式中:Pt,pt均是训练参数,qt是注意力向量。最终得到新闻标题的最终表示et
(6)
同理通过摘要编码器得到新闻的摘要表示ea。
最后采用注意力机制模拟不同类型的新闻信息的信息量,以便于更好学习新闻表示。将新闻的主题类别、副类别、标题和摘要的注意力权重分别表示为αc,αsc,αt,αa,以主题类别的计算公式为例,公式如下
(7)
式中:Oc,oc是训练参数,qe是注意力向量,使用类似的方法,可以求得副类别、标题和摘要的注意力权重αsc,αt,αa。新闻编码器所学习的最终新闻表示输出表示为
e=αcec+αscesc+αtet+αaea
(8)
2.2.2 联合学习
本文使用多任务联合学习方法预测评分和根据学习到的表示生成解释。首先,生成新闻推荐的预测评分时,采用点生产方法来计算新闻点击概率得分,这种方法被证明不论是时间效率还是性能都很好[13]。将用户表示为u,候选新闻表示为ex, 用户点击候选新闻的预测评分s就表示为
s(u,nX)=uTeX
(9)
评分预测任务的损失函数表示如下
(10)
其中,γ表示训练集,s*为经过2.1节映射后得到的对应新闻评分。
对于解释生成任务,生成的语句输入为编码器层输出的新闻表示e、用户表示u、新闻预测评分s以及特征映射后的新闻方面特征。首先使用门控递归网络[13]将e、u、s转换为单词序列,为了将其整合到GRU中,通过以下公式计算初始隐藏层状态h0
(11)
hn=GRU(hn-1,yn)
(12)
式中:yn为在n时刻生成的单词的词嵌入。这一隐藏层状态传入输出层生成输出单词wn,其公式为
wn=softmax(ωwhn-1+vw)
(13)
其中,ωw∈R|V|×ϖ,vw∈R|V|,|V| 表示词汇量。
定义损失函数La用于使生成的解释尽可能地使用映射后的方面特征,比如多使用标题和分类中的单词以增加解释语句的可信度。将方面特征向量表示为ψ∈R|V|,ψx为1就表示第x个单词是包含在方面特征中的,否则其值就为0。损失函数La的公式如下
(14)
最终,联合学习模型将不同类型的损失函数线性组合,以共同学习两个任务,最终损失函数L表示为
(15)
式中:λa、λϑ为平衡不同损失函数的权重,ϑ为模型的所有参数。
为了验证改进后的方法是否能够提高新闻推荐的效果以及能否生成良好的解释语句,本文设计了一系列对比实验。首先对实验设置进行说明,然后探究改进后的模型与其它方法的效果对比,最后验证了特征映射与联合学习方法的有效性。
3.1.1 数据集
为了验证新闻推荐的效果提升,使用真实世界的新闻数据集是十分重要的。本次实验中,我们使用MIND数据集[15],这是微软公司从微软新闻网站的匿名行为日志中收集的用于研究新闻推荐的大型数据集。为了提升验证效率,我们使用了小规模的MIND数据集,数据集的详细信息见表3和表4。
表3 用户行为数据集
表4 新闻数据集
其中,用户行为数据集的每条数据包括用户行为ID、用户ID、行为的时间、用户的浏览历史、用户对新闻的行为,用户对新闻的行为指的是用户在此次用户行为时间时展示给他的新闻他是否点击过,点击过的标记为1否则为0。新闻数据集的每条新闻包括新闻ID、主题分类、副分类、标题、摘要、正文链接、标题的实体信息、摘要的实体信息,这些实体信息是标题和摘要中的一些单词实体的类别、维基百科ID、置信度等等,便于进行词嵌入等操作。
3.1.2 评价指标与参数设置
在实验中,本文使用预训练的Glove嵌入法初始化词嵌入,参数设置如下:用于标题和摘要的词嵌入维度设置为300,主题类别和副类别嵌入维度设置为100,CNN网络过滤器设置为425,窗口大小设置为3,dropout设置为0.8,设置Adam优化模型,学习率设置为0.01,batchsize设置为128,GRU单元设置为400,Attention queries设置为200。
实验的评价指标分为两部分:对于评价新闻推荐准确性,本文采用的实验评价指标是与主流方法相同的AUC(计算ROC曲线下的面积)、MRR(平均倒数秩)和nDCG(归一化折损累计增益)。算法给用户推荐一个新闻列表,用户实际点击的新闻越靠前,则表明推荐准确度越高,推荐效果越好,上述指标的数值也会越大[16]。
对于评价解释语句的质量,本文采用BLEU和ROUGE这两种评价指标,它们被广泛地应用于自然语言处理领域中,用于评价真实文本和生成文本之间的相似性[17]。BLEU和ROUGE的值越大,说明语句的可解释性越好。
3.2.1 预测准确度对比实验
首先,在推荐准确性上,本文将与其它几个作为基线的主流常规新闻推荐方法进行对比,以此来验证改进后的方法能够提升推荐效果:
LibFM:将矩阵分解法应用于推荐系统中,从浏览的新闻标题中提取的TF-IDF特征和主题类别、副类别归一化计数获取用户特征,之后再与新闻特征连接作为推荐总输入。
DeepFM:结合了因子分解机(FM)和深层神经网络,与LibFM特性相同。
CNN:利用卷积神经网络和最大化池相结合,从最显著的特征中获取新闻表示。
DKN[6]:结合了知识图谱中的信息,包含了卷积神经网络和用户浏览新闻历史注意力机制的深度学习网络。
NPA[18]:使用个性化注意力机制,用卷积神经网络从新闻标题中学习新闻表示,根据用户点击历史学习用户表示并使用单词级和新闻级的个性化注意力机制捕捉不同用户的信息。
NRMS[19]:提出了一种多头部自我注意力机制的方法从新闻和用户浏览历史中学习新闻表示和用户表示。
LSTUR[7]:一种结合了用户长期和短期表示的新闻推荐方法,利用卷积神经网络从新闻的标题中学习新闻表示,从用户信息中学习长期表示,利用GRU网络从最近浏览的新闻中学习短期表示。
虽然以上提到的方法文中所使用的数据集与本文不同,但其所用的新闻数据中的新闻标题、分类和用户行为数据中的用户点击新闻历史等,MIND数据集都包括。故通过对以上这些论文中提到的方法进行复现,使用本文方法相同的数据集和同样的评价指标得到的推荐结果展示在表5中。
表5 不同方法的新闻推荐准确性结果
从中可以看出本文改进的方法比其它的基线方法在AUC、MRR项上得分更高,在nDCG数值上虽然不是最大但也相差不多,说明使用了本文的特征映射和联合学习模型后在生成解释语句是同时也一定程度上可以提升推荐准确性。
3.2.2 解释语句质量对比实验
对解释语句的质量评价时,使用其它几个生成解释语句的方法作为基线:
Lexrank:一种基于随机图的方法来计算自然语言处理中文本的相对重要性。
NRT[20]:根据评论和评分的词级分布生成解释语句。
NARRE[2]:通过注意力机制获得重要句子或评论用于解释。
现有的可解释推荐方法大多都需要用到用户对物品的评分及评论,这在新闻数据中是很少见的,本次实验使用的MIND数据集中也并无此类数据,在实验时复现对比方法代码,并使用本文中2.1节的方法生成的近似评分矩阵,以及新闻标题与分类的词嵌入作为替代用户评论的输入,得到了生成的解释语句的实验结果见表6。
表6 解释语句评价结果
为了评估不同粒度下的解释质量,本文使用了ROUGE评估方法中的ROUGE-1、ROUGE-2、ROUGE-L进行结果评估。从结果中可以看出,首先,本文方法在各项评价指标上均优于基线方法,说明生成的解释语句质量在这些评价指标上比基线方法要高。NRT方法学习深度用户项交互,并对解释提供显式约束,以提高解释质量,它在基线中结果最好,本文方法建立在其基础上,同时结果要更好,说明特征映射与联合学习对推荐系统中生成高质量解释语句是有帮助的。接下来通过一些例子来说明生成的解释语句的不同。
从表7中可以看出,NRT方法生成的解释则没有包含足够的新闻特征,NARRE方法则直接使用了新闻标题作为解释语句,当然这可能也与MIND数据集没有用户评论数据有关。本文方法则由于引入了新闻方面特征,强调了新闻的标题与分类,生成的解释语句尽可能地包含了这些内容,更容易吸引用户的关注。
表7 解释语句样例
为了验证本文使用的特征映射与联合学习方法的有效性,采用消融实验进行对比实验,分别从推荐准确度与解释生成两方面进行验证。
首先,从推荐准确度的方面验证特征映射方法的有效性,在分别不使用用户评分矩阵与映射后的新闻方面特征的情况下进行对比实验,实验结果如图2所示。
图2 特征映射推荐准确度对比实验
从实验结果中可以看出,共同使用用户评分矩阵与新闻方面特征的情况下推荐结果的评价指标得到了最高的评分。只使用新闻方面特征又比只使用用户评分的结果更好一些,说明在推荐准确性上,新闻方面特征比生成的用户评分矩阵更有效。虽然提升不大,但同时使用两种特征映射可以达到更好的效果,这也验证了特征映射方法在推荐预测上的有效性。
采用消融实验的方式验证特征映射方法对提高解释语句质量的有效性。当不使用特征映射方法时,由于没有形成用户评分矩阵与新闻的可解释方面特征时,只能使用基于内容特征的方式生成文本语句,将其与本文方法进行解释语句质量对比实验,结果如图3所示。
图3 特征映射解释生成对比实验
接着,又做了不使用联合学习方法的情况下新闻推荐与解释生成任务的对比实验,结果如图4和图5所示。
图4 联合学习推荐准确度对比实验
图5 联合学习解释生成对比实验
从图4中可以看出,如果在推荐预测时不使用联合学习方法,在AUC和MRR评价指标上有所下降,验证了本文使用的联合学习方法对于提升推荐准确度的有效性。从图5中可以看出使用联合学习方法比只生成解释的情况下生成的解释语句在各个评价指标上都得分更高,验证了本文使用的联合学习方法对于提升解释语句质量的有效性。
综上所述,在MIND数据集上,使用基于特征映射和联合学习的方法同时进行推荐预测与解释生成任务可以同时对两个任务进行提升,相比于基线方法,本文提出的该方法在推荐准确度的AUC等评价指标、解释语句的BLUE等评价指标上均达到了更好的效果。
本文提出了一种基于特征映射和联合学习的可解释新闻推荐方法。特征映射方法,将不可解释的一般特征映射到可解释的方面特征,消除了对元数据的需求;联合学习模型平衡准确预测和生成解释这两个任务,在用户评分与评论数据较少的新闻推荐领域实现了可用的可解释推荐功能,在推荐预测与解释生成两个任务上均达到了较为令人满意的结果。在真实数据集上的实验结果表明,相比于其它基线方法,该方法在推荐准确度和解释语句质量两方面都有所提升。