Joint CTC/attention decoding for end-to-end speech recognition
1. 论文摘要
端到端asr 的两种主流形式:(1)基于识别结果和声学特征之间atttention 方式;(2)基于ctc,通过马尔科夫假设利用动态规划来求解序列问题。
*思路:
传统基于attention的对齐方式*度太高,asr任务大多数都是按照序列渐进对齐,因此考虑采用ctc-based 的对齐方式来指导解码。
2. 模型架构
-
优化目标
L M T L = λ l o g P c t c ( C ∣ X ) + ( 1 − λ ) l o g P a t t n ( C ∣ X ) L_{MTL} = \lambda logP_{ctc}(C|X)+(1-\lambda)logP_{attn} (C|X) LMTL=λlogPctc(C∣X)+(1−λ)logPattn(C∣X)
通过在encoder 端做CTC预测的辅助任务,保证speech 和label 之间的单调对齐。优化的时候将ctc 预测目标和decoder 端预测目标分别求ce loss, 然后根据比例加和。 -
解码策略
-传统的改进策略:(1)加长度惩罚项, 防止解码序列太短。(对应第二项)
(2)加入coverage term 对attention 进行限制。(对应第三项)
长度T 代表encoder 端长度, l 代表decoder 端序列长度。 防止decoder端attention 过度关注某一帧多次。
(3)rescoring 方法:two pass
先基于常规attention based 的概率分布的beam search 方法解码出一系列候选序列,基于这个序列做二次打分筛选。二次打分的时候,基于ctc 的概率和attention based概率两者加权,其中ctc 的概率是通过前向算法求得。
(4)one-pass decoding
引入了ctc prefix probability, 表示所有将h 作为prefix 的目标序列的累计概率和。
ctc score 的定义 -
解码策略的伪代码
提前结束的操作
解释:当前还未完成的序列的最大值(从l-m 到 l)和已完成序列的最大得分之差在某一阈值范围之内,就提前中止。 -
ctc score 的算法伪代码