自然语言处理(NLP)

BERT 详解(三)

2019-12-28  本文已影响0人  6c643a7fc0e6

BERT 有两个自然语言处理任务的预训练:

1. Masked LM

目前,有的模型是从左到右的上下文中训练模型或者简单连接从左到右和从右到左的上下文中训练模型,比如:ELMo 模型是试图在从左到右和从右到左的上下文中训练两个LSTM语言模型,并将其简单连接起来。

BERT 是一个深度双向模型,网络有效地从标记的左右上下文捕获信息,从第一层一直到最后一层。这就 BERT 比 OpenAI GPT 和 ELMo 优越之处,如下图所示:

bert_01.png

通过上图可以看出,BERT 是双向的,GPT 是单向的(信息只从左到右流动),ELMo 是浅双向的。

2. 示例

为了训练深度双向表示,我们采用了一种直观的方法,随机掩盖一定比例的输入标记,然后仅预测这些被掩盖的标记,我们把这种方法称为:Masked LM(MLM,遮蔽语言模型)

例如:“我喜欢阅读桃子说产品上的简书博客”。想要训练一个双向的语言模型,可以建立一个模型来预测序列中的遗漏单词,而不是试图预测序列中的下一个单词。将“桃子”替换为“[MASK]”,表示丢失的标记。然后,以这样的方式训练模型,使其能够预测“桃子”是本句中遗漏的部分:“我喜欢阅读[MASK]说产品上的简书博客”。这是 Masked LM 的关键。

3. 缺点

虽然这确实可以让我们获得双向预训练模型,但这种方法有两个缺点:

4. 建议

例如:在句子“my dog is hairy”中,它选择了“hairy”,数据生成器并不总是用 [MASK] 替代所选的单词,而是执行以下操作:

  1. 80%的时间:用 [MASK] 标记替换单词,如:my dog is hairy → my dog is [MASK]。
  2. 10%的时间:用一个随机的单词替换单词,如:my dog is hairy → my dog is apple。
  3. 10%的时间:保持单词不变,如:my dog is hairy → my dog is hairy。这样做的目的是表示偏向于实际观察到的单词。
上一篇 下一篇

猜你喜欢

热点阅读