知识图谱论文阅读(十六)【WWW2019】Knowledge Graph Convolutional Networks for Recommender

在这里插入图片描述
题目: KGCN
论文链接:
代码链接:https://github.com/hwwang55/KGCN

想法

  • 高阶的意思就是multi-hop的意思
  • 注意是从外向里聚合的,第h-1跳是外侧,第h跳是里侧! 所以才有聚合邻居和本身之说

创新

摘要

为了充分利用KG中的信息,我们会扩展某个实体的感受野到multi-hop来捕获KG的高阶结构信息和语义信息。

数据集: 电影、书籍和音乐推荐

Introduction

常用的KGE方法侧重于建模严格的语义相关性(如TransE[1]和TransR[12]假设头+关系=尾),更适合KG补全和链接预测等图内应用,而不是推荐。 一种常见的方法是设计一种图算法来利用图结构! 也就是在图上传播信息,原始的基于图的在于手工建立meta-path/meta-graph,之后是建立某种规则来建立meta-path/meta-graph; RippleNet虽然可以有效在KG中传播user preference,探索它们的层次兴趣,但是由于关系矩阵 R R R没有得到很好的训练,关系的重要性被弱化了! 同时,随着KG的增大,ripple set的multi-hop的大小变得不可预测,这将导致大量的计算和存储开销。

KGCN的核心思想是在计算给定实体在KG中的表示时,对带有偏差的邻域信息进行聚合和合并,这样的设计有两个优点:(1)通过邻域聚合,local proximity structure(局部邻近结构)被成功捕获并存在每个实体里。(2)邻居的权重取决于连接关系和特定用户的得分,体现了KG的语义信息和用户的个性化兴趣; 同时由于邻居的大小是变化的,因此我们会选择固定大小领域作为接收域!

2 RELATED WORK

GCN可分为光谱方法和非光谱方法。谱方法在谱空间中表示图并进行卷积。相比之下,非谱方法直接对原始图进行操作,并为节点组定义卷积。

我们的方法也连接到PinSage[21]和GAT[15]。但请注意,PinSage和GAT都是为齐次图设计的。我们的主要贡献就是在异构图的推荐系统上提供新视角。

3 KNOWLEDGE GRAPH CONVOLUTIONAL NETWORKS

常规的定义:
用户:
在这里插入图片描述
item:
在这里插入图片描述在这里插入图片描述
交互矩阵:
在这里插入图片描述
三元组:
在这里插入图片描述
目标:
在这里插入图片描述

3.2 KGCN Layer

下面我们考虑单个KGCN层:
先用r和u来计算出该r对u的重要性; 同时r连接了v, 那么v对u的特征汇聚就好求了。 该关系也就表明了u对v的兴趣!

我们考虑user u和item v的候选对,我们使用 N ( v ) \mathcal{N}(v) N(v)表明了直接和 v v v相连的实体的集合, r e i , r e j r_{e_i},r_{e_j} reirej表明了两个实体之间的关系。

  1. 首先:我们也会使用一个函数 R d × R d − > R \mathbb{R}^d \times \mathbb{R}^d -> \mathbb{R} Rd×Rd>R(比如内积)来计算一个user和一个relation之间的分数:
    在这里插入图片描述
    在这里插入图片描述
    关系的意思就是说一个人喜欢看该电影是因为明星,但是另一个人看该电影却是为了导演

  2. 同理, 为了描述item v的拓扑邻近结构,我们计算v的邻居的线性组合
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    其中 e \mathrm{e} e表示了实体 e e e的表示

User-relation scores充当了个性化的过滤器在计算v的邻居的线性组合时。

  1. 设计邻居大小
    因为在真实世界中,一个实体的邻居在不同的实体之间是大不相同的!为了保证每批计算模式固定和更有效,我们只取固定大小的邻居,而不是全部。 具体的,我们取实体 v v v的邻居表示为 v S ( v ) u v_{S_{(v)}}^u vS(v)u,其中 S ( v ) ≜ { e ∣ e ∼ N ( v ) } \mathcal{S}(v) \triangleq\{e \mid e \sim \mathcal{N}(v)\} S(v){eeN(v)},并且 ∣ S ( v ) ∣ = K \left | \mathcal{S}(v) \right | = K S(v)=K是固定的,因此呢 S ( v ) S(v) S(v)也被称为是实体 v v v的接受野!!! 下图左侧就是一个layer-2的实例,其中K设置为2,中心实体是蓝色的,被选中的邻居是绿色的!注意是从外侧向里的聚合的!

在这里插入图片描述

  1. 聚合实体表示和其邻居表示为单一向量 R d × R d − > R d \mathbb{R}^d \times \mathbb{R}^d -> \mathbb{R}^d Rd×Rd>Rd
  • Sum aggregator 取两个表示向量的和,然后进行非线性变换:
    在这里插入图片描述

  • Concat aggregator在进行非线性变换之前,先将两个表示向量连接起来:
    在这里插入图片描述

  • Neighbor aggregator 直接取实体的邻域表示作为输出表示:
    在这里插入图片描述
    我们将在实验中评估三种聚合器!

3.3 学习算法

high-order: 就是多层邻居,或者说multi-layer; 而一个high-oder表示是它自身和它的邻居的初始表示的混合!

H H H表明了感受野的最大的深度(或者说是迭代的次数),后缀[h]表示是 h h h-order。对于一个user-item对 ( u , v ) (u,v) (uv),我们首先以逐层迭代的方式计算 v v v的感受野 M M M,这里 M [ i ] M[i] M[i]就表示了 v v v第i阶的所有实体!!可以想象成字典,每个key值下有多个点 (line 3, 13-19),然后聚合重复 H H H次 (line 5),在迭代h中,我们计算每个实体的邻域表示 e ∈ M [ h ] , 也 就 是 求 每 个 邻 居 实 体 的 嵌 入 e \in M[h],也就是求每个邻居实体的嵌入 eM[h](line 7),然后用它自己的表示 e u [ h − 1 ] \mathrm{e}^u[h-1] eu[h1]来聚合得到下一次迭代中使用的值,因为我们每个实体表示都是由本身和其邻居的聚合表示的(line 8),最后的h阶实体表示表示为 v u \mathrm{v}^u vu(line 9),最终放到一个得分函数中:
在这里插入图片描述
为了提高计算效率,我们在训练过程中使用了负采样策略。完全损失函数为:

4 EXPERIMENTS

Experiment Setup

Results

在这里插入图片描述

会发现如下结论:

  • KGCN更适应于稀疏矩阵
  • KG-free基线SVD、LibFM比KG-aware基线PER和CKE效果更好,表明了PER和CKE没有充分利用手工设计的metapath和TransR-
    like regularization
  • LibFM + TransE是比LibFM更好,说明KGE的重要性
  • PER最差,因为在现实中很难定义最优元路径
  • RippleNet表现更好,因为也用了邻居!

而且发现KGCN-sum是综合最好的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结和未来的方向

我们指出了未来工作的三个途径。
(1)在这项工作中,我们一致地从一个实体的邻居中取样,以构建其接受域。探索非均匀采样器(如重要采样)是今后工作的一个重要方向。
(2)本文(以及所有文献)关注于item-end KGs的建模,未来工作的一个有趣方向是研究利用user-end KGs是否有助于提高推荐性能。
(3)设计一种能很好地组合两端KGs的算法也是一个很有前途的方向。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值