自然语言生成工具箱 - GAP(一)

文章名称

【ACL-2019】An End-to-End Generative Architecture for Paraphrase Generation

核心要点

文章旨在进行释义生成。作者通过构建条件生成网络架构(CVAE),结合对抗训练方法(在CVAE生成句子之后,加入句子是否是真实的判别器,通俗的说就是判断这个句子是不是假的或者不在语料里),在没有额外语义信息输入的情况下实现真实的释义生成。

方法细节

问题引入


原有的释义生成模型包括三种类型,1)seq2seq;2)基于强化学习;3)基于生成网络,如CVAE。作者发现原有方法存在两方面问题,1)由于潜在的搜索空间较大且大多数的搜素空间是不存在实际的语义(可以不去搜索),因此,随机采样的情况下,基于生成模型的释义生成网络,存在无法生成真实语句的问题。此外,利用LSTM的方法,存在Exposure Bias的问题(参见[1])并利用规划采样方法缓解这一问题。然而,[2]说明这种方法在实际场景中无法应用,主要是因为这个方法和训练的策略目标是不一致的。此外,原有的许多方法需要引入额外的语言学信息。

具体做法

作者提出的模型的整体框架如下图所示,模型可以被理解为,1)使用CVAE进行释义生成,2)并且利用一个外加的判别器,增强CVAE。这个基于对抗训练的判别器,被用来判断整个句子是否是真实的(符合语料中句子的分布)。由于不像以前的生成网络判断单个词是否真实(LSTM的生成原理,尽量确保下一个词的似然最大),理论上应该可以缓解上述提到的,LSTM曝光偏差问题。

framework

总结下来,模型整体框架包括3部分,1)CVAE的编码器;2)CVAE的解码器;3)(基于对抗损失的)判别器。

首先,编码器由两个LSTM组成,用来生成隐变量z。把输入的原句子和目标句子s^o, s^p串联的输入到E_1,E_2中隐变量的高斯分布参数\mu, \sigma,标记这个z的分布为q(z|s^o, s^p)。这里讲的串联输入指的是什么呢?读过自然语言生成工具箱 - VAE-LSTM应该比较清楚,其实就是s^o作为LSTM E_1的输入,s^p作为LSTM E_2的输入,E_1最终的隐状态作为E_2的初始隐状态,利用E_2的最终隐状态,得到\mu, \sigma

但是,在预测时,我们没有平行语料,即只有s^o没有s^p,这就会造成上述VAE无意义的在搜索空间中搜索的问题(因为没有了目标指导的信息)。作者提出,另一路数据流,单独把s^o输入到E_1,并且得到\mu \prime, \sigma\prime,标记这个z的分布为q(z|s^o)$(论文的文字描述部分应该是有typo)。

解码器部分仍然是由两个LSTM组成,同样分成两股数据里,第一股是把原始句子s^oz \sim q(z|s^o, s^p)作为输入,串联的输入到两个LSTM中。这里讲的串联输入也和自然语言生成工具箱 - VAE-LSTM中的一样,s^o输入到LSTM G_1中,把生成的最终隐状态当做LSTM G_2的初始隐状态,把生成的词的词向量拼接上z \sim q(z|s^o, s^p)作为LSTM每一步的输入(第一个词用特殊标记BOS代替),得到生成的句子\tilde{s}^p,生成的概率函数如下图所示。

生成概率

第二股同理把原始句子s^oz \sim q(z|s^o)作为输入,串联的输入到两个LSTM中,训练时利用s^p作为监督信息,计算重构损失L_{rec1, rec2},两个损失函数如下图所示。

$L_{rec1, rec2}$

由于采用了VAE的框架,因此需要通过优化ELBO来进行VAE模型的变分学习,优化的损失函数如下图所示。其中,共同训练编码器和解码器的损失中,z\prime \sim q(z|s^o)表示z\prime是从该分布中采样的结果。

VAE Loss E1 and E2
VAE Loss E1 only
VAE loss $L_DG$

作者认为,由于使用了两个编码器和解码过程(以及对应两股损失的梯度回传),弥补了训练时有目标句子,测试时没有的差距,能够帮助减缓上述存在的搜索空间的问题,有助于生成多样化且真实的释义。

用来判断生成句子是否真实(是否符合原语料的分布的判别器)可以是一个简单的LSTM,这里的判别任务和原来GAN框架下的判别任务是一致的,都是区别一个样本是生成的还是原有的(真实的)。判别器的损失函数如下图所示,同样z\prime \sim q(z|s^o)表示z\prime是从该分布中采样的结果。

Discriminator Loss

值得注意的是,作者给出了两个训练的tricks。1)由于监督的反向传播很难训练序列生成网络,因此作者利用[3]中提出的policy gradient的方法训练解码器(生成器)和编码器,并把判别器的判别输出当做reward;2)GAN的训练是比较困难的,之前的方法会采用预训练的方式,作者利用超参数\lambda_3的提升,在t=0 \rightarrow t_{wp}的过程中逐渐增大L_{DG}对损失的影响(也就是判别器的影响)来有简单到复杂的训练模型,稳定训练过程。同样的思路也应用到超参\lambda_2来平衡目标句子的影响,逐渐过渡到测试状态。

代码实现

文章的伪代码如下图所示。

pseudo code

心得体会

z服从的分布

由于文章在生成器部分分成了两股数据流,生成了两个z,分别服从分布q(z|s^o, s^p)q(z|s^o)(论文的文字描述部分应该是有typo)。因此,在计算损失的时候,需要注意生成的z来自哪个分布。其中,公式7中的z来自于平行语料生成的z,而公式8的z来自原始句子单独生成的z。另外,判别器的损失函数中,z\prime也来自于原始句子单独生成的z

关于对撞结构,文中举的例子可能更贴切一点。一个人长得好看和脾气好没有什么关系(相互独立,不要跟我聊什么相由心生:p)。但是两者共同决定一个人是否受欢迎,如果这个人被确认是受欢迎的,那么他要么长得好,要么脾气好(不考虑其他的)。这个例子,比流行程度和物品特质这个例子更好理解。

文章引用

[1] Samy Bengio, Oriol Vinyals, Navdeep Jaitly, and Noam Shazeer. 2015. Scheduled sampling for sequence prediction with recurrent neural networks. In Advances in Neural Information Processing Systems, pages 1171–1179.

[2] Ferenc Huszar. 2015. How (not) to train your generative model: Scheduled sampling, likelihood, adversary? stat, 1050:16.

[3] Lantao Yu, Weinan Zhang, Jun Wang, and Yong Yu. 2017. Seqgan: Sequence generative adversarial nets with policy gradient. In Thirty-First AAAI Conference on Artificial Intelligence.

©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容