自然语言处理

掩码语言建模(masked language modeling)

/ MASKT LANG-gwij MOD-ul-ing /

掩码语言建模是一个用来训练语言理解的「完形填空」游戏。拿来一句话,随机把其中几个词藏到空白后面,让模型去猜被藏起来的是什么:「The cat sat on the ___.」要把这个空填好,模型就得用上它周围的一切——前面的词和后面的词都要用。这正是它与普通「预测下一个词」的关键区别,后者只往左看;而掩码让模型能一次性双向阅读。

这种双向的视野,为什么是件大事?因为真正理解一个词,倚赖的是它完整的上下文。要弄清「bank」是什么意思,能看到三个词之后的「river」(河)会大有帮助,而不只是看它前面的词。谷歌于2018年发布的 BERT 模型,正是建立在这个想法之上:通过让一个网络在原始文本上解决数百万道这样的完形填空题来做预训练——无需人工标注,被藏起来的词本身就是答案——它便作为副产品,学到了对语言深刻、且具语境感知的表示。

这是一种自监督学习,它带动了自然语言处理领域一波巨大的进步:一个 BERT 式的模型一旦预训练完成,只需轻轻微调,就能去做分类、命名实体识别、问答等等。有两点要诚实说明:掩码模型生来是为理解和分析文本,而非生成长段流畅的文字(那是 GPT 家族那类从左到右生成器的地盘);还有,训练时用的那个人造空白词元,在模型实际使用时从不出现——这是一处小小的不匹配,研究者长久以来一直在琢磨。

训练输入:「I went to the [MASK] to deposit my paycheck.」模型应预测出「bank」(银行)——而关键在于,空白之后的「deposit」(存款)一词,正是排除「河岸」之义的依据。是双向的上下文在起作用。

空白之后的那个词敲定了含义——只有双向阅读者才用得上它。

掩码模型(BERT 式)双向阅读、擅长理解文本,但不是为生成长段文字而造——那是 GPT 这类从左到右模型的活儿。两者是表亲,而非对手。

又称
MLMBERTfill-in-the-blank pretraining掩码语言模型完形填空预训练