量子位 + 关注
手机版

NLG ≠ 机器写作 | 专家专栏

  1. 云栖社区>
  2. 量子位>
  3. 博客>
  4. 正文

NLG ≠ 机器写作 | 专家专栏

技术小能手 2018-09-11 15:25:32 浏览3933 评论0

摘要: 引子 2017年5月31日,包括 Aaron Courville(《Deep Learning》一书作者)在内的五位作者,在 arXiv 上提交了一篇论文《Adversarial Generation of Natural Language》,提出了一种新的基于生成对抗网络(Generative Adversarial Networks, GAN)的自然语言生成(Natural Language Generation,NLG)方法,在自动写诗这件事情上取得了非常好的效果,但这并不是重点。

引子

2017年5月31日,包括 Aaron Courville(《Deep Learning》一书作者)在内的五位作者,在 arXiv 上提交了一篇论文《Adversarial Generation of Natural Language》,提出了一种新的基于生成对抗网络(Generative Adversarial Networks, GAN)的自然语言生成(Natural Language Generation,NLG)方法,在自动写诗这件事情上取得了非常好的效果,但这并不是重点。

重点是,这篇文章引发了自然语言处理(Natural Language Processing, NLP)大神 Yoav GoldGerg和深度学习(Deep Learning, DL)大神 Yann LeCun 的论战。

Yoav 先是在 Twitter 上发了一篇推文表明自己不喜欢这篇论文的工作,之后又写了一篇Medium长文(图1)表达自己的观点:

“拜托你们这帮搞深度学习的人,别再抓着语言不放并声称自己已经解决语言的问题了!”,认为这篇论文并没有解决自然语言生成(NLG) 的问题。

3e3068ba38bd62ce2c6c9f8eb41421a324f42fe9

YoavGoldBerg的 Medium 长文截屏(后来Yoav修改了这篇文章)

随后,Yann LeCun 在 Facebook 上对 Yoav 的观点进行了反击(图2),然后又反复数个回合。

265617e9a251e7f4f9b816552f994e80b2768c2b

Yann LeCun 在 Facebook 上的反击

引发这次争论的主题就是自然语言生成(以下简称 NLG),也是接下来系列文章里我们要讨论的主题。

何为 NLG?

提到 NLG,首先会联想到一个不知疲倦的机器人,可以每周7×24小时地奋笔疾书,产出各种各样的小说、情书、剧本、新闻、财报等各种类型的文字。

现实中,的确也有一些机器生成的书出版(例如用165行 Python 代码自动生成的书《World Clock》,由 Harvard Book Store press 出版 ),甚至在 Amazon 上有了一定的销量和用户好评(例如 Philip M. Parker 用机器写了一大堆书在 Amazon 上卖)。

但实际的 NLG,更多的是基于已有文本/数据/图像生成自然语言形式的文本,离真正的「机器写作」差的还很远。

NLG是自然语言处理(NLP)的重要组成部分。NLP研究如何实现自然语言形式的人机交互,其研究涉及语言学、计算机科学和数学等多个领域。

NLP 包含自然语言理解 (Natural Language Understanding,NLU) 和自然语言生成(Natural Langauge Generation, NLG)两个重要方向,如下图所示。

cd5dda415831c1ba203e154b0f64bee2962a3bdb

自然语言处理主要技术领域

其中,NLU 旨在让机器理解自然语言形式的文本内容。从 NLU 处理的文本单元来讲,可以分为词(term)、句子(sentence)、文档(document)三种不同的类型:

词层面的基础 NLU 领域包括分词(汉语、缅甸语、泰语等非拉丁语系语言需要)、词性标注(名词、动词、形容词等)、命名实体识别(人物、机构、地点等)和实体关系提取(例如人物-出生地关系、公司-所在地关系、公司收购关系等);

句子层面的基础 NLU 领域包括句法结构解析(获取句子的句法结构)和依存关系解析(获取句子组成部分的依赖关系);

文档层面的基础 NLU 领域包含情感分析(分析一篇文档的情感倾向)和主题建模(分析文档内容的主题分布)。

与NLU不同,NLG旨在让机器根据确定的结构化数据、文本、音视频等生成人类可以理解的自然语言形式的文本。根据数据源的类型,NLG可以分为三类:

● Text to text NLG,主要是对输入的自然语言文本进行进一步的处理和加工,主要包含文本摘要(对输入文本进行精简提炼)、拼写检查(自动纠正输入文本的单词拼写错误)、语法纠错(自动纠正输入文本的句法错误)、机器翻译(将输入文本的语义以另一种语言表达)和文本重写(以另一种不同的形式表达输入文本相同的语义)等领域;
● Data to text NLG,主要是根据输入的结构化数据生成易读易理解的自然语言文本,包含天气预报(根据天气预报数据生成概括性的用于播报的文本)、金融报告(自动生成季报/年报)、体育新闻(根据比分信息自动生成体育新闻)、人物简历(根据人物结构化数据生成简历)等领域的文本自动生成;
● Vision to text NLG,主要是给定一张图片或一段视频,生成可以准确描述图片或视频(其实是连续的图片序列)语义信息的自然语言文本,同时 text to vision 的自动生成近几年也有一些有趣的进展。

近年来,随着CNN(Convolutinal Neural Network)、RNN(Recurrent Neural Network)、GAN(Generative Adversarial Network)等深度学习技术的应用,NLP(尤其是 NLG)领域取得了明显的进展,也涌现了一些有趣的 NLG 应用。

有趣的 NLG 应用

在 Text to text NLG 领域,令人瞩目的进展当属 GNMT (Google Neural Machine Translation)。它基于带 Attention 机制的 Encoder(8层LSTM)- Decoder(8层LSTM) 框架(图4),通过引入残差连接(Residual Connection),并基于 Google 打造的 TPU (Tensor Processing Unit)进行并行化处理,高效地进行 GNMT 模型的训练和预测。

ab27dc99c55aba22ef1e4ac2838dcbbe6fd5ade4

GNMT 的 Encoder-Decoder 框架

GNMT 相对传统的 PBMT(Phrase-Based Machine Translation)模型,在多个主要语言对的翻译中将翻译误差降低了 55%-85% 以上。

同时,Google 在 GNMT中借鉴迁移学习(Transfer Learning)的思路,通过不同语言对的翻译模型共享参数,实现了未经训练的语言对之间的自动翻译(即「Zero-Shot Translation」)。

在 Data to text NLG 领域,一项有趣的工作是Facebook AI Research 2016年发表在 EMNLP 会议上的一篇论文研究了如何利用人物的结构化数据(通常是表格化的数据)生成人物 biography 的工作,并通过抽取维基百科的 infobox 和正文第一段话,自动化地构建了一个大型平行语料库 WikiBio,包含了超过70万条平行数据和超过40万的词表。

它基于条件神经语言模型,利用表格数据作为条件,进行自然语言形式的 biography 文本生成(图5)。

它将表格数据以局部条件(local conditioning,描述之前生成的词序列与表格数据的关系)和全局条件(global conditioning,利用表格中所有的域和对应数据对人的特征进行建模)的形式加入到神经网络模型中,并设计了一种 copy 机制使模型可以灵活考虑表格中出现过的词。

基于这样的机制,可以达到类似下面例子的结果。

67fa15a59b3ec688af857cf7ef706375bc041757

人物 biography 文本生成示例

Vision to text NLG 领域的典型应用当属 Image Captioning(看图说话),它的输入为一张图片(Video Captioning 中输入为一个图片序列,但技术方案类似),输出是描述该图片语义的自然语言文本。

下图中有一些有趣的例子。

a8212afd3f6e138649b20e6b1ae238e7d8626ab1

一些有趣的 vision-to-text NLG 例子

同机器翻译的GNMT方案类似,Image Captioning 的技术方案也基于 Encoder-Decoder 框架,只是 Encoder 部分的神经网络从 LSTM 替换成了 CNN,用以准确刻画图片的语义信息。

同 GNMT 类似,引入 Attention 机制来智能选择影响 Decoder 部分生成文字的图像空间特征。具体的模型结构如图7所示。

282fb6385df9a434e3ea08ae35f59d5e56efe92c

Image Captioning 模型结构

NLG 技术的能力边界

NLG 技术,一个核心在于NL,即自然语言形式的文本,更易于普通人阅读;另一个核心在于G,即生成,但不是创作,不涉及深入地分析、提炼和推理。

在 Text to text NLG 中,本质上是将输入文本进行处理,映射到一个语义向量空间中,然后再用输出文本来表达同样的语义,而这一过程中语义信息本身并没有经过进一步加工。

Data to text NLG 的目的是将结构化数据嵌入自然语言文本中,便于普通人的快速阅读,即使有一些看似推理的结果(例如天气预报中根据下周七天的天气数据,输出「未来一周大部分时间晴好,仅周三有短时小雨」这样的文本),其实也是人为定义了新的结构化数据字段。

Vision to text NLG 中也是如此,只是用自然语言文本来表达原先图像表达的语义,也不涉及语义的进一步加工。

换句话说,目前的 NLG 技术并不能实现人类的「写作」过程 - 其中包括对大量输入信息的理解、提炼、分析、推理和重组,而仅能够给出输入信息(文本、数据和图像)的自然语言形式的表示。

NLG 技术生成的文本,单篇文本看起来会非常规范和优质,但把大量的生成文本放在一起,就会感觉出浓浓的机器味儿 - 更为模式化且缺少灵活性。因此,用「机器写作」来作为 NLG 的别称,是有点过于高看其能力了。

即便如此,由于机器可以不知疲倦且客观地工作,NLG 技术在下述场景中有了广泛的应用:

● 需要利用海量数据生成大量的自然语言文本,且零错误,如企业年报等
● 需要极高的时效性,全天候检测热点/异常点,并实时生成文本内容,如突发新闻快讯等;
● 生成客观不带情感的内容,如财经快讯、体育快讯等;
● 根据受众特点,对相同的输入文本/数据/图像,生成符合受众特点的个性化文本内容,如商品文案等。


原文发布时间为:2018-09-9

本文作者:百炼智能

本文来自云栖社区合作伙伴“量子位”,了解相关信息可以关注“量子位”。

【云栖快讯】阿里巴巴小程序繁星计划,20亿补贴第一弹云应用立即开通购买,限量从速!  详情请点击

网友评论