大数据文摘授权转载自夕小瑶的卖萌屋
作者:python
近几年来,整词遮掩(whole word masking, wwm)作为一种(几乎)不增加计算量,却能大大提升模型表现的方法,被广泛地运用在预训练语言模型中,以促进粗粒度语义的整体建模[1]。
然而,这种方法真的是通用的么? 论文作者认为,中文里词是一个组合单元,而非英文中的独立单元。因此,对中文的整词遮掩预训练并非天然有效的。论文作者在中文语法改错任务上做了实验。结果表明,在字级别纠错任务上,wwm效果反而不如逐字遮掩效果好。而在整体任务效果上,将逐字遮掩与整词遮掩结合表现更佳。该论文为复旦自然语言处理组与腾讯AI lab的工作,发表于ACL 2022 findings.
论文题目:
"Is Whole Word Masking Always Better for Chinese BERT?": Probing on Chinese Grammatical Error Correction论文链接:
(ACL Findings 2022) https://arxiv.org/abs/2203.00286v2背景
掩码语言模型与整词遮掩
掩码语言模型是预训练模型中的一个常用的自监督任务。通过遮掩部分输入内容,让模型预测还原的方式,增强模型的语言建模能力。
而整词遮掩方法,利用中文分词的结果,在掩码预测时以词为单位进行遮掩,可以提高对粗粒度语义的建模能力。如下图所示,original masking只遮掩的“模”,模型可以很容易地利用输入的“型”来预测被遮掩的内容,从而减低语言模型建模难度。而WWM(whole word masking)将“模型”两字均遮掩掉,可以促进模型整体建模这个词汇,促进长距离依赖的建模。
语法改错任务
论文在中文语法改错任务上展开了任务探索。具体而言,可以分为替换和插入两个任务。如下图所示。替换任务中,给定句子和需要替换的语段,模型生成替换内容以构成通顺语句;插入任务中,给定句子,插入点与插入长度,模型生成插入内容以形成通顺的语句。
实验结果
实验结果如下图所示。其中,Ours的三个模型是该论文作者自己从头预训练的三个模型,用以公平比较。-clm仅使用字级别掩码预测,-wwm使用整词掩码预测,-clm-wwm同时使用两种掩码预测方式。
从中可以看出,在长度为1时,即对单字进行补充或替换,clm具有明显的优势。而随着需要替换的长度增加,wwm的优势更为明显。整体而言,看average的结果,clm和wwm同时使用可以取得更好的表现。
而在下游任务上的实验表明,同时使用clm与wwm,在几种预训练设置下,都能在下游任务上取得和wwm相当的表现。
总结
整体而言,这篇文章其实比较tricky。选择语法改错中按字插入、替换这种任务,字级别语言建模任务自然可以取得更好的表现。因为字级别遮掩能够促进模型建模词内的依赖关系。
这种因地制宜,因材炼丹的思想是有价值的。在做具体任务的时候,必然要考虑具体任务的特点。不会有一种方法简单有效又能通吃所有任务的。
当然,因地制宜选择预训练任务肯定是最合适的,但如果拿不准的话,wwm+clm可能是一种更稳妥的选择。
类似的思想,还有一些字词多粒度预训练语言模型,如AMBERT[2],LatticeBERT[3]等,通过在预训练输入中将字词同时考虑进去,以提升下游任务表现。