输入“/”快速插入内容

ChineseBERT:中文预训练增强通过字形和拼音信息

摘要
代码块
最近预训练的模型关于中文的忽视了两个重要因素:字形和拼音。它们在语言理解上携带了重要的语法和语义信息。在本文的工作中,我们提出了ChineseBERT,结合汉字的字形和拼音信息。
- 字形嵌入是基于不同字体,能够从视觉特征捕获字符语义
- 拼音嵌入字符对汉字的发音进行了处理,处理了汉语中常见的同字异义现象(不同发音代表不同含义)
在大规模未标记的中文语料库上进行预训练,所提出的ChineseBERT模型有显著的性能提升,能以更少的训练步骤提高baseline,在一系列中文NLP任务上产生了新的SOTA性能,包括:机器阅读理解、自然语言推断、文本分类、句对匹配、实体识别上的竞赛表现、分词等
1 - 介绍
代码块
大规模预训练模型已经成为各种自然语言处理任务的支柱,例如自然语言理解、文本分类和问答,除了英语NLP任务,预训练模型也证明了它们对各种中文NLP任务的有效性
最初的预训练模型被设计是用于英语的,两个重要方面的因素对于中文缺失大规模预训练:字形和拼音信息。对于字形来说,一个关键因素使得中文不同于其他语言(例如:英文、德文),中国是语标语言,字符编码的语标信息的语标,例如,“液(liquid)”、"河(river)"和“湖(lake)”都有"氵(water)",表示它们都是语义上和水相关。直觉上,汉字字形背后的丰富语义应该增强中文NLP的表达能力,这个想法就哦了各种各样学习和融入中国字形到神经模型中,但还没有大规模预训练
对于拼音来说,一个中文汉字的音标表示其发音,对于语义建模是至关重要的,无法通过上下文或字形嵌入捕获其语法信息,这主要涉及到了汉语中常见的同字异义现象,同一个字有多种读音,每种读音下都与特定的含义相关联。在语义层面上,例如,汉字“乐”有两个明显的不同发音:“乐”可以发音"yue",意思是music;也可以发音"le",意思是happy。同一字符的不同发音不能通过字形嵌入来区分,因为标识是相同的,指向相同的char-ID,但是可以用拼音来表征
在这份工作中,我们提出了ChineseBERT,一个模型包含汉字的字形和拼音信息,进入大规模预训练的过程。字形嵌入是基于一个汉字的不同字体,能够从视觉表面捕获字符语义,拼音嵌入模型是具有相同字符形式却有不同语义,从而绕过了限制单个字符的交织语素。对于一个汉字,字形嵌入、拼音嵌入和字符嵌入结合起来形成一个融合嵌入,这个模型有独特的语义属性
所提出的ChineseBERT模型有显著的性能提升,能以更少的训练步骤提高baseline,在一系列中文NLP任务上产生了新的SOTA性能,包括:机器阅读理解、自然语言推断、文本分类、句对匹配、实体识别上的竞赛表现、分词等
2 - 相关工作
大规模预训练在NLP上
代码块
近年来,已开展很多大规模预训练在NLP上,BERT建立于Transformer结构上,以Masked Language Model(MLM)和Next Sentenct Prediction(NSP)方式在大规模未标记文本语料库上预训练,顺应这一趋势,通过修改Mask策略取得了很大进展,预训练任务或模型主干,具体来说,RoBERTa提出移除NSP预训练任务,它被证明没有任何好处对于改善下游性能,GPT系列和其他BERT变体,调整了范式对机器翻译、文本摘要和对话生成等文本生成任务进行大规模无监督预训练,从而使生成模型可以享受大规模预训练的好处
不同于英语,汉字有其独特特征在语法、词汇和发音上。因此,预训练中文模型应该与中国特色相对应。李等人建议使用中文字符作为基本单位,而不是英语中使用的单词或子词。ERNIE应用了三种类型的屏蔽策略:字符级屏蔽、短语级屏蔽和实体级屏蔽去增强捕获多粒度语义的能力。崔等人使用Whole Word Masking策略去预训练模型,一个汉字的所有字符均被屏蔽了,用了这个方法,该模型正在学习解决更具挑战性的任务而不是预测单词组件。最近,张等人开发了迄今为止最大的中文预训练语言模型 date-CPM,它在100GB中文数据和2.6B参数上进行预训练,可媲美“GPT3 2.7B”。徐等人发布了首个大规模汉语理解评估基准CLUE,主助力大规模汉语预训练研究
学习字形信息
代码块
学习字形信息从表面的汉字字符格式获得自从深度神经网络的普及,灵感来源于词嵌入,阴等人使用索引 radical嵌入去捕获字符语义,提高了模型在各种中文NLP任务上的性能。另一种相关字形信息是以图像的方式查看字符,通过字形信息可以自然地通过图像建模。然而,早期在学习视觉特征上不是很流畅,戴等人用CNN从字符图像中提取字形特征,但没有实现所有任务性能的提升。陶等人在此类比和词相似性任务上获得了积极的结果,但它们没有进一步评估学习字形嵌入任务。孟等人讲字形嵌入应用于广泛的中文任务,它们设计了一个特定的CNN结构为字符特征提取和使用图像分类作为辅助目标来规范有限数量图像的影响。宣等显著提高了针对BERT模型的表现
图1:ChineseBERT概述。fusion层组合三个D维嵌入(字符嵌入、字形嵌入、拼音嵌入),首先连接三个嵌入,然后通过一个fusion嵌入形式的全连接层映射到D维嵌入,
字形嵌入(Glyph Embedding):我们遵循孟等人使用的三种中文字体——仿宋、行楷、隶书,每一种都被实例化为一个24 * 24的图像,像素范围从0-255,不同于孟等人使用了CNNs去转换图像,我们用了FC层。我们首先将24 * 24 *3向量转化为2352向量,将扁平化向量输送给FC层以获得输出字形向量
拼音嵌入(Pinyin Embedding):用于解耦同一字符形式的不能语义,如图3所示,我们使用开源的pypinyin包为其组成特征生成拼音序列,pypinyin是一个系统,结合机器学习模型与基于字典规则从上下文来推断字符拼音。我们使用特色标记来标识音调,它们被加到字符序列的结尾,我们在拼音序列上应用宽度为2的CNN模型,然后进行最大池化以得出拼音嵌入。这使得输出维度不受输入拼音序列长度的影响。输入拼音序列的长度固定为8,剩余槽位用特殊字母“-”填满
融合嵌入(Fusion Embedding):当我们有了字符嵌入、字形嵌入和拼音嵌入,我们可以连接它们形成一个3D维度向量,Fusion将3D维向量通过一个全连接层映射到D维,fusion嵌入增加了位置嵌入,输出到BERT层,插图显示在图4
3 - 模型
图2:字形嵌入的概述。N表示向量连接,对于每个汉字,我们使用三种字体:仿宋、行楷、隶书,每一个都是24 * 24的图像,像素值范围是0~255,图像被连接成24 * 24 * 3的张量,张量被平铺后传递给FC以获得字形嵌入
图3:拼音嵌入的概述。对于任何汉字,例如猫,在这个情况下,将宽度维2的CNN应用于罗马拼音字母,后给max-pooling去推导最终的拼音嵌入