论文笔记: ReDecode Framework for Iterative Improvement in Paraphrase Generation

栏目: R语言 · 发布时间: 5年前

作者

  • Milan Aggarwal
  • Nupur Kumari
  • Ayush Bansal
  • Balaji Krishnamurthyk

观点与事实

观点

  • 当前的一些序列生成方法都是一锤子买卖,在生成的时候改正错误的能力太差,生成之后也不能去改进生成质量
  • 人类对话中用复杂的复述来表达相同意图的行为很普遍,但对机器来说要辨别或生成复述句是很困难的
  • VAE 学习的是一个概率分布,所以用于生成式的任务很合适

相关工作

  • 1983. Paraphrasing questions using givenand new information
  • 2003. Learning to paraphrase: anunsupervised approach using multiple-sequence alignment
  • 2004. Monolingualmachine translation for paraphrase generation. Associationfor Computational Linguistics.
  • 2004. Synonymous para-phrasing using wordnet and internet
  • 2016. Neural paraphrase genera-tion with stacked residual lstm networks
  • 2017. Learn-ing paraphrastic sentence embeddings from back-translatedbitext
  • 2017. Joint copying andrestricted generation for paraphrase
  • 2017. Learning to paraphrase for question answering
  • 2017. Adeep generative framework for paraphrase generation
  • 2018. Adversarial example generation with syn-tactically controlled paraphrase networks

数据集

论文里用到了两个数据集。

第一个是 Quora 的相似问题数据集,这个没啥好说的。

第二个是微软的 MSCOCO 数据集,这个其实是一个 Image Caption 的数据集,但是因为这个数据集里每张图片都标注了五个标题,可以认为这个五个标题互为复述句。

模型/方法/结论

模型结构如下图所示

论文笔记: ReDecode Framework for Iterative Improvement in Paraphrase Generation

模型又三部分组成,分别是

  • Sampling Encoder

    这个 Encoder 用来根据输入句子 \(x_{o}\) 产生一个概率分布,然后从 x 中进行采样得到一个 latent vector \(z\)

    在这篇论文里,Sampling Encoder 由一个单层的 LSTM 和两个全连接层构成。

    首先输入句子 \(x_{o}\) 经过 LSTM 后得到整个句子的向量表示 \(v_{o}\),然后分别输入一个全连接层,得到期望概率分布的均值 \(\mu\) 和方差 \(\sum\),用这个均值和方差就得到了一个正态分布 \(N(\mu, \sum)\),从这个概率分布中采样得到最终需要的 \(z\)。

    为了让最终模型的输出能更有多样性,在训练的时候,作者对 \(\mu\) 和 \(\sum\) 施加高斯噪声扰动来得到不同的 \(z\)。

  • Sentence Encoder

    这个 Encoder 用来对得到输入句子 x 的语义表示,用来作为 decoder 的语义输入。

    这个 Encoder 就比较简单了,一个两层的 LSTM,输出 hidden state 序列 \(H={h_{1}^{o}, h_{2}^{o}...h_{n}^{o}}\),并在 Decoder 中对其进行 attention 计算。

  • Sequencd Decoders

    这个是最终用来生成的复述句的,也是整篇论文中的要点。

    和常规的一个 decoder 做法不一样的是,作者认为生成的部分,应该用多个 decoder 来迭代地生成结果。具体来说,这篇论文的做法是这样的

    • 第一个 decoder 以 Sentence Encoder 输出的 hidden state 向量 \(H\) 和 Sampling Encoder 输出的 latent vector \(z\) 作为输入

      \(p_{1}=Dec_{\phi_{1}}(z, Attn(H))\)

    • 随后的 decoder 则以前一个 decoder 的输出和 Sampling Encoder 输出的 \(z\) 作为输入

      \(p_{i}=Dec_{\phi_{i}}(z, Attn({s_{Dec_{\phi_{i-1}}}}))\)

下图是该模型在两个数据集上的效果。 论文笔记: ReDecode Framework for Iterative Improvement in Paraphrase Generation

以及一些输出示例

论文笔记: ReDecode Framework for Iterative Improvement in Paraphrase Generation

总结

总的来说,模型并不算很复杂,也很简单易懂。

VAE 的部分我其实并不太熟悉,需要去补课。至于 Decoder 的部分,这种迭代生成的路子,其实早就见过了,比如说HMN 模型,以及一些在 attention 机制上的改进工作之类的。


以上所述就是小编给大家介绍的《论文笔记: ReDecode Framework for Iterative Improvement in Paraphrase Generation》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

嵌入式Linux应用开发完全手册

嵌入式Linux应用开发完全手册

韦东山 主编 / 人民邮电出版社 / 2008-8 / 69.00元

本书全部实例代码及相关工具。 基于ARM 9+Linux 206平台,从基础讲起,引导读者快速入门,实例丰富,可直接应用于工程实践。 本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及......一起来看看 《嵌入式Linux应用开发完全手册》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具