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


选自NTU Graph Deep Learning Lab
作者:Chaitanya Joshi
机器之心编译
参与:一鸣、杜伟、Jamin
Transformer和GNN有什么关系?一开始可能并不明显 。 但是通过这篇文章 , 你会从GNN的角度看待Transformer的架构 , 对于原理有更清楚的认知 。
有的工程师会问这个问题:图深度学习听起来不错 , 但是有没有商业上的成功案例?它是否已经在实际应用中使用过了?
除了一些以下企业中的推荐系统 , 如 Pinterest、阿里巴巴和推特 , 实际上在商业中已经取得成功的案例是 Transformer , 它极大地改变了 NLP 业界 。
通过这篇博文 , 现为南洋理工大学助理研究员的 Chaitanya Joshi 将为读者介绍图神经网络和 Transformer 之间的内在联系 。 具体而言 , 作者首先介绍 NLP 和 GNN 中模型架构的基本原理 , 使用公式和图片来加以联系 , 然后讨论怎样能够推动这方面的进步
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
本文作者、南洋理工大学助理研究员 Chaitanya Joshi 。
对「Transformer 是图神经网络」这一概念 , 这篇文章做了很好的解释 。
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
首先 , 我们从表示学习开始 。
NLP 中的表示学习
从一个很高的角度来看 , 所有的神经网路架构都是对输入数据的表示——以向量或嵌入矩阵的形式 。 这种方法将有用的统计或语义信息进行编码 。 这些隐表示可以被用来进行一些有用的任务 , 如图像分类或句子翻译 。 神经网络通过反馈(即损失函数)来构建更好的表示 。
对于 NLP 来说 , 传统上 , RNN 对每个词都会建立一个表示——使用序列的方式 。 例如 , 每个时间步一个词 。 从直观上来说 , 我们可以想象 , 一个 RNN 层是一个传送带 。 词汇以自回归的方式从左到右被处理 。 在结束的时候 , 我们可以得到每个词在句子中的隐藏特征 , 然后将这些特征输入到下一个 RNN 层中 , 或者用到任务中去 。
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
从机器翻译开始 , Transformer 就逐渐开始取代 RNN 。 这一模型有着新的表示学习策略 。 它不再使用递归 , 而是使用注意力机制对每个词构建表示——即每个词语在句子中的重要程度 。 知道了这一点 , 词的特征更新则是所有词的线性变换之和——通过其重要性进行加权 。
Transformer 故障
通过将前一段翻译成数学符号以及向量的方式去创建对整个体系结构的认知 。 将长句 S 中的第 i 个单词的隐藏特征 h 从 ? 层更新至?+1 层:
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
其中 j∈S 为句子中单词的集合 , Q^?、K^?、V^?为可学习的线性权重(分别表示注意力计算的 Query、Key 以及 Value) 。 针对句子中每个单词的并行执行注意力机制 , 从而在 one shot 中(在 RNNs 转换器上的另外一点 , 逐字地更新特征)获取它们的更新特征 。
我们可通过以下途径更好地理解注意力机制:
『人工智能』原来Transformer就是一种图神经网络,这个概念你清楚吗?
本文插图
考虑到 h_j^l; ?j∈S 句中 h_i^l 和其他词的特征 , 通过点积计算每对(i , j)的注意力权重 , 然后在所有 j 上计算出 softmax 。 最后通过所有 h_j^l 的权重进行相应的加权 , 得到更新后的单词特征 h_i^l+1 。
多头注意力机制
让点积注意力机制发挥作用是被证明较为棘手:糟糕的随机初始化可能会破坏学习过程的稳定性 , 此情况可以通过并行执行多头注意力将结果连接起来 , 从而克服这个问题(而每个「head」都有单独的可学习权重):


推荐阅读