Attention在语音识别中的应用(1)

       从2014年Attention mode在机器翻译或起来以后,attention model逐渐在语音识别领域中应用,并大放异彩。因此本篇文章就对Attention进行总结和说明。

首先要确定的是Attention是一种权重向量或矩阵,其往往用在Encoder-Decoder架构中,其权重越大,表示的context对输出越重要。计算方式有很多亚种,但是核心都是通过神经网络学习而得到对应的权重。通常其权重aij和Decoder中的第i-1个隐藏状态,Encoder中的第j个隐藏状态相关[1]。

     接下来跟进一篇论文来具体了解Attention的用法和构成。第一篇文章是Jan Chorowski 的《Attention-Based Models for Speech Recognition 》[2].

Encoder端是一个BiRNN结构,第i步的输出Yi和hi和Attention的权重相关,具体架构如下图所示:

Attention在语音识别中的应用(1)


其输出Yi为:

Attention在语音识别中的应用(1)

其中,Generate为RNN的Decoder结构,Si-1表示Decoder中的第i-1个状态,gi表示glimpse,即Attention和隐藏层H相乘之后的结果,

glimpse为:

Attention在语音识别中的应用(1)

上式中,aij即为Attention的权重,hj为encoder中第j个隐藏状态。


si为Decoder中的因此状态,依赖si-1和gi和yi,如下所示:

Attention在语音识别中的应用(1)


    以上为Attention的用法,解析来看一下Attention中aij是如何进行得到的

Attention在语音识别中的应用(1)


aij是eij经过softmax的结果,eij计算如下(content-basedAttention ):

Attention在语音识别中的应用(1)

即Attention的权重aij是和Decoder中第i-1步骤的隐藏状态si-1相关,和Encoder中的第j步的隐藏状态hj相关;

eij还有第二种计算方式,就是把上一步骤中的ai-1加入到其中(location based Attention

Attention在语音识别中的应用(1) 

Attention在语音识别中的应用(1)

aij还有其他的实现方式:

sharpen方式:其中β>1

Attention在语音识别中的应用(1)

Smooth方式:

Attention在语音识别中的应用(1)

以上就介绍完了Attention的用法,下面来对Attention在近期的语音识别和机器翻译中的使用做一个说明。

2016年3月份Dzmitry Bahdanau 在文献[3]中把Attention模型用在了LVCSR中,Bandana在上面的基础之上,进行了改进,

1)对Attention的计算范围进行了2w的加窗,加快训练和解码

2)RNN结构为GRU,对RNN加入了pool,减少长度和计算量

3)加入n-gram,支持WFST解码

其Attention相关的结构如下:下图中的ct等价于上面介绍的glimpse,即gi

Attention在语音识别中的应用(1)

最终错误率对比如下所示:

Attention在语音识别中的应用(1)

可以看到,其最好WER为9.3%,基本达到了苗亚杰2015年CTC+3-gram的水平。

然而Attention模型虽然好,但是还是有自身的问题[4][5],问题如下:

1)适合短语识别,对长句子识别比较差

2)noisy data的时候训练不稳定

因此比较好的方法是使得Attention与CTC进行结合,

Suyoun Kim等人在2016年9月的文章[5]就对Attention与CTC结合对语音声学模型建模,其结构如下所示:

Attention在语音识别中的应用(1)

其共用一个Encoder,Decoder分为2个,一个是CTC,一个是Attention,并通过权重λ来给定不同的权重比,

其损失函数如下:

Attention在语音识别中的应用(1)

在Encoder结构为4层BLSTM,每层320个节点,Decoder为单向LSTM,节点也为320个

λ为0.2,0.5,0.8的情况下,模型收敛情况如下所示:

Attention在语音识别中的应用(1)

对比蓝色的Attention模型还有红色的CTC模型,Attention+CTC模型更快的收敛了,这得益于初始阶段CTC的阶段对齐更准确,使得Attention模型训练收敛更快。

最终其CER如下所示:

Attention在语音识别中的应用(1)

λ在0.5或者0.8的情况下,字正确率超过了单纯的Attention模型和CTC模型。

2017年7月,Facebook提出的Attention在CNN的机器翻译领域达到了state-of-art水平[6],其结构如下图所示:

Attention在语音识别中的应用(1)

与上面讨论不同的是,该Attention是多层的,每层都有对应一个Attention。是一个multiple steps结构。

Google在2017年6月针对MNT提出了纯Attention模型[7],文中提出了self-attention结构和Multi-head Attention结构。如下图所示:

Attention在语音识别中的应用(1)

整体架构如下:

Attention在语音识别中的应用(1)

关于MNT的架构分析会在接下来的文章中进行讨论

Attention相关的更多文章可以看看NIPS workshop 2015相关的主题介绍 [8]








[1].https://zhuanlan.zhihu.com/p/28054589

[2] Attention-Based Models for Speech Recognition 

[3] END-TO-END ATTENTION-BASED LARGE VOCABULARY SPEECH RECOGNITION

[4] GMIS 2017 | 腾讯AI Lab副主任俞栋:语音识别研究的四大前沿方向

[5] JOINT CTC-ATTENTION BASED END-TO-END SPEECH RECOGNITIONUSING MULTI-TASK LEARNING 

[6]Convolutional Sequence to Sequence Learning

[7]Attention Is All You Need 

[8]Reasoning, Attention, Memory (RAM) NIPS Workshop 2015