原文链接:Conformer: Convolution-augmented Transformer for Speech Recognition
一、原理分析
由于Transformer注重全局相关性,而CNN注重局部相关性,则二者结合可能在端到端ASR中取得较以往的RNN更好的效果。
二、结构
Conformer Block = (1/2 * FNN + MHSA + Conv + 1/2 * FNN + LayerNorm) with Reisdual
三、与Transformer区别
1.不同的模块
a)SWISH + ReLU: 使用激活函数 Swish(x) = x * torch.sigmoid(x)
b)CNN Block
c)Macaron FFN : 使用成对FNN 并乘以1/2权重,如Conformer Block图
d)Relative Pos.Emb 位置编码方法:
其中pos为输入单位在输入中的位置,2i 代表该向量中的第 2i 个维度,dm为维度的总数。
2.结论
第二个与第三个模块最为重要
四、几个研究维度
1.MHSA与CNN结合方式
a)使用轻量级CNN
b)交换MHSA与CNN的顺序
c)将输入划分开再传入多个注意头中
2.Macaron FFN
使用双FFN和权重乘以1/2,哪个更重要?都重要!
3.注意头的数量
注意头数 * 维度数(dm) == 512,其中注意头数取16较为合适
4.卷积核大小
文章研究了3、7、17、32、65等大小的卷积核对结果的影响,kernel_size == 32 时效果最好
五、数据相关
1.数据集
LibriSpeech、testclean、testother
2.语音预处理
80-channel filterbanks、25ms window、10ms stride
3.频谱增强
with mask parameter (F = 27), and ten time masks with maximum time-mask ratio (pS = 0.05),, where the maximum-size of the time mask is set to pS times the length of the utterance.
(这里暂时不太明白)