ASR之Sequence to Sequence

ASR之Sequence to Sequence

什么是Sequence to Sequence

Sequence to Sequence可以使用下面的图表示,就是输入一个序列,经过Encoder,Decoder之后输出一个序列,

因此很多人也会直接把Sequence to Sequence模型叫做Encoder Decoder模型。

Sequence to Sequence在ASR

Sequence to Sequence用在ASR上面可以简单表示成下面的样子,

Sequence to Sequence的应用

那Sequence to Sequence可以做什么呢?

或者我们设计一个chat robot,给出一句话,它给出响应。

甚至有人可以用做Sequence to Sequence语法分析

Oriol Vinyals等人就在2014使用Sequence to Sequence做了语法分析,参看下面的链接,
Grammar as a Foreign Language

很多问题我们都可以看成Sequence to Sequence的model,比如给一个文章,给出文章的摘要;给一段英文,给出中文的翻译;给出一段话,做情感分析。Sequence to Sequence的model可以看成QA的model,一个输入,问个问题(Question),模型给出答案(Answer)。

Sequence to Sequence的几种模型

在ASR的Sequence to sequence的模型有以下几种,

这几种模型在2019使用频率可以用下面图表示,

上图是基于统计INTERSPEECH的100篇论文得到的结果。

几种模型的介绍

下面是其中的几种模型的学习笔记
Listen Attention Spell
ASR之CTC
ASR之RNN-T
ASR之Self Attention
ASR之Transformer

Sequence to Sequence一些技巧

Train的技巧

  • Copy Mechanism
    在前面提到的chat bot里面,对于一些输入我们需要直接输出,而不是自己创造输入,比如
    “我今天见了王金鑫老同学”
    对了“王金鑫”我们就可以直接copy 过去
    或者对了 文章摘要的任务,可以直接从里面copy一些过来,比如文章标题之类的。

有人就copy mechanism专门写了论文,
Incorporating Copying Mechanism in Sequence-to-Sequence Learning

  • Guided Attention
    我们强制一些规则,比如在TTS里面,我们强制,输入输出序列一一对齐。
    Monotonic Attention
    Locationware Attention

Beam Search

Decoder出来的东西我们一般都是做softmax之后得到distribution,里面就是每个token的几率,一般去几率最高的那个,但是从整个句子看,最高那个可能不是最好的,我们可以采用beam search的方法,就是去几个,比如头2个,每次都是头2个。最后还会发现可能一开始几率不是最高的那个反而是最好的结构。下面的图假设token集合中只有A和B两个token。

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示