上一节,我们介绍了Seq2Seq模型,它的生成序列来自同一个语义编码器C:
因此,在句子比较短时,该模型性能还可以,对于稍长一些的句子,模型的性能就不尽人意了。为此,注意力机制模型应运而生。
传送门:序列处理之RNN模型
注意力机制概述
注意力机制,英文是Attention Mechanism,简称AM。它的提出是源于人类视觉的研究——当我们看一张图片时,并非会注意图片的全部内容,而是将注意力集中在图片的重要部分,通常是焦点的部分位置。也就是对这部分投入更多的注意力资源,以获取更多所需关注目标的细节信息,从而忽略其他无用信息。
深度学习的注意力机制,正是基于这样的逻辑构建的。在自然语言处理中,把注意力机制看作输出(Target)句子中某个单词和输入(Source)句子每个单词的相关性,这个是AM的本质。下面一张图展示了这种关系:
图中,Key就是输入的所有单词,Value是其对应的取值,把<Key,Value>称为数据对,Query是输出中的某个元素:
给定一个Query,计算其与各个Key的相似度,得到对应Value值(权重系数),然后对Value进行加权,得到最终的Attention数值:
所以本质上注意力机制是对Source中元素的Value值进行加权求和,而Query和Key是用来计算对应Value的权重系数。<