©PaperWeekly 原创 · 做者|苏剑林
安全
单位|追一科技微信
研究方向|NLP、神经网络网络
Teacher Forcing 是 Seq2Seq 模型的经典训练方式,而 Exposure Bias则是 Teacher Forcing 的经典缺陷,这对于搞文本生成的同窗来讲应该是耳熟能详的事实了。笔者以前也曾写过文章 Seq2Seq中Exposure Bias现象的浅析与对策,初步地分析过 Exposure Bias 问题。svg
本文则介绍 Google 新提出的一种名为“TeaForN”的缓解 Exposure Bias 现象的方案,来自论文 TeaForN: Teacher-Forcing with N-grams,它经过嵌套迭代的方式,让模型能提早预估到后 N 个 token(而不只仅是当前要预测的 token),其处理思路上很有可圈可点之处,值得咱们学习。函数
论文标题:学习
TeaForN: Teacher-Forcing with N-grams编码
论文连接:人工智能
https://arxiv.org/abs/2010.03494翻译
(注:为了尽可能跟旧文章保持一致,本文的记号与原论文的记号有所不一样,请你们以理解符号含义为主,不要强记符号形式。)3d
Teacher Forcing
文章 Seq2Seq中Exposure Bias现象的浅析与对策已经相对详细地介绍了 Teacher Forcing,这里仅作简要回顾。首先,Seq2Seq 模型将联合几率分解为多个条件几率的乘积,这就是所谓的“自回归模型”:
而后,当咱们训练第 t 步的模型 时,咱们假设 都是已知的,而后让模型只预测 ,这就是 Teacher Forcing。
但在预测阶段,真实的 都是未知的,此时它们是递归地预测出来的,可能会存在传递偏差等状况。所以 Teacher Forcing 的问题就是训练和预测存在不一致性,这让咱们很难从训练过程掌握预测的效果。
没什么远见
怎么更具体理解这个不一致性所带来的问题呢?咱们能够将它理解“没什么远见”。在解码器中,输入 和前 t-1 个输出 token 共同编码获得向量 ,在 Teacher Forcing 中,这个 只是用来预测 ,跟 没有直接联系,换句话说,它的“见识”也就局限在 t 这一步了。
▲ Teacher Forcing示意图
好比上图中的 h_3 向量,Teacher Forcing 只让它用来预测“阴”,事实上“阴”的预测结果也会影响“晴”、“圆”、“缺”的预测,也就是说 也应该与“晴”、“圆”、“缺”有所关联,而 Teacher Forcing 没有显式地创建这种关联。因此模型在解码的时候每一步极可能只输出局部最高几率的 token,这就容易出现高频安全回复或者重复解码现象。
Student Forcing
为了提升模型的“前瞻能力”,最完全的方法固然是训练阶段也按照解码的方式来进行,即 也像解码阶段同样递归地预测出来,不依赖于真实标签,咱们不妨称这种方式为 Student Forcing。可是,Student Forcing 的训练方式来带来两个严重的问题:
第一,牺牲并行。对于 Teacher Forcing 来讲,若是 Decoder 使用的是 CNN 或 Transformer 这样的结构,那么训练阶段是全部 token 均可以并行训练的(预测阶段仍是串行),但若是 Student Forcing 的话则一直都是串行。
第二,极难收敛。Student Forcing 一般须要用 Gumbel Softmax 或强化学习来回传梯度,它们的训练都面临着严重的不稳定性,通常都要用 Teacher Forcing 预训练后才能用 Student Forcing,但即使如此也不算特别稳定。
形象地理解,Student Forcing 至关于老师彻底让学生独立探究一个复杂的问题,不作手把手教学,只对学生的结果好坏作个最终评价。这样一旦学生能探索成功,那可能说明学生的能力很强了,但问题就是缺少老师的“循循善诱”,学生“碰壁”的概率更加大。
往前多看几步
有没有介乎 Teacher Forcing 与 Student Forcing 之间的方法呢?有,本文所介绍的 TeaForN 就算是其中一种,它的思想是常规的 Teacher Forcing 至关于在训练的时候只往前看 1 步,而 Student Forcing 至关于在训练的时候往前看了 L 步(L 是目标句子长度)。
若是咱们只是往前多看几步(至关于看到了 N-gram),那么理论上就能提升“远见”,而且不至于严重牺牲模型的并行性。其示意图以下:
▲ TeaForN示意图
直观来看,就是把输出结果再往前迭代多遍,这样一来前 t-1 个 token 要预测的就不只仅是第 t 个 token 了,还有第 个。好比在上图中,最后咱们用 来预测了“缺”字,而咱们能够看到 只依赖于“月”、“有”、“阴”三个字,因此咱们也能够理解为 这个向量同时要预测“晴”、“圆”、“缺”三个字,所以也就提升了“远见”。
用数学的话来讲
用数学语言来描述,咱们能够将 Decoder 分为 Embedding 层 E 和剩余部分 M 两个部分,Embedding 层负责将输入句子 映射为向量序列 (其中 是固定的解码起始标记,也就是上图的 [S],有些文章记为),而后交给模型 M 处理,获得向量序列 ,即:
接着经过 获得第 t 步的 token 几率分布,最后用 做为损失函数训练,这即是常规的 Teacher Forcing。
能够想象,负责映射到 token 分布的输出向量序列 某种程度上跟 Embedding 序列 是类似的,若是咱们补充一个 进去,而后将 也送入到模型 M 中再处理一次,是否能够呢?也就是:
而后每个h咱们都算几率分布
训练完成后,咱们只用 E 和 M 作常规的解码操做(好比 Beam Search),也就是只用 而不须要 了。这个流程就是本文的主角 TeaForN 了。
效果、思考与讨论
至于实验效果,天然是有提高的,从原论文的实验表格来看,在 beam_size 比较大时提高比较明显。其实也不难理解,按道理来讲,这样处理后再不济应该也不会降低,所以算是一种“稳赚不赔”的策略了。
▲ TeaForN的实验结果之一(文本摘要)
原论文讨论了几个值得商榷的点,咱们这里也来看下。
首先,模型每一步迭代所用的 M 该不应共享权重?直觉来想共享是更好的,若是不共享权重,那么往前看 N 步,那么参数量就差很少是原来的 N 倍了,感受是不大好。固然最好仍是靠实验实验,原论文确实作了这个比较,证明了咱们的直觉。
▲ TeaForN在机器翻译上的效果,其中包含了是否贡献权重的比较
其次,可能最主要的疑问是:在迭代过程当中将 看成 用是否真的靠谱?固然,实验结果已经代表了是可行的,这就是最有说服力的论据了。但因为 到 是经过内积来构建的,因此 跟 未必类似,若是能让它们更接近些,效果会不会更好?原论文考虑了以下的方式:
也就是说,每一步算出 后,取几率最大的 k 个 token,将它们的 Embedding 向量加权平均来做为下一步迭代的输入。原论文实验了 k=4 和 k=|V|(词表大小),结果以下图。总的来讲 Topk 的效果不大稳定,好的状况也跟直接用 差很少,所以就不必尝试别的了。
▲ 用Topk对Embedding加权平均的方式代替h的效果
固然,我以为要是论文再比较一下经过 Gumbel Softmax 来模拟采样效果就更加完美了。
来自文末的总结
本文分享了 Google 新提出来一种称为 TeaForN 的训练方式,它介乎 Teacher Forcing 和 Student Forcing 之间,能缓解模型的 Exposure Bias 问题,而且不用严重牺牲模型训练的并行性,是一种值得尝试的策略。
除此以外,它实际上还提供了一种解决此类问题的新思想(经过迭代保持并行和前瞻),其中很有值得回味的地方。
更多阅读
#投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许能够成为一座桥梁,促使不一样背景、不一样方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或我的,在咱们的平台上分享各种优质内容,能够是最新论文解读,也能够是学习心得或技术干货。咱们的目的只有一个,让知识真正流动起来。
???? 来稿标准:
• 稿件确系我的原创做品,来稿需注明做者我的信息(姓名+学校/工做单位+学历/职位+研究方向)
• 若是文章并不是首发,请在投稿时提醒并附上全部已发布连接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
???? 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 全部文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便咱们在编辑发布时和做者沟通
????
如今,在「知乎」也能找到咱们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅咱们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。若是你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。