当前位置:网站首页>【GCN】《Adaptive Propagation Graph Convolutional Network》(TNNLS 2020)
【GCN】《Adaptive Propagation Graph Convolutional Network》(TNNLS 2020)
2022-07-25 11:11:00 【chad_lee】
《Adaptive Propagation Graph Convolutional Network》(TNNLS 2020)
为每个节点赋予一个停止单元,该单元输出一个值控制Propagation是否应该继续进行下一跳。聚合时停止单元的输出值就是聚合每跳的权重。可以理解成为每个节点找到自己的感受野。
首先节点的特征先经过一个MLP变成embedding,这就是Propagation的起点,然后开始递归的Propagation:
z i 0 = z i z i 1 = propagate ( { z j 0 ∣ j ∈ N i } ) z i 2 = propagate ( { z j 1 ∣ j ∈ N i } ) . . . . . . \begin{aligned} &\mathbf{z}_{i}^{0}=\mathbf{z}_{i}\\ &\mathbf{z}_{i}^{1}=\operatorname{propagate}\left(\left\{\mathbf{z}_{j}^{0} \mid j \in \mathcal{N}_{i}\right\}\right)\\ &\mathbf{z}_{i}^{2}=\operatorname{propagate}\left(\left\{\mathbf{z}_{j}^{1} \mid j \in \mathcal{N}_{i}\right\}\right) \\ &...... \end{aligned} zi0=zizi1=propagate({ zj0∣j∈Ni})zi2=propagate({ zj1∣j∈Ni})......
传播的步数应该由每个节点自身决定的,因此给每个节点附加一个线性二分类器作为传播过程的“停止单元”。经过k次迭代传播后的输出:
h i k = σ ( Q z i k + q ) h_{i}^{k}=\sigma\left(\mathbf{Q} \mathbf{z}_{i}^{k}+q\right) hik=σ(Qzik+q)
其中 Q , q Q,q Q,q 是训练参数, h i k h_{i}^{k} hik 是该节点当前迭代应该停止的概率(0~1)。为了确保传播步数合理,有两个技巧:规定一个最大步数 T T T;用halting values的加和来定义Propagation的边界:
K i = min { k ′ : ∑ k = 1 k ′ h i k > = 1 − ϵ } K_{i}=\min \left\{k^{\prime}: \sum_{k=1}^{k^{\prime}} h_{i}^{k}>=1-\epsilon\right\} Ki=min⎩⎨⎧k′:k=1∑k′hik>=1−ϵ⎭⎬⎫
其中 ϵ \epsilon ϵ 是通常设置为一个很小的值0.01,保证传播一次之后也可以终止。对于节点 i 的第 k 轮迭代,当 k = K i k=K_{i} k=Ki 时Propagation停止。
节点 i 每一次迭代的停止概率为:
p i k = { R i = 1 − ∑ k = 1 K i − 1 h i k , if k = K i or k = T ∑ k = 1 K i h i k , otherwise. p_{i}^{k}= \begin{cases}R_{i}=1-\sum_{k=1}^{K_{i}-1} h_{i}^{k}, & \text { if } k=K_{i} \text { or } k=T \\ \sum_{k=1}^{K_{i}} h_{i}^{k}, & \text { otherwise. }\end{cases} pik={ Ri=1−∑k=1Ki−1hik,∑k=1Kihik, if k=Ki or k=T otherwise.
很自然的可以用它来作为节点聚合每层embedding的权重:
z ^ i = 1 K i ∑ k = 1 K i p i k z i k + ( 1 − p i k ) z i k − 1 \widehat{\mathbf{z}}_{i}=\frac{1}{K_{i}} \sum_{k=1}^{K_{i}} p_{i}^{k} \mathbf{z}_{i}^{k}+\left(1-p_{i}^{k}\right) \mathbf{z}_{i}^{k-1} zi=Ki1k=1∑Kipikzik+(1−pik)zik−1
还定义了节点 i 的 propagation cost:
S i = K i + R i \mathcal{S}_{i}=K_{i}+R_{i} Si=Ki+Ri
最终loss有监督信号和惩罚正则化项构成:
L ^ = L + α ∑ i ∈ V S i \widehat{\mathcal{L}}=\mathcal{L}+\alpha \sum_{i \in \mathcal{V}} \mathcal{S}_{i} L=L+αi∈V∑Si
这个惩罚项控制了信息在图上传播的“难以程度”。每5个step优化一次惩罚项。
AP-GCN学出的停止步数分布。看起来符合直觉:稀疏的图感受野一般更大,稠密的图一般只聚合1~2阶邻居。
边栏推荐
- 擎创科技加入龙蜥社区,共建智能运维平台新生态
- Intelligent information retrieval(智能信息检索综述)
- Objects in JS
- W5500多节点连接
- brpc源码解析(八)—— 基础类EventDispatcher详解
- The applet image cannot display Base64 pictures. The solution is valid
- 11. Reading rumors spread with deep learning
- [high concurrency] I summarized the best learning route of concurrent programming with 10 diagrams!! (recommended Collection)
- The JSP specification requires that an attribute name is preceded by whitespace
- 【MySQL 17】安装异常:Could not open file ‘/var/log/mysql/mysqld.log‘ for error logging: Permission denied
猜你喜欢

【Debias】Model-Agnostic Counterfactual Reasoning for Eliminating Popularity Bias in RS(KDD‘21)

对比学习的应用(LCGNN,VideoMoCo,GraphCL,XMC-GAN)

异构图神经网络用于推荐系统问题(ACKRec,HFGN)

Meta-learning(元学习与少样本学习)

Multi-Label Image Classification(多标签图像分类)

PHP curl post x-www-form-urlencoded

return 和 finally的执行顺序 ?各位大佬请看过来,

Power BI----这几个技能让报表更具“逼格“

pycharm连接远程服务器ssh -u 报错:No such file or directory

11. Reading rumors spread with deep learning
随机推荐
【高并发】高并发场景下一种比读写锁更快的锁,看完我彻底折服了!!(建议收藏)
教你如何通过MCU将S2E配置为UDP的工作模式
对比学习的应用(LCGNN,VideoMoCo,GraphCL,XMC-GAN)
Brpc source code analysis (VI) -- detailed explanation of basic socket
JS process control
Review in the middle of 2022 | understand the latest progress of pre training model
【GCN-CTR】DC-GNN: Decoupled GNN for Improving and Accelerating Large-Scale E-commerce Retrieval WWW22
知识图谱用于推荐系统问题(MVIN,KERL,CKAN,KRED,GAEAT)
JS operator
【GCN-RS】Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for RS (SIGIR‘22)
Go 垃圾回收器指南
Classification parameter stack of JS common built-in object data types
Pycharm connects to the remote server SSH -u reports an error: no such file or directory
There is no sound output problem in the headphone jack on the front panel of MSI motherboard [solved]
一文入门Redis
Varest blueprint settings JSON
Transformer变体(Sparse Transformer,Longformer,Switch Transformer)
什么是全局事件总线?
Differences in usage between tostring() and new string()
The first C language program (starting from Hello World)