写点什么

语音识别端到端模型解读:FSMN 及其变体模型

发布于: 2020 年 12 月 03 日

摘要:在很长一段时间内,语音识别领域最常用的模型是 GMM-HMM。但近年来随着深度学习的发展,出现了越来越多基于神经网络的语音识别模型。

一、概述

在很长一段时间内,语音识别领域最常用的模型是 GMM-HMM。但近年来随着深度学习的发展,出现了越来越多基于神经网络的语音识别模型。在各种神经网络类型中,RNN 因其能捕捉序列数据的前后依赖信息而在声学模型中被广泛采用。用得最多的 RNN 模型包括 LSTM、GRU 等。但 RNN 在每一个时刻的计算都需要上一个时刻的输出作为输入,因此只能串行计算,速度很慢。

除此之外,相比于 FNN 等网络结构,RNN 的训练易受梯度消失的影响,收敛得更慢,且需要更多的计算资源。前馈序列记忆神经网络(Feedforward Sequential Memory Networks, FSMN)[1][2]的提出,就是为了既能保留 RNN 对序列前后依赖关系的建模能力,又能加快模型的计算速度,降低计算复杂度。而之后提出的 cFSMN[3]、DFSMN[4]和 Pyramidal FSMN[5],都是在 FSMN 的基础上,进一步做出了改进和优化。FSMN、cFSMN 和 DFSMN 都是中科大张仕良博士的工作,Pyramidal FSMN 则是云从科技在 2018 年刷榜 Librispeech 数据集时提出的模型。

二、FSMN



图 1. FSMN 模型结构

FSMN 从本质上来说是一个前馈全连接网络(FNN),创新之处在于其隐藏层中增加了一个记忆模块(memory block)。记忆模块的作用是把每个隐藏状态的前后单元一并编码进来,从而实现对序列前后关系的捕捉。具体的计算流程如下:假设输入序列为,其中表示 t 时刻的输入数据,记对应的第层隐藏层状态为,则记忆模块的输出为:



其中,表示逐元素相乘,是需要学习的系数参数。这是单向的 FSMN,因为只考虑了 t 时刻过去的信息,若要考虑未来的信息,只需把 t 时刻之后的隐藏状态也用同样的方式进行添加,双向 FSMN 的计算公式如下:



其中,表示考虑过去信息的阶数,表示考虑未来信息的阶数。记忆模块的输出可以视作 t 时刻的上下文的信息,与 t 时刻的隐藏层输出一起送入下一隐藏层。下一隐藏层的计算方式为:



FSMN 也可以与注意力机制相结合,此时记忆模块的参数以及输出的计算方式为:



三、cFSMN



图 2. cFSMN 模型结构

为了进一步简化模型,压缩模型大小,提高训练和推理速度,cFSMN 对 FSMN 主要做了两个改进:

  1. 通过对权重矩阵进行低秩矩阵分解,将隐藏层拆成两层;

  2. 在 cFSMN 层的计算中进行降维操作,并只把记忆模块的输出送入下一层,当前帧的隐藏状态不再直接送入下一层。

cFSMN 层的具体计算步骤为:通过一个低秩线性变换将上一层的输出进行降维,得到的低维向量输入记忆模块,记忆模块的计算类似于 FSMN,只是多加一个当前帧的低维向量来引入对齐信息。最后把记忆模块的输出进行一次仿射变换和一次非线性变换,作为当前层的输出。参照图 2,每个步骤的计算公式如下:



在 Switchboard 任务上,cFSMN 可以在错误率低于 FSMN 的同时,模型大小缩减至 FSMN 模型的三分之一。

四、DFSMN



图 3. DFSMN 模型结构

顾名思义,DeepFSMN (DFSMN)的目的是希望构建一个更深的 cFSMN 网络结构。但通过直接堆叠 cFSMN 层很容易在训练时遇到梯度消失的情况,受残差网络(Residual Network)和高速网络(Highway Network)的启发,DFSMN 在不同层的记忆模块之间添加了 skip connection。同时,由于语音信号的相邻帧之间存在重叠和信息冗余,DFSMN 仿照空洞卷积在记忆模块中引入了步幅因子(stride factor)。参照图 3,第层记忆模块的计算方式为:



其中,表示 skip connection 操作,论文中选择的是恒等映射(identity mapping)。和分别是记忆模块在处理过去信息和未来信息时使用的步幅大小。

四、Pyramidal FSMN

Pyramidal FSMN(pFSMN)认为之前的 FSMN 系列模型的一个缺点是,底层和顶层的网络层都会去提取长期上下文信息,这就造成了重复操作。pFSMN 提出了金字塔型的记忆模块,越深的网络层提取越高级的特征,即底层网络层提取音素信息,而顶层网络层提取语义信息和句法信息。这种金字塔结构可以同时提高精度、减少模型参数量。pFSMN 减少了 DSFMN 中使用的 skip connection 的数量,只在记忆模块的维度发生变化时才进行 skip connection 操作。记忆模块的计算方式为:



除了引入金字塔结构,pFSMN 的另外两个改进是:

  1. 借鉴图像处理的方法,在 FSMN 层之前加入一个 6 层 Residual CNN 模块,用于提取更为鲁棒的语音特征,并通过降采样减少特征维度。

  2. 采用交叉熵损失(CE loss)和 LF-MMI 损失的加权平均来作为模型训练时使用的损失函数。引入 CE loss 的原因是训练序列数据时很容易出现过拟合的情况,CE loss 相当于起到一个正则化的效果。



图 4. Pyramidal FSMN 模型结构

参考文献:

[1] Zhang S, Jiang H, Wei S, et al. Feedforward sequential memory neural networks without recurrent feedback[J]. arXiv preprint arXiv:1510.02693, 2015.

[2] Zhang S, Liu C, Jiang H, et al. Feedforward sequential memory networks: A new structure to learn long-term dependency[J]. arXiv preprint arXiv:1512.08301, 2015.

[3] Zhang S, Jiang H, Xiong S, et al. Compact Feedforward Sequential Memory Networks for Large Vocabulary Continuous Speech Recognition[C]//Interspeech. 2016: 3389-3393.

[4] Zhang S, Lei M, Yan Z, et al. Deep-fsmn for large vocabulary continuous speech recognition[C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018: 5869-5873.

[5] Yang X, Li J, Zhou X. A novel pyramidal-FSMN architecture with lattice-free MMI for speech recognition[J]. arXiv preprint arXiv:1810.11352, 2018.

 

点击关注,第一时间了解华为云新鲜技术~


发布于: 2020 年 12 月 03 日阅读数: 29
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
语音识别端到端模型解读:FSMN及其变体模型