新智元报道
编辑:元子
近日arXiv上一篇深度学习文章引起小编注意,文章下载地址:
https://arxiv.org/abs/2004.14996。
目前这篇arXiv预印版为短文篇幅,不过小编发现,OpenReview上有匿名提交的完整版本,下载地址:
https://openreview.net/pdf?id=WFfUEP9EGLy
在这篇arXiv文章中,薄言(RSVP.ai)联合加拿大滑铁卢大学和北京大学提出全新预训练模型SegaBERT,用以改进基于Transformer的预训练过程,在多种自然语言任务上全面超越谷歌BERT。
语言模型(Language Modeling)作为自然语言领域经典的序列建模任务,已有数十年的研究历史。近年来,因其自监督的特性备受学术界与工业界关注,相继涌现出GPT2、BERT、RoBERTa、XLNET等一系列预训练语言模型,不断刷新自然语言各类任务榜单。预训练+微调模式已然成为自然语言处理领域的新范式。
▲ 图1. 预训练模型(From THUNLP)
有趣的是,这些不断刷新各类排名榜单的预训练模型无一例外都采用了Transformer (Vaswani et al., 2017) 架构。该架构自2017年提出以来风靡自然语言领域,因其高效的自注意力机制,逐步替代传统的循环神经网络。为了编码输入序列中词语之间的位置关系,Transformer需要给每个输入token构建一个位置向量。每个位置向量表达了当前token在输入序列中的位置,模型通过海量的输入数据,来学习这些位置向量之间的关系。
然而,Transformer的提出,主要针对的是机器翻译等输入序列较短的自然语言任务(从1~512个词不等),而预训练语言模型的文本序列通常是篇章级别的长度(从512~1024个词不等)。对于这种较长的自然语言序列而言,原始的Transformer的位置向量很难学习到显著的位置关系。
比如第3位和第123位的两个token,可能是出现在同一个文章段落,并且是相邻的两个句子中的两个词;也可能是同一个文章段落,但非相邻的句子中的两个词;甚至是同一文章不同段落的两个词。因此,仅仅指出两个词在整个输入文本序列中的位置,不足以体现原作者对于它们在篇章结构中位置关系的表达。
该文章中提出的SegaBERT模型,在Transformer原始位置向量的基础上,对段落、句子、词语三者间的位置关系联合建模,更符合语言逻辑习惯,也更益于模型学习。它使得Transformer结构对输入序列的分隔信息有了更好的建模能力,以此获得更好的文本编码表示,用以提升下游自然语言处理任务。
为了验证这种结构改进自身带来的功效,SegaBERT模型使用了与BERT相同的训练配置,在人类自然语言理解任务GLUE的七项任务中全面超越BERT,整体平均分数提升1.2个点。同时,SegaBERT也在斯坦福大学的阅读理解任务SQUAD中的EM score和F1 score两项指标上分别提升1.2和1.5个点。
和BERT相比,SegaBERT为每个输入的词/子词构建其段落索引、句子索引和词索引,同时在模型中设置段落位置向量、句子位置向量和词位置向量。通过位置索引和位置向量为模型输入序列提供位置向量表示,如图2所示:
▲ 图2. 模型输入
相比BERT中使用512个词位置索引对输入序列中每个词进行位置标示,SegaBERT采用50个段落位置索引、100个句子位置索引和256个词位置索引,为输入序列中的每个词标示其三重位置信息。即为每个词赋予一个三元组位置向量,分别包含其所在段落位置索引、所在句子在相应段落中的位置索引及该词在其所在句子内的位置索引。这样,SegaBERT在进行文本编码时,能够做到片段感知(segment-aware),捕捉到更丰富的篇章结构信息。
因此,SegaBERT在预训练阶段,能利用更丰富的位置表征,学习到信息更丰富的上下文表示。这样的改进,提升了预训练语言模型的文本编码能力,使其在微调阶段得到更完善的句子/篇章表示,进而提升下游任务的预测效果。
SegaBERT预训练了SegaBERT-base模型和SegaBERT-large模型,分别采用12层Transformer、768维隐层表示、12个多头注意力与24层Transformer、1024维隐层表示、24个多头注意力。其中,SegaBERT-base模型只使用了wikipedia数据(12GB)进行训练,训练步数为500K;而SegaBERT-large模型则使用了wikibooks数据(16GB),训练步数为1M。
在训练任务上,SegaBERT采用了和BERT相同的MLM(掩码语言模型)任务,即对输入的512个token进行随机掩码。通过模型训练,对这些被掩码的位置进行预测,还原 其原本的文本内容。值得注意的是,SegaBERT并没有引入其他辅助任务,例如NSP(下句预测)等。
SegaBERT采用同BERT相同的参数量、预训练数据与训练超参进行语言模型预训练。其Large模型在人类自然语言理解任务GLUE中,七项任务超越BERT,整体平均分数提升1.2个点。
除此之外,在斯坦福大学的阅读理解任务SQUAD中,SegaBERT更是在F1 score 和 EM score上分别提升1.2和1.5个点,更是超越KT-NET(基于BERT进行融合外部知识库的微调模型)、StructBERT(多种辅助任务参与预训练的改进版BERT)和BERT_DA(利用数据增广进行微调的BERT)。
▲ 图3. GLUE测试任务的结果
▲ 图4. SQUAD V1.1的测试结果
同时,为了说明添加的段落位置表示和句子位置表示的有效性,该文章还进行了在BERT原本的512个词位置索引的基础上,添加50个段落位置索引和128个句子位置索引的对比实验(对应下表中(图5)的实验组第二列BERT with P.S.)。
这里需要说明的是,BERT中的词位置索引是该词在整个输入的长度为512的序列中的绝对位置,而SegaBERT中词位置索引是该词在其所在句子中的相对位置。可以看到,该组实验在除CoLA外的其余7项GLUE任务和阅读理解SQUAD任务相比于原始的BERT均有明显的提升,其中SQUAD任务的结果与SegaBERT相近。
这组实验表明,简单的段落和句子的位置表征引入,就能起到提升预训练语言模型的效果。
此外,我们在OpenReview的完整版本中,还看到了关于SegaBERT和BERT的注意力可视化结果。
可以看到,SegaBERT不止是在各种任务集上比BERT有提升,在对输入文本的编码逻辑上也有显著区别,SegaBERT能做到片段感知,即根据段落、句子的分隔信息进行编码。而基于传统Transformer的BERT,其注意力分布主要和距离远近相关。
最后,在OpenReview的版本中,作者还补充了SegaTransformer-Xl的实验,直接将Transformer-XL在语言模型任务上提升到目前已发表工作中的最强分数,进一步验证了片段感知的位置编码机制的可扩展性。
在Transformer和预训练语言模型成为NLP标准范式的今天,SegaBERT通过重新定义Transformer底层输入的位置表征,在与BERT采用相同的预训练数据、计算资源与模型规模条件下,取得了较为明显的提升效果。
值得注意的是,这种新的位置表征方法并非仅限于改进BERT,而是可以推广且应用到所有利用Transformer结构进行预训练语言模型的工作中。
可以预见的是,作为第一篇研究Transformer输入片段多层次位置表征的论文,其位置表征问题会逐步成为预训练语言模型与Transformer结构的未来研究方向。