前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Human Language Processing——RNA&RNN-T&MochA

Human Language Processing——RNA&RNN-T&MochA

作者头像
mathor
发布2020-07-28 15:16:29
1.2K0
发布2020-07-28 15:16:29
举报
文章被收录于专栏:mathormathor

CTC每个时间步进行的解码是independent的,这样的设定能够简化模型,但却不是很合理。事实上,实际应用中的序列,往往前后token都是有约束关系的。为了达到比较好的识别效果,在CTC的输出之后,通常需要再经过一个Language Model进行后处理。因为本质上来说,Language Model得到的就是前后token之间的转化概率,Language Model的引入弥补了CTC中时间步之间独立假设的缺陷。那能不能不用Language Model,抛弃时间步独立假设呢?

答案是:可以! 这就是RNA模型所做的事情

RNA

谷歌的学者发论文很喜欢玩取名的梗,这个模型与核糖核酸RNA同名。RNA是Recurrent Neural Aligner的缩写,它是一个介于CTC和RNN-T的过渡模型,针对CTC独立解码问题,把MLP换成了RNN

CTC或者RNA的缺陷在于,这两种模型都是输入一个vector,输出一个token。然而,在实际的语音识别任务中,却可能存在输入一个token,需要输出多个token的情况

RNN-T

RNN Transducer就是为了克服CTC和RNA输入一个vector,只输出一个token的问题而设计的

RNN-T在解码过程中是如何确保输入一个隐层,输出多个token的呢?输入一个h^t,RNN-T会决定要产生一个"t"。这个"t"会被放到另一个RNN中(下图深蓝色节点),输出的隐层会放回RNN-T的解码器中作为隐层和之前的h^t输入,来产生新的输出"h"。再反复一次。由于那另一个RNN看到过"h"了,就会输出新的东西。这个新东西再与之前的h^t输入RNN-T,可能会得到一个空类别。而另一个RNN会无视掉这个空类别,把之前输出"h",与下一个隐层ht+1输入到RNN-T得到的新输出"e"

Neural Transducer

前面的CTC、RNA在解码阶段,都是输入一个vector,输出一个token,是1v1的输入-输出方式; RNN-T是输入一个vector,输出多个token,是1vN的输入-输出方式;那么有没有可能输入多个vector,也输出多个token呢,即采用NvN的输入-输出方式。 答案是,可以! 这就是Neural Transducer的思路

Neural Transducer的改进主要是在解码的输入端。它不再是输入一个vector,而是输入W个vector,经过attention计算后,得到解码的输入,如下图所示。首先我们会让声学特征通过编码器产生隐层输出,再对一个窗口的小范围隐层做注意力后,再输出给解码的RNN。若窗口大小内信息已经用完了,解码的RNN就会输出空类别。接下来我们再移动窗口,对下一个窗口内的隐层重复刚才的操作

窗口大小要如何设计呢?Neural Transducer做了实验发现,没有注意力时,窗口一长,结果就会很糟糕。但用了注意力后,窗口大小又没那么重要。它尝试了各种计算注意力的方法,有DOT和MLP,甚至还有LSTM-ATTENTION。它把注意力权重读进LSTM中去,通过LSTM来考虑前一个时间步的注意力的位置

MochA

CTC、RNA、RNN-T、Neural Transducer都有一个相同的问题,就是\phi。因为我们在数据标注的时候很难插入\phi。例如"好棒"这个词,他有可能是"\phi\phi\phi",也有可能是"好\phi\phi\phi棒","好\phi\phi\phi"等等。18年提出的一个新的模型MochA就解决了这个问题

MochA全称为Monotonic Chunkwise Attention,相比于Neural Transducer,它最大的改进在于输入的W个vector,不再是固定的,而是浮动的。也就是说,输入W个vector的起点和终点,是通过网络学习出来的。具体来说,这个网络输入z^0和隐层h^1,输出yes/no,表示要不要把窗口开头放在此处位置。如果不要,就往右移动窗口,再检查下一个位置的隐层h^2。一旦确定放置窗口,就对窗口内的隐层向量做注意力,解码出的token不会包含\phi。因为在输入浮动的情况下,事实上已经能够学习到输出-输入间的依赖关系,没有必要再引入\phi

模型总结

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RNA
  • RNN-T
  • Neural Transducer
  • MochA
  • 模型总结
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档