基于预训练语言模型的BERT-CNN多层级专利分类研究
2021-12-27陆晓蕾
陆晓蕾,倪 斌
(1. 厦门大学 外文学院,福建 厦门 361005;2. 中国科学院计算技术研究所 厦门数据智能研究院,福建 厦门 361005)
0 引言
近年来,工业界和学术界产生了大量专利申请。据世界知识产权保护组织(WIPO)的指导性报告显示: 2017年,全球所有专利局共受理的专利申请超过三百万个,并且这项数据每年还在快速增长。出于检索和管理需要,专利文献需按照专业技术领域进行分类与赋码。1971年《斯特拉斯堡协定》提出的国际专利分类法(IPC)是国际上通用的专利文献分类法,几乎覆盖了所有科技领域,超过90个国家使用该标准。该分类标准提供了一种由独立于语言的符号构成的树形体系,按所属技术领域对发明专利和实用新型专利进行分类。IPC分类包含“部(section)—类(class)—亚类(subclass)—组(group)”四个层级,其中“组”级共含有74 503种类别(WIPO,2019)。传统的人工分类受限于专利员自身的知识与经验,难以做到快速和精确。随着专利申请数量的剧增,IPC分类法的多层级、多标签等特点给专利审查人员带来了巨大的工作量。同时,快速的全球化竞争以及完善的知识产权保护体系对文献分类技术提出了更高的要求。随着深度学习和文本分类的快速发展,越来越多的研究开始聚焦于专利文献的自动分类。目前,面向自然语言处理的专利分类研究多集中于英文专利申请,然而,我国的专利申请数量占全球的43.6%[1],构建一个相对精确的中文专利分类器的需求也日益凸显。本文试图利用基于卷积神经网络、循环神经网络和BERT预训练模型等深度学习手段建立中文专利文献分类器,提出了BERT-CNN模型,并探索多层级文本分类方法,为快速准确的专利文本分类提供参考。
1 相关研究
以往的研究中,大量的专利文献自动分类研究主要集中于朴素贝叶斯[2]、支持向量机[3]和K-近邻算法[4]等统计方法。Fall等[5]对这些算法进行了比较评估,阶段性地总结了这三种分类器的效果,提出了支持向量机是当时最好的分类器。D’Hondt等[6]从多元短语组等统计语言学的角度对专利文档进行分析,在一定程度上提高了专利分类的准确性。姜春涛[7]建立基于图结构的文本分类器,对四个不同技术领域的专利进行分类。然而,以上方法大都需要人工特征工程,建模过程费时费力,准确性也存在瓶颈。随着神经网络模型在自然语言处理上的广泛应用,尤其是以词向量为代表的文本表征技术的进步[8],文本分类的效果得到了显著提升。Grawe等[9]利用专利文献训练Word2Vec词向量模型,在此基础上仅叠加一层LSTM作为分类器,获得了较好的分类效果。类似的,Shalaby等[10]基于LSTM训练固定层次结构向量(Fixed Hierarchy Vectors)对文档表示进行了增强学习,极大地提升了分类的准确性。可见,在专利文档分类的研究中,词或文档表示的效果好坏是构建一个快速且稳定的分类器的关键。
传统的词向量,如Word2Vec[8]和GloVe[11],主要通过建立语言模型[12]获得,在表达多义词方面存在较大缺陷。为此,Peters等[13]提出的Elmo模型利用双向长短时记忆网络(Bi-LSTM)生成词的上下文表示,在获得预先训练的词向量之后根据实际数据的上下文进行向量表达的动态调整。Alec等[14]提出基于Transformer的生成式预训练词向量模型(Generative Pre-Training,GPT),在多项NLP任务中获得了当时的最高分数。Devlin等[15]吸收了Elmo和GPT模型的优势,提出了基于Transformer的双向编码器模型(BERT),凭借其优秀的表达词句能力,在GLUE排行榜上,刷新了多达11项NLP任务的记录。BERT预训练模型可以根据具体下游任务进行参数微调。在此基础上,通过简单的接口处理其他自然语言处理任务,如文本分类。目前,BERT已广泛应用于如命名实体识别[16]、阅读理解问答[17]等各项自然语言处理任务中,自然语言处理自此进入了预训练模型的大规模应用新阶段。虽然BERT提供了下游任务的简单接口,可以直接进行文本分类。然而,BERT作为预训练语言模型,关于其作为文档向量的研究和应用尚不多见。fastText[18-19]通过将整篇文档的词及N-gram向量叠加平均得到文档向量,然后使用文档向量直接做softmax多分类,在处理简单文本分类中获得了较好的效果。但是这种利用词向量(word embedding)表达文本的方式无法区分多义词。而BERT在预训练的基础上,根据具体语句进行参数微调,在某种程度上缓解了这一问题。因此,本文提出了BERT-CNN模型,尝试将BERT作为编码器,将专利摘要映射成文档向量,在其上叠加更加复杂的卷积神经网络。
2 研究方法
2.1 BERT-CNN模型结构
本文基于BERT预训练语言模型,提取其顶部四层Transformer的输出作为专利摘要的文档向量,与卷积神经网络进行联合训练。
2.1.1 BERT层
BERT的英文全称是Bidirectional Encoder Representations from Transformers,采用双向Transformer编码器[20],利用多头注意力机制融合了上下文信息。同时,与早期通过训练语言模型的目标任务——“预测下一个词”[12]不同的是,BERT设置了两种目标任务,分别获取单词与句子级别的表义方式: ①遮盖语言模型; ②上下句关系预测。其中,遮盖语言模型类似“完形填空”,即随机遮盖15%的句子,让编码器预测这些词;上下句关系预测通过预测两个随机句子能否组成上下句来学习句子间的关系。通过这样训练出来的模型,BERT具有很强的句词表达能力,无论是在字词级别的NLP任务,如命名实体识别,还是在如问答类的句子级别的NLP任务中,都具有卓越的表现。在BERT的顶层,可以直接叠加简单的线性模型,结合具体的任务(specific-task)做参数微调(fine-tune)来完成其他NLP任务,如文本分类。
BERT模型由多层双向Transformer构成,每个Transformer利用多头注意力机制(Multi-Head Attention)建立词与词之间的联系强弱(权重)。本文选取BERT-Base作为预训练模型。BERT-Base拥有12个Transformer层,本文中的BERT-CNN采用BERT后四层的输出作为下游CNN模型的输入,如图1所示。
图1 BERT-CNN模型结构图
2.1.2 Conv2D层
卷积神经网络(CNN)在大部分情况下用于图像识别,但是在自然语言处理中也获得了很好的效果[21]。BERT中每一层Transformer的输出都可以作为句向量(维度为768的向量),本文取其最后四层L12、L11、L10、L9作为CNN的输入矩阵I(768×4)。然后用32个滤波器F(3×4),步长为1,扫描输入矩阵I,目的是提取文本3-Gram特征,通过I⊗F内积获得32个特征向量。为了降低计算的复杂度,CNN通常使用池化计算降低矩阵的维度。池化计算有最大池化(Max-Pooling)与平均池化(Average-Pooling)两种方式,一般采用最大池化,即在池化窗口中选取最大的元素。由于专利文本分类对于局部的某些关键词或术语比较敏感,本文选取最大池化方式。经过最大池化层后拼接并通过Softmax层获得专利分类的概率分布。在网络训练过程中,滤波器的参数是不共享的,并且与网络间的连接参数同时更新。
2.2 多层文本分类架构
多层文本分类是大规模文本信息组织的关键技术,其主要特点在于多层文本分类需要考虑的类别巨大,类别之间往往存在各种依赖关系, 并构成一个复杂的层次化的类别体系。在实际工作中构建一个多层文本分类器尤其困难,一方面众多类别需要大量的标注样本,费时费力;另一方面,由于分类的多样性与多层性,实践中很难保证样本在各个层级与类别的均衡分布。
国际上针对此类问题也举办了专门的大规模文本多层级分类评测,如LSHTC[22]。目前处理该类问题一般有两种策略: 全局策略和局部策略。
全局策略在处理多层级任务时没有区分层级,使用单一的分类器,完全忽略类别间的层次结构,这在处理类别有限并且样本分布均衡的任务时简单有效。但是随着层级、类别的增加,数据分布的不均衡,其鲁棒性变低。在诸如图书分类或者专利分类等多层级任务中,类别数量庞大(如IPC中“组”的分类数高达74 503种),样本分布不均,算法的准确率急剧下降。此外,全局策略分类方法将所有类别独立看待,在某种程度上忽视了类别之间的联系。例如,在IPC分类中,“A21C3/00”与“A21C7/00”在专业领域上很接近,而与“D21C7/00”相去甚远。然而,这种方法将三者看成独立的类别,没有任何联系,这显然是不恰当的。
局部策略利用分治的思想,构建一系列分类器,每个分类器只处理局部的类别。分类时,从分类体系的根节点出发,自顶向下确定样本的分类。有研究结果表明,局部的策略优于全局策略[23]。同时,局部的层次分类策略适用于规模较大、类别与数据分布不均匀的体系[24]。
针对专利分类的多层级问题,本文采用局部策略,为每一个非叶节点构建分类器,提出了一种堆叠式的神经网络组合训练系统(图2)。系统分为两层: L1层和L2层,其中,L1为一级分类层,L2为二级分类层。模型首先获取所有训练样本输入,经过不同的分类器后训练一级分类L1。随后,在中间设置数据传递层。该层的作用是根据L1层分类结果筛选L2层模型。具体做法如下: 在训练时,根据样本的L1层的标签值Ym获取所有一级分类为Ym的样本作为L2层的训练样本。例如,若L1层输出为‘Y2’, 则L2层将只获取所有一级分类为‘Y2’的数据进行训练;在预测时,根据L1层预测结果,进入相应的L2层节点进行进一步分类。
图2 本文的多层级分类网络架构
3 实验与结果
3.1 数据集
本文的数据集采用国家信息中心提供的全国专利申请数据(1)国家信息中心, “发明专利数据”, 2017, http://dx.doi.org/10.18170/DVN/ASRTHL, 北京大学开放研究数据平台, V2。数据总量达到277万条记录。时间跨度为2017年全年(按照专利申请时间统计),地域覆盖全国,数据主要包含16个核心字段: 申请号、申请日、公开号、公开日、专利名称、专利分类、摘要、申请(专利权)人、发明人、申请人地址、申请人邮编、所在省代码、所在市代码、所在县代码、法律状态、有效性。数据格式为CSV,编码格式为GBK。本实验提取“摘要”和“专利分类”两个字段进行分类模型训练。专列分类采用IPC分类法,该分类法将专利分为“部(section)—类(class)—亚类(subclass)—组(group)”四个层级,如“A01D42/04”,“A”是部,“01”是类,“D”是亚类,“42/04”是组。为简单起见,本文仅选取前两层进行分类,即部和类。
经过剔除无效数据(分类号为非严格的IPC分类)等预处理操作后,原始数据剩余约231.77万条(数据结构见图3)。该数据集包含了IPC的所有部(字母A至H)和类(130个)。其中,平均每个类约含有1.78万条文本。详细的文本与分类统计见表1。
图3 预处理后的专利数据集
表1 专利数据集文本与类别相关统计
通过分析发现该数据集存在如下问题: ①各部中含有类的数目和文本数不均。其中,B部的类别最多,达到38个类;H部类别最少,只有6个类。其次,各部和各类文本数量分布不均衡。②部间存在相似性问题。例如,“F: 照明”“G: 物理”和“H: 电学”三者存在较强的相似性,人工也难以准确区分。数据的稀疏性与类别的相似性都会对模型的准确性造成较大影响。在不进行数据增强的情况下,全局策略和局部策略的表现会存在一定差异。
3.2 实验配置
本文实验代码基于Python 3.7.3,深度学习框架主要利用TensorFlow r1.13,Linux服务器处理器为Intel i7的12核处理器,GPU显卡为4张Nvidia 2080Ti,运行内存为64GB。
本实验选取卷积神经网络和循环神经网络作为对照基线模型。在基线模型中,我们使用300维Word2Vec中文词向量[25]。文本最大长度L设为200个词,网络训练的批处理(batch size)大小为20,Epoch为20,学习率η为2e-5。BERT-CNN模型使用中文BERT_Basic模型(Chinese_L-12_H-768_A-12),学习率为2e-5,batch_size为24,最大文本长度L为200,Epoch为20,优化器为Adam[26]。BERT-CNN中的CNN滤波器个数为32,激活函数为ReLU。
本文按9:1将数据集划分为训练集与测试集。基线模型的数据经过了分词预处理后利用第三方训练的词向量。BERT-CNN/RNN/Transformer模型不需要分词。
3.3 结果分析与讨论
3.3.1 评估指标
本文模型使用正确率作为评估指标,最终联合模型的正确率Acc(X)通过式(1)计算:
其中,Acc(L1)代表第一层L1模型的预测正确率,m代表第一层分类(部)的数量,M代表所有样本的数量,Nj表示部j含有的二级分类(类)的样本数。Acc(L2m)表示第二层(类)模型的正确率。
3.3.2 实验结果
表2是我们的实验结果,Acc(局部)和Acc(全局)分别为通过局部策略与全局策略得到的模型准确率。可以看出,在该数据集上,基于局部策略的模型性能远高于直接分类的全局策略。统计6个模型的平均准确率,可以发现前者(78.58%)比后者(69.37%)高9.21%。在各个模型上,前者的准确率均高于后者。Acc(L1)表示模型预测“部”的准确性,Acc(L2)表示预测单独各“类”的准确性。
表2 基于预训练模型的BERT-CNN与基线方法的实验结果 (单位: %)
实验基线系统选取常用的卷积神经网络与循环神经网络分类器。在该数据集上,以BERT为基础的模型表现普遍不错。其中,BERT-CNN模型的分类效果最好,在单独层的分类中的准确率基本都超过了90%,总体分类准确率达到了84.3%,与CNN、RNN相比提升了14%左右。这种大幅度的提升进一步证实了基于预训练模型的BERT-CNN在文本分类方面强大的性能。另外,可以看出CNN和RNN在该数据集上分类性能相仿,在数据量大和类别较多的情况下还会存在准确率下降的问题。例如,基线方法在处理部级分类时比类级分类的准确率低4%,显示出在大数据量上的性能下降,同时两种基线方法在类别较多的B类上的准确率衰减比BERT-CNN严重。实验结果进一步表明,本文模型在处理大数据量和多类别上的鲁棒性。
同时,对比以BERT为基础的模型可以发现,在其上叠加其他模型都获得了比单纯的BERT更高的准确率。在该数据集上,模型的准确率BERT-CNN>BERT-RNN>BERT-Transformer > BERT。由于BERT是由Transformer组成的,因此,在其上叠加Transformer的效果较为一般,准确率提升不超过1%。
3.3.3 其他数据集
为了进一步证实BERT-CNN/RNN/Transformer等模型的效果,本文选取清华大学自然语言处理实验室开源的新闻文本分类数据集THUCNews[27]进行平行对照实验。该数据集根据新浪新闻RSS订阅频道2005—2011年间的历史数据筛选过滤生成,包含了74万篇新闻文档,主要包括财经、彩票、房产、股票等14个类别。通过本文模型进行实验,结果如表3所示。
表3 BERT等模型在THUCNews数据集上的准确率
从表3可以看出,在THUCNews数据集上,在BERT上叠加其他模型(BERT-RNN、BERT-CNN、BERT-Transformer等)在准确率上超过了Word2Vec+RNN/CNN,进一步证实了BERT在文本表示上超过了传统的Word2Vec。BERT-Transformer与BERT在性能上较为接近。同时,我们也发现,与专利数据结果不同,BERT-RNN在该数据集的表现超过了BERT-CNN。因此,在BERT作为基础模型时,如何筛选上层模型需要针对不同的任务与场景进行具体分析。
3.3.4 讨论
上述的结果已经表明,局部策略自顶向下构建多个分类器,比较适用于专利分类这种大规模、多层级文本分类的场景,在准确率上优于简单的全局策略。当然,全局策略由于具有只需设计单一的模型的优点,在处理分类体系均衡的多层分类问题时在模型训练上更加高效。但是,这种高效需要在数据端进行更多的处理,必须对不平衡的数据分布进行增广与扩展,甚至引入外部数据[28]。
另外,使用基于预训练模型的BERT-CNN在提高专利分类准确性方面具有较好的效果。BERT所提供的文档向量具有良好的字词与语义表征能力,其基于预训练的微调可以有效解决传统词向量一词多义的问题,这是模型获取高准确率的关键。
BERT在底层使用双向Transformer,通过多头注意力机制可以获取字词之间的联系。因此,对注意力的可视化研究可以直观地了解BERT模型的注意力机制,帮助解释模型。图4利用Vig等[29]开源的注意力可视化工具BERTviz进行模型可视化分析。该工具能用于探索预训练的BERT模型各个层以及头部的注意力模式。
图4 BERT模型的注意力机制可视化
以本文的专利分类为例,输入以下两个句子:
句子A: 本实用新型公开了一种固体绝缘开关柜结构。
句子B: 它包括隔离开关单元、接地装置和隔离插座装置。
图4(a)-图4(c)和图4(d)-图4(f)分别是BERT第2层与第11层的注意力机制的可视化,将注意力可视化为被更新位置(左)和被关注位置(右)之间的连线。线段的灰度代表不同的“注意力头”,线段宽度反映注意力值的大小。BERT使用[CLS]进行分类任务的第一个输入,[SEP]是句子的分隔。图4(a)显示,在第2层中,注意力主要体现词汇关系: 句中的每个字的注意力主要集中在其下一个字,如“实”的注意力集中在“用”。图4(b)、图4(c)显示,句间的注意力主要集中在相似的词,如“开”“关”之间的强烈注意力联系。图4(d)-图4(f)显示,在第11层中,注意力主要体现在语义关系上,如句子A中的“固体绝缘开关柜结构”与句子B中的“隔离开关单元”“接地装置”和“隔离插座装置”具有较强的注意力强度。
基于以上发现,我们认为BERT中的每一层Transformer的输出都可以作为句子或文档向量为其他模型提供输入。具体选取Transformer的哪些层作为文档向量在某种程度上也会影响模型的准确率。针对此问题,本文对数据集中的D部进行了平行对照实验,结果如图5所示。从图5可以看出,模型的准确率在Transformer层数N=4时达到最大。当N<4时,Transformer的输出作为文档向量的代表性还不太强,准确率略有下降;当N>4时,文档向量中表征词汇语法关系的成分增大,对分类结果意义不大,反而造成干扰,导致准确率下降。因此,本文认为利用BERT预训练提供的向量与其他模型融合时,应该根据具体的任务特点进行合理选择。
图5 不同Transformer层数作为输入的分类准确率直方图
4 结语
文档分类是文献管理与信息处理中的重点和难点,尤其是在专利文献这种多层级的分类领域中,传统的统计方法准确率较低,且建模过程费时费力。本文选取国家信息中心公布的2017年全国专利申请数据,以专利的自动分类作为研究目标,在预训练模型BERT的基础上抽取文档向量,提出了BERT-CNN分层级深度网络分类模型。本文提出的方法在该专利数据集上获得了84.3%的准确率,大幅度领先过去的卷积神经网络与循环神经网络分类法。实验结果表明,基于预训练语言模型的BERT-CNN、BERT-RNN、BERT-Transformer提取的向量表示,在应用上效果优于传统的词向量。同时,在处理数据量和类别较多的任务上,该模型具备稳定性强的特点。进一步实验表明,Transformer层数的选取对模型的准确率有一定的影响,应该根据具体的任务特点选择合适的输出层。本文对比了多层级文本分类中的全局策略与局部策略的差异,在数据和类别分布不均的场景下,局部多层分类模型系统的性能明显高于简单的全局策略分类模型。
本文的局限性在于未将模型扩展到更深层级的分类中。后续研究中,将扩展模型层级到“组”,以应用于实际的专利自动分类中;同时,探索更多的预训练模型来进一步丰富专利文献分类领域的研究。