“非自回归”也不差:基于MLM的阅读理解问答
作者丨苏剑林
单位丨追一科技
研究方向丨NLP,神经网络
个人主页丨kexue.fm
前段时间写了万能的Seq2Seq:基于Seq2Seq的阅读理解问答,探索了以最通用的 Seq2Seq 的方式来做阅读理解式问答,并且取得相当不错的成绩(单模型 0.77,超过参加比赛时精调的最佳模型)。这篇文章我们继续做这个任务,不过换一个思路,直接基于 MLM 模型来做,最终成绩基本一致,但能提高预测速度。
两种生成
广义来讲,MLM 的生成方式也算是 seq2seq 模型,只不过它属于“非自回归”生成,而我们通常说的(狭义的)seq2seq,则是指自回归生成。本节对这两个概念做简单的介绍。
自回归生成
顾名思义,自回归生成指的是解码阶段是逐字逐字地递归生成的,它建模的是如下的概率分布:
更详细的介绍可以参考玩转Keras之Seq2Seq自动生成标题和从语言模型到Seq2Seq:Transformer如戏,全靠Mask,在此不对自回归生成做过多介绍。
非自回归生成
由于自回归生成需要递归地进行解码,无法并行,所以解码速度比较慢,因此近年来有不少工作在研究非自回归生成,也取得不少成果。简单来说,非自回归生成就是想办法使得每个字的解码可并行化,最简单的非自回归模型就是直接假设每个字是独立的:
这是一个很强的假设,只有在一些比较特殊的情况下才适用,直接用它来做普通的文本生成如自动摘要的话,效果会很差的。更复杂的非自回归生成的相关工作,大家在 arXiv 或 Google 上搜索 non-autoregressive text generation 就可以找到很多。
标题已经提到了,本文做阅读理解的方式是“基于 MLM”,对 Bert 模型有所了解的读者应该知道,MLM(Masked Language Model)实际上也是 (2) 的一个特例,所以基于 MLM 所做的生成模型,属于非自回归生成的范畴。
模型简介
所谓“简介”,真的很简,因为基于 MLM 来做阅读理解确实非常简单。
模型图示
首先定一个最大长度
▲ 用MLM做阅读理解的模型图示(其中[M]表示[MASK]标记)
代码效果
代码链接:
https://github.com/bojone/bert4keras/blob/master/examples/task_reading_comprehension_by_mlm.py
最终在 SogouQA 自带的评估脚本上,valid 集的分数大概是 0.77:
Accuracy=0.7282149325820084
F1=0.8207266829447049
Final=0.7744708077633566
跟前段时间的万能的Seq2Seq:基于Seq2Seq的阅读理解问答模型持平,但是预测速度明显提升,之前的 seq2seq 方案每秒只能预测 2 条数据左右,现在每秒预测能达到 12 条,6 倍的提速而且不降低效果。
选哪种好?
原则上来说 seq2seq 是万能的,而且原则上 seq2seq 所建模的式 (1) 要比 MLM 所建模的 (2) 要合理,为什么 MLM 方案能取得跟 seq2seq 持平的效果?什么时候该用 MLM,什么时候该用 seq2seq?
训练和预测
首先,seq2seq 最大的问题就是慢,如果长文本生成就更慢了,因此如果要求高效率,那自然就不得不放弃 seq2seq 这种方案了。
如果不考虑效率,那么是不是 seq2seq 就最好呢?也不是。尽管从建模上来看, (1) 更加准确,但是 seq2seq 的训练是通过 teacher forcing 的方式来做的,所以存在“exposure bias”的问题:训练的时候,每个时刻的输入都是来自于真实的答案文本;而生成的时候,每个时刻的输入来自于前一时刻的输出;所以一旦有一个字生成的不好,错误可能会接着传递,使得生成的越来越糟糕。
说白了,也就是训练和预测时存在不一致性,这种不一致性可能导致误差累积。相反,基于 MLM 的方案在训练和预测时的行为是一致的,因为不需要真实标签作为输入(预测时答案部分的位置也输入 [MASK]),因此不存在误差累积情况。而且也正好因为这个特点,因此解码时不再需要递归,而是可并行化,提高了解码速度。
正确答案唯一
此外,MLM 等非自回归生成,相对来说更加适用于短文本生成,因为文本越短越贴近这个独立假设,同时,非自回归生成适用于“正确的答案只有一个”的场景,而本文所做的阅读理解任务主要是抽取式的,刚好就对应着这种场景,因此 MLM 表现也不俗。
事实上,序列标注模型如逐帧 Softmax 或者 CRF,其实也可以视为非自回归生成模型,它们之所以有效,我认为根本原因也在于“正确的答案序列是唯一的”,而不是直觉上认为的“输入与输出对齐”。也就是说,如果满足“正确的答案只有一个”这个条件,那么就可以考虑用非自回归生成来做。
注意这个的答案唯一并不是指每个样本只有一个人工标注答案,而是指这个任务从设计上就让答案变得唯一了,比如分词,设计好标注方式后,每个句子只对应唯一一种正确的分词方案,再比如标题生成,显然同一篇文章可以起不同的标题,因此标题生成答案就不是唯一的(哪怕训练数据里边每篇文章只有一个标题)。
文章小结
本文试验了通过 MLM 的非自回归生成方式来做阅读理解式问答,发现最后的效果也不赖,而且速度有了好几倍的提升。此外,文章还简单对比了自回归和非自回归生成的异同,分析了非自回归方案何时适用及其原因。
点击以下标题查看作者其他文章:
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。
📝 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 所有文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。
▽ 点击 | 阅读原文 | 查看作者博客