BERT 学习笔记

语言模型:https://lilianweng.github.io/lil-log/2019/01/31/generalized-language-models.html
Contextual Word Representations: Putting Words into Computers: https://arxiv.org/abs/1902.06006
BERT分析:https://zhuanlan.zhihu.com/p/58430637

1. 早期的词嵌入

  包括one hot、Word Class、词嵌入三种方法。
BERT 学习笔记_第1张图片

在 https://arxiv.org/abs/1902.06006中 ,单个词在不同的句子中可能有不同的含义。但是在word2vec中,得到的是词向量,在使用的时候,虽然这个词可能包括多个含义,而不是在每个句子中的准确含义。
BERT 学习笔记_第2张图片

2. 基于上下文的词嵌入

  基于上下文的词嵌入,以我来看,更像是得到整个句子的嵌入。如此一来,就能得到词在句子中的准确含义了。
BERT 学习笔记_第3张图片

2.1 ELMO

  ELMO的paper地址为:https://arxiv.org/abs/1802.05365 。ELMO的核心是通过双向RNN得到上下文的词嵌入,如下图所示:
BERT 学习笔记_第4张图片ELMO实际上使用了多层的双向RNN,那它用到了哪些信息呢?
BERT 学习笔记_第5张图片
答案当然是我全都要(学到这里的时候真笑出来了,李宏毅老师是真的幽默)。它是对多层的信息进行加权。
BERT 学习笔记_第6张图片

2.2 BERT

BERT本质上是Transformer的Encoder。
BERT 学习笔记_第7张图片

2.2.1 训练BERT的两大任务

  第一个是做完形填空,也就是随机盖住15%的词,去预测盖住的词是否是原有词。
BERT 学习笔记_第8张图片
  第二个是做句子之间判断,判断两个句子之间是否为上下句的关系。
BERT 学习笔记_第9张图片

2.2.2 如何使用BERT

  如果是做单个句子的情感分类。输入中添加[CLS],输出在最开始的地方添加一个线性分类器即可。为什么在最开始就可以,因为BERT是基于Transformer,而Transformer是基于self-attention,在每个位置都会得到整个句子的信息,所以不需要放到最后面。
BERT 学习笔记_第10张图片
未完待补,等我先把使用BERT进行文本分类的例子搞懂了。

你可能感兴趣的:(自然语言处理)