一、定义
1、Listen看作为encoder,Spell看作为decoder,也就是可以看作seq2seq
二、Listen
1、在encoder中,通过输入声学信号,输出提取特征的向量;希望可以在这个中做到移除噪音,提取更有用的信息。
2、decoder可以使用RNN、CNN、自注意力机制等方法,文献中常把CNN与RNN综合使用,有使用自注意力机制方法的趋势。
3、Down Sampling,使用这个之前train不起来,使用这个就很好做了,因为减少了计算量,这里举了四个例子。
三、Attention
1、Attention跟用在别的地方的seq2seq model几乎相同
2、有一个参数z0(这个应该为自己初始化的参数),将z0与encoder的输出计算attention;function为match得到α
3、match不同的Attention
(1)Dot-product Attention
(2)additive attention
4、softmax归一化,再得到c0
四、Spell
1、c0作为decoder(RNN)的输入是常用用法,还有很多别的应用。
2、常用用法:c0作为decoder(RNN)的输入,通过隐藏层会得到z1,经过transform得到distribution,用distribution选取可能的输出词语(max概率最高的)。
3、然后将z1进入match重复之前的步骤得到后面几个字母,直到<eos>
4、Decoder(通常是使用 RNN单元)会通过前一个时间步的隐藏状态、生成的标记(token)和"Attend"环节的输出(即上下文向量)来计算新的隐藏状态。
5、beam search,就是一次选择max前k个的选择得到多种结果得到总几率最大的情况。
6、Attention也有不同的方法
(1)前面介绍的方法是,得到的ct进入下一个使用
(2)ct进行立即使用
(3)前面两种结合
五、training
1、目标是,调整参数生成结果与我们想要的结果的几率越接近越好
2、使用teacher forcing,我们不管第一个输出是什么,将我们真实的字母在z1参与计算的时候传入。不然如果前面训练结果是错误的,机器已经记住了,就会使训练毫无作用甚至是反向结果。
六、Location-aware attention
1、要具有顺序位置的特征,要依次通过前面的数据得到后面的数据
2、在计算match function得到α时,要考虑该次的前后α作为参数传入,这样就具有顺序特征了