诸神缄默不语-个人CSDN博文目录
诸神缄默不语的论文阅读笔记和分类
论文全名:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
ArXiv下载地址:https://arxiv.org/abs/1810.04805
官方GitHub项目:google-research/bert: TensorFlow code and pre-trained models for BERT
本文是2019年NAACL论文。提出了BERT……别的背景懒得介绍了。
Transformer基础可参考我撰写的博文:Transformer原理纯享版
调用BERT的代码我写过好几篇博文了,看目录吧。
原版BERT是英文模型,但是现在有很多语言的BERT模型了。
文章目录
1. 背景
当时的预训练模型已经取得了显著成效。分为两种:
- feature-based
ELMo
用预训练表征作为特征,对不同的任务使用不同的模型结构 - fine-tuning
OpenAI GPT(Re45:读论文 GPT-1 Improving Language Understanding by Generative Pre-Training)
模型包含少量task-specific(就是你看图能发现GPT-1的下游任务微调还是有点复杂,不能像BERT、GPT-2这样一个模型干一切,就只换个输出头(T5和GPT-3都不换了))。在下游任务微调所有参数
这两种模型预训练时的损失函数都是单向语言模型,学习生成式语言表征。总之本文写了一些作者觉得这种方法的不好之处,GPT只用到前文表征,ELMo只对2个反向的、分别训练的单向LM的表征结合起来(BERT不采用类似的结构,因为缺点:1. 代价高 2. 对QA不直觉 3. 表现力不够)。
预训练语言模型表示向量:
- 无监督基于特征((非)基于神经网络)的词向量→粒度更粗的表征
ElMo context2vec maskgan - 无监督基于微调
GPT-1 - 从有监督数据迁移学习(经典ImageNet)
BERT生成的token表征是动态的。它共享/迁移的是模型的架构和参数/权重。
2. BERT整体结构
BERT可以获取双向的上下文信息,只需要在预训练模型的基础上接一个输出头就可以应用于不同的任务。
预训练 + 微调 范式
预训练损失函数是平均MLM似然的总和 + NSP似然的平均值
模型是多层双向Transformer encoder
L:Transformer block数
H:隐藏层维度
A:attention头数
BERT
BASE
_{\text{BASE}}
BASE L=12, H=768, A=12, Total Parameters=110M
BERT
LARGE
_{\text{LARGE}}
LARGE L=24, H=1024, A=16, Total Parameters=340M
当年这个世界多么淳朴,大模型只有340M……
太常识的东西我就不写了。
2.1 输入/输出表征
分词:WordPiece
输入sequence
可以是一个sentence或者一个sentence对
开始:[CLS]
用于序列分类任务
句子对分隔符:[SEP]
并增加可学习的segment embedding:来区分每一个token属于哪个句子(transformers包中的token_type_ids入参)
广义来说所有输入都是句子对,如果输入单一句子(用于做文本分类或序列标注)可以视为degenerate text-∅ pair
输入表征由三部分加总:
输出中,token表征接输出层解决token-level任务,[CLS]
表征接输出层解决序列分类任务(蕴含任务、情感分析等)
2.2 预训练目标:MLM
masked language model
完形填空 / Cloze task
随机选择15% token,[MASK]
80% 预测原token,10%随机替换成别的token,10%不变
2.3 预训练目标:NSP
next sentence prediction
用[CLS]
表征做二元分类任务
理解句子对之间的关系
3. 实验
实验在多个任务上进行,整体表现都挺好的,我懒得详写了。
文本分类任务
抽取式QA
引入
S
S
S 和
E
E
E 选出概率最大的 start / end token 位置:
span得分:
选择所有
j
≥
i
j≥i
j≥i的span中得分最高的座位预测结果。
训练目标函数是 start / end token 位置对数似然和。
非抽取式QA也用抽取式方案硬上:
常识推理 / 多选题
给出4个由given sentence和possible continuation联接成的sequence,用共同vector与[CLS]
表征点积→softmax得到选项得分
消融实验
模型尺寸的影响
Feature-based Approach with BERT
直接用BERT输出作为表征来训练Bi-LSTM。
直接用BERT时,用第一个sub-token的表征作为整个token的表征。