深度学习计算机视觉

自然语言处理—BERT

2021-01-16  本文已影响0人  zidea

BERT(Bidirectional Encoder Representations from Transformers)

在 ACL 上,Devlin, Chang, Lee 和 Toutanova 发表于 2019 的文章— BERT:Pre-training of deep bidirectional transformers for language understanding。

那么什么是 BERT 呢? 我们先从字面上解释一下什么是 BERT,我们将词分开来一个一个地看来解读什么是 BERT。

那么 BERT 用途是啥呢

human_labeling.jpeg

我们先说 BERT 的优点,就是在训练 BERT 时候我们不需要人工数据集,随便那些文本资料就可以用于训练 BERT,这些文本可以小说、技术书刊、杂志或者是网页等等来做预训练。

computing_power.png

但是 BERT 也不是完美无缺,BERT 需要大量算力才能进行 BERT 的训练

recieve_message.jpg

双向变换器编码表征(Devlin at al, 2018)

| 版本 | block |hidden units |heads | parameters |GPU | time |
|---|---|---|---|---|---|---|---|
| Small | 12 | 768 | 12 | 110M | 16TPU | 14 days|
| Large | 24 | 1024 | 16 | 340M |

预训练

任务1—预测被遮挡的单词

BERT_002.png BERT_005.png BERT_006.png

从上图不难看出 u_M 包含所有输入序列的单词信息,所以可以用 u_M 来预测遮挡位子的单词

BERT_007.png

将特征向量 u_M 输入到一个 Softmax 分类器,经过 Softmax 分类器得到一个 p 向量,p 也是概率分布,我们希望 p 向量接近 cat 的 one-hot 向量

Loss = crossEntropy(e,p)

任务2—预测下一个句子

接下来是如何制作数据集,就是将两句话拼接起来,在最第一句话前面添加 [CLS] 在两句话之间添加 [SEP] 表示分隔两句话

BERT_011.png

其实之前有关 mask 掉一个词来通过预测 masked 的词来训练词向量,大家还能理解,但是对于为什么通过预测两个句子,大家可能就会有点摸不着头脑了,为什么这样做有易于词向量的训练呢?

BERT_020.jpg

组合任务

BERT_012.png BERT_015.png
小例子 1
小例子 2
上一篇下一篇

猜你喜欢

热点阅读