题目: 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,探索它们的层次兴趣,但是由于关系矩阵 RRR没有得到很好的训练,关系的重要性被弱化了! 同时,随着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)表明了直接和vvv相连的实体的集合,rei,rejr_{e_i},r_{e_j}rei​​,rej​​表明了两个实体之间的关系。

  1. 首先:我们也会使用一个函数Rd×Rd−>R\mathbb{R}^d \times \mathbb{R}^d -> \mathbb{R}Rd×Rd−>R(比如内积)来计算一个user和一个relation之间的分数:


    关系的意思就是说一个人喜欢看该电影是因为明星,但是另一个人看该电影却是为了导演

  2. 同理, 为了描述item v的拓扑邻近结构,我们计算v的邻居的线性组合



    其中e\mathrm{e}e表示了实体eee的表示

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

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

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

  • Concat aggregator在进行非线性变换之前,先将两个表示向量连接起来:

  • Neighbor aggregator 直接取实体的邻域表示作为输出表示:

    我们将在实验中评估三种聚合器!

3.3 学习算法

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

HHH表明了感受野的最大的深度(或者说是迭代的次数),后缀[h]表示是hhh-order。对于一个user-item对(u,v)(u,v)(u,v),我们首先以逐层迭代的方式计算vvv的感受野MMM,这里M[i]M[i]M[i]就表示了vvv第i阶的所有实体!!可以想象成字典,每个key值下有多个点 (line 3, 13-19),然后聚合重复HHH次 (line 5),在迭代h中,我们计算每个实体的邻域表示e∈M[h],也就是求每个邻居实体的嵌入e \in M[h],也就是求每个邻居实体的嵌入e∈M[h],也就是求每个邻居实体的嵌入(line 7),然后用它自己的表示eu[h−1]\mathrm{e}^u[h-1]eu[h−1]来聚合得到下一次迭代中使用的值,因为我们每个实体表示都是由本身和其邻居的聚合表示的(line 8),最后的h阶实体表示表示为vu\mathrm{v}^uvu(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的算法也是一个很有前途的方向。

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

  1. 论文阅读 Modeling Relational Data with Graph Convolutional Networks

    Modeling Relational Data with Graph Convolutional Networks 使用图卷积网络建模关系数据 发表于 [stat.ML] 26 Oct 2017 摘 ...

  2. Knowledge Graph Convolutional Networks for Recommender Systems with Label Smoothness Regularization

    标签平滑正则化推荐系统的知识图卷积网络 . 摘要 1. 介绍 2. 现有工作 3. 问题表述 4. 我们的方法:KGCN-LS 4.1 图卷积神经网络 4.2 讨论 4.3 标签平滑正则化 4.4 小 ...

  3. 论文阅读笔记:MGAT: Multi-view Graph Attention Networks

    论文阅读笔记:MGAT: Multi-view Graph Attention Networks 文章目录 论文阅读笔记:MGAT: Multi-view Graph Attention Networ ...

  4. 【论文翻译】GCN-Semi-Supervised Classification with Graph Convolutional Networks(ICLR)

    学习总结 传统深度学习模型如 LSTM 和 CNN在欧式空间中表现不俗,却无法直接应用在非欧式数据上.因此大佬们通过引入图论中抽象意义上的"图"来表示非欧式空间中的结构化数据,并通 ...

  5. 知识图谱论文阅读(二十)【WWW2020】Heterogeneous Graph Transformer

    题目: Heterogeneous Graph Transformer 论文链接: https://arxiv.org/abs/2003.01332 代码链接:https://github.com/a ...

  6. 知识图谱论文阅读(二十三)【SIGIR2020】Multi-behavior Recommendation with Graph Convolutional Networks

    题目: Multi-behavior Recommendation with Graph Convolutional Networks 论文地址: 论文代码: 想法 将相同行为的交互方式进行了聚合来计 ...

  7. 综述论文阅读”A comprehensive survey on graph neural networks“(TNNLS2020)

    论文标题 A comprehensive survey on graph neural networks 论文作者.链接 作者:Wu, Zonghan and Pan, Shirui and Chen ...

  8. 论文阅读”Multigraph Fusion for Dynamic Graph Convolutional Network“(TNNLS2022)

    论文标题 Multigraph Fusion for Dynamic Graph Convolutional Network 论文作者.链接 作者: Gan, Jiangzhang and Hu, R ...

  9. 论文笔记:Semi-Supervised Classification with Graph Convolutional Networks

    Semi-Supervised Classification with Graph Convolutional Networks 1.四个问题 要解决什么问题? 半监督任务.给定一个图,其中一部节点已 ...

最新文章

  1. 一些关键字表明变量属性值
  2. [转载]项目风险管理七种武器-霸王枪
  3. libevent编程疑难解答
  4. Django构建简介
  5. python文件操作笔记
  6. day08.4-samba共享网盘服务
  7. LOJ 2312(洛谷 3733) 「HAOI2017」八纵八横——线段树分治+线性基+bitset
  8. 第三次握手为什么没有序列号_TCP三次握手机制-深入浅出(实例演示)
  9. b站 前端构架_技术干货:哔哩哔哩(B站)功能框架图
  10. Elasticsearch学习--elasticsearch介绍与安装
  11. 七周成为数据分析师教程
  12. HTML5作业:实现小米官网静态首页
  13. 8分钟腹肌锻炼日志(第20天)过冬ing
  14. 微信公众号网页分享功能开发
  15. 2022全国视力防控展,中国爱眼教育大会
  16. 1354:括弧匹配检验(C C++)
  17. java方法案例:判断整数是奇数还是偶数
  18. 黑苹果10.10.3手动开启SSD的TIRM提高硬盘效率
  19. IC卡、ID卡、M1卡、射频卡的区别是什么
  20. 电脑开机时自动开启小键盘

热门文章

  1. loadrunner11安装,提示少了Microsoft Visual c++2005 sp1运行时组件解决办法
  2. 分页查询千万级数据慢
  3. B. Code For 1 一个类似于线段树的东西
  4. caffe各种依赖包配置
  5. [Leetcode]@python 107. Binary Tree Level Order Traversal II
  6. 手脱ACProtect V1.4X(有Stolen Code)之补区段
  7. 个人编程思想理解的片段(主要是面向对象的,参考了许多人的观点,还不成熟,没形成系统,请大家多指点)...
  8. jsp 连接MS server 数据库的例子
  9. 从文件中读取数据,排序之后输出到另一个文件中
  10. 没有串口,如何打印单片机调试信息?