一种短文本多标签分类方法与流程

文档序号:21888321发布日期:2020-08-18 17:34阅读:559来源:国知局
一种短文本多标签分类方法与流程

本发明属于自然语言处理领域,涉及一种短文本多标签分类方法。



背景技术:

多标签分类在文本、图像、生物基因功能和视频语义标注等方面得到了广泛的应用。与单标签分类相比,多标签分类更符合现实世界的客观规律,是自然语言处理领域(nlp)的一项重要任务,目标是为数据集中的每个实例分配多个标签。短文本的稀疏性导致其多标签分类相较与长文本多标签分类存在样本真实标签信息不足的问题,很难根据短文本准确预测所有标签。因此短文本多标签分类模型在训练学习时需要更多信息预测更多标签,防止某些特征信息不足容易忽略真实标签。

目前,多标签分类的相关研究工作可以分为三类:一阶算法、二阶算法和高阶算法。一阶算法把多标签分解成多个独立的二分类问题,不考虑多标签之间的相关性;二阶算法考虑标签之间的成对关联关系,比如为相关标签和不相关标签排序。由于二阶策略一定程度上利用了标签相关性,因此,基于二阶策略的多标签分类算法可以获得较好的泛化性能。然而,在实际的应用当中,标签相关性一般超出了二阶相关;高阶算法通过挖掘所有类别标签集合或标签子集之间的相关性来解决多标签学习问题,试图通过假设所有样本都相关来全局地利用标签相关性,但是在许多情况下,使用全局标签相关性学习的多标签分类器的分类效果不是非常有效的,同时在计算上要求更高。

随着文本数据的大量产生,人们针对文本的多标签分类技术做了大量探索和实践。专利申请号cn201410310719.5提出了一种多标签文本分类方法及系统,该方法通过选取使得后验概率最大的标签子集作为待分类文档的分类结果,具有总体性能高及计算量小的特点。专利申请号cn201510114326.1提出了一种多标签分类方法及相应装置,该方法利用问题转换算法将多标签分类问题转换成多个单标签分类问题。目前的多标签分类方法没有学习到标签之间的依赖关系,解决不了短文本信息不足而无法预测所有标签的问题。



技术实现要素:

针对上述背景技术介绍中存在的问题,本发明的目的在于提供了一种短文本多标签分类方法,解决了短文本信息不足而无法准确预测所有标签的问题,提高文本多标签分类的准确性。

本发明采用的技术方案是:

一种短文本多标签分类方法,其具体步骤如下:

s1、将收集的短文本数据进行文本预处理得到文本向量和对应的标签集向量;

s2、利用自注意力机制学习文本内部的依赖关系,得到新的文本向量;

s3、利用图注意力神经网络学习标签之间的依赖关系,得到新的标签集向量;

s4、将新的文本向量和新的标签集向量进行点乘,输出文本标签向量,利用目标函数对文本标签向量与真实标签向量进行对齐训练得到文本多标签分类模型;

s5、将待预测文本进行预处理得到文本向量后输入到文本多标签分类模型中预测分类。

进一步,步骤s1中的文本预处理的具体步骤包括:

s11、将收集到的短文本进行清洗得到字符级短文本数据s;

s12、构建词汇表:将步骤s11输出的短文本数据s中的字符整理成集合作为模型输入的词汇表cx={<s>:0,</s>:1,unk:2,...,x:x_size},同时将收集的短文本数据标签整理成集合作为模型输出的词汇表cy={<s>:0,</s>:1,...,y:y_size},其中<s>为开始标识,</s>为结束标识,unk为未知字符标识,x为短文本数据中的字符,y为短文本数据对应的标签,x_size为短文本数据的字符总数,y_size为短文本数据的标签总数;

s13、构建标签关系数据集:假设一个短文本数据对应多个标签,则定义这些标签相互存在联系,以此类推,对所有短文本数据对应的标签以成对形式整理为标签关系数据集label∈rl×2,其中l为有关系标签的总数;

s14、文本嵌入:假设一个短文本数据预处理后为对应标签集为其中lx为固定的文本长度,ly为标签集长度,则根据步骤s12输出的词汇表cx,cy构造矩阵,文本矩阵为标签集矩阵为将标签集矩阵转为one-hot形式,即yone-hot∈ry_siz×e1;同时利用wordembedding给文本矩阵每个字符分配一个固定长度为lw的向量表示,得到文本向量给cy中所有标签分配一个固定长度为lw的向量表示,即标签集向量

进一步,步骤s11中短文本清洗包括数据去重、删除相似数据、去停用词。

进一步,步骤s2的具体步骤如下:

s21、创建q,k,v三个矢量:初始化三个变量根据步骤s14输出的文本向量得到

s22、计算自注意力:首先计算文本中第一个词的自我关注,第一个得分score=q1·k1,第二个得分score=q1·k2,以此类推第lx个得分使梯度保持稳定,其中bk为k的维度;

s23、keymasking:对k进行求和为key_mask,记录key_mask为0时的索引,根据步骤s22输出的score在相同索引处替换为小数字,保持关注的词或字的值不变并淹没不相关的词或字;

s24、输出文本向量:通过softmax将步骤s23输出的分数标准化,softmax分数即此词在该位置表达的程度,由softmax分数乘以v为z1,即第一个词的向量,以此类推新文本向量

output=attention×v(2)

其中attention为分数标准化,output为输出。

进一步,步骤s2还可以采用多头注意力机制学习文本内部的依赖关系,根据预设注意力头的数量,重复步骤s21至步骤s24,将每次得到的文本向量合并并输出最终的新文本向量。

进一步,步骤s3的具体步骤如下:

s31、构建图网络:初始化一个零矩阵o∈ry_size×y_size,根据步骤s13输出的标签关系数据集label,通过公式a=o[labell[0],labell[1]]=1构建一个无向图,其中labell[0]为labell的第一个值,labell[1]为labell的第二个值,如假设label1=[1,3],使零矩阵o的第一行第三列值为1,即a=o[1,3]=1;

s32、标签注意力层:根据步骤s31输出的图网络a,对每个顶点逐个计算它的邻居们和它自己之间的注意力系数;对于顶点i,与其邻居j∈ni之间的注意力系数eij为:

即一个共享参数对顶点进行特征增强,并与邻居顶点相乘映射到一个实数αij上,最后根据计算好的注意力系数进行特征加权求和,即为顶点(标签)的新特征向量表示:

其中σ为激活函数,最终输出新的标签集向量

进一步,步骤s32标签注意力层还可以采用多头注意力机制,根据预设注意力头的数量,训练不同的共享参数,重复步骤s32,将每次得到的标签集向量合并并降维,输出最终的新标签集向量。

进一步,步骤s4的具体步骤如下:

s41、构建文本标签向量:将步骤s24输出的文本向量与步骤s32输出的标签集向量进行点乘,输出文本标签向量

s42、全连接层:将步骤s41输出的文本标签向量通过全连接层进行降维,得到文本标签向量x_y'∈r1×y_size

s43、目标函数:将步骤s42输出的文本标签向量x_y'∈r1×y_size与步骤s14输出的yone-hot∈ry_size×1进行对齐,计算其损失值,损失函数如下:

根据损失值不断迭代更新网络参数,生成文本多标签分类模型m。

本发明与现有技术相比,其显著优点包括:

1、本发明采用的图网络模型,学习每个标签之间的依赖关系,更好地考虑标签之间的相关性,解决了短文本信息不足而无法准确预测所有标签的问题。

2、本发明采用注意力机制与图网络结合的方法,可自动捕获不同标签之间的权重关系,学习每个标签之间的依赖程度,使学习到的标签向量更加丰富全面,提高文本多标签分类的准确性。

附图说明

图1是本发明采用的技术方案流程图;

图2是本发明采用的图注意力神经网络计算流程图。

具体实施方式

下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。

参见图1,本实施例提供了一种短文本多标签分类方法,其具体步骤如下:

s1、将收集的短文本数据进行文本预处理得到文本向量和对应的标签集向量;其具体步骤包括:

s11、将收集到的短文本进行清洗得到字符级短文本数据s,其中短文本清洗包括数据去重、删除相似数据、去停用词(数字、日期、标点符号等干扰信息);本实施例将法律网上收集的10万条短问题数据(法律咨询问题带有领域标签)去重复数据,用杰卡德算法删除相似度80%的数据,同时去停用词(数字、日期、标点符号等干扰信息),得到字符级短文本数据s。如果是特定领域短文本数据无自带标签,需要自行打标签。

s12、构建词汇表:将步骤s11输出的短文本数据s中的字符整理成集合作为模型输入的词汇表cx={<s>:0,</s>:1,unk:2,...,x:x_size},同时将收集的短文本数据标签整理成集合作为模型输出的词汇表cy={<s>:0,</s>:1,...,y:y_size},其中<s>为开始标识,</s>为结束标识,unk为未知字符标识,x为短文本数据中的字符,y为短文本数据对应的标签,x_size为短文本数据的字符总数,y_size为短文本数据的标签总数;本实施例x_size=5000,y_size=86。

s13、构建标签关系数据集:假设一个短文本数据对应标签集为{y1,y3,y7},则可定义为y1与y3,y1与y7,y3与y7标签存在联系,以此类推,对所有短文本数据对应的标签集分别以[1,3],[1,7],[3,7]形式整理为标签关系数据集label∈rl×2,其中l为有关系标签的总数,本实施例l=348;

s14、文本嵌入:假设一个短文本数据预处理后为对应标签集为其中lx为固定的文本长度(文本长度不足补0),ly为标签集长度,则根据步骤s12输出的词汇表cx,cy构造矩阵,文本矩阵为标签集矩阵为将标签集矩阵转为one-hot(独热编码)形式yone-hot∈ry_size×1,即用y_size位状态寄存器编码y_size个状态,这些寄存器位中只有一位有效以1表示,其余为0;同时利用wordembedding(单词映射函数)给文本矩阵每个字符分配一个固定长度为lw的向量表示,得到文本向量给cy中所有标签分配一个固定长度为lw的向量表示,即标签集向量本实施例中lx=160,ly=6,yone-hot∈r86×1,lw=256,x”∈r160×256,y”∈r86×256

s2、利用自注意力机制学习文本内部的依赖关系,得到新的文本向量;其具体步骤如下:

s21、创建q,k,v三个矢量:初始化三个变量根据步骤s14输出的文本向量得到本实施例采用多头自注意力机制,经测试采用8头自注意力机制效果更好,初始化三个变量wq,wk,wv∈r256×256并切分成8等分,即wq,wk,wv∈r8×(256×32),根据步骤s14输出的文本向量得到:

q=x″×wq=[q1q2…q8]∈r8×(160×32)

k=x″×wk=[k1k2…k8]∈r8×(160×32)

v=x″×wv=[v1v2…v8]∈r8×(160×32)

s22、计算自注意力:首先计算文本中第一个词的自我关注,第一个得分score=q1·k1,第二个得分score=q1·k2,以此类推第lx个得分使梯度保持稳定,其中bk为k的维度;本实施例首先计算文本中第一个词第一头(q1,k1,v1)的自我关注,第一个得分score=q11·k11,第二个得分score=q11·k12,以此类推第160个得分score=q11·k1160,将(其中bk=256为k的维度)使梯度保持稳定;

s23、keymasking:对k进行求和为key_mask,记录key_mask为0时的索引,根据步骤s22输出的score在相同索引处替换为小数字,保持关注的词或字的值不变并淹没不相关的词或字;本实施例对k1进行求和为key_mask,小数字为-2047,即keymasking机制考虑到了补0的位置不参与后续计算,因此在补0的位置上赋予一个极小值;

s24、输出文本向量:通过softmax将步骤s23输出的分数标准化,softmax分数即此词在该位置表达的程度,由softmax分数乘以v为z1,即第一个词的向量,以此类推新文本向量

output=attention×v(2)

其中attention为分数标准化,output为输出;

本实施例由softmax分数乘以v1为z1(即第一个词第一头的编码向量),以此类推第一头文本的编码向量x″′1=[z1z2…z160]∈r160×32,将第二头至第八头重复步骤s22和步骤s23,得到文本编码向量x″′=[x″′1x″′2…x″′8]∈r8×(160×32),同时将8头文本编码向量在对应的列向量处进行拼接输出文本编码向量x″′∈r160×256

s3、利用图注意力神经网络学习标签之间的依赖关系,得到新的标签集向量;其具体步骤如下:

s31、构建图网络:初始化一个零矩阵o∈ry_size×y_size,根据步骤s13输出的标签关系数据集label,通过公式a=o[labell[0],labell[1]]=1构建一个无向图,其中labell[0]为labell(长度为2的列表)的第一个值,labell[1]为labell的第二个值,如假设label1=[1,3](标签1与标签3存在联系),使零矩阵o的第一行第三列值为1,即a=o[1,3]=1;本实施例零矩阵o∈r86×86

s32、标签注意力层:根据步骤s31输出的图网络a,对每个顶点逐个计算它的邻居们和它自己之间的注意力系数;对于顶点i,与其邻居j∈ni之间的注意力系数eij为:

即一个共享参数对顶点进行特征增强,并与邻居顶点相乘映射到一个实数αij上,最后根据计算好的注意力系数进行特征加权求和,即为顶点(标签)的新特征向量表示:

其中σ为激活函数,最终输出新的标签集向量表示本实施例采用多头标签注意力层,经测试采用6头标签注意力层效果更好,即6个共享参数分别对顶点进行特征增强,得到顶点(标签)的新特征向量表示:最后将新特征向量表示在对应的列向量处进行拼接得到y”'∈r86×(256×6),同时进行降维输出新的标签向量表示y”'∈r86×256

s4、利用目标函数训练分类器训练文本标签向量得到文本多标签分类模型;其具体步骤如下:

s41、构建文本标签向量:将步骤s24输出的文本向量与步骤s32输出的标签向量进行点乘,输出文本标签向量本实施例将步骤s24输出的文本向量x”'∈r160×256与步骤s32输出的标签向量y”'∈r86×256进行点乘,输出文本标签向量x_y∈r160×86

s42、全连接层:将步骤s41输出的文本标签向量通过全连接层进行降维,得到文本标签向量x_y'∈r1×y_size;本实施例将步骤s41输出的文本标签向量x_y∈r160×86通过全连接层进行降维,得到文本标签向量x_y'∈r1×86

s43、目标函数:将步骤s42输出的文本标签向量x_y'∈r1×y_size与步骤s14输出的yone-hot∈ry_size×1进行对齐,计算其损失值,损失函数如下:

根据损失值不断迭代更新网络参数,生成文本多标签分类模型m;

本实施例将步骤s42输出的文本标签向量x_y'∈r1×86与步骤s14输出的yone-hot∈r86×1进行对齐,计算其损失值,损失函数如下:

根据损失值不断迭代更新网络参数,生成文本多标签分类模型m。

s5、加载步骤s43输出的文本多标签分类模型m,将待预测文本进行预处理得到文本向量后输入到文本多标签分类模型中预测分类,从而实现多标签预测。

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