一种多标签分类方法、装置及可读介质与流程

文档序号:28077816发布日期:2021-12-18 01:03阅读:81来源:国知局
一种多标签分类方法、装置及可读介质与流程

1.本发明涉及自然语言处理领域,具体涉及一种多标签分类方法、装置及可读介质。


背景技术:

2.从非结构化文本中进行多标签分类已经在对话领域中成为了一个非常重要的分支,可以应用于意图识别、文本情感分类等领域。多标签分类是指对文本分类的结果为零个或多个互斥的结果。并且,随着大规模预训练模型的快速发展,在通用数据集上或垂直领域数据集上的大规模训练的预训练模型可以为下游模型的训练提供强大的助力,可以达到非常好的效果。预训练模型与传统深度网络模型的结合已经成为了快速解决问题的标配。
3.但现有的多标签分类方法有着一定的局限性,主要体现在以下几个方面:
4.(1)在应用预训练模型过程中,无法准备捕捉到每个字符的含义,使得分类结果更偏向于句子整体含义,而某些特殊字符所表达的含义却被忽略。
5.(2)在获取多标签分类结果的时候,标签之间通常存在相互影响的关系,例如有些标签有很大可能性同时出现,或者标签出现的顺序同样会影响到分类结果。
6.(3)一般的多标签分类法方法模型复杂,复杂度较高,在实际应用过程中存在一定困难和局限性。


技术实现要素:

7.针对上述提到的技术问题。本技术的实施例的目的在于提出了一种多标签分类方法、装置及可读介质,来解决以上背景技术部分提到的技术问题。
8.第一方面,本技术的实施例提供了一种多标签分类方法,包括以下步骤:
9.s1,获取预处理后的对话数据集,将预处理后的对话数据集分为多个batch数据,基于batch数据通过训练好的预训练模型,得到第i句中第t个字符的特征向量;
10.s2,将第i句中第t个字符的特征向量输入第一attention层,得到第i个句子的第一特征向量;
11.s3,建立标签信息矩阵,通过上一次得到的标签预测结果与标签信息矩阵得到上一次预测得到的标签特征向量;
12.s4,将第i个句子的第一特征向量与上一次预测得到的标签特征向量进行拼接,并输入第二attention层,得到第i个句子的第二特征向量;
13.s5,将第i个句子的第一特征向量和第i个句子的第二特征向量进行拼接,并输入残差网络结构进行特征提取得到第i个句子的第三特征向量;
14.s6,将第i个句子的第三特征向量输入分类器中,得到标签预测结果;
15.s7,多次重复步骤s1

s6,得到最终的标签预测结果。
16.在一些实施例中,预处理后的对话数据集通过以下步骤得到:去除对话数据集中的无用字符,无用字符包括特殊字符和表情符号。
17.在一些实施例中,采用预处理后的对话数据集对已在通用数据集上训练好的预训
练模型进行预训练,得到在垂直领域上的训练好的预训练模型。
18.在一些实施例中,预训练模型包括bert模型,bert模型包括12层encoder层。
19.在一些实施例中,步骤s1中训练好的预训练模型采用哈工大开源的roberta作为初始权重进行再次预训练,输入为batch数据的第i句话中第t个字符在字典中对应的id。
20.在一些实施例中,步骤s2中通过第一attention层获取每个字符对句子特征的重要程度信息,具体包括:
21.u
it
=tanh(w
w
h
it
+b
w
);
[0022][0023]
s
i
=∑
t
α
it
h
it

[0024]
其中,h
it
为第i句中第t个字符的特征向量,w
w
、b
w
分别为其对应的权重和偏置,u
w
为每个字符的权重,α
it
为每个字符在句子中的重要程度,s
i
为第i个句子的第一特征向量。
[0025]
在一些实施例中,步骤s3中标签信息矩阵为一个初始化矩阵权重w
n
×
h
,其中n为所有的标签数量,h为特征维度,每个batch数据所对应的上一次预测得到的标签特征向量为o
t
‑1*w
n
×
h
,其中o
t
‑1为上一次得到的标签预测结果,上一次得到的标签预测结果为n个标签每个标签的预测分数,第一次得到的标签预测结果为零,*为逐元乘法。
[0026]
在一些实施例中,步骤s4中通过第二attention层获取不同标签的重要程度信息。
[0027]
在一些实施例中,步骤s6中的分类器包括线性层,所述线性层采用sigmoid激活函数。
[0028]
第二方面,本技术的实施例提供了一种多标签分类装置,包括:
[0029]
预训练模块,被配置为获取预处理后的对话数据集,将预处理后的对话数据集分为多个batch数据,基于batch数据通过训练好的预训练模型,得到第i句中第t个字符的特征向量;
[0030]
第一attention模块,被配置为将第i句中第t个字符的特征向量输入第一attention层,得到第i个句子的第一特征向量;
[0031]
标签特征向量获取模块,被配置为建立标签信息矩阵,通过上一次得到的标签预测结果与标签信息矩阵得到上一次预测得到的标签特征向量;
[0032]
第二attention模块,被配置为将第i个句子的第一特征向量与上一次预测得到的标签特征向量进行拼接,并输入第二attention层,得到第i个句子的第二特征向量;
[0033]
特征提取模块,被配置为将第i个句子的第一特征向量和第i个句子的第二特征向量进行拼接,并输入残差网络结构进行特征提取得到第i个句子的第三特征向量;
[0034]
分类模块,被配置为将第i个句子的第三特征向量输入分类器中,得到标签预测结果;
[0035]
重复模块,被配置为多次重复执行预训练模块至分类模块,得到最终的标签预测结果。
[0036]
第三方面,本技术的实施例提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
[0037]
第四方面,本技术的实施例提供了一种计算机可读存储介质,其上存储有计算机
程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
[0038]
相比于现有技术,本发明具有以下有益效果:
[0039]
1.本发明应用预训练模型并且在垂直领域的数据集上再次进行预训练,可以明显提高下游任务性能。
[0040]
2.本发明应用attention机制,在进行句子含义特征表达的时候,可以很好的抓取特殊字符的具体含义,使得分类结果具有更加小的细粒度。
[0041]
3.本发明应用多标签推理机制,可以发现标签之间的相互关系,并且不受标签之间的顺序影响,模型效果非常好。
[0042]
4.本发明的模型较简单,复杂度较低,可以快速开发与部署。
附图说明
[0043]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]
图1是本技术的一个实施例可以应用于其中的示例性装置架构图;
[0045]
图2为本发明的实施例的多标签分类方法的流程示意图;
[0046]
图3为本发明的实施例的多标签分类方法的步骤s1之前的流程示意图;
[0047]
图4为本发明的实施例的多标签分类方法的多标签分类模型的流程示意图;
[0048]
图5为本发明的实施例的多标签分类装置的示意图;
[0049]
图6是适于用来实现本技术实施例的电子设备的计算机装置的结构示意图。
具体实施方式
[0050]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0051]
图1示出了可以应用本技术实施例的多标签分类方法或多标签分类装置的示例性装置架构100。
[0052]
如图1所示,装置架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0053]
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种应用,例如数据处理类应用、文件处理类应用等。
[0054]
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实
现成单个软件或软件模块。在此不做具体限定。
[0055]
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上传的文件或数据进行处理的后台数据处理服务器。后台数据处理服务器可以对获取的文件或数据进行处理,生成处理结果。
[0056]
需要说明的是,本技术实施例所提供的多标签分类方法可以由服务器105执行,也可以由终端设备101、102、103执行,相应地,多标签分类装置可以设置于服务器105中,也可以设置于终端设备101、102、103中。
[0057]
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在所处理的数据不需要从远程获取的情况下,上述装置架构可以不包括网络,而只需服务器或终端设备。
[0058]
图2示出了本技术的实施例提供的一种多标签分类方法,包括以下步骤:
[0059]
s1,获取预处理后的对话数据集,将预处理后的对话数据集分为多个batch数据,基于batch数据通过训练好的预训练模型,得到第i句中第t个字符的特征向量。
[0060]
在具体的实施例中,如图3所示,在步骤s1之前还包括:
[0061]
s11,对对话数据集进行预处理;
[0062]
s12,采用步骤s11预处理后的对话数据集对已在通用数据集上训练好的预训练模型进行预训练。
[0063]
具体地,步骤s11的预处理过程包括去除特殊字符、表情符号等无用字符,可以提高文本的规范性。
[0064]
在具体的实施例中,预训练模型选择bert模型,并采用masked language model任务继续预训练,得到在垂直领域上的预训练模型,使得预训练模型更符合对话数据集分布,提高预训练模型在下游任务上的性能。当然也可以根据具体对话场景选择其他预训练模型,在本实施例中,以bert模型为例。bert是一个语言表征模型(language representation model),通过超大数据、巨大模型、和极大的计算开销训练而成。bert表示在所有层中共同依赖于左右上下文。
[0065]
在此基础上,构建多标签分类模型,如图4所示,多标签分类模型包括训练好的bert模型、两个attention层、标签信息嵌入矩阵和分类器。并且将预处理后的对话数据集分为多个batch数据。在模型训练时,每个batch数据都会重复输入多标签分类模型训练多次,在测试集和验证集也要重复多次。
[0066]
在具体的实施例中,步骤s1中的bert模型采用哈工大开源的roberta为初始权重进行再次预训练,具体为12层encoder层,输入为第i句话中每个字符在字典中对应的id,输出为第i句中每个字符的特征向量。由于采用哈工大开源的roberta为初始权重的bert模型已经包含了字典,因此可以直接加载使用,不需要进行字典重构。
[0067]
s2,将第i句中第t个字符的特征向量输入第一attention层,得到第i个句子的第一特征向量。
[0068]
在具体的实施例中,步骤s2中的第一attention层主要是衡量每个字符对整个句子特征的重要程度,从而抓取特殊字符的具体含义。具体的计算公式如下:
[0069]
u
it
=tanh(w
w
h
it
+b
w
);
[0070][0071]
s
i
=∑
t
α
it
h
it

[0072]
其中,h
it
为第i句中第t个字符的特征向量,w
w
、b
w
分别为其对应的权重和偏置,u
w
为每个字符的权重,α
it
为每个字符在句子中的重要程度,s
i
为第i个句子的第一特征向量。
[0073]
s3,建立标签信息矩阵,通过上一次得到的标签预测结果与标签信息矩阵得到上一次预测得到的标签特征向量。
[0074]
在具体的实施例中,步骤s3中标签信息矩阵为一个初始化矩阵权重w
n
×
h
,其中n为所有的标签数量,h为特征维度,每个batch数据都会训练多次,每次都是通过矩阵权重与上一次的标签预测结果o
t
‑1相乘得到上一次预测得到标签预测结果。也就是,每个batch数据所对应的上一次预测得到的标签特征向量为o
t
‑1*w
n
×
h
,其中,*为逐元乘法o
t
‑1为n个标签每个标签的预测分数,第一次得到的标签预测结果为零。达到类似于门结构,可以过滤掉无用的标签信息,增强相关的标签信息,从而引入了标签之间的相互关系。
[0075]
s4,将第i个句子的第一特征向量与上一次预测得到的标签特征向量进行拼接,并输入第二attention层,得到第i个句子的第二特征向量。
[0076]
在具体的实施例中,步骤s4中通过第二attention层获取不同标签的重要程度信息。第二attention层的计算方式与第一attention层一致,以此类推,可以得到第i个句子的第二特征向量。通过拼接上一次预测得到的标签特征向量,来获取标签之间的标签信息,例如,某两个标签总是同时出现,通过引入上一次预测得到的标签特征向量,可以加强这种关系。
[0077]
s5,将第i个句子的第一特征向量和第i个句子的第二特征向量进行拼接,并输入残差网络结构进行特征提取得到第i个句子的第三特征向量。将第i个句子的第一特征向量和第二特征向量拼接起来,来增加特征的丰富程度,除了可以获取到本身的分类信息,还能获取到标签之间的信息。
[0078]
具体地,残差网络结构为y=f(x,w)+x,其中x为输入,y为第i个句子的第三特征向量,f(x,w)为经过权重为w的网络层的输出,得到网络层的输出在加上输入x即为残差网络。残差网络可以提高模型的泛化性。s6:将第i个句子的第三特征向量输入分类器中,得到标签预测结果。
[0079]
在具体的实施例中,步骤s6中的分类器包括xxx,分类器的输出结果为o
t
,其中o
t
为n个标签每个标签的预测分数。分类器包括但不限于逻辑回归(logistics)、svm、softmax。
[0080]
s7,多次重复步骤s1

s6,得到最终的标签预测结果。
[0081]
具体地,在训练过程中,每个batch数据都会训练多次并且需要用到上一轮预测的标签预测结果,默认采用2轮,即每个batch数据都会训练两次,第一轮输入的标签预测结果为空,第二轮输入的标签结果为第一轮的标签预测结果,从而获取标签之间的相互关系。在测试集验证过程中,也需重复运行步骤s1

s6,来得到最终的预测结果。
[0082]
进一步参考图5,作为对上述各图所示方法的实现,本技术提供了一种多标签分类装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0083]
本技术实施例提供了一种多标签分类装置,包括:
[0084]
预训练模块1,被配置为获取预处理后的对话数据集,将对话数据集分为多个batch数据,基于batch数据通过训练好的预训练模型,得到第i句中第t个字符的特征向量;
[0085]
第一attention模块2,被配置为将第i句中第t个字符的特征向量输入第一attention层,得到第i个句子的第一特征向量;
[0086]
标签特征向量获取模块3,被配置为建立标签信息矩阵,通过上一次得到的标签预测结果与标签信息矩阵得到上一次预测得到的标签特征向量;
[0087]
第二attention模块4,被配置为将第i个句子的第一特征向量与上一次预测得到的标签特征向量进行拼接,并输入第二attention层,得到第i个句子的第二特征向量;
[0088]
特征提取模块5,被配置为将第i个句子的第一特征向量和第i个句子的第二特征向量进行拼接,并输入残差网络结构进行特征提取得到第i个句子的第三特征向量;
[0089]
分类模块6,被配置为将第i个句子的第三特征向量输入分类器中,得到标签预测结果;
[0090]
重复模块7,被配置为多次重复执行预训练模块1至分类模块6,得到最终的标签预测结果。
[0091]
本发明主要应用于对话系统中对于问句的信息解析,进行多意图识别,以便后续针对性回答使用。并且可以适用于不同的垂直领域。在医疗对话中,经常存在同时询问疾病信息和治疗方法,此时对应的场景为多标签分类,应用此方法可以很好的进行针对性回答,提高对话系统的流畅性和准确性。例如,用户询问:腹泻是什么原因导致的,怎么治疗?此问句同时询问了疾病原因和治疗方法。通过本技术的实施例,此句话的预测结果为:病因和治疗方式两个标签。
[0092]
本发明提出的多标签分类方法,通过引入attention机制可以抓取文本中的一些特殊字符的具体含义,提高分类效果,并且,通过引入多标签推理机制,可以获取多标签之间的相互关系,并且不会受到多标签之间的顺序的影响。最后,使用在垂直对话领域上继续预训练的预训练模型,更进一步提高了模型的精度,达到了优秀的分类结果。
[0093]
下面参考图6,其示出了适于用来实现本技术实施例的电子设备(例如图1所示的服务器或终端设备)的计算机装置600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0094]
如图6所示,计算机装置600包括中央处理单元(cpu)601和图形处理器(gpu)602,其可以根据存储在只读存储器(rom)603中的程序或者从存储部分609加载到随机访问存储器(ram)604中的程序而执行各种适当的动作和处理。在ram 604中,还存储有装置600操作所需的各种程序和数据。cpu 601、gpu602、rom 603以及ram604通过总线605彼此相连。输入/输出(i/o)接口606也连接至总线605。
[0095]
以下部件连接至i/o接口606:包括键盘、鼠标等的输入部分607;包括诸如、液晶显示器(lcd)等以及扬声器等的输出部分608;包括硬盘等的存储部分609;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分610。通信部分610经由诸如因特网的网络执行通信处理。驱动器611也可以根据需要连接至i/o接口606。可拆卸介质612,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器611上,以便于从其上读出的计算机程序根据需要被安装入存储部分609。
[0096]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机
软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分610从网络上被下载和安装,和/或从可拆卸介质612被安装。在该计算机程序被中央处理单元(cpu)601和图形处理器(gpu)602执行时,执行本技术的方法中限定的上述功能。
[0097]
需要说明的是,本技术所述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的装置、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行装置、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行装置、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0098]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0099]
附图中的流程图和框图,图示了按照本技术各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0100]
描述于本技术实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中。
[0101]
作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是
上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取预处理后的对话数据集,将预处理后的对话数据集分为多个batch数据,基于batch数据通过训练好的预训练模型,得到第i句中第t个字符的特征向量;将第i句中第t个字符的特征向量输入第一attention层,得到第i个句子的第一特征向量;建立标签信息矩阵,通过上一次得到的标签预测结果与标签信息矩阵得到上一次预测得到的标签特征向量;将第i个句子的第一特征向量与上一次预测得到的标签特征向量进行拼接,并输入第二attention层,得到第i个句子的第二特征向量;将第i个句子的第一特征向量和第i个句子的第二特征向量进行拼接,并输入残差网络结构进行特征提取得到第i个句子的第三特征向量;将第i个句子的第三特征向量输入分类器中,得到标签预测结果;多次重复以上步骤,得到最终的标签预测结果。
[0102]
以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1