技术大神|Transformers是一种图神经网络

作者:ChaitanyaJoshi
编译:ronghuaiyang
导读
这个观点的目的是构建Transformer结构背后的NLP上的直觉 , 以及与图神经网络的联系 。
技术大神|Transformers是一种图神经网络
文章图片
工程师朋友经常问我:“图深度学习”听起来很厉害 , 但有什么大的商业成功的故事吗?它有没有被部署在实际app中?
除了Pinterest、阿里巴巴和Twitter的推荐系统外 , 一个非常小的成功就是Transformer结构 , 这个结构带来了NLP的风暴 。
通过这篇文章 , 我想在GraphNeuralNetworks(GNNs)和transformer之间建立联系 。 我会讨论NLP和GNN社区中 , 模型架构背后的直觉 , 使用方程和图把这两者建立联系 , 并讨论如何把这两个放到一起工作来得到进展 。
让我们先谈谈模型架构的目的——表示学习 。
NLP的表示学习
在较高的层次上 , 所有的神经网络架构都将输入数据构建为向量/嵌入的“表示” , 它们编码和数据有关的有用的统计和语义信息 。 这些潜在的或隐藏的表示可以用于执行一些有用的操作 , 比如对图像进行分类或翻译句子 。 神经网络通过接收反馈(通常是通过误差/损失函数)来“学习” , 建立越来越好的表示 。
对于自然语言处理(NLP) , 通常 , 递归神经网络(RNNs)以顺序的方式构建句子中每个单词的表示 , 即 , 一次一个单词 。 直观地说 , 我们可以把RNN层想象成一条传送带 , 上面的文字从左到右进行递归处理 。 最后 , 我们得到了句子中每个单词的隐藏特征 , 我们将其传递给下一个RNN层或用于我们的NLP任务 。
技术大神|Transformers是一种图神经网络
文章图片
RNNs以顺序的方式构建句子中每个单词的表示 。 一次一个单词 。 另一方面 , Transformers使用一种注意机制来判断句子中其他词对上述词的重要性 。
Transformers最初是为机器翻译而引入的 , 现在已经逐渐取代了主流NLP中的RNNs 。 这个架构使用了一种全新的方式来进行表示学习:不需要进行递归 , Transformers使用注意力机制构建每个单词的特征 , 找出句子中的其他词对于前面之前的词的重要程度 。 知道了这一点 , 单词的特征更新就是所有其他单词特征的线性变换的总和 , 并根据它们的重要性进行加权 。
拆解Transformer
让我们通过将前一段翻译成数学符号和向量的语言来发展关于架构的直觉 。 我们在句子S中从第l层到第l+1层更新第i个单词的隐藏特征h:
技术大神|Transformers是一种图神经网络
文章图片
其中j∈S表示句子中的词集 , Q、K、V为可学习的线性权值(分别表示注意力计算的Query、Key和V值) 。 对于Transformers , 注意力机制是对句子中的每个单词并行执行的 , RNNs是一个词一个词的进行更新 。
通过以下pipeline , 我们可以更好地了解注意力机制:
技术大神|Transformers是一种图神经网络
文章图片
用这个词的特征h_i^?^和句子中的其他的词的特征h_j^?^ , ?j∈S , 我们通过点积为每一对(i,j)计算注意力权重w~ij~ , 然后对所有的j计算softmax 。 最后 , 对所有的h_j^?^进行加权求和 , 产生更新的词的特征h_i^{?+1} 。 句子中的每个词都并行地经历同一个pipeline , 以更新其特征 。
多头注意力机制
要让这种点积注意力机制发挥作用是很棘手的 , 因为随机初始化会破坏学习过程的稳定性 。 我们可以通过并行地执行多个“头”的注意力 , 并连接结果来克服这个问题(现在每个头都有独立的可学习的权重):
技术大神|Transformers是一种图神经网络


推荐阅读