ZEN: Pre-training Chinese Text Encoder Enhanced by N-gram Representations
【原文:Shizhe Diao , Jiaxin Bai , Yan Song , Tong Zhang, Yonggang Wang -- The Hong Kong University of Science and Technology -- In EMNLP 2020,pages 4729–4740 November 16 - 20, 2020】
1.背景
预训练模型(如GPT,BERT)在NLP中引起了广泛的关注,因为这种模型使得许多NLP任务获得SOTA。这些预训练模型带来的好处是显而易见:它可以通过大规模的未标记语料库来训练它的深度神经网络, 大数据的使用为这些预训练模型带来了成功,基于预训练模型的各类NLP模型相比于以前的方法能带来巨大的性能提升。预训练模型都是基于大规模的未标注数据,但是这些模型是否完整利用了语料的所有信息,这是未被证实的。类似于BERT的这些预训练模型使用的是文本的最小单位——词。但是中文的最小单位并不是词,中文的语义和N-gram有很大的关系。于是,本文提出ZEN:基于BERT的N-gram增强中文文本编码器,方便模型识别出可能的字的组合。
图1 ZEN示意图引自原文图)
2.ZEN
图1显示了ZEN的总体架构,其中骨干模型(字符编码器)是BERT,由多层编码器表示的n-gram信息增强。由于BERT的基础在以前的研究中得到了很好的解释,在本文中重点分析ZEN的细节,解释如何处理n-gram并将其合并到字符编码器中。
ZEN是在BERT模型的基础上引入N-gram Encoder增强中文的语言表征。
(1)N-gram提取
N-gram的提取分为两步,第一步是根据现有语料基于频率生成N-gram词表Lexicon;第二步是根据此表生成训练数据的N-gram Matching Matrix,如图2所示。
图2 N-gram提取示意图引自原文图)
N-gram Matching Matrix:对于每一条输入的训练数据,长度为kc,共匹配到了kn个N-gram,然后创一个N-gram Matching Matrix 形状为kc*kn的 M
(2)N-gram编码
本文利用了一个6层的Transformer结构作为N-gram Encoder,来对输入的N-gram提取特征进行编码。N-gram的嵌入向量经过N-gram Encoder,得到Ngram的表示。有了N-gram的表示之后,ZEN将字(Character)的表示与每个字对应的N-gram向量表示结合起来,在输出端相加,并一起被输入至后续结构之中。其结构如图1右边部分所示。
(3) 结合N-gram和字符编码的预训练
如图1所示,输入的带N-gram标记的句子首先会经过嵌入层 (Embedding Layer)。在这一层里,每个输入的单字和N-gram会被替换成嵌入矩阵中对应位置的向量。与此同时,每个向量会被加上一个Positional Encoding,用来表示其在句子之中出现的位置。之后,字的嵌入向量会被输入Character Encoder,进行计算并得到每个字在这一层的向量表达。与此同时,N-gram的嵌入向量会被输入N-gram Encoder。在6层的N-gram Encoder和与之对应的Character Encoder中,Character表示与每个字对应的N-Gram向量表示相加,然后输入到后续的Character Encoder中。
3.实验与分析
(1)常规中文数据集,如图3所示。其中R表示模型参数随机加载,P表示模型参数根据谷歌的Bert模型初始化,B表示用的是Bert Base,L表示Bert Large。可以看出ZEN在多个模型上取得了当前比较好的效果。
图3 ZEN的总体性能及其与现有模型在七项NLP任务上的比较情况引自原文图)
(2)小规模中文数据集,如图4所示。当前的预训练模型大都是在大型数据集上进行实验,对于部分领域大规模数据集很难收集,于是文章抽取了1/10大小的维基语料进行预训练,模型参数采取随机初始化。可以看出ZEN在小规模数据集上的效果要稍稍优于Bert。应该是因为N-gram对embedding进行了增强,这表示ZEN在小规模数据集的场景要优于Bert。
图4 BERT和ZEN利用小语料训练, 在七项NLP任务上的表现引自原文图)
(3)N-gram热力图分析,如图5所示。论文对encoder的N-gram也进行了热力图分析,如下图所示,是两句话在1~6层中每个N-gram的weight。
①可以看出,“有意义”的N-gram所占的权重比“无意义”的N-gram权重要高,例如“提高”和“波士顿”比“会提高”和“士顿”的权重要高。对于有划分歧义的句子,n-gram encoder可以正确的关注到“速度”而不是“高速”。
这表明ZEN会在N-gram中注重语义,选择比较合适的词组。
②同时我们发现较长的词组在比较高的层中获得权重比较大(如“提高速度”和“波士顿咨询”),这也表示这些比较长的词组对模型理解语句有比较重要的影响。
这表明,结合n-gram的方法的预训练,不仅仅提供给文本编码器更强大的文本表征能力,甚至还间接产生了一种文本分析的有效方法。这个案例分析暗示我们,或许将来可以用类似地方法提供无指导的文本抽取和挖掘
图5 N-gram热力图案例分析(引自原文图)
4.结论
ZEN对高概率成词的N-gram添加了独有的编码和向量表示,此模型可以提供更强的文本的编码能力和理解能力。在多个中文自然语言任务之上都有比基于单字的语言模型有更好的表现效果。与之前的中文预训练模型相比,ZEN的优势在于提出的改进策略简单有效并且收敛速度快,同时在有限语料的基础上可以达到更大规模语料的训练效果。相比于大多数已有研究对预训练策略的改进,ZEN是为数不多的对预训练模型架构进行了改进的工作。
撰稿:蔡坤钊
审稿:丁美荣