一种基于bert和残差自注意力机制的政务文件主题分类方法
技术领域
1.本发明属于人工智能技术领域,涉及主题分类,特别涉及一种基于bert和残差自注意力机制的政务文件主题分类方法。
背景技术:
2.随着网络时代的来临,各地区各部门围绕创新监管方式、优化政务服务,相继推出了自己的政务数据公开平台,并以主题分类的方式进行数据管理,政府数据资源的共享与开放逐步成为国家大数据发展的十大关键工程之一。
3.但政务服务平台建设管理分散,数据共享不畅、更新缓慢,业务协同不足等问题较为普遍,究其原因为传统的文件主题分类使用文本规则匹配和人工作业相结合的方法,效率低、资源损耗高,且由于政务数据多源异构的特点,传统方法缺乏自适应能力,往往效果不佳。具体而言,政务数据涉及人民群众生活的方方面面,主题标签数量多、部分主题间相关性强,标签无法通过单一特征进行确定;文件特征中多包含噪声干扰,清洗工作和嵌入表示困难;文件特征的重要性不一致,传统机器学习模型难以学习特征的重要性分布,难以实现全局特征信息的融合,而复杂深度学习模型极易过拟合,缺乏自适应能力。
技术实现要素:
4.为了克服上述现有技术的缺点,本发明的目的在于提供一种基于bert和残差自注意力机制的政务文件主题分类方法,基于各地区公开的政务文件数据及其主题标签体系进行主题分类,实现政务数据归档的智能化与高效化。
5.为了实现上述目的,本发明采用的技术方案是:
6.一种基于bert和残差自注意力机制的政务文件主题分类方法,包括如下步骤:
7.步骤1,政务文件原始特征抽取和选择;
8.所述特征选择是使用多层感知机模型对抽取得到的各特征与主题标签的相关性分别进行测试,确定各特征与主题标签的相关性强弱,并根据测试结果,选择模型预测准确率高于设定值(如30%)的原始特征文本;
9.步骤2,政务文件原始特征清洗和优化;
10.所述特征优化是对原始特征清洗后得到的低噪声特征文本,提取文件名称和文件表头的关键词;
11.步骤3,文本预训练;
12.基于优化后得到的特征文本,使用bert预训练模型进行特征向量的嵌入;
13.步骤4,基于残差自注意力机制的主题标签分类;
14.基于特征向量,构建残差自注意力模型进行主题分类模型的训练、调优、保存及测试,得到最终的文件主题分类模型,并利用该模型对政务文件进行主题分类。
15.在一个实施例中,所述原始特征抽取是对不同编码和格式的政务文件,进行统一编码后,按文件格式读取文件名称、文件标题以及文件横行纵列表头特征,并使用文件名称
代替异常值或空值特征。
16.在一个实施例中,所述特征选择基于多层感知机模型实现。
17.在一个实施例中,所述原始特征清洗是对文件名称、文件标题和文件表头中的无效信息进行清洗,包括清洗与主题无关的政务文件用语、地理位置和机构名称,并对常见非中文翻译为中文,清洗非中文字符。
18.在一个实施例中,所述特征优化是在特征清洗的基础上,清洗停用词,然后使用tf-iwf提取文件名称关键词,使用词频统计策略提取文件表头关键词。
19.在一个实施例中,所述词频统计策略是分别提取文件横行纵列表头中的关键表头名称,降低生僻表头名称的噪声影响,并将关键表头名称拼接成横行纵列表头句。
20.在一个实施例中,所述使用bert预训练模型进行特征向量的嵌入,包括以下步骤:
21.(1)自定义加载中英文开源bert预训练模型,自定义选择tokenizer规则及训练速率;
22.(2)自定义选择句首无明显语义信息的[cls]空位符向量作为文本句向量输出,或选取encoder端最后一层编码层有效字符的特征向量平均值作为文本句向量输出。
[0023]
在一个实施例中,所述构建残差自注意力模型进行主题分类模型的训练、调优、保存及测试,包括以下步骤:
[0024]
(1)对所有特征向量进行降维和拼接,形成最终的文件特征向量。
[0025]
(2)基于文件特征向量生成自注意力模型序列向量,并接入attention层计算相应序列的注意力值,得到相应序列的注意力值后,与原输入相加并再次接入attention层,构建多层残差自注意力神经网络,以获得最终的序列注意力值;
[0026]
(3)将序列注意力值向量进行拼接,经过多层全连接层和softmax归一化后得到预测结果,全局损失函数采用交叉熵损失函数;
[0027]
(4)使用早停策略和衰减学习率策略进行多次调参优化后,固化保存最优模型,并进行测试和评价。
[0028]
与现有技术相比,本发明的有益效果是:
[0029]
1、本发明针对政务文件数据多源异构的特点,设计了具有针对性的特征抽取和异常处理方法,同时设计了特征与标签的相关性测试方法,可实现高效特征工程的建立以及满足用户的自定义需求。
[0030]
2、本发明针对政务文件主题分类任务,设计了具有针对性的特征清洗和优化策略,有效提取了文件主题信息,降低噪声干扰,补充缺失语义。
[0031]
3、本发明基于bert模型进行fine-tune,避免从文本进行自然语言处理,有效降低训练代价,同时文本预训练模块可适配bert中英文开源预训练模型,并支持[cls]符句首向量和平均池化两种句向量提取策略,可满足不同的应用场景。
[0032]
4、本发明基于自注意力机制构建主题分类模型,从文件特征角度对主题相关信息进行高效融合,模型训练资源占用少,并基于残差思想接入多层attention层,增强了模型的鲁棒性。
[0033]
5、本发明基于各地区各部门公开发布的政务文件,面向多达70种主题标签分类的实际应用场景,分类准确率高达96.72%。
附图说明
[0034]
构成本技术一部分的说明书附图用作对本发明原理及流程的进一步解释,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0035]
图1是本发明提出的一种基于bert预训练模型和残差自注意力机制的政务文件主题分类方法的框架图。
[0036]
图2是本发明的政务文件原始特征抽取模块工作流程图。
[0037]
图3是本发明用于特征相关性实验的多层感知机模型网络结构图。
[0038]
图4是本发明的政务文件原始特征清洗和优化模块工作流程图。
[0039]
图5是本发明的文本预训练模块文本id序列化示例图。
[0040]
图6是本发明的基于残差自注意力机制的文件主题分类模型网络结构图。
具体实施方式
[0041]
下面将参照附图并结合实施案例来详细说明本发明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
[0042]
以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本技术所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
[0043]
本发明提出的基于残差自注意力机制的政务文件主题分类方法,其流程框图如图1所示,包括以下步骤:
[0044]
步骤1,政务文件原始特征抽取和选择;
[0045]
对不同编码和格式的原始政务文件进行统一编码后,针对不同格式文件设计统一特征抽取方法,以获取文件名称、文件标题以及文件横行纵列表头等特征,并对异常值或空值特征使用文件名称代替;随后基于轻量级神经网络——多层感知机模型对抽取得到的政务文件名称、文件标题、文件表头等特征与主题标签的相关性分别进行测试,确定各特征和主题标签的相关性强弱,并根据测试结果,选择模型预测准确率高于设定值(如30%)的原始特征文本,为后续的特征嵌入方法和训练参数提供参考。
[0046]
示例地,请参阅图2所示,本发明提供了一种具体的原始特征抽取和选择方法,如下:
[0047]
(1)对原始文本的语料进行统一编码以保证数据的标准化,统一编码包括“gbk”,“utf-16”以及“utf-8”;首先将不同编码的文本进行decode,转化为unicode编码作为中间编码,随后将编码的字符串进行encode操作,最后转化为统一编码格式,如utf-8。
[0048]
(2)针对不同格式文件不断尝试多种文件读取策略,读取文件格式顺序依次为“excel”,“csv”以及“txt”,即,首先尝试按“excel”和“csv”格式读取文件,若失败则按“txt”文件格式读取文件。读取策略为纵向读取文件标题和横行表头,横向读取文件纵列表头,直至读取到有效中文字符,标题及横行表头的判别规则为数据中是否存在空列字符“unnamed:1”;对于读取异常及空值特征使用文件名称进行代替,以保证原始特征文本包含有效中文字符。
[0049]
例如,对于文件“北京统计年鉴_2016_全市居民家庭人均消费支出构成(2015年)
.xls”,按上述读取策略所提取的文件名称、文件标题、横行及纵列表头依次为:“北京统计年鉴_2016_全市居民家庭人均消费支出构成(2015年).xls”,“8-6全市居民家庭人均消费支出构成(2015年)”,“项目、全市平均、低收入户20%、中低收入户20%、中等收入户20%、中高收入户20%、高收入户20%”以及“人均消费支出、食品烟酒支出(恩格尔系数)、衣着支出、居住支出、生活用品及服务支出、交通和通信支出、教育、文化和娱乐支出、医疗保健支出、其他用品及服务支出”。
[0050]
(3)使用多层感知机模型对政务文件名称、文件标题、文件表头分别进行相关性实验测试,多层感知机是一种轻量级神经网络,其模型结构如图3所示,该模型需训练资源低,在构建复杂模型前可使用该模型进行初步实验。
[0051]
使用bert预训练模型对文件名称、文件标题以及文横行纵列件表头进行嵌入,生成768维特征句向量,分别使用9层感知机模型进行试验,激活函数使用leaky_relu函数,损失函数则采用交叉熵损失函数:
[0052][0053]
不断优化调整batch_size、epoch、learning rate等参数后,测得各特征和主题标签的相关性结果,实验结果如下:
[0054]
特征准确率(预测正确文件数/总文件数)文件名称82.36%文件标题71.58%文件横行表头41.79%文件纵列表头36.44%
[0055]
基于该实验结果可初步确定特征工程、特征嵌入方法以及输入权重等超参数,同时该模型使用的激活函数、损失函数以及调参优化方法亦可为随后的自注意力模型参考。具体地,文件名称、文件标题、文件表头均和文件主题存在相当的相关性,可以使用该四个文件特征作为特征工程传递给下一环节。
[0056]
步骤2,政务文件原始特征清洗和优化;
[0057]
首先基于步骤1选择得到的原始特征文本,进行清洗工作以得到低噪声特征文本,即文件名称、文件标题和文件表头的无效信息清洗,具体包括清洗与主题无关的政务文件用语、地理位置、机构名称信息等,以及对常见非中文进行翻译,并去除非中文字符;
[0058]
其次对得到的低噪声特征文本的语义缺失做出优化处理,提取文件名称和文件表头的关键词。具体地,基于清洗后的文件名称,进一步清洗停用词,并使用tf-iwf策略提取文件名称关键词作为特征补充,以补偿句向量的语义缺失;使用词频统计策略提取文件表头的关键词,具体是分别提取文件横行纵列表头中的关键表头名称,降低生僻表头名称的噪声影响,并将关键表头名称拼接成横行纵列表头句。
[0059]
示例地,请参阅图4所示,本发明提供了一种具体的原始特征清洗和优化方法,如下:
[0060]
(1)对文件名称、文件标题和文件表头进行清洗工作,包自定义停用词表,对文件
名称、文件标题和文件表头进行清洗和优化工作,具体步骤:
[0061]
step1:清洗地理位置信息,地理位置信息清洗至地级行政市级别。对于“xx省、xx市”等对主题标签识别存在噪声干扰的地理信息予以清洗,但是对于“xx街道、xx村庄”等对于“民生服务”、“农村发展”等标签识别有意义的地理信息予以保留;
[0062]
step2:清洗行政机构名称。“xx局对于xx的行政处罚”名称中“xx局”带有突出的主题信息,实为噪声予以清洗,仅保留相关行政措施信息;
[0063]
step3:加入具有政务数据特点的停用词,如:“各地区”、“各季度”等;
[0064]
step4:互译,对常见非中文词汇如“gdp”进行翻译为“生产总值”;
[0065]
step5:清洗非中文字符,包括空格、数字、字母以及乱码符号等。
[0066]
(2)基于清洗后的文件名称,提取文件名称关键词特征,以补充句向量对关键词词义的模糊,进一步清洗停用词后使用tf-iwf策略提取文件名称关键词,以避免生僻词的影响,取值tf-iwf最高的三个词为关键词,tf-iwf计算公式如下所示:
[0067][0068]
式中tf为词频,iwf为词语逆频率,n
d,t
表示词t在文档d中出现的频数,nd表示文档d中所有词的频数和,wc表示文档集合c中所有词的频数和,w
c,t
表示词t在文档集合c中出现的频数。
[0069]
(3)基于全部文件表头名称使用词频统计策略,分别提取文件横、纵列表头中的出现频数最高的五个关键表头名称,降低生僻表头词语带来的影响,对于不足五个表头的文件,则重复其表头进行补全,并拼接成横、纵列表头句。
[0070]
例如,对于文件“北京统计年鉴_2016_全市居民家庭人均消费支出构成(2015年).xls”,按上述策略清洗优化后文件名称、文件名称关键词、文件标题、横行及纵列表头依次为:“全市居民家庭人均消费支出构成”,“支出、居民家庭、消费”,“全市居民家庭人均消费支出构成年”,“全市平均低收入户中低收入户中等收入户中高收入户”,“人均消费支出衣着支出交通和通信支出教育文化和娱乐支出医疗保健支出”。
[0071]
步骤3,文本预训练;
[0072]
基于优化后得到的特征文本,使用bert预训练模型进行特征向量的嵌入;文本预训练模块可适配bert中英文开源预训练模型,并支持两种句向量提取策略,一是[cls]符句首向量,即句首无明显语义信息的空位符向量;二是平均池化策略,以句中有效字符向量的平均值作为文本句向量,基于该模块可对特征文本进行嵌入以生成特征向量
[0073]
具体地,请参阅图5所示,自定义加载开源bert预训练模型,整合所有特征文本,包括文件名称、文件名称关键词、文件标题、文件横行表头以及文件纵列表头特征文本,以句子级文本作为输入,并自定义选择tokenizer规则及训练速率,对文本进行分割,在句首插入[cls]空位符,在句末插入[sep]截止符,同时设定最大序列长度,如128,对于不足最大长度序列进行补0,对超出最大长度序列进行截断,将清洗优化的特征文本转换为字符id,加载哈工大版本中文bert预训练模型,将id序列化后的数据分批次送入预训练模型中进行向量嵌入,本实施例中在batch_size设定为768,数据嵌入速度可达10万条/小时;
[0074]
模型预训练,以两种池化策略获取预训练后的句向量:
[0075]
a)[cls]符句首向量策略,选择句首无明显语义信息的[cls]空位符向量作为句向
量进行输出;
[0076]
b)平均池化策略,记录输入句句长,取encoder端最后一层编码层有效字符的特征向量的平均值作为文本句向量进行输出。
[0077]
本实施例中,同时使用[cls]符句首向量策略和平均池化策略对文件名称进行特征向量嵌入,使用平均池化策略对其他特征进行特征向量嵌入,将嵌入结果存储为numpy格式文件。
[0078]
[cls]本身无明显语义信息,会更“公平”地融合文本中各个字的语义信息,更易表达句子的结构信息和情感倾向,而平均池化策略则对文本中各个字的语义信息进行简单均值化,更易表达字面语义,对于表现优秀的特征可同时使用两种句向量获取策略以增加权重,基于此可获取各特征768维特征句向量。
[0079]
步骤4,基于残差自注意力机制的主题标签分类;
[0080]
基于特征向量,构建残差自注意力模型进行主题分类模型的训练、调优、保存及测试,得到最终的文件主题分类模型,并利用该模型对政务文件进行主题分类。
[0081]
具体地,请参阅图6所示,其过程包括:
[0082]
(1)使用单层全连接层对各特征向量进行降维,有监督的降维措施可在尽量避免信息损失的情况下,有效减少训练参数,降低训练代价,同时增加优秀特征的降维维数以提高其权重,本实施例中,文件名称、文件标题、文件名关键词及文件横行纵向表头特征向量的降维比例为2:2:1:1:1。对降维后特征向量进行拼接形成文件特征向量,该文件特征向量维数需和注意力序列向量维数一致,使得文件特征向量可作为第二层attention层的残差输入。
[0083]
(2)使用自注意力机制,对文件特征向量生成4个自注意力模型序列向量,即4个同维query,key,value(query、key和value取相同值)向量,然后将其送入attention层进行计算相应的注意力值,计算公式如下所示,相似度计算采用点积方式:
[0084][0085]
similarity(queryi,keyj)=queryi·
keyj(4)
[0086]
式中,attention_scorei表示第i个模型序列的注意力值,queryi表示第i个模型序列的query值,keyj和valuej分别表示第j个模型序列的key和value值。
[0087]
其计算本质为将单个序列的query和其余序列的key做点积运算得到相应权值,对权值做softmax归一化后乘以相应的value并相加得到该序列注意力值。
[0088]
(3)在得到相应序列的注意力值后,基于残差思想,构建多层残差自注意力神经网络。将第一层attention层的输出与原文件特征向量相加,作为第二层attention层输入,参照步骤(2)计算第二层注意力值序列,后续attention层即可将上一层的输入和输出序列相加作为输入,以增加神经网络深度的同时有效避免过拟合,基于此再次接入attention层,构建多层残差自注意力神经网络,以获得最终的序列注意力值。根据多次实验结果,取两层attention层的模型效果最佳。
[0089]
(4)得到最终的序列注意力值后,将注意力值向量进行拼接,通过7层全连接层和softmax归一化后得到预测结果,模型中全连接层激活函数使用leaky_relu函数,全连接层
使用dropout策略避免过拟合,每一全连接层神经元被保留的概率为0.5,全局损失函数则采用交叉熵损失函数:
[0090][0091]
(5)模型训练,使用早停策略和衰减学习率策略进行多次调参优化后,固化保存模型,并进行测试和评价。具体调参优化措施如下:
[0092]
a)基于模型训练时长、资源占用和模型收敛的稳定性,经过多次实验,确定batch_size为768。
[0093]
b)使用early-stopping早停策略,划分验证集,验证集准确率在10个epoch上无超过0.1%提升,则停止训练,以训练优化epoch参数,最终确定epoch数为205。
[0094]
c)使用衰减学习率,初始学习率lr设定为0.01,以尽快收敛至局部最优,衰减率decay设定为0.00035,在batch过半时,学习率衰减约为原学习率四分之一,计算公式如下所示:
[0095][0096]
(6)在经过调参和优化后得到最优性能模型,将模型固化保存protocol_buffer模型,并进行测试和评价。对于主题分类准确率计算,根据各主题标签的文件数量确定权值,取各标签识别准确率的加权平均值precision:
[0097][0098]
其中,n为主题标签总数量,numi为第i个主题标签下的文件数量,precisioni为第i个主题标签的识别准确率,对于某一标签:
[0099][0100]
其中,num
correct
为该标签识别正确的文件数,num
all
识别出该标签的文件总数。
[0101]
最终基于各地区各部门公开的政务数据集,主题模型分类准确率为96.72%。
技术特征:
1.一种基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,包括如下步骤:步骤1,政务文件原始特征抽取和选择;所述特征选择是使用多层感知机模型对抽取得到的各特征与主题标签的相关性分别进行测试,确定各特征与主题标签的相关性强弱,并根据测试结果,选择模型预测准确率高于设定值的原始特征文本;步骤2,政务文件原始特征清洗和优化;所述特征优化是对原始特征清洗后得到的低噪声特征文本,提取文件名称和文件表头的关键词;步骤3,文本预训练;基于优化后得到的特征文本,使用bert预训练模型进行特征向量的嵌入;步骤4,基于残差自注意力机制的主题标签分类;基于特征向量,构建残差自注意力模型进行主题分类模型的训练、调优、保存及测试,得到最终的文件主题分类模型,并利用该模型对政务文件进行主题分类。2.根据权利要求1所述基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,所述原始特征抽取是对不同编码和格式的政务文件,进行统一编码后,按文件格式读取文件名称、文件标题以及文件横行纵列表头特征,并使用文件名称代替异常值或空值特征。3.根据权利要求1所述基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,所述特征选择基于多层感知机模型实现。4.根据权利要求1所述基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,所述原始特征清洗是对文件名称、文件标题和文件表头中的无效信息进行清洗,包括清洗与主题无关的政务文件用语、地理位置和机构名称,并对常见非中文翻译为中文,清洗非中文字符。5.根据权利要求1所述基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,所述特征优化是在特征清洗的基础上,清洗停用词,然后使用tf-iwf提取文件名称关键词,使用词频统计策略提取文件表头关键词。6.根据权利要求5所述基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,所述词频统计策略是分别提取文件横行纵列表头中的关键表头名称,降低生僻表头名称的噪声影响,并将关键表头名称拼接成横行纵列表头句。7.根据权利要求1所述基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,所述使用bert预训练模型进行特征向量的嵌入,包括以下步骤:(1)自定义加载中英文开源bert预训练模型,自定义选择tokenizer规则及训练速率;(2)自定义选择句首无明显语义信息的[cls]空位符向量作为文本句向量输出,或选取encoder端最后一层编码层有效字符的特征向量平均值作为文本句向量输出。8.根据权利要求1所述基于bert和残差自注意力机制的政务文件主题分类方法,其特征在于,所述构建残差自注意力模型进行主题分类模型的训练、调优、保存及测试,包括以下步骤:(1)对所有特征向量进行降维和拼接,形成最终的文件特征向量。
(2)基于文件特征向量生成自注意力模型序列向量,并接入attention层计算相应序列的注意力值,得到相应序列的注意力值后,与原输入相加并再次接入attention层,构建多层残差自注意力神经网络,以获得最终的序列注意力值;(3)将序列注意力值向量进行拼接,经过多层全连接层和softmax归一化后得到预测结果,全局损失函数采用交叉熵损失函数;(4)使用早停策略和衰减学习率策略进行多次调参优化后,固化保存最优模型,并进行测试和评价。
技术总结
本发明一种基于Bert和残差自注意力机制的政务文件主题分类方法,包括政务文件原始特征抽取和选择、政务文件原始特征清洗和优化、文本预训练以及基于残差自注意力机制的主题标签分类,本发明针对政务数据多源异构的特点,提出了统一的特征抽取、异常处理和特征选择方法,设计了具有针对性的特征清洗和优化策略,构建基于Bert预训练模型和残差自注意力机制的文件主题分类模型,解决了传统文件主题分类方法效率低和缺乏自适应能力的问题,实验基于公开政务文件数据集,在面向多达70种主题标签分类的实际应用场景中,分类准确率高达96.72%。96.72%。96.72%。
技术研发人员:周亚东 曹天文 高泱晗 朱皓宬 刘晓明 管晓宏
受保护的技术使用者:西安交通大学
技术研发日:2021.12.03
技术公布日:2022/3/8