论文
源码
目前的中文预训练模型忽略了汉字特有的两个重要方面:字形和拼音,它们为语言理解提供了重要的句法和语义信息。
文章提出了ChineseBERT,它将汉字的字形和拼音信息结合到预训练语言模型中。
在大规模未标注中文语料库上进行了预训练,该模型以较少的训练步骤获得了比基准模型显著的性能提升。该模型在广泛的中文自然语言处理任务上取得了新的SOTA性能,包括机器阅读理解、自然语言推理、文本分类、句子对匹配以及命名实体识别和分词方面的竞争性性能。
大规模的预训练模型已经成为各种自然语言处理任务的基础,如自然语言理解、文本分类和问答。除了英文的自然语言处理任务外,预训练模型也证明了它们在各种中文自然语言处理任务中的有效性。
由于预训练模式最初是为英文设计的,目前大规模的预训练缺少两个针对中文的重要方面:基于字形的信息和基于拼音的信息。对于前者来说,中文区别于英文、德语等语言的一个关键因素是中文是一种标志语言。汉字的徽标对语义信息进行了编码。例如,“液(liquid)”, “河(river)” and “湖(lake)”都有部首“氵(水)”,这表明它们在语义上都与水有关。直观地说,汉字字形背后的丰富语义应该会增强中文自然语言处理模型的表现力。这一想法推动了学习汉字字形信息并将其融入神经模型的各种工作,但尚未进行大规模的预训练。
对于后者,拼音(代表其发音的汉字的罗马化序列)在对上下文或字形嵌入无法捕获的语义和语法信息进行建模时是至关重要的。考虑到中文中非常普遍的异义词现象,这方面尤其重要。在中文中,同一个字有多个发音,每个发音都有特定的含义。每个发音都与特定的拼音表达相关联。例如,在语义层面上,汉字“乐”有两个截然不同的发音:“乐”可以读成“yuù”,意思是“音乐”;“lè”,意思是“快乐”。在句法层面上,发音有助于识别字符的词性。例如,“还”字有“huán”和“hái”两种读音,前者意为动词“还”,后者意为副词“也”。同一字符的不同发音不能通过字形嵌入来区分,因为徽标相同,或者字符ID嵌入,因为它们都指向相同的字符ID,但是可以用拼音来表征。
本文提出了一种将汉字的字形和拼音信息融合到大规模预训练模型–ChineseBERT。字形嵌入基于汉字的不同字体,能够从视觉表面字形中捕捉字符语义。拼音嵌入模拟了具有相同字形的不同语义,从而绕过了在单个字后面交织语素的限制。对于汉字,将字形嵌入、拼音嵌入和字符嵌入组合在一起形成融合嵌入,该融合嵌入对汉字的独特语义属性进行建模。
随着更少的训练数据和更少的训练周期,ChineseBERT在广泛的中文NLP任务中实现了比基线显著的性能提升。该算法在机器阅读理解、自然语言推理、文本分类、句子对匹配等中文自然语言处理任务上取得了与SOTA相当的性能,在命名实体识别和分词方面取得了与SOTA相当的性能。
近年来,NLP在大规模预训练方面做了大量工作。BERT建立在Transformer体系结构之上,以掩蔽语言模型(MLM)和下一句预测(NSP)的方式在大规模未标注文本语料库上进行预训练。顺应这一趋势,通过修改掩蔽策略、预训练任务或模型骨干,已经取得了相当大的进展。具体地说,Roberta建议取消NSP预训练任务,因为事实证明它对改善下游性能没有任何好处。GPT系列和其他BERT变体将大规模无监督预训练的范式适应于机器翻译、文本摘要和对话生成等文本生成任务,使生成模型能够享受大规模预训练的好处。
与英文不同,中文在句法、词汇和语音方面都有其独特的特点。因此,中文模式的预训练应与中国特色相适应。Li等人。建议以汉字为基本单位,而不是英文中使用的单词或子词。ERNIE采用了三种掩蔽策略–字符级掩蔽、短语级掩蔽和实体级掩蔽,以增强捕获多粒度语义的能力。Cui等人。使用全词掩蔽策略的预训练模型,其中中文单词内的所有字符都被完全掩蔽。通过这种方式,该模型正在学习解决一项更具挑战性的任务,而不是预测单词成分。最近,Zhang等人提出了迄今为止最大的中文预训练语言模型-CPM。它在100 GB中文数据上进行了预训练,其2.6B参数可与“GPT3 2.7B”相媲美。Xu等人发布了首个大规模汉语理解评估基准线索,促进了中文大规模预训练模型的研究。
随着深层神经网络的普及,从表层汉字字形中学习字形信息越来越受到人们的关注。受单词嵌入的启发,Sun等人;Shih等人;Li等人;Yen 等人使用索引部首嵌入来捕获字符语义,提高了模型在广泛的中文NLP任务上的性能。另一种融合字形信息的方式是以图像的形式查看字符,通过图像建模可以自然地学习字形信息。然而,学习视觉特征的早期工作并不顺利。
Liu等人;Shao等人;Zhang和LeCun;Dai 和Cai使用CNN从字符图像中提取字形特征,但并没有在所有任务上取得一致的性能提升。Su和Lee;Tao等人在单词类比和单词相似任务上取得了积极的结果,但在更多的任务上没有进一步评估学习到的字形嵌入。Meng等人将字形嵌入应用于大量中文任务,他们设计了一种特殊的CNN结构来提取字符特征,并将图像分类作为辅助目标来规则化有限数量的图像的影响。Song 和 Sehanobish;Xuan 等人推广了Meng等人的观点,对于命名实体识别(NER)任务,显著提高了与Vanilla Bert模型的性能。
Figure1显示了提出的ChineseBERT模型的概述。对于每个汉字,先将汉字的字符嵌入、字形嵌入和拼音嵌入串联起来,然后通过全连通层映射到D维嵌入,形成融合嵌入。然后将融合嵌入与位置嵌入一起添加,位置嵌入作为输入输入到BERT模型。由于我们不使用NSP预训练任务,所以省略了分段嵌入。我们同时使用全字掩蔽(WWM)和字符掩蔽(CM)进行预训练。
模型的输入是可学习的绝对位置嵌入和融合嵌入的相加,其中融合嵌入是基于相应汉字的字符嵌入、字形嵌入和拼音嵌入。字符嵌入的执行方式类似于BERT中使用的token嵌入,但以字符粒度执行。下面我们分别描述如何生成字形嵌入、拼音嵌入和融合嵌入。
输出是每个输入汉字对应的上下文表示。
从CommonCrawl收集了预训练的数据。经过预处理(如删除含有过多英文文本的数据和过滤html标记器),大约10%的高质量数据被保留用于预训练,总共包含4B个汉字。我们使用LTP工具包来识别汉语单词的边界,以进行全词掩蔽。
本文使用两种掩蔽策略——全词掩蔽(WWM)和字符掩蔽(CM)。Li等人提出,使用汉字作为基本输入单位可以缓解汉语词汇表外的问题。因此,我们采用在给定上下文中随机掩蔽字符的方法,用字符掩蔽表示。另一方面,汉语中的大量单词由多个字符组成,对于这些字符,CM策略对于模型来说可能太容易预测。例如,对于输入上下文“我喜欢逛紫禁[M] (i like going to The Forbidden [M])”,该模型可以很容易地预测掩蔽字符是“城(City)”。因此,延用Cui等人使用WWM,一种掩蔽选定单词中所有字符的策略,缓解了CM策略容易预测的缺点。请注意,对于WWM和CM,基本输入单位都是汉字。WWM和CM之间的主要区别在于它们如何掩蔽角色以及模型如何预测掩蔽角色。
与Cui等人基于官方的中文预训练BERT对其模型进行预训练不同,我们从头开始训练中文BERT模型。为了加强模型学习长期和短期依赖性,在压缩输入和单输入之间交替进行预训练,其中压缩输入是多个句子的串联,最大长度为512,单输入是一个句子。我们以0.9的概率提供压缩输入,以0.1的概率提供单个输入。我们在90%的时间内使用全词屏蔽,在10%的时间内使用字符屏蔽。每个单词/字符的掩蔽概率为15%。如果选择了第i个单词/字符,在80%的时间内屏蔽它,在10%的时间内用随机单词/字符替换它,并在10%的时间内保持它。还使用动态掩蔽策略来避免重复的训练实例。我们使用两个模型设置:base和large,分别由12/24个transformer层组成,每个层的输入维度分别为768/1024和12/16个头。这使得我们的模型在模型大小方面与其他风格的BERT模型具有可比性。提交论文后,我们训练了最大学习率为1e-4、预热20K步、批量为3.2k的基础模型500K步,以及最大学习率为3e-4、预热90K步、批量为8k的大型模型280K步。预训练后,该模型可直接用于下游任务的微调,方法与BERT相同。
对各种中文NLP任务进行了广泛的实验。模型在特定于任务的数据集上分别进行微调,以进行评估。具体而言使用以下任务:
将ChineseBERT和当前最先进的ERNIE、BERT-wwm和MacBERT模型进行比较。ERNIE采用各种掩蔽策略,包括标记级、短语级和实体级掩蔽,对大规模异构数据进行预训练。BERT-wwm/RoBERTa-wwm继续在官方预训练的中文BERT/RoBERTa模型的基础上进行预训练,采用全词掩蔽预训练策略。除非另有规定,否则使用BERT/RoBERTa表示BERT-wwm/RoBERTa-wwm,并省略“wwm”。MacBERT 通过使用 MLM-As-Correlation (MAC) 预训练策略以及句子顺序预测 (SOP) 任务改进了 RoBERTa。值得注意的是,BERT 和 BERT-wwm 没有在线提供的大版本,因此我们省略了相应的性能。
Table1比较ERNIE、BERT-wwm、MacBERT和本文提出的ChineseBERT之间的数据统计。T:标记,P:短语,E:实体,WWM:全词掩蔽,N:N-gram,CM:字符掩蔽,MLM:掩蔽语言模型,NSP:下一句预测,MAC:MLM作为相关性。SOP:句子顺序预测。
这些模型的比较如Table 1 所示。值得注意的是,所提出模型的训练步骤明显小于基线模型。与使用预训练 BERT 初始化的 BERT-wwm 和 MacBERT 不同,所提出的模型是从头开始初始化的。由于对字形和拼音的额外考虑,由于模型结构不同,所提出的不能直接使用普通 BERT 模型进行初始化。即使从头开始初始化,所提出的模型的训练步骤也比 BERT 初始化后重新训练 BERT-wwm 和 MacBERT 的步骤少。
机器阅读理解测试模型根据给定的上下文回答问题的能力。使用两个数据集来完成此任务:CMRC 2018和CJRC。CMRC是一个SPAN提取风格的数据集,而CJRC另外还有是/否问题和非回答问题。CMRC 2018和CJRC分别包含10K/3.2K/4.9K和39K/6K/6K数据实例,用于训练/开发/测试。CMRC 2018年的测试结果是根据CLUE排行榜评估的。注意,CJRC数据集与Cui等人使用的数据集不同,正如Cui等人所说的那样,没有发布他们的训练/开发/测试拆分。因此,在本工作中使用的CJRC数据集上运行已发布的模型以进行比较。
结果如Table 2和Table 3所示。可以看出,ChineseBERT在这两个数据集上都有显著的性能提升,并且EM算法在CJRC数据集上的改善大于F1算法,这表明ChineseBERT在检测精确答案跨度方面有更好的表现。
NLI 的目标是确定假设和前提之间的蕴涵关系。使用跨语言自然语言推理( XNLI) 数据集 进行评估。该语料库是 MultiNLI 语料库的 5K 测试和 2.5K 开发对的众包集合。每个句子对都标有“entailment”、“neutral”或“contradiction”标签。我们使用官方机器翻译的中文数据进行训练。
结果如Table 4 所示,这表明 ChineseBERT 能够在base和large中实现最佳性能。
在文本分类中,模型需要将一段文本分类到指定的类别中。延用Cui等人使用THUCNews和ChnSentiCorp执行此任务,THUCNews是THUCTC 的一个子集,分别有50K/5K/10K数据点用于训练/开发/测试。数据均匀分布在体育、金融等10个领域。ChnSentiCorp是一个二值情感分类数据集,分别包含9.6K/1.2K/1.2K数据点,用于训练/开发/测试。这两个数据集相对简单,普通BERT达到了95%以上的准确率。因此,除了THUCNews和ChnSentiCorp,我们还使用了TNEWS,这是CLUE基准中包含的一个更难的数据集。TNEWS是一个15类短新闻文本分类数据集,具有53K/10K/10K数据点用于训练/开发/测试。
结果如Table 5 所示。 在 ChunSentiCorp 和 THUCNews 上,ChineseBERT 的改进是微不足道的,因为基线已经在这两个数据集上取得了相当高的结果。在 TNEWS 数据集上,ChineseBERT 优于所有其他模型。我们可以看到 ERNIE 模型的性能只比 ChineseBERT 差一点。这是因为 ERNIE 是在额外的网络数据上训练的,这有利于对涵盖广泛领域的网络新闻文本进行建模。
对于SPM,要求模型确定给定的句子对是否表达相同的语义。我们使用 LCQMC 和 BQ Corpus 数据集进行评估。 LCQMC是用于判断两个给定问题是否具有相同意图的大型中文问题匹配语料库,训练/开发/测试有23.9K/8.8K/12.5K句对。 BQ 语料库是另一个包含 100K/10K/10K 句子对的大型中文数据集,用于训练/开发/测试。
结果如Table 6 所示。我们可以看到,ChineseBERT 在 LCQMC 上总体上优于 MacBERT,但略逊于 BERT-wwm。我们假设这是因为 BQ 语料库的领域比 ChineseBERT 更适合 BERTwwm 的预训练数据。
对于 NER 任务,模型被要求识别一段文本中的命名实体,这被形式化为序列标记任务。我们使用 OntoNotes 4.0 和微博 NER 来完成这项任务。 OntoNotes 有 18 种命名实体类型,微博有 4 种命名实体类型。 OntoNotes 和微博分别包含 15K/4K/4K 和 1,350/270/270 个用于训练/开发/测试的实例。
结果如Table 7 所示。我们可以看到,ChineseBERT 在 F1 方面明显优于 BERT 和 RoBERTa。尽管基本版本的精度略有下降,但召回率的提高特别高,从而导致 F1 的最终性能提升。
该任务将文本划分为单词,并被形式化为基于字符的序列标注任务。我们使用北京大学和MSRA数据集进行中文分词。北大有19K/2K句用于训练和测试,MSRA有87K/4K句用于训练和测试。输出字符嵌入被送到Softmax函数以进行最终预测。
结果如Table 8所示,其中我们可以看到,ChineseBERT在这两个指标的两个数据集上的性能都优于BERT-wwm和Roberta-wwm。
在这一部分中进行消融研究,以了解ChineseBERT的行为。使用中文命名实体识别数据集OntoNotes4.0进行分析,所有模型都是基于base版本的。
想要探索字形嵌入和拼音嵌入的效果。为了公平比较,在相同的数据集上预先训练了不同的模型,训练步骤相同,模型大小相同。设置包括“-glyph”,其中不考虑字形嵌入,并且我们只考虑拼音和char-ID嵌入;“-pinyin”,其中不考虑拼音嵌入,并且我们只考虑字形和char-ID嵌入;“-glyph-pinyin”,其中只考虑char-ID嵌入,并且模型退化为Roberta。我们在NER数据集的OntoNotes数据集上对不同的模型进行了微调,以便进行比较。
结果如Table 9所示。可以看出,删除字形嵌入或拼音嵌入都会导致性能下降,其中移除两者对F1值的负面影响最大,下降了约2个点。这验证了拼音和字形嵌入对于中文语义建模的重要性。“-glyph-pinyin”比Roberta性能差的原因是,在这里使用的模型是在较小的数据大小和较少的训练步骤上训练的。
我们假设字形和拼音嵌入在文本语义上也具有很强的正则性,这意味着所提出的ChineseBERT模型能够在较少的训练数据下获得更好的性能。同时保持样本与实体 w.r.t. 的比例。每个实验执行五次,并在测试集上报告平均F1值。
Figure 5显示了结果。可以看出,ChineseBERT在所有设置中都表现得更好。在训练数据不足30%的情况下,ChineseBERT的性能改善不大,但在训练数据超过30%的情况下,性能的提高更大。这是因为ChineseBERT仍然需要足够的训练数据来完全训练字形和拼音嵌入,而训练数据不足会导致训练不足。
本文介绍了一种大规模的中文NLP预训练模型ChineseBERT。
未来的工作包括训练一个large版本的ChineseBERT。