IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 第八周.01.Transformer in Graph -> 正文阅读

[人工智能]第八周.01.Transformer in Graph


本文内容整理自深度之眼《GNN核心能力培养计划》
公式输入请参考: 在线Latex公式

注意力基础知识

这块是Transformer的基础,之前有写过很多,最主要就是《attention is all you need》,还有两篇之前写过的文章:
Seq2Seq几个要点
Transformer
老师推荐的地址:https://jalammar.github.io/illustrated-transformer/
这里就不重复了,列几个之前的问题,如果能答上来,那么说明你对Transformer结构了解非常好:
a. 自注意力与注意力的区别?
b. 为什么要进行残差连接?
c. 为什么要设置多头注意力 ?
d. 一个自注意力层计算的复杂度是多少,为什么?
e. 为什么要进行mask?
f. 位置嵌入除了文中的这种形式还有哪些?

论文带读

Do Transformers Really Perform Bad for Graph Representation?
本篇论文是刚刚出炉的预印版。这个文章的模型在斯坦福OGB Graph-level 预测任务上拿了第一名
配套代码在此:https://github.com/Microsoft/Graphormer

摘要

Transformer 的应用很好~!
The Transformer architecture has become a dominant choice in many domains, such as natural language processing and computer vision.

但是在GNN领域还没人搞起。
Yet, it has not achieved competitive performance on popular leaderboards of graph-level prediction compared to mainstream GNN variants.

点题+过渡句
Therefore, it remains a mystery how Transformers could perform well for graph representation learning.

总的来说,本文用标准的Transformer结构解决了啥问题
In this paper, we solve this mystery by presenting Graphormer, which is built upon the standard Transformer architecture, and could attain excellent results on a broad range of graph representation learning tasks, especially on the recent OGB Large-Scale Challenge.

详细说模型的特点
Our key insight to utilizing Transformer in the graph is the necessity of effectively encoding the structural information of a graph into the model. To this end, we propose several simple yet effective structural encoding methods to help Graphormer better model graph-structured data. Besides, we mathematically characterize the expressive power of Graphormer and exhibit that with our ways of encoding the structural information of graphs, many popular GNN variants could be covered as the special cases of Graphormer.

论文结构

1 Introduction
2 Preliminary
3 Graphormer
3.1 Structural Encodings in Graphormer
3.2 Implementation Details of Graphormer
3.3 How Powerful is Graphormer?
4 Experiments
4.1 OGB Large-Scale Challenge
4.2 Graph Representation
4.3 Ablation Studies
5 Related Work
5.1 Graph Transformer
5.2 Structural Encodings in GNNs
6 Conclusion
附录A Proofs
附录B Experiment Details
附录C More Experiments
附录D Discussion & Future Work

第一节是介绍,从Transformer的应用开始聊,然后回到本文的出发点,在GNN里面Transformer的研究未见,然后提出本文研究的内容:Graphormer,简要展开介绍后,点出两个类比Transformer结构Graphormer中两个创新点:Centrality Encoding和Spatial Encoding,具体在3.1里面介绍。
第二节主要是GNN和Transformer的数学表达的回顾,不展开。

在这里插入图片描述
原文图1描述了Graphormer结构,上面主要注意三个额外的表征是哪里加入的。
下面详细看3.1

3.1 Structural Encodings in Graphormer

3.1.1Centrality Encoding

这个其实对应Transformer里面的位置嵌入,序列之所以是序列,是因为它由顺序,因此里面元素的位置当然是有隐含有一些辅助表征的信息的,但是GNN中的图结构,邻居是没有顺序的,这里也不是采用DeepWalk那种随机游走思想来先生成序列,因此,这个文章考虑图特有的信息来替换位置嵌入:Centrality Encoding。这个玩意就是图结构里面的刻画节点中心性(Centrality)的最直接度量指标,简单说就是用节点的出入度来作为一个Encoding:
h i ( 0 ) = x i + z d e g ? ( v i ) ? + z d e g + ( v i ) + h_i^{(0)}=x_i+z^-_{deg^-(v_i)}+z^+_{deg^+(v_i)} hi(0)?=xi?+zdeg?(vi?)??+zdeg+(vi?)+?
这里用可学习向量 z z z作为不同出入度的表征,如果是无向图,这可以把出入度合并为 d e g ( v i ) deg(v_i) deg(vi?)
除了出入度之外,还有别的指标,具体可以看下Networkx的官方文档

3.1.2 Spatial Encoding

除了度的信息之外,这里还用了Spatial Encoding,其实就是用一个玩意来表示两个节点的距离:
? ( v i , v j ) \phi(v_i,v_j) ?(vi?,vj?)
文章中的 ? \phi ?使用的是最短路径SPD(shortest path distances)算法,这个不明白的可以看下数据结构。然后用 ? \phi ?得到的距离对应到一个可学习的常量 b ? ( v i , v j ) b_{\phi(v_i,v_j)} b?(vi?,vj?)?

目测这里估计还可以换别的方法进行改进,我也看了一下,这个思想在另外两个文章里面有提出来,不过这里用在了Transformer里面。下面两个文章都是Jure组的工作(就是斯坦福讲CS224W图神经网络算法的那位)
19年的PGNN:Position-aware Graph Neural Networks
20年的Distance Encoding – Design Provably More Powerful Graph Neural Networks for Structural Representation Learning

3.1.3 Edge Encoding in the Attention

原文提到边的表征是GNN中非常重要的组成部分(例如:化学分子中碳碳结构有特殊含义),Edge Encoding的方法现有两种:1、Edge特征关联到节点特征上;2、在图卷积的过程中汇聚的时候加入边的特征,并学习之。
上面两种方式存在一个问题:就在在传播过程中只会把边的特征传递给与之相连的节点,无法有效将边的信息扩展到整个图中。
本文的方法可以考虑图中任意两个节点 ( v i , v j ) (v_i,v_j) (vi?,vj?)的边的信息,就是考虑两个节点的最短路径(有多条就随机取一条)所经过的边: S P i j = { e 1 , e 2 , ? ? , e N } SP_{ij}=\{e_1,e_2,\cdots,e_N\} SPij?={e1?,e2?,?,eN?},把这些边拿出来做平均,得到两个节点的边表征,然后用于注意力计算:
c i j = 1 N ∑ n = 1 N x e n ( W n E ) T c_{ij}=\cfrac{1}{N}\sum_{n=1}^Nx_{e_n}(W_n^E)^T cij?=N1?n=1N?xen??(WnE?)T
其中 N N N是最短路径经过了多少条边, x e n x_{e_n} xen??是最短路径中的第n条边的特征, W n E W_n^E WnE?是该条边对应的权重

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:44:50  更:2021-07-30 12:47:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 11:01:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码