Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

动机

本论文是2021年发表在IW3C2的一篇论文。在基于知识图谱的推荐系统中,使用图神经网络是一个趋势,但是目前基于图神经网络的模型有以下不足之处:1.没有在更细的意图粒度上识别用户与物品之间的关系。2.没有利用依赖关系保留长距离的语义连接。本文作者提出的KGIN模型解决了上述问题,将意图建模为知识图谱中关系的组合,并鼓励不同意图相互独立,同时还提出一种新的GNN信息聚合方法,它可以递归地集成长距离关系序列。
这里仔细说明一下之前GNN工作的两个不足,首先是以往的GNN工作没有考虑更细的用户与物品交互的粒度,本文模型中设计用户有多个意图,且这些意图驱动用户去与物品交互。如右子图中,意图p1强调了director(r1)和star(r2),这驱动u1去看电影i1和i5。
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
之前的工作大部分都是基于node的,通过聚合邻居node的信息来更新自己,而不区分这些信息来自哪些路径,这导致模型不能很好捕获交互中的依赖信息。在本文模型中,作者设计了一种新的信息聚合方式解决了这个问题。
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

算法

在本模型中,需要两类数据,分别是用户与物品交互数据Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记,知识图谱(用三元组表示)Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记。模型可分为两个部分,下面详细介绍。

用户意图建模

假设\(\mathcal{P}\)是被所有用户共享的意图,我们可以将每个用户物品交互对(u,i)分解为Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记,因此我们可以将用户物品交互数据看作一个异构图。作者将每个意图用向量表示,计算公式如下
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
其中\(e_r\)是关系r的向量表示,α(r,p)是注意力分数,评价该关系对该意图是否重要,计算公式如下
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
\(w_{rp}\)是对于关系r和意图p的可训练权重。
关于意图,我们希望意图之间互相独立,如果一个意图可由其它意图推断出,那么它就是多余的,并且携带的信息很少,因此意图独立有利于增强模型能力和可解释性。作者提供两种方法引导模型学习独立的意图,分别是互信息和距离相关系数。
在互信息方法中,我们最小化任意两个意图中的互信息,公式如下
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
其中s(·)是评价两个意图之间的联系,这里使用余弦相似度。
在距离相关系数方法中,我们最小化意图之间的距离相关系数,公式如下
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
dCor(·)是距离相关系数计算公式,具体定义如下
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
dCov和dVar分别是协方差和方差计算。

关系路径感知聚合

这部分分为在Intent Graph和Knowledge Graph上聚合。(Intent Graph是上文中提到的(用户,意图,物品)三元组组成的)
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
首先是在Intent Graph上聚合,下面仅说明第一次的聚合,我们可由以下公式得到用户的向量表示
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
\(f_{IG}\)(·)是对于每个(u,p,i)的聚合函数,这里使用的聚合函数为
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
\(e_i\)是物品i的向量表示,β(u,p)是注意力分数,具体计算公式如下
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
在Knowledge Graph上,对于物品i的向量表示可由以下公式计算
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
\(f_{IG}\)(·)是对于每个连接(i,r,v)的聚合函数,这里使用聚合函数为
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

根据上文,我们可以堆叠多个聚合层来获取高阶邻居的信息,第l层的用户u和物品i的表示为
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

模型预测

在L个聚合层之后,我们得到了各个层的用户和物品的表示,将各个层的表示相加得到最终结果
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记
使用内积评估用户u对物品i的偏好程度
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

模型的优化

模型的损失分为两部分,一部分是BPR损失,它考虑到与用户有交互的物品的得分要高于与用户无交互的物品的得分,第二部分是意图独立性的损失,它要求不同意图之间尽可能独立,综合损失如下
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

结果

作者在三个数据集上做了实验,本文中提到的KGIN模型均取得最好的效果。
Learning Intents behind Interactions with Knowledge Graph for Recommendation阅读笔记

总结与未来工作

本文中关键亮点有两个:1.在更新的粒度(意图intent)上为用户与物品的交互建模。2.关系路径感知聚合,聚合来自多条路径的关系信息。由于历史交互信息过于稀疏,无法提供高质量的表示,所以推荐中的自监督学习是未来的一个研究方向。还可以尝试在知识感知推荐中引入因果概念。

上一篇:在windows环境下搭建git版本环境


下一篇:Language Models as Knowledge Bases?