论文阅读笔记之Attention Is All You Need

  • 前言
  • 阅读笔记

前言

  这是戊戌年的第一篇博客,先给各位读者拜个晚年。这篇博客是2017 NLP 十大paper阅读笔记系列的第一篇,当初我立下一个flag—要在2018读完这十篇paper,所以我会依次阅读这些paper,写出我的一些观点。出于各种原因,有些part我就不detail地去写,网上也有一些类似的阅读笔记可以学习。

阅读笔记

  这一篇paper是google发在NIPS上的Attention Is All You Need,这个名字还是很吸引人的。实际上就是在Encoder-Decoder的model上不去使用RNN或者CNN(Facebook关于ConvS2S的工作将在后续的阅读笔记中介绍),而是使用Transformer model,如下图所示。

论文阅读笔记之Attention Is All You Need_第1张图片

  Encoder和Decoder各含有六层,图中的Nx只是其中的一层。Encoder部分有一个Multi-Head Attention和前馈网络组成,每部分的输出都经过一个LayerNorm,并且采用残差连接(我会在解读经典卷积神经网络结构时提到ResNet的残差链接,敬请期待第一篇LeNet的介绍和实现)。在Decoder部分,有三个sublayer(比Encoder多一层sublayer),前馈网络不变,一个Multi-Head Attention的输入来自Encoder的输出,另一个Multi-Head Attention是带有mask,即Masked Multi-Head Attention(在第一遍读这篇文章的时候并没有注意到两个Multi-Head Attention的差异,也很好奇如何去“ prevent positions from attending to subsequent positions ”其实就是用Mask实现的)。
  下面就是Attention的part,这里用的是压缩点乘注意力(原文中称之为Scaled Dot-Product Attention),实际中有很多种Attention,这篇paper选用该种方法。文中讲Dot-Product Attention和Additive Attention是比较常见的两种Attention,但是在实际情况下Dot-Product Attention会更快、更节省空间,并且更容易优化。
论文阅读笔记之Attention Is All You Need_第2张图片


  上式就是Scaled Dot-Product Attention的计算公式,这里需要说明的是Encoder-Decoder结构实际上和根据Query匹配Key然后得到Value是很相似的(在Encoder-Decoder中,Query来自之前上一层Decoder,而Key和Value则是上一层Encoder的输出。这种机制使得句子中的每一个Part都可以参与Encoder-Decoder的过程。而在self attention中,Query,Key和Value都来自相同的上一步的输出。),这里的Q、K、V分别代表Query、Key、Value,具体的细节可以参考原文。这里有个疑问:为什么要压缩(scaled)以及压缩为什么除以根号下k的维度而不是直接除呢?原因是这样的如果不进行压缩,得到的值相差很大从而导致在softmax之后要么接近0,要么接近1,所以需要压缩操作;其次,因为文章假设数据符合标准正态分布,为了使点乘结果的方差为1,所以使用了根号。Multi-Head Attention其实就是由Scaled Dot-Product Attention结合参数矩阵组成,具体连接细节不再赘述。
  RNN通过递归可以反映序列的顺序,同样地CNN可以通过感受野和层数的叠加去反映序列的顺序。在Transformer model中,Attention没有考虑到序列的顺序(类似于词袋,序列改变位置Attention得到的结果是一样的),这样引入了Positional Encoding从而保留全句的位置信息。不同的文章中采取了不同的方法去使用Positional Encoding,如将Embedding的结果和Positional Encoding相连接或者将Embedding的结果和Positional Encoding相加(相加要求它们的维度是相同的)。另外,这篇文章中使用的Positional Encoding方法如下(我仍对Positional Encoding中的部分细节存在疑惑)。
论文阅读笔记之Attention Is All You Need_第3张图片

  在阐述使用Self Attention原因时主要是通过一系列实验的对比,包括Self Attention、CNN、RNN、Attention之间关于复杂度等的对比以及使用不同模型在经典任务上的performance等。
论文阅读笔记之Attention Is All You Need_第4张图片

论文阅读笔记之Attention Is All You Need_第5张图片

  写在最后,这篇文章有点偏工程,全文一直在回避CNN和RNN等字眼,更像是回应FAIR的ConvS2S。针对本篇文章我阅读了好几篇也在网上看了一些笔记,仍有一些疑惑,待继续阅读相关论文之后再来反复阅读此文,来解决仍有的疑惑。下一篇解读的paper是被AAAI2018收录的“Reinforcement Learning for Relation Classification from Noisy Data”。

你可能感兴趣的:(自然语言处理)