GraphMAE:自监督掩码图自编码器

论文标题:GraphMAE: Self-Supervised Masked Graph Autoencoders
论文链接:https://arxiv.org/abs/2205.10803
论文来源:KDD 2022
代码链接:https://github.com/THUDM/GraphMAE

一、概述

自监督学习(Self-supervised learning, SSL)通常分为生成式学习和对比学习。目前图领域的自监督学习以对比学习的方法为主,尤其是在图分类和节点分类任务上。对比学习的方法建立在复杂的训练策略上,并且依赖于高质量的数据增强。一些以重构输入图为目标的生成式学习方法虽然具备简单的形式,但是近来的一些尝试仍然落后于对比学习方法,尤其在图与节点分类任务上更是如此。本文认为目前的一些图自编码器方法(Graph Autoencoder, GAE)面临以下四个问题,虽然一些问题解决了其中的一两个,但是没有一个方法将这个四个问题作为一个整体来对待:
①结构信息被过分强调了,大多数GAE方法以连接重构(link reconstruction)来作为目标,因此之前的GAE方法在连接预测和节点聚类任务上很擅长,但是在图和节点分类任务上性能一般;
②没有进行破坏(corruption)的特征重构可能是不够健壮的(robust),对于GAE方法,很多利用图的原生特征,这有产生平凡解的风险;
③MSE损失可能是敏感的和不稳定的,各种特征向量标准化以及维度灾难会对MSE损失造成不良影响,因此可能会导致训练过程的崩溃;
④decoder的表达能力不足,大多数GAE方法使用MLP作为其decoder,在语言中的目标很多是包含丰富信息的one-hot向量,而在图数据上大多是信息量较少的特征向量,因此简单的MLP可能是不能胜任的。

GraphMAE致力于解决上面的各个问题,主要包括以下关键的部分:
①Masked feature reconstruction,GraphMAE不同于大多数方法的结构重构,而采用应用mask的特征重构,实验表明,在适当的损失设计下,mask特征重构可以大大有利于GAE;
②Scaled cosine error,GraphMAE没有采用MSE损失,而是使用cosine error,当特征向量的数量级不同时是有益的,在此基础上GraphMAE又设计了scaled cosine error来解决重构时难易样本的不平衡问题;
③Re-mask decoding,GraphMAE采用了一种re-mask decoding策略,也就是re-mask其被mask节点的encoder输出embedding,然后再输入给decoder;
④另外,GraphMAE采用更具表达能力的GNN作为其decoder。

下图对比了不同的GAE方法,以及列举了上述各个不同设计对模型性能的影响:

对比

二、方法

  1. 问题描述

简要来说,自编码器通常包含encoder、code(隐状态)和decoder。Encoder将输入数据映射成code,而decoder在重构损失的指导下来重构输入数据。对于图自编码器可以用以下的方式来定义。

使用\mathcal{G}=(V,A,X)来表示一个图,V是节点集合,N=|V|是节点数量,A\in \left \{0,1\right \}^{N\times N}是邻接矩阵,X\in \mathbb{R}^{N\times d}是节点特征矩阵。另外,f_E是图encoder,f_D是图decoder,H\in \mathbb{R}^{N\times d_{h}}表示从encoder得到的code,GAE的目标也就是重构\mathcal{G}

H=f_{E}(A,X),\mathcal{G}^{'}=f_{D}(A,H)

\mathcal{G}^{'}即是重构的图,可以是重构的特征或者结构或者两者都有。

  1. 框架

下图展示了本文提出的GraphMAE的大体框架:

GraphMAE

对于f_Ef_D,可以是任意类型的GNN,比如GCN、GAT或者GIN。不同的任务可能更加适应不同的encoder架构,例如GAT更加适合节点分类任务,而GIN更加适合图级任务。

  1. GraphMAE的关键设计

GraphMAE的设计主要回答以下四个问题:
①Q1:在GAE中重构什么?
②Q2:如何训练健壮的GAE以避免平凡解?
③Q3:如何安排GAE的decoder?
④Q4:使用什么样的损失函数来进行重构?

  • Q1:使用特征重构作为目标

给定一个图\mathcal{G}=(V,A,X),GAE可以以重构结构或者特征来作为目标。以往的GAE关注连接预测和图聚类任务,因此选择重构A,也有些方法同时重构AX,不过在节点和图分类任务上效果并不理想。

  • Q2:mask特征重构

当code的维度比特征维度高时,自编码器容易学习到一个恒等函数(也就是平凡解)。相对来说,在CV领域这个问题并不常见,这是因为图像的维度相对较高,而在图领域,节点特征维度通常较小。现有的一些GAE方法很多忽略了这个问题。

去噪自编码器是一种对输入数据进行破坏的方法,是一种消除平凡解的解决方案。事实上,采用mask作为破坏方式的masked autoencoder方法在CV和NLP领域早有广泛应用,受此启发,GraphMAE采用masked autoencoder作为大体的框架。

形式化地来讲,我们采样一个节点子集\tilde{V}\subset V,并且使用一个mask token [MASK]来mask其特征,这是一个可学习的向量x_{[M]}\in \mathbb{R}^{d}。因此,对于masked特征矩阵\tilde{X}v_{i}\in V的节点特征\tilde{x}_{i},可以定义为:

\tilde{x}_{i}=\left\{\begin{matrix} x_{[M]}\; \; v_{i}\in \tilde{V}\\ x_{i}\; \; \; \; \; v_{i}\notin \tilde{V} \end{matrix}\right.

GraphMAE的目标是在给定\tilde{X}A的条件下来重构\tilde{V}中节点的特征向量。GraphMAE使用均匀分布来随机抽取mask的节点,并且采用一个比较大的mask比率(比如50%),这样可以有效减少图中的冗余。

另外,使用[MASK]会造成训练和推断过程的不一致,为了缓解这个现象,BERT的方法是不要总是将被mask的词替换成[MASK],而是采用一个小的概率(比如15%或者更小)来保留原来的特征不改变或者替换成另外一个随机token。本文实验发现保留不变的策略会伤害模型的性能,而随机替换的策略能够帮助模型学习到更加高质量的表示。

  • Q3:采用GNN作为decoder以及re-mask策略

Decoder的选择应该取决于数据的语义等级,举例来说,在语言数据上,由于目标很多为one-hot向量,具备丰富的语义,通常一个简单的MLP作为decoder就是足够的。但是在视觉领域就需要一个更高级的decoder(比如Transformer)来重构具备低语义的像素块。在图中,decoder重构信息相对较少的多维节点特征。GraphMAE采用一个单层GNN作为decoder,GNN能够借由一系列节点而非仅仅节点本身来重构这个节点的输入特征。

为了更进一步地帮助encoder学习到压缩的表示,本文提出了一种re-mask策略来在解码过程之前处理H。具体的做法是对之前mask的节点在H中的embedding使用[DMASK]这个token再一次进行mask,这也是一个可学习的向量h_{[M]}\in \mathbb{R}^{d_{h}}\tilde{H}=REMASK(H)中re-mask的code\tilde{h}_{i}可以表示为:

\tilde{h}_{i}=\left\{\begin{matrix} h_{[M]}\; \; v_{i}\in \tilde{V}\\ h_{i}\; \; \; \; \; v_{i}\notin \tilde{V} \end{matrix}\right.

实验表明GAT encoder更加适合节点分类任务,而GINencoder更加适合图分类任务。需要注意的是,由于decoder只在训练时使用,因此decoder的架构与encoder相互独立,可以采用任意类型的GNN。

  • Q4:采用scaled cosine error作为损失函数

不同领域内特征重构的标准是不同的。在NLP和CV领域内,在NLP和CV中,事实上的准则是利用交叉熵损失预测由tokenizer导出的离散的token索引。一个例外是CV中的MAE会使用MSE直接预测被mask的图像块的像素。然而事实上,像素通常被标准化在0-255之间,这类似于tokenizer。但是在图数据领域,尚不能定义一个通用的tokenizer。

GraphMAE直接重构每个mask节点的特征,这是具有挑战性的,因此这些特征是多维且连续的。现有GAE方法大多采用MSE作为损失函数,但是实验表明MSE损失能够被最小化到接近0,这或许可以解释为什么大多数方法不采用重构特征的方式。本文发现MSE有敏感性和低选择性的问题。敏感性意味着MSE对特征的标准化和维度是敏感的。某些特征维度上的极值也会导致其上的MSE过拟合。低选择性表示MSE不足以使得GraphMAE更关注学习起来难易程度不同的样本中较难学习的部分。

为了解决MSE的敏感性问题,我们采用cosine error,能够摆脱特征标准化和维度的影响。Cosine error中的L2标准化将向量映射到一个单位超球上,大大提升了学习到的表示的质量。为了应对其低选择性的问题,我们进一步地将cosine error改进成scaled cosine error(SCE),具体为引入一个超参数\gamma \geq 1。对于高自信度的样本(简单样本),其对应的cosine error通常小于1并且能够很快地减小到0。形式化地来讲,给定原来的特征X以及重构的输出Z=f_{D}(A,\tilde{H}),SCE定义为:

\mathcal{L}_{SCE}=\frac{1}{|\tilde{V}|}\sum _{v_{i}\in \tilde{V}}(1-\frac{x_{i}^{T}z_{i}}{||x_{i}||\cdot ||z_{i}||})^{\gamma },\; \gamma \geq 1

这可以看做一个为样本自适应加权的过程,每个样本的权重随重构误差的变化而调整。

  1. 推断过程

对于下游任务来说,在推断过程中,不需要对输入数据进行mask。从encoder得到的embedding可以用在多种任务上,比如节点分类和图分类任务。对于图分类任务,采用一个readout函数来获得图的表示,也就是一个非参数化的图池化函数比如MaxPooling、MeanPooling等。

三、实验

  1. 节点分类

实验结果如下:

节点分类
  1. 图分类

实验结果如下:

图分类
  1. 迁移学习

实验结果如下:

迁移学习
  1. 消融实验

关键模块的影响:

消融实验

encoder架构的影响:

消融实验

超参数的影响:

消融实验
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容