本文主要讲解自然语言生成的神经方法(NLG)的一般性应用和发展概况。
NLG: 自然语言生成(NLG)指的是我们生成(即写入)新文本的任何设置。包括:机器翻译、文本摘要、对话、创意写作(讲故事、诗歌创作)、问答系统、图形字幕等等。
语言建模: 是给定之前的单词,预测下一个单词的任务。一个产生这一概率分布的系统叫做 语言模型。如果系统使用 RNN,则被称为 RNN-LM
条件语言建模: 是给定之前的单词以及一些其他输入 x ,预测下一个单词的任务。
RNN-LM:神经机器翻译中的例子
解码算法:
在每一步中,取最可能的单词(即argmax),将其用作下一个单词,并在下一步中将其作为输入提供继续前进,直到您产生
一种旨在通过一次跟踪多个可能的序列,找到高概率序列(不一定是最佳序列)的搜索算法。核心思想:在解码器的每一步,跟踪 k 个最可能的部分序列(我们称之为假设),k是光束大小,达到某个停止标准后,选择概率最高的序列(考虑一些长度调整)。比贪婪提供更好的质量,但是如果 Beam 尺寸太大,可能会返回高概率但不合适的输出(如通用的或是短的),且计算量更大。
纯采样:在每个步骤t,从概率分布 Pt中随机抽样以获取你的下一个单词。像贪婪的解码,但是是采样而不是argmax。
Top-n 采样:在每个步骤 t ,从 Pt的前 n 个最可能的单词中,进行随机采样,与纯采样类似,但截断概率分布。增加n以获得更多样化/风险的输出;减少n以获得更通用/安全的输出。这两者都更多比光束搜索更有效率,不用跟踪多个假设
2.1 文本摘要
1)文本摘要分成两种策略:
抽取式摘要 :选择部分(通常是句子)的原始文本来形成摘要。更简单,限定性的(无需解释)
抽象式摘要 :使用自然语言生成技术 生成新的文本。更困难,更多变(更人性化)
评估方法:ROUGE
类似于 BLEU,是基于 n-gram 覆盖的算法,不同之处在于:
没有简洁惩罚,基于召回率 recall,BLEU 是基于准确率的。 可以说,准确率对于MT 来说是更重要的(通过添加简洁惩罚来修正翻译过短),召回率对于摘要来说是更重要的(假设你有一个最大长度限制),因为需要抓住重要的信息。但是,通常使用 F1(结合了准确率和召回率)
2)Pre-neural summarization
Pre-neural摘要系统大多是抽取式的,他们通常有一个流水线
内容选择 Content selection:选择一些句子
信息排序 Information ordering:为选择的句子排序
句子实现 Sentence realization:编辑并输出句子序列例如,简化、删除部分、修复连续性问题)
Pre-neural 内容选择 算法
句子得分函数: 可以根据主题关键词,通过计算如tf-idf等特性,例如这句话出现在文档的哪里
图算法: 将文档为一组句子(节点),每对句子之间存在边边的权重与句子相似度成正比,使用图算法来识别图中最重要的句子。
3)Neural summarization (2015 - present)
自2015年以来,基于神经网络的文本摘要有了更多的发展
复制机制
复制机制使用注意力机制,使seq2seq系统很容易从输入复制单词和短语到输出。
自下而上摘要
通过强化学习的神经摘要
2.2 对话系统
“对话”包括各种各样的设置
1)Pre- and post-neural dialogue
由于开放式自由NLG的难度,pre-neural对话系统经常使用预定义的模板,或从语料库中检索一个适当的反应的反应
摘要过去的研究,自2015年以来有很多论文将seq2seq方法应用到对话,从而导致自由对话系统兴趣重燃
一些早期seq2seq对话文章包括
A Neural Conversational Model, Vinyals et al, 2015
https://arxiv.org/pdf/1506.05869.pdf
Neural Responding Machine for Short-Text Conversation, Shang et al, 2015
https://www.aclweb.org/anthology/P15-1152
2)Seq2seq-based dialogue
然而,很快他们就明白简单的应用标准seq2seq +attention 的方法在对话(闲聊)任务中有严重的普遍缺陷
无关紧要的反应问题
一般性/无聊的响应问题
重复的问题
缺乏一致的人物角色问题
3)Negotiation dialogue
Deal or No Deal? End-to-End Learning for Negotiation Dialogues, Lewis et al, 2017
Hierarchical Text Generation and Planning for Strategic Dialogue, Yarats et al, 2018
2.4 故事生成
神经讲故事的大部分工作使用某种提示
讲故事的挑战:
发展进程:
Generating Stories about Image
类似于我们如何学通过预测周围的文字来学习单词的嵌入,使用 COCO (图片标题数据集),学习从图像到其标题的 Skip-thought 编码的映射,使用目标样式语料库(Taylor Swift lyrics),训练RNN-LM, 将Skip-thought向量解码为原文。
Hierarchical Neural Story Generation, Fan et al, 2018
1) convolutional-based,这使它的速度比RNN-based seq2seq
2)封闭的多头多尺度的self-attention
self-attention 对于捕获远程上下文而言十分重要
门控允许更有选择性的注意机制
不同的注意力头在不同的尺度上注意不同的东西——这意味着有不同的注意机制用于检索细粒度和粗粒度的信息
3)模型融合
预训练一个seq2seq模型,然后训练第二个 seq2seq 模型访问的第一个 model 的隐状态
想法是,第一seq2seq模型学习通用LM,第二个model学习基于提示的条件
Event Representations for Automated Story Generation with Deep Neural Nets, Martin et al, 2018
Strategies for Structuring Story Generation, Fan et al, 2019
2.5 诗歌生成
Generating Topical Poetry, Ghazvininejad et al, 2016
使用一个有限状态受体(FSA)来定义所有可能的序列,服从希望满足的节奏约束,然后使用FSA约束RNN-LM的输出。
Hafez: an Interactive Poetry Generation System, Ghazvininejad et al, 2017
作者制作了系统交互和用户可控。控制方法很简单:在Beam搜索中,增大具有期望特征的单词的分数
Deep-speare: A joint neural model of poetic language, meter and rhyme, Lau et al, 2018
三个组件:语言模型、pentameter model、rhyme model 韵律模型;作为一个多任务学习问题共同学习。
2.6 翻译系统
Non-Autoregressive Neural Machine Translation, Gu et al, 2018
它不是根据之前的每个单词,从左到右产生翻译,它并行生成翻译,这具有明显的效率优势,但从文本生成的角度来看也很有趣;架构是基于Transformer 的;最大的区别是,解码器可以运行在测试时并行。
3.1 基于词重叠的指标(BLEU,ROUGE,METROR,F1,等等)
3.2 困惑度
3.3 词嵌入基础指标
3.4 人类评估
3.5 可能存在的新的方式
参考:http://web.stanford.edu/class/cs224n/slides/cs224n-2020-lecture15-nlg.pdf