[发明专利]一种终身学习的文本分类方法及系统有效

专利信息
申请号: 202210400876.X 申请日: 2022-04-18
公开(公告)号: CN114510572B 公开(公告)日: 2022-07-12
发明(设计)人: 孔蕾蕾;彭泽阳;齐浩亮;韩咏;韩中元 申请(专利权)人: 佛山科学技术学院
主分类号: G06F16/35 分类号: G06F16/35;G06N3/04;G06N3/08
代理公司: 广州专理知识产权代理事务所(普通合伙) 44493 代理人: 邓易偲
地址: 528000 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 终身 学习 文本 分类 方法 系统
【权利要求书】:

1.一种终身学习的文本分类方法,其特征在于,所述方法包括以下步骤:

S100,输入任务序列,任务序列由多个不同的任务组成;

S200,以预训练语言模型作为文本分类模型,并使用任务序列对文本分类模型进行训练得到终身学习模型;

S300,设置重放频率与存储率;

S400,设置存储记忆;以存储记忆,根据重放频率与存储率,对终身学习模型使用稀疏经验重放的方式进行微调;根据微调拟合度对终身学习模型进行再次微调;

S500,使用终身学习模型对文本内容进行预测输出;

其中,在S100中,输入任务序列,任务序列由多个不同的任务组成的方法具体为:任务序列中每个任务由训练集、校验集和测试集组成,训练集、校验集和测试集皆为由多个训练样例组成的集合,一个训练样例是一个二元数组,二元数组由两个元素组成,两个元素都是字符串,其中一个元素表示长的文本记作文本内容,另一个元素表示标签记作类别标签;

在S200中,以预训练语言模型作为文本分类模型,并使用任务序列对文本分类模型进行训练得到终身学习模型的方法具体为:

记任务序列为序列T,任务序列中元素的数量为n,任务序列中元素的序号为i,i∈[1,n],任务序列中序号为i的元素对应的任务为Ti,任务Ti中的训练集为Si,任务Ti中的校验集为Vi,任务Ti中的测试集为Testi,其中,Si中训练样例的数量记为n(i),Si中训练样例的序号记为t(i),t(i)∈[1, n(i)],Si中序号记为t(i)的训练样例记为Si(t(i)),Si(t(i))中包含的文本内容记作xi(t(i)),xi(t(i))对应的类别标签记作yi(t(i)),Ni为任务Ti中包含的类别标签的种类的数量;

所述预训练语言模型为具有12层Transformer的预训练语言模型BERT-base-uncased,记函数RepresentX()为输出嵌入向量的函数,所述输出嵌入向量为使用所述预训练语言模型作为特征提取器进而在所述预训练语言模型的第12个Transformer层提取的第一个token的嵌入向量,RepresentX(xi(t(i)))表示将xi(t(i))输入函数RepresentX()获得的嵌入向量,令嵌入向量fi(t(i))= RepresentX(xi(t(i))),所述嵌入向量皆为v维的向量,所述嵌入向量中维度的序号皆记为k,k∈[1,v];

以所述预训练语言模型作为文本分类模型的方法具体为,将xi(t(i))输入到函数RepresentX()获得fi(t(i))后再经一个具有Softmax函数的全连接层进行分类,即把具有Softmax函数的全连接层能正确得到yi(t(i))的概率值作为分类的概率值并输出,由此,把任一文本内容输入函数RepresentX()再经一个具有Softmax函数的全连接层得到分类的概率值的处理过程记作函数p(),并把xi(t(i))经过所述函数p()得到的输出记为p(t(i));

以所述预训练语言模型作为文本分类模型,使用任务序列中的各个任务输入所述预训练语言模型中进行模型训练,训练后的模型即为终身学习模型;

在S400中,设置存储记忆的方法为:

记存储记忆为Memory,存储记忆为一个具有互异性的集合,存储记忆的初始值为空集;

其中,在存储记忆中添加元素的方法为:存储记忆中的一个元素称为一个存储样本,使用任务序列对终身学习模型训练,当终身学习模型训练完5个epoch之后,终身学习模型对训练样例中的文本内容进行预测并输出其对应的类别标签,再收集正确预测输出类别标签的训练样例,将正确预测输出类别标签的训练样例中的每一个文本内容通过函数RepresentX()得到对应的嵌入向量,将正确预测输出类别标签的训练样例按照其中包含的不同的类别标签的数目分为类别标签的数目个集合,在每个集合中,使用各个训练样例文本内容对应的嵌入向量构成该集合的特征集,进而利用聚类算法对特征集聚类得到多个聚类中心,计算各个训练样例文本内容的嵌入向量与每个聚类中心的欧氏距离从而筛选出离各个聚类中心距离最近的训练样例,具体为:将正确预测输出类别标签的训练样例中包含的不同的类别标签的数目记为ni,记任务序列中总共包含的训练样例的数量为Num,记存储率为C,记在每个集合中使用聚类算法所需聚类的中心数量为m,有m=Num*C/ni,则在每个集合中通过计算训练样例中文本内容对应的嵌入向量与聚类中心的欧氏距离进而以聚类算法筛选出离各个聚类中心距离最近的训练样例后,从每个集合中取了m个训练样例及其嵌入向量作为m个存储样本加入到Memory中;以任务Ti中的任一个训练样例记作Si(t(i)),以该训练样例Si(t(i))中包含的文本内容xi(t(i))通过函数RepresentX()得到的嵌入向量记作fi(t(i)),每一个存储样本由一个训练样例Si(t(i))以及该训练样例中的文本内容通过函数RepresentX()得到的嵌入向量fi(t(i))组成;

在S400中,设置存储记忆;以存储记忆,根据重放频率与存储率,对终身学习模型使用稀疏经验重放的方式进行微调;根据微调拟合度对终身学习模型进行再次微调的方法具体为:

S401,获取训练的任务序列T;获取存储记忆Memory;设置重放频率β;设置存储率C;设置变量Accuracy表示终身学习模型在校验集上进行校验得到的准确率,令Accuracy的初始值为0;设置变量m表示聚类的中心数量;

S402,获取终身学习模型M;令变量epoch表示终身学习模型训练完所有数据集的轮数;

S403,设置任务序列T中元素的序号为i,令i的初始值为1;

S404,获取任务序列中序号为i的任务Ti;

S405,以任务Ti的训练数据集Si对终身学习模型进行训练前,将训练数据集Si分为多个批次,其中任务Ti分为的多个批次的数量记为m(i),各个批次的序号记作j(i),j(i)∈[1,m(i)],将序号为j(i)的批次记作batch(j(i)),

batch(j(i))中训练样例的数量记为n(j(i)),batch(j(i))中训练样例的序号记为t(j(i)),t(j(i))∈[1,n(j(i))],batch(j(i))中序号记为t(j(i))的训练样例记为batch(t(j(i))),batch(t(j(i)))中包含的文本内容记作xi(t(j(i))),

把文本内容xi(t(j(i)))通过函数p()得到的输出记作p(xi(t(j(i))));

S406,令epoch的数值的初始值为1,判断Ti的序号i的数值是否等于1,若是则以第一拟合度对终身学习模型进行拟合,若否则进行稀疏经验重放并进行微调,具体过程如下:

S406-1,令j(i)的初始值为1;

S406-2,获取任务Ti中序号为j(i)的批次batch(j(i));令终身学习模型在任务Ti的批次batch(j(i))的各训练样例上进行计算得到第一拟合度,并以第一拟合度作为损失函数对终身学习模型进行基于梯度下降算法的反向传播;

S406-3,判断j(i)是否满足第一条件,其中,计算j(i)除以β所得的浮点数p,若p的小数位全为0则为满足第一条件;若j(i)满足第一条件则转到S406-4,若否则转到S406-6;

S406-4,从Memory中随机抽取n(j(i))个元素并将各个元素中包含的训练样例组成一个批次并将该一个批次记作batch(j(i))r,

batch(j(i))r中训练样例的序号同为t(j(i)),batch(j(i))r中序号为t(j(i))的训练样例记为batch(t(j(i)))r,batch(t(j(i)))r中包含的文本内容记作xi(t(j(i)))r,同时将从Memory中获取训练样例batch(t(j(i)))r对应的嵌入向量作为fi(t(j(i)))r,

把文本内容xi(t(j(i)))r通过函数p()得到的输出记作p(xi(t(j(i))))r;

将xi(t(j(i)))r通过当前的终身学习模型的第12个Transformer提取的第一个token的嵌入向量作为fi(t(j(i)))r`;

由于fi(t(j(i)))r与fi(t(j(i)))r`皆为嵌入向量,fi(t(j(i)))r与fi(t(j(i)))r`皆为v维的向量,fi(t(j(i)))r与fi(t(j(i)))r`中维度的序号皆为k,fi(t(j(i)))r中序号为k的维度的数值为fi(t(j(i)))r_k,fi(t(j(i)))r`中序号为k的维度的数值为fi(t(j(i)))r`_k;

进而,令终身学习模型在batch(j(i))r的各训练样例上进行计算得到第二拟合度,再以第二拟合度作为损失函数对终身学习模型进行基于梯度下降算法的反向传播,转到S406-6;

S406-5,执行在S400中设置存储记忆的方法,在存储记忆中添加元素;获取当前Memory中包含元素的个数为Nm,从Memory中以C为采样频率选取出数量为Nm乘C个元素,获取Nm乘C个元素中各自包含的训练样例并以这些训练样例组成若干个分别由其中的n(j(i))个训练样例组成的批次,

记其中各个批次的训练样例为batch(c),由于batch(c)中有n(j(i))个训练样例,batch(c)中元素的序号同为t(j(i)),t(j(i))∈[1, n(j(i))],batch(c)中序号记为t(j(i))的训练样例记为batch(c)(t(j(i))),batch(c)(t(j(i)))中包含的文本内容记作xc(t(j(i))),

将从Memory中获取训练样例batch(c)对应的嵌入向量作为f(c),f(c)在序号为k的维度上的数值为f(c)(k),同时获取xc(t(j(i)))通过当前的终身学习模型的第12个Transformer层提取的第一个token的嵌入向量作为f(c)r, f(c)r在序号为k的维度上的数值为f(c)r(k),

把文本内容xc(t(j(i)))通过函数p()得到的输出记作p(xc(t(j(i))));

在batch(c)上进行计算得到的微调拟合度作为Lft(j(i)),微调拟合度的计算公式为:

再以Lft(j(i))作为损失函数对终身学习模型进行基于梯度下降算法的反向传播;终身学习模型训练10个epoch,依次记录训练完每个epoch最后得到的校验值的准确率,保存其中准确率最高的epoch中终身学习模型的参数作为模型权重,转到S408;

S406-6,判断j(i)是否小于m(i),若是则令j(i)的数值增加1并转到S406-2,若否则转到S407;

S407,终身学习模型加载模型权重对校验集进行预测,其中用来进行预测的校验集为终身学习模型执行到Ti个任务时包含了前i个任务中各任务的校验集的样本,在用来进行预测的校验集上得到的准确率为n_Accuracy,判断n_Accuracy是否大于Accuracy,若是则令Accuracy=n_Accuracy并更新模型权重;判断epoch的数值是否小于5,若是令epoch的数值增加1并转到S406-1,若否则转到S406-5;

S408,判断i是否小于n,若是则令i的数值增加1并转到S404,若否则将终身学习模型的参数保存并将终身学习模型输出,由此得到在5个任务数据集顺序训练后的终身学习模型;

其中,在S406-4中,令终身学习模型在batch(j(i))r的各训练样例上进行计算得到第二拟合度的方法具体为:终身学习模型在batch(j(i))r的各训练样例上进行计算得到第二拟合度,记第二拟合度作Lo(j(i)),Lo(j(i))的计算结果等于:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于佛山科学技术学院,未经佛山科学技术学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210400876.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top