最近看了很多这方面的论文,尝试做个总结。

早期发展路线

早期的文本生成系统多是基于规则的,Reiter等对规则系统进行了归纳总结【1】,认为文本生成系统可以分为三个较为独立的模块:(1)内容规划(Content planning),即选择描述哪些数据记录或数据域;(2)句子规划(Sentence planning),即决定所选择的数据记录或数据域在句子中的顺序;(3)句子实现(Surface realization),即基于句子规划的结果生成实际的文本。可以认为,内容规划主要是解决“说什么”,而句子规划和句子实现主要是解决“怎么说”。

在该框架下,针对不同模块,若干基于统计的模型被提出。Barzilay等提出先将数据记录和句子进行对齐,然后学习模型解决内容选择【2】。Percy Liang等提出了一个概率图模型同时解决内容规划和句子实现【3】。具体来说就是该生成模型首先选择生成哪些数据记录,然后选择生成数据记录中的哪些数据域,最后生成描述数据域的文本

近几年,随着深度学习方法在自然语言处理领域取得突破,研究人员也尝试将神经网络的方法应用于文本生成。基于神经网络的方法又分为基于神经语言模型(Neural Language Model)的方法和基于神经机器翻译(Neural Machine Translation)的方法。

其中,Wen等提出了Semantic Controlled LSTM(Long Short-term Memory)模型用于对话系统中的文本生成【4】。该模型在标准LSTM的基础上引入了一个控制门读取结构化数据信息,并控制结构化数据信息在语言模型中的输出。该论文获得了2015年EMNLP会议的最佳论文。Kiddon等提出了神经清单模型(Neural Checklist Model),用于解决RNN(Recurrent neural networks)模型对结构化数据中的信息重复生成的问题【5】。Kiddon等将该模型应用于菜谱的生成,即输入菜名以及食材清单,机器输出相应的菜谱。基于结构化数据的文本生成存在数据稀疏的问题,即结构化数据中的许多数据值(实体名、数值等)出现次数非常少,使得模型的学习变的困难。Lebret等将拷贝动作(copy-action)引入神经语言模型,用于解决数据稀疏的问题【6】。Lebret等将该模型应用于维基百科的人物传记生成,即输入人物的信息框(Infobox),机器根据信息框中的人物信息,输出人物的文本描述。

受神经机器翻译模型【7】的启发,Mei等将基于结构化数据的文本生成任务视为一个翻译任务,即输入的源语言是结构化数据,输出的目标语言是文本【8】。很自然的,神经机器翻译模型可以解决怎么说的问题。为了进一步解决说什么的问题,Mei等在神经机器翻译模型的基础上引入了对数据记录的重要性进行建模的机制,即越重要的数据,其先验概率越大,越有可能在文本中被表达出来。

基于神经语言模型的方法和基于神经机器翻译的方法在特定数据集上都取得了较大的进步,其本质仍然是Sequence-to-sequence方法的胜利。

【1】Reiter, Ehud. 2007. An architecture for data-to-text systems. In Proceedings of ENLG.

【2】Barzilay, Regina, and Mirella Lapata. 2005. Collective content selection for concept-to-text generation. In Proceedings of EMNLP.

【3】Liang, Percy, Michael I. Jordan, and Dan Klein. 2009. Learning semantic correspondences with less supervision. In Proceedings of ACL.

【4】Wen, Tsung-Hsien, Milica Gasic, Nikola Mrksic, Pei-Hao Su, David Vandyke, and Steve Young. 2015. Semantically conditioned LSTM-based natural language generation for spoken dialogue systems. In Proceedings of EMNLP.

【5】Kiddon, Chloé, Luke Zettlemoyer, and Yejin Choi. 2016. Globally coherent text generation with neural checklist models. In Proceedings of EMNLP.

【6】Lebret, Rémi, David Grangier, and Michael Auli. 2016. Neural text generation from structured data with application to the biography domain.  In Proceedings of EMNLP.

【7】Bahdanau, Dzmitry, KyungHyun Cho, Yoshua Bengio, and Roee Aharoni. 2014. Neural Machine Translation by Jointly Learning to Align and Translate. In Proceedings of NIPS.

【8】Mei, Hongyuan, T. T. I. UChicago, Mohit Bansal, and Matthew R. Walter. 2016. What to talk about and how? Selective Generation using LSTMs with Coarse-to-Fine Alignment. In Proceedings of NAACL-HLT.

近期发展路线

最近的工作重点是端到端系统而不是单个组件。 然而,大多数模型做出简单的假设,例如没有任何内容选择或计划的生成(Belz 2008; Wong and Mooney 2007)或没有计划的内容选择 (Konstas and Lapata 2012; Angeli et al. 2010; Kim and Mooney 2010)。Konstas and Lapata(2013)是一个例外,它将表示为在文档级别上运行的语法规则的内容计划合并。 他们的方法与天气预报相当适用,但不容易扩展到具有更丰富词汇量和更长文本描述的大型数据库。 该模型依赖于EM算法(Dempster,Laird and Rubin,1977)来学习语法规则的权重,即使令牌与数据库记录对齐作为预处理步骤,也可能非常多。

到现在情况又有所转变,越来越多的端到端模型开始增加内容选择和内容规划模块以提升性能。Perez-Beltrachini和Lapata(2018)在没有内容规划的情况下引入了内容选择组件(基于多实例学习),而Liu等人(2017)提出了一种句子规划机制,该机制对维基百科信息框的内容进行排序以生成单句。 而Ratish Puduppully and Li Dong and Mirella Lapata等人更是在《Data-to-Text Generation with Content Selection and Planning》一文中提出了一个神经网络架构,其中包含内容选择和规划,而不会牺牲端到端的培训。 具体来说,他们将生成任务分解为两个阶段。 给定一组数据记录(与描述性文档配对),首先生成一个内容计划,突出显示应该提及哪些信息以及以何种顺序,然后在考虑内容计划的同时生成文档。同时他们还加入了copy机制来提升解码器的效果。

以下是近期一些优质论文的简述:

A Deep Ensemble Model with Slot Alignment for Sequence-to-Sequence Natural Language Generation

自然语言生成领域近年最著名的公开评测当属E2E NLG Challenge。该评测于2017年启动,在2018年上半年公布了评测结果,并在自然语言生成专业会议INLG 2018上进行了总结 (Dušek et al., 2018; 2019)。该评测收集了上万条配对的餐馆描述及语义表示数据(如图2所示)。参赛系统需要将给定的语义表示(meaning representation, MR),即不同的属性与值,用自然语言(natural language, NL)描述出来。评测数据集侧重于反映诸如开放词表、语义控制、表达多样性等几种数据到文本生成任务的挑战。

E2E NLG Challenge评测最终的获胜系统为加州大学圣克鲁斯分校研究团队的Slug2Slug系统,该系统在自动评测和人工评测中均取得较好的成绩。该团队将系统描述以论文A Deep Ensemble Model with Slot Alignment for Sequence-to-Sequence Natural Language Generation发表在NAACL 2018 (Juraska et al., 2018)。在这篇论文中,作者提出一个集成(ensemble)的神经文本生成框架,其中参与集成的个体模型均为常用的序列到序列(sequence-to-sequence)模型。其编码器部分采用了最为常用的LSTM-RNN或CNN。而在每个模型解码输出多条候选文本后,系统还对这些候选文本进行重排序,排序时考虑了文本中所提及事实与输入数据的匹配情况。本文在方法上的核心贡献是作者自行构建的一套启发式的属性槽对齐器(slot aligner),用来剔除训练数据中一些没有被对应文本所提及的属性值,在一定程度上实现了数据去噪;作者还根据候选文本同数据属性槽的对齐结果设计了重排序准则。实验表明,系统虽然无法在所有自动评测指标中均取得领先,但可以使得模型在各个指标上都更加稳定、输出错误更少的文本。

由于面向E2E评测,作者也在文中总结了不少实用技巧,对准备上手相关任务的读者而言值得参考。比如,在预处理时的去词汇化(delexicalization)操作中,作者不仅简单地进行匹配和替换,还在替换时保留了更多的上下文信息(如单复数、时态等和衔接等信息)。另外,论文还讨论了文本生成中数据增广(data augmentation)的实用做法,以及为了获得更自然的生成文本对训练数据进行选择的尝试。

End-to-End Content and Plan Selection for Data-to-Text Generation

这篇论文是哈佛大学自然语言处理组发表在INLG 2018的工作(Gehrmann et al., 2018)。文中提出的方法在经典序列到序列模型的基础上,引入多个解码器,并通过隐变量因子来指定最终文本是由哪个解码器所生成。这样做的原因是,在文本生成中,同一个意图往往有多种表达方法,只使用单个解码器很难对多种不同的表达方式进行拟合。而通过设置多个子模型,可以让每个子模型只负责拟合特定表达风格的数据,从而改进学习效果。

值得一提的是,该论文所采用的基础模型整合了常用的注意力(attention)机制、拷贝(copy)机制、覆盖(coverage)机制和文本长度控制等,是一个较为先进和完备的基础模型。另外,该论文也在 E2E NLG Challenge 数据集上对这些主要组件的影响进行了实验评测。

Learning Neural Templates for Text Generation

虽然端到端(end-to-end)的方法在数据到文本生成上取得了一定的成果,但其不可解释性和不可控性一直广为诟病。因此,近期也出现了一些将端到端方法和传统基于规则和模板的方法进行融合的模型。哈佛大学自然语言处理组的EMNLP 2018论文Learning Neural Templates for Text Generation就是其中较有代表性的工作之一 (Wiseman et al., 2018)。为了学习抽取和使用模板,作者采用适合片段建模的隐半马尔可夫模型(hidden semi-markov model, HSMM)对文本进行建模,并用神经网络实现其中所有概率项的参数化。在完成模型训练后,可以利用Viterbi算法推断出隐状态序列,并将其获取为模板,因此可以很方便地对模板进行控制并利用模板引导下一步的文本生成。在E2E NLG Challenge数据和WikiBio数据上的实验结果表明,该方法可以取得和端到端神经模型可比的性能,但是更具可解释性和可控性。

同期也有其它工作尝试先产生模板、再填写属性值的过程(Li and Wan, 2018)。借助边际损失函数拉大正确填充结果与错误填充结果的模型打分差距,可以在一定程度上缓解输出文本语义不正确的问题。

内容选择和内容规划

生成文献提供了针对各种领域开发的内容选择组件的多个示例,这些组件是手工构建的(Kukich 1983; McKeown 1992; Reiter and Dale 1997; Duboue and McKeown 2003) 或从数据中学习(Barzilay and Lapata 2005; Duboue and McKeown 2001; 2003; Liang et al. 2009; Angeli et al. 2010; Kim and Mooney 2010; Konstas and Lapata 2013)。

以前尝试利用松散对齐的数据和文本语料库主要集中在提取数据单元的语言化范围。 大多数方法分两个阶段工作:最初,数据单元使用一些启发式方法与来自相关语料库的句子对齐,随后丢弃额外内容以便仅保留文本跨越语言数据。 Belz和Kow(2010)使用数据单位和单词之间关联强度的度量来获得语言化跨度,Walter等人(2013)从依赖树中的路径中提取文本模式,而Mrabet等人(2016)依赖于众包。 Perez-Beltrachini和Gardent(2016)学习数据单元和句子的共享表示,减少主题谓词 - 对象三元组,目的是提取知识库属性的语言空间。 我们的工作更进了一步,我们不仅引入了数据文本对齐,还学习了生成短语的生成器,用语言表达了一系列事实。

早期关于内容规划的工作依赖于通用规划(Dale 1988),基于修辞结构理论(Hovy 1993)和模式(McKeown等人1997)。 他们通过分析目标文本和设计手工制定的规则来定义内容规划。 Duboue和McKeown(2001)研究了内容计划的排序约束,Duboue和McKeown(2002)从一个对齐的输入和人类输出语料库中学习内容规划器。一些研究人员(Mellish等人1998; Karamanis 2004)根据排名函数对内容计划进行排名。

Data2Text文本生成演化之路相关推荐

  1. GPT2文本生成有问题?这里有些潜在解决思路

    作者 | Leo Gao 译者 | 凯隐 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]在过去的一年中,人们对文本生成模型的兴趣重新燃起,这在很大程度上要归功于GPT ...

  2. 性能堪比GPT-3,但参数量仅为0.1%,LMU团队推出NLP最强文本生成模型

    2020-09-24 04:21:08 作者 | 贝爽 编辑 | 陈彩娴 模型越大,性能越佳?不一定. 在NLP领域,谈到超大模型必然想到预训练语言模型GPT-3,自今年3月份对外开放以来,其因超大模 ...

  3. 肝了1W字!文本生成评价指标的进化与推翻

    一只小狐狸带你解锁 炼丹术&NLP 秘籍 作者:林镇坤(中山大学研一,对文本生成和猫感兴趣) 前言 文本生成目前的一大瓶颈是如何客观,准确的评价机器生成文本的质量.一个好的评价指标(或者设置合 ...

  4. 国内版ChatGPT要来了?基于GPT的文本生成一键体验

    ★★★ 本文源自AI Studio社区精品项目,[点击此处]查看更多精品内容 >>> 项目概述 本项目从零开始构建了一个用于文本生成的语言模型,模型采用Transformer架构,数 ...

  5. keras bi-lstm_LSTM用于文本生成的应用介绍-使用Keras和启用GPU的Kaggle Kernels

    keras bi-lstm by Megan Risdal 梅根·里斯达尔(Megan Risdal) LSTM用于文本生成的应用介绍-使用Keras和启用GPU的Kaggle Kernels (An ...

  6. 人大团队研究:面向文本生成,预训练模型进展梳理

    作者 | 刘媛媛 来源 | 数据实战派 文本生成是 NLP 中最重要且颇具挑战性的任务之一.近年来,预训练语言模型 (Pretrained Language Models ,下文简称 "PL ...

  7. 今日头条李磊等最新论文:用于文本生成的核化贝叶斯Softmax

    译者 | Raku 出品 | AI科技大本营(ID:rgznai100) 摘要 用于文本生成的神经模型需要在解码阶段具有适当词嵌入的softmax层,大多数现有方法采用每个单词单点嵌入的方式,但是一个 ...

  8. 深度CTR预估模型的演化之路2019最新进展

    作者 | 锅逗逗 来源 | 深度传送门(ID: deep_deliver) 导读:本文主要介绍深度CTR经典预估模型的演化之路以及在2019工业界的最新进展. 介绍 在计算广告和推荐系统中,点击率(C ...

  9. 字节最新文本生成图像AI,训练集里居然没有一张带文字描述的图片?!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 一个文本-图像 ...

最新文章

  1. [命令技巧]chmod Set-User-ID Set-Group-ID
  2. mysql 事物封装_mysqls 一个node对mysql的封装库 链式调用、支持事务
  3. canal mysql重置_canal: 首先装完阿里的canal,然后数据库同步,仅供学习参考
  4. oracle查看和替换含不可见字符(空白)
  5. C#提取文件名【C#】
  6. Apache Tika源码研究(七)
  7. 不改变分辨率转换PDF为png图片的方法汇总
  8. ftl if else判断_为什么都不用 switch 而使用 if/ else 来做条件判断?
  9. hbase占用内存过高_Hbase探究——如何避免一行数据过大导致加载至内存出现out of memory的情况...
  10. mysql 里的1对n虚线_mysql workbench EER图,里面的实线以及虚线的关系
  11. ORB-SLAM 解读(五) 地图点投影进行特征匹配
  12. 两路共享LSTM时序数据预测实战+界面可视化应用
  13. Go 语言高性能编程
  14. Google如何对图片搜索结果进行排名
  15. mac php fpm.pid,php-fpm的常用配置和优化
  16. 数据的更新(update的用法)笔记
  17. viper4android 2.5正版,VIPER4Android最新版本
  18. 华为HG8245C光猫破解开启原始管理页面
  19. redis限制set大小_redis set大小限制_微信文件大小限制
  20. Machine Learning之高等数学篇(五)☞《偏导数与方向导数、梯度》

热门文章

  1. Rocky(Centos)使用acme.sh申请安装Let‘s Encrypt泛域名ECC证书(阿里DNS)
  2. Python编程语言的优点
  3. 从源码解析-结合Activity加载流程深入理解ActivityThrad的工作逻辑
  4. JAVA支付宝扫码支付开发流程
  5. React搜索框历史搜索记录——数组前插
  6. 华为ws851 虚拟服务器,荣耀路由Pro设置教程 华为WS851路由器怎么设置-192路由网...
  7. F2833x烧录到FLASH芯片锁住如何解除
  8. html隐藏input边框线,css如何去掉input的边框?
  9. 海量图片的分布式存储及负载均衡研究
  10. linux下的excel