基于RoBERTa-WWM 和HDBSCAN的文本聚类算法

2022-04-07 03:23邱梓珩陈周国
计算机与现代化 2022年3期
关键词:降维向量聚类

刘 锟,曾 曦,,邱梓珩,陈周国,

(1.中国电子科技集团公司第三十研究所,四川 成都 610000; 2.深圳市网联安瑞网络科技有限公司,广东 深圳 518000)

0 引 言

随着互联网的普及,我国的网民规模不断扩大,各种信息呈指数级增长。如何从海量的稀疏数据中获取到有价值的信息和知识是摆在研究者面前的一道难题[1]。文本聚类作为自然语言处理领域里一种能够从海量的文本数据中快速发现热点话题的方法,近些年得到了学者们的广泛研究。

根据以往的研究,文本聚类分为文本向量化表示和聚类2个主要步骤[2],其中传统的用于文本向量化表示的模型有词袋模型、Word2Vec模型、Doc2Vec模型[3],用于聚类的算法有基于划分的聚类算法、基于层次的聚类算法、基于密度的聚类算法等[4]。现有的研究大多也是基于这2个步骤进行改进,例如李志强等[5]采用词袋模型和改进的K-Means算法来研究短文本聚类;毛郁欣等[6]基于Word2Vec模型和K-Means算法来做信息技术文档的聚类研究;吴德平等[7]基于Word2Vec词嵌入模型和K-Means聚类算法对安全事故的文本案例进行分类研究;阮光册等[8]基于Doc2Vec做期刊论文的热点选题识别;贾君霞等[9]基于Doc2Vec模型和卷积神经网络模型CNN对新闻文本数据做了聚类研究,相较于传统的模型,提高了准确率。但是传统的文本表示方法无法反映整篇文本的上下文语境信息,导致文本聚类的准确性较差。近些年,随着预训练语言模型BERT[10]的产生并在各项NLP任务中都取得了很好的效果,一些研究者开始使用基于BERT的语言预训练模型来提高文本向量化表示的准确性[11]。例如曹凤仙[12]使用BERT模型和K-Means模型对市长公开电话的文本进行聚类研究,得到民众的诉求主题分布;朱良齐等[13]融合BERT和自编码网络来做文本表示,再利用K-Means算法做文本聚类,有效地提高了文本聚类的准确性。除此之外,由于基于划分聚类的K-Means算法需要预先指定类别数并且在含有噪声数据时聚类效果较差,而基于密度的聚类算法不需要预先指定簇数并且对噪声数据不敏感,近些年来得到了越来越广泛的使用,例如邹艳春[14]基于DBSCAN算法结合文本相似度做文本聚类,曹旭友等[15]基于BERT+ATT和DBSCAN来做专利文本分析,得到了很好的效果,蔡岳等[16]提出了一种基于簇关系树的改进DBSCAN算法对互联网中的文本做聚类研究,但是DBSCAN算法在数据的密度分布不均匀时聚类效果较差,而且在实际的应用中对输入参数异常敏感[17],而HDBSCAN算法相较于DBSCAN算法不需要复杂的调参过程,同时可以适应多密度的数据分布因此,本文针对现有文本聚类算法存在的问题,提出一种基于RoBERTa-WWM+HDBSCAN的文本聚类算法,从文本向量化表示和聚类2个方面来同时提升文本聚类的效果。

1 相关工作

1.1 RoBERTa-WWM表示文本

RoBERTa(A Robustly Optimized BERT Pretraining Approach)[18]是在BERT模型的基础上,去除NSP任务,使用更大规模的数据集和更大的batch-size再次训练得到的预训练语言模型。虽然和BERT模型相比,RoBERTa模型在多个NLP任务上的表现更好,但是原始的RoBERTa模型并不能很好地应用在中文语言环境下,因此哈工大的研究团队在不改变RoBERTa模型结构的前提下,根据中文的语言特点提出了RoBERTa-WWM(Whole World Mask)模型,该模型在预训练时采用全词遮挡(WWM)的方式,极大地提升了RoBERTa模型在中文环境下的文本表示能力[19]。全词遮挡的具体工作原理如表1所示。

表1 WWM的工作原理示例

1.2 t-SNE降维

无论是传统的文本表示模型还是RoBERTa模型,最终得到的文本向量维数一般都会很高,而高维度的数据则会导致数据的可区分性变差,模型容易出现过拟合等问题。因此在进行聚类之前,为了避免高维数据带来的影响,同时节省存储和计算成本,一般需要对样本数据进行降维处理[20]。

为了解决SNE算法难以优化以及降维到二维空间时容易出现拥挤现象(Crowding Problem)等问题,Maaten等[21]提出了一种t-SNE(t-Distributed Stochastic Neighbor Embedding)算法,首先在使用梯度下降法寻找最优解时,使用对称的损失函数,其次为了解决数据拥挤问题,在高维空间仍然保持数据的高斯分布,但是在低维空间使用t分布来构建数据分布。 实验表明在有异常数据干扰时,t分布比高斯分布对数据的低维拟合效果更好。

t-SNE算法的流程如下:

输入:N个D维向量{X1,…,XN},设定困惑度Perp,迭代次数T,学习速率η,动量α(t)

输出:二维或者三维向量{Y1,…,Yn}

1)计算高维空间中的条件概率Pj|i,令:

(1)

2)使用正态分布N(0,10-4),随机初始化Ym×k。

3)从1到T进行迭代并计算低维空间的条件概率qij及损失函数C(yi)对yi的梯度,同时更新Yt,其中Yt的计算公式为:

(2)

4)输出Y,得到最终的低维数据分布。

1.3 HDBSCAN聚类

尽管现在有几十种用于聚类的算法,然而每一种聚类算法都存在某种局限性,只能用来处理特定类型的数据。比如虽然DBSCAN算法在含有异常数据的数据集上相比于其他聚类算法有较好的效果,但是它只能对相同密度分布的数据进行聚类,其次在优化过程中的最小步长Minpts和邻域半径Eps这2个参数调整困难,这使得DBSCAN算法在应用时受到很大的限制。为了解决这一问题,Campello等[22]在DBSCAN算法的基础上,引入层次聚类的思想构建了HDBSCAN(Hierarchical Density-Based Spatial Clustering of Applications with Noise)算法。首先HDBSCAN算法定义了一种新的度量2个点之间距离的方法,这种度量方法可以更好地反映数据点的密度,计算公式为:

dmr-k(A,B)=max([dcorek(A),dcorek(B),dAB])

(3)

其中,dmr-k(A,B)是指A、B之间的相互可达距离,dAB指的是A、B之间的欧氏距离。

其次它使用最小生成树来构建点与点之间的层次树模型,使得模型仅需给定簇所包含的最小样本数便能自动得到最优的聚类结果,避免了复杂的调参过程,极大地提升了模型准确性和适用范围。HDBSCAN算法的具体步骤如下:

1)根据密度、稀疏度变换空间。

2)构建距离加权图的最小生成树。

3)构建关联点的簇层次结构。

4)根据最小簇的大小压缩簇的层次结构。

5)从压缩树中提取稳定的簇。

2 算法设计

2.1 算法流程

本文算法流程如图1所示。

图1 本文算法的流程

2.2 数据集说明

本文采用的是THUCNews新闻文本分类数据集的一个子集[23],本次实验一共选用了其中的6个类。为了更好地模拟现实网络环境中的数据分布不均匀的情况,在选取数据时,对每个类别选取不同数量的数据,同时从其他类别的数据集中抽取部分数据作为异常数据。其中正常的数据共20945条,干扰数据共330条。采用带有标签的数据集的目的是为了能够更好地对比不同算法的聚类效果。

2.3 数据预处理

对于基于RoBERTa-WWM模型的算法,首先将每个文本处理成连续的句子序列,然后去除其中的特殊符号和网址等,其次,去除新闻文本中类似于欢迎关注、快讯等对文本的正确语义造成干扰的无效文本,最后由于大部分文本的长度小于RoBERTa-WWM模型的最大输入序列长度512,并且新闻文本的主要信息都集中在文本的开头部分,因此对文本长度大于512的文本做头截断(head-only)处理。

2.4 文本向量表示

2.4.1 微调RoBERTa-WWM模型

图2 RoBERTa-WWM的微调结构

微调的具体流程是:首先将标注好的相似句子对和不相似句子对数据集输入到RoBERTa-WWM模型,其中相似句子对和不相似句子对数据集从原有的THUCNews新闻文本分类数据集中获得,挑选同一类新闻中语义相似的2个句子作为相似句子对,随机选择不同类别新闻中的2个句子作为不相似句子对。得到每个句子中每个词的词向量wx[a1,a2,…,a768],然后通过pooling层采用MEAN的方式得到固定大小的句子嵌入向量u[u1,u2,…,u768]和v[v1,v2,…,v768],并计算2个句子嵌入向量的差向量 |u-v|=c[c1,c2,…,c768]以及它和u,v这2个向量的拼接向量s[u1,u2,…,u768,v1,…,v768,c1,…,c768],最后乘以训练得到的权重ω3n×2,得到最终的目标分类函数softmax。在具体计算过程中,使用句子向量的余弦相似度的均方差函数作为损失函数,通过优化损失函数来更新模型参数,达到微调的目的。

2.4.2 计算文本向量

将预处理后的文本数据输入微调后的RoBERTa-WWM模型中,得到每个文本的文本向量Ti[t1,t2,…,t768],i表示第i个文本。最终得到的文本向量如表2所示。

表2 文本向量表示示例

2.5 降维

选择t-SNE算法的初始化方式为pca降维模式,设置困惑度和学习率,将文本向量Ti输入t-SNE算法进行降维,得到降维后的二维向量ti[x,y],并对降维后的数据进行可视化。通过观察降维后的数据分布,调整模型的困惑度和学习率,直到达到最优的效果。降维后最终的数据分布如图3所示。

图3 降维后的数据分布

从图3可以看出,数据可以分为6个比较大的簇,与实际的数据分布相同。

2.6 效果评估

评估聚类效果时,常用的有轮廓系数、互信息(MI)指数以及Fowlkes-Mallows(FM)指数等,其中轮廓系数主要是衡量聚类结果中簇内数据点的相似程度和簇之间的区别程度,它一般适用于没有标签的数据,而后两者适用于有标签的情况。互信息指数主要是衡量原始的数据分布和聚类结果分布的相似程度,取值范围为[0,1],值越大,说明聚类效果越好。FM指数用来综合衡量准确率和召回率。本文选择FM指数和MI指数作为作为聚类效果的衡量标准。FM的计算公式为:

(4)

其中,TP为真实标签和预测标签中属于同一簇的点的数量,FP为在真实标签中属于同一个簇而在预测中不是的点的个数,FN为在预测中属于同一个簇而在实际中不是的点的个数,MI的计算公式为:

(5)

其中:

(6)

其中,pi为归属于i类的数据个数占数据总量的比例,pj同理。mij表示第1个序列中的i与第2个序列中j的交集的个数,N为序列的长度。

2.7 聚类

使用t-SNE算法降维后的二维向量作为HDBSCAN算法的输入,设置参数的变化范围得到聚类结果,并计算FM指数和MI指数,根据它们的变化曲线选择最优的参数的结果作为最终的聚类结果,同时对该结果可视化,FM指数和MI指数的变化情况和最终的聚类结果如图4~图6所示。

图4 FM指数随min_cluster_size的变化情况

图5 MI指数随min_cluster_size的变化情况

从图4和图5可以看出,类别最小样本数在540~680时,聚类效果最好。

从图6可以看出,聚类后的结果分布和原始分布大致相同,除了异常点外,总共可以有6个类别,每种类别中的文本如表3所示。

续表3

3 实验结果分析

对不同的文本表示模型以及聚类模型进行实验,取每种模型最好的聚类效果作为最终结果,最终的结果如表4所示。

表4 不同模型的聚类效果

从表4可以看出,首先在使用相同的聚类模型的情况下,基于RoBERTa模型做文本表示的算法,它的FM指数和MI指数比基于词袋模型和Word2Vec模型做文本表示的算法平均高出8个百分点以上。其次,在使用相同的文本表示模型时,基于HDBSCAN模型的算法比基于K-Means模型的算法具有更好的聚类效果。除此之外,经过微调的RoBERTa-WWM模型,相比于原始的RoBERTa-WWM模型,聚类效果有所提升。

4 结束语

本文针对现有的文本聚类算法在处理现实网络环境中的数据时存在的问题,提出了一种基于RoBERTa-WWM+HDBSCAN的文本聚类算法,经过实验验证,首先该算法相比于传统的文本聚类算法,聚类效果有了很大的提升,也更适合现实网络环境下的数据,其次本文使用的t-SNE降维算法,除了可以用来降维,还可以对降维后的数据进行可视化,这使得在后续的聚类工作中,可以更好地确定最终的类别数,从而缩小了算法优化过程中参数的调整范围。然而本文仍存在可以改进的点,首先由于本文使用的有标注的微调数据较少,因此对RoBERTa-WWM模型微调后,对算法整体的聚类效果提升有限,如果进一步扩充数据集,聚类效果的提升会更明显,其次,本文只研究了THUNews数据集,在后续的工作中可以针对其他领域的数据进行研究以进一步提升该算法的泛化能力。

猜你喜欢
降维向量聚类
混动成为降维打击的实力 东风风神皓极
向量的分解
聚焦“向量与三角”创新题
Helicobacter pylori-induced inflammation masks the underlying presence of low-grade dysplasia on gastric lesions
降维打击
基于K-means聚类的车-地无线通信场强研究
基于高斯混合聚类的阵列干涉SAR三维成像
向量垂直在解析几何中的应用
基于Spark平台的K-means聚类算法改进及并行化实现
基于加权模糊聚类的不平衡数据分类方法