TRANSFORMER-BASED ONLINE CTC/ATTENTION END-TO-END SPEECH RECOGNITION ARCHITECTUR

474 阅读9分钟

文献

英文PDF

中文

论文信息

题目主题会议名称会议等级发表时间作者机构
TRANSFORMER-BASED ONLINE CTC/ATTENTION END-TO-END SPEECH RECOGNITION ARCHITECTURE在线识别ICASSPB类2020年1月Haoran Miao1,2, Gaofeng Cheng1, Changfeng Gao1,2, Pengyuan Zhang1,2, Yonghong Yan1,2,33Xinjiang Laboratory of Minority Speech and Language Information Processing, Xinjiang Technical Institute of Physics and Chemistry, Chinese Academy of Sciences, China

论文背景

基于Transformer 的混合 CTC/Attention 在线端到端语音识别模型很难应用到在线识别。

其面临的主要困难是传统的Soft attention需要根据全部的语音输入计算权重,无法处理语音过长,或在语音流中的识别问题。

本篇论文尝试通过改善传统Chuck-wise attention 和 MTA decoder 的方法解决在线语音识别问题,并将Transformer与端到端的CTC语音识别相结合。

名词解释:

  • SAE: 自我编码器
  • MTA: 截断注意力
  • SAD: 自我注意力解码器
  • attention:

把输入X编码成一个固定的长度,对于句子中每个词都赋予相同的权重,这样是不合理的,没有区分度往往使模型性能下降。因此提出Attention Mechanism(注意力机制),用于对输入X的不同部分赋予不同的权重,进而实现软区分的目的。

传统的Attention Mechanism就是Soft Attention。即通过确定性的得分计算来得到attended之后的编码隐状态。

Hard Attention是一个随机的过程。Hard Attention不会选择整个encoder的隐层输出做为其输入,Hard Attention会依概率Si来采样输入端的隐状态一部分来进行计算,而不是整个encoder的隐状态。

两种Attention Mechanism都有各自的优势,但目前更多的研究和应用还是更倾向于使用Soft Attention,因为其可以直接求导,进行梯度反向传播。

普通Transformer不适合于在线任务原因

  • 自注意编码器计算整个输入帧注意力权重;
  • 自注意译码器(SAD)计算SAE整体输出的计算权值。 主流端到端ASR体系结构训练过程

CTC目标作为辅助任务添加到基于注意的编解码器模型中。译码时,波束搜索采用CTC/Attention译码方式,然而他是由于全局注意机制和CTC前缀分数依赖于整个输入语言,因此很难部署在线 CTC/Attention 端到端 ASR体系结构。

基于此的改进

从模型结构与解码算法两个方面对上面体系结构进行流化,在模型结构方面提出了稳定的单词块注意(sMoChA)和单调截断注意(MTA)流注意机制,并将延迟控制的双向长短记忆(LC- BLSTM)作为低延迟编码器。在译码方面,提出了在线联合译码方法,包括截短 CTC (T-CTC)前缀评分和动态等待联合译码算法(DWJD)

论文详解

两大组成部分

  • 状态重用自注意块编码器(State Reuse chunk-sae)
  • 基于单调截断注意(MTA)的自注意译码器(SAD)

文章提出的思路,模型

在此篇论文之前,作者写过的另一篇论文:

image.png 在这篇论文中,作者提出了在线混合 CTC/Attention 端到端加密ASR架构,该架构由LC-BLSTM 编码器、 sMoChA和LSTM解码器组成。在训练过程中,引入了CTC目标作为辅助任务,并定义了损失函数:

名词解释:

  • LC-BLSTM:我看得懂的一篇详解
  • sMoChA (😭)
    • LAS:就是seq2seq
    • CTC:decoder 是 linear classifier 的 seq2seq
    • RNA:decoder 是 RNN 的seq2seq,输入一个就要输出一个
    • RNN-T: decoder 是 RNN ,输入一个就要输出多个的 seq2seq
    • Neural Transducer:每次输入 一个 window 的 RNN-T
    • MoCha: window 移动伸缩自如的 Neural Transducer
    • sMoCha: stable MoCha

image.png

名词解释

  • α:hyperparameter超参数, 前后两个损失函数分别为解码器与CTC的损失函数;

另外,其译码时采用在线联合:

image.png

函数理解

  • 假设Y在输入帧为X的条件来自 解码器 与CTC 的概率, Plm(Y )为语言模型概率,超参数λ , γ可调。

基本流程

  1. chunk-SAE将语音分割成独立的块;
  2. 基于MTA的SAD对语音特征进行单调截断,并对截断后的特征进行关注。

Chunk-SAE

SAE:自注意编码器

SAE由一组相同的层组成,每个层都有两个子层,即一个自注意层和一个位置前馈层。SAE的输入是ASR任务中的声学框架。自注意层采用多头注意,其中查询、键和值都是前一层的输入。此外,SAE在每一个子层之后使用剩余连接和层归一化。

Chunk - SAE

为了流化SAE,我们首先提出了块SAE,它将一个语音分成Nc中央长度 互不重叠的独立块。为了获得语境信息,我们将Nl左帧作为历史上下文和Nr右帧作为未来上下文,使用预定义的参数Nc, Nl,Nr, 每个Chunk- SAE接受的输出域被限制在Nc+Nl+Nr, 而其延迟为Nr

State Reuse Chunk

在上面提出的Chunk- SAE中,历史上下文是重复计算的,为了降低计算成本,作者将计算的隐藏状态存储在中心上下文中,然后当计算新块时,在与历史上下文相同的位置重用先前块中存储的隐藏状态。

下图是两者的区别:

image.png

上图解读:

传统的Monotonic Chunkwise Attention和State reuse框架对比如上图所示。传统chunk-SAE评估过程中,模型会消耗和训练阶段相同长度的Segment,但只在最后一个位置做预测。然后,在下一步中,该段只向右移动一个位置,新段必须重新处理。State reuse提出了在该架构中引入一种递归机制。在训练过程中,将前一段计算的隐藏状态序列缓存,在模型处理下一个新段时作为扩展上文使用。这种额外的输入允许网络利用之前的信息,从而能够建模长期依赖关系,增加感受野,并减少每次计算上文隐藏状态的资源耗费。

基于MTA的SAD

SAD

SAD也由一组相同的层组成,每一层有三个子层,即一个自注意层,一个译码器注意层和一个位置前馈层。SAD的输入是右移输出标签的嵌入。为了防止在self-attention中访问未来的输出标签,后续位置将被屏蔽。在编码器-解码器的注意事项中,查询是当前层的输入,而键和值是SAE输出。此外,SAD在每个子层之后还使用了剩余连接和层归一化。

MTA based SAD

为了流化SAD,提出了基于MTA的SAD,以一种单调的从左到右的方式截断接受域,并对截断的SAE输出执行注意。具体来说,用MTA代替每个SAD层的编码器-解码器注意

传统的Chunkwise Attention 通过动态窗口解决了Neural Transducer只能使用固定长度窗口的问题。首先使用Attention决定窗口应该放在哪里,然后对每一个窗口输出一个Token作为该窗口表示的能量,然后移动找下一个窗口,直到输出的能量超过设定的阈值。MTA和传统Chunkwise Attention的区别在于:传统Chunkwise Attention在训练过程中通过Softmax计算Time stamp在每帧停留的概率,而MTA通过累计连乘的方式计算每一帧作为停止位置的概率,以此将每帧的停留概率写成如下图所示的迭代方式,降低了每次计算概率的运算时间。

image.png 值得注意的是,Wi.,j随着(1-Pi,j)呈现指数指数衰减,随着递归深度的增加,Wi.,j会逐渐降低到0,论文通过将(1-Pi,j)的值初始化到趋近于1来防止消失的情况。

整合

如下图所示,CTC与Transformer并行的方法构建整体模型框架。在经过前端卷积和位置编码后,训练输入通过Sate Reuse Chunk-SAE进行编码,并投入CTC和Transformer训练。最终结果通过论文作者在另一篇文章中提到的DWJD算法计算。

image.png

效果

23.66%CER,延迟320ms, 与离线基线相比,在线模型产生的绝对CER退化仅为0.19%

作者做的实验

论文从中文通话记录数据集HKUST近200小时的语音数据中抽样提取了4000段话作为训练样本。在试验中,经过滤波器的语音数据先经过两层卷积网络,每层有256个尺寸3x3,步长2x2的卷积核。模型采用了12层的Encoder和6层的Decoder。同时也在同样的训练样本上用了2层的LSTM作为额外的语言模型做联合训练。值得一提的是,chunk-SAE的再利用使得训练速度和以往的编码相比快了1.5倍,并且模型准确率更高。

论文对比了模型训练结果和以往的Encoder Decoder模型的WER结果。并通过调整Encoder的上下文宽度实现流式语音识别。实验结果如下图所示。实验证明,语音下文的长度更能影响预测的准确性,并且通过增加上文长度的方式能够在减少本次语音输入长度的前提下维持同样的预测准确率,减少识别延迟。 image.png

结论

本论文提出了通过SAE Reuse和MTA SAD的方式改善在线语音识别困难的问题。模型在基础的SAE基础上提出了重复利用的递归机制。在每一步Encode中都将前一段计算的隐藏状态序列缓存,在模型处理下一个新段时作为扩展上文使用,从而增加每一步信息的交互,并加速模型训练速度。在SAD方面,论文提出用累计连乘代替Softmax的方式计算截点概率,将截点概率的表达式转换成迭代的形式,从而降低运算时间。此外,论文还提出将Soft attention计算截点概率的思想同时放入训练和推理过程中,防止训练和推理结果不匹配的情况。