NLP系列 10. BERT

Transformer的原理

BERT的算法来自谷歌的另一篇论文:https://arxiv.org/abs/1706.03762 。完全抛弃了RNN、CNN,而提出了另外一种新的网络结构:Transformer。Transformer现在是谷歌云TPU推荐的参考模型。
Transformer由encoder和decoder组成,encoder、decoder分别由一些编码器和解码器构成。
编码器又分为自注意层和前馈神经网络两部分。
NLP系列 10. BERT
(来源见水印)

  • 自注意层:从编码器输入的句子首先会经过一个自注意力(self-attention)层,这层帮助编码器在对每个单词编码时关注输入句子的其他单词。
  • 前馈神经网络:自注意力层的输出会传递到前馈(feed-forward)神经网络中。每个位置的单词对应的前馈神经网络都完全一样,另一种解读就是一层窗口为一个单词的一维卷积神经网络。
    解码器中也有编码器的自注意力(self-attention)层和前馈(feed-forward)层。除此之外,这两个层之间还有一个注意力层,用来关注输入句子的相关部分(和seq2seq模型的注意力作用相似)。
    NLP系列 10. BERT
    参考:https://zhuanlan.zhihu.com/p/54356280
    Transformer 的 encoder 是一次性读取整个文本序列,而不是从左到右或从右到左地按顺序读取,
    这个特征使得模型能够基于单词的两侧学习,相当于是一个双向的功能。在下面的BERT中会得到应用。

BERT的原理

谷歌发布的论文“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding” (https://arxiv.org/pdf/1810.04805.pdf )中提出的BERT模型在 11 个 NLP 任务上的表现刷新了记录。
BERT 可以用于问答系统,情感分析,垃圾邮件过滤,命名实体识别,文档聚类等任务中,作为这些任务的语言模型。
代码地址:https://github.com/google-research/bert
BERT将双向的transformer用于语言模型。
实验的结果表明,双向训练的语言模型对语境的理解会比单向的语言模型更深刻,论文中介绍了一种新技术叫做 Masked LM(MLM),在这个技术出现之前是无法进行双向语言模型训练的。
BERT使用了以下两种技术:

  1. Masked LM (MLM)
    在将单词序列输入给 BERT 之前,每个序列中有 15% 的单词被 [MASK] token 替换。 然后模型尝试基于序列中其他未被 mask 的单词的上下文来预测被掩盖的原单词。
    这样就需要:
  • 在 encoder 的输出上添加一个分类层
  • 用嵌入矩阵乘以输出向量,将其转换为词汇的维度
  • 用 softmax 计算词汇表中每个单词的概率
  1. Next Sentence Prediction (NSP)
    在 BERT 的训练过程中,模型接收成对的句子作为输入,并且预测其中第二个句子是否在原始文档中也是后续句子。
    在训练期间,50% 的输入对在原始文档中是前后关系,另外 50% 中是从语料库中随机组成的,并且是与第一句断开的。
    为了帮助模型区分开训练中的两个句子,输入在进入模型之前要按以下方式进行处理:
  • 在第一个句子的开头插入 [CLS] 标记,在每个句子的末尾插入 [SEP] 标记。
  • 将表示句子 A 或句子 B 的一个句子 embedding 添加到每个 token 上。
  • 给每个 token 添加一个位置 embedding,来表示它在序列中的位置。

为了预测第二个句子是否是第一个句子的后续句子,用下面几个步骤来预测:

  • 整个输入序列输入给 Transformer 模型
  • 用一个简单的分类层将 [CLS] 标记的输出变换为 2×1 形状的向量
  • 用 softmax 计算 IsNextSequence 的概率

在训练 BERT 模型时,Masked LM 和 Next Sentence Prediction 是一起训练的,目标就是要最小化两种策略的组合损失函数。
BERT 的损失函数只考虑了 mask 的预测值,忽略了没有掩蔽的字的预测。这样的话,模型要比单向模型收敛得慢,不过结果的情境意识增加了。
参考:https://www.jianshu.com/p/d110d0c13063

利用预训练的BERT模型进行文本分类

参考:
https://blog.****.net/qq_20989105/article/details/89492442
https://www.jiqizhixin.com/articles/2019-03-13-4