美文网首页
Speech-Transformer

Speech-Transformer

作者: 静一下1 | 来源:发表于2020-11-24 16:02 被阅读0次

    论文: 

    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

    \bullet  conv:encoder采用了两层3*3,stride=2的conv,对时域和频域进行卷积,一方面提升模型学习时域信息能力;另一方面缩减时间维度跟目标输出长度相近,节约计算和缓解特征序列和目标序列长度不匹配问题;conv的激活为ReLU

    \bullet  multi-head attention: encoder和decoder都采用了多层multi-head attention来获取区分性更强的隐层表达(不同的head采用的变换不同,最后将不同变换后输出进行拼接,思想有点类似于模型融合);multi-head attention结构由多个并行的scaled dot-product attention组成,在训练时可并行计算

    \bullet   scaled dot-product attention:结构有三个输入Q_1 (t_q \star d_q),K_1(t_k \star d_k) ,V_1(t_v \star d_v)  ;输出维度为t_q \star d_v;基本思想类似于attention的注意力机制,Q跟K的运算softmax(QK^T)可以看作是计算相应的权重因子,用来衡量V中各个维度特征的重要性;缩放因子\sqrt{d_k} 的作用在论文中提到是为了缓解当d_k过大时带来的softmax梯度过小问题;mask分为padding mask和掩蔽mask,前者主要是用于解决padding后的序列中0造成的影响,后者主要是解码阶段不能看到未来的文本信息

    \bullet multi-head attention:结构有三个输入:Q^0(t_q*d_{model})、K^0(t_k*d_{model})、V^0(t_v*d_{model}),分别经过h次不同的线性变换(W^{Q_i}(d_{model}*d_q)、W^{K_i}(d_{model}*d_k)、W^{V_i}(d_{model}*d_v),i=1,2,3...,h),输入到h个分支scaled dot-product attention,各个分支的输出维度为t_q*d_v(d_v=d_{model}/h),这样经过concat后维度变成t_q*hd_vtq*hdv,再经过最后的线性层W^O(hd_v*d_{model})之后就得到了最终的t_q*d_{model}

    注意这里的Q、K、V与scaled dot-product attention不等价,所以我这里用Q^0、K^0、V^0以作区分

    \bullet  feed-forward network:前馈网络包含一个全连接层和一个线性层,全连接层激活为ReLU

    其中W_1(d_{model}*d_{ff}),W_2(d_{ff}*d_{model}),b_1(d_{ff}),b_2(d_{model})

    \bullet   Positional Encoding:因为transformer中不包含RNN和conv,所以其对序列的位置信息相对不敏感,于是在输入时引入与输入编码相同维度的位置编码,增强序列的相对位置和绝对位置信息。

     其中,pos代表序列位置,i表示特征的第i个维度,PE_{(pos,i)}一方面可以衡量位置pos的绝对位置信息,另一方面因为 sin(a+b)=sina*cosb+cosa*sinbcos(a+b)=sina*cosb+cosa*sinb,所以对于位置p的相对位置k,PE_{(pos+k)}可以表示PE_{pos}的线性变换;这样同时引入了序列的绝对和相对位置信息。

    \bullet  resnet-block:论文中引入了resnet中的跳跃连接,将底层的输入不经过网络直接传递到上层,减缓信息的流失和提升训练稳定性

    \bullet  Layer Norm:论文采用LN,对每一层的神经元输入进行归一化,加速训练

    其中,l为网络的第l层,H为第l层的神经元节点数,g,b分别为学习参数,使得特征变换成归一化前的特性,f为激活函数,h为输出。

    创新点:

    \bullet   2D-attention:transformer中的attention结构仅仅针对时域的位置相关性进行建模,但是人类在预测发音时同时依赖时域和频域变化,所以作者在此基础上提出了2D-attention结构,即对时域和频域的位置相关性均进行建模,有利于增强模型对时域和频域的不变性。

    \circ  输入:c通道的输入I

    \circ  卷积层:三个卷积层分别作用域I,获得相应的Q、K、V,滤波器分别为WQi、WKi、WVi(i=1,2,3...,c)

    \circ  两个multi-head scaled dot-product attention分别对时域和频域进行建模,获取相应的时间和频域依赖,head数为c

    \circ  对时域和频域的attention输出进行concat,得到2c通道的输出,并输入到卷积中得到n通道的输出

    其中W^o为最后一层卷积,t为时间轴,f为频率轴

    3.训练:

    \bullet 数据集:WSJ(Wall Street Journal),train si284/dev dev93/ test dev92

    \bullet 输入特征:80维fbank

    \bullet 输出单元:输出单元数为31,包含26个小写字母以及撇号,句点,空格,噪声和序列结束标记

    \bullet GPU型号:NVIDIA K80 GPU 100steps

    \bullet 优化方法和学习率:Adam

    其中,n为steps数,k为缩放因子,warmupn= 25000,k= 10

    \bullet 训练时,在每一个resnet-block和attention中添加dropout(丢弃率为0.1);其中,resnet-block的dropout在残差添加之前;attention的dropout在每个softmax激活之前

    \bullet 所有用到的conv的输出通道数固定为64,且添加BN加速训练过程

    \bullet 训练之后,对最后得到的10个模型进行平均,得到最终模型

    \bullet 解码时采用beam width=10 beam search,此外length归一化的权重因子为1

    4.实验:

    在实验中d_{model}固定为256,head数固定为4

    \bullet  encoder的深度相比于decoder深度更有利于模型效果

    \bullet  论文提出的2D-attention相比于ResCNN, ResCNNLSTM效果更好;表现2D-attention可以更好的对时域和频域相关性进行建模

    \bullet  encoder使用较多层数的resnet-block时(比如12),额外添加2D-attention对识别效果没有提升,分析原因是当encoder达到足够深度后,对声学信息的提取和表达能力以及足够,更多是无益

    \bullet  训练时间上,相比于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

    相关文章

      网友评论

          本文标题:Speech-Transformer

          本文链接:https://www.haomeiwen.com/subject/hmjiiktx.html