分层文本分类在警情数据中的应用

2021-09-23 07:06:00殷小科王威王婕张沛然乐汉林基伟张海婷
现代计算机 2021年23期
关键词:警情类别分类器

殷小科,王威,王婕,张沛然,乐汉,林基伟,张海婷

(1.上海市公安局科技处,上海200042;2.上海德拓信息技术股份有限公司,上海200030)

0 引言

现今,文本分类在自然语言处理中被广泛应用,文本数据自动归类可以方便用户检索、查询,并在此基础上对数据进行深度加工,尤其在数据越来越多的情况下,人工归类已无法满足要求。很多研究人员和机构对此做了大量工作,文本分类任务一般来说是一个有监督任务,首先模型需要在有标注的数据上进行训练,然后在此基础上对未标注数据进行分类[1]。文本分类通常有两个或多个类别,例如邮件分类、垃圾邮件分类、情感分析等。文本分类的类别如果特别多,作为文本分类的一种特殊情况,需要区别对待。很多实际应用中的分类问题,类别之间有关系,相似的类别可以作为一大类,由此形成相应的层次结构,这是一种特殊的文本分类问题,分层文本分类(Hier⁃archical Text Classification,HTC),分类算法的结果对应分类层次结构中的一个或多个节点。其中的分类层次结构通常用一个树结构或有向无环图表示。

对于海量的警情信息,如果能进行充分利用挖掘,不但能够更好地检索、查询,更能够提高办案效率,预测规律,预防犯罪事件的发生。警情分类是对警情信息进行充分利用的基础,实际警情分类是一个典型的分层文本分类问题,如图1,警情信息下有两层分类,分类11下面包括分类21、22等。每天都会接到大量报警信息,人工分类效率不高,不同人员录入存在主观差异,多层次分类比较繁琐,可能出现层级遗漏、相似类别出现失误等情况,因此自动文本分类是非常重要的。

图1 警情分类结构

本文针对警情信息的分层文本分类,提出了一种基于BERT的分层迁移模型。基于警情信息类别之间数据严重不均衡,有的小类只有几个数据,模型很难得到其中的特征,相对而言,大类的数据足够模型学到有用信息用于分类。本文提出的模型除了利用了数据本身的分类信息,还充分利用了BERT在警情数据上学习到的警情领域相关信息。为了利用分层结构信息,本方法对每一个父类节点训练一个BERT分类器;为了利用警情领域信息,加入了模型参数迁移的方法。

1 相关工作

如果文本分类有特别多的类别,通常会将类别分层处理,在学习和预测过程中利用分层结构的信息[2]。实际任务需要根据分层分类的特点用不同的方法解决问题,一般考虑3点:分层结构类型、任务目标、如何利用分层信息[3]。一般来说分层结构类型分为树结构和有向无环图两种,树结构的每一个节点只有一个父节点,有向无环图中有的节点有多于一个父节点。任务目标也分为两种:必须选择一个叶子节点,可以选择任意节点。具体指分类是否必须分到最小类,在警情分类中以分类11为例,分类11下面还有分类21、22等小类,根据是否可以分为分类11这一非叶子节点,其任务目标不同,解决方法也不同。不过此任务目标是可以根据情况转化的,在分类11中如果必须选择一个叶子节点,那么分类11下需要加入一个其他诈骗的叶子节点以此保证必须选择一个叶子节点。

如何利用分层信息分为很多种情况,为了在分类过程中用到分层结构信息,很多研究人员提出了不同的方法,文献[3]中将各种方法分为三类:扁平、全局、局部三类。扁平方法指忽略分层信息,有的数据没有定义好的分层结构信息,需要根据训练数据或者类别描述挖掘类别之间的关系构建分层结构信息,一般是无监督方法,准确率无法保证,有传导误差,这种情况下扁平方法用的较多。全局方法指考虑分层信息训练一个全局分类器,在测试阶段用自上而下的策略。文献[4]将分层结构看作一个有向图,利用类别之间的先验概率聚合节点信息,文本信息加入分类结构特征用于全局模型。局部方法利用分层结构的局部信息训练局部的分类器,可以每个节点训练一个二分类分类器,可以每个父节点训练一个多分类分类器,也可以每一层训练一个多分类分类器。文献[5-7]为了克服父节点到子节点数据不均衡的问题,针对局部方法做了很多研究。警情数据中已经事先定义好了分层结构信息,并且小类别数据严重不均衡,在这种情况下充分利用分层结构信息对准确率的提高是非常重要的。

2 模型

本文采用的是以上介绍的局部方法,每个父节点训练一个BERT多分类分类器。BERT预训练模型在不同的NLP任务中已经证明效果非常好,利用BERT预训练模型本身就算一种迁移学习。在微调根节点BERT分类器的过程中,对所有警情数据进行了学习,因此根节点的BERT分类器学到了更多警情领域知识。为了利用警情领域知识对不平衡的小类别进行分类,将微调好的根节点BERT分类器迁移到小类别BERT分类器上,在此基础上再对小类别进行微调,由此得到最终小类别的BERT分类器。

假设模型分三层R、C1、C11,首先用全部的数据对跟节点R训练BERT分类器,分为子类别{C1,C2,C3,…},然后再训练C1模型时,将模型参数初始化为R模型参数,C1模型分为子类别{C11,C12,C13,...},以此得到最后分类结果。

2.1 BERT介绍

BERT模型[8]是Google于2018年提出的预训练模型,在NLP多个任务中刷新了记录,被认为是NLP领域很大的一个突破。BERT是一种预训练模型,在大量文本语料上得到了一个通用的“语言理解”模型,BERT的主要框架是Transformers。

BERT应用分预训练和微调两个阶段,除了输出层,预训练和微调阶段BERT模型的结构是一样的,预训练模型的参数用于初始化不同的下游任务。

2.2 数据不均衡

很多NLP分类都会存在数据不均衡的问题,在现实数据中这种问题尤其严重。数据不均衡是一个普遍的问题,很多研究人员对此进行了研究[9-10]。解决数据不均衡的问题,一般分为两种方法:一种改变数据,另一种是改变模型。

数据层面解决数据不均衡的主要方法有降采样、过采样和数据增强。降采样是丢弃训练集中数据多的类别的一些数据,经过调整后的数据集小于原数据集,在丢弃时应该尽量丢弃不太重要的数据。不过通常比较难判断,这种情况下会损失数据,一般比较少用降采样。过采样就是对数据少的类别数据进行多次选取,经过调整后的数据集大于原数据集。这种方法增加了时间开销,容易过拟合。数据增强是过采样的延伸方法,区别于单纯的重复数据,对数据进行一些处理来增加数据量,有多种方法:随机加入一些噪声,例如随机删掉某些词,随机打乱词语顺序;对句子通过编码解码过程复述生成;同义词替换;回译,例如将中文文本翻译为英文再回译为中文等方法。复述生成、回译通常认为是比较好的方法,因为在做数据增强的时候,对原始数据的处理使得语义发生了变化,但同时又保证了整个语义的完整性。

模型层面解决数据不均衡的主要方法有修改损失函数和难例挖掘。修改损失函数最简单的方法就是为数据少的类别增加损失函数的权值,增加权值可以简单理解为一个数据作用增大,类似于过采样的操作。难例挖掘指的是挖掘出预测效果差的数据,对这些数据再进行重新训练。对于数据少的类别,模型的预测效果不好,就会被当作难例,模型对这些数据再次处理,以此提高模型效果。

在选取方法时需要根据具体情况来选择,算力、数据分布和误判的代价都是需要考虑的问题。警情数据出于安全考虑,算力限制,数据过采样或者数据增强不适合大范围使用;预测数据与训练数据分布一样,应该尽量保留训练数据的数据分布;不同类别误判的代价不存在明显差别。因此本文对不均衡数据的处理,在节省算力、充分利用数据的基础上,尽量保留了训练数据的占比,对特别多的数据进行了降采样,对特别少的进行了数据增强。

2.3 分层迁移模型

分层迁移模型在训练父节点分类器和子节点分类器时进行递归策略。例如,P是最上层的类别,C1是P的一个子类,C11是C1的一个子类。首先,我们针对P训练一个BERT分类器BERT-P,如果P是根目录,那么所有训练数据都会经过BERT-P。然后,在C1类别训练时,用BERT-P训练好的模型参数初始化另外的BERT分类器BERT-C1。训练完BERTC1后,用BERT-C1初始化C11的BERT分类 器BERT-C11,以此类推。根据Hoo-Chang等人[11]的研究,最后输出层的参数是随机初始化的,利用的是除输出层之外的参数。

根据Howard等人[12]对迁移学习的研究,模型不同层的参数需要用不同的学习率。本文中模型,迁移参数(从父节点分类器得到的)用较低的学习率,最后的全连接输出分类层参数(随机初始化的)用较高的学习率。另外,在训练完BERT-P模型后,保持词向量层的参数不变,后续子节点的模型训练词向量层学习率为0。保持词向量层参数不变可以防止子节点分类器训练过程中出现过拟合。

3 实验结果及分析

3.1 数据集

本文采用的警情数据,分类体系分三层,一层分18类,二层分151类,需要训练19个BERT分类器。对于需要训练19个BERT分类器,缺点是所需时间比较长,优点是可以分别优化不同的分类器,对于一些数据比较完整的父节点,训练好的模型已经达到所需精度,可以直接应用。而某些类别现有数据太少,可以结合关键词或其他方法暂时应用,后续数据增多可以很方便迭代。

警情数据严重不均衡,对其中类别数量过多的降采样,过小的进行数据增强。

3.2 评价指标

模型在不均衡的数据上进行训练,更容易预测为数据多的类别,这种情况下虽然可以得到比较高的准确率,但是无法代表数据少的类别。因此本文用Micro-P(微观准确率)、Macro-P(宏观准确率)两个指标来评价最后的实验结果。

Micro-P将所有数据看作一个整体,统一计算其准确率,公式如下:

Macro-P是统计每个类别的准确率,然后取平均得到最后的准确率,公式如下:

3.3 实验结果

本文实验结果如表1所示,为了验证本文模型的有效性,本文选取了两个对比模型,扁平BERT是忽略警情数据的结构信息,直接对151个小的类别进行识别,可以看到其识别结果是最低的,尤其Macro-P准确率,其中数据少的类别结果对比其他两个模型是最差的,因为数据中关于类别的信息较少。局部BERT模型是未考虑迁移学习,对跟节点和18个大类都初始化一个BERT模型分别进行识别,测试时由上到下得到结果。局部BERT利用了数据的结构信息,一定程度上能够缓解数据不平衡问题,结果较扁平BERT有所提升。结果最好的是BERT模型与迁移学习相结合的模型,Micro-P准确率能到95.8%,Macro-P准确率较另两个模型也有比较大的提高。

表1 实验结果

4 结语

本文根据警情数据的特殊性,提出了一个BERT结合迁移学习的方法来提高分层文本分类的准确率。实验表明Micro-P准确率已经能达到比较高的结果,但是Macro-P准确率由于有的类别数据太少导致结果不理想,在实际应用中这种类别出现的也特别少,还需要继续积累数据对模型进行迭代优化。

猜你喜欢
警情类别分类器
BP-GA光照分类器在车道线识别中的应用
电子测试(2018年1期)2018-04-18 11:52:35
不能吃的饺子
派出所工作(2017年9期)2017-05-30 10:48:04
“霉神”彦哥
派出所工作(2017年9期)2017-05-30 10:48:04
警情多,赖别人的嘴?
派出所工作(2017年9期)2017-05-30 10:48:04
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
服务类别
新校长(2016年8期)2016-01-10 06:43:59
警情支持系统之构建研究
企业导报(2014年23期)2015-01-08 12:55:42
论类别股东会
商事法论集(2014年1期)2014-06-27 01:20:42
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别