论文阅读 KGAT: Knowledge Graph Attention Network for Recommendation

论文阅读 KGAT: Knowledge Graph Attention Network for Recommendation_第1张图片

1. Motivation

如何将side information和用户-物品二部图考虑在一起给用户提供准确、多样和可解释的推荐是非常有必要的。目前基于CF的方法并不能很好的对用户和物品的side information进行建模,这样就不可避免的面临数据稀疏性的问题。工业界的解决办法是使用监督学习模型,比如FM,NFM,wide&deep等方法去将用户物品的所有side information看成是影响最终结果的特征,然后学习特征交互,并最终映射成一个预测值。这类方法固然性能强大,但是存在一个明显的缺陷——它们将特征交互看成是独立的数据实例,而没有考虑之间的关系。
论文阅读 KGAT: Knowledge Graph Attention Network for Recommendation_第2张图片
举个例子,CF只会把i1推荐给u4和u5,SL会学到i1和i2之间的关联e1。尽管基于特征交互的SL方法可以学到特征之间的联系,但是像黄色圆圈和灰色圆圈的所代表的的高阶交互式这类方法所无能为力的。知识图谱是一类能在异构图中学习到实体关系的方法。本文在二部图、知识图谱结合起来的协同知识图谱上学习每一个节点的表达,并基于这样的表达去做推荐预测。

2. Task Formulation

用户物品二部图:用户物品交互图,有交互的用边相连。
知识图谱:包含物品属性描述的图。
协同知识图谱:这里将二部图和物品实体知识图谱结合成一张图,因此本文可以看出是异构图上的节点表达。 G = { ( h , r , t ) ∣ h , t ∈ E ′ , r ∈ R ′ } ,  where  E ′ = E ∪ U  and  R ′ = R ∪ {  Interact  } \begin{array}{l}{\mathcal{G}=\left\{(h, r, t) | h, t \in \mathcal{E}^{\prime}, r \in\right.} {\left.\mathcal{R}^{\prime}\right\}, \text { where } \mathcal{E}^{\prime}=\mathcal{E} \cup \mathcal{U} \text { and } \mathcal{R}^{\prime}=\mathcal{R} \cup\{\text { Interact }\}}\end{array} G={(h,r,t)h,tE,rR}, where E=EU and R=R{ Interact }其实就是把user和user-item交互考虑进来了。

3. Model Detail

论文阅读 KGAT: Knowledge Graph Attention Network for Recommendation_第3张图片
整个模型如图所示,可以看出三个关键部分:embedding,embedding propagation,prediction
embedding:这里使用了知识图谱运用广泛的TransR方法: e h r + e r ≈ e t r \mathrm{e}_{h}^{r}+\mathrm{e}_{r} \approx \mathrm{e}_{t}^{r} ehr+eretr因此,可信值用如下的公式表达:
g ( h , r , t ) = ∥ W r e h + e r − W r e t ∥ 2 2 g(h, r, t)=\left\|\mathbf{W}_{r} \mathbf{e}_{h}+\mathbf{e}_{r}-\mathbf{W}_{r} \mathbf{e}_{t}\right\|_{2}^{2} g(h,r,t)=Wreh+erWret22此处也是用BPR来学习关系可信度,公式就不列了。
embedding propagation: 此处的创新点在于使用attention来求每一个邻居节点的重要性。图神经网络的关键在于聚合方式,表现在两个方面,一个是邻居节点的聚合(mean,norm,plain),一个是本身和聚合邻居节点的聚合(加法,拼接,点乘)。GCN采用本身的表达加上邻居节点的聚合表达,GraphSage则采用拼接的方式,本文和NGCF类似,采用element-wise包含本身节点和邻居节点的协同过滤信号。同时,每个邻居节点应该贡献不同的权值,因此本文采用的了attention的方式来求得每一个邻居节点的重要性:
e N h = ∑ ( h , r , t ) ∈ N h π ( h , r , t ) e t \mathbf{e}_{N_{h}}=\sum_{(h, r, t) \in N_{h}} \pi(h, r, t) \mathbf{e}_{t} eNh=(h,r,t)Nhπ(h,r,t)et
π ( h , r , t ) = ( W r e t ) ⊤ tanh ⁡ ( ( W r e h + e r ) ) \pi(h, r, t)=\left(\mathrm{W}_{r} \mathrm{e}_{t}\right)^{\top} \tanh \left(\left(\mathrm{W}_{r} \mathrm{e}_{h}+\mathrm{e}_{r}\right)\right) π(h,r,t)=(Wret)tanh((Wreh+er))
prediction: 另外,本文不仅仅只考虑一阶邻居,为了学到高阶信号,本文还提出了高阶传播。高阶传播都差不多,这里不赘述了。另外预测的话就是简单的用户和物品高阶表达相乘即可,最终也是使用BPR来预测。

4. Experiment

这部分最无聊了,哪个模型不说自己好呢?本文的实验包括,baseline比较、 消融学习。
这里将能给人眼前一亮的实验结果列出来。
Attention propagation:
论文阅读 KGAT: Knowledge Graph Attention Network for Recommendation_第4张图片
本文列出来一张图,图上是实际数据集上的用户、物品、实体之间的关系的一个可视化,或者说是attention score的一个可视化。貌似CV等领域都喜欢用attention热力图来表明自己的模型的attention机制是有用的。

你可能感兴趣的:(推荐系统)