R-GCN论文阅读笔记

GCN

Kipf and Welling 2017 基于局部图领域的图卷积网络模型
在这里插入图片描述
公式拆解
在这里插入图片描述
存在问题在这里插入图片描述

R-GCN

图神经网络GNN:

h i l + 1 = σ ( ∑ m ∈ M i g m ( h i l , h j l ) ) ( 1 ) h_i^{l+1} = σ(\sum_{m∈M_i}g_m(h_i^l,h_j^l))\quad(1) hil+1=σ(mMigm(hil,hjl))(1)

h i l h_i^l hil是节点i在神经网络l层的隐藏状态
激活函数σ(·) 可以是 R e L U ( ⋅ ) = m a x ( 0 , ⋅ ) 2 ReLU(·) = max(0, ·)^2 ReLU()=max(0,⋅)2
M i M_i Mi表示节点 v i v_i vi的入边和入节点的集合
g m ( ⋅ , ⋅ ) g_m(·, ·) gm(⋅,⋅)可以是简单的线性变换 g m ( h i , h j ) = W h j g_m(h_i, h_j) = W h_j gm(hi,hj)=Whj(和GCN设置一样)

改进后的R-GCN基于GCN的聚合领域节点的基础上,又增加了一个聚合关系的维度,使得节点的聚合操作变成一个双重聚合的过程,其公式如下:
h i l + 1 = σ ( ∑ r ∈ R ∑ j ∈ N i r 1 c i , r × W r l h j l + W 0 l h i l ) ( 2 ) h_i^{l+1} = σ(\sum_{r∈R}\sum_{j∈N^r_i} \frac{1}{c_{i,r}} \times W^l_r h^l_j + W_0^l h^l_i) \quad(2) hil+1=σ(rRjNirci,r1×Wrlhjl+W0lhil)(2)

N i r N^r_i Nir是节点i在关系r下的邻居节点的集合索引
c i , r c_{i,r} ci,r是特定关系下的归一化常数,本文设置为 ∣ N i r ∣ |N^r_i | Nir
公式(2)通过求邻居节点的特征向量归一化后求和,再加上通往自身节点的self-loop来完成每一层的forward。

R-GCN单个节点的更新如图所示
在这里插入图片描述

Regularization 正则化

将公式(2)应用于高度多关系数据的一个核心问题是,随着图中关系的数量,参数的数量迅速增长。在实践中,这很容易导致在罕见的关系和非常大的模型上过拟合。
为了解决此问题,本文提出了两种R-GCN每一层权重矩阵 W r l W_r^l Wrl的分解方式。
(1)基分解
W r l = ∑ b = 1 B a r b l × V b l , ( 3 ) W^l_r =\sum^B_{b=1} a^l_{rb} \times V^l_b ,\quad(3) Wrl=b=1Barbl×Vbl,(3)

也就是,取基础转换矩阵(共享) V b l ∈ R d ( l + 1 ) × d ( l ) V^l_b ∈ R^{d(l+1)×d(l)} VblRd(l+1)×d(l)和系数为 a r b l a^l_{rb} arbl完成基分解的线性组合, a r b l a^l_{rb} arbl是只依赖于关系r。
通过上式的基分解,我们将 W r W_r Wr 变成了一组基 V b l V^l_b Vbl的线性加和。其次,基 V b V_b Vb的优化是所有的常见或者不常见关系所共享的,这种共享的优化参数可以有效防止非常见关系上过拟合现象的出现。

(2)块对角分解
在这里插入图片描述

每个线性转换函数都是通过一组低维矩阵 Q b r l Q^l_{br} Qbrl 的和来定义, W r l W^l_r Wrl d i a g ( Q 1 r l , . . . , Q b r l ) diag(Q^l_{1r} , . . . , Q ^l_{br}) diag(Q1rl,...,Qbrl)组成。

基函数分解(3)可以看作是不同关系类型之间的有效权值共享形式,而块对角分解(4)可以看作是对每种关系类型的权值矩阵的稀疏性约束。块对角分解结构编码了一种直觉,即潜在的特征可以被分为一组变量,这些变量在组内比在组间耦合更紧密。这两种分解都可以减少了高度多关系数据(如现实的知识库)需要学习的参数数量。

Two fundamental SRL tasks

图卷积网络在统计关系学习中的两大任务——实体分类Entity classification和链接预测Link prediction
在这里插入图片描述

Entity classification

在处理节点(实体)的[半]监督分类任务中,每个节点重复地堆叠R-GCN的传播公式(2),节点在每一层的最后输出应用一个softmax(.)激活函数将每个节点映射到0~1的概率上,以便最小化所有标记节点的交叉熵损失(同时忽略未标记节点)。

L = − ∑ i ∈ Y ∑ k = 1 K t i k I n h i L k , ( 5 ) L = -\sum_{i∈Y}\sum^K_{k=1} t_{ik} Inh^L_ik,\quad(5) L=iYk=1KtikInhiLk,(5)
其中Y是带有标签的节点索引集, h i L k h^L_ik hiLk是第i个标记节点的l层网络输出的第k个条目。 t i k t_{ik} tik表示其各自的真实的标签。
在这里插入图片描述

Link prediction

链接预测处理的是未知三元组(subject主语, relation关系, object谓语)是否存在于真实知识库中的问题。通常知识库由一个有向的有标记的图集合G = (V, E, R)表示。

链接预测的任务是为可能的边(s, r, o)分配分数f(s, r, o),以确定这些边属于E的可能性有多大。

为了解决这个问题,就要对该三元组(s, r, o)中的s和r节点进行编码,使用R-GCN即可(decoder)。得到两个节点后,重新构建边,判断重构的边是否属于E集合。

可以使用DistMult这样的评分函数(解码器)完成这个解码任务,也就是说,图形自动编码器模型通过一个函数s : 将 R d × R × R d → R 将R^d × R × R^d → R Rd×R×RdR,完成对三元组(s,r,o)的评分。

传统的链接预测做法也是用三元组的框架,但是它们的主谓节点 v i ∈ V v_i∈V viV使用的是单个优化的实值向量 e i e_i ei。但本模型通过R-GCN的编码器使得节点考虑到其邻居节点的影响, e i = h i L e_i = h^L_i ei=hiL,比直接使用"孤立"的节点具有更丰富的信息。

DistMult因式分解 (Y ang et al. 2014;Trouillon et al. 2016)
f ( s , r , o ) = e s T × R r × e o . ( 6 ) f(s, r, o) = e^T_s \times R_r \times e_o .\quad(6) f(s,r,o)=esT×Rr×eo.(6)

本文用负抽样来训练模型:对于每个观察到的例子,我们抽样ω个负样本:通过随机破坏每个正面例子的主体或客体进行抽样。然后对交叉熵损失进行优化,以推动模型获得比负值高三倍的可观察值,优化的交叉熵损失如下:

L = − 1 ( 1 + ω ) ∣ E ∣ ˆ ∑ ( s , r , o , y ) ∈ T y × l o g ( l × f ( s , r , o ) ) + ( 1 − y ) l o g ( 1 − l × f ( s , r , o ) ) , ( 7 ) L = − \frac{1}{(1 + ω)|E|^ˆ} \sum_{(s,r,o,y)∈T}y \times log(l \times f(s, r, o))+(1 − y) log(1 − l \times f(s, r, o)) ,\quad(7) L=(1+ω)Eˆ1(s,r,o,y)Ty×log(l×f(s,r,o))+(1y)log(1l×f(s,r,o)),(7)

其中T是真实的和被破坏的三元组的总集合。l是logistic sigmoid函数,y是一个指标,对于正的三元组设置为y = 1,对于负的三元组设置为y = 0。这是因为对多分类任务中的每一类单独分析的话,真实分布P是一个二项分布,可能的取值为0或者1,而网络预测的分布Q可以理解为标签是1的概率。
多标签分类任务中的一类任务来看,交叉熵损失函数为:
在这里插入图片描述

SHIFT-GCN 是一种改进版的图卷积网络 (Graph Convolutional Network, GCN),其主要目标是优化传统 GCN 的计算效率并提升模型性能。以下是关于 SHIFT-GCN 和相关研究的一些重要信息: ### SHIFT-GCN 的核心概念 SHIFT-GCN 提出了通过移位操作来减少参数数量和提高计算效率的方法[^2]。这种方法的核心思想在于利用节点特征的空间结构特性,从而避免直接学习复杂的权重矩阵。具体来说,它通过对输入特征应用简单的移位操作(shift operation),使得模型能够在保持高表达能力的同时降低计算复杂度。 #### 关键技术特点 - **移位机制**:相比于传统的 GCN 中需要大量可训练参数的线性变换,SHIFT-GCN 使用固定的移位操作替代部分参数化层,显著减少了内存占用和计算开销。 - **高效推理**:由于引入了稀疏性和局部连接策略,该架构非常适合大规模图数据上的快速推理任务。 - **理论支持**:作者提供了严格的数学证明表明这种简化不会损害原始 GCN 的表示能力[^3]。 ```python import torch from torch_geometric.nn import ShiftGCNConv class Net(torch.nn.Module): def __init__(self, num_features, hidden_channels, num_classes): super(Net, self).__init__() self.conv1 = ShiftGCNConv(num_features, hidden_channels) self.conv2 = ShiftGCNConv(hidden_channels, num_classes) def forward(self, data): x, edge_index = data.x, data.edge_index x = self.conv1(x, edge_index).relu() x = self.conv2(x, edge_index) return x ``` 上述代码片段展示了如何基于 PyTorch Geometric 实现一个基本版本的 SHIFT-GCN 模型[^4]。 ### 进一步阅读建议 对于更深入的理解,可以查阅以下资源: 1. 原始论文《Semi-Supervised Classification with Graph Convolutional Networks》提供了一个良好的背景介绍以及基础方法论框架[^1]。 2. 论文《Shift Graph Neural Networks for Scalable Representation Learning》,这是有关于 SHIFT-GCN 架构最权威的第一手资料[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值