论文:
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
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组成,在训练时可并行计算
scaled dot-product attention:结构有三个输入;输出维度为;基本思想类似于attention的注意力机制,Q跟K的运算softmax()可以看作是计算相应的权重因子,用来衡量V中各个维度特征的重要性;缩放因子的作用在论文中提到是为了缓解当过大时带来的softmax梯度过小问题;mask分为padding mask和掩蔽mask,前者主要是用于解决padding后的序列中0造成的影响,后者主要是解码阶段不能看到未来的文本信息
multi-head attention:结构有三个输入:,分别经过h次不同的线性变换,输入到h个分支scaled dot-product attention,各个分支的输出维度为这样经过concat后维度变成tq*hdv,再经过最后的线性层之后就得到了最终的
注意这里的Q、K、V与scaled dot-product attention不等价,所以我这里用以作区分
feed-forward network:前馈网络包含一个全连接层和一个线性层,全连接层激活为ReLU
其中
Positional Encoding:因为transformer中不包含RNN和conv,所以其对序列的位置信息相对不敏感,于是在输入时引入与输入编码相同维度的位置编码,增强序列的相对位置和绝对位置信息。
其中,pos代表序列位置,i表示特征的第i个维度,一方面可以衡量位置pos的绝对位置信息,另一方面因为 、,所以对于位置p的相对位置k,可以表示的线性变换;这样同时引入了序列的绝对和相对位置信息。
resnet-block:论文中引入了resnet中的跳跃连接,将底层的输入不经过网络直接传递到上层,减缓信息的流失和提升训练稳定性
Layer Norm:论文采用LN,对每一层的神经元输入进行归一化,加速训练
其中,l为网络的第l层,H为第l层的神经元节点数,g,b分别为学习参数,使得特征变换成归一化前的特性,f为激活函数,h为输出。
创新点:
2D-attention:transformer中的attention结构仅仅针对时域的位置相关性进行建模,但是人类在预测发音时同时依赖时域和频域变化,所以作者在此基础上提出了2D-attention结构,即对时域和频域的位置相关性均进行建模,有利于增强模型对时域和频域的不变性。
输入: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通道的输出
其中为最后一层卷积,t为时间轴,f为频率轴
3.训练:
数据集:WSJ(Wall Street Journal),train si284/dev dev93/ test dev92
输入特征:80维fbank
输出单元:输出单元数为31,包含26个小写字母以及撇号,句点,空格,噪声和序列结束标记
GPU型号:NVIDIA K80 GPU 100steps
优化方法和学习率:Adam
其中,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深度更有利于模型效果
论文提出的2D-attention相比于ResCNN, ResCNNLSTM效果更好;表现2D-attention可以更好的对时域和频域相关性进行建模
encoder使用较多层数的resnet-block时(比如12),额外添加2D-attention对识别效果没有提升,分析原因是当encoder达到足够深度后,对声学信息的提取和表达能力以及足够,更多是无益
训练时间上,相比于seq2seq结构,在取得相似的识别效果的同时,训练速度提升4.25倍
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
网友评论