一种基于对比学习融入动态调整机制的文本聚类方法

文档序号:30958273发布日期:2022-07-30 11:15阅读:178来源:国知局
一种基于对比学习融入动态调整机制的文本聚类方法

1.本发明属于自然语言处理技术领域,具体涉及一种基于对比学习融入动态调整机制的文本聚类方法。


背景技术:

2.文本聚类是无监督数据处理方法之一,该方法目的是在无标签的情况下将文本按照相似度划分到不同的簇中,使得簇内文本语义尽可能相似,簇外文本语义尽可能相异。在最近几年中深度学习引起了广泛关注,相当一部分聚类研究工作的重点放在了聚类与深度学习的结合上,利用深度学习强大的表征能力提取文本中的语义特征,然后进行聚类以得到更好的聚类效果。yang et al.(2017)将自编码器和k-means聚类相结合进行深度聚类学习。xie et al.(2016)设计了新的聚类目标损失,在预训练的自编码器得到数据特征表示以及初始化簇心,然后微调模型以从确信的簇分配中学习以锐化所得到的预测分布。haeusser et al.(2018)制定了优化目标,以鼓励群集质心和样本特征表示之间一致的关联循环。zhang et al.(2021)联合实例级对比学习和语义级的聚类学习,同时优化对比学习的目标损失和聚类目标损失。
3.以上方法都借助辅助任务进行自监督学习得到样本的特征表示,然后通过辅助任务与聚类任务进行迭代,顺序或者协同训练的方法进行训练。但是由于辅助任务和聚类任务目标不一致,直接联合学习会破坏数据的特征表示,从而得到语义置信度不高的聚类结果。另外当对比学习作为辅助任务时,由于对比学习其他所有文本当作负例的特性,不可避免会将将同一簇的数据当作负例,从而导致簇内数据分布松散,影响聚类效果。
4.因此,为了解决上述问题,本文提出一种基于对比学习融入动态调整机制的文本聚类方法。


技术实现要素:

5.为了解决上述技术问题,本发明设计了一种基于对比学习融入动态调整机制的文本聚类方法,为解决文本深度聚类时辅助任务与聚类任务目标不一致带来的聚类语义置信度不高的问题,本发明引入损失权重动态调节方法以及对比学习负例筛选方法到文本聚类模型中。
6.为了达到上述技术效果,本发明是通过以下技术方案实现的:一种基于对比学习融入动态调整机制的文本聚类方法,其特征在于:具体算法流程如下所示:
7.step1、首先基于语境增强方法通过两个不同的掩词预测模型获得文本的增强文本对,然后传入共享参数的预训练bert模型中得到特征表示,最后通过k-means聚类方法得到初始语义簇心;
8.step2、首先计算特征表示与语义簇心的学生t分布得到文本的簇软分配概率分布,然后将其锐化得到辅助分布,最后交叉优化增强文本对之间的概率分布和辅助分布;
9.step3、首先通过由step2得到的高置信度的簇软分配概率分布为文本分配伪标
签,然后将与正例对同一伪标签的数据从负例中剔除,最后最大化正例对之间的相似度,最小化与负例的相似度;
10.step4、首先通过动态调整函数得到当前迭代次数下的聚类损失和对比学习损失各自的权重比例,然后按权重相加得到模型总损失,最后根据损失更新模型参数;
11.step5、迭代多次重复step2-step4的过程,直到训练结束。
12.进一步的,所述step1的具体步骤为:
13.step1.1、随机将文本xi中的单词用掩词mask替换;
14.step1.2、将文本输入两个不同掩词预测模型ta和tb中得到两个被替换词的预测词集合;
15.step1.3、按预测相似度排名分别从两个预测词集合中选择预测词替换掩词mask,得到增强后的文本对和
16.step1.4、将增强文本对传入预训练bert模型f(
·
)得到其特征表示和
17.step1.5、在特征空间中对特征表示进行k-means聚类得到初始语义簇心μk,k∈{1,2,

,k},其中k为预期划分簇的个数。
18.进一步的,所述step2的具体步骤为:
19.step2.1、计算文本特征在特征空间中的学生t分布评估文本特征hi与语义簇心μk之间的相似度,具体如下:
[0020][0021]
其中,α为学生t分布中的自由度;
[0022]
然后,q
ik
可以看作数据xi分配给k簇的概率,于是得到数据的簇软分配概率的分布如下,
[0023]
qi=gc(hi)=[q
ik
], k∈{1,2,

,k}
ꢀꢀꢀ
(2)
[0024]
step2.2、为了通过从高置信度赋值中学习来优化数据表示,设置辅助目标分布函数如下:
[0025][0026]
该目标分布函数首先通过将软分配概率q
ik
提高到二次幂来使其锐化,然后通过关联的群集频率对其进行归一化;
[0027]
step2.3、通过公式(1)和公式(3)我们得到增强文本对和各自的簇分配分布和辅助分布qa、qb、pa、pb,然后交叉优化它们之间的kl发散度得到聚类损失,具体如下:
[0028][0029]
其中m为一个批次中文本数量。
[0030]
进一步的,所述step3的具体步骤为:
[0031]
step3.1、将来自同一文本的增强文本对和的特征表示组成正例对
[0032]
step3.2、通过公式(2)得到的簇软分配概率分布qi为数据分配伪标签,具体如下:
[0033][0034]
其中,∈为置信度阈值,用于避免错误的伪标签起到反作用;然后检验正例对之间伪标签的一致性,具体如下:
[0035][0036]
最后将同一批次中的其他文本视作该文本的负例集合,并基于伪标签对负例集合进行筛选,将具有相同伪标签的数据将被视为假负例移除该文本的负例,得到负例集合如下:
[0037]
si={j,yi=-1‖yi≠yj}
ꢀꢀꢀ
(7)
[0038]
step3.3、使用非线性多层感知机gi(
·
)将文本特征映射到一个子空间,得到文本子空间表示zi=gi(hi);
[0039]
step3.4、在子空间中计算文本的infonce损失,具体如下:
[0040][0041]
其中τ为温度参数,sim(
·
)为相似度度量;在本发明中,sim(
·
)通过输出之间的归一化点积计算,具体如下:
[0042][0043]
step3.5、计算批次中每个文本的infonce损失,然后取平均得到对比损失,具体如下:
[0044][0045]
进一步的,所述step4的具体步骤为:
[0046]
step4.1、计算动态调节函数如下:
[0047][0048]
其中,l为当前迭代次数,l为预期总迭代次数;
[0049]
step4.2、聚类损失和对比损失按动态调节函数计算的权重相加组成总损失,具体如下:
[0050][0051]
其中,θ为初始系数,σ为平衡系数,λ为动态调整函数当前迭代下的计算得到的权重;
[0052]
step4.3、通过反向传播更新模型参数。
[0053]
本发明的有益效果是:
[0054]
1.本发明提出动态调整损失权重的方法,以此缓和对比学习和聚类目标不一致的问题。伴随训练的过程模型通过调整函数来调整对比损失和聚类损失,实现对比学习到聚类的平滑过渡;
[0055]
2.通过为簇分配概率的置信度高的数据分配伪标签对负例进行筛选,以此解决同一簇数据互为负例的问题,有效提高了负例质量。通过此方法对比学习得到的数据表示对聚类更友好;
[0056]
3.与现有对比聚类方法相比,我们的方法取得了一定的效果提升,并且在大部分数据集上优于现有的短文本聚类方法。
附图说明
[0057]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0058]
图1为本发明基于对比学习融入动态调整机制的文本聚类方法对应的模型结构示意图;
[0059]
图2为本发明中的详细的实施流程图。
具体实施方式
[0060]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0061]
实施例1
[0062]
参阅图1至图2所示,基于对比学习融入动态调整机制的文本聚类方法,所述方法的具体步骤如下:
[0063]
step1、从网上下载公开的文本聚类数据集,具体采用searchsnippets、stackoverflow、biomedical、agnews、tweet、googlenews-ts、googlenews-t、googlenews-s
这八个数据集,其中googlenews-ts,googlenews-t和googlenews-s为googlenews[25]数据集中分别提取标题和摘要获得的。
[0064]
上述得到的数据集如表1所示:
[0065]
表1数据集详情
[0066][0067][0068]
step2、首先基于语境增强方法通过两个不同的掩词预测模型获得文本的增强文本对,然后传入共享参数的预训练bert模型中得到特征表示,最后通过k-means聚类方法得到初始语义簇心。
[0069]
step3、首先计算特征表示与语义簇心的学生t分布得到文本的簇软分配概率分布,然后将其锐化得到辅助分布,最后交叉优化增强文本对之间的概率分布和辅助分布。
[0070]
step4、首先通过由step2得到的高置信度的簇软分配概率分布为文本分配伪标签,然后将与正例对同一伪标签的数据从负例中剔除,最后最大化正例对之间的相似度,最小化与负例的相似度。
[0071]
step5、首先通过动态调整函数得到当前迭代次数下的聚类损失和对比学习损失各自的权重比例,然后按权重相加得到模型总损失,最后根据损失更新模型参数。
[0072]
step6、迭代多次重复step2-step4的过程。
[0073]
作为本发明的进一步方案,所述step2的步骤如下:
[0074]
step2.1、随机将文本xi中的单词用掩词mask替换;
[0075]
step2.2、将文本输入两个不同掩词预测模型ta和tb中得到两个被替换词的预测词集合;
[0076]
step2.3、按预测相似度排名分别从两个预测词集合中选择预测词替换掩词mask,得到增强后的文本对和
[0077]
step2.4、将增强文本对传入预训练bert模型f(
·
)得到其特征表示和
[0078]
step2.5、在特征空间中对特征表示进行k-means聚类得到初始语义簇心μk,k∈{1,2,

,k},其中k为预期划分簇的个数。
[0079]
作为本发明的优选方案,所述step3的步骤如下:
[0080]
step3.1、计算文本特征在特征空间中的学生t分布评估文本特征hi与语义簇心μk之间的相似度,具体如下:
[0081][0082]
其中,α为学生t分布中的自由度。
[0083]
然后,q
ik
可以看作数据xi分配给k簇的概率,于是得到数据的簇软分配概率的分布如下,
[0084]
qi=gc(hi)=[q
ik
],k∈{1,2,

,k}
ꢀꢀꢀ
(2)
[0085]
step3.2、为了通过从高置信度赋值中学习来优化数据表示,设置辅助目标分布函数如下:
[0086][0087]
该目标分布函数首先通过将软分配概率q
ik
提高到二次幂来使其锐化,然后通过关联的群集频率对其进行归一化;
[0088]
step3.3、通过公式(1)和公式(3)我们得到增强文本对和各自的簇分配分布和辅助分布qa、qb、pa、pb,然后交叉优化它们之间的kl发散度得到聚类损失,具体如下:
[0089][0090]
其中m为一个批次中文本数量。
[0091]
作为本发明的优选方案,所述step4的步骤如下:
[0092]
step4.1、将来自同一文本的增强文本对和的特征表示组成正例对
[0093]
step4.2、通过公式(2)得到的簇软分配概率分布qi为数据分配伪标签,具体如下:
[0094][0095]
其中,∈为置信度阈值,用于避免错误的伪标签起到反作用。然后检验正例对之间
伪标签的一致性,具体如下:
[0096][0097]
最后将同一批次中的其他文本视作该文本的负例集合,并基于伪标签对负例集合进行筛选,将具有相同伪标签的数据将被视为假负例移除该文本的负例,得到负例集合如下:
[0098]
si={j,yi=-1‖yi≠yj}
ꢀꢀꢀ
(7)
[0099]
step4.3、使用非线性多层感知机gi(
·
)将文本特征映射到一个子空间,得到文本子空间表示zi=gi(hi);
[0100]
step4.4、在子空间中计算文本的infonce损失,具体如下:
[0101][0102]
其中τ为温度参数,sim(
·
)为相似度度量。在本发明中,sim(
·
)通过输出之间的归一化点积计算,具体如下:
[0103][0104]
step4.5、计算批次中每个文本的infonce损失,然后取平均得到对比损失,具体如下:
[0105][0106]
作为本发明的优选方案,所述step5的步骤如下:
[0107]
step5.1、计算动态调节函数如下:
[0108][0109]
其中,l为当前迭代次数,l为预期总迭代次数;
[0110]
step5.2、聚类损失和对比损失按动态调节函数计算的权重相加组成总损失,具体如下:
[0111][0112]
其中,θ为初始系数,σ为平衡系数,λ为动态调整函数当前迭代下的计算得到的权重;
[0113]
step5.3、通过反向传播更新模型参数。
[0114]
为了说明本发明效果,设计了对比试验和消融实验。对比实验是与之间一些文本聚类模型进行对比。消融实验是对本发明不同模块的有效性进行比较。在实验中采用准确率(acc)和归一化互信息(nmi)这两个广泛使用的聚类效果度量进行评估。其中,acc表示预测语义簇和真实语义簇之间的最佳映射时符合程度,nmi表示两个语义簇之间归一化的相
似性度量。acc和nmi公式如下:
[0115][0116][0117]
其中,c和l分别表示预测语义簇和真实语义簇,map(
·
)表示两者之间的最佳映射,一般通过匈牙利算法获得。i(l;c)表示c和l之间的互信息,h(
·
)表示信息熵。acc和nmi的取值范围为[0,1],指标的值越高表明集群性能越好。
[0118]
实施例2
[0119]
(1)对比试验
[0120]
将本实验在八个数据集上与其他文本聚类方法比较效果,具体对比bow、tf-idf、kmeans、dec、stcc、self-train、hac-sd、sccl这八个基准文本聚类方法,实验结果如表2所示。
[0121]
表2实验效果对比
[0122][0123]
[0124][0125]
分析表2可以得知,在大多数数据集上我们的模型性能超过了现有基准模型,尤其是相较于同样采用对比学习和聚类结合的sccl模型取得了一定的效果提升。
[0126]
(2)消融实验
[0127]
为了更好地验证我们的模型的有效性,本节中我们进行了消融实验。在searchsnippets数据集上我们将模型与顺序学习、固定比例的联合学习进行对比,以及验证负例筛选对模型的影响。实验结果如表3所示。
[0128]
表3模块消融效果对比
[0129][0130][0131]
通过分析表3可以得知,本发明提出的负例筛选以及损失权重的平滑过渡可以得到更好的聚类表示,有效提高聚类性能。
[0132]
通过以上对比试验和消融实验数据证明了本发明能够有效提升文本聚类性能。试验结果表明,发明的损失权重动态调整以及对比学习中的负例筛选对于缓和聚类和自监督学习目标不一致问题非常有用。受益于此,本发明的模型性能优于以前模型性能。
[0133]
实施例3
[0134]
本发明提出动态调整损失权重的方法,以此缓和对比学习和聚类目标不一致的问题。伴随训练的过程模型通过调整函数来调整对比损失和聚类损失,实现对比学习到聚类
的平滑过渡;通过为簇分配概率的置信度高的数据分配伪标签对负例进行筛选,以此解决同一簇数据互为负例的问题,有效提高了负例质量。通过此方法对比学习得到的数据表示对聚类更友好;与现有对比聚类方法相比,本发明取得了显著的效果提升,并且在大部分数据集上优于现有的短文本聚类方法。
[0135]
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0136]
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1