Paraformer: Fast and AccurateTransformer for Non-autoregressive End-to-End Speech Recognition
论文下载
摘要
目前ASR常用的Transformer模型虽然效果比较好,但是因为引入了自回归的解码器,所以计算相对效率低一些。为了加速推理,设计了非自回归模型并行生成识别结果,比如单步自回归模型。然而由于输出标签之间的独立性假设,单步自回归模型的效果相比自回归模型会差一些。对于提升单步非自回归模型来讲一共有两个挑战:第一个挑战是准确地预测输出标签的个数并提取隐变量;第二个挑战是增强输出标签间的非独立性建模。 为了解决上述两个挑战,作者提出了一个快速准确的并行transformer模型,标记为Paraformer。该模型属于单步非自回归模型。
1. Paraformer使用基于CIF的predictor预测输出标签的个数并产生隐变量;(借鉴文献【18】)
2. GLM sampler用于产生语义向量增强非自回归模型对上下文的建模能力;(借鉴文献【19】)
3. 最后作者设计了一个策略产生负例,并用MWER损失训练使模型的识别能力进一步提升。(借鉴文献【20】)
在公开的AISHELL-1、AISHELL-2和工业级2w小时任务上的实验结果显示,Paraformer可以获得和当前最优自回归模型相当的识别效果,但是可以提速10倍+。
介绍
端到端语音识别效果已经超过了传统的层级系统。主要有三种流行的E2E架构:CTC、RNN-T、AED。其中AED在序列到序列建模中具有统治性地位,因为其识别准确率高,比如transformers和conformers。虽然语音识别效果好,但是自回归模型比如AED模型需要一个一个地生成识别标签。因此,解码器的计算比较低效,随着输出序列的长度增加解码耗时线性增加。为了提升效率加速推理,许多研究【文献6~8】提出了非自回归模型并行输出识别结果。
基于推理时需要的迭代次数,非自回归模型可以分为单步式非自回归模型和迭代式非自回归模型。A-FMLM【文献9】是单步自回归模型的最早尝试,根据未被遮蔽的标签去预测遮蔽的标签。识别性能受到需要预测目标序列长度的影响。为了解决这个问题,MASK-CTC和其变种提出使用CTC的解码结果增强解码的输入【文献10-12】。最近,出现了单步非自回归模型用来解决上述的限制【文献13-17】。这些模型通过去掉时间依赖同时生成输出序列。 虽然单步非自回归模型可以显著提升推理速度,但是他们的识别性能相比自回归模型差一些,尤其是在大规模数据集上。
前面提到的单步非自回归模型主要关注如何预测输出标签的个数和准确提取隐变量。和机器翻译通过predictor预测输出标签个数相比,ASR预测输出标签个数确实比较难,因为有很多的潜在影响因素,比如说话人的语速、静音、噪音。另一方面,经过作者的观察和分析,单步非自回归模型相比自回归模型具有更多的替换错误,如下图1。作者认为缺少上下文依赖信息导致预测标签个数准确率差不多,但替换错误上升明显(AR和vanilla NAR比较),尤其是单步自回归模型的条件独立假设。另外,所有的非自回归模型都是在学术基准阅读音频上实验的,并没有验证这些模型在工业基准数据上的效果。这篇论文的目标是提升单步非自回归模型的识别效果,使其达到和自回归模型相同的水准,并在大规模工业级数据上验证。
文章提出了一个又快又准的并行transformer模型,可以克服上面提到的两个挑战。首先,不像前面的基于CTC的工作,作者提出了使用基于CIF的predictor网络评估目标长度并产生隐变量。对于第二个挑战,作者设计了基于GLM的sampler模块增强非自回归解码器对输出上下文的建模能力。这个工作受到了机器翻译工作的启发。作者另外设计了一个包含负例的策略,利用MWER损失指导模型学习提升模型性能。
-
实验结果
- AISHELL1 178h 5.2%
- AISHELL2 1000h 6.19%
超过其它的非自回归模型方法,接近自回归模型效果。没有使用语音模型/无监督预训练。
Paraformer是第一个在性能上可以和自回归模型媲美,并且在大规模数据集上相比自回归模型有10倍+的推理速度提升。
方法
整体框架
如上图所示,整个框架包含五个模块:encoder、 predictor、sampler、decoder、loss function。其中Encoder和自回归模型的Encoder一样,本文使用SAN-M和FFN(【文献21】),也可以使用conformer等结构。Predictor用于生成声学特征指导解码。Sampler模块使用声学特征和标签特征生成语义特征。Decoder和自回归解码器相同,只不过这里是双向解码器。解码器包含多个SAN-M、FNN和cross MHA模块。除了CE loss,还会使用MAE loss训练predictor,MWER损失也一起参与模型训练。
整个流程阐述:
输入音频为X,长度为T;音频对应的文本标签为Y,长度为N。Encoder的输入为X,输出为H。Predictor的输入为H,输出为预测的输出标签长度N’并生成声学向量Ea。第一轮解码Decoder的输入为H和Ea,输出为Y’。图中红色虚线Pass1标记部分表示输入Ea,但是并不对这个输入进行反向传播学习。第二轮解码前会首先经过Sampler模块。Sampler模块在声学向量Ea和输出标签向量Ec之间进行采样得到语义向量Es。其中Char指的是标签Y。采样过程依赖Y和Y’之间的距离。第二轮解码Decoder的输入为H和Es,输出为Y’‘,这次进行反向传播学习。此次反向传播学习指导decoder学习上下文语音信息,同时也会指导predictor和encoder的学习。Sampler使用Y’进行距离计算不会进行反向传播学习。最后输出的Y’'会被采样为MWER训练生成负例候选。使用N和N’计算MAE。MWER、MAE和CE loss一起作为loss进行训练。
**推理时,sampler模块是不激活的,并且双向并行解码器只使用声学向量Ea和隐向量H通过一轮输出最终的预测结果。**尽管decoder在每次训练时会前向推理两次,但是因为在推理时只进行了一次所以并不会使计算复杂度变大。
Predictor
Predictor由两个卷基层组成,输出的float weight α \alpha α在0~1之间。作者通过累计此权重预测输出标签的长度。MAEloss定义为:
其实就是将所有 α \alpha α进行了累加,加起来的长度就是预测的长度。LOSS就是真实长度和预测长度差的绝对值。作者引入了CIF机制产生声学向量。CIF是一个软的(非0/1,可以是小数)和单一对齐的,在AED模型中作为流式解决方案的实现【文献18】。声学向量的生成时,CIF对权重 α \alpha α进行累计,如果超过了设定的阈值 β \beta β,说明某一个声学向量的边界确定了。对边界之内的向量H根据权重 α \alpha α进行缩放累计即可得到某一个声学向量。此过程重复直到结尾,可得到所有的声学向量。如下图所示:
在训练时权重 α \alpha α会根据N进行缩放(比如累计的 α \alpha α为N’,使用N/N’对所有的 α \alpha α进行缩放,使用缩放后的 α \alpha α计算声学向量Ea。缩放是为了让的Ea维度和Ec的维度保持一致),但是在推理时无法进行缩放,导致训练和推理之间存在不一致。为了弥补这个不一致,作者提出了使用动态阈值 β \beta β而不是固定阈值。计算公式如下:
下面是一个向上取整,所以分子小于等于分母,阈值 β < = 1 \beta<=1 β<=1。
Sampler
在普通的单步非自回归模型中,优化的目标为: L N A T = ∑ n = 1 N l o g P ( y n ∣ X ; θ ) \mathcal{L}_{NAT}=\sum_{n=1}^{N}logP(y_n|X;\theta) LNAT=n=1∑NlogP(yn∣X;θ)然而,正如上面所说的,单步非自回归模型中的输出标签独立性假设导致模型识别效果不如自回归模型。GLM模块的loss定义如下:
L G L M = ∑ y ′ ′ ∈ G L M ( Y , Y ′ ) ˉ l o g p [ y n ′ ′ ∣ G L M ( Y , Y ′ ) , X ; θ ] \mathcal{L}_{GLM}=\sum_{y''\in \bar{\mathbb{GLM}(Y,Y')}}log~p[y_n''|\mathbb{GLM}(Y,Y'), X; \theta] LGLM=