个性化新闻推荐系统的构建有两种方法:
知识图谱能给个性化推荐系统带来哪些好处?
首先,知识图谱为物品引入了更多的语义关系,可以更深层次地发现用户的兴趣。比如用户看一个电影,通过知识图谱就可以知道电影的各种各样的信息,因此通过知识图谱就可以引入高质量的信息,包括用户的表示。同时,因为知识图谱是构建非常优良的图结构,通过连接用户和商品、商品和商品,就可以找到非常有意义的路径,并通过这些路径来构建可解释理由。因此,通过知识图谱就可以在给出推荐的同时,也给出推荐的理由,增强用户对推荐系统的满意度和接受度。
02
新闻知识图谱
1.新闻知识图谱的研究动机
2.新闻知识图谱的研究方法
首先,做新闻推荐一般都是用类似于百科的知识图谱,百科式的知识图谱构造非常精良,格式统一,知识全面。但是这也就存在了一个问题:包含了大量的与新闻推荐无关的信息,即它里面会包含大量的冗余信息。比如特朗普眼睛的颜色,这样的信息对于新闻推荐是没有太大的作用的。
3.实验过程
①图谱数据统计
下图是通用知识图谱和我们修改得到的新闻知识图谱的数据对比情况,KG是原始的新闻知识图谱,News-RelevantKG是去掉无关关系后的知识图谱,CollaborativeRelationsinNG是增加了协同关系的知识图谱,TopicEntitiesinNG是主题节点的知识图谱。
②实验数据介绍
我们选取了MSN新闻四周的语料用来测试我们通用知识图谱和新闻知识图谱,进行对比。同时我们在多种推荐任务上都进行了测试,比如我们最擅长的个性化新闻推荐任务还有新闻分类任务。
③实验模型介绍
为了更直观地验证效果,我们选择了非常简单的模型,仅仅用到了新闻向量和用户向量,再加上通过知识图谱预训练得到的实体向量。其中,我们对比了两种实体向量,分别是通用知识图谱训练出来的实体向量以及新闻知识图谱训练出来的实体向量。如下图所示,在不同的任务上,我们使用了不同的架构。
④实验结果
下图是实验结果,对比的是不使用知识图谱的结果、使用通用知识图谱以及新闻知识图谱的结果,上面的表格各模型在个性化推荐任务上的表现,下面的表格是模型在不同的新闻分类任务上的表现。可以看到,新闻知识图谱相对于通用知识图谱是有提升的,说明了新闻知识图谱构建的有效性。而我们也会将新闻知识图谱作为一个基础,应用到后面的工作中。
03
知识图谱与新闻推荐的准确性
1.新闻推荐特点
新闻推荐系统与其他推荐系统相比,还是存在非常鲜明的不同点的。
因此,对于新闻推荐来说,最主要的几个模块是:如何建模新闻、如何根据用户新闻阅读历史建模用户、如何将新闻建模与用户建模进行个性化的匹配。
2.知识图谱与新闻推荐结合的研究动机
接下来的工作是我们发表在Recsys2020会议中的一个工作,该工作介绍了如何更好地利用新闻中的知识实体来提升新闻的表示。
3.知识图谱与新闻推荐结合的研究方法
①模型结构
为此,我们设计了一个模型,该模型主要核心有三层:实体表示层、语境嵌入层、信息蒸馏层。通过这三层,给根据NLP模型得到的新闻表示DV注入一个知识实体的信息,得到一个知识增强的新闻表示。
第一层是实体表示层。首先,把出现在这篇新闻中的实体通过预训练的方式取出,但是不同的实体在知识图谱中有各种各样的邻居,这些邻居也能够丰富它的表示,因此我们采取一种KGAT的方式,通过考虑它不同的关系,来聚合它的邻居信息,从而得到更全面的出现在新闻中的实体表示。
第三层是信息蒸馏层,其目的是判断不同的实体在不同的新闻中的重要性。比如体育新闻中,体育明星的重要性会更高,湖人队的新闻中,可能詹姆斯的重要性会更高一些。所以我们将新闻的文本表示作为监测信号,去监督不同实体的重要性并进行重要性的加权,最后拼接到本身的初始新闻表示上,得到知识增强的新闻表示。
②训练框架
③实验结果
下图是个性化推荐任务上的结果,我们采用了两种基础的新闻向量表示方法,一种是实际业务中使用的LDA+DSSM,另一种是学术界使用非常多的BERT模型。根据这两种模型得到新闻的预训练表示之后,再结合知识实体,并通过我们设计的模型去增强这两种表示。结果显示,无论是在LDA+DSSM模型还是BERT模型上,我们对于这两种基础向量都取得了效果上的提升。因为BERT模型具有强大的表示能力,并且有非常强大的预训练的库,所以会比业务中使用的LDA+DSSM模型效果表示得好一些。
下图是在不同新闻分类任务上的结果:
在item2item的推荐实验上,我们的模型也是取得了比之前baseline更好的效果。
我们也进行了消融实验,将我们模型核心的三层模块进行比较,通过消融实验证明我们每个模块都起到了非常好的作用。由于我们的模型是在预训练表示的基础上再注入知识,所以效率其实是非常高的。相对于以前的一些模型,无论是在训练还是测试任务上,我们的模型在效率上还是非常占优势的。
④可视化分析
同时我们也做了可视化的分析,下图展示了模型在一篇新闻中最终学到的weight在不同知识实体上的表现。可以看到,对于这篇新闻来说,重要的实体会学习到更高的权重。
下图是我们对于最终生成的向量表示做的一个可视化,以此来证明向量在不同的类别上有更加明显的区分,也说明我们得到的知识增强的向量所学习到的信息是更好的。
4.我所做的工作
①研究动机
接下来介绍我在美团做的工作,我的工作主要动机有三个:
首先,上文讲述了如何通过知识图谱增强新闻的表示,但对于新闻推荐来说,准确地表示用户兴趣也非常关键,所以我们更深层次地研究如何利用知识图谱来更加全面地建模用户在新闻阅读过程中的兴趣的表示。
其次,新闻中其实包含了大量的新闻实体,这些实体能反映一篇新闻复杂多样的兴趣。新闻不同于商品,内容更加复杂,一篇新闻中往往会包含各种各样的兴趣,所以引入知识可以更加全面地了解一篇新闻的兴趣。在此基础上,我们就可以进一步了解用户的多样的、动态的兴趣。
②研究方法
下面介绍一下具体的工作。
首先是异构图表示学习的方法。新闻本身包含了丰富的文本信息,同时我们通过把它和知识图谱进行连接,得到一个空间的结构化信息。所以我们一方面可以通过一些预训练的模型,得到文本信息的表示,同时也可以通过图学习的结构信息,得到空间结构的表示,最后通过异构图学习的方式,将这两种不同的信息表示融合到一个向量空间里。
接下来,我又设计了双记忆网络模型来建模用户的多种多样的信息表示。使用记忆网络是因为它有两个非常显著的优势。
因此我这里采用了一个双记忆网络,用兴趣记忆网络学习兴趣的表示,同时用户记忆网络去建模序列化信息。其中,对于兴趣,我们也从两个方面进行建模:
下图是我们的数据集,同时应用了MicrosoftNews还有美团的点评数据集。
从下表可见,模型在两种不同的数据集上都取得了比baseline更好的效果。
同时,我们对于不同的数据集实验了不同的兴趣数量,可以看到,在Microsoftnews上,兴趣数量要比点评数据集上稍微多一点,主要是因为Microsoftnews的新闻更加多样性,可以反映用户更多的兴趣。
下图是我们做的可解释性的简略分析。引入知识图谱的一个好处是在分析用户兴趣的时候,不光可以在新闻的层次上进行分析,还可以在更加基本更加底层的实体表示层次进行兴趣分析,这样它的兴趣会更加直观。
04
知识图谱与新闻推荐的可解释性
1.研究动机
商品推荐可能已经有可解释性工作了,那新闻推荐和商品推荐的可解释性工作有什么不同的地方?
首先,新闻中包含了大量的实体,并且新闻知识图谱也比商品知识图谱要复杂得多,比如新闻知识图谱关系可能有上千种,但亚马逊的商品知识图谱可能只有十几种关系。因此,对于如此复杂的数据和图,如何生成可解释路径是非常有挑战性的工作。
2.研究方法
针对这个问题,我们另辟蹊径地设计了一个比较新颖的可解释的范式——锚点知识图。具体原理是:
3.实验结果
我们这里采取的是微软的新闻推荐数据集还有一个工业数据集:
下表是消融实验的结果。可以看到,去除一些模块,效果会有明显下降。
4.可解释性分析
同时我们对可解释性也做了一个量化分析。模型中本就包含RNN模块,所以我们用RNN模块的分数来粗略评估可解释路径的质量,可以看到我们在数量还有质量上都比baseline模型要高。
05
问答环节
Q1:做推荐的时候,是否可以通过构造事件图谱来进行推荐,比如买了房子接下来要装修,装修就会涉及到买窗帘、硬装、软装之类的?
A1:做新闻的时候确实会包含事件,很多时候不能把新闻的人物、地点单独考虑,通过事件会更加全面一些。但是事件构建难度较大,因为我并不是知识图谱构建的专家,所以我在尝试后,并没有找到很好的方法。但是这个在制作方面确实是非常有意义的,如果能在图谱中加入事件的节点,对新闻推荐肯定会有非常好的帮助。不过,对于新闻来说,很多事件是突然发生的,可能之前知识中并没有该事件,这个就属于动态图的研究范畴了,即增加新知识,这是非常有挑战的。
Q2:商品的库存与销售可以做知识图谱吗?
A2:我认为是可以的。知识图谱是非常广泛的概念,新闻知识图谱更类似于百科式的,实际上我们在美团业务中,用的知识图谱更多的是把用户和商户、用户和商品做一个连接。其实只要通过构图能够提升它的表示或增强了解,我们认为图谱都是有用的,都可以通过构图来学习。所以商品的库存与销售可以通过合理的方式来构建图谱,比如库存,可能具体的数字会带来噪音,但你可以把大于1000的、500-1000的等等,对应到节点上,然后加入到图中,这个估计对知识图谱会有很好的补充作用。
Q3:在建模过程中,会用到如随机游走或者负采样等策略,在知识图谱中会不会去专门挖掘一些比如pattern的整一块的知识吗?
A3:你所提到的图的pattern类似于metagraph,这个别的工作里确实也有,通过关系来构建Metapath或者Metagraph,这个也是非常有效的,尤其是在一些简单的商品知识图谱中。但对于新闻来说,就比较复杂,因为它可能存在上千种关系,Metagraph下来就非常复杂了,所以暂时就没有考虑。但是我相信,如果设计好的话,是非常有用的。
Q4:请问老师,现在有开源的知识图谱吗?
Q5:能否在开源图谱上进行预训练,使得在构建自己业务的知识图谱的时候,能够效率更高一点。
Q6:在现在推荐领域的研究,更多的是在开源知识图谱上做还是要自己收集数据、自己构建,再进行研究
A6:从科研角度上看,利用开源图谱会更加方便,比如我这几个工作里的新闻推荐就是基于wikidata的。但是如果涉及到具体业务的话,那还是要根据自己的业务进行改造,效果会更好一些。