随着大语言模型日益流行,我们有必要研究和重视注意力模型,因为注意力模型在Transformer模型和语言模型中的作用不容小觑。首先,让我们深入认识序列到序列(Seq2Seq)编码器-解码器(Encoder-Decoder)网络。之后,我们将认识极为重要的“注意力模型”,并对其进行详尽评估。
传统的序列对序列:编码器—解码器网络
让我们看看这个特殊的翻译过程,看看它在传统的Seq2Seq模型中是如何表现的。
传统的Seq2Seq模型,由于上下文窗口固定,操作颇为艰难。在传统的Seq2Seq方法中,编码器的最终隐藏状态向量极其关重要。这个向量能捕获完整的输入表示,并在解码过程中使用。请看图中的每个部分:
图1 图源作者:上下文固定的传统Seq2Seq模型
上图中没有展示所有的编码器单元,但一言以蔽之,我们只使用编码器的最终隐藏状态,并将其传递给解码器来处理英文句子的翻译。如上图所示,编码器的最终隐藏状态旨在用一个固定长度的向量概括英文输入序列中的所有信息,然后进一步处理该最终隐藏状态,在解码过程中生成输出序列。但这有个矛盾,也是主要问题,便是最终隐藏状态的扩展性不足。所有输入序列都必须压缩成单个向量,但这样会导致信息丢失,特别是较长的序列。序列越长,结果越差。
更高级的架构,如Transformer模型(用于BERT、GPT等),不依赖单个隐藏状态向量在编码器和解码器之间传输信息。相反,它们使用诸如注意力之类的机制,让解码器的所有组件访问编码器的全部输出内容,从而解决上下文限制问题。
本文将回顾注意力机制的基本概念,如对齐分数和注意力权重。其中,解码器通过关注编码器中输入序列的正确隐藏向量,然后用对齐分数和注意力权重,准确预测下一个单词。我们将涵盖缩放点积(scaled dot product)、教师强制(teacher forcing)、注意力前解码器(pre-attention decoder),以及三者之间的关系等相关基础知识。
是否使用所有隐藏状态作为解决方案
仅使用最终隐藏状态的解决方案,是把所有隐藏状态传给解码器,并执行某种逐点卷积。但这会导致另一个问题,因为神经网络至此仍不知道应该重点关注编码器中的哪个字符。
图2 图源作者:试用逐点卷积
你要关注的只有注意力!!
对齐分数
对齐分数会计算每个编码器与每个解码器隐藏状态之间的相似之处。举个例子。在本例中,源句是英文的“Its time for coffee(咖啡时间到)”,目标语句子是法语的“C’est l’heure du café”。每个英文单词分别与上图对应,h1(隐藏状态)为“Its”,h2为“time”,h3为“for”,h4为“coffee”。
下面逐步计算这个句子中每个单词的对齐分数。在翻译或预测特定单词的时候,解码器会检查编码器的所有隐藏状态,并试着确定哪些英语单词与法语中输出的第一个单词(即“C’est”)最相关。
图3 图源作者:添加注意力机制
绿色分数基本上是使用softmax操作后,再进行标准化的对齐分数。注意力便是在此发挥作用。为了让解码器预测的第一个单词为“C’est”,现在它必须确定哪个英语单词更需要关注。正如我们所见,这个例子中,第一个英文单词更侧重于“Its”(概率为0.8)。这里的概率即注意力权重。这些注意力权重用于翻译第一个单词。
注意力权重用αij表示。其中,i代表解码器(输出字符),j代表编码器(输入字符)。上图展示了注意力权重α1j。
对齐分数基本上是注意力模型的评分机制,在生成输出句子中的每个单词时,该评分机制用来确定单词的先后输出顺序。因此,即便不同语言的句子结构各不相同,注意力机制都能确保译文在上下文语境中适用。
至此,您已经对神经机器翻译的直觉有所了解,接下来来理解如何使用注意力机制来计算注意力权重。
图4 图源作者:注意力权重计算
上图是一个非常简单的注意力机制结构。每个编码器的隐藏状态(hj)代表英语句子中的输入单词(分别为h1、h2、h3、h4)。Si-1是解码器的隐藏状态。二者都被投喂给前馈神经网络(feedforward neural network),然后由softmax函数进行权重归一化处理。总而言之,softmax操作将对齐分数转换为权重,量化了每个编码器状态对解码器当前状态的重要性。αij是第j个输入字符影响第i个输出字符的注意力权重,而hj是第j个编码器隐藏状态。这些权重用于生成解码器的上下文向量。
每个编码器隐藏状态(hj)乘以其相应的注意力权重(αij),可以计算当前输出字符的上下文向量。ci表示输出序列中第i个字符的上下文向量。
图5 图源作者:上下文向量https://arxiv.org/pdf/1409.0473.pdf
现在我们有了上下文向量,就可以调用第一步c1和初始解码器隐藏状态s0。使用拼接函数,然后是tanh或其他非线性激活函数,合并c1和s0。这种合并为生成目的语中的第一个字符提供了丰富的信号。
学到了什么?
用机器翻译将一个句子从英语翻译成法语时,Transformer模型并不总是按照正确的顺序翻译每个单词。法语中的一些单词可能与英语句子中较先或较后出现的单词相对应。注意力机制让模型专注于相关的英语单词。
模型面临的挑战
图6 图源作者:当前模型面临的挑战https://arxiv.org/pdf/1409.0473.pdf
上图的模型很难实现,所以我们引入一个新的注意前解码器,然后使用注意力,但在这之前,先看看缩放点积是如何工作的。在续篇中,我们将了解键(key)、查询(query)和Value值的基本原理,以及Seq2Seq模型中的教师强制。
注:由于本文篇幅较长,本期内容分已为两部分。第一部分主要阐释传统的Seq2Seq模型和注意力机制的基本概念,第二部分将讨论缩放点积、教师强制、注意力前解码器,以及三者关系等相关知识。欲了解完整内容,敬请移步《理解神经机器翻译机制(2)》。
(机器翻译,轻度译后编辑,仅供参考。)
原文链接
编辑:张湄婕