A Generalization of Transformer Networks to Graphs
A Generalization of Transformer Networks to Graphs作者提出了一种适用于任意图的Transformer结构的。
针对问题:最初的Transformer相当于一个在所有单词之间都有连接的全连通图上操作,但这样的体系结构没有利用图的连通感应偏差,并且当图拓扑结构重要时,没有被编码到节点特征汇总,性能不好。
解决方案作者提出四个新特性:
首先,注意机制是图中每个节点的邻域连通性的函数。
其次,位置编码由Laplacian特征向量来表示,用在了原始Transformer在NLP中常用的正弦位置编码。
第三,用batch normalization层代替layer normalization,提供了更快的训练速度和更好的泛化性能。
最后,将对任务至关重要的边缘特征表示,加入到该graph-transformer结构中。
相关工作Graph Transformer-2019首先作者提出在2019年Graph Transformer那篇文章,为了捕捉全局信息将attention应用在全图节点上替代了局部邻居。
但作者认为这样限制了稀疏性的有效利用 ...
Do Transformers Really Perform Bad for Graph Representation?
Do Transformers Really Perform Bad for Graph Representation?作者提出了一个建立在Transformer体系结构上可以对图进行出色表征的模型——Graphormer。
近来Transformer和Graph进行结合尝试的文章有:
Graph transformer for graph-to-sequence learning. AAAI 2020.
A generalization of transformer networks to graphs. AAAI 2021. (GT)
Heterogeneous graph transformer. 2020.
Re-thinking graph transformers with spectral attention. 2021. (>GT)
Graph transformer. 2019.
Direct multi-hop attention based graph neural network. 2020
Graph transformer networks ...
Avoiding Reasoning Shortcuts- Adversarial Evaluation, Training, and Model Development for Multi-Hop QA
Avoiding Reasoning Shortcuts- Adversarial Evaluation, Training, and Model Development for Multi-Hop QA这篇文章作者发现在HotpotQA中经常包含Reasoning Shortcuts。也就是说模型没有真正的理解文章并进行推理,而是通过将问题与上下文中的句子进行词匹配来直接定位答案。
作者主要做了两件事:
构建干扰文档数据,证明了存在推理shortcut现象。
设计一个新模型来缓解这个问题
对抗验证
问题是What was the father of Kasper Schmeichel voted to be by the IFFHS in 1992? (卡斯珀·舒梅切尔的父亲1992年被IFFHS投票选为什么?)
模型需要从两个文档中考虑信息,找出隐含的推理链条。
Kasper Schmeichel $\rightarrow^{son}$ Peter Schemeichel $\rightarrow^{voted}$ World’s Best Goalkeeper
Kasper ...
TRANSFORMER-XH: MULTI-EVIDENCE REASONING WITH EXTRA HOP ATTENTION
TRANSFORMER-XH: MULTI-EVIDENCE REASONING WITH EXTRA HOP ATTENTION摘要提出Transformer-XH配有eXtra Hop attention以完全数据驱动的方式实现了结构化文本的内在建模。
完全数据驱动应该是指不仅可以处理序列结构的数据,还可以处理图结构。
eXtra Hop attention 除了关注每个序列内的记号外,还可以连接的文本序列之间跳跃
因此文档之间传播信息和构建全局上下文表示来更好地进行联合多证据推理。
eXtra Hop attention的作用:
当每段文本与其他证据相关时能够更全局地表示每段文本所贡献的证据
以一种自然的方式,通过必要的边信息传递对证据图联合推理
方法面临的第一个挑战就是由于transformer的softmax计算在所有token对上,很难处理长文本。
Transform-XL(eXtra Long) 通过将更长的文本(多段落文档) 分解成文本段序列 $\lbrace X1,…,X_r,…,X{\zeta} \rbrace$ 来解决。
使用如下的公式计算在相邻文本段之间 ...
旋转数组的最小数字&搜索旋转排序数组
旋转数组的最小数字&搜索旋转排序数组旋转数组最小数字题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个升序的数组的一个旋转,输出旋转数组的最小元素。
例如数组 {3,4,5,1,2}{3,4,5,1,2} 为 {1,2,3,4,5}{1,2,3,4,5} 的一个旋转,该数组的最小值为 11。
数组可能包含重复项。
注意:数组内所含元素非负,若数组大小为 00,请返回 −1−1。
样例
123输入:nums = [2, 2, 2, 0, 1]输出:0
解法:二分查找题目中有排序两字,自然较优的解是涉及到二分法的
假设我们用下图表示数组,水平线代表数字相同,横坐标代表数字下标
我们发现除了最后水平的一段(黑色水平那段)之外,其余部分满足二分性质:
竖直虚线左边的数满足 $numbers[i] ≥ numbers[0]$ ;
而竖直虚线右边的数不满足这个条件。
我们要找的便是不满足上诉性质的那段中的最小值。
所以我们先将最后水平的一段删除 , 使得右半段不满足 $numbers[i] ≥ numbers[0]$ ,而是严格满足 $number ...
GRAPH-BERT: Only Attention is Needed for Learning Graph Representations
GRAPH-BERT: Only Attention is Needed for Learning Graph Representations当前GNNs的主要方法是过度依赖图中的连接关系,这样造成了三大问题。
模型假死 (suspended animation problem) : 随着神经网络层数的不断加深,模型对于输入的数据开始不进行反应。这个问题的原因论文没写,个人理解是由于层之间的非线性使得数据分布变换导致梯度消失。
过平滑 (over-smoothing problem) : 由于GNN大多依靠聚合操作 (mean,max,sum) 的信息更新方式,这样随着层的不断堆叠,每个节点都会大量收到其他信息节点的影响,从而使得每个节点的embedding预测趋同。
难以并行计算:由于内存的限制,尤其是在大型图里面,图中的关联关系难以并行计算。
根据以上问题作者提出了一种新的图神经网络,即Graph-Based BERT,它完全基于注意力机制,不需要任何图卷积或聚集操作。
在模型输入部分,不会把一整个大图输入给模型,而是先采样得到大图的一些无边子图,只是抽取子节点,而不考虑这些节 ...
Do Multi-Hop Question Answering Systems Know How to Answer the Single-Hop Sub-Questions?
Do Multi-Hop Question Answering Systems Know How to Answer the Single-Hop Sub-Questions?这是一篇比较有意思的工作,但是出发点是多跳阅读理解的本质问题。
多跳QA需要一个模型来检索和整合来自多个段落的信息来回答问题,作者认为现有的评估标准,EM和F1并不能证明在多大程度上学会了多跳推理能力。
所以作者根据多跳QA中的桥接实体生成了一千个相关的子问题,来测试模型的能力,并期望这样能说明一些问题。
做法当设计一个多跳问题时,我们要求模型去检索一系列句子作为证据,然后对他们进行推理来回答问题。作者设计了一个HotpotQA干扰项集,的子问题集,期望模型如果具有了多跳的推理能力,多跳的问题可以回答的话,那么单跳问题也可以回答。但是这个单跳问题不是凭空出现的和原问题不相关的问题。如下图所示:
这是一个典型的桥接问题,问题是:罗斯为阿诺德·施瓦辛格饰演的前纽约警探主演的一部电影做宣传是在哪一年?
想要回答问题,我们就必须先知道施瓦辛格在哪个电影里扮演了纽约警探,也就是必须找到桥梁实体 Gold Para2 中的 ...
Pytorch RNN之pack_padded_sequence()和pad_packed_sequence()
Pytorch RNN之pack_padded_sequence()和pad_packed_sequence()为什么有pad和pack操作?先看一个例子,这个batch中有5个sample
如果不用pack和pad操作会有一个问题,什么问题呢?
比如上图,句子“Yes”只有一个单词,但是padding了多余的pad符号,这样会导致LSTM对它的表示通过了非常多无用的字符,这样得到的句子表示就会有误差,更直观的如下图:
那么我们正确的做法应该是怎么样呢?
在上面这个例子,我们想要得到的表示仅仅是LSTM过完单词”Yes”之后的表示,而不是通过了多个无用的“Pad”得到的表示:如下图:
torch.nn.utils.rnn.pack_padded_sequence()这里的pack,理解成压紧比较好。 将一个 填充过的变长序列 压紧。(填充时候,会有冗余,所以压紧一下)
其中pack的过程为:(注意pack的形式,不是按行压,而是按列压)
(下面方框内为PackedSequence对象,由data和ba ...
Multi-hop Attention Graph Neural Networks
Multi-hop Attention Graph Neural NetworksGAT中的attention运算只能关注节点相连节点表达,这种机制不考虑不直接相连但又有很重要信息的节点表达。
所以提出了多跳注意力图神经网络(MAGNA),这是一种将多跳上下文信息融入到注意力计算的每一层的方法。
其将注意力分数分散到整个网络,相当于增加了每一层的GNN的“感受野”。
如左图,考虑A和D节点,普通的attention层只计算直接相连节点的注意力分数,如 $ \alpha{A,D} $ , 但如果C的信息很重要, $ \alpha{C,D}=0 $ 关注度却为0。并且,单个GAT层中A和D节点之间的运算只依赖于自己的表达,而不依赖于它们的图邻域上下文。其相当于每一层只关注了一阶邻居范围的感受野,虽然堆叠多层GNN可以扩大这个范围,但GNN层数一多就会有过平滑的问题。
再看右图,MAGNA 层的改进方法是
通过扩散多跳注意力捕捉 $ \alpha{D,C}’ $ 表达为 $ \alpha{D,C}’ = f([\alpha{B,C},\alpha{D,B}]) $
基于图 ...