Speech-Transformer
论文:
SPEECH-TRANSFORMER: A NO-RECURRENCE SEQUENCE-TO-SEQUENCE MODELFOR SPEECH RECOGNITION
论文链接:
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8462506
1. 思路:
1)整体采用seq2seq的encoder和decoder架构;
2)借助transformer对文本位置信息进行学习;
3)相对于RNN,transformer可并行化训练,加快了训练速度;
4)论文提出了2D-attention结构,能够对时域和频域两个维度进行建模,使得attention结构能更好的捕获时域和空间域信息
2.模型:
speech-transformer 整体采用encoder和decoder结构,其中encoder和decoder的主要模块都是multi-head attention和feed-forward network;此外,encoder为更好的对时域和空域不变性建模,还额外添加了conv结构和2D-attention
![](https://img.haomeiwen.com/i4388713/a401b4732e0d9f61.png)
conv:encoder采用了两层3*3,stride=2的conv,对时域和频域进行卷积,一方面提升模型学习时域信息能力;另一方面缩减时间维度跟目标输出长度相近,节约计算和缓解特征序列和目标序列长度不匹配问题;conv的激活为ReLU
multi-head attention: encoder和decoder都采用了多层multi-head attention来获取区分性更强的隐层表达(不同的head采用的变换不同,最后将不同变换后输出进行拼接,思想有点类似于模型融合);multi-head attention结构由多个并行的scaled dot-product attention组成,在训练时可并行计算
![](https://img.haomeiwen.com/i4388713/d214ef3c044d6e10.png)
scaled dot-product attention:结构有三个输入
;输出维度为
;基本思想类似于attention的注意力机制,Q跟K的运算softmax(
)可以看作是计算相应的权重因子,用来衡量V中各个维度特征的重要性;缩放因子
的作用在论文中提到是为了缓解当
过大时带来的softmax梯度过小问题;mask分为padding mask和掩蔽mask,前者主要是用于解决padding后的序列中0造成的影响,后者主要是解码阶段不能看到未来的文本信息
![](https://img.haomeiwen.com/i4388713/01e3bff5a3bf28c3.png)
multi-head attention:结构有三个输入:
,分别经过h次不同的线性变换
,输入到h个分支scaled dot-product attention,各个分支的输出维度为
这样经过concat后维度变成
tq*hdv,再经过最后的线性层
之后就得到了最终的
![](https://img.haomeiwen.com/i4388713/dbda588481da8ebf.png)
注意这里的Q、K、V与scaled dot-product attention不等价,所以我这里用以作区分
feed-forward network:前馈网络包含一个全连接层和一个线性层,全连接层激活为ReLU
![](https://img.haomeiwen.com/i4388713/3c8e1df63a6cc1bd.png)
其中
Positional Encoding:因为transformer中不包含RNN和conv,所以其对序列的位置信息相对不敏感,于是在输入时引入与输入编码相同维度的位置编码,增强序列的相对位置和绝对位置信息。
![](https://img.haomeiwen.com/i4388713/a85bacb29d9d6cc9.png)
其中,pos代表序列位置,i表示特征的第i个维度,一方面可以衡量位置pos的绝对位置信息,另一方面因为
、
,所以对于位置p的相对位置k,
可以表示
的线性变换;这样同时引入了序列的绝对和相对位置信息。
resnet-block:论文中引入了resnet中的跳跃连接,将底层的输入不经过网络直接传递到上层,减缓信息的流失和提升训练稳定性
![](https://img.haomeiwen.com/i4388713/3af6e42c344379ef.png)
Layer Norm:论文采用LN,对每一层的神经元输入进行归一化,加速训练
![](https://img.haomeiwen.com/i4388713/fb541e5bd7fd4377.png)
其中,l为网络的第l层,H为第l层的神经元节点数,g,b分别为学习参数,使得特征变换成归一化前的特性,f为激活函数,h为输出。
创新点:
2D-attention:transformer中的attention结构仅仅针对时域的位置相关性进行建模,但是人类在预测发音时同时依赖时域和频域变化,所以作者在此基础上提出了2D-attention结构,即对时域和频域的位置相关性均进行建模,有利于增强模型对时域和频域的不变性。
![](https://img.haomeiwen.com/i4388713/69329e70b82c9bd2.png)
输入:c通道的输入I
卷积层:三个卷积层分别作用域I,获得相应的Q、K、V,滤波器分别为WQi、WKi、WVi(i=1,2,3...,c)
两个multi-head scaled dot-product attention分别对时域和频域进行建模,获取相应的时间和频域依赖,head数为c
对时域和频域的attention输出进行concat,得到2c通道的输出,并输入到卷积中得到n通道的输出
![](https://img.haomeiwen.com/i4388713/40748d610e7ee334.png)
其中为最后一层卷积,t为时间轴,f为频率轴
3.训练:
数据集:WSJ(Wall Street Journal),train si284/dev dev93/ test dev92
输入特征:80维fbank
输出单元:输出单元数为31,包含26个小写字母以及撇号,句点,空格,噪声和序列结束标记
GPU型号:NVIDIA K80 GPU 100steps
优化方法和学习率:Adam
![](https://img.haomeiwen.com/i4388713/3ed5a4bb70b28836.png)
其中,n为steps数,k为缩放因子,warmupn= 25000,k= 10
训练时,在每一个resnet-block和attention中添加dropout(丢弃率为0.1);其中,resnet-block的dropout在残差添加之前;attention的dropout在每个softmax激活之前
所有用到的conv的输出通道数固定为64,且添加BN加速训练过程
训练之后,对最后得到的10个模型进行平均,得到最终模型
解码时采用beam width=10 beam search,此外length归一化的权重因子为1
4.实验:
在实验中固定为256,head数固定为4
encoder的深度相比于decoder深度更有利于模型效果
![](https://img.haomeiwen.com/i4388713/4c74c0de74d5de1d.png)
论文提出的2D-attention相比于ResCNN, ResCNNLSTM效果更好;表现2D-attention可以更好的对时域和频域相关性进行建模
encoder使用较多层数的resnet-block时(比如12),额外添加2D-attention对识别效果没有提升,分析原因是当encoder达到足够深度后,对声学信息的提取和表达能力以及足够,更多是无益
![](https://img.haomeiwen.com/i4388713/35d89f11707deb1c.png)
![](https://img.haomeiwen.com/i4388713/8f1ac044deeee188.png)
训练时间上,相比于seq2seq结构,在取得相似的识别效果的同时,训练速度提升4.25倍
![](https://img.haomeiwen.com/i4388713/fc198d3f12bb82ef.png)
Reference:
[1] Attention Is All You Needhttps://arxiv.org/pdf/1706.03762.pdf
[2] SPEECH-TRANSFORMER: A NO-RECURRENCE SEQUENCE-TO-SEQUENCE MODEL FOR SPEECH RECOGNITION