Attention可以说是当今深度学习领域最强大的概念之一。基于基本的常识,我们在处理大量信息时,通常会“关注”某一部分。
这个简单而强大的概念彻底改变了这个领域,不仅在自然语言处理(NLP)任务方面带来了许多突破,而且在推荐、医疗保健分析、图像处理、语音识别等领域也带来了很多突破。
因此,在本系列文章中,将阐述神经网络中注意力机制的发展,重点放在应用和现实世界的部署上。将尝试用Pytorch从头开始实现尽可能多的注意网络——从数据导入和处理到模型评估和解释。
注意机制最早是在自然语言处理领域提出的,目前在该领域的研究还很活跃。以上是导致重大发展的关键设计和开创性论文。在这里,我将逐一简要回顾一下。
-
Seq2Seq, or RNN Encoder-Decoder (Cho et al. (2014), Sutskever et al. (2014))
-
Alignment models (Bahdanau et al. (2015), Luong et al. (2015))
-
Visual attention (Xu et al. (2015))
-
Hierarchical attention (Yang et al. (2016))
-
Transformer (Vaswani et al. (2017))
用于机器翻译的Sequence to sequence (Seq2Seq)架构
许多文本信息都是顺序格式的,例如单词、句子和文档。Seq2Seq是一个由两部分组成的深度学习体系结构,用于将序列输入映射到序列输出。它最初被提出用于机器翻译任务,但可以应用于其他sequence-to-sequence映射任务,如字幕和问题检索。
Cho et al. (2014)和Sutskever et al. (2014)独立提出了由两个递归神经网络(RNN)组成的相似的深度学习体系结构,即编码器和解码器。
编码器读取可变长度的序列输入,例如,英语单词,解码器产生序列输出,例如,对应的法语单词,考虑到编码器的隐藏状态。隐藏状态将源信息从编码器发送到解码器,并将二者连接起来。编码器和解码器都由RNN神经元或其变体,如LSTM和GRU组成。
Align &Translate
普通Seq2Seq体系结构的一个潜在问题是,某些信息可能无法被固定长度的向量捕获,即编码器(h_t)的最终隐藏状态。当处理长句子时,由于梯度爆炸等原因,RNN无法将足够的信息发送到句子的末尾,这就特别成问题。
因此,Bahdanau et al.(2015)提出使用上下文向量来对齐源和目标输入。上下文向量保留来自编码器单元格的所有隐藏状态的信息,并将它们与当前目标输出对齐。通过这样做,模型能够“关注”源输入的某一部分,并更好地了解源和目标之间的复杂关系。Luong et al. (2015)概括出不同类型的注意模式,使注意力的来源和目标一致。
Visual attention
Xu et al. (2015)提出了一个超越传统Seq2Seq架构的注意框架。他们的框架试图对齐输入图像和输出文字,解决图像字幕的问题。
因此,他们利用一个卷积层从图像中提取特征,并使用RNN与注意对齐这些特征。生成的文字(标题)与图像的特定部分对齐,突出显示相关的对象如下所示。他们的框架是早期将注意力应用到其他问题而不是神经机器翻译的尝试之一。
Hierarchicalattention
Yang et al. (2016)通过他们的层次注意网络(HAN)研究表明,注意可以在不同层次上得到有效利用。此外,他们还表明注意机制适用于分类问题,而不仅仅是序列生成。
HAN包括两个编码器网络,即单词和句子编码器。单词编码器处理每个单词并将它们对齐成感兴趣的句子。然后,句子编码器将每个句子与最终输出对齐。HAN可以对结果进行如下层次解释。用户可以理解(1)哪个句子对文档的分类是至关重要的,(2)句子的哪个部分,即哪个单词,在这个句子中是显著的。
Transformer andBERT
Vaswani et al.(2017)提出的Transformer神经网络体系结构是近十年来NLP领域的重大突破之一。Transformer中的multi-head self-attention将序列中的词与序列中的其他词对齐,从而计算该序列的表示。它不仅在表示上更有效,而且与卷积和递归运算相比,计算效率更高。
因此,Transformer架构放弃了卷积和递归操作,用多线程注意力替换它们。多注意本质上是多个注意层从不同位置共同学习不同表征。
Transformer背后的思想启发了许多研究人员,导致了self-attention-based模型的开发,如Devlin et al. (2019)的《Transformer (BERT)》中的双向编码器表示。BERT用改进的Transformer体系结构对双向表示进行预训练。BERT展示了截至2019年在各种NLP任务中的最先进的性能。有许多基于Transformer的语言模型显示了突破性的结果,如XLNet、RoBERTa、GPT-2和ALBERT。
Vision Transformer
在过去的几年里,Transformer彻底改变了NLP领域。受Transformer启发的模型,如GPT和BERT,在许多NLP任务中显示了破纪录的结果。也就是说,Dosovitskiy et al.(2020)论证称,Transformer可以用于计算机视觉任务,这是另一个AI-complete问题。这听起来可能有点过时,因为注意力已经被广泛用于与图像相关的任务,例如Xu et al. (2015)。
然而,Dosovitskiy et al.(2020)的主张是革命性的,因为在他们提出的模型架构中,Transformer实际上取代了卷积层,而不是补充它们。此外,当使用足够的数据进行训练时,Vision Transformer 的性能优于最先进的大规模CNN模型。这可能意味着CNN持续多年的黄金时代可能会结束,就像Transformer取代了RNN一样。
Other applications
我在这篇文章中概述了Attention在NLP领域的主要发展。然而,注意机制在许多应用中得到了广泛的应用。下面是一些注意力在其他领域成功应用的例子。然而,注意机制目前的研究十分活跃,预计将有越来越多的领域欢迎注意模型的应用。
-
Heathcare: Choi et al. (2016)
-
Speech recognition: Chorowski et al. (2015)
-
Graph attention networks: Velickovic´ et al. (2018)
-
Recommender systems: Seo et al. (2017) Tay et al. (2018)
-
Self-driving cars: Kim and Canny (2017)
在这篇文章中,我们简要地介绍了注意力机制的概念,并概述了到目前为止的主要发展。在下一篇文章中,我们将研究种子模型的关键设计细节。让我们从驱动alignment模型发展的Seq2Seq模型开始。
参考文献:
-
Cho et al. (2014)
-
Sutskever et al. (2014)
-
Bahdanau et al. (2015)
-
Luong et al. (2015)
-
Xu et al. (2015)
-
Yang et al. 2016
-
Vaswani et al. (2017)
-
Devlin et al. (2019)
-
Dosovitskiy et
欢迎关注我的微信订阅号,上面有更多机器学习相关的文章。
al. (2020)