针对序列级和词元级应用程序微调BERT
在前几节中,我们为自然语言处理应用设计了不同的模型,例如基于循环神经网络、卷积神经网络、注意力和多层感知机。这些模型在有空间或时间限制的情况下是有帮助的,但是,为每个自然语言处理任务精心设计一个特定的模型实际上是不可行的。因此,我们介绍了一个名为BERT的预训练模型,改模型可以对广泛的自然语言处理任务进行最少的架构更改。
- 一方面,在提出时,BERT改进了各种自然语言处理任务的技术水平
- 另一方面,原始BERT模型的两个版本分别带有1.1亿和3.4亿个参数
当有足够的计算资源时,我们可以考虑为下游自然语言处理应用微调BERT
下面,我们将自然语言处理应用的子集概括为序列级和词元级。在序列层次上,介绍了在单文本分类任务和文本对分类(或回归)任务中,如何将文本输入的BERT表示转换为输出标签。在词元级别,我们将简要介绍新的应用,如文本标注和问答,并说明BERT如何表示它们的输入并转换为输出标签。在微调期间,不同应用之间的BERT所需的“最小架构更改”是额外的全连接层。在下游应用的监督学习期间,额外层的参数是从零开始学习的,而预训练BERT模型中的所有参数都是微调的
1 - 单文本分类
但单文本分类将单个文本序列作为输入,并输出其分类结果。除了已经讨论过的情感分析之外,语言可接受性语料库(Corpus of Linguistic Acceptability,COLA)也是一个单文本分类的数据集,它的要求判断给定的句子在语法上是否可接受。例如,“I should study”是可以接受的,但是“I should studying”不可接受
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P0a5o6jw-1665475603269)(images/e1.png)]
BERT输入序列明确地表示单个文本或文本对,其中特殊分类标记“<cls>”用于序列分类,而特殊分类标记“<sep>”标记单个文本的结束或分隔成对文本。在单文本分类应用中,特殊分类标记“<cls>”的BERT表示对整个输入文本序列的信息进行编码,作为输入单个文本的表示,它将被送入导由全连接(稠密)层组成的小多层感知机中,以输出所有离散标签值的分布
2 - 文本对分类或回归
另外,我们还研究了自然语言推断,它属于文本对分类,这是一种对文本进行分类的应用类型
以一对文本作为输入但输出连续值,语义文本相似度是一个流行的“文本对回归”任务。这项任务评估句子的语义相似度。例如,在语义文本相似度基准数据集(Semantic Textual Similarity Benchmark)中,句子对的相似度得分是从0(无语义重叠)到5(语义等价)的分数区间,我们的目标是预测这些分数,来自语义文本相似性的基准数据集的样本包括(句子1,句子2,相似性得分):
- “A plane is taking off.”(“⼀架⻜机正在起⻜。”),”An air plane is taking off.”(“⼀架⻜机正在起⻜。”),5.000分
- “A woman is eating something.”(“⼀个⼥⼈在吃东西。”),”A woman is eating meat.”(“⼀个⼥⼈在吃⾁。”),3.000分
- “A woman is dancing.”(⼀个⼥⼈在跳舞。),”A man is talking.”(“⼀个⼈在说话。”),0.000分。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VqDUqKcP-1665475603269)(images/e2.png)]
对于文本对回归任务(如语义文本相似性),可以应用细微的更改,例如输出连续的标签值和使用均方损失:它们在回归中很常见
3 - 文本标注
现在让我们考虑词元级任务,比如文本标注(text tagging),其中每个词元都被分配了一个标签,在文本标注任务中,词性标注为每个单词分配词性标记(例如,形容词和限定词)。根据单词在句子中的作用,如,在Penn书库II标注集中,句子“John Smith’s car is new”应该被标记为“NNP(名词,专有单数) NNP POS(所有格结尾)NN(名词,单数或质量)VB(动词,基本形式)JJ(形容词)”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fAjaL8Ha-1665475603270)(images/e3.png)]
在文本标注中,输入文本的每个词元的BERT被送到相同的额外全连接层中,以输出词元的标签,例如词性标签
4 - 问答
作为另⼀个词元级应⽤,问答反映阅读理解能⼒。例如,斯坦福问答数据集(Stanford Question AnsweringDataset,SQuAD v1.1)由阅读段落和问题组成,其中每个问题的答案只是段落中的⼀段⽂本(⽂本⽚段)[Rajpurkar et al., 2016]。举个例⼦,考虑⼀段话:“Some experts report that a mask’s efficacy is inconclusive.However,mask makers insist that their products,such as N95 respirator masks,can guard against thevirus.”(“⼀些专家报告说⾯罩的功效是不确定的。然⽽,⼝罩制造商坚持他们的产品,如N95⼝罩,可以预防病毒。”)还有⼀个问题“Who say that N95 respirator masks can guard against the virus?”(“谁说N95⼝罩可以预防病毒?”)。答案应该是⽂章中的⽂本⽚段“mask makers”(“⼝罩制造商”)。因此SQuAD v1.1的⽬标是在给定问题和段落的情况下预测段落中⽂本⽚段的开始和结束
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l04LbIjY-1665475603270)(images/e4.png)]
为了微调BERT进行问答,在BERT的输入中,将问题和段落分别作为第一个和第二个文本序列。为了预测文本片段开始的位置,相同的额外的全连接层将来自位置i的任何词元的BERT表示转换成标量分数 s i s_i si。文章中所有词元的分数还通过softmax转换成概率分布,从而为文章中的每个词元位置i分配作为文本片段开始的概率 p i p_i pi。预测文本片段的结束与上面相同,只是其额外的全连接层中的参数与用于预测开始位置的参数无关。当预测结束时,位置i的词元由相同的全连接层变换成标量分数 e i e_i ei。
对于问答,监督学习的训练目标就像最大化真实值的开始和结束位置的对数似然一样简单。当预测片段时,我们可以计算从位置i到位置j的有效片段的分数 s i + e j ( i < j ) s_i+e_j(i<j) si+ej(i<j),并输出分数最高的跨度
5 - 小结
- 对于序列级和词元级的自然语言处理应用,BERT只需要最小的架构改变(额外的全连接层),如单个文本分类(例如,情感分析和测试语言可接受性)、文本对分类或回归(例如,自然语言推断和语义文本相似性)、文本标记(例如,词性标记)和问答
- 在下游应用的监督学习期间,额外层的参数时从零开始学习的,而预训练BERT模型中的所有参数都时微调的