![ShowMeAI研究中心](http://img.e-com-net.com/image/info8/e41dff1c9ede4e0aa8af77d3404aeccd.jpg)
- 作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI
- 教程地址:http://www.showmeai.tech/tutorials/36
- 本文地址:http://www.showmeai.tech/article-detail/252
- 声明:版权所有,转载请联系平台与作者并注明出处
- 收藏ShowMeAI查看更多精彩内容
![NLP文本生成任务](http://img.e-com-net.com/image/info8/e290935241e94199863d36f480a41c81.jpg)
ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!视频和课件等资料的获取方式见文末。
引言
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第1张图片](http://img.e-com-net.com/image/info8/7aecf2d5d77b4c63a845f856efe6bffd.jpg)
本篇内容覆盖
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第2张图片](http://img.e-com-net.com/image/info8/c7f31bef16334949b3c056906d024287.jpg)
- Recap what we already know about NLG / NLG要点回顾
- More on decoding algorithms / 解码算法
- NLG tasks and neural approaches to them / NLG任务及其神经网络解法
- NLG evaluation: a tricky situation / NLG评估:一个棘手的情况
- Concluding thoughts on NLG research, current trends, and the future / NLG研究的一些想法,目前的趋势,未来的可能方向
1.语言模型与解码算法知识回顾
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第3张图片](http://img.e-com-net.com/image/info8/fe38244592b04991ad98f8cfc0cbefa1.jpg)
1.1 自然语言生成(NLG)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第4张图片](http://img.e-com-net.com/image/info8/c589c98f7e3f411e9b8b8b1e38b451d1.gif)
1.2 要点回顾
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第5张图片](http://img.e-com-net.com/image/info8/a3f05797ed584f618a0a7a0caa81cee9.jpg)
(语言模型相关内容也可以参考ShowMeAI对吴恩达老师课程的总结文章深度学习教程 | 序列模型与RNN网络)
P ( y t ∣ y 1 , … , y t − 1 ) P\left(y_{t} \mid y_{1}, \ldots, y_{t-1}\right) P(yt∣y1,…,yt−1)
- 一个产生这一概率分布的系统叫做语言模型 (LM)
- 如果系统使用 RNN,则被称为 RNN-LM
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第6张图片](http://img.e-com-net.com/image/info8/9cefea9018be442da9ad3daedb1a52a9.gif)
- 条件语言建模是给定之前的单词以及一些其他 (限定条件) 输入 x x x,预测下一个单词的任务:
P ( y t ∣ y 1 , … , y t − 1 , x ) P\left(y_{t} \mid y_{1}, \dots, y_{t-1}, x\right) P(yt∣y1,…,yt−1,x)
- 条件语言建模任务的例子:
- 机器翻译 x = source sentence, y = target sentence
- 摘要 x = input text, y = summarized text
- 对话 x = dialogue history, y = next utterance
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第7张图片](http://img.e-com-net.com/image/info8/ab6b71585e8d48b3ade2802c8230e59d.jpg)
训练一个(条件)RNN语言模型
- 这是神经机器翻译中的例子
- 在训练期间,我们将正确的 (又名引用) 目标句子输入解码器,而不考虑解码器预测的。这种训练方法称为 Teacher Forcing
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第8张图片](http://img.e-com-net.com/image/info8/7995dfd9b4e647858edcd4a812035307.gif)
解码算法
-
问题:训练条件语言模型后,如何使用它生成文本?
-
答案:解码算法是一种算法,用于从语言模型生成文本
-
我们了解了两种解码算法
![RNN文本生成贪婪解码](http://img.e-com-net.com/image/info8/5f280542bba34868991664505bd80874.gif)
贪婪解码
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第9张图片](http://img.e-com-net.com/image/info8/836164545623445d9b7e609324d995b9.gif)
集束搜索解码
-
一种旨在通过一次跟踪多个可能的序列,找到高概率序列 (不一定是最佳序列) 的搜索算法
-
核心思路:在解码器的每一步,跟踪 k k k 个最可能的部分序列 (我们称之为假设)
-
达到某个停止标准后,选择概率最高的序列 (考虑一些长度调整)
![RNN文本生成集束搜索解码](http://img.e-com-net.com/image/info8/ab53f1bd7e394034b48d6d5ed5a3327e.jpg)
束搜索解码
- Beam size = k = 2
- Blue numbers=score
1.3 旁白:《西部世界》使用的是集束搜索吗?
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第10张图片](http://img.e-com-net.com/image/info8/0ae08bed41a0440eacf49b4446563733.jpg)
1.4 改变beam size k有什么影响?
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第11张图片](http://img.e-com-net.com/image/info8/1f533e3a918c40be957b791b367e136b.gif)
1.5 光束大小对聊天对话的影响
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第12张图片](http://img.e-com-net.com/image/info8/97ab94f395bc4e41b89a0ef9daeb47a0.gif)
-
低 beam size
-
高 beam size
- 结果更保险
- 回答更
正确
- 但它更泛,主题相关性弱一些
1.6 基于采样的解码
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第13张图片](http://img.e-com-net.com/image/info8/7a13e98d8fbf4bddbb499735c714ae72.gif)
-
纯采样
- 在每个步骤 t t t,从概率分布 P t P_t Pt 中随机抽样以获取下一个单词
-
像贪婪的解码,但是,是采样而不是 argmax
-
Top-n 采样
- 在每个步骤 t t t,从 P t P_t Pt 的前 n n n 个最可能的单词中,进行随机采样
- 与纯采样类似,但截断概率分布
- 此时, n = 1 n = 1 n=1 是贪婪搜索, n = V n = V n=V 是纯采样
- 增加 n n n 以获得更多样化 / 风险的输出
- 减少 n n n 以获得更通用 / 安全的输出
-
这两者都比光束搜索更有效率,不用关注多个假设
1.7 Softmax temperature
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第14张图片](http://img.e-com-net.com/image/info8/3f6842d20ca54e6dabf98207a42ed5cb.gif)
- 回顾:在时间步 t t t,语言模型通过对分数向量 s ∈ R ∣ V ∣ s \in \mathbb{R}^{|V|} s∈R∣V∣ 使用 softmax 函数计算出概率分布 P t P_t Pt
P t ( w ) = exp ( s w ) ∑ w ′ ∈ V exp ( s w ′ ) P_{t}(w)=\frac{\exp \left(s_{w}\right)}{\sum_{w^{\prime} \in V} \exp \left(s_{w^{\prime}}\right)} Pt(w)=∑w′∈Vexp(sw′)exp(sw)
P t ( w ) = exp ( s w / τ ) ∑ w ′ ∈ V exp ( s w ′ / τ ) P_{t}(w)=\frac{\exp \left(s_{w} / \tau\right)}{\sum_{w^{\prime} \in V} \exp \left(s_{w^{\prime}} / \tau\right)} Pt(w)=∑w′∈Vexp(sw′/τ)exp(sw/τ)
- 提高温度 τ \tau τ: P t P_t Pt 变得更均匀
- 降低温度 τ \tau τ: P t P_t Pt 变得更尖锐
1.8 解码算法:总结
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第15张图片](http://img.e-com-net.com/image/info8/debb860e6fb7438d8eb0a28da1a8f5fc.gif)
2.NLG任务和它们的神经网络解法
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第16张图片](http://img.e-com-net.com/image/info8/d3cd734edb114551967408b779ba20f4.jpg)
2.1 摘要:任务定义
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第17张图片](http://img.e-com-net.com/image/info8/8badfb5efeda436da81404f00425d27b.gif)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第18张图片](http://img.e-com-net.com/image/info8/0a111148714d424a938438db1a44f3e5.gif)
在单文档摘要,数据集中的源文档具有不同长度和风格
- Gigaword:新闻文章的前一两句 → 标题 (即句子压缩)
- LCSTS (中文微博):段落 → 句子摘要
- NYT, CNN / DailyMail:新闻文章 → (多个)句子摘要
- Wikihow (new!):完整的 how-to 文章 → 摘要句子
句子简化是一个不同但相关的任务:将源文本改写为更简单 (有时是更短) 的版本
- Simple Wikipedia:标准维基百科句子 → 简单版本
- Newsela:新闻文章 → 为儿童写的版本
2.2 总结:两大策略
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第19张图片](http://img.e-com-net.com/image/info8/d31a9e5f2012472fae6ad1e4ac8deb58.gif)
2.3 前神经网络时代摘要抽取综述
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第20张图片](http://img.e-com-net.com/image/info8/a7a417d7e6b34edcbca24b9084065c2b.gif)
2.4 综述生成评估:ROUGE
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第21张图片](http://img.e-com-net.com/image/info8/4e13a0a9ea4d4e92a6853fdbba687bcd.gif)
类似于 BLEU,是基于 n-gram 覆盖的算法,不同之处在于:
-
没有简洁惩罚
-
基于召回率 recall,BLEU 是基于准确率的
- 可以说,准确率对于机器翻译来说是更重要的 (通过添加简洁惩罚来修正翻译过短),召回率对于摘要来说是更重要的 (假设你有一个最大长度限制),因为需要抓住重要的信息
- 但是,通常使用 F1 (结合了准确率和召回率)
-
ROUGE: A Package for Automatic Evaluation of Summaries, Lin, 2004
-
http://www.aclweb.org/anthology/W04-1013
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第22张图片](http://img.e-com-net.com/image/info8/8deaa8eb397c49d5add99a93b423840d.gif)
2.5 神经摘要生成 (2015年-至今)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第23张图片](http://img.e-com-net.com/image/info8/99b9eeff7be34f57b80f08bfe3ce5629.jpg)
-
2015:Rush et al. publish the first seq2seq summarization paper
-
单文档摘要摘要是一项翻译任务!
-
因此我们可以使用标准的 seq2seq + attention 神经机器翻译方法
-
A Neural Attention Model for Abstractive Sentence Summarization, Rush et al, 2015
-
https://arxiv.org/pdf/1509.00685.pdf
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第24张图片](http://img.e-com-net.com/image/info8/04d11f7384e54be28b8ec116686ffaab.jpg)
- 自2015年以来,有了更多的发展
- 使其更容易复制
- 分层 / 多层次的注意力机制
- 更多的全局 / 高级的内容选择
- 使用 RL 直接最大化 ROUGE 或者其他离散目标 (例如长度)
- 复兴前深度学习时代的想法 (例如图算法的内容选择),把它们变成神经系统
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第25张图片](http://img.e-com-net.com/image/info8/e22f2e399f2149358f7b0e8d05b63631.jpg)
- Seq2seq+attention systems 善于生成流畅的输出,但是不擅长正确的复制细节 (如罕见字)
- 复制机制使用注意力机制,使seq2seq系统很容易从输入复制单词和短语到输出
- 显然这是非常有用的摘要
- 允许复制和创造给了一个混合了抽取 / 抽象式的方法
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第26张图片](http://img.e-com-net.com/image/info8/d59e015e5a754fa6841f8a9282f1053d.jpg)
- 有几篇论文提出了复制机制的变体:
- Language as a Latent Variable: Discrete Generative Models for Sentence Compression, Miao et al, 2016
- https://arxiv.org/pdf/1609.07317.pdf
- Abstractive Text Summarization using Sequence-to-sequence RNNs and Beyond, Nallapati et al, 2016
- https://arxiv.org/pdf/1602.06023.pdf
- Incorporating Copying Mechanism in Sequence-to-Sequence Learning, Gu et al, 2016
- https://arxiv.org/pdf/1603.06393.pdf
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第27张图片](http://img.e-com-net.com/image/info8/2c1b9b4027114dbe9e5be2d610528ef5.jpg)
-
在每一步上,计算生成下一个词汇的概率 P g e n P_{gen} Pgen,最后的分布是生成 (词汇表) 分布和copying (注意力) 分布的一个混合分布
-
Get To The Point: Summarization with Pointer-Generator Networks, See et al, 2017
-
https://arxiv.org/pdf/1704.04368.pdf
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第28张图片](http://img.e-com-net.com/image/info8/63f8658add68476c903f51ccd7ca8d15.gif)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第29张图片](http://img.e-com-net.com/image/info8/7501edddc588469c875c32811821d3f3.gif)
2.6 自下而上的摘要生成
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第30张图片](http://img.e-com-net.com/image/info8/bf51ae48259b49f18e00280d810c4741.gif)
2.7 基于强化学习的神经网络摘要生成
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第31张图片](http://img.e-com-net.com/image/info8/f93745a04f8a4f6ab647244737c4c985.gif)
-
核心思路:使用 RL 直接优化 ROUGE-L
- 相比之下,标准的最大似然 (ML) 训练不能直接优化 ROUGE-L,因为它是一个不可微函数
-
有趣的发现
- 使用RL代替ML取得更高的ROUGE分数,但是人类判断的得分越低
-
混合模型最好!
2.8 对话系统
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第32张图片](http://img.e-com-net.com/image/info8/e3ba89e0ebc64d2982056d4975e551e6.gif)
对话
包括各种各样的设置
-
面向任务的对话
- 辅助 (如客户服务、给予建议,回答问题,帮助用户完成任务,如购买或预订)
- 合作 (两个代理通过对话在一起解决一个任务)
- 对抗 (两个代理通过对话完成一个任务)
-
社会对话
2.9 前/后神经网络时期对话系统
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第33张图片](http://img.e-com-net.com/image/info8/0836946192714d3f9726cd43d58eb626.gif)
2.10 基于Seq2Seq的对话
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第34张图片](http://img.e-com-net.com/image/info8/e3497370ec0a48cb8ef75d35b9e20213.jpg)
(seq2seq相关内容也可以参考ShowMeAI的NLP教程NLP教程(6) - 神经机器翻译、seq2seq与注意力机制,以及对吴恩达老师课程的总结文章深度学习教程 | Seq2Seq序列模型和注意力机制)
- 然而,很快就发现,标准 seq2seq +attention 的方法在对话 (闲聊) 任务中有严重的普遍缺陷
- 一般性/无聊的反应
- 无关的反应(与上下文不够相关)
- 重复
- 缺乏上下文(不记得谈话历史)
- 缺乏一致的角色人格
2.11 无关回答问题
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第35张图片](http://img.e-com-net.com/image/info8/c0a8357134b74aae93ef4ad5d55bcae3.gif)
log p ( S , T ) p ( S ) p ( T ) \log \frac{p(S, T)}{p(S) p(T)} logp(S)p(T)p(S,T)
T ^ = arg max T { log p ( T ∣ S ) − log p ( T ) } \hat{T}=\underset{T}{\arg \max }\{\log p(T | S)-\log p(T)\} T^=Targmax{logp(T∣S)−logp(T)}
2.12 一般性/枯燥的回答问题
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第36张图片](http://img.e-com-net.com/image/info8/8d91c118502644f88c82144b018e5cd8.gif)
-
简单的测试修复
- 直接在集束搜索中增大罕见字的概率
- 使用抽样解码算法而不是Beam搜索
-
条件修复
- 用一些额外的内容训练解码器 (如抽样一些内容词并处理)
- 训练 retrieve-and-refine(检索并调优) 模型而不是 generate-from-scratch(从头生成) 模型
- 从语料库采样人类话语并编辑以适应当前的场景
- 这通常产生更加多样化/人类/有趣的话语!
2.13 重复回答问题
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第37张图片](http://img.e-com-net.com/image/info8/72e78de4569f4c6dbadfbe89a88fb433.gif)
-
简单的解决方案
-
更复杂的解决方案
- 在seq2seq中训练一个覆盖机制,这是客观的,可以防止注意力机制多次注意相同的单词
- 定义训练目标以阻止重复
- 如果这是一个不可微函数生成的输出,然后将需要一些技术例如 RL 来训练
2.14 缺少一致的人物角色问题
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第38张图片](http://img.e-com-net.com/image/info8/4b29ef265b7b44c3bab952c9225babbc.jpg)
- 2016年,李等人提出了一个 seq2seq 对话模式,学会将两个对话伙伴的角色编码为嵌入
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第39张图片](http://img.e-com-net.com/image/info8/7cfb49965a224f2f828865b6d8ba9187.jpg)
- 最近有一个闲聊的数据集称为 PersonaChat,包括每一次会话的角色 (描述个人特质的5个句子的集合)
- 这提供了一种简单的方式,让研究人员构建 persona-conditional 对话代理
2.15 谈判对话
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第40张图片](http://img.e-com-net.com/image/info8/936bceb75477455ab6f73a07949c921e.jpg)
- 2017年,Lewis et al 收集谈判对话数据集
- 两个代理协商谈判对话 (通过自然语言) 如何分配一组项目
- 代理对项目有不同的估值函数
- 代理人会一直交谈直到达成协议
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第41张图片](http://img.e-com-net.com/image/info8/6914d4487f164428a16db8eb183ac34c.gif)
- 他们发现用标准的最大似然 (ML) 来训练 seq2seq 系统的产生了流利但是缺乏策略的对话代理
- 和 Paulus 等的摘要论文一样,他们使用强化学习来优化离散奖励 (代理自己在训练自己)
- RL 的基于目的的目标函数与 ML 目标函数相结合
- 潜在的陷阱:如果两两对话时,代理优化的只是RL目标,他们可能会偏离英语
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第42张图片](http://img.e-com-net.com/image/info8/4fdab7bbda864a22b28b76c55c11a294.jpg)
- 在测试时,模型通过计算 rollouts,选择可能的反应:模拟剩余的谈话和预期的回报
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第43张图片](http://img.e-com-net.com/image/info8/dd5dfb08f07641628cf1d54db02ecf30.jpg)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第44张图片](http://img.e-com-net.com/image/info8/a6d53a45abbf4634b6e062b2addaedc1.jpg)
- 2018年,Yarats 等提出了另一个谈判任务的对话模型,将策略和 NLG 方面分开
- 每个话语 x t x_t xt 都有一个对应的离散潜在变量 z t z_t zt
- z t z_t zt 学习成为一个很好的预测对话中的未来事件的预测器 (未来的消息,策略的最终收获),但不是 x t x_t xt 本身的预测器
- 这意味着 z t z_t zt 学会代表 x t x_t xt 对对话的影响,而不是 x t x_t xt 的 words
- 因此 z t z_t zt 将任务的策略方面从 NLG方面分离出来
- 这对可控制性、可解释性和更容易学习策略等是有用的
2.16 会话问答:CoQA
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第45张图片](http://img.e-com-net.com/image/info8/c530e76d65a34a8a8da5b8aa24751734.gif)
-
一个来自斯坦福 NLP 的新数据集
-
任务:回答关于以一段对话为上下文的文本的问题
-
答案必须写摘要地(不是复制)
-
QA / 阅读理解任务,和对话任务
2.17 故事述说
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第46张图片](http://img.e-com-net.com/image/info8/d624d9e96bac41b59932cfa972df72f4.gif)
-
神经网络讲故事的大部分工作使用某种提示
- 给定图像生成的故事情节段落
- 给定一个简短的写作提示生成一个故事
- 给定迄今为止的故事,生成故事下个句子(故事续写)
- 这和前两个不同,因为我们不关心系统在几个生成的句子上的性能
-
神经故事飞速发展
- 第一个故事研讨会于 2018 年举行
- 它举行比赛 (使用五张图片的序列生成一个故事)
2.18 从图像生成故事
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第47张图片](http://img.e-com-net.com/image/info8/f782993ca6144aff8b805f4b3206df6b.jpg)
- 有趣的是,这并不是直接的监督图像标题。没有配对的数据可以学习。
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第48张图片](http://img.e-com-net.com/image/info8/c4e5a030d6d24c3390e902c6fd869986.gif)
-
问题:如何解决缺乏并行数据的问题
-
回答:使用一个通用的 sentence-encoding space
-
Skip-thought 向量是一种通用的句子嵌入方法
- 想法类似于我们如何学通过预测周围的文字来学习单词的嵌入
-
使用 COCO (图片标题数据集),学习从图像到其标题的 Skip-thought 编码的映射
-
使用目标样式语料库(Taylor Swift lyrics),训练RNN-LM, 将Skip-thought向量解码为原文
-
把两个放在一起
2.19 从写作提示生成故事
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第49张图片](http://img.e-com-net.com/image/info8/343e8b9a872c4a8dbf634cbd3f753fbe.jpg)
- 2018年,Fan 等发布了一个新故事生成数据集 collected from Reddit’s WritingPrompts subreddit.
- 每个故事都有一个相关的简短写作提示
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第50张图片](http://img.e-com-net.com/image/info8/31991ce36ef949d683fa0ac225856478.gif)
Fan 等也提出了一个复杂的 seq2seq prompt-to-story 模型
-
基于卷积的模型
-
封闭的多头多尺度的自注意力
- 自注意力对于捕获远程上下文而言十分重要
- 门控允许更有选择性的注意机制
- 不同的注意力头在不同的尺度上注意不同的东西——这意味着有不同的注意机制用于检索细粒度和粗粒度的信息
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第51张图片](http://img.e-com-net.com/image/info8/f53eb38cd253405c99786db6ace2f90e.jpg)
- 模型融合
- 预训练一个 seq2seq 模型,然后训练第二个 seq2seq 模型访问的第一个模型的隐状态
- 想法是,第一个 seq2seq 模型学习通用语言模型,第二个模型学习基于提示的条件
![从写作提示生成故事](http://img.e-com-net.com/image/info8/fa4d8f019ea24f038e2e358bf1db60ad.gif)
-
结果令人印象深刻
-
但是
- 主要是氛围 / 描述性 / 场景设定,很少是事件 / 情节
- 生成更长时,大多数停留在同样的想法并没有产生新的想法——一致性问题
2.20 讲故事的挑战
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第52张图片](http://img.e-com-net.com/image/info8/4658f464041b4f548fdb09c9dc05c5eb.gif)
- 由神经语言模型生成的故事听起来流畅…但是是曲折的,荒谬的,情节不连贯的
缺失的是什么?
- 语言模型对单词序列进行建模。故事是事件序列
- 为了讲一个故事,我们需要理解和模拟
- 事件和它们之间的因果关系结构
- 人物,他们的个性、动机、历史、和其他人物之间的关系
- 世界 (谁、是什么和为什么)
- 叙事结构(如说明 → 冲突 → 解决)
- 良好的叙事原则(不要引入一个故事元素然后从未使用它)
2.21 event2event故事生成
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第53张图片](http://img.e-com-net.com/image/info8/9320f3d939e648578f081f44e5ce6f28.jpg)
2.22 结构化故事生成
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第54张图片](http://img.e-com-net.com/image/info8/95383ef8dc784faa80112851e6e4de12.jpg)
2.23 跟踪事件、实体、状态等
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第55张图片](http://img.e-com-net.com/image/info8/b0b2a1d0cd224cb3a0e23f95626e09a2.gif)
2.24 生成食谱时跟踪状态
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第56张图片](http://img.e-com-net.com/image/info8/1aeff24662944fabbbbad30c566a7bca.jpg)
- 过程神经网络:给定因素,生成配方指示
- 显式跟踪所有因素的状态,并利用这些知识来决定下一步要采取什么行动
2.25 诗歌生成:Hafez
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第57张图片](http://img.e-com-net.com/image/info8/61cd629e83fb4cda9395f75f61568d4c.gif)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第58张图片](http://img.e-com-net.com/image/info8/8e662e7bbf704d36929fac72bebda4c0.jpg)
- 全系统
- 用户提供主题字
- 得到一个与主题相关的词的集合
- 识别局部词语押韵,这将是每一行的结束
- 使用受制于 FSA 的 RNN语言模型生成这首诗
- RNN语言模型向后(自右向左)。这是必要的,因为每一行的最后一个词是固定的
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第59张图片](http://img.e-com-net.com/image/info8/25e12d81525445aaa53c8ec6c53ae404.gif)
- 在后续的一篇论文中,作者制作了系统交互和用户可控
- 控制方法很简单:在集束搜索中,增大具有期望特征的单词的分数
2.26 诗歌生成:Deep-speare
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第60张图片](http://img.e-com-net.com/image/info8/5e5cd5cc74c24366a28643f58074f0fc.gif)
2.27 NMT的非自回归生成
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第61张图片](http://img.e-com-net.com/image/info8/f4219b4fb1424ce5a8173b4aab1fdc15.gif)
-
2018年,顾等发表了 Non-autoregressive 神经机器翻译
模型
-
它并行生成翻译
-
这具有明显的效率优势,但从文本生成的角度来看也很有趣
-
架构是基于Transformer 的;最大的区别是,解码器可以运行在测试时并行
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第62张图片](http://img.e-com-net.com/image/info8/f64e3fbb473b475abd1409404fa5bf47.jpg)
3.自然语言生成NLG评估
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第63张图片](http://img.e-com-net.com/image/info8/cab7829d25874e0d860440077202c4b2.jpg)
3.1 NLG的自动评价指标
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第64张图片](http://img.e-com-net.com/image/info8/400ec60276ee45838927ff09c6dfabd0.gif)
基于词重叠的指标 (BLEU,ROUGE,METROR,F1,等等)
- 他们不适合机器翻译
- 对于摘要而言是更差的评价标准,因为摘要比机器翻译更开放
- 不幸的是,与抽象摘要系统相比,提取摘要系统更受ROUGE青睐
- 对于对话甚至更糟,这比摘要更开放
3.2 单词重叠指标不利于对话
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第65张图片](http://img.e-com-net.com/image/info8/340d60e0c8db4cb7b51682aa708961e7.jpg)
- 上图展示了 BLEU-2、Embedding average 和人类评价的相关性都不高
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第66张图片](http://img.e-com-net.com/image/info8/3489dfba467b467c9c8e256f62701379.jpg)
3.3 NLG的自动评价指标
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第67张图片](http://img.e-com-net.com/image/info8/2ac303511e0444bc982f26cf209fef97.gif)
-
Perplexity / 困惑度?
- 捕捉 LM 有多强大,但是不会告诉关于生成的任何事情 (例如,如果困惑度是未改变的,解码算法是不好的)
-
词嵌入基础指标?
- 主要思想:比较词嵌入的相似度 (或词嵌入的均值),而不仅仅是重叠的单词。以更灵活的方式捕获语义
- 不幸的是,仍然没有与类似对话的开放式任务的人类判断,产生很好的联系
3.4 单词重叠指标不利于对话
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第68张图片](http://img.e-com-net.com/image/info8/e1ee95ca7ebb4b64a49570c01f3a43b5.jpg)
3.5 NLG的自动评价指标
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第69张图片](http://img.e-com-net.com/image/info8/53b4fa03410a411799c35716ef758562.gif)
-
没有自动指标充分捕捉整体质量 (即代表人类的质量判断)
-
但可定义更多的集中自动度量来捕捉生成文本的特定方面
- 流利性 (使用训练好的语言模型计算概率)
- 正确的风格 (使用目标语料库上训练好的语言模型的概率)
- 多样性 (罕见的用词,n-grams 的独特性)
- 相关输入 (语义相似性度量)
- 简单的长度和重复
- 特定于任务的指标,如摘要的压缩率
-
虽然这些不衡量整体质量,他们可以帮助我们跟踪一些我们关心的重要品质
3.6 人工评价
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第70张图片](http://img.e-com-net.com/image/info8/bac030872087436591f5b7297fbf0132.gif)
-
人类的判断被认为是黄金标准
-
当然,我们知道人类评价是缓慢而昂贵的
-
但这些问题?
-
假如获得人类的评估:人类评估解决所有的问题吗?
-
没有!进行人类有效评估非常困难:
- 是不一致的
- 可能是不合逻辑的
- 失去注意力
- 误解了问题
- 不能总是解释为什么他们会这样做
3.7 可控聊天机器人的详细人工评估
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第71张图片](http://img.e-com-net.com/image/info8/96c4dc5f9ff749a5a34b474a017fc743.jpg)
- 在聊天机器人项目上工作的个人经验 (PersonaChat)
- 我们研究了可控性 (特别是控制所产生的话语,如重复,特异性,回应相关性 和 问题询问)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第72张图片](http://img.e-com-net.com/image/info8/bda72676f2bf44fda398d413f176fb2a.gif)
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第73张图片](http://img.e-com-net.com/image/info8/4da5fa7c630f44f5a4de3ed85fb0402f.jpg)
- 最终,我们设计了一个详细的人类评价体系分离的重要因素,有助于整体 chatbot 质量
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第74张图片](http://img.e-com-net.com/image/info8/4fdc31fa0f2c4a0395aca81ed0c8772c.jpg)
发现
- 控制重复对于所有人类判断都非常重要
- 提出更多问题可以提高参与度
- 控制特异性 (较少的通用话语) 提高了聊天机器人的吸引力,趣味性和感知的听力能力。
- 但是,人类评估人员对风险的容忍度较低 (例如无意义或非流利的输出) 与较不通用的机器人相关联
- 总体度量“吸引力” (即享受) 很容易最大化 - 我们的机器人达到了近乎人性化的表现
- 整体度量“人性化” (即图灵测试) 根本不容易最大化 - 所有机器人远远低于人类表现
- 人性化与会话质量不一样!
- 人类是次优的会话主义者:他们在有趣,流利,倾听上得分很低,并且问的问题太少
3.8 NLG评估的可能新途径?
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第75张图片](http://img.e-com-net.com/image/info8/79384663307b4a278201ce772fe41332.gif)
-
语料库级别的评价指标
- 度量应独立应用于测试集的每个示例,或整个语料库的函数
- 例如,如果对话模型对测试集中的每一个例子回答相同的通用答案,它应该被惩罚
-
评估衡量多样性安全权衡的评估指标
-
免费的人类评估
- 游戏化:使任务(例如与聊天机器人交谈)有趣,这样人类就可以为免费提供监督和隐式评估,作为评估指标
-
对抗性鉴别器作为评估指标
- 测试 NLG 系统是否能愚弄经过训练能够区分人类文本和 AI 生成的文本的识别器
4.NLG研究的一些想法,目前的趋势,未来的可能方向
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第76张图片](http://img.e-com-net.com/image/info8/488bce9a91be42b8b63150f1837e09c7.jpg)
4.1 NLG中令人兴奋的当前趋势
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第77张图片](http://img.e-com-net.com/image/info8/40d2ca8b4d3a456897674b3b73dcce62.gif)
4.2 NLG研究
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第78张图片](http://img.e-com-net.com/image/info8/180ec1510f2742f68a92df4ace4d35ee.jpg)
4.3 神经NLG群体正在迅速成熟
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第79张图片](http://img.e-com-net.com/image/info8/d186da6e2d054c798458d5720635126d.gif)
-
在NLP+深度学习的早期,社区主要将成功的非机动车交通方法迁移到NLG任务中。
-
现在,越来越多的创新 NLG 技术出现,针对非 NMT 生成环境。
-
越来越多 (神经) NLG 研讨会和竞赛,特别关注开放式 NLG
- NeuralGen workshop
- Storytelling workshop
- Alexa challenge
- ConvAI2 NeurIPS challenge
-
这些对于组织社区提高再现性、标准化评估特别有用
-
最大障碍是评估!
4.4 在NLG工作学到的8件事
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第80张图片](http://img.e-com-net.com/image/info8/d8717f206ce446ed814e2ee281b51c91.jpg)
- ① 任务越开放,一切就越困难
- ② 针对特定改进的目标比旨在提高整体生成质量更易于管理
- ③ 如果使用一个语言模型作为NLG:改进语言模型 (即困惑) 最有可能提高生成质量
- ④ 多看看输出
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第81张图片](http://img.e-com-net.com/image/info8/05f7e5578bfc4c818022424f64ac53eb.jpg)
- ⑤ 需要一个自动度量,即使它是不受影响的
- ⑥ 如果做了人工评估,让问题尽可能的集中
- ⑦ 在今天的 NLP + 深度学习和 NLG 中,再现性是一个巨大的问题。
- ⑧ 在 NLG 工作可能很令人沮丧,但也很有趣
4.5 我和我的聊天机器人之间奇怪的对话
![斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务(NLP通关指南·完结)_第82张图片](http://img.e-com-net.com/image/info8/4461fcc29eab4142bc7774ba1a1e84ab.jpg)
5.视频教程
可以点击 B站 查看视频的【双语字幕】版本
【双语字幕+资料下载】斯坦福CS224n | 深度学习与自然语言处理(2019·全20讲)
6.参考资料
- 《斯坦福NLP名课带学详解 | CS224n》本讲带学的动态翻页PPT在线阅翻页-Lecture15
- 《斯坦福CS224n深度学习与自然语言处理》课程学习指南
- 《斯坦福CS224n深度学习与自然语言处理》课程大作业解析
- 【双语字幕视频】斯坦福CS224n | 深度学习与自然语言处理(2019·全20讲)
- Stanford官网 | CS224n: Natural Language Processing with Deep Learning
ShowMeAI 深度学习与自然语言处理教程(完整版)
- ShowMeAI 深度学习与自然语言处理教程(1) - 词向量、SVD分解与Word2vec
- ShowMeAI 深度学习与自然语言处理教程(2) - GloVe及词向量的训练与评估
- ShowMeAI 深度学习与自然语言处理教程(3) - 神经网络与反向传播
- ShowMeAI 深度学习与自然语言处理教程(4) - 句法分析与依存解析
- ShowMeAI 深度学习与自然语言处理教程(5) - 语言模型、RNN、GRU与LSTM
- ShowMeAI 深度学习与自然语言处理教程(6) - 神经机器翻译、seq2seq与注意力机制
- ShowMeAI 深度学习与自然语言处理教程(7) - 问答系统
- ShowMeAI 深度学习与自然语言处理教程(8) - NLP中的卷积神经网络
- ShowMeAI 深度学习与自然语言处理教程(9) - 句法分析与树形递归神经网络
ShowMeAI 斯坦福NLP名课 CS224n带学详解(20讲·完整版)
- 斯坦福NLP名课带学详解 | CS224n 第1讲 - NLP介绍与词向量初步
- 斯坦福NLP名课带学详解 | CS224n 第2讲 - 词向量进阶
- 斯坦福NLP名课带学详解 | CS224n 第3讲 - 神经网络知识回顾
- 斯坦福NLP名课带学详解 | CS224n 第4讲 - 神经网络反向传播与计算图
- 斯坦福NLP名课带学详解 | CS224n 第5讲 - 句法分析与依存解析
- 斯坦福NLP名课带学详解 | CS224n 第6讲 - 循环神经网络与语言模型
- 斯坦福NLP名课带学详解 | CS224n 第7讲 - 梯度消失问题与RNN变种
- 斯坦福NLP名课带学详解 | CS224n 第8讲 - 机器翻译、seq2seq与注意力机制
- 斯坦福NLP名课带学详解 | CS224n 第9讲 - cs224n课程大项目实用技巧与经验
- 斯坦福NLP名课带学详解 | CS224n 第10讲 - NLP中的问答系统
- 斯坦福NLP名课带学详解 | CS224n 第11讲 - NLP中的卷积神经网络
- 斯坦福NLP名课带学详解 | CS224n 第12讲 - 子词模型
- 斯坦福NLP名课带学详解 | CS224n 第13讲 - 基于上下文的表征与NLP预训练模型
- 斯坦福NLP名课带学详解 | CS224n 第14讲 - Transformers自注意力与生成模型
- 斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务
- 斯坦福NLP名课带学详解 | CS224n 第16讲 - 指代消解问题与神经网络方法
- 斯坦福NLP名课带学详解 | CS224n 第17讲 - 多任务学习(以问答系统为例)
- 斯坦福NLP名课带学详解 | CS224n 第18讲 - 句法分析与树形递归神经网络
- 斯坦福NLP名课带学详解 | CS224n 第19讲 - AI安全偏见与公平
- 斯坦福NLP名课带学详解 | CS224n 第20讲 - NLP与深度学习的未来
ShowMeAI系列教程精选推荐
- 大厂技术实现:推荐与广告计算解决方案
- 大厂技术实现:计算机视觉解决方案
- 大厂技术实现:自然语言处理行业解决方案
- 图解Python编程:从入门到精通系列教程
- 图解数据分析:从入门到精通系列教程
- 图解AI数学基础:从入门到精通系列教程
- 图解大数据技术:从入门到精通系列教程
- 图解机器学习算法:从入门到精通系列教程
- 机器学习实战:手把手教你玩转机器学习系列
- 深度学习教程:吴恩达专项课程 · 全套笔记解读
- 自然语言处理教程:斯坦福CS224n课程 · 课程带学与全套笔记解读
- 深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读
![](http://img.e-com-net.com/image/info8/fef35e83cb284e29a2923c825ef35d93.gif)