10.1 文本生成简介
10.2 文本生成方法
10.2.1 传统文本生成方法
10.2.2 神经网络文本生成方法
10.2.2.1 回顾
10.2.2.1 自回归方法
10.2.2.2 非自回归方法
10.2.3 文本生成方法对比
10.3 文本生成应用
10.3.1 常见任务
10.3.1.1 文本摘要
10.3.1.2 故事生成(Storytelling)
10.3.1.3 诗歌生成
10.3.1.4 其他应用
10.3.2 可控文本生成
10.3.3 知识指导的文本生成
10.4 当前趋势和未来
文本生成的定义:从非语言的表示生成人类可以理解的文本,文本->文本、数据->文本都是文本生成任务关注的。上图是NLP领域的几大核心任务,可见,文本生成和文本理解在技术路线上是有着千丝万缕的联系的。
文本生成的任务:
文本生成的任务可以归为以下几项:
机器翻译、对话系统(目标导向、开放式)、故事生成、诗歌生成、文本摘要等
10.2.1.1 基于规则/模板
句子模板->搜索答案词->语法检查
10.2.1.2 基于统计
核心思想:根据数据建立统计模型,类似于统计机器翻译的方法。
从数据中得到 (|)和 (),用各种算法计算argmax。
语言建模
语言建模:给定到目前为止的单词,预测下一个任务。产生这种概率分布的系统称为语言模型。
条件语言建模
条件语言建模:根据给定的单词以及其他一些输入 ,预测下一个单词的任务
比如在机器翻译中,X为原文,Y为译文;在文本摘要中,X为原文,Y为摘要等。
给定来源 = (1,2,…,) 和目标 y = (1,2,…,)
主要的语言模型有RNN、Seq2seq、Transformer
RNN 擅长建模顺序性的信息,可使用RNN作为编码器来构建句子的语义表示;解码算法是一种用于从语言模型生成文本的自回归算法。常见的解码算法有Greedy decoding、Beam search、Sampling-based等
Greedy Decoding
贪婪算通过在解码器上的每一步采用argmax来生成目标句子
由于缺少回溯,输出可能会很差(例如不符合语法,不自然,无意义)
Beam Search Decoding
总体思路:在解码器的每一步,都要跟踪 个最有可能最有可能的部分序列,达到停止条件后,选择概率最高的序列,但不一定是最佳序列。
Beam Size取值的一些问题:
Sampling-based Decoding
Pure sampling
在每个步骤t,从概率分布Pt中随机采样以获得下一个单词
Top-n sampling
在每个步骤t,从 Pt中随机抽样中随机抽样,仅限于前n个最可能的单词
两者都比Beam serch高效
Decoding-based文本生成方法的对比:
Attention
流水线方案(类Seq2seq模型)的主要问题:
Attention为瓶颈问题提供了解决方案,其核心思想是在解码器的每个步骤,专注于源序列的
特定部分,Attention有助于消除梯度消失问题。
给定来源 = (1,2,…,) 和目标 y = (1,2,…,)
非自回归首先要确定目标序列的长度P(m|x),编码器与自回归编码器相同,输入项 =(;), 并行生成目标序列。
Transformer
动机:RNN系列模型无法并行运算,可以用Transformer的Decoder部分进行文本生成。
GAN-based
动机:GAN在图像生成方面卓有成效,可以将其引入文本生成领域。
问题1:GAN在连续的数据上效果更好,但离散不佳,生成模型的离散输出难以将梯度传递给生 成模型。
前沿进展:Gumbel-softmax、WGAN、WGAN-GP等
问题2:GAN评估器只能评估完整序列,对于部分生成的序列,难以平衡分数。
前沿进展:SeqGAN等
传统方法和神经网络方法对比:
另外传统方法需要很多手工工程和特征工程、系统极其复杂、需单独设计子组件、耗费人力。
自回归方法的特点:
非自回归方法的特点:
文本生成任务:机器翻译、对话系统(目标导向、开放式)、故事生成、诗歌生成、文本摘要等
场景:各种数据(图片、表格、提示)->文本,文本 -> 文本
场景:文本 -> 文本
1. 提取式:神经网络之前的摘要系统主要是提取式的,标准流程为:内容选择(句子评分函数、基于图的算法)-> 信息排序 -> 句子改写(Sentence Realization)
2. 神经网络方法
神经网络生成式文本摘要系统Seq2seq + attention擅长流畅的输出,但不擅长复制细节。
加入复制机制(Copy mechanisms)使Seq2seq系统能够轻松地将单词和短语从输入复制到输出,复制机制核心和计算下一个词语是生成还是拷贝的概率,可以缓解细节不足的问题。
3. 文本摘要的挑战
4. 文本摘要的改进
前神经网络方法分为内容选择和文本生成两阶段。标准的End2End(Seq2seq+attention)方法将两阶段融合,靠解码器生成文本,靠注意力选择内容(词粒度)。但由于缺少全局选择策略,词级内容选择表现不佳,一般解决方案是自下而上的摘要。
自下而上的摘要:
内容选择阶段:使用神经网络标记模型将单词标记为包含或不包含
自下而上的注意阶段:使用Seq2seq+attention。不关注标记为不包含的单词。
场景:文本->文本
提示到文本
2018年, [Fan et al]发布了从Reddit的WritingPrompts subreddit 收集的新故事生成数据集,每个 故事都有一个相关的简短写作提示。[Fan et al] 还提出一个复杂的seq2seq提示故事模型。
优点:
缺点:
事件到文本
故事生成的挑战
场景:文本到文本
Hafez: 诗歌生成系统
在后续论文中,作者进一步使该系统具有交互性并且可由用户控制。控制方法很简单:在Beam search期间,增加具有所需特征的单词分数。
场景:各种数据 -> 文本
图像描述
问题:如何解决缺乏平行数据问题?
方案:使用常见的句子编码空间,使用image captioning数据集学习映射,训练RNN-LM进行解码。
表格到文本
根据病历表格分别给不同人提供不同报告。
类似人思维过程 ,语言模型捕获知识并生成语言。
Graph Transformer
• 适应图结构输入的Transformer编码器
• 数据集 : Knowledge-graph-to-text
• 输入 :节点表示 + 邻接矩阵
• 输出 : 图上下文敏感的节点编码信息
• 无序
• 用于下游任务如文本生成
整体架构
研究趋势:
1. 融合知识的文本生成
有助于真正需要知识的任务,例如故事生成,面向任务的对话系统等。
2. 取代严格从左到右生成的方法
并行生成,迭代细化,自顶向下生成,可生成更长的文本
3. 由教师强迫(teacher forcing)替代最大似然(maximum likelihood)训练目标
建立考虑更全面的句子级别(而不是单词级别)的目标
发展方向:
文本生成研究正在迅速成熟