题目:Improving generalization of transformer for speech recognition with parallel schedule sampling and relative positional embedding
链接:https://arxiv.org/pdf/1911.00203.pdf
摘要:
与RNN的顺序操作相比,可以在训练中获得更快的迭代速度。Transformer的深层的性能优于基于RNN的AED。但是,这种并行化使得很难应用计划采样的训练。 由于序列在不同位置具有相似的声学或语义信息,所以具有正弦曲线位置嵌入的自我注意可能导致较长序列的性能下降。为了解决这些问题,我们建议使用并行调度采样(PSS)和相对位置嵌入(RPE)来帮助Transformer推广到看不见的数据。我们提出的方法在10,000小时的ASR任务中,相对于短话语而言可实现7%的相对增益,对于长话语则可实现30%的绝对的增益。
1. Introduction
传统的基于DNN-HMM的混合ASR系统需要独立优化声学模型(AM),发音模型(PM)和语言模型(LM)。 端到端(E2E)方法旨在通过在单个神经网络中共同学习这些模型来简化ASR系统,并取得了可喜的成果。 CTC,RNN-T,Recurrent Neural Aligner[6、7],Segment Neural Transduction[8]和基于注意力的编码器解码器 (AED)模型都是E2E模型,在文献中对此进行了很好的探讨。
在许多语音任务上的AED模型都是由一个编码器,一个解码器和一个注意力机制组成,它们从编码器中输出提取的相关特征以供解码器确定需要输出的token。 编码器通常使用RNN捕获语音的时间特性,并从原始输入频谱特征中输出更高级别的特征。 解码器按上下文的token和编码器输出顺序生成条件进行输出token。 虽然真实标签在训练中用作上下文token,但预测的token用作解码器输入的上下文token。 通常采用计划采样(SS)[12]来弥补训练和预测之间的差异。 RNN的顺序迭代也适合于SS在不牺牲训练效率的情况下在每个token级别上进行集成。 但是,RNN的这种顺序功能使训练很耗时。
AED的最新架构是神经机器翻译(NMT)的Transformer[13]中提出的自我注意层。自我注意结构通过对输入特征本身的时间注意来学习输入序列内部的时间和上下文依赖性,这可以代替LAS中的RNN。Transformer已应用于E2E语音识别系统[14,15,16],并取得了良好的效果。基于Transformer的E2E-ASR系统依赖于前馈自注意模块,因此它比基于RNN的AED训练速度更快、并行性更强。在结构较深的情况下,Transformer的性能优于RNN-AED。然而,**Tranformer解码器的非递归并行前向处理也导致训练阶段的计划采样难以利用。**此外,语音的时序是一个重要的区别,它可以用输入特征的循环过程来表示。虽然绝对位置嵌入(APE)可以被添加到Transformer的输入特征中,加以利用序列的顺序,但是对于transformer来说,AED的长句性能退化更为严重。与基于RNN的AED相比,我们发现Transformer对数据集中的长句子的敏感性更高。
在本文中,我们建议对SpeechTransformer使用并行调度采样。 更精确地说,利用贪婪搜索得到以标签为输入的模型预测。然后我们混合真实标签和生成的输出,形成一个新的输入,输入到解码器中。我们还使用链模型的识别结果作为文本序列与标签序列混合。实验结果表明,这两种方法可以得到相似的结果,与RNN的Teacher Forcing相比,相对增益约为7%。
我们还发现transformer在长句子中存在大量的删除错误,超过训练集最大长度的字符可能会被删除。我们称之为尾删除(TD)。其他的缺失出现在相似的音段或语义段之间,我们称之为内部删除(ID)。我们认为,进入整句话的自我注意和源注意会使模型在关注看不见的长句时变得混乱。当然,我们要限制注意力的位置范围,以避免模型出现这种混乱。采用相对位置嵌入的方法将模型推广到不可见的长句子,在40个汉字以上的测试集上获得30%的绝对增益。
论文的其余部分如下。第2节简要回顾了ASR任务中使用的Transformer。第3节详细描述了所提出的方法。第4节介绍了实验装置和结果,第5节总结了我们的发现和未来的工作。
2.Transformer based E2E ASR
ASR中使用的AED是通用的序列对序列任务。编码器将光谱特征
的输入序列转换为更高级别的表示
解码器以h为条件,自回归地预测语音模型单元(如音素、音节、字符或子词)的输出序列将先前生成的单元用作上下文输入。Transformer遵循AED架构,使用堆叠式自我关注和点式全连接层,用于编码器和解码器。
2.1 Encoder and decoder architecture
编码器由N个相同的块组成。每个块有两个子层。第一种是多头自注意层(MHA),第二种是位置全连接前馈网络(FFN)。两个子层中的每一个子层都包含一个残差网络,然后是层规一化。与编码器类似,解码器也由m个相同的块组成。除了编码器块中的两个子层和残差连接之外,在MHA和FFN子层之间的解码器块中添加了第三个子层,该子层对编码器堆栈的输出表示执行多头源关注。
2.2 Multi-head attention
Transformer中使用的注意层采用“scaled dot-product attention”,形式如前
对于解码器中的编码器层和自注意层,所有的键、值和查询K、V、Q都来自前一层的输出特征。在源注意层中,查询来自前一个解码器层,键和值来自编码器的最终输出。
2.3 Absolute positional embedding
Transformer不包含递归和卷积,为了使模型能够利用序列的顺序,在输入表示中加入绝对位置编码,然后输入到编码器和解码器中。
其中pos表示序列中的绝对位置,i=i表示输入特征的第i ii维。由于原始语音频谱特征通常包含数百帧,因此在APE运算之前使用网络来计算下采样特征是有益的。更多详情请参考[13,14]。
3.Proposed methods for improving generalization of Transformer
3.1 Parallel scheduled sampling
计划抽样是一种可以弥补训练和预测之间的差距的训练策略。以往的工作表明,这种方法可以改善只考虑几个步骤样本的计划抽样的SpeechTransfor的性能[19]。然而,当应用计划抽样时,vanilla transformer由于破坏并行性和重复计算而不如LAS。为了缓解这一问题,我们希望通过模拟预测的误差分布,提前获得解码器的整个输入token序列,形成并行调度采样。下面我们将介绍两种并行计划采样方法。与[19]中多步采样不同的是,我们的方法在每一步都考虑从模型中采样而不损失效率。
3.1.1 PSS with hybrid model result
该方法利用链式模型(chain model)的解码结果实现PSS。首先,对于每一个话语,我们从链式模型中得到其假设的文本,该模型模拟Transformer的解码结果。然后,根据teacher force rate,将与训练数据的标准答案混合。teacher force rate表示将y yy中的token用作最终解码器输入的可能性,并通过以下分段线性函数进行调度:
其中是最小的teacher force概率,通常不为零,以防止训练集过拟合。i ii是训练的步数, 和 代表计划抽样中的开始步数和结束步数。“epoch”和“batch”的步数在我们的实验中都进行了探索,“batch”稍微好一些。最后,我们获得整个token序列作为解码器的输入,以实现并行性化。与teacher force training相比,在获得每个话语的混合系统结果方面存在时间成本的增加。这应该比在Transformer上简单地应用AED定时采样要快得多。
此外,我们研究了“token”和“句子”级别的混合,而“token”的性能稍好一些。 对于token级别的混合,可以表示为:
当 和 PAD是填充标记,用于批量填充简短的句子。 在句子层面,根据选择整个或作为输入。
该方法采用反向翻译(back-translation)以获取带有错误的源文本以用于训练。 SS的目的是使AED对几种解码错误都具有鲁棒性。 尽管没有证据表明混合系统的误差分布与AED的误差分布有任何关系,但是包含多个误差的混合系统结果可以被视为一种特殊的数据增强技术。 因此,它应该有助于模型推广。
3.1.2 PSS with self-decoding result
我们在此描述的第二种方法是将y yy与Transformer本身解码的假设结果混合。 一种简单的方法是使用teacher forcing 训练的模型作为脱机模式(例如从链模型进行解码)来生成假设的文本。 相反,我们在在线训练过程中生成假设结果并迭代更新模型。因此,我们以贪心的解码过程为依据,通过在线搜索得到解码结果。然后,使用上一小节中相同的调度策略。
受机器翻译工作[21]的启发,我们发现我们的工作是[21]中 K=1时的一个特例,其中K KK是进行上述操作的次数。此外,我们进一步揭示了teacher forcing训练是 K=0时的特例。为了将它们与传统的计划采样相关联,我们可以进行以下预测过程。当 K=1时,仅从解码中对第一生成的字符进行采样。如果 被送入解码器并重复上述操作,则和都被合理地采样。因此,对 次重复上述过程,具有自解码结果的PSS相当于原计划采样。时间成本也将与传统SS大致相同。
3.2 Relative positional embedding
我们观察到大量的删除错误,TD(尾删除)和ID(内部删除),对于长句子。TD是因为transformer在训练阶段没有看到这么长的句子,当输出长度接近训练集的最大长度时,容易完成解码。transformer的ID可能是由于相似的音段和语义段之间的注意力跳跃造成的。
许多研究试图通过增加训练数据长度来解决这一长序列生成问题。在这个方向上,他们的主要工作集中在通过稀疏注意机制或分段transformer来控制记忆[22,23,24]。针对NMT提出的原始APE可能不适合语音应用。APE可能会让模型在长话语时注意到错误的位置,因为它从来没有接受过这样长句子的训练。受文献[25]的启发,我们将RPE引入到SpeechTransformer中,以解决长句泛化问题,而不仅仅是增加长数据。我们的主要目的是限制位置范围,并在该范围内加强相对位置关系。由于模型已经学会了如何注意相关的上下文,所以RPE可以减轻TD。此外,在限定的位置范围内可能出现较少的相似段,因此ID也可以被求解。
假设一个自我注意层的输入是,我们定义每个 和之间的相对位置为 。为了限制位置范围,我们考虑了相对位置k kk的最大绝对值,并获得 2×k+1嵌入,表示为 。然后,两个输入之间的任何相对位置嵌入可以表示为:
接下来,将相对位置嵌入并入式(1)中的相似性计算(softmax输入),如下所示:
在这里,query和key与z相同,我们在不同的注意力头上共享RPE。其他计算同原transformer一样。
公式(8)可以通过应用矩阵的分布律将其分成两个项来进行有效的训练:
第一项等价于原始相似度计算。第二项可以用张量整形来计算,也就是说,一个的矩阵乘以一个的矩阵,然后对其进行整形以与第一项相匹配。
4.Experiment
4.1 experimental setup
我们的实验是在一个10000小时的搜狗汉语语音听写数据上进行的,这个数据包含大约1200万句子。只有训练集中约1000个句子包含40多个汉字(约10秒)。超过10秒或超过40个字符的句子将被丢弃。我们使用的主要测试集包括长度小于40个字符的大约33K条短句(SU)和长度大于40个字符的大约5.6K条长话语(LU)。使用传统的ASR前端,每10分钟在25毫秒的窗口内提取71维FBank。每四个连续的帧被叠加形成一个284维的特征向量,我们跳4帧得到更短的Transformer模型输入特征序列。
以6812个字符为建模单元,包括26个英文字符、6784个汉字、起始序列(SOS)、序列结束(EOS)和未知字符(unknown character)。通过adam优化器优化标签序列和预测序列之间的交叉熵来训练所有模型。训练期间,标签平滑(LS)设置为0.1以提高性能。我们还将10%的丢失率应用于每个子层的输出,然后将其添加到子层输入并进行标准化。整个训练epoch固定为12。我们从随机初始化开始训练我们的模型,初始学习率为0.0002,并从第7个epoch起将其减半。在没有外部语言模型的情况下,使用了五个假设的宽波束搜索来评估我们的模型。
4.2 Improve by PSS
基本transformer模型包含5个MHA-FFN模块和3个MHA-MHA-FFN模块。模型尺寸 dm为768,FFN的内层尺寸为2048。我们使用h = 16 h=16h=16个注意头。对于每个注意头,我们使用 。有2048和768节点的两层前馈网络将原始284维特征映射到768维。我们还训练了一个LAS,它由4层BLSTM编码器和1个LSTM解码器组成,基本设置与文献[26]中相同。我们基本模型的CER在表1的第一个部分中给出。与B 0 B0B0和B 1 B1B1相比,Transformer在SU上的性能优于LAS,而在LU上的性能却下降了很多。我们将LU集的降级留给第4.3小节,并在这里使用计划抽样来改进SU。
由于篇幅不足,我们只报告3.1.1节中提到的“token”和“batch”样式的实验。以B1中的模型为出发点,我们进行了几个SS实验。首先,我们使用TDNN-LSTM链模型(CM)的解码文本结果执行SS,训练数据为50000小时,编号为E1。SU和LU的CER分别为6.65和5.32。当最终Pmin=0.8时,我们得到SU的8.93 CER。有人可能会说,这种增益可能来自TDNN-LSTM的更大的训练数据。因此,我们使用B1的波束搜索解码训练集生成的假设文本(hypothesized text )进行E2测试。E2与E1的结果相似。然后在E3中,我们在训练阶段以一种在线的方式生成假设文本,并以标签作为解码器输入,以更接近实际的调度采样过程。当K=1,Pmin=0.5时,SU的CER达到8.88,相对减少约7.2%。通过E3得到的较好结果表明,随着训练的进行解码是并行调度采样的一个更好的选择。
4.3 Improve by RPE
如上所述,LAS在LU上的泛化能力比transformer好,因为序列的迭代过程使得LAS比transformer更好地学习顺序信息。结果表明,使用APE的自我注意层学习到的有序信息很难推广到训练集中看不到的序列。图1示出了由于TD或将注意力从假设位置跳到另一个位置而导致的大量删除错误。
实验结果总结见表2。没有PE,虽然LU有所改善,但SU却没有下降。在E6中,我们用一个可学习的token ID APE替换固定的APE,就像在解码器中嵌入token一样。在LU上token ID嵌入比 sin/cos-APE差,但在SU上类似。然后尝试在编码器(E7)和解码器(E8)中引入RPE。当将RPE添加到编码器中的MHA层时,LU从42.41提高到33.56。在没有APE的情况下,它进一步提高到29.87,并设置k=10,这意味着要同时处理大约2个左右的汉字。当我们使用2字符范围的RPE到解码器MHA时,CER继续减小到12.73。随着RPE的出现,即使是长句出现,局部注意的关系已经被学习到了。此外,在局部中出现相似片段的可能性变小,使得模型对它们的区分负担很小。因此,RPE有助于降低TD和ID,这也表明局部和相对位置更适合于语音识别。总体而言,通过相对位置嵌入,我们将LU集的CER从42.41降低到12.73,绝对增益为30%。
4.4 Combine PSS and RPE
最后,我们在表3中报告了用PSS和RPE训练的模型的结果。E9是PSS和RPE的组合,分别在E3的第二行和E8的第一行设置。我们假设在LU上PSS的改进很小是因为我们只执行K=1的混合过程。B2是TDNN-LSTM链模型,在同一训练集中用无格MMI训练。从图1和表3可以看出,在不集成外部语言模型的情况下,我们提出的方法优于SU上的混合模型,也不落后于LU上的链模型。与基极变压器相比,SU的CER相对提高了7.0%,LU的绝对增益提高了约30%,这再次证实了我们方法的有效性。
5. Conclusions and future work
在这项工作中,我们应用PSS和RPE成功地提高了Transformer的泛化能力。PSS将链式模型结果或自解码结果与真值情况相结合,以逼近预定采样的实际采样过程。RPE赋予transformer区分相似的声学和语义片段的能力。实验结果表明,短句相对提高了7%,而长语则获得了30%的绝对增益。RPE仅适用于编解码器中的自我注意计算。为了进一步提高Transformer在语音中的泛化能力,源注意中的注意限制是我们下一步的研究方向。