『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?( 二 )


『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
其中 Q^k,?、K^k,?、V^k,?是第 K 个注意力 head 的可学习权重 , O^? 是向下的投影 , 用以匹配 h_i^l+1 和 h_i^l 跨层的维度 。
此外 , 多头允许注意力机制从本质上做「对冲」 , 从上一层看不同的转换或隐藏特征方面 。
尺度问题和前向传播子层
一个推动 Transformer 的关键问题是词的特征在经过了注意力机制后可能会有不同的尺度:1)这可能是因为在相加之后 , 有些词有非常高或分布注意力权重 w_ij;2)在独立特征/向量输入阶段 , 将多个注意力头级联(每个注意力头都可能输出不同尺度的值) , 最终会导致最后的向量 h_i^?+1 有不同的值 。 根据传统的 ML 思路 , 似乎增加一个归一化层是个合理的选择 。
Transformer 克服了这一点 , 因为它使用了 LayerNorm , 可以在特征层级归一和学习一个仿射变化 。 此外 , Transformer 使用平方根来缩放点乘规模 。
最终 , Transformer 的作者还提出了另一个小窍门 , 用来控制尺度——一个有着特殊架构的、位置级别的双层全连接层 。 在多头注意力之后 , 它们会使用可学习权重来映射 h_i^?+1 到一个更高维度 。 这其中使用了 ReLU 非线性 , 然后再将它映射会原有的维度 , 并使用另一个归一化操作 。
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
Transformer 层的结构如下图所示:
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
在很多深度网络中 , Transformer 架构是可以调整的 , 使得 NLP 社区可以从模型参数量和数据层面提升其规模 。 而残差连接也是堆栈 Transformer 层的关键 。
GNN 构建图展示
图神经网络(GNNs)或图卷积网络(GCNs)在图形数据中建立节点和边的表示 。 通过邻域聚合(或者信息传递)来实现这一点 , 每一个节点从其相邻处收集特征 , 用以更新其相邻本地图结构的表示 。 堆叠多个 GNN 层能够使模型在整个图中传播每个节点的特征 , 从相邻处扩散到相邻处的相邻处 , 等等 。
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
以社交网络为例:由 GNN 产生的节点特征可以用于预测 , 比如识别最有影响力的成员或提供潜在的联系 。
在最基本的形式中 , GNNs 更新了第一层节点 i 的隐藏特征 h , 并通过节点自身特征 h_i^l 的非线性转换添加到每个相邻节点 j∈N(i) 的特征 h_i^l 集合中:
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
其中 U^l,V^l 是 GNN 层的可学习矩阵 , 类似于 ReLU 的非线性矩阵 。
领域 j 节点 j∈N(i) 上的和可以用其他输入大小不变的聚合函数来代替 , 如简单的均值/最大值或者是其他更有效的函数 , 比如通过注意机制得到的加权和 。
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
如果我们采用邻域聚合的多个并行 head , 用注意机制(即加权和)代替邻域 J 上的和 , 我们就得到了图注意网络(GAT) 。 添加正则化和前馈 MLP 就得到了 Graph Transformer 。
句子就是全连接词语的图
为了让 Transformer 和图神经网络的关系更直接 , 我们可以将一个句子想象为一个全连接图 , 每个词都和其余的词相连接 。 现在 , 我们使用图神经网路来构建每个节点(词)的特征 , 这是之后可以在其他 NLP 任务中用到的 。
广义来说 , 这其实就是 Transformer 所做的事情 。 它们实际上就是有着多头注意力(作为集群聚合函数:neighbourhood aggregation function)的 GNN 。 标准的 GNN 从局部集群节点 j∈N(i) 中聚合特征 , 而 Transformer 则将整个句子 S 视为一个局部集群 , 在每个层中从每个词 j∈S 获得聚合特征 。


推荐阅读