作者
JayAlammar
译者
香槟超新星,责编
夕颜
来源
CSDN(ID:CSDNnews)
注意力机制是一种在现代深度学习模型中无处不在的方法,它有助于提高神经机器翻译应用程序性能的概念。在本文中,我们将介绍Transformer这种模型,它可以通过注意力机制来提高训练模型的速度。在特定任务中,Transformer的表现优于Google神经机器翻译模型。但是,最大的好处来自于Transformer如何适用于并行化。实际上,GoogleCloud建议使用Transformer作为参考模型来使用其CloudTPU产品。因此,我们试试将模型分解开吧,看看它是如何工作的。
AttentionisAllYouNeed一文中提出了Transformer。它的TensorFlow实现是Tensor2Tensor包的一部分。哈佛大学的NLP团队创建了一份指南,用PyTorch实现对这篇文章进行注释。在本文中,我们将试着尽可能地简化讲解,并逐一介绍概念,希望能让那些对这方面没有深入知识的人们更容易理解Transformer。
Transformer概览
首先,让我们先将模型视为一个黑盒。在机器翻译应用程序中,这个模型将拿一种语言中的一个句子,然后以另一种语言输出其翻译。
打开擎天柱的引擎盖(OptimusPrime,Transformer与变形金刚是同一个词,故而产生这个梗),我们能看到编码组件,解码组件,以及它们之间的连接。
编码组件是一个编码器组成的堆栈(论文上一个摞一个地堆叠了六个编码器——六这个数字本身没有什么神奇之处,人们肯定可以尝试其他个数)。解码组件是一个由相同数量的解码器组成的堆栈。
编码器的结构均相同(但它们权重不同)。每一层都可以被分为两个子层:
编码器的输入首先流经自注意力层,这一层可以帮助编码器在对特定单词进行编码时查看输入句子中的其他单词。稍后我们将会进一步