3、 CTC/Attention
基于CTC/注意力的端到端混合架构将CTC目标函数作为一个正则项,加入到基于注意力的编解码器中。在没有任何启发式搜索技术的情况下,大大减少了不规则对齐语句的数量。在解码过程中,采用了一种联合解码方法,能够在rescoring/beam search算法中将基于注意力的分数和 CTC 分数结合来达到无条件独立假设下的强对齐约束 。
图4. 基于CTC/注意力的端到端混合架构。共享编码器是由CTC和注意力模型目标同时训练的。共享编码器将输入序列{x_t, ... ,x_T }转化为high-level特征H = {h_t,..., h_T },而注意力解码器生成字母序列{c_1 , ..., c_L}
使用CTC目标函数作为辅助任务来训练多目标学习( multiobjective learning ,MOL)框架中的注意力模型编码器。图23给出了框架的整体结构,其中,CTC和注意力编码器网络共享同一个BLSTM。与唯一的注意力模型不同,CTC的前向-后向算法可以在训练过程中执行语音和标签序列之间的单调对齐。在长序列中,CTC中的前向-后向算法有助于加快估计所需排列的过程,而不是仅仅依靠数据驱动的注意力方法来估计所需排列。目标函数如下:
基于CTC/注意力的混合端到端语音识别的推理步骤是通过标签同步解码与基于注意力的传统ASR相似的波束搜索进行的。将CTC的概率考虑在内,以找到一个与输入语音更一致的假说,如图23所示。基于注意力机制的一般解码和传统技术能够缓解对齐问题。本文提出了具有混合CTC/注意力架构的联合解码方法。
传统的解码技术中,解决注意力模型过长过短的方法是添加长度惩罚(length penalty),也可以通过设置最大和最小长度来控制(最大和最小的选择被表示为输入语音长度的固定比率)。此外,引入coverage term(覆盖项)通过源端输入帧的注意力权重,能够判断该源端帧是否已经被转译。混合CTC/注意力方法在推理步骤中结合了CTC和基于注意力的序列概率以及训练步骤。联合解码目标函数为:
CTC概率执行单调的排列,不允许大的跳跃或相同帧的循环。此外,它可以避免过早预测序列末尾的标签,这不是由覆盖率项处理的。因此,可以选择具有较好排列的假说,并排除不相关的假说,而不依赖覆盖率项、长度惩罚或最小/最大长度。在波束搜索过程中,解码器需要为每个部分假设计算一个分数:
然而,在波束搜索中结合CTC和基于注意力的分数并不容易,因为注意力解码器是以输出标签同步进行的,而CTC是以帧同步进行的。为了将CTC概率纳入假设得分,作者提出了两种方法。
重新计分。第一种方法是一个两遍的方法(Rescoring),第一遍使用波束搜索获得一组完整的假设,其中只考虑基于注意力的序列概率。第二遍使用CTC和注意力概率对完整的假设进行重新评分,其中,CTC概率是通过CTC的前向算法获得的。重新计分环节得到的最终结果是根据下式:
One-pass解码。第二种方法是One-pass解码,使用CTC和注意力模型计算每个部分假设的概率。利用CTC前缀概率,定义为所有以h为前缀的标签序列的累积概率。
计算CTC得分如下:
C^计算为:
基于注意力的ASR容易引入删除和插入错误,这是由于其具有灵活的排列属性,可以关注编码器状态序列的任何部分来预测下一个标签。由于注意力是由解码器网络产生的,它可能在还没有注意到所有的编码器帧的情况下就过早地预测序列结束的标签,从而造成假设太短。另一方面,它可能通过注意与之前注意的相同部分,以高概率预测下一个标签。在这种情况下,假设又变得非常长,包含了重复相同的标签序列。
项目 | SOTA!平台项目详情页 |
CTC/Attention |
前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/ctc-attention |
4、 Transfomer-Transducer
本文提出了一个带有Transformer编码器的端到端语音识别模型,可用于流式语音识别系统。引入基于自注意力的Transformer计算块来对音频和标签序列进行独立编码。来自音频和标签编码器的激活与前馈层相结合,计算出每个声学帧位置和标签历史组合在标签空间的概率分布。这类似于循环神经网络转录器( Recurrent Neural Network Transducer ,RNN-T)模型,它使用RNN进行信息编码,而不是Transformer编码器。该模型使用非常适合于流媒体解码的 RNN-T损失函数进行训练。
图5. RNN/Transformer Transducer 架构
RNN-T是一种神经网络体系结构,可以通过RNN-T损失进行端到端训练,将输入序列(如音频特征向量)映射到目标序列。给定一个长度为T,x=(x_1,x_2,...,x_T)的实值向量的输入序列,RNN-T模型试图预测长度为U的标签y=(y_1,y_2,...,y_U)的目标序列。RNN-T模型在每一个时间步长给出了一个标签空间的概率分布,输出标签空间包括一个额外的空标签。RNN-T模型对所有可能的对齐都定义了一个条件分布P(z|x),其中:
z是长度为U的(z_i, t_i)对序列,(z_i, t_i)表示输出标签z_i和编码的t_i特征之间的对齐。标签z_i也可以是空白标签(空预测)。删除空白标签将得到实际的输出标签序列y,长度为U。可以在所有可能的对齐z上边缘P(z|x),以获得给定输入序列x的目标标签序列y的概率:
其中,Z(y, T)是标签序列长度为T的有效对齐的集合。对齐的概率P(z|x)可以分解为:
其中,label(z_1:(i−1))是z_1:(i−1)中的非空白标签序列。RNN-T架构通过音频编码器、标签编码器和联合网络参数化P(z|x)。编码器是两个神经网络,分别编码输入序列和目标输出序列。本文用transformer代替原来的LSTM编码器。
其中,每个线性函数是一个不同的单层前馈神经网络,AudioEncoder(x)是时间t_i时的音频编码器输出,LabelEncoder(labels(z1:(i−1)))是给定之前的非空白标签序列的标签编码器输出。其中,下面式子中前向变量α(t,u)定义为在时间t处结束的所有路径和在标记位置u处结束的所有路径的概率之和。然后,使用前向算法来计算最后一个α变量α(T,U),模型的训练损失是等式中定义的负对数概率的和:
其中,T_i和U_i分别为第i个训练示例的输入序列和输出目标标签序列的长度。
Transformer由多个相同层的堆栈组成。每一层有两个子层,一个多头注意力层和一个前馈层。多头注意力层首先应用LayerNorm,然后为所有的头投影输入到q、k、v。注意力机制对不同注意力头分别应用。连接所有头部的权重平均值并传递到一个密集层。然后在密集层的归一化输入和输出上使用残差连接,形成多头注意力子层的最终输出(LayerNorm(x) + AttentionLayer(LayerNorm(x)))。此外,还对密集层的输出施加dropout,以防止过拟合。前馈子层首先在输入上应用LayerNorm,然后应用两个密集层。使用ReLu作为第一个致密层的激活。再次,dropout到两个密集层进行正则化,并应用一个归一化输入和第二层密集层(LayerNorm(x) + FeedForwardLayer(LayerNorm(x))输出的残差连接)。
图6. Transformer encoder架构
此外,为了建模顺序,本文使用了相对位置编码,可以通过相对位置编码将复杂性从O(t2)降低到O(t)。为了解决延迟随着时间的推移而增长的问题,将模型限制在一个移动的状态窗口W上,使一步推理复杂度为常数。
当前 SOTA!平台收录 Transfomer-Transducer 共 1 个模型实现资源。
项目 | SOTA!平台项目详情页 |
Transfomer-Transducer | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/transfomer-transducer |