Open wangqiangneu opened 5 years ago
用generative flow(参考12)做non-autoregressive NMT,通过引入隐变量的方式搞的,这个方法是single-stage,解码时间可以认为是constant(隐变量是non-regressive方式得到的,同时target序列也是non-regressive得到的),跟序列长度无关。generative flow的形式很新颖,这块得学习学习。
generative flow
简单来说,包含encoder, decoder, posterior, prior flow四部分。训练时,通过posterior(z|x,y)得到隐变量z,(z的长度跟要生成的目标语y一样,每个$z_i$是一个d维向量,通过预测的normal distribution的mean和variance采样得到的,整个过程NAT)。decoder(y|x,z),过程也是NAT。然后prior(z'|x)得到z',让z和z'接近,e.g. KL(z||z'),整个目标是ELBOE(evidence lower bound,variance inference的套路)。prior的结构稍微复杂一些,不过搞清楚输入是采样的一组从normal distribution里采样的向量v(v的个数是target的长度),以及x,然后经过一系列变化得到z'就好
encoder
decoder
posterior
prior flow
prior
ELBOE
简介
用
generative flow
(参考12)做non-autoregressive NMT,通过引入隐变量的方式搞的,这个方法是single-stage,解码时间可以认为是constant(隐变量是non-regressive方式得到的,同时target序列也是non-regressive得到的),跟序列长度无关。generative flow
的形式很新颖,这块得学习学习。方法
简单来说,包含
encoder
,decoder
,posterior
,prior flow
四部分。训练时,通过posterior
(z|x,y)得到隐变量z,(z的长度跟要生成的目标语y一样,每个$z_i$是一个d维向量,通过预测的normal distribution的mean和variance采样得到的,整个过程NAT)。decoder(y|x,z),过程也是NAT。然后prior
(z'|x)得到z',让z和z'接近,e.g. KL(z||z'),整个目标是ELBOE
(evidence lower bound,variance inference的套路)。prior
的结构稍微复杂一些,不过搞清楚输入是采样的一组从normal distribution里采样的向量v(v的个数是target的长度),以及x,然后经过一系列变化得到z'就好论文信息
总结