Computer Science and Application 计算机科学与应用, 2020, 10(6), 1075-1086 Published Online June 2020 in Hans. http://www.hanspub.org/journal/csa https://doi.org/10.12677/csa.2020.106112
Subword-Level Chinese Text Classification Method Based on BERT
Sirui Li
School of Computer Science, Chengdu University of Information Technology, Chengdu Sichuan
Received: May 15, 2020; accepted: May 28, 2020; published: Jun. 4, 2020
ththth
Abstract
With the development of the times, the number of text in the network is growing rapidly. In order to extract and process the text efficiently, it is necessary to classify the text. Based on the BERT model, this paper proposes a Chinese text classification method at the seed word level. In this me-thod, the subword-level masking method is used to improve the original masking language model, so that it can effectively mask the complete Chinese words, and increase the word vector expres-sion ability of BERT model for Chinese text. At the same time, Chinese word position embedding is added to make up for the lack of Chinese word position information in BERT model. The experi-mental results show that the BERT model of this text classification method has the best classifica-tion effect compared with other models in multiple Chinese data sets.
Keywords
BERT Model, Subword Level, Text Classification, Masked Language Model
基于BERT的子词级中文文本分类方法
李思锐
成都信息工程大学,计算机学院,四川 成都
收稿日期:2020年5月15日;录用日期:2020年5月28日;发布日期:2020年6月4日
摘 要
随着时代的发展,网络中文本数量飞速增长,为了高效地提取和处理,对文本进行分类必不可少。该文以BERT模型为基础,提出了一种子词级的中文文本分类方法。在该方法中,使用子词级遮蔽方法改进
文章引用: 李思锐. 基于BERT的子词级中文文本分类方法[J]. 计算机科学与应用, 2020, 10(6): 1075-1086. DOI: 10.12677/csa.2020.106112
李思锐
原有遮蔽语言模型,使其能有效遮蔽完整中文单词,增加了BERT模型对中文文本的词向量表达能力。同时新加入了中文单词位置嵌入,弥补了BERT模型对中文单词位置信息的缺失。实验结果表明,使用了该文文本分类方法的BERT模型,在多个中文数据集中对比其他模型均拥有最好的分类效果。
关键词
BERT模型,子词级,文本分类,遮蔽语言模型
Copyright ? 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0). http://creativecommons.org/licenses/by/4.0/
Open Access 1. 引言
文本分类是自然语言处理领域的核心问题之一,也是大数据时代高效获取和处理数据的基础,使用范围非常广泛。近几年来,随着计算能力的提升,以及2006年Hinton [1]等人提出了深度学习的概念以来,文本分类迎来了新一轮的技术进步。在图形计算单元(gpu)以及并行计算技术的支持下,研究者可以更轻易地训练拥有更深、更多参数的模型,深度学习开始被广泛应用于文本分类研究与应用中,如Yoonkim [2]首次将卷积神经网络(CNN)应用在文本分类任务上,Liu等人[3]提出的基于循环神经网络(RNN)的文本分类方法,Joulin等人[4]提出的Fasttest模型,以及Szegedy等人[5]提出的Inception结构,都在文本分类任务中取得了优秀的成果。
但是随着互联网技术的发展,传统深度学习分类模型在面对文本类型越来越丰富的网络文本时,都存在着泛化性较差的问题,比如将处理新闻分类任务的模型用来处理商品评论分类或其他差别较大的其他文本时,分类准确率就会大幅降低,需要调整模型参数并再次训练。
针对这个问题,2018年华盛顿大学提出了预训练模型ELMO [6] [7],使用多层双向长短时记忆网络(multi-layer bilstm)对语句建模,并通过下一个词预测训练任务构建通用词向量表达。这种通过预训练的语言模型,能直接使用得到的词向量处理自然语言处理任务,不仅拥有很强的特征提取和学习能力,同时能极大提高文本处理的泛化性。实验表明ELMO模型在6个自然语言处理任务上取得了领先成绩,将结果平均提高了两个百分点。但不久之后,Radford等人[8]提出了预训练模型OpenAI GPT,使用Transformer [9]模型中的解码器(Decoder)来代替Elmo中的双向长短时记忆网络,在同样使用下一个词预测的训练任务的情况下,在12个自然语言处理任务中刷新了其中9个任务的最好成绩。
但Elmo与GPT都受限于下一词预测的单向限制问题[10],导致模型无法准确预测部分词语[11]。针对这个问题谷歌实验室提出了预训练模型BERT [12],使用全新预测任务遮蔽语言模型[13] [14] (MLM masked language model)来解决单向限制的问题。同时使用不同的Transformer编码器(Encoder)部分,使模型的参数量比GPT少4倍左右。通过大量实验,BERT模型再次刷新了11个自然语言处理任务上的最好成绩,是目前预训练方法中最优秀的模型。自此之后许多研究者开始着手于BERT模型的研究,如Liu等人[15]将预训练的BERT模型和多任务学习进行结合,以求获取更好的效果。Sun等人[16]通过修改模型的输入处理,将单句分类问题改造成BERT更擅长的双句分类问题进行处理。Sun等[17]着重研究了BERT在多个文本分类任务上的表现,详细分析了BERT的特点与优势。
然而,本文发现BERT模型在处理中文文本时,由于遮蔽语言模型只会遮蔽并预测单个的中文字符,而不是完整的中文单词,且输入模型的向量中,缺少中文单词位置信息的原因,导致模型构建的中文词
DOI: 10.12677/csa.2020.106112
1076
计算机科学与应用
李思锐
向量表示差,分类准确率不如英语等其他语言。为了解决BERT处理中文时存在的不足,本文提出了一种基于BERT的子词级中文文本分类方法。在遮蔽语言模型中,通过子词级的文本表达,和独特的子词级遮蔽方法,实现了对完整中文单词的遮蔽。同时修改了BERT模型的输入处理,加入中文单词位置嵌入,弥补了中文单词位置的缺失。实验证明,相较于原始BERT模型,本文提出的方法在面对中文时,拥有更好的词向量表达能力与分类准确率。
2. BERT相关理论
BERT模型的全称是基于预训练的深度双向Transformer语言模型(Bidirectional Encoder Representa-tions from Transformers),作为一种预训练模型,不同于卷积神经网络与循环神经网络,该模型使用Transformer模型的编码器部分作为模型的基础。得益于Transformer编码器的强大能力,BERT模型可以增加到非常深的深度,充分发掘深度神经网络模型的特性,提升模型准确率。
2.1. BERT模型的输入处理
BERT在设计之初就是为了构建出一个通用的语言模型,所以BERT在输入处理上充分考虑了各式各样任务的需求。BERT模型除了与Transformer一样在词向量嵌入(Token Embedding)的基础上添加位置嵌入(Position Embedding)之外,为了处理一些涉及句子对(Sentence Pair)的问题,还添加了句子位置嵌入(Segment Embedding)。如图1所示:
Figure 1. BERT model input processing 图1. BERT模型输入处理
由图1可知,每一个文本序列的首位添加了一个特殊标记[cls],不同句子之间也添加了一个特殊标记[sep]。[cls]标记是最终输出时整个句子或句子对的特征表征,[sep]标记是句子之间的界线。
2.2. 遮蔽语言模型
遮蔽语言模型是BERT模型中使用的全新预测任务。与传统预测任务的词预测不同,该预测任务通过完全遮蔽的输入文本中的部分单词,使得预测被遮蔽单词时能充分考虑上下文信息,以一种更符合人类语言习惯的过程来学习表达词向量。在遮蔽语言模型中,为了获得更好的训练效果,会进行以下两步操作:
第一步为遮蔽区域的选择,在BERT中模型会随机选择15%的单词作为遮蔽区域。保证训练的有效性。 第二步为遮蔽方式的选择,在BERT中,为了解决遮蔽语言模型在完全遮蔽单词后,被遮蔽的单词将无法被下游任务感知,从而导致模型预处理阶段与微调阶段文本不统一的问题,在训练过程中对遮蔽
DOI: 10.12677/csa.2020.106112
1077
计算机科学与应用
李思锐
词会选择以下三种遮蔽方式:
a) 遮蔽词在训练中80%的时间会被特殊记号[mask]代替。如图2所示:
Figure 2. Mask of BERT model 图2. BERT模型的遮蔽
b) 而在训练中10%的时间会被词典中的一个随机词代替。如图3所示:
Figure 3. The replacement of BERT model 图3. BERT模型的替换
c) 在剩下的10%的时间里遮蔽词会保持不变。如图4所示:
Figure 4. Invariance of BERT model 图4. BERT模型的不变
2.3. BERT模型的分类任务
BERT模型不同于卷积或循环等传统分类模型,该模型会在分类之前,先在大语料环境进行预训练。通过预训练后的BERT模型虽然可以直接用来分类,但是往往准确率较差,需要在特定任务的数据集上进行进一步的预训练,在该阶段,模型会在原先预训练的基础上使用目标数据再次进行如遮蔽语言模型或下一句预测任务,使自身的参数适用于目标数据,这相当于将模型从一般领域到目标领域进行了一次迁移学习。最后通过对两次预训练后的模型进行分类效果的精加工(Fine-tuning),也就是微调训练后输出分类结果。BERT模型分类流程如图5所示:
Figure 5. BERT model training process
图5. BERT模型训练流程
DOI: 10.12677/csa.2020.106112
1078
计算机科学与应用
李思锐
得益于预训练阶段后优秀的词向量表达与模型参数,模型能轻易地捕捉语句的深层抽象特征,所以模型微调阶段大多只是在训练输出层的参数和略微调整预训练模型而已,这保证了微调阶段的收敛速度和分类准确率。
3. 基于BERT模型的子词级文本分类方法
3.1. 中文子词级文本表示
本文使用的子词级粒度的文本表示最早应用于英文文本翻译任务中。通过词切片[18] (Word Piece)的方法将英文单词再次切分,如“The highest mountain”这句话进行子词级表示后,结果如图6所示。虽然子词级的粒度小于词级,但是仍大于字符级,这就保证了子词级不会像字符级一样丢失文本语义信息,同时也解决了词级所需词汇库过大的问题。
Figure 6. English subword level representation 图6. 英文子词级表示
而在中文使用子词级时,与英文的操作不同。在对文本进行分词处理后,会先区分单词中的词首和非词首字符,对所有非词首字符添加“##”号,并生成一行标记序列seg_labels,使用0来标记所有没添加“##”号的字符,使用1来标记添加了“##”号的字符,使用?1来标记其余标点符号与占位符等。该标记序列不仅区分了单词的界线,同时也标明了不需要处理的标点符号等,其具体操作如图7所示:
Figure 7. BERT model subword level text representation 图7. BERT模型子词级文本表示
DOI: 10.12677/csa.2020.106112
1079
计算机科学与应用
基于BERT的子词级中文文本分类方法



