NLP的新时代

声明:本文后80%转载自http://www.pmtown.com/archives/109304.html,实在是原文精炼,不用我增改一字:P

这是一篇三个月前的文章:《NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立》,我就不搬砖了,写得很好,建议大家先看一下。简单说就是作者总结并预言NLP的预训练模型已经可以使用,大家不用再从头训练了,今后就可以像图像领域一样使用迁移学习,快速构建自己的应用。

作者的话言犹在耳,谷歌的BERT就横空出世了!《NLP历史突破!谷歌BERT模型狂破11项纪录,全面超越人类!》

为了方便读者快速理解BERT论文的创新点,我把这篇文章里相关的段落搬过来:

关键创新:预训练任务

与 Peters et al. (2018) 和 Radford et al. (2018) 不同,论文不使用传统的从左到右或从右到左的语言模型来预训练 BERT。相反,使用两个新的无监督预测任务对 BERT 进行预训练。

任务1:Masked LM

从直觉上看,研究团队有理由相信,深度双向模型比 left-to-right 模型或 left-to-right and right-to-left 模型的浅层连接更强大。遗憾的是,标准条件语言模型只能从左到右或从右到左进行训练,因为双向条件作用将允许每个单词在多层上下文中间接地“see itself”。

为了训练一个深度双向表示(deep bidirectional representation),研究团队采用了一种简单的方法,即随机屏蔽(masking)部分输入 token,然后只预测那些被屏蔽的 token。论文将这个过程称为“masked LM”(MLM),尽管在文献中它经常被称为 Cloze 任务(Taylor, 1953)。

在这个例子中,与 masked token 对应的最终隐藏向量被输入到词汇表上的输出 softmax 中,就像在标准 LM 中一样。在团队所有实验中,随机地屏蔽了每个序列中 15% 的 WordPiece token。与去噪的自动编码器(Vincent et al., 2008)相反,只预测 masked words 而不是重建整个输入。

虽然这确实能让团队获得双向预训练模型,但这种方法有两个缺点。首先,预训练和 finetuning 之间不匹配,因为在 finetuning 期间从未看到[MASK]token。为了解决这个问题,团队并不总是用实际的[MASK]token 替换被“masked”的词汇。相反,训练数据生成器随机选择 15% 的 token。例如在这个句子“my dog is hairy”中,它选择的 token 是“hairy”。然后,执行以下过程:

数据生成器将执行以下操作,而不是始终用[MASK]替换所选单词:

- 80% 的时间:用[MASK]标记替换单词,例如,my dog is hairy → my dog is [MASK]

- 10% 的时间:用一个随机的单词替换该单词,例如,my dog is hairy → my dog is apple

- 10% 的时间:保持单词不变,例如,my dog is hairy → my dog is hairy. 这样做的目的是将表示偏向于实际观察到的单词。

Transformer encoder 不知道它将被要求预测哪些单词或哪些单词已被随机单词替换,因此它被迫保持每个输入 token 的分布式上下文表示。此外,因为随机替换只发生在所有 token 的 1.5%(即 15% 的 10%),这似乎不会损害模型的语言理解能力。

使用 MLM 的第二个缺点是每个 batch 只预测了 15% 的 token,这表明模型可能需要更多的预训练步骤才能收敛。团队证明 MLM 的收敛速度略慢于 left-to-right 的模型(预测每个 token),但 MLM 模型在实验上获得的提升远远超过增加的训练成本。

任务2:下一句预测

许多重要的下游任务,如问答(QA)和自然语言推理(NLI)都是基于理解两个句子之间的关系,这并没有通过语言建模直接获得。

在为了训练一个理解句子的模型关系,预先训练一个二进制化的下一句测任务,这一任务可以从任何单语语料库中生成。具体地说,当选择句子A和B作为预训练样本时,B有 50% 的可能是A的下一个句子,也有 50% 的可能是来自语料库的随机句子。例如:

Input = [CLS] the man went to [MASK] store [SEP]

he bought a gallon [MASK] milk [SEP]

Label = IsNext

Input = [CLS] the man [MASK] to the store [SEP]

penguin [MASK] are flight ##less birds [SEP]

Label = NotNext

团队完全随机地选择了 NotNext 语句,最终的预训练模型在此任务上实现了 97%-98% 的准确率。

吃瓜群众们又惊呆了,NLP新的范式,新的时代来了!

发布了18 篇原创文章 · 获赞 6 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览