<span><font size="3">Transformer模型最早在自然语言处理领域任务被使用,并逐渐称为NLP、Speech和CV邻域主流模型,均取得了不错的结果,但是在图领域还没有什么声音。</font></span><p><font size="3"><span>就在最近刚刚结束的KDD Cup 2021和OGB官方联合举办的第一届OGB-LSC比赛中,由大连理工大学、普林斯顿大学、北京大学和微软亚研院联合发布论文《Do Transformer Really Perform Bad for Graph Representation?》提出并证明:</span><span>Transformer模型是表达能力更强的图模型,文中提出当前流行的图神经网络模型GCN、GIN和GraphSage都可看成是Transformer模型的特例。</span><span>Wow,各大邻域被Transformer通吃了!欢迎关注公众号【AI机器学习与知识图谱】,获取更多前言。</span></font>
</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/26011021-d51c4e4aff873add.jpeg" img-data="{"format":"jpeg","size":19419,"height":209,"width":457}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>论文下载地址:https://arxiv.org/pdf/2106.05234.pdf</p><p>源码下载地址:https://github.com/Microsoft/Graphormer</p>
<h2><span/>一、背景知识</h2><h3><span/>1、Graph Neural Network<span/></h3>图神经网络进行表征学习时,最核心的三个操作是:Aggregate、Combine和Readout<ol><li><p><strong>Aggregate操作:</strong>aggregate函数目的是将邻居节点的特征信息进行汇聚,通常使用的是汇聚方式是Mean、Max和Sum。</p></li><li><p><strong><span>Combine操作:</span></strong><span/><span>combine函数目的是将来自邻居的aggregate操作后的特征信息融合到中心节点表征中。</span>
</p></li><li><strong><span>Readout操作:</span></strong><span/><span>readout函数目的是将图中节点表征进行汇聚得到最终整个图的图表征。</span></li></ol>图:<span><span/></span>图中节点:<span><span/></span>节点<span><span/></span>的特征:<span><span/></span>图网络初始层节点<span><span/></span>的表征:<span><span/></span>图网络第l层节点<span><span/></span>的表征:<span><span/></span>节点<span><span/></span>的邻居节点:<span><span/></span>上面给出了一些形式化定义,因此,图模型Aggregate、Combine和Readout操作公式表示为:<span/><span/><span/>
<h3><span/>2、Transformer<span/></h3><p>Transformer模型是有多层相同的结构组成,每层有两个部分分别是:</p>A self-attention module和A position-wise feed-forward network(FFN),下面公式给出Self-Attention模块的具体实现:<span/><span/>
<h2><span/>二、Graphormer模型</h2><p>Graphormer模型关键点:Transformer模型的自注意力层不能学习到图结构信息,那么问题来了,如何把丢失的图结构信息找回来。因此Graphormer模型在标准的Transformer模型基础上,加入了三种结构信息编码:Centrality Encoding、Spatial Encoding以及Edge Encoding,以此是的Graphormer模型可以学到图数据的结构信息。模型结构图如下所示:</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/26011021-e57859ab69a5bbb1.jpeg" img-data="{"format":"jpeg","size":26197,"height":329,"width":467}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div>
<p><strong>1、Centrality Encoding中心性编码</strong></p>Transformer模型中的注意力机制会基于节点点的语义相似度计算注意力分布,但是在计算过程中并不会体现节点中心性,节点中心性是图中一个重要信号,因此提出了中心性编码,计算方式如下所示:<span/>其中<span><span/></span>是Node Feature,<span><span/></span>是代表节点入度和出度的可学习表征,当图是无向图时,<span><span/></span>则统一成同一个表征<span><span/></span>。通过在开始输入节点特征时使用中心性编码,softmax注意力可以捕获节点的重要性信号。因此,该模型可以同时捕捉到语义相关性和节点重要性。
<p><strong>2、Spatial Encoding空间编码</strong></p>Transformer模型在处理长序列文本时,会通过position embedding位置编码来学习文本之间的相对位置信息,但图不是序列数据,因此需要重新设计空间编码,Graphormer模型使用<span><span/></span>来表示节点<span><span/></span>和<span><span/></span>之间的空间关系,当节点<span><span/></span>和<span><span/></span>之间相通时,则<span><span/></span>为<span><span/></span>和<span><span/></span>间的最短路径距离,当二者之间不相通时,则设置为-1,然后在通过可学习常量进行缩放为<span><span/></span>,再将其加入到Attention计算中,公式表示为:<span/>上述空间编码有两点好处:首先,传统GNN的汇聚方式只限制在邻居节点,<span><span/></span>则提供了一个全局的空间信息对于图中的每个节点;其次,通过控制b相对<span><span/></span>是递减函数,可以让模型更加关注近的节点。
<p><strong>3、Edge Encoding关系编码</strong></p>关系信息对于图中节点表征至关重要,Graphormer模型为了将关系信息加入到注意力中,引入了Edge Encoding <span><span/></span>,<span><span/></span>表示的是节点<span><span/></span>和<span><span/></span>之间最短路径上所有关系表征平均值,如下公式所示,<span><span/></span>表示第n个边的表征,<span><span/></span>则表示第n个边的权重表征,权重表征时可学习的。然后再将<span><span/></span>加入到Attention计算中。<span/><span/><p>Graphormer模型整体实现完全基于Transformer模型架构,按照上面叙述,只是在初始特征时加入了中心性编码,然后再Self-Attention层实现时加入了空间编码和关系编码,其他都不变。在多头注意力层前使用了layer normalization,同时在FFN层前也使用了layer normalization。</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/26011021-9f149064a0260107.jpeg" img-data="{"format":"jpeg","size":14928,"height":241,"width":470}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>Graphormer模型为了得到最终的图表征,引入了Special Node,简单来说就是使用中心节点表征来代替图表征。并且文中类比这就相当于是Bert模型中的[CLS]字段。最终,文中论文Transformer模型是表达能力更强的图模型,文中提出当前流行的图神经网络模型GCN、GIN和GraphSage都可看成是Transformer模型的特例。</p><p>
</p><p><span style="font-size:16px"><strong>往期精彩</strong></span></p>FastText原理和文本分类实战,看这一篇就够了
<span style="font-size:14px">GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递</span>
<span style="font-size:14px">Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码</span><div>
<span style="font-size:16px">原创不易,有用的话就点赞,收藏,转发三连啊!</span></div>
Transformer难道要大一统AI邻域?
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 机器翻译及相关技术机器翻译(MT):将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经机...
- 前几天细读GPT的paper,里面使用的基础模型和BERT一样都是Transformer,区别就在于GPT用的是单...
- 一、基础部分 2017年google发表了一篇All Attention Is All You Need论文,...
- Understanding The Robustness in Vision Transformers ICML2...
- 1.Transformer为何使用多头注意力机制?(为什么不使用一个头) 答案解析参考这里:为什么Transfor...