《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》

Zijun Sun, Xiaoya Li, Xiaofei Sun, Yuxian Meng, Xiang Ao, Qing He, Fei Wu and Jiwei Li

ACL 2021

https://github.com/ShannonAI/Ch

参考内容:https://zhuanlan.zhihu.com/p/386010496

官方给出的解释超级详细↑,本篇主要属于自己的记录,加深个印象,求轻吐槽!!!∑(゚Д゚ノ)ノ

摘要

问题:最近的中文预训练模型都忽视了中文的两个重要方面:字形、拼音,这两方面都含有对语言理解非常重要的句法和语义信息。

本文:ChineseBERT

  • 融合中文字符的拼音、字形信息加入预训练过程。
  • 字形嵌入:基于中文字符的不同字体,从可视的表面字符形式中捕捉字符语义,便于能够捕捉视觉特征
  • 拼音嵌入:表征了汉字的读音,对共享相同字符形式的不同语义进行建模,从而绕过了单个字符后面的互连语素的限制,处理了汉语中高度普遍的异音(多音字)现象。

在大规模未标记的中文语料库上进行预处理后,性能有所提升。

在很多中文中文自然语言处理任务上,达到了SOTA水平。

结论

大规模预处理的中文自然语言处理模型

利用汉字的字形和拼音信息,来增强模型从表面字符形式中捕捉上下文语义消除汉语多音字歧义的能力。

在广泛的中文自然语言处理任务中取得了显著的性能提升

训练数据较少的情况下比普通的预训练模型表现更好

未来工作

训练一个规模更大的ChineseBERT

介绍

大规模预训练模型,已经成为各种自然语言处理任务的基础。除了英语自然语言处理任务外,对汉语也很有效。但由于预训练模型是为英语设计的,所以缺少了汉语方面的两个重要特征,字形和拼音。

汉字是一种意音文字(偏旁部首氵),故字形会带有语义。有团队研究过,将字形融入到神经模型中,但没有大规模的预训练( (Sun et al., 2014; Shi et al., 2015; Liu et al., 2017; Dai and Cai,  2017; Su and Lee, 2017; Meng et al., 2019))。

拼音在建模语义和语法信息方面至关重要,这些信息不能通过上下文或字形嵌入来获取。多音字会有不同含义,如“乐”,拼音有助于识别字符的词性。字形嵌入和字符标识嵌入都指向同一个字符标识,不包含发音信息。

模型

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第1张图片

概述

对于每个汉字字符,字嵌入(Char Embedding)、字形嵌入(Glyph Embedding)和拼音嵌入(Pinyin Embedding)首先进行串联,然后通过全连接层映射为一个D维嵌入,从而得到融合嵌入(Fusion Embedding)。

融合嵌入与位置嵌入相加,形成BERT模型的输入。

因为这里没有使用NSP预训练任务,所以省略了segment embedding。

在预训练阶段使用了全词掩码(Whole Word Masking, WWM)和字符掩码(Char Masking, CM)

输入

模型的输入是可学习的绝对位置嵌入和融合嵌入的相加,其中融合嵌入基于对应字符的字符嵌入、字形嵌入和拼音嵌入。

字符嵌入的方式类似于BERT中使用的token embedding,但是是在字符粒度上。

字形嵌入

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第2张图片

根据 Meng et al. (2019) 使用三种中文字体,将仿宋、行楷和隶书这三种字体的图像向量化,每个图像都是24*24的大小。

与Meng et al. (2019)不同的点:Meng使用的是CNNs将图片转化为字符的表示,而这里使用的是全连接层W_G

首先将24×24×3的向量转化为2,352的向量,然后输入至全连接层来获取字符向量。

拼音嵌入

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第3张图片

首先使用pypinyin将每个汉字的拼音转化为罗马化字的字符序列,其中也包含了音调。

pypinyin是一个结合机器学习模型基于字典的规则来推断给定上下文中字符的拼音的系统。

比如对汉字“猫”,其拼音字符序列就是“mao1”。对于多音字如“乐”,pypinyin能够非常准确地识别当前上下文中正确的拼音,因此ChineseBERT直接使用pypinyin给出的结果。

在拼音序列上应用宽度为2CNN模型,然后使用最大池化来导出最终的拼音嵌入

这使得输出维度不受输入拼音序列长度的影响。输入拼音序列的长度固定为8,当拼音序列的实际长度未达到8时,剩余的槽用特殊字母“-”填充。

融合嵌入

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第4张图片

将汉字的字符嵌入、字形嵌入与拼音嵌入拼接在一起,形成一个3D维向量,然后通过融合层(全连接层W_F),映射为一个D维向量,就得到了该汉字对应的融合嵌入。

输出

每个汉字的相应上下文表示。

预训练

数据

预训练数据来自CommonCrawl,在经过数据清洗后(移除带有很多英语的文本、过滤html标签等),用于预训练ChineseBERT的数据规模为约4B个汉字(大约有10%的高质量数据被保留下来)。

使用LTP toolkit识别词的边界。

掩码策略

ChineseBERT综合使用两种掩码策略:全词掩码(Whole Word Masking, WWM)与字掩码(Char Masking, CM)

字掩码: Li et al. (2019b)建议使用汉字作为基本输入单位可以缓解汉语中的词汇之外问题,因此采用在给定上下文中屏蔽随机字符的方法。

全词掩码:中文中的大量单词由多个字符组成,对于这些字符,CM策略可能太容易被模型预测故做全词掩码,减轻了CM策略容易预测的缺点。

“我喜欢紫禁城”在掩码词“紫禁城”之后就是“我喜欢[M][M][M]”,而非“我喜欢[M]”。

预训练细节

因与原始BERT在输入层结构不同,故从头开始训练。

为了习得短期上下文与长期上下文,ChineseBERT在Packed Input与Single Input之间交替训练,前者是将模型的输入扩展到最大长度512,后者则将单个句子作为输入。Packed Input作为输入的概率为0.9,Single Input作为输入的概率是0.1。

无论是Packed Input还是Single Input,都在90%的时间使用WWM,在10%的时间使用CM。除此之外,ChineseBERT还使用了动态掩码策略,避免重复的预训练语料。

每个词/字符的屏蔽概率为15%。

如果选择了第i个单词/字符,80%[mask],10%的时间用随机单词/字符替换它,10%保持原样。

ChineseBERT有base和large两个版本,分别有12/24Transformer层,输入向量维度分别是768/1024,每层head数量为12/16。使得我们模型在模型尺寸方面与其他BERT风格的模型相当。

Base模型:

  • 500K steps
  • 最大学习率1e-4
  • 20K steps的warmup
  • batch size : 3.2k

Large模型:

  • 280K steps
  • 最大学习率3e-4
  • 90K steps的warmup
  • batch size :8k

经过预处理后,该模型可以直接用于以与BERT相同的方式对下游任务进行微调。

实验

使用的任务

  • 机器阅读理解 Machine Reading Comprehension (MRC)
  • 自然语言推理 Natural Language Inference (NLI)
  • 文本分类 Text Classification (TC)
  • 句子对匹配  Sentence Pair Matching (SPM)
  • 命名实体识别 Named Entity Recognition (NER)
  • 中文分词 Chinese Word Segmentation (CWS)

比较的模型

ERNIE:采用多种掩码策略,包括token级、短语级和实体级,用大规模异构数据进行BERT预处理。

BERT-wwm / RoBERTa-wwm:在官方预训练的中文BERT/RoBERTa模型的基础上,继续使用全字屏蔽预训练策略进行预训练。 后文省略wwm

MacBERT:使用MLM-As-Correlation (MAC) 预训练策略和句子顺序预测( sentence-order prediction (SOP) task),对RoBERTa进行了改进。

BERT和BERTwwm没提供大版本,因此省略了相应的性能。

所提出模型的训练步骤明显小于基线模型

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第5张图片

机器阅读理解  Machine Reading Comprehension(MRC)

基于给定上下文回答问题的能力。

CMRC 2018 (Cui et al., 2019b) and CJRC (Duan et al., 2019) .

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第6张图片《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第7张图片

自然语言推理 Natural Language Inference (NLI)

确定假设和前提之间的蕴涵关系。

Cross-lingual Natural Language Inference (XNLI) dataset (Conneau et al., 2018) 

 《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第8张图片

文本分类 Text Classification (TC)

模型需要将一段文本分类到指定的类别中。

THUC- News (Li and Sun, 2007) and ChnSentiCorp

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第9张图片

句子对匹配 Sentence Pair Matching (SPM)

模型被要求确定给定的句子对是否表达相同的语义。

the LCQMC (Liu et al., 2018) and BQ Corpus (Chen et al., 2018) datasets 

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第10张图片

命名实体识别 Named Entity Recognition (NER)

该模型被要求识别一段文本中的命名实体,这被形式化为序列标记任务。

OntoNotes 4.0 (Weischedel et al., 2011) and Weibo

 《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第11张图片

中文分词 Chinese Word Segmentation

将文本分成单词,并被形式化为基于字符的序列标记任务。

PKU and MSRA datasets

 《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第12张图片

Ablation Studies

使用中文命名实体识别数据集OntoNotes4.0对base版本模型进行分析

字形嵌入和拼音嵌入的效果

在相同的数据集上预处理了不同的模型,具有相同的训练步骤数和相同的模型大小。

- (移除某一组件)

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第13张图片

无论是去除字形嵌入还是拼音嵌入都会导致性能下降,而去除两者对F1值的负面影响最大,大约下降了2个点。

训练数据大小的影响

随机抽样10%∞90%的训练数据,同时保持有实体的样本比例。

执行每个实验五次,并在测试集上报告平均F1值。

在训练数据不到30%的情况下,ChineseBERT的提升是轻微的,超过百分之三十后,刑恩能够提升更高。因为汉语拼音仍然需要足够的训练数据来完全训练字形和拼音嵌入,训练数据不足会导致训练不足。

《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录_第14张图片

 

相关工作

自然语言处理中的大规模与训练

  • BERT (Devlin et al., 2018):建立在Transformer(V aswani et al., 2017)架构之上,以MLM和NSP的方式,对大规模未标记文本语料进行预训练。根据这一趋势,通过改变掩码策略、预训练任务和模型结构,很多任务取得了非常大的进展。
  • RoBERTa (Liu et al., 2019b):因为已验证NSP任务对提升下游性能没有太大帮助,所以移除了NSP预训练任务。
  • GTP系列(Radford et al., 2019; Brown et al., 2020) 和其它BERT变种 (Lewis et al., 2019; Song et al., 2019; Lample and Conneau, 2019; Dong et al., 2019; Bao et al., 2020; Zhu et al., 2020) 将大规模无监督预训练的模式,应用于机器翻译、文本摘要和对话生成等文本生成任务,使生成模型能够享受到大规模预训练的好处。 (应用

与英语不同,汉语在句法、词汇和发音方面有其独特的特点。所以预训练模型应当与汉语特征相对应。

  • Li et al. (2019b) 提出使用汉字特征作为基础单元,而非英语中的词或子词 (Wu et al., 2016; Sen-
  • nrich et al., 2016)
  • ERNIE (Sun et al., 2019, 2020)应用三种不同类型的掩码方式:字符级、短语级、实体级,增强捕多粒度语义的能力。
  • Cui et al. (2019a, 2020)的预训练模型使用全词掩码策略,一个中文单词中的所有字符都完全掩码,提高模型能力。
  • Zhang et al. (2020) 开发了迄今为止最大的中文预训练语言模型——CPM。它是在100GB的汉语数据上预处理的,有2.6B的参数,与“GPT3 2.7B”(Brown et al., 2020)相当。
  •  Xu et al. (2020)发布了第一个大规模的汉语理解评估基准CLUE,促进了大规模汉语预处理的研究。

学习字形信息

  • 词嵌入: (Mikolov et al., 2013b,a), Sun et al. (2014); Shi et al. (2015); Li et al. (2015); Yin et al. (2016)使用索引部首嵌入捕捉字符语义,提高了模型在大范围中文自然语言处理任务中的性能。
  • 将字形以图像形式融入:通过图像建模来学习,但初期不太顺利。
    •  Liu et al. (2017); Shao et al. (2017); Zhang and LeCun (2017); Dai and Cai (2017) 使用CNNs从字符图片中提取字形特征,但是并没有在所有任务上实现一致的性能提升。
    •  Su and Lee (2017); Tao et al. (2019) 在词汇类比和词汇相似性任务上获得了非常好的结果,是他们没有在更多的任务中进一步评估所学习的字形嵌入。
    •  Meng et al. (2019)将字形嵌入应用于广泛的中文任务。字符特征提取设计了特定的CNN结构,并使用图像分类作为辅助目标来调节有限数量图像的影响。
    •  Song and Sehanobish (2020); Xuan et al. (2020)将Meng et al. (2019)的思想扩展到命名实体识别任务(NER),显著提高了相对于普通BERT模型的性能。

你可能感兴趣的:(论文阅读)