ICLR 2020 | 图表示的预训练策略

2021 年 1 月 5 日 PaperWeekly


©PaperWeekly 原创 · 作者|张笑

单位|成都数联铭品

研究方向|图表示和知识挖掘




背景


在图像和自然语言处理领域,预训练和微调的模式取得较大成功,图表示模型的预训练方法还在起步阶段,其不仅需要增加前置的任务,同时还需要专业知识选择出与下游任务相关性强的样本和任务,再进行训练。否则很有可能出现反效果(类比于原始 BERT,NSP 任务实质上效果有限)。



动机


这篇论文考察的是生物化学领域,再具体点是分子结构和蛋白质结构。分子、蛋白质较容易获得独立的结构,同时它们都是限个小元素的排列组合而成,并且每个子结构的研究也比较丰富,比如元素周期表,化学键,蛋白质的多肽结构,子结构的初级功能也有一定的研究(分子的性质,合成分子性质的假设实验,蛋白质控制细胞凋亡和增殖等),有较丰富的整图级的预训练任务。


需要说明的是,本文的样本是多个独立的小结构,不同于社交网络或者用户-商品这类图谱(连通网络非常大)。所以对后者,仍然需要重新设计抽取小结构以及设置小结构任务的方案。针对这篇文章,下文将 graph-level 称为整图级。


本文主要工作在设计节点级别的预训练方案,补充整图级别预训练策略;实验发现,两类策略分开进行预训练,对下游任务的提升有限,甚至有时会起到反效果。



直观来说,作者想让节点的编码可以根据类别分开(类比原子的种类),同时不同功能的整图编码(整图中各节点编码的聚合 pooling)也能够分开, 即达到上图 的效果。



框架


3.1 准备知识


图上的监督学习:令图  ,  和  分别表示节点 v 和边  上的特征属性。给定一系列图  和对应的标签  . 图水平的监督学习是学习图的向量表示  ,然后进行整图的标签预测,即  .


GNNs:对每个节点,记为目标节点 v,通过聚合 v 的所有邻居节点和相应的边的表示,迭代生成 v 的表示向量。



其中  为节点 v 的第 k 词迭代得到的表示向量,  表示节点 v 的邻居集合,  .


图表示学习:为了得到全图 G 的表示向量  ,需要一个池化函数 readout:



3.2 图神经网络预训练策略


3.2.1 节点级预训练:使用无标签的数据,自监督学习特定领域的知识/规则,包括上下文预测和属性遮掩



上下文预测:

(1)首先会选中一个中心节点,出于 GNN 的原理,K 层网络代表着中心节点可以吸收到不超过 K hop 的节点信息,选取中心节点的 K hop ego-network 为邻居;对于中心节点,选择   到  hop之间的部分作为上下文。具体构造应该是   网络除去   网络部分。选择   ,则邻居和上下文存在重叠部分,称为上下文锚定节点,见 figure 2(a) 中绿色节点。

(2)由于图结构的组合特性(不同原子和不同连接方式,不像 NLP 中预测上下文是从固定词表里选择的),故这里引入一个 context GNN,用来编码被切割开的上下文子图,然后将锚定节点编码(固定长度的向量)进行平均,作为上下文向量,然后与中心节点的编码做内积。见 figure 2(a).

(3)对图 G 中的节点 v,对应的上下文向量记为   . 上下文预测的目标是一个二分类问题,即一个特定的邻居和一个特定的上下文编码是否属于同一个节点,采用 negative sampling 方式进行训练: 



属性遮掩:

通过学习图结构中节点或边的属性分布规律,来捕获领域知识。类似于 BERT 中的完形填空模式,在分子图中可以遮掩掉某些原子然后去预测这些原子是什么(获取简单的化学领域知识),也可以遮掩掉边(使用边两段的端点编码均值作为边的向量,预测边属性,获取分子构成的基本规则)。

3.2.2 整图级性质预测

由于整图级表示   直接用于下游预测任务的微调,因此希望直接将特定领域信息编码进  中。对于分子和蛋白质,有比较多的已观测的属性,且它们组成的结构和相应的规则比较固定。所以整图级的预训练任务非常多,于是整图级的性质预测问题,即是一个多任务分类问题。

然而不是所有的预训练任务都对下游的任务有效,甚至会产生负迁移现象。作者认为,一方面,不是所有预训练任务与下游任务相关(需要领域专家进行任务选择);另一方面只采用整图级的预训练,会造成单个节点编码的分布不清晰现象,从而造成负面影响,故这里提出先做节点级的预训练,再做整图级的预训练。

作者通过实验,说明先进行节点级的预训练任务,再进行整图级的预测任务,就可以不需要挑选样本和任务,使得下游任务取得较好结果。


思考


(1)经典的 deep walk、node2vec、line、Deep Graph Infomax 等,均是在节点级别上进行编码,目标通常是预测节点属性或者链路预测,这样的编码在处理整图级别任务往往不是最优的;文章中阐述了,只使用整图级编码预训练,又会受节点编码区分不明显而限制模型效果。所以两者需要结合,可以类比 bert 的思想,填空是为了预测词,NSP 是整句的主题预测,即不仅考虑单词的语义,还要考虑句子的语义。

(2)对于其他网络如何抽取子结构及设计预训练任务?

整图级预训练任务需要结合具体场景提出,这对领域知识要求很高,且需要长时间的积累。

对于社交网络这种,大概率会是一个超大的连通网络,没有分割好的子结构。每个节点都取 ego-network 的话,差异都会非常明显,同时可能存在一些噪音数据(骚扰电话),所以在 ego 网络里进行一定的筛选,不仅可以提取关键的网络结构(需要模型关心的结构),而且将子图结构规整到一定程度的话,可以方便设计深度学习模型。

现有代表性的抽取结构方案:

1)DS-CAE


该方法是对每一个节点,生成它的 K 邻居子图,形成上面两幅图(c)。其中节点需要一个指标衡量排序,可选择 pagerank,且在一阶邻居个数少于 K 时,会选择二阶邻居,以此类推。每个节点 K 邻域还要根据 pagerank 值进行从大到小排序,从左到右排列。


接着再引入一个超参数H,代表树的深度,见上图最左边即为 K=3,H=3 的情形。此时“卷积”可以认为是每个节点 K 邻居那个样子(图中虚线椭圆画出的样子),移动的顺序是在树上从上到下,从左到右。这种方式跟标准的 CNN 很像了。

2)graph-bert

仍然是基于 pagerank 矩阵:



其中   , A 是邻接矩阵,D 是对角阵,元素为 A 的每行的和   . 此时 S(i,j) 表示第 i 个节点对 j 节点的亲密分。设置两个参数   和 t,分别表示亲密分数的下限和选取最大的 t 个节点作为邻居(邻居数长短不一),以此得到 i 节点的上下文节点序列,随后采用 transformer 进行建模。注意,与第一种方法不同的是,这里存在一些节点,满足条件的邻居个数少于 t 个,但不需要进行补齐。

跟 bert 一样,graph-bert 给序列中的每个节点要增加位置编码,记录绝对位置(全局算了一个分值进行排序)、相对位置(根据 S 进行抽取的序列排序,同 bert 中的位置编码)、以 hop 为基础的相对位置(距离中心节点跳数的排序),但是它使用的位置信息,不能够帮助从序列重构出子图,或者说位置信息有些缺失。

(3)抽取网络结构和网络结构特征提取

1)图 G 的数据序列化:

1~通过统计 G 中每一个节点的度,将节点从大到小排序,得到 sorted_nodes_set.

2~根据 sorted_nodes_set 和 G 中连接情况,生成一个辅助连接情况 auxiliary_link_set

def generate_auxiliary_link_set(G, sorted_nodes_set)
    auxiliary_link_set = []
    for k, node in enumerate(sorted_nodes_set):
        neighbor_of_nodes = G.neighbor(node)
        tmp = []
        for neighbor_of_node in neighbor_of_nodes:
            idx = sorted_nodes_set.index(neighbor_of_node)
            if idx < k:
                tmp.append(idx)
        auxiliary_link_set.append([tmp, len(neightbor)-len(tmp)])
    return auxilary_link_set

2)假设一张大的网络 G,对任意 G 中的节点 v,可以取 v 的 K 度 ego-network,记作. 于是对该中心子图执行数据序列化计算,得到对应的 sorted_nodes_set和auxiliary_link_set

3)根据 auxiliary_link_set 构造 mask 矩阵,而后在 sorted_nodes_set 序列上进行 transformer

变形一:可以考虑对 ego-network 进行剪枝,可以选择根据边的权重或者节点权重限制图谱的规模,也可以根据边或者节点属性等控制保留那些结构,以此生成一个点对应的多个子图结构。

变形二:在图序列化的部分,将中心节点放在根节点,生成相应的排序和辅助集合。

变形三:transformer 的时候,先根据 sorted_nodes_set 的顺序和 auxiliary_link_set,生成相应的位置编码,然后节点编码+位置编码放入另一个 transformer 里。

示例

▲ 辅助连接中第i个元素,第一位的表示与 sorted_nodes_set[i] 相连,并且在 sorted_nodes_set 中排在 i 的元素索引,第二位表示 sorted_nodes_set[i] 的度数减去第一位集合的大小。第二位元素可以认为是定义了图的层次,这个层次信息作为一类位置编码信息,进入 transformer block.


▲ 整体模型框架,先把层级位置编码+相对位置编码送入一个 transformer 模块,其中使用到的 Mask 矩阵由辅助连接变量构造,控制遍历图的层级顺序。


▲ 根据示例图 1 中的 mask 矩阵,我们需要将位置编码顺序逆转,然后 attention 时使用 mask,可以看到这是一种自回归的编码方式,辅以层次编码,自底向上的扫描网络;同理,可以将 mask 转置,采用自顶而下的方式扫描网络。

另外,由于已经引入了层级编码,那么使用 transformer 编码器结构,同样可以。(总之就是缝合怪)

(4)图级别任务

在子图匹配中,常将图中的节点进行排序,同时生成一个结构辅助集合,节点排序和结构辅助集合可以复原原来的图结构。可以通过辅助结构训练位置编码,然后利用这个位置编码+节点排序序列放入 bert 等进行预训练。


参考文献

[1] Strateyies For Pre-training Graph Neural Networks

[2] Graph-BERT : Only Attention is Needed for Learning Graph Representations

[3] Multi-Stage Self-Supervised Learning for Graph Convolutional Networks

[4] GResNet : Graph Resdual Network For Reviving Deep GNNS From Suspened Animation

[5] Depth-based subgraph convolutional auto-encoder for network representation learning



更多阅读




#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



登录查看更多
0

相关内容

【CVPR2021】基于端到端预训练的视觉-语言表征学习
专知会员服务
37+阅读 · 2021年4月9日
【AAAI2021】预训练用户表示提升推荐
专知会员服务
43+阅读 · 2021年2月8日
AAAI2021 | 学习预训练图神经网络
专知会员服务
115+阅读 · 2021年1月28日
专知会员服务
40+阅读 · 2021年1月9日
【NeurIPS2020-FB】学习具有可解码信息瓶颈的最优表示
专知会员服务
22+阅读 · 2020年10月13日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
62+阅读 · 2020年8月19日
【MIT-ICML2020】图神经网络的泛化与表示的局限
专知会员服务
42+阅读 · 2020年6月23日
ICML2020 图神经网络的预训练
图与推荐
12+阅读 · 2020年4月4日
一文读懂图卷积GCN
计算机视觉life
21+阅读 · 2019年12月21日
论文浅尝 | 多标签分类中的元学习
开放知识图谱
6+阅读 · 2019年9月25日
3分钟看懂史上最强NLP模型BERT
新智元
23+阅读 · 2019年2月27日
论文浅尝 | 图神经网络综述:方法及应用
开放知识图谱
113+阅读 · 2019年2月14日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
论文浅尝 | 用图网络做小样本学习
开放知识图谱
66+阅读 · 2018年6月30日
图上的归纳表示学习
科技创新与创业
23+阅读 · 2017年11月9日
Arxiv
7+阅读 · 2020年5月25日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
A Sketch-Based System for Semantic Parsing
Arxiv
4+阅读 · 2019年9月12日
Hierarchy Parsing for Image Captioning
Arxiv
6+阅读 · 2019年9月10日
Deep Graph Infomax
Arxiv
17+阅读 · 2018年12月21日
Arxiv
26+阅读 · 2018年2月27日
Arxiv
3+阅读 · 2018年2月7日
Arxiv
10+阅读 · 2018年2月4日
VIP会员
相关VIP内容
相关资讯
ICML2020 图神经网络的预训练
图与推荐
12+阅读 · 2020年4月4日
一文读懂图卷积GCN
计算机视觉life
21+阅读 · 2019年12月21日
论文浅尝 | 多标签分类中的元学习
开放知识图谱
6+阅读 · 2019年9月25日
3分钟看懂史上最强NLP模型BERT
新智元
23+阅读 · 2019年2月27日
论文浅尝 | 图神经网络综述:方法及应用
开放知识图谱
113+阅读 · 2019年2月14日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
论文浅尝 | 用图网络做小样本学习
开放知识图谱
66+阅读 · 2018年6月30日
图上的归纳表示学习
科技创新与创业
23+阅读 · 2017年11月9日
相关论文
Arxiv
7+阅读 · 2020年5月25日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
A Sketch-Based System for Semantic Parsing
Arxiv
4+阅读 · 2019年9月12日
Hierarchy Parsing for Image Captioning
Arxiv
6+阅读 · 2019年9月10日
Deep Graph Infomax
Arxiv
17+阅读 · 2018年12月21日
Arxiv
26+阅读 · 2018年2月27日
Arxiv
3+阅读 · 2018年2月7日
Arxiv
10+阅读 · 2018年2月4日
Top
微信扫码咨询专知VIP会员