RNNT原文下载地址
Abstract
很多模型都进行的是转换任务,例如语音识别、机器翻译、蛋白质二级结构生产、文字转语音等。
在时序转换任务中,有一个关键挑战是寻找一种在收缩、拉伸、平移下有序列不变性的方式表示输入和输出序列。
Introduction
例如在语音识别中,需要面对由不同的音色、可变的说话速率、背景噪声等造成的明显失真。语言模型在输出序列时也需要使用先验知识来保持在缺失字符、发音、非语言字符时的鲁棒性。
RNN网络是目前的通用解法,因为高维多变量内部状态和非线性状态动力学的结合比传统的序列算法(如隐马尔可夫模型)能提供更多的表现力。尽管RNN早期时候被难以训练所困扰,但近期的结果证明RNN在现实任务中达到了SOTA,此外,这些结果还证明了远期记忆的作用,例如在多个中间字符后关闭括号,或者使用延迟笔触从笔迹中识别手写字符。
训练RNN必须提前知道输入与输出之间的对应关系,RNN的CTC层只能用于输出小于等于输入的情况,在面对输出大于输入的情况时(文字转语音任务),CTC无法建模输出之间的依赖关系。本文所提出的传感器(transducer)是一种时序判别模型,通过定义输出序列在所有长度上的分布并且联合建模输入-输出和输出-输出依赖关系,扩展了CTC的能力。
transducer与CRFs有一定的相似性,但RNN拥有从raw数据中提取特征以及潜在的无限依赖范围的转换结构,与CRFs的手工输入特征和成对输出势能形成鲜明对比。
Recurrent Neural Network Transducer
详解视频 https://www.youtube.com/watch?v=L519dCHUCog
RNNT比CTC好,但明显比attention差,适合在线任务,在小于十万小时数据量的情况下,非常依赖预训练,难以训练
参考资料
https://blog.csdn.net/JackyTintin/article/details/81251591
https://zhuanlan.zhihu.com/p/97472054
https://zhuanlan.zhihu.com/p/62050647
https://github.com/awni/transducer/blob/master/ref_transduce.py