基于对抗训练的对比学习层次编码文本聚类方法及系统与流程

文档序号:30737905发布日期:2022-07-13 04:58阅读:174来源:国知局

1.本发明涉及自然语言处理技术领域,具体而言,涉及基于对抗训练的对比学习层次编码文本聚类方法及系统。


背景技术:

2.在当前的智能对话系统中,无论是闲聊性对话还是任务型对话系统,都需要人工对海量的样本进行标注用以确定每个样本的意图,然后用深度学习模型来对其进行意图识别训练。然而上述方法至少存在以下缺陷:(1)上至几千万的数据集标注会耗费非常大的人力资源;(2)人工标注会出现标注错误的情况,一旦有标注错误,一方面对于模型训练带来效果的不确定性,一方面还会导致返工检查样本错误的情况,进一步加剧了人工的浪费。


技术实现要素:

3.本发明的目的在于提供基于对抗训练的对比学习层次编码文本聚类方法及系统,通过对比学习和对抗训练得到较优的文本向量表示,再通过向量表示构建无向图,通过infomap算法对无向图进行聚类,可以实现海量无标注文本中相似样本的聚类,使得相同意图的样本能够分为一个簇,发现每个簇的意图,旨在解决背景技术中所指出的问题。
4.本发明的实施例通过以下技术方案实现:基于对抗训练的对比学习层次编码文本聚类方法,包括如下步骤:s1.利用对比学习模型作为编码器,将一批训练集输入编码器中进行重构学习;s2.在编码器的训练过程中加入对抗训练,根据损失函数指导编码器的训练;s3.利用infomap算法对编码器所输出的文本向量进行聚类。
5.根据一种优选实施方式,所述编码器采用bert、roberta、tiny_bert或者bert_wwm其中之一。
6.根据一种优选实施方式,若所述编码器采用bert,则编码器所输出的文本向量经过一个多层感知机mlp,进行降维。
7.根据一种优选实施方式,所述训练集采用无标注相似句。
8.根据一种优选实施方式,所述对抗训练采用fgm、pgd或者freelb其中之一。
9.根据一种优选实施方式,所述对抗训练采用fgm,步骤s2具体包括:对训练集加入扰动项,使用梯度下降法优化训练集的损失函数,并对模型的参数权重进行更新,不断迭代上述步骤完成编码器的训练,表达式如下:上式中,d表示训练集,x表示输入,y表示标签,θ表示模型参数,loss表示训练样本的损失,δx表示扰动项,ω表示扰动空间。
10.根据一种优选实施方式,所述扰动项δx的表达式如下:
上式中,ε表示超参数,表示loss对x的梯度,表示梯度的模长。
11.根据一种优选实施方式,步骤s3具体包括:以一个文本向量表示一个节点,通过计算节点之间的余弦相似度,构建文本表示的无向图;以节点之间的相似度作为随机游走的概率,在无向图上进行随机游走,根据随机游走的概率直接构建huffman编码;根据huffman编码为每个节点进行编码,根据huffman编码为每个簇进行编码;使用贪心算法分别计算节点与簇的最短平均编码长度,完成聚类。
12.本发明还提供基于对抗训练的对比学习层次编码文本聚类系统,应用到如上述所述的方法,包括:对比学习模块,用于利用对比学习模型作为编码器,将一批训练集输入编码器中进行重构学习;对抗训练模块,用于在编码器的训练过程中加入对抗训练,根据损失函数指导编码器的训练;层次编码聚类模块,用于利用infomap算法对编码器所输出的文本向量进行聚类。
13.本发明实施例的技术方案至少具有如下优点和有益效果:(1)本发明所提供的方法及系统,使用对比学习+对抗训练能够得到较优的文本向量表示,使得样本能够尽量均匀分布在超球平面上;(2)基于对比学习+对抗训练得到的较优的文本向量表示,采用infomap算法对构造的无向图进行聚类,能够实现较优的聚类效果;(3)无需提前确定簇的个数,可减少不同样本量、类别数的不确定性带来的额外手动调试参数的工作量;(4)在无需人工标注的前提下就能够自动对样本进行聚类,标注人员可根据聚类结果进行数据的批量标注,节省了工作量;(5)本发明所提供的方法及系统还可用于判断现有语句样本中的badcase以及评判语义粒度的粗细情况。
附图说明
14.图1为本发明实施例1提供的基于对抗训练的对比学习层次编码文本聚类方法的流程示意图;图2为本发明实施例1提供的模型框架图。
具体实施方式
15.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
16.实施例1经申请人研究发现,传统采用人工标注以确定每个样本意图的方法,至少存在以下缺点:(1)上至几千万的数据集标注会耗费非常大的人力资源;(2)人工标注会出现标注错误的情况,一旦有标注错误,一方面对于模型训练带来效果的不确定性,一方面还会导致
返工检查样本错误的情况,进一步加剧了人工的浪费。
17.因此,本发明实施例提供基于对抗训练的对比学习层次编码文本聚类方法,通过对比学习和对抗训练得到较优的文本向量表示,再通过向量表示构建无向图,通过infomap算法对无向图进行聚类,可以实现海量无标注文本中相似样本的聚类,使得相同意图的样本能够分为一个簇,发现每个簇的意图。具体方案如下:参考图1,基于对抗训练的对比学习层次编码文本聚类方法,主要包括两个步骤,文本向量表示步骤以及infomap聚类步骤,以下进行详细说明。
18.考虑到infomap在做聚类时没有好的文本向量表示,无法实现较优的聚类效果,而现有对比学习向量表示不足够,没有尽可能均匀地分布在超球平面上,因此很少会用于聚类。
19.基于此,在本发明实施例的一种实施方式中,文本向量表示步骤包括:参考图2,利用bert框架的对比学习模型作为编码器,将一批训练集输入编码器中进行重构学习,本实施例的训练集采用无标注相似句。需要说明的是,本技术上述的编码器即基于bert中自监督的部门来实现,以下对bert的原理进行具体介绍:对输入进行数据增强,构造正样本,数据增强方式包括但不限于同义词替换、句子截断、反向翻译、增加标点符号、删除不重要的单词和语序重排其中的一种。需要说明的是,通过加入同义词替换,使得模型能够提高同义词相似度的分数,更进一步提高模型的文本匹配能力。
20.进一步地,进行自监督的对比学习,具体如下:将和正样本输入编码器进行拟合训练,得到两个表示向量和作为正例对,随机采样批内另一个输入作为的负例;进一步地采用余弦相似度分别计算表示向量与批内其他向量的相似度,以计算所得余弦相似度作为匹配分数对候选文本进行排序,通过softmax函数以及交叉熵计算模型的最终损失函数,所得到的最终损失函数表示为:上式中,表示指标,仅当i = j时等于1,表示批内句子总数,表示温度超参,表示余弦相似度,表示余弦相似度,表示余弦相似度,表示正样本的表示向量,表示负样本的表示向量,表示模型的训练参数。
21.进一步地,根据最终损失函数知道网络参数的迭代训练,在本实施例中,温度超参设置为0.05,设置为128;经实验证明,通过上述设置,模型仅需一个epoch即可拟合,且本方法对于不同长度的相似句子,能得到更高的相似度分数。
22.需要说明的是,除上述所例举的bert以外,编码器还可采用roberta、tiny_bert或者bert_wwm其中之一;其中,若所述编码器采用bert,则编码器所输出的文本向量经过一个
多层感知机mlp,进行降维,具体不再赘述。
23.进一步地,在编码器的训练过程中加入对抗训练,根据损失函数指导编码器的训练。在本发明实施例的一种实施方式中,所述对抗训练采用fgm,具体步骤如下:对训练集加入扰动项,使用梯度下降法优化训练集的损失函数,并对模型的参数权重进行更新,不断迭代上述步骤完成编码器的训练,表达式如下:上式中,d表示训练集,x表示输入,y表示标签,θ表示模型参数,loss表示训练样本的损失,δx表示扰动项,ω表示扰动空间。
24.在整个模型训练过程中,前向计算包括x与x+δx分别计算得到最终的loss,后向传播时则会分别计算x与x+δx的梯度,继而梯度下降,通过上述方式进行训练的耗时为不加扰动项的两倍左右。
25.其中,所述扰动项δx的表达式如下:上式中,ε表示超参数,表示loss对x的梯度,表示梯度的模长。需要说明的是,δx按照梯度上升取值,这样在x+δx后计算loss,loss则会显著地增大。
26.需要说明的是,除上述例举的fgm以外,扰动训练还可采用pgd或者freelb其中之一,在此不再赘述。
27.在本发明实施例的一种实施方式中,infomap聚类步骤包括:利用infomap算法对编码器所输出的文本向量进行聚类,具体如下:以一个文本向量表示一个节点,通过计算节点之间的余弦相似度,构建文本表示的无向图,需要注意的是,需要提前确定阈值大小才能进行建边,例如设定threhold=0.5,即当两节点间的余弦相似度大于或等于0.5时才可对两节点进行建边构图。进一步地,以节点之间的相似度作为随机游走的概率,在无向图上进行随机游走,根据随机游走的概率直接构建huffman编码;根据huffman编码为每个节点进行编码,根据huffman编码为每个簇进行编码;使用贪心算法分别计算节点与簇的最短平均编码长度,完成聚类。可以理解的是,上述过程无需确认簇的数目,簇的数目可根据层次编码自动确认,且上述方式拥有较高的效率及可解释性。
28.本发明实施例还提供基于对抗训练的对比学习层次编码文本聚类系统,应用到如上述所述的方法,其特征在于,包括:对比学习模块,用于利用对比学习模型作为编码器,将一批训练集输入编码器中进行重构学习;对抗训练模块,用于在编码器的训练过程中加入对抗训练,根据损失函数指导编码器的训练;层次编码聚类模块,用于利用infomap算法对编码器所输出的文本向量进行聚类。
29.综上所述,本发明实施例的技术方案至少具有如下优点和有益效果:(1)本发明所提供的方法及系统,使用对比学习+对抗训练能够得到较优的文本向量表示,使得样本能够尽量均匀分布在超球平面上;(2)基于对比学习+对抗训练得到的较优的文本向量表示,
采用infomap算法对构造的无向图进行聚类,能够实现较优的聚类效果;(3)无需提前确定簇的个数,可减少不同样本量、类别数的不确定性带来的额外手动调试参数的工作量;(4)在无需人工标注的前提下就能够自动对样本进行聚类,标注人员可根据聚类结果进行数据的批量标注,节省了工作量;(5)本发明所提供的方法及系统还可用于判断现有语句样本中的badcase以及评判语义粒度的粗细情况。
30.此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
31.计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf或类似介质,或任何上述介质的组合。
32.本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visual basic、fortran 2003、perl、cobol 2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。
33.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
34.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
35.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人
员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1