发布时间:2023-05-24 11:00
BERT模型(Bidirectional Encoder Representations from Transformers):双向transformer编码表达。
1)Bidirectional:BERT 的模型结构和 ELMo 类似,均为双向的。
2)Encoder:BERT 只是用到了 Transformer 的 Encoder 编码器部分。
3)Representation:做词 / 句子的语义表征。
4)Transformer:Transformer Encoder 是 BERT 模型的核心组成部分。
BERT 模型的目标是利用自监督学习方法在大规模无标注语料上进行预训练,从而捕捉文本中的丰富语义信息。在后续特定的 NLP 任务中,我们可以根据任务类型对 BERT 预训练模型参数进行微调,以取得更好的任务效果。BERT 论文链接:https://arxiv.org/abs/1810.04805 ,github 地址:https://github.com/google-research/bert
BERT 提供了基础和复杂两个模型,对应的超参数分别如下:
1) B E R T B A S E BERT_{BASE} BERTBASE:L=12,H=768,A=12,参数总量110M
2) B E R T L A R G E BERT_{LARGE} BERTLARGE:L=24,H=1024,A=16,参数总量340M
其中 L 表示网络的层数(即 Transformer blocks 的数量),A 表示 Multi-Head Attention 中 self-Attention 的数量,H 是输出向量的维度。谷歌提供了中文 BERT 基础预训练模型 bert-base-chinese,TensorFlow 版模型链接:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip ,Pytorch 版模型权重链接:https://huggingface.co/bert-base-chinese/tree/main
BERT 论文中还对比了 GPT[3] 和 ELMo[4],它们两个的结构如下图所示:其中 BERT 使用的是双向 Transformer 编码器,GPT 使用的是单向 Transformer 解码器,ELMo 使用两个独立训练的 LSTM 结构,只有BERT表征会基于所有层中的左右两侧语境。除了结构上的不同,BERT 和 GPT 是基于微调的方式,而 ELMo 是基于特征的方法。
在BERT中主要以两种预训练的方式建立语言模型:MASKED LM和Next Sentence Prediction。