2

干货 | 限定和指导 Seq2Seq 模型的生成结果(二)

 2 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzAwMjM3MTc5OA%3D%3D&%3Bmid=2652693201&%3Bidx=1&%3Bsn=e385650379ede59df28ae504f453dc9a
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

干货 | 限定和指导 Seq2Seq 模型的生成结果(二)

Original 程序媛的日常 程序媛的日常 2018-06-10 23:54
640

今天继续关于 Lexically Contrained Decoding 的一些工作。上半部分的内容请点此查看。会涉及的论文有:

  1. Fast Lexically Constrained Decoding with Dynamic Beam Allocation for Neural Machine Translation. NAACL 2018.

  2. Sequence to Backward and Forward Sequences: A Content-Introducing Approach to Generative Short-Text Conversation. COLING 2016.

  3. Towards Implicit Content-Introducing for Generative Short-Text Conversation Systems. EMNLP 2017.

  4. Neural Response Generation with Dynamic Vocabularies. AAAI 2018.

  5. Globally Coherent Text Generation with Neural Checklist Models. EMNLP 2016.

  6. Learning symmetric collaborative dialogue agents with dynamic knowledge graph embeddings. ACL 2017.

  7. Dynamic Entity Representations in Neural Language Models. EMNLP 2017.

  8. Delete, Retrieve, Generate: A Simple Approach to Sentiment and Style Transfer. NAACL 2018.

  9. Retrieve, Rerank and Rewrite: Soft Template Based Neural Summarization. ACL 2018.

640?wx_fmt=png

昨天大部分论文是预测一个主题关键词,来指导和限定回复。很多时候,这样的关键词也可以从上下文中直接抽取。有一类代表词就是实体词,entity。

关于 entity 的研究在近三四年的时间里获得了许多关注。entity 不仅是知识库的重要组成部分,也是理解很多特定体裁的文本的关键,比如小说和新闻中的各种人物关系。同时,entity 也在特定领域对话中扮演着重要角色。

今天要分享的第一篇工作 [5] 则集中在一类更特别的文本生成——菜谱生成。菜谱生成的研究和 video description 还有 script knowledge 都有关系。而其最大特点也是,在一份菜谱中覆盖着多个 entity,还有对于这些 entity 的操作。也因此,这篇工作 [5] 设计了非常显式的记忆机制,专门去建模 entity。

640?wx_fmt=png

其主要思想 [5] 可以由上述示意图来表示。给定一个菜谱标题(菜名),和一系列 entity 也就是菜谱的“原材料”,这篇工作 [5] 使用序列模型逐步生成菜谱中的每一个 token。在每一个生成时刻,预测是否该生成一个 entity。如果是,则从原材料列表(agenda)中计算出概率最高的那个,作为此刻的输入。

到此为止,这个思想还是类似于 CopyNet 或者说 pointer network 的。但是这篇工作 [5] 因为针对菜谱生成,将其进一步细化了。对于菜谱来说,有些 entity 被生成后,还会被再次提及。所以这篇工作 [5] 将每一时刻的门的判断,由两种选项,扩展成三种选项——(1)普通 GRU 生成,也就是非 entity 限定;(2)生成一个新的,还没被提过的 entity;(3)生成一个旧的,已经被提过的 entity。自然而然地,一个新的 entity 一旦被生成,就会变成“旧”的 entity,也就需要记录这种“变化”——由此就有了 checklist 的思想。这篇文章 [5] 也因此将模型命名为 checklist model。

640?wx_fmt=png

上面的 checklist model [5] 的适用范围不止是菜谱生成。如果把 agenda 中存储的 entity 从菜谱原材料变成一些 slot,就可以进行特定领域对话的生成。其根本思想是追踪、记录和更新某些特定的某些实体/信息——即用特殊机制建模特定信息。

从这个角度来说,曾经我们详细介绍过的另一篇工作 [6],也可以被划分到这里来。

640?wx_fmt=png

在这篇工作 [6] 中,对话中涉及的 item(朋友列表)是被追踪和更新的对象。这些对象是图中的结点,作者 [6] 希望获得每个结点的表达(vector representation for each node),也就是 Graph embedding。每当新的对话信息被加入,就需要更新这个对话信息中涉及到的相关结点的表达。比如上图中,当出现了“anyone went to Columbia”的时候,首先相关的结点肯定是 columbia。但和 columbia 相关的别的结点,jessica 和 josh 也应该被更新。关于这篇论文的具体解读可以点此查看

640?wx_fmt=png

上面这篇论文 [6] 的核心思想就是利用动态表达(Dynamic Representation)来建模核心信息(item)。这类思想也在过去几年的关于 general entity 建模中被广泛使用。这方面的一个代表性工作就是由 [7] 提出的 EntityNLM,entity neural language model。

640?wx_fmt=png

可以看到,作者并不局限在某一个特定场景下的工作,而是使用 language model 建模含有大量 entity 的文本。换句话说,作者的工作使用的是生成模型,而且是含有隐变量的条件生成模型。

640?wx_fmt=png

由上图看到,R,E,L 都是要学习的变量。这些变量主要用于辅助预测当下时刻要生成的是否是一个 entity。接下来就是如何去学习这些 entity 的表达。可以想到,entity 的表达受 context 和这些变量影响下的其他 entity 的影响。作者 [7] 也因此使用了 dynamic representation。并且,同上面两篇论文一样,每一词预测出一个 entity 后,这些 dynamic representation 也要更新。关于这两部分的细节公式,请大家查阅原始论文 [7]。

640?wx_fmt=png

限定和指导 Seq2Seq 模型生成结果的另一个重要应用是风格迁移(Domain Adaptation),其潜在的场景就是领域迁移。最早的基于神经网络风格迁移多数是先预训练一个模型,再在新领域的数据上 fine-tuning。这样的过程虽然简单粗暴,但效果往往不尽如人意。尤其是在由离散数据组成的文本迁移上,由于很难通过连续改变一个像素点的数值来训练,导致训练结果更加不可控。

这篇工作 [8] 则给出了一个新的可行思路。文本的一些属性(attribute),比如文本传达出来的情感信息等,可以体现在文本中的某些特定词汇上。通过改变这些词汇,就可能直接改变整句文本的性质属性(value)。

640?wx_fmt=png

上面的示意图给出了这篇工作 [8] 的思路。作者将那些具有指示功能的特定词称为 attribute marker,通过(主要)改变这些 marker,进行 attribute transfer。文章进一步提出了4种具体的方法来改变 marker。

640?wx_fmt=png

这4种具体的方式也由上图很清晰地展示了出来。值得一提的是 DeleteOnly 和 DeleteAndRetrieve。在删除了具体的 marker 后,作者提出再去根据这个没有情感特定性的句子去从数据中检索出一句最相似但是 attribute 的数值相反(target attribute)的话。检索出的这句话主要用于提取新的 target attribute marker,作为“重写” RNN 的输入之一。

很明显,这样的工作可能有一定局限性,但在一些简化场景中,却是更可控的。其实验结果也印证了这点 [8]。

640?wx_fmt=png
640?wx_fmt=png

最后来看的这篇论文 [9] 有着异曲同工的思想——也是将 Retrieval 和 Generation 结合在一起——却是用在自动摘要(Summarization)的任务上。自动文摘的研究可以大致分为模板式(template),抽取式(extractive)和生成式(abstractive)。三者各有利弊。这篇论文 [9] 也算是尝试将模板式和生成式结合起来的一种新思路。思想虽然简单,效果依然出乎意料地好。

640?wx_fmt=png

这篇工作 [9] 的思路如上示意图。给定一句话(first sentence in the news),先去检索出一些相似 news,将它们的摘要(headline)作为候选 summary candidates。然后遵照常用方式进行 rerank 找出最合适的那一句 headline 作为“soft template”。这个 soft template 结合原始的输入,一起传给改写 RNN,生成最终的摘要。

对比 [8] 和 [9],这两篇工作都通过 retrieve 的方式从数据库中找了最相似的数据来作为“soft template”。可以猜想,这一步也可以认为是改写出更自然的、更流畅的句子的关键。

640?wx_fmt=png

这次的两篇总结提到的论文远远覆盖不了 Lexically Constrained Decoding 的全部研究。从更广泛的角度来讲,大家非常熟悉的 CopyNet 或者说 pointer network、placeholder approach 都可以归为这个范畴。相关文章推荐大家阅读:

1. 干货 | 限定和指导 Seq2Seq 模型的生成结果(一)

2. ACL 2017 | 别再对抗了,通过对话合作找出共同的好朋友吧!

3. ACL 2016 | CopyNet 和 Pointer Softmax

4. 干货 | Pointer Network 与 CopyNet 之上有哪些新颖任务

640?wx_fmt=jpeg
640?wx_fmt=jpeg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK