5、 Conformer
应用于ASR领域,Transformer和CNN的模型显示出较好的结果,且优于RNN。Transformer模型擅长捕获基于内容的全局交互,而CNN有效利用局部特征。这项工作通过研究如何以参数高效的方式将卷积神经网络和Transformer组合起来,来建模音频序列的局部和全局依存,从而充分利用两者优势。为此,本文提出了用于语音识别的卷积增强的Transformer,称为Conformer。Conformer主要的改进点在于Transformer在提取长序列依赖的时候更有效,而卷积则擅长提取局部特征,因此将卷积应用于Transformer的Encoder层,同时提升模型在长期序列和局部特征上的效果。
Conformer模型在输入的时候,首先通过一个卷积网络进行下采样,然后接上一系列的conformer模块,基本结构如下:
图7 Conformer编码器模型结构。Conformer由两个 macaron-like feed-forward 层组成,带有half-step残差连接,夹在多头自注意力和卷积模块中,之后是一个后置的分层模型
conformer模块包含以下几个部分:(1)Feedforward module;(2)Multi-head self attention Module;(3)Convolution Module。其中两个Feedforward输出都乘以了1/2。
Multi-head self attention Module。首先应用了一个来自于Transformer-XL的multi-headed self-attention (MHSA),具体来说是一个相对正弦位置编码(relative sinusoidal positional encoding),它能让self-attention模块在变长输入上有更好表现,所得到的编码器对语音长度的变化具有更强的鲁棒性。
图8 Multi-Headed self-attention模块
Convolution Module。对于Convolution Module来说,使用了pre-norm残差,point-wise卷积和门控线性单元(Gated Linear Unit,GLU)。如下图所示:
图9 卷积模块。卷积模块包含一个扩展系数为2的pointwise卷积,用GLU激活层投射通道的数量,然后是一个一维深度卷积。一维深度卷积之后是一个Batchnorm,然后是一个Swish激活层
Feedforward module。遵循pre-norm residual units,使用具有残差单元的层归一化,并在第一个线性层的输入前也应用层归一化。还应用Swish激活和dropout,这有助于正则化网络。图28示出了前馈(FFN)模块。
图10 Feed forward 模块。第一个线性层使用4的扩展因子,第二个线性层将其投影回模型维度。我们在前馈模块中使用swish激活和预范数剩余单元
该工作提出将Transformer block中的原始前馈层替换为两个half-step前馈层,一个在注意力层之前,一个在其后。在前馈(FFN)模块中使用half-step残差权重。第个二前馈模块之后紧接一个final layernorm层。因此,给定一个输入x_i和一个Conformer block i,块的输出y_i是:
其中,FFN指的是前馈模块,MHSA是指多头自注意力模块,CONV指的是如前所述的卷积模块。
当前 SOTA!平台收录 Conformer 共 3 个模型实现资源。
项目 | SOTA!平台项目详情页 |
Conformer | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/conformer-l |
前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。
网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。
移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。