现代自然语言生成:(一) 研究背景
1、背景概述
自然语言处理 (NLP,natural language processing)
= 自然语言理解(NLU,natural language understanding) +自然语言生成( NLG,natural language generating)。
如何让机器“说出话”从而实现更方便、体验更好的人机交互系统,是NLG的最终目标之一。
2、基本定义与研究范畴
宽泛定义:在特定的交互目标下,从给定输入信息生成人类可读的语言文本的自动化过程。
输入:不同任务输入不同,包含下面四个维度<CG,UM,KB,CH>
- CG 交互目标 Communicative Goal:服务于什么目的?
- UM 用户模型 User Model : 生成内容的目标用户,涵盖了个性化语言生成任务:个性对话生成,广告语生成等
- KB 任务相关的领域知识库 Knowledge Base:实体、关系、领域规则等信息
- CH 上下文信息 Context History:需要考虑的输入信息
输出:一段可读的文本
3、NLG与NLU
NLU 自然语言理解:
- 将文本转化为计算机能处理的文本内在表示。
- 重在分析,理解输入文本的语义、意图。
- 核心任务是在假设空间中选择一个或多个标记作为最后的答案。
- 常见问题在于歧义(一词多义)和输入信息不足(字面信息意外的辅助信息)。
NLG 自然语言生成:
- 将计算机能处理的文本内在表述转化为文本。
- 重在规划和重构,从从往下的规划,包含派篇章、用语结构再到词的选择、风格等。
- 核心问题是确定选择,即选择合适的信息、词汇来表达给定的信息。
4、传统的模块化生成框架
(1)内容规划 (Content Planning)
通常使用树状的层次结构表示,叶节点表示要生成的内容,树状结构组织内容在文本中的顺序
- 内容选择(Content Determination):生成啥东西
- 文本结构化(Text Structuring):表达信息的先后顺序
(2)句子规划(Sentence Planning)
从微观角度决定词汇和句法结构,怎么把内容描述出来。句子规划使用树状图实现,内部节点是句子结构,叶子节点表示单词和词语
- 句子聚合(Sentence Aggregation):哪些信息需要出现在一个句子里面,哪些要分开来描述,提升文本的流畅性和可读性
- 词汇化(Lexicalisation): 表达同样的意思有不同的表达方式,用合适的词语去描述信息,如通过上下文、情感等对词语施加约束
(3) 文本实现(Text Realization)
一般使用两种框架实现:
- 针对小规模生成:手写模板或语法规则的方法,这种方法表示为带有占位符的文本表述:
附近有 类型的餐馆 。前面的这句话中包含三个占位符,类似于NER,可以使用任意的实体进行替代:南京附近有小吃类型的餐馆南京大排档。 - 基于统计的思想:
- 候选文本(手写)+ 机器学习方法排序 + 模板
- 大规模数据检索 + 语法规则 (大规模)
5、端到端的自然语言生成框架
6、典型的NLG任务
输入信息的形态
- Text to Text:机翻、对话、故事、文本摘要、问题生成等
- Data to Text:输入结构化数据(表格、键值对等),生成一段话
- Meaning to Text:输入语义抽象表示和逻辑表达式生成一句话
- Multimodality to Text:多模态输入生成一句话
- Zero to Text:无约束文本生成。不给定输入,模型自由生成文本。一般用于测试基础模型。
信息转换
开放端语言生成(open-ended LG):输入信息不完整,不足以引导模型得到完善输出语义的任务。具体来说,比如故事生成,仅仅给定开头或者一些片段或者关键字,要求生成具备一定情节的故事。显然模型需要使用外部的信息。这类任务的特点是一对多,同一份输入,可能会出现多份输出。对话生成、长文本生成等都会出现这个问题。
非开放端语言生成 (NOE LG):输入信息在语义上提供了完备甚至更多的信息。比如机翻、GEC等任务,模型的创造性较低,只能生成规定的句子,有明确的评测指标。
7、NLG的可控性
生成模型的可控性是指:模型在给定输入条件下生成不符合预期的文本,这些文本在语法、用词、语义等方面不符合人类语言的规范或者事先给定的约束。
参考文献
《自然语言生成》黄民烈