在上篇文章中,主要阐释传统的Seq2Seq模型和注意力机制的基本概念,本期将继续讨论缩放点积、教师强制、注意力前解码器,以及三者关系等相关知识。欲了解上文内容,敬请移步《理解神经机器翻译的机制(1)》。
缩放点积
缩放点积是Transformer模型的关键组成部分,通过使用简单的矩阵乘法,简化对齐分数部分。
在这个阶段,我们从两个矩阵开始:Q(Query,查询)和K(Key,键)。假设用一个英语句子作为源句段,一个法语句子作为目标句段。假设英语句子有13个单词,法语句子有14个单词。
源矩阵和目标矩阵的维数分别为13*dₖ和14*dₖ。K和Q分别包含13和14个英语单词,由dₖ向量表示。假设dₖ=300。
让我们通过一个非常简单的例子来理解,并分析这个矩阵运算:
键:首先生成带有13个单词的英文句子的嵌入层→维数为300维→得到13×300维
查询:然后生成目标法语句子的嵌入层→14×300维
点积:14×300维。300×13=14×13对齐矩阵
点积用来计算查询和每个键之间的相似度。然后除以键的维度大小的平方根来降低得分。这种缩放有助于在训练过程中,防止点积结果过大,从而稳定梯度。
Softmax函数
我们需要知道,本例中每个法语或英语单词应该分配多少权重或注意力。
使用Softmax函数时,关键是沿着列轴(轴=1)使用函数,合并所有行。由此,我们得以确定每个法语单词应该对应英语单词多少的权重或注意力。
权重矩阵14×13
然后,将这些权重乘以Value值(英语的嵌入层维度为13×300),得到一个矩阵(14×300维)。
输出矩阵中,每个上下文向量的300维表示不仅强调了每个法语单词中的最重要部分,同时包含英语句子的信息。该模型将使用合并上下文为每个法语单词提供译文。
所以这个过程只用到两个矩阵乘法和一个SoftMax函数。下面进入下一个关键部分:教师强制。
教师强制与训练
在衔接所有内容衔接之前,先了解一下教师强制的概念。
标准训练
在标准训练中,Transformer模型使用自己的预测结果,生成输出或目标序列中的下一个标记(token)。如果模型在任一步预测出不正确的标记,可能会使用这个标记来预测下一个标记,进而加剧错误。
教师强制:
在教师强制中,模型会接收训练数据的前一个真实标记会作为输入,并根据这个输入生成下一个标记,而不是模型的预测。因为正确的标记通常用作后续预测的输入,所以模型产生的任何错误都会在下一步中立即得到纠正。教师强制能确保模型始终基于正确的标记序列进行条件化,直到达到特定点,从而让模型更容易学习正确的序列。
神经机器翻译模型
现在,把所有的内容整合到一起。
正如上文讨论的,图6展示了模型仍存在问题,运用起来颇为困难。因此,在应用注意力机制之前,先了解注意力前解码器(Pre Attention Decoder)。
既然理解了重要的概念,就把所有内容衔接起来。
编码器:如图所示,从输入序列(通常是源语言句子)开始,基本上要通过嵌入层,然后经过LSTM(长短期记忆网络)层。编码器会基于输入,生成隐藏状态序列。此处解释的是编码器的内部工作原理。编码器会返回键和Value值。
注意力前解码器:注意力前解码器获取目标序列,将其右移(以在训练期间对齐预测结果),然后通过嵌入层和LSTM层。这个部分会创建解码器的初始隐藏状态,并为注意力机制生成查询。
注意力机制:用注意力前解码器的查询结果和编码器的键及Value值来计算注意力权重。这些权重产生上下文向量,从每个解码步骤的输入中捕获相关信息。
解码器:然后,解码器中的另一个LSTM层会用上下文向量来帮助生成序列中的下一个标记。通过密集层(dense layer)和softmax操作来生成输出序列中每个位置可能标记的概率分布。
输出:解码器基于对数概率,预测目标序列中的下一个标记,并重复这个过程,以生成整个翻译后的序列。
请记住,该图不涵盖内部工作。
总结:
万物归宗,在传统的Seq2Seq学习中,编码器将把序列作为输入,将其压缩成固定大小的“上下文向量”,然后由解码器使用该向量生成输出序列。不同语言对中,处理顺序可能会混淆。例如,在法语中,形容词要出现在名词后面。注意力机制可以解决这个问题。注意力机制让解码器能够在生成序列时,同时关注编码器输出的不同部分,从而提高性能,尤其是较长序列的处理性能。直觉是编码器的每个隐藏状态,通过注意力权重影响解码器的每个输入。我们在本文中看到的是注意力的一个非常基础的版本,但是在深入探讨更复杂的架构之前,了解注意力是非常重要的。
参考来源
[1]https://arxiv.org/pdf/1409.0473.pdf
[2]https://arxiv.org/abs/1706.03762v7
[3]https://pianalytix.com/implementation-of-neural-machine-translation-using-attentions/
(机器翻译,轻度译后编辑,仅供参考。)
原文链接
编辑:张湄婕