导读: 新闻阅读是人们日常生活中必不可少的活动,随着新闻逐渐从纸质端转变到电子端,大家可以从各种社交平台上进行新闻的阅读。同时,我们身处信息爆炸的时代,一天可能就有上万篇的新闻文章产生,这对于用户来说,会造成非常严重的信息过载的问题。因此,个性化新闻推荐系统就应运而生,它可以有效地提升了新闻服务的质量。本次分题目为《结合知识图谱的个性化新闻推荐系统》,主要介绍:
- 背景介绍
- 新闻知识图谱
- 知识图谱与新闻推荐的准确性
- 知识图谱与新闻推荐的可解释性
01 背景介绍
阅读新闻是人们日常生活中必不可少的活动,并且由于新闻阅读逐渐从纸质端转变到电子端,现在大家可以从各种社交平台上进行新闻的阅读。同时,身处信息爆炸的时代,一天可能就有上万篇的新闻文章产生,这样对于用户来说会造成非常严重的信息过载的问题。因此,个性化新闻推荐系统就应运而生,它能有效地提升新闻服务的质量。
个性化新闻推荐系统的构建有两种方法 :
- 基于传统方法 :通过特征工程的方法构建用户和新闻的匹配。比如,将新闻的tf-idf特征和用户之前阅读的新闻的tf-idf特征进行直接匹配。
- 基于深度学习 :通过学习用户和新闻的隐式语义表示,在隐向量空间里进行匹配,再对用户进行推荐。
知识图谱能给个性化推荐系统带来哪些好处?
首先,知识图谱为物品引入了更多的语义关系, 可以更深层次地发现用户的兴趣 。比如用户看一个电影,通过知识图谱就可以知道电影的各种各样的信息,因此通过知识图谱就可以引入高质量的信息,包括用户的表示。同时,因为知识图谱是构建非常优良的图结构,通过连接用户和商品、商品和商品,就可以找到非常有意义的路径,并通过这些路径来构建可解释理由。因此,通过知识图谱就可以在给出推荐的同时,也给出推荐的理由, 增强用户对推荐系统的满意度和接受度 。
02 新闻知识图谱
1. 新闻知识图谱的研究动机
对于特定的推荐领域,需要专门设计的领域知识图谱,因为特定领域的知识图谱对该领域会更加适用,比如美团外卖就有外卖知识图谱,医疗应用有医疗知识图谱。而新闻推荐与其他领域比如外卖、医疗相比,它有其非常独到的特点——内容非常庞杂。新闻领域会涉及到各个方面的信息,并且由大量的文本构成。接下来,我会以例子去介绍,我们是如何去构建一个新闻知识图谱的,如何把和新闻无关的信息去掉,同时增加一些和新闻紧密相关的信息。
2. 新闻知识图谱的研究方法
首先,做新闻推荐一般都是用类似于百科的知识图谱,百科式的知识图谱构造非常精良,格式统一,知识全面。但是这也就存在了一个问题:包含了大量的与新闻推荐无关的信息,即它里面会包含大量的冗余信息。比如特朗普眼睛的颜色,这样的信息对于新闻推荐是没有太大的作用的。
构建图相关的应用的时候,节点会有很多的邻居,如果在采样的时候,采样到信息量比较少的节点,就会非常影响最终的推荐效果。
所以我们设计了一个非常简单的选择算法,把跟新闻相关的信息选择进来,主要思想是:
首先统计大量的新闻语料,我们收集了可能几十万上百万篇的新闻语料。然后,把出现在新闻语料中的知识实体当成种子节点,再以这些种子节点为中心,往外层扩展,比如扩展一跳或者两跳,如果一跳或者两跳能到达一些最初的种子节点范围内,就认定这个是跟新闻更加相关的关系。最后,对一跳、两跳分别赋予不同的权重,并统计各种关系的权重,然后把最重要的关系保留下来,同时保存这个关系下的三元组,这就是选择与新闻相关信息的方法。
同时,我们也补充了一些跟新闻相关的特定信息,比如用户在阅读新闻的时候,会非常关注新闻的主题,并且每个用户的兴趣都是比较固定的,比较喜欢某一类的新闻。因此,主题对新闻推荐来说,是至关重要的。所以,我们增加了两种类型的主题节点:显式主题节点、隐式主题节点。
显式主题节点是新闻本身所属的类别,这在编辑中就能体现出来,比如它是体育新闻,是NBA新闻还是足球新闻等等;同时,我们通过LDA topic model也可以对它训练一些隐式的语义节点,作为主题节点增加进来。然后我们通过连接出现在这篇新闻中的实体和主题节点,来构建与新增加的主题相关的三元组。同时,虽然一些新闻实体在知识图谱中没有直接相连,但是它们其实能强烈地体现在新闻阅读习惯中。比如经常出现在同一篇新闻中的实体,或者同一用户感兴趣的实体,这些实体其实反映了用户行为或者新闻本身特征的一个协同关系。举例说明,比如你是个足球迷,你在看到梅西相关新闻的时候,可能也会关注C罗,但是他们在知识图谱中没有直接相连,然后我们通过增加这样的一些连接关系,来丰富新闻领域的知识图谱。
3. 实验过程
①图谱数据统计
下图是通用知识图谱和我们修改得到的新闻知识图谱的数据对比情况,KG是原始的新闻知识图谱,News-Relevant KG是去掉无关关系后的知识图谱,Collaborative Relations in NG是增加了协同关系的知识图谱, Topic Entities in NG是主题节点的知识图谱。
②实验数据介绍
我们选取了MSN新闻四周的语料用来测试我们通用知识图谱和新闻知识图谱,进行对比。同时我们在多种推荐任务上都进行了测试,比如我们最擅长的个性化新闻推荐任务还有新闻分类任务。
③实验模型介绍
为了更直观地验证效果,我们选择了非常简单的模型, 仅仅用到了新闻向量和用户向量,再加上通过知识图谱预训练得到的实体向量 。其中,我们对比了两种实体向量,分别是通用知识图谱训练出来的实体向量以及新闻知识图谱训练出来的实体向量。如下图所示,在不同的任务上,我们使用了不同的架构。
④实验结果
下图是实验结果,对比的是不使用知识图谱的结果、使用通用知识图谱以及新闻知识图谱的结果,上面的表格各模型在个性化推荐任务上的表现,下面的表格是模型在不同的新闻分类任务上的表现。可以看到,新闻知识图谱相对于通用知识图谱是有提升的,说明了新闻知识图谱构建的有效性。而我们也会将新闻知识图谱作为一个基础,应用到后面的工作中。
03 知识图谱与新闻推荐的准确性
1. 新闻推荐特点
新闻推荐系统与其他推荐系统相比,还是存在非常鲜明的不同点的。
- 首先, 新闻推荐有很强的时效性 ,比如我们不会关注一周前发生了什么新闻,只关心今天发生了什么新闻,这样会造成非常严重的冷启动问题。
- 其次, 理解新闻内容本身的内容是非常重要的 。新闻里包含了大量的知识实体,比如人名、地名、事件等等,而知识图谱可以给新闻带来一个非常好的补充,因此知识图谱对新闻推荐有独特的重要意义。
- 最后, 用户在阅读新闻的时候,兴趣也是多样的 ,比如既关心政治又关心体育。并且随着时间推移以及热点新闻的不断出现,他们的兴趣也会发生一些动态的演化。
因此,对于新闻推荐来说,最主要的几个模块是:如何建模新闻、如何根据用户新闻阅读历史建模用户、如何将新闻建模与用户建模进行个性化的匹配。
2. 知识图谱与新闻推荐结合的研究动机
接下来的工作是我们发表在Recsys2020会议中的一个工作,该工作介绍了如何更好地利用新闻中的知识实体来提升新闻的表示。
首先,介绍一下该工作的问题背景:新闻中包含了大量的知识实体,这些知识实体可以非常好地帮助我们理解新闻内容,不过一篇新闻文章可能会包含几十个实体,每个实体出现的次数可能都不一样,该如何衡量这些知识实体的重要性?并且如何将知识实体和新闻本身的表示进行结合也是非常棘手的问题。同时,因为NLP技术、新闻文本表示技术都在日新月异地发展,我们不可能在每一个新的模型出来时,再针对性地设计一个结合知识的模型,这样工作量就会比较大。所以我们研究的是如何将知识信息融合到我们预训练好的新闻表示中,得到一个更好的表示,来提升最终新闻推荐的效果。
3. 知识图谱与新闻推荐结合的研究方法
①模型结构
为此,我们设计了一个模型,该模型主要核心有三层:实体表示层、语境嵌入层、信息蒸馏层。通过这三层,给根据NLP模型得到的新闻表示DV注入一个知识实体的信息,得到一个知识增强的新闻表示。
第一层是实体表示层 。首先,把出现在这篇新闻中的实体通过预训练的方式取出,但是不同的实体在知识图谱中有各种各样的邻居,这些邻居也能够丰富它的表示,因此我们采取一种KGAT的方式,通过考虑它不同的关系,来聚合它的邻居信息,从而得到更全面的出现在新闻中的实体表示。
第二层是语境嵌入层 ,这一层主要考虑实体在新闻文章当中的嵌入特点,比如出现的位置是在文章的title里还是body又或者是出现的频次、实体类别是人物还是地点等等。这些信息对于实体信息都是有非常重要的作用,所以我们设计了语境嵌入层来更加全面地建模这个实体。
第三层是信息蒸馏层 ,其目的是判断不同的实体在不同的新闻中的重要性。比如体育新闻中,体育明星的重要性会更高,湖人队的新闻中,可能詹姆斯的重要性会更高一些。所以我们将新闻的文本表示作为监测信号,去监督不同实体的重要性并进行重要性的加权,最后拼接到本身的初始新闻表示上,得到知识增强的新闻表示。
②训练框架
同时我们的框架也可以采取一种 多任务学习的方式 ,因为对于不同的新闻推荐任务来说,任务之间的各种标签会提供一些额外的信息。比如我们通过本地新闻预测任务,来预测新闻是不是与本地相关。在此任务中,知识实体也可以提供不同程度的帮助,有些知识实体是地点,对于本地新闻预测任务就会起到很好的帮助。并且,不同的新闻任务之间也会传递一些信息,通过知识实体来把不同任务之间的标签进行传递,从而对不同任务起到促进作用。
③实验结果
下图是个性化推荐任务上的结果,我们采用了两种基础的新闻向量表示方法,一种是实际业务中使用的LDA+DSSM,另一种是学术界使用非常多的BERT模型。根据这两种模型得到新闻的预训练表示之后,再结合知识实体,并通过我们设计的模型去增强这两种表示。结果显示,无论是在LDA+DSSM模型还是BERT模型上,我们对于这两种基础向量都取得了效果上的提升。因为BERT模型具有强大的表示能力,并且有非常强大的预训练的库,所以会比业务中使用的LDA+DSSM模型效果表示得好一些。
下图是在不同新闻分类任务上的结果:
在item2item的推荐实验上,我们的模型也是取得了比之前baseline更好的效果。
我们也进行了 消融实验 ,将我们模型核心的三层模块进行比较,通过消融实验证明我们每个模块都起到了非常好的作用。由于我们的模型是在预训练表示的基础上再注入知识,所以效率其实是非常高的。相对于以前的一些模型,无论是在训练还是测试任务上,我们的模型在效率上还是非常占优势的。
④可视化分析
同时我们也做了 可视化的分析 ,下图展示了模型在一篇新闻中最终学到的weight在不同知识实体上的表现。可以看到,对于这篇新闻来说,重要的实体会学习到更高的权重。
下图是我们对于最终生成的向量表示做的一个可视化,以此来证明向量在不同的类别上有更加明显的区分,也说明我们得到的知识增强的向量所学习到的信息是更好的。