百分点认知智能实验室出品:BERT的正确使用姿势

近期,百分点认知智能实验室针对NLP领域神器BERT与文本分类等下游具体任务如何结合的问题提出了一套新的优化策略,在对BERT进行微调(fine-tune)的同时,在其后添加神经网络模型,打破之前BERT使用中fine-tune步骤和上层复杂模型完全隔离的方案,并通过实验证明,对于特定任务,二者结合能显著提高模型性能。

自2018年google发布开源预训练模型BERT之后,一时席卷业内十余项任务的state-of-art,引得无数NLPer聚焦于此。对于自然语言处理领域而言,BERT的出现,彻底改变了预训练词向量与下游具体NLP任务的关系,因此BERT被称为改变了NLP游戏规则的工作。然而,究竟如何最好的使用BERT呢?

一种自然的方法当然是改变BERT的预训练过程,从而造出更好的预训练语言模型。这种方法可以简单的引入更多的语料、采用不同的预训练任务、采用多任务学习、采用在特定领域的语料上进行fine-tune等等。然而,从头训练甚至fine-tune BERT均需要大量的算力才可实现。那么另一种自然而然的想法是,我们是否可以将已有模型(LSTM或者CNN)接入到BERT之上,从而发挥二者各自的优势呢?这是本文介绍的重点。

BERT的基础使用方式

本文以是否fine-tune预训练模型和是否对上层模型进行训练作为两个参考指标,将BERT的应用方法大致划分为三类,如下表所示:

其中,方法NFT-TM是指在BERT模型的上层添加复杂的网络结构,在训练时,固定BERT的参数,仅单独训练上层任务模型网络。方法FT-NTM是指在在BERT模型后接一个简单的特定任务层(如全连接网络),在训练时,根据任务的训练样本集对BERT进行fine-tune即可。

就以上NFT-TM、FT-NTM两种方法,美国Allen人工智能研究所的Matthew Peter等人分别在ELMo及BERT两种预训练模型上对比了效果,希望能够得出到底哪个方式更适合下游任务,他们针对7项NLP任务给出实验结果。对于ELMo而言,使用上层网络进行特征提取效果更好,对于BERT而言,fine-tune效果略胜一筹。最终该文得出结论,对于预训练模型,fine-tune方法(即FT-NTM)能够更好的将其应用于特定任务。

BERT的高级使用方式

以上两种方法看上去有些片面,如果把特征抽取和fine-tune结合起来成为第三种模式,效果会怎样呢?在BERT出现之前,就有人在训练好语言模型之后,用后续网络(如CNN,LSTM等)对词嵌入进行微调的方法了。如果把预训练模型看作是一个词嵌入的强化版,那么在BERT时代,我们在追求其应用模式革新上也应该考虑到此方法,于是百分点认知智能实验室提出融合特征抽取及fine-tune的方法FT-TM,其步骤如下:

1.在底层通过一个预训练模型,先训练一个可用的语言模型(视情况可停止训练);

2.针对具体下游任务设计神经网络结构,将其接在预训练模型之后;

3.联合训练包括预训练模型在内的整个神经网络,以此模式尝试进一步改善任务结果。

基于以上内容,我们对各种BERT应用方式选取了三个NLP典型任务进行实验,并通过实践证明,该方法在特定任务上均表现出色。

实验一:针对序列标注任务,我们选择了其子任务之一的命名实体识别任务(NER),并在NER的开源数据集CoNLL03上进行实验。该实验以仅对BERT进行fine-tune(即方法FT-NTM)的结果为baseline,对比了在BERT基础上增加一个传统用于NER任务的Bi-LSTM网络(即方法FT-TM)的效果,其实验结果如下图所示:

由图可得,结合BERT的fine-tune和上层神经网络的FT-TM方法在该任务上的F1值较baseline提升了近7个百分点。

实验二:针对文本分类任务,本次实验选取雅虎问答分类数据集,以原始BERT结果作为baseline,对比了在其基础上分别连接了HighwayLSTM和DenseNet网络,并对其进行模型融合后的结果。实验结果由下图所示:

由实验看出,虽然模型融合后的效果并不十分明显,但也有一定的效果提升。

实验三:针对语义等价性任务,本实验选取包含了40万个问题对的”Quora-Question-Pair”数据集,根据句子对进行相似度的计算。本次实验将仅对BERT进行fine-tune的方法FT-NTM为baseline,对比了在BERT之后接BIMPM网络的效果。同时以方法NFT-TM为baseline,对比了两种改进BIMPM之后模型结构的效果(移除BIMPM中的第一层Bi-LSTM模型和将BIMPM的matching层与transformer相结合的模型)。注意,在模型训练时有个重要的trick,考虑到预训练模型本身的效果和其与顶层模型的融合问题,在训练模型时,需要分两步进行:先固定预训练模型的参数,仅训练其上层特定任务网络,第二步再将整个网络联合训练。

该任务的实验结果如下图所示:

由实验结果可得,Bert+Sim-Transformer结合fine-tune Bert的效果相较仅对BERT进行fine-tune的方法FT-NTM,准确率提升了近5个百分点。

因此,从上面一系列的实验结果可以看出,我们提出的结合上层复杂模型和fine-tune的方法FT-TM是有效的,并且在某些任务中优于fine-tune的方式。同时在BERT预训练模型上面集成的神经网络模型好坏也会影响到最终的任务效果。

参考材料:

[1]Matthew Peters, Sebastian Ruder, and Noah A Smith. To tune or not to tune?adapting pretrained representations to diverse tasks. arXiv preprintarXiv:1903.05987, 2019.

论文地址:https://arxiv.org/abs/1907.05338