暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

图神经网络中半监督分类的一些涨点技巧

379

本文作者:Yangkun Wang

文章来源:https://cf020031308.github.io/papers/2021-bag-of-tricks-of-semi-supervised-classification-with-graph-neural-networks/

这篇文章总结了三个广泛用于图神经网络节点分类任务的涨点技巧,例如在 OGB 榜单中可见到不少模型使用了 Label Reuse。

## 0. DropEdge

是另一篇文章中提出的,类似神经网络中的 Dropout,将图网络中的边随机去掉一些,以避免过拟合和过度平滑。在这篇文章里只引用了一下这个方法。

## 1. Label Usage

主流的基于深度学习的研究都是端到端的模式,标签信息只用来计算损失函数,目前已有一些方法将标签信息也利用起来作为模型输入的一部分,以获得更好的结果。如 C&S。

这些方法通常是结合 GNN 和 LPA(标签传播算法),但 LPA 基于相邻相似的假设,不一定是最优的。

这篇文章总结的 Label Usage 包含两部分:

  1. Lable as Input. 将训练数据中的标签分出一部分来(one-hot 向量),与特征拼接作为输入(没有标签信息的地方全 0,这些位置下面还要用到)。剩下的没有输入标签的仍作为训练数据;

  2. Label Reuse. 用上一步训练好的模型迭代若干步,在每一次迭代中,将输出的预测软标签赋给最初没有标签信息的位置(论文是这些位置全部放预测软标签,看 ogbn-arxiv
    的有些实现中有监督数据的位置还是用真实硬标签)。

Label Usage


  • Label as Input 阶段可以看作学习一个模型,能根据其它节点的特征和标签、中心节点的特征,来预测中心节点的标签,这比传统端到端的模式有更多的可利用信息(其它节点的标签)。

  • Label Reuse 阶段类似 LPA,通过一定的迭代步数不断更新标签的预测值,但不受限于 LPA 相邻相似的假设。

## 2. Logarithmic Cross Entropy

对数交叉熵 LCE 定义为交叉熵加 的对数:
二分类且当 时有 ,其中 z 是预测的 logits,z = 0 就是预测的分界(decision border),因此此时损失函数的导数达到最大。如下图:
Logarithmic Cross Entropy
所以使用 LCE 替代 CE 分类效果可能更好,另外从图中可以看出,LCE 对于异常值也更健壮。

## 3. Linear: GCN 和 GAT 的架构改进

原版的 GCN 是这样:
为了克服过度平滑问题,在其中加了个线性变换,以更多地保留中心节点的信息。
GAT 也一样的,算 时邻接矩阵换成注意力加权的矩阵即可。

文章转载自深度学习与图网络,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论