一种文本类别的增量学习方法及装置、可读存储介质与流程

文档序号:23090892发布日期:2020-11-27 12:43阅读:199来源:国知局
一种文本类别的增量学习方法及装置、可读存储介质与流程

本发明涉及自然语言处理技术领域,尤指一种文本类别的增量学习方法及装置、可读存储介质。



背景技术:

随着信息科技的快速发展,公安领域海量的案件信息都以文本的形式存在。如何对海量的文本信息资源进行分类,从而快速、有效、准确地挖掘有价值的线索,成为了公安文本挖掘技术领域的研究热点。公安文本分类是指按照预先定义的案由类别,为公安数据库中的每条文本确定一个类别。

在文本分类中,大部分经过充分训练的神经网络模型能够分辨不同类别的文本,并且可以达到较高的准确率,但是目前的大部分神经网络并不能识别未经训练的文本。即神经网络模型仅能对已知类别的文本做出正确判断,对于未训练的文本,神经网络模型会将该文本错误的归到已知的类别,从而导致分类的准确率下降。

为了解决上述问题,通常需要将已训练过的文本和未训练过的文本组合作为训练样本,重新对神经网络模型进行训练,从而使模型既能识别已有类别,又能识别新的类别。但随着类别的增加,数据量会不断上升,重新训练模型的时间和成本也会越来越大。

为此希望计算机能像人类一样对任务进行增量的学习。面对包含新类别的新文本,增量学习方法无需重复训练已训练过的数据,通过更新已训练好的模型,使得模型能够学习到新数据中蕴涵的信息。



技术实现要素:

本发明提供了一种文本类别的增量学习方法及装置、可读存储介质,用于解决为了识别新类别,需要对神经网络模型重复训练已训练过的数据的问题。

本发明提供的技术方案如下:

一种文本类别的增量学习方法,包括:构建文本分类模型,所述文本分类模型包括文本特征提取层和注意力机制层,所述文本特征提取层用于获取输入文本的文本特征信息,所述注意力机制层用于获取所述输入文本的文本特征信息与文本类别信息的相似度,并根据所述相似度确定所述输入文本的文本类别;当需要扩充已训练好的文本分类模型的文本类别时,针对所述已训练好的文本分类模型,用包含新类别的新数据对其进行增量训练;在所述增量训练过程中,锁住所述文本特征提取层的参数,更新所述注意力机制层的参数。

进一步地,所述的用包含新类别的新数据对其进行增量训练,包括:用对应新类别的新数据对其进行增量训练。

进一步地,所述的更新所述注意力机制层的参数,包括:将已训练好的类别信息作为旧的类别信息,在所述注意力机制层根据所述旧的类别信息和新增类别数量构建所述文本类别信息,并通过训练得到新增类别的类别信息。

进一步地,对所述文本分类模型进行第一次训练时,所述旧的类别信息为空,所述所述新增类别数量为本次训练样本所包含的类别数。

进一步地,所述注意力机制层根据以下公式计算输入文本的文本特征信息和与文本类别信息的相似度:

其中,q为根据所述文本特征信息得到的文本向量矩阵,k为所述文本类别信息得到的类别向量矩阵,dk为k的维度,softmax()为归一化函数。

进一步地,所述文本特征提取层包括词嵌入层、卷积层、池化层和flatten层;在词嵌入层将输入文本转换为向量形式的文本;所述卷积层使用了多种尺寸的卷积核,对所述向量形式的文本进行特征提取;将所述卷积核提取的特征进行最大池化处理,再进行拼接;将拼接后的特征通过flatten层降维,得到所述输入文本的文本特征信息。

本发明还提供一种文本类别的增量学习装置,包括:模型构建模块,用于构建文本分类模型,所述文本分类模型包括文本特征提取层和注意力机制层,所述文本特征提取层用于获取输入文本的文本特征信息,所述注意力机制层用于获取所述输入文本的文本特征信息与文本类别信息的相似度,并根据所述相似度确定所述输入文本的文本类别;模型增量训练模块,用于当需要扩充已训练好的文本分类模型的文本类别时,针对所述已训练好的文本分类模型,用包含新类别的新数据对其进行增量训练;所述模型增量训练模块,包括参数更新单元;所述参数更新单元,用于在所述增量训练过程中,锁住所述文本特征提取层的参数,更新所述注意力机制层的参数。

进一步地,所述参数更新单元,进一步用于将已训练好的类别信息作为旧的类别信息,在所述注意力机制层根据所述旧的类别信息和新增类别数量构建所述文本类别信息,并通过训练得到新增类别的类别信息。

进一步地,还包括:模型初次训练模块,用于对所述文本分类模型进行第一次训练时,所述旧的类别信息为空,所述所述新增类别数量为本次训练样本所包含的类别数。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的文本类别的增量学习方法的步骤。

通过本发明提供的一种文本类别的增量学习方法及装置、可读存储介质,至少能够带来以下有益效果:

1、本发明采用文本特征提取层和注意力机制层相结合的文本分类模型,在面对包含新类别的新文本时,对该模型采用增量学习,无需重复训练已训练过的数据,仅用包含新类别的新数据对其进行增量训练,从而降低了模型更新的训练成本。

2、本发明在已训练好的文本分类模型基础上,通过继承文本特征提取层的参数和已训练好的类别信息,只训练注意力机制层获取新增类别的类别信息从而降低模型更新的训练成本。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对一种文本类别的增量学习方法及装置、可读存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。

图1是本发明的一种文本类别的增量学习方法的一个实施例的流程图;

图2是本发明的一种文本类别的增量学习装置的一个实施例的结构示意图;

图3是文本类别的增量学习方法应用于一具体实施场景的流程示意图;

图4是图3中文本类别增量学习神经网络的结构示意图。

附图标号说明:

100.模型构建模块,200.样本数据获取模块,300.模型初次训练模块,400.模型增量训练模块,410.参数更新单元。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘制了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

本发明的一个实施例,如图1所示,一种文本类别的增量学习方法,包括:

步骤s100构建文本分类模型,所述文本分类模型包括文本特征提取层和注意力机制层,所述文本特征提取层用于获取输入文本的文本特征信息,所述注意力机制层用于获取所述输入文本的文本特征信息与文本类别信息的相似度,并根据所述相似度确定所述输入文本的文本类别。

具体地,输入文本分类模型的输入文本,先经过文本特征提取层进行输入文本的文本特征信息的提取,再将得到的文本特征信息输入注意力机制层,计算文本特征信息与各种文本类别信息的相似度,根据相似度确定输入文本的文本类别,通常选择相似度最大的文本类别信息作为输入文本的最终文本类别。

文本特征提取层可采用卷积神经网络(convolutionalneuralnetworks,cnn),比如text-cnn,采用词嵌入层(embedding层)+卷积层+池化层结构,利用几种不同尺寸的卷积核(kernel)进行文本特征提取,目的是从几个不同的维度捕捉一句话中的局部相关性。

文本特征提取层也可采用循环神经网络(recurrentneuralnetwork,rnn),比如lstm或双向lstm,lstm可以提取文本中的长距离相关性;也可以采用cnn和lstm相结合的方式。

注意力机制层(attention层),用于获取文本类别信息,并计算输入文本的文本特征信息与文本类别信息的相似度,根据相似度确定输入文本的文本类别。

注意力机制层根据以下公式计算输入文本的文本特征信息和与文本类别信息的相似度:

其中,q为根据所述文本特征信息得到的文本向量矩阵,k为所述文本类别信息得到的类别向量矩阵,dk为k的维度,softmax()为归一化函数。

整体模型的损失函数采用交叉熵,表示真实概率分布与预测概率分布之间的差异,优化目标为最小化交叉熵值,目标函数为:

其中,n代表样本数量,p(xi)代表第i个样本的真实概率分布,q(xi)表示第i个样本的预测概率分布。

步骤s200对原始文本数据进行预处理,得到用于模型训练的样本数据。

比如从公安数据库中获取原始文本数据,对原始文本数据进行预处理,比如剔除无效、重复的文本,逐条核查每条文本的文本类别是否与文本描述是否一致等。接着,确定一个最大序列长度,将每条文本都固定到这个长度上,即如果原始序列的长度大于该值就截断,如果小于该值就用“0”补齐。最后,将样本数据按照一定比例划分训练集、测试集和验证集,用于文本分类模型的训练。

可选地,将样本数据分为类别互斥的两批数据。每批数据按照一定比例划分训练集、测试集和验证集。将第一批样本数据用于文本分类模型的第一次训练,第二批样本数据用于文本分类模型的增量训练。增量训练是在上一轮已训练好的文本分类模型的基础上进行。当然也可以视样本数据量情况将样本数据分为更多批类别互斥的数据。当然也可以根据实际情况,在后续发现了新类别,收集了新类别的样本数据,用于模型的增量训练。

步骤s300根据样本数据对文本分类模型进行第一次训练。

注意力attention层有两个参数:旧的类别信息和新增类别数量。

第一次训练时,旧的类别信息设为空,新增类别数量为本次训练样本所包含的类别数。若将全部样本数据用于第一次训练,则新增类别数量为全部样本数据所包含的类别数。若仅使用第一批样本数据用于第一次训练,则新增类别数量为第一批样本数据所包含的类别数。

因为是初始数据,则注意力attention层的两个参数:上一轮数据类别表示向量,参数新增类别的数量,将其分别设为空,初始数据的类别数量。

在训练时,用本次训练样本中的验证集来调整超参数。在测试时,挑选在验证集上效果最好的超参来评估模型在本次训练样本测试集上的效果。

步骤s400当需要扩充已训练好的文本分类模型的文本类别时,针对所述已训练好的文本分类模型,用包含新类别的新数据对其进行增量训练;在所述增量训练过程中,锁住所述文本特征提取层的参数,更新所述注意力机制层的参数。

具体地,新增类别后,对应新类别的新数据对于已训练好的模型来说是完全未知的,为了提升模型的识别能力,需要用新数据对模型进行训练。为了降低再次训练的成本,只进行增量训练。

新数据可为前述的第二批样本数据,也可为新采集到的包含新类别的数据,将这些数据预处理后作为新数据。

增量训练是指在已训练好的模型基础上,只用包含新类别的新数据对模型进行训练,无需重复训练已训练过的数据;通过更新已训练好的模型,使得模型能够学习到新数据中蕴涵的信息。

包含新类别的新数据除了包括新类别的新数据,可能还包括旧类别(即已训练过的类别)的新数据。为了进一步降低训练样本数量,可只选择新类别的新数据对模型进行训练,这样可降低训练的时间和复杂度。

在增量训练过程中,锁住文本分类模型中文本特征提取层的参数,只更新注意力机制层的参数。锁住文本特征提取层的参数,是指继承上一轮训练后得到的文本特征提取层的参数,保持不变。

更新注意力机制层的参数,具体包括:将已训练好的类别信息作为旧的类别信息,在注意力机制层根据所述旧的类别信息和新增类别数量构建文本类别信息,并通过训练得到新增类别的类别信息。

继承上一轮已训练好的类别信息(即旧的类别信息),保存并锁住。根据新增类别数量,在旧的类别信息基础上增加新增类别的类别信息,得到扩充的文本类别信息。新增类别的类别信息初始可能是随机值,通过训练更新得到确定值。在训练过程中,仅训练更新新增类别的类别信息,不更新旧的类别信息。

在训练时,用新数据中的验证集来调整超参数。在测试时,挑选在验证集上效果最好的超参来评估模型在新测试集以及总数据测试集上的效果。

本实施例,通过采用文本特征提取层和注意力机制层相结合的文本分类模型,在面对包含新类别的新文本时,对该模型采用增量学习,无需重复训练已训练过的数据,仅用包含新类别的新数据对其进行增量训练;在已训练好的文本分类模型基础上,通过继承文本特征提取层的参数和已训练好的类别信息,只训练注意力机制层获取新增类别的类别信息,从而降低了模型更新的训练成本。

本发明的一个实施例,如图2所示,一种文本类别的增量学习装置,包括:

模型构建模块100,用于构建文本分类模型,所述文本分类模型包括文本特征提取层和注意力机制层,所述文本特征提取层用于获取输入文本的文本特征信息,所述注意力机制层用于获取所述输入文本的文本特征信息与文本类别信息的相似度,并根据所述相似度确定所述输入文本的文本类别。

具体地,输入文本分类模型的输入文本,先经过文本特征提取层进行输入文本的文本特征信息的提取,再将得到的文本特征信息输入注意力机制层,计算文本特征信息与各种文本类别信息的相似度,根据相似度确定输入文本的文本类别,通常选择相似度最大的文本类别信息作为输入文本的最终文本类别。

文本特征提取层可采用卷积神经网络(convolutionalneuralnetworks,cnn),比如text-cnn,采用词嵌入层(embedding层)+卷积层+池化层结构,利用几种不同尺寸的卷积核(kernel)进行文本特征提取,目的是从几个不同的维度捕捉一句话中的局部相关性。

文本特征提取层也可采用循环神经网络(recurrentneuralnetwork,rnn),比如lstm或双向lstm,lstm可以提取文本中的长距离相关性;也可以采用cnn和lstm相结合的方式。

注意力机制层(attention层),用于获取文本类别信息,并计算输入文本的文本特征信息与文本类别信息的相似度,根据相似度确定输入文本的文本类别。

注意力机制层根据以下公式计算输入文本的文本特征信息和与文本类别信息的相似度:

其中,q为根据所述文本特征信息得到的文本向量矩阵,k为所述文本类别信息得到的类别向量矩阵,dk为k的维度,softmax()为归一化函数。

整体模型的损失函数采用交叉熵,表示真实概率分布与预测概率分布之间的差异,优化目标为最小化交叉熵值,目标函数为:

其中,n代表样本数量,p(xi)代表第i个样本的真实概率分布,q(xi)表示第i个样本的预测概率分布。

样本数据获取模块200,用于对原始文本数据进行预处理,得到用于模型训练的样本数据。

比如从公安数据库中获取原始文本数据,对原始文本数据进行预处理,比如剔除无效、重复的文本,逐条核查每条文本的文本类别是否与文本描述是否一致等。接着,确定一个最大序列长度,将每条文本都固定到这个长度上,即如果原始序列的长度大于该值就截断,如果小于该值就用“0”补齐。最后,将样本数据按照一定比例划分训练集、测试集和验证集,用于文本分类模型的训练。

可选地,将样本数据分为类别互斥的两批数据。每批数据按照一定比例划分训练集、测试集和验证集。将第一批样本数据用于文本分类模型的第一次训练,第二批样本数据用于文本分类模型的增量训练。增量训练是在上一轮已训练好的文本分类模型的基础上进行。当然也可以视样本数据量情况将样本数据分为更多批类别互斥的数据。当然也可以根据实际情况,在后续发现了新类别,收集了新类别的样本数据,用于模型的增量训练。

模型初次训练模块300,用于根据样本数据对文本分类模型进行第一次训练。

注意力attention层有两个参数:旧的类别信息和新增类别数量。

第一次训练时,旧的类别信息设为空,新增类别数量为本次训练样本所包含的类别数。若将全部样本数据用于第一次训练,则新增类别数量为全部样本数据所包含的类别数。若仅使用第一批样本数据用于第一次训练,则新增类别数量为第一批样本数据所包含的类别数。

因为是初始数据,则注意力attention层的两个参数:上一轮数据类别表示向量,参数新增类别的数量,将其分别设为空,初始数据的类别数量。

在训练时,用本次训练样本中的验证集来调整超参数。在测试时,挑选在验证集上效果最好的超参来评估模型在本次训练样本测试集上的效果。

模型增量训练模块400,用于当需要扩充已训练好的文本分类模型的文本类别时,针对所述已训练好的文本分类模型,用包含新类别的新数据对其进行增量训练。

模型增量训练模块400包括参数更新单元410;

参数更新单元410,用于在增量训练过程中,锁住所述文本特征提取层的参数,更新所述注意力机制层的参数。

具体地,新增类别后,对应新类别的新数据对于已训练好的模型来说是完全未知的,为了提升模型的识别能力,需要用新数据对模型进行训练。为了降低再次训练的成本,只进行增量训练。

新数据可为前述的第二批样本数据,也可为新采集到的包含新类别的数据,将这些数据预处理后作为新数据。

增量训练是指在已训练好的模型基础上,只用包含新类别的新数据对模型进行训练,无需重复训练已训练过的数据;通过更新已训练好的模型,使得模型能够学习到新数据中蕴涵的信息。

包含新类别的新数据除了包括新类别的新数据,可能还包括旧类别(即已训练过的类别)的新数据。为了进一步降低训练样本数量,可只选择新类别的新数据对模型进行训练,这样可降低训练的时间和复杂度。

在增量训练过程中,锁住文本分类模型中文本特征提取层的参数,只更新注意力机制层的参数。锁住文本特征提取层的参数,是指继承上一轮训练后得到的文本特征提取层的参数,保持不变。

参数更新单元410,进一步用于将已训练好的类别信息作为旧的类别信息,在所述注意力机制层根据所述旧的类别信息和新增类别数量构建所述文本类别信息,并通过训练得到新增类别的类别信息。

需要说明的是,本发明提供的文本类别的增量学习装置的实施例与前述提供的文本类别的增量学习方法的实施例均基于同一发明构思,能够取得相同的技术效果。因而,文本类别的增量学习装置的实施例的其它具体内容可以参照前述文本类别的增量学习方法的实施例内容的记载。

在本发明的一个实施例中,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现如前述实施例记载的文本类别的增量学习方法。也即是,当前述本发明实施例对现有技术做出贡献的技术方案的部分或全部通过计算机软件产品的方式得以体现时,前述计算机软件产品存储在一个计算机可读存储介质中。所述计算机可读存储介质可以为任意可携带计算机程序代码实体装置或设备。譬如,所述计算机可读存储介质可以是u盘、移动磁盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器等。

本发明还提供一个具体实施场景示例,如图3所示,将本申请提供的方法和装置应用于公安文本数据分类模型中,具体步骤包括:

步骤s1,数据集预处理。

从公安数据库中收集原始公安数据集,该数据集共包含39个案由类别。其次,通过构建字典,对数据集中的文本以及标签(即对应的文本类别)进行编码,字典的大小为21100。

接着,确定最大序列长度为300,将每条文本都固定到这个长度上,即如果原始序列的长度大于300就截断,如果小于300就用“0”补齐。

最后,将总数据分为类别互斥的两批数据,第一批数据包含24个类别,第二批数据包含15个类别。每一批数据都按照9:1:1的比例划分训练集、测试集和验证集。

步骤s2,搭建基于注意力机制的文本类别的增量学习神经网络。

如图4所示,神经网络的第一层为input层,该层输入为预处理后的文本。接着是embedding层,将文本中每个字符的编码映射成固定大小的字向量,该层参数有输入字符数,字向量维度和输入序列长度。

输入字符数为字典的大小,将其设为21100,子向量维度设为300,输入序列长度为步骤一中确定的最大序列长度,设为300。

其次为textcnn层,用于获取文本的向量表示。该层使用了三种尺寸的卷积核,尺寸分别是2、3、4。上述卷积过程可以看作是提取文本的n-gram特征,使用大小为2、3、4的卷积核相当于在提取文本的2-gram,3-gram,4-gram特征。

将这些卷积核提取的特征进行maxpooling,再进行拼接。

其次为flatten层,将textcnn层的输出张量展平。

最后一层为注意力attention层,用于训练类别的向量表示,并求文本表示向量和类别表示向量的相似度。

attention的计算方式为:

其中,q为文本向量矩阵,k为类别向量矩阵,dk为k的维度,softmax()为归一化函数。

将k转置,并与q点乘,再除以后,经过softmax函数作为最后的输出。

attention层创建了三个可训练的参数,分别为新增类别表示向量,q的权重矩阵和k的权重矩阵,此外,还有四个参数,分别是上一轮数据类别表示向量,新增类别的数量,类别向量的维度,权重矩阵的维度。类别向量的维度设为300,权重矩阵的维度设为200。

整体模型的损失函数采用交叉熵,表示真实概率分布与预测概率分布之间的差异,优化目标为最小化交叉熵值,目标函数为:

其中,n代表样本数量,p(xi)代表第i个样本的真实概率分布,q(xi)表示第i个样本的预测概率分布。

步骤s3,用第一批数据训练前述增量学习神经网络。

用步骤s1中切分的第一批数据集中的训练集来训练步骤s2中搭建的模型。因为是第一批数据,则注意力attention层的两个参数:上一轮数据类别表示向量,参数新增类别的数量,将其分别设为空,第一批数据的类别数量24。该层最终输出的张量维度为(43001,24),其中43001为第一批数据训练集的样本数,24为第一批数据的类别数量。

在训练时,用第一批数据集中的验证集来调整超参数。在测试时,挑选在验证集上效果最好的超参来评估模型在第一批数据测试集上的效果。

步骤s4,新增类别后,更新步骤s2中神经网络的参数,用第二批数据训练更新后的神经网络。

步骤一中切分的第二批数据的类别和第一批数据完全互斥,也就是说,第二批数据对于步骤三中训练好的模型来说是完全未知的。这时,将步骤三中训练好的类别向量保存并锁住,扩充类别向量矩阵,只训练更新新增的类别对应的表示向量,使得模型在记住第一批数据类别的同时也能学习到新增类别的向量表示。新增了类别后,将模型除最后一层外的其他层全部锁住,只训练最后一层注意力层的新增类别表示向量。

注意力attention层的参数:上一轮数据类别表示向量,参数新增类别的数量,则分别设置为步骤三中训练得到的类别表示向量,第二批数据的类别数量15。最终的类别向量矩阵为步骤三中训练好的类别向量和该步骤中训练的新增类别表示向量的拼接。该层最终输出的张量维度为(15653,39),其中15653为第二批数据训练集的样本数,39为两批数据类别数量之和。

在训练时,用第二批数据集中的验证集来调整超参数。在测试时,挑选在验证集上效果最好的超参来评估模型在第二批测试集以及总数据测试集上的效果。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1