graphSAGE/Inductive Representation Learning on Large Graphs

本文探讨了图神经网络(GNN)如何通过邻居节点进行无监督学习,以生成节点的emb表示。即使对于未见过的节点,也能通过学习其邻居节点来获取emb。算法包括节点emb初始化、更新及归一化。实验部分展示了在节点分类任务上的应用,使用了不同的aggregator(如mean, LSTM, pooling)并在多个数据集上进行了对比。损失函数包括无监督损失和交叉熵损失,评估指标为F1分数。
摘要由CSDN通过智能技术生成

文章目录

总结

通过邻居节点,计算节点emb,可以无监督学习

细节

对于unseen的节点也能产出emb,主要是通过对邻居节点的学习

计算节点emb的算法步骤
在这里插入图片描述

  1. 节点emb初始化
  2. 计算节点v的邻居节点emb: h N ( v ) k ← AGGREGATE k ( { h u k − 1 , ∀ u ∈ N ( v ) } ) h_{\mathcal{N}(v)}^k \leftarrow \text{AGGREGATE}_k(\{ h_u^{k-1}, \forall u \in \mathcal{N}(v) \}) hN(v)kAGGREGATEk({huk1,uN(v)})
  3. 更新节点v的emb: h v k ← σ ( W k ⋅ CONCATE ( h v k − 1 , h N ( v ) k ) ) h_v^k \leftarrow \sigma(\bold{W}^k \cdot \text{CONCATE}(h_v^{k-1}, h_{\mathcal{N}(v)}^k)) hvkσ(WkCONCATE(hvk1,hN(v)k))
  4. emb归一化

上述算法可以延伸到mini-batch用法上
在这里插入图片描述
计算loss,尽量让相邻的节点有相似的emb,距离远的节点emb不同,loss如下:
J G ( z u ) = − log ⁡ ( σ ( z u T z v ) ) − Q ⋅ E v n ∼ P n ( v ) log ⁡ ( σ ( − z u T z v n ) ) J_\mathcal{G}(\bold z_u) = -\log(\sigma(\bold z_u^T \bold z_v)) - Q \cdot \mathbb E_{v_n \sim P_n(v)}\log(\sigma(- \bold z_u^T \bold z_{v_n})) JG(zu)=log(σ(zuTzv))QEvnPn(v)log(σ(zuTzvn))
其中:

  1. z v \bold z_v zv是节点u一个邻居节点
  2. P n P_n Pn是negative sampling
  3. Q Q Q是negative samples的数量
  4. z u \bold z_u zu不是从emb table中读出来的,而是从邻居节点的emb中计算出来的

图不像nlp/cv,邻居节点之间是无序的。因此理想的aggregator应该是对称的(对输入的各种排列结果,输出不变)

3个aggregator:mean aggregator(去掉concate),lstm aggregator(对输入顺序敏感,因此输入是一个random permutation),pooling aggregator(max-pooling)

实验

实验类别:节点分类,3个dataset(citation、reddit、ppi)
baseline:random classifier,lr,deepwalk,deepwalk+random emb拼接
loss函数:unsupervised loss如上,以及cross-entropy as supervised loss
评估指标:f1
实验结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值