语音识别(Auto Speech Recognition, ASR)技术是一种将连续的语音信号转化为文本的技术,近年来,随着深度学习的蓬勃发展,端到端(End-to-End,E2E)语音识别技术以其简单的体系结构和优异的性能广受青睐。RNN-Transducer和基于注意力机制的编解码器(AED)是两种主流的E2E识别框架,它们可以使用一个单独的神经网络直接将输入的语音特征序列转化为文字结果,相比于传统语音识别模型在资源消耗和准确率上都具有较大的优势。特别是近期出门问问联合西工大音频语音与语言处理研究组(ASLP@NPU)研发的WeNet工具包[1],具有简洁性、易用性和易部署的特点。


西工大音频语音与语言处理研究组(ASLP@NPU)一直关注端到端ASR方面的研究工作,例如去年针对中文的特点,对RNNT进行了改进,提出了Cascade RNNT的方案[2]以便于更好的利用语言信息。近期,实验室和腾讯合作的论文“Efficient Conformer with Prob-Sparse Attention Mechanism for End-to-End Speech Recognition"被语音研究顶级会议INTERSPEECH2021(Annual Conference of the International Speech Communication Association)接收[3]。该论文在Conformer中引入了一种概率稀疏(Prob-sparse)自注意机制对自注意的计算过程进行了稀疏处理,从而在保持相同错误率的情况下,使得Conformer的Self-Attention模块的推理速度提高了8%~45%,内存使用量减少了15%~45%。现对该论文进行简要的解读和分享。


  • 论文题目:Efficient Conformer with Prob-Sparse Attention Mechanism for End-to-EndSpeech Recognition

  • 作者列表:王雄,孙思宁,谢磊,马龙

  • 论文原文:https://arxiv.org/abs/2106.09236



发表论文截图



扫码直接看论文


背景动机

对于常见的端到端语音识别模型,诸如RNN-Transducer[4]和Transformer[5]而言,编码器(Encoder)对于它们的性能而言至关重要。而具有Self-Attention机制的Transformer模块及其变种最近已成为大多数E2E模型的核心模块,与具有长-短期记忆(LSTM)单元的循环神经网络相比,Transformer具有更高的精度和高效的计算能力,并且拥有对较长的全局上下文建模的能力。但是由于它捕获局部信息的能力较差,而语音识别模型又恰恰需要获取一定的局部信息来关注发音,所以为了同时利用局部上下文和全局上下文,谷歌近期提出了Conformer模型[6]。这一模型将卷积和Self-Attention结合,它利用卷积来捕获局部信息,以弥补自注意力机制的不足。同时大量的研究表明,Conformer能够获得较好的语音识别精度,并且效率较高。

现有的Conformer-Transducer模型是使用Conformer模块作为Encoder来提高Transducer模型的识别性能。但是对于Conformer而言,Self-Attention仍然扮演着非常重要的角色。在Self-Attention机制下,每个输出都是整个序列的加权组合,这使得它具有对全局信息进行建模的能力。然而,将全局自我注意在应用于ASR任务中有两个问题:

  • 计算效率:Self-Attention机制的时间复杂度相对于序列长度T可以达到O(T^2),因此随着输入序列长度的增加,时间复杂度将以平方倍数的增加,而对于ASR任务,语音信号可以持续几秒到几分钟,输入长度从几十帧到几千帧不等,因此降低计算复杂度是至关重要的,尤其是对于较长的句子。

  • 信息冗余:许多研究表明,语音识别中存在一定的时间轴上的冗余,这使得Self-Attention这种逐帧计算的模型结构会存在不必要的计算,一些可能无用或者作用不大的帧在计算过程中消耗了部分可以避免的计算量从而导致信息冗余的产生。


为了解决上述问题,同时受到近期Informer[7]工作的启发,我们提出了一种基于概率稀疏度的注意力机制的Conformer-Transducer模型。具体而言,我们将注意力机制中的每一个查询对所有键值之间的注意力得分定义为一种概率分布概率,如果这一分布接近均匀分布,则注意力机制退化为平均值,也就证明这一查询是冗余的。因此,只有注意得分的分布远离均匀分布的查询才能占主导地位。我们在每层中定义注意力得分的分布和均匀分布之间的Kullback-Leibler(K-L)散度作为稀疏度量,并且仅仅选取稀疏度量最高的U个查询进行计算。在不降低性能的情况下,基于概率稀疏度的注意力机制方法可以将计算复杂度降低到O(UT)。此外,为了减少稀疏度量的额外计算量,我们还采用了层间稀疏度量共享策略来进一步减少计算量。最终,我们在保持相同水平的语音识别准确率的情况下,使得模型中Self-Attention模块的推理速度提高了8%~45%,内存使用量减少了15%~45%。


Conformer-Transducer端到端语音识别模型概述

Transducer模型能够在给定输入语音特征x的情况下,直接建模x和文本序列y之间的关系,整个模型包括编码器(Encoder)、预测器(Prediction)和连接器(Joint Network)。其中Encoder可以获得输入特征x的高维表示,具体的公式如下所示:




Prediction的主要作用是获得历史解码结果的一个高维表示,这一部分通常由一个嵌入层(Embedding)和若干层LSTM组成,具体公式如如下:


Joint Network是由若干个全连接层组成,其作用是将Encoder和Prediction输出的高维表示结合到一起,并且通过一个Softmax层解码得到最终的分类结果,具体公式可以表示为:




整个Transducer模型在训练中使用的前向后向算法来优化后验概率分布,具体的模型结构图1所示:



其中Encoder部分使用的结构为Conformer,相比于单纯的Self-Attention而言,Conformer模块包含四个部分:马卡龙式的前馈全连接模块(Feed-Forward Network,FFN)、多头自注意力模块(Multi-Head Self Attention,MHSA)、卷积模块(Convolution,CONV)和第二个马卡龙式的前馈全连接模块,整个过程的数学表示式如下:




基于概率稀疏的自注意力机制

给定输入矩阵X,自注意机制首先将X投影到查询矩阵Q、键矩阵K和值矩阵W,然后注意力机制可以表示为:


为了更好的描述注意力机制的稀疏度问题,将这一公式重新表示为它的向量形式,具体地说,对于第i个查询所对应注意力得分可以表示为:


这里我们将p定义为第i个查询对于键K的注意力得分,那么第i个查询的自注意力机制输出可以表示为:



在这个过程中,注意机制的时间复杂度为O(L^2)。一般而言,如果注意力得分的分布服从均匀分布,则自注意力机制的输出退化为所有输入值的平均值,失去“注意”能力。因此,只有当前查询的注意力得分的分布远离于均匀分布,这个查询才是有效的。因此,注意力得分的的真实分布P与均匀分布U之间的Kullback-Leibler(K-L)散度可以用以下公式来表示:


去掉常量后,我们可以得到如下公式:


我们将并将其定义为该查询的稀疏度量M_sparse,具有较大的稀疏度量的查询在自注意机制中起着更重要的作用。这样,在自注意力机制的计算过程中,我们可以度量每个查询的稀疏性,从而去掉稀疏度量值较低的查询以简化了整个计算过程。虽然上面提出的稀疏度量符合理论要求,但它需要遍历所有查询来计算点积过程,这仍然是需要消耗大量计算。根据相关参考文献[7]中的内容,为了进一步减少此部分的计算量,可使用抽样方法将稀疏度量公式近似为如下表示:



这里使用的键矩阵K是经过随机采样的,其长度为(r_sample)*ln(L),这里的采样度r_sample是一个常量,用于控制采样的样本数。在获取每个查询的稀疏度量之后,我们仅使用稀疏度量值值较高的L_sparse个查询来计算自注意力的输出,其中L_sparse=(r_sparse)*L,我们称r_sparse为稀疏度。最后,我们将使用如下的公式来完成自注意力机制的计算:


此外,为了避免逐层计算稀疏度量带来的较大计算量,我们使用了层间稀疏度量共享策略,也即每隔N_share层计算一次系数度量,并且在接下来的(N_share)-1层共享这一系数度量值,这里称N_share为共享系数。


实验验证

实验中同时使用了AISHELL-1和Librispeech两个开源数据集,分别在不同的语种和数据量上验证了我们的方案。所有使用的模型大小是一致的(80M),并且都是在相同算力下进行相同轮数的训练以保证公平性。

训练策略和超参数:如表1所示,我们对比了不同的训练策略对模型准确率的影响,对比E0和E1而言,使用一个训练好的模型进行初始化对于稀疏度小于1的模型而言是很重要的,同样为了公平,我们也设计了B1和B0的对比,事实证明E1相比于E0的提升并不是由于训练步数增多导致的。对比E2和E1而言,证明了我们基于K-L散度的稀疏策略是有意义的,能够明显比随机稀疏得到更好的效果。图1则分析了不同的稀疏度情况下的CER变化曲线,可以看出在稀疏度为0.35的时候能够保证模型性能没有损失。



层间共享策略:由于稀疏度量的评价过程也需要消耗计算量,因此为了最小化这一部分的计算量,我们使用了一种层间稀疏度量共享的策略,即若干连续层同时使用这几层里第一层的系数度量,从表2中可以看出,当4层Conformer之间共享稀疏度量的时候,并不会带来性能的下降。



Librispeech数据实验结果:为了进一步验证我们的方案在大数据模型和其它语种上的推广性,我们在Librispeech集合上进行了不同参数的实验,如表3所示,可以看出L0~L3所带来的性能损失基本上是可以忽略不计的。




性能提升分析:我们选取了上文中的L2模型所使用的超参数,对Conformer结构中的Self-Attention模块的推理耗时和内存占用进行了进一步的分析,如图3所示,在不同句长上推理速度可以提高8%~45%且内存使用量减少15%~45%。



参考文献

[1] Z. Yao, D. Wu, X. Wang, B. Zhang, F. Yu, C. Yang, Z. Peng, X. Chen, L. Xie, "WeNet: Production Oriented Streaming and Non-streaming End-to-End Speech Recognition Toolkit", INTERSPEECH, Brno, Czech Republic, Aug 30 - Sept 3, 2021
[2] X. Wang, Z. Yao, X. Shi, L.Xie, "Cascade RNN-Transducer: Syllable Based Streaming On-device Mandarin Speech Recognition with a Syllable-to-Character Converter", SLT2021, January 19-22, Shenzhen, China
[3] X. Wang, S. Sun, L. Xie, and L. Ma,  "Efficient Conformer with Prob-Sparse Attention Mechanism for End-to-EndSpeech Recognition", INTERSPEECH, Brno, Czech Republic, Aug 30 - Sept 3, 2021.
[4] Y. He, T. N. Sainath, R. Prabhavalkar, I. McGraw, R. Alvarez, D. Zhao, D. Rybach, A. Kannan, Y. Wu, R. Pang et al., "Streaming end-to-end speech recognition for mobile devices," IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2019, pp. 6381–6385.
[5] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N.Gomez, Ł. Kaiser, and I. Polosukhin, “Attention is all you need,” Advances in neural information processing systems, 2017, pp.5998–6008.
[6] A. Gulati, J. Qin, C.-C. Chiu, N. Parmar, Y. Zhang, J. Yu, W. Han, S. Wang, Z. Zhang, Y. Wu, and R. Pang, "Conformer: Convolution augmented transformer for speech recognition," INTERSPEECH, 2020, pp. 5036–5040.
[7]  H. Zhou, S. Zhang, J. Peng, S. Zhang, J. Li, H. Xiong, and W. Zhang, “Informer: Beyond efficient transformer for long sequence time-series forecasting,” AAAI, 2021.




扫码关注我们
助力AI语音开发者的社区
VJoinU
VJoinU
关注AI语音技术的人才招聘
公众号