1、适合multiple tasks 例如 Machine Translation, Question Answering, Sentiment Analysis, Part-of-Speech tagging, Constituency Parsing and Dialogue Systems.
2、它们被广泛地用来提高神经网络的可解释性
3、有助于克服递归神经网络(RNN)的一些问题,如随着输入长度的增加计算性能下降以及顺序处理输入数据所导致的计算效率低下
局限性:
1、编码器必须将所有输入信息压缩成一个固定长度的矢量HT,该矢量被传递给解码器。使用单个固定长度的向量来压缩长而详细的输入序列可能会导致信息丢失。
2、它无法建模输入和输出序列之间的对齐,这是结构化输出任务(如翻译或摘要)的一个重要方面。
Encoder-Decoder和Attentive Model 二者的区别:
有四种分类方式
Number of sequences
0、一般Attentive Model 考虑输入和相应的输出序列为一个的情况。
1、当候选状态和查询状态分别属于两个不同的输入和输出序列时,为 distinctive型Attentive Model:比如 translation、summarization、 image captioning、 speech recognition
2、同时对多个输入序列进行操作,并联合学习它们的注意权重,以捕获这些输入之间的相互作用为 co-attention model:如visual question answering(除了在输入图像上模拟视觉注意外,建立问题注意模型也很重要。基于注意的图像表示被用来指导问题的注意,反之亦然,这本质上有助于同时检测问题中的关键短语和与答案相关的图像的相应区域)
3、输入是一个序列,而输出不是一个序列的情况,查询和候选状态属于相同序列self attention: text classification 、recommendation
Number of abstraction levels
一般的情况下,只计算原始输入序列的注意权重,称为 single-level
在multilevel attention中较低抽象级别的输出(上下文向量)成为较高抽象级别的查询状态。此外,使用多级关注的模型可以根据权重是否自上而下学习而进一步分类:如word level和sentence level,也称为Hierarchical Attention Model”(HAM);在co-attention work中还可以分为word level, phrase level 和question level
Number of positions
按照计算注意力时使用的输入序列中位置,可以分为:
soft attention:它使用输入序列的所有隐藏状态的加权平均值来构建contextVector。加权方法的使用使神经网络能够通过反向传播进行有效的学习,但也导致了二次计算代价
hard attention:其中上下文向量是从输入序列中随机采样的隐藏状态计算出来的。这是通过使用由注意权重参数化的多个分布来完成的。硬注意模型降低了计算代价,但是在输入的每一个位置做出一个hard的决策使得得到的框架不可微,难以优化。
Luong等人[2015]在机器翻译任务的背景下,提出了local and global注意模型。全局注意模型类似于软注意模型,而局部注意模型则介于软注意和强注意之间。关键思想是首先检测输入序列中的关注点或位置,并在该位置周围选择一个窗口来创建本地软注意模型。输入序列中的位置既可以设置(单调比对),也可以通过预测函数学习(预测比对)。因此,局部注意的优点是在窗口内提供软和硬注意、计算效率和可微性之间的参数权衡。
Number of representations
在某些情况下,使用输入的一种特征表示可能不足以满足下游任务的需要。
multi representational AM可以用来为这些不同的表示分配重要性权重,这些表示可以确定最相关的方面,而不考虑输入中的噪声和冗余。如,学习对同一输入句子的不同单词嵌入的注意权重,以改进句子表示
multi-dimensional attention 引入了权重以确定输入嵌入向量的各个维度的相关性
encoder-decoder framework
Attention Models改进了E-D模型随序列增长表示失效的问题,它允许将输入表示与输出解耦。最流行的是卷积神经网络(CNN)作为编码器,RNN或长短期存储器(LSTM)作为解码器。适用于multi-modal tasks: image and video captioning, visual question answering and speech recognition.
另外,Pointer networks有两点特殊:(1)输出是离散的,并指向输入序列中的位置(因此称为指针网络);(2)输出每一步的目标类的数量取决于输入的长度(和可变性)。编解码器框架中输出字典是已知的先验(例如在自然语言建模的情况下),所以Pointer networks不能用传统的编解码器框架。Vinyals等人使用注意权重来建模计算:在每个输出位置选择第i个输入符号作为所选符号的概率。该方法可应用于travelling salesperson问题、排序等离散优化问题。
Memory Networks
像问答和聊天机器人这样的应用程序需要能够从事实数据库中的信息中学习。输入是知识数据库和查询,其中一些事实与查询的相关性更强。端到端内存网络(End-to-End Memory Networks)通过使用内存块数组来存储事实数据库,并使用内存中每个事实的模型相关性来回答查询,从而实现这一点。使用注意通过反向传播使目标连续并支持端到端培训,从而提供计算优势。端到端存储器网络可以看作是AM的一种推广,在AM中,它们不是只对单个序列建模,而是在大型序列数据库(FACTS)上对其进行建模。
1、Networks without RNNs
Transformer architecture:编码器和解码器由两个子层组成:位置前馈网络(FFN)层和多头自注意层(FFN),这两个子层由一组相同的层组成——
2、Position-WesseFFN:输入是顺序的,它要求模型利用输入的时间方面,但是不使用捕获该位置信息的组件(即RNN/CNN)。为了说明这一点,转换器中的编码器阶段使用按位置的ffn为输入序列的每个令牌生成内容嵌入以及位置编码。
3、Multi-Head Self-Attention:在每个子层中使用Self-Attention来关联标记及其在同一输入序列中的位置。此外,注意被称为多头,因为多个注意层并行堆叠,同一输入具有不同的线性变换。这有助于模型捕获输入的各个方面,并提高其表现力。
Applications
(i) Natural Language Generation(NLG):MachineTranslation(MT),Question Answering (QA) and Multimedia Description (MD).
(ii) Classification:Sentiment Analysis
(iii) Recommender systems
原作者:SnehaChaudhari∗, GungorPolatkan, RohanRamanath, VarunMithal AI@LinkedIn