劉 錕,曾 曦,,邱梓珩,陳周?chē)?guó),
(1.中國(guó)電子科技集團(tuán)公司第三十研究所,四川 成都 610000; 2.深圳市網(wǎng)聯(lián)安瑞網(wǎng)絡(luò)科技有限公司,廣東 深圳 518000)
隨著互聯(lián)網(wǎng)的普及,我國(guó)的網(wǎng)民規(guī)模不斷擴(kuò)大,各種信息呈指數(shù)級(jí)增長(zhǎng)。如何從海量的稀疏數(shù)據(jù)中獲取到有價(jià)值的信息和知識(shí)是擺在研究者面前的一道難題[1]。文本聚類(lèi)作為自然語(yǔ)言處理領(lǐng)域里一種能夠從海量的文本數(shù)據(jù)中快速發(fā)現(xiàn)熱點(diǎn)話(huà)題的方法,近些年得到了學(xué)者們的廣泛研究。
根據(jù)以往的研究,文本聚類(lèi)分為文本向量化表示和聚類(lèi)2個(gè)主要步驟[2],其中傳統(tǒng)的用于文本向量化表示的模型有詞袋模型、Word2Vec模型、Doc2Vec模型[3],用于聚類(lèi)的算法有基于劃分的聚類(lèi)算法、基于層次的聚類(lèi)算法、基于密度的聚類(lèi)算法等[4]?,F(xiàn)有的研究大多也是基于這2個(gè)步驟進(jìn)行改進(jìn),例如李志強(qiáng)等[5]采用詞袋模型和改進(jìn)的K-Means算法來(lái)研究短文本聚類(lèi);毛郁欣等[6]基于Word2Vec模型和K-Means算法來(lái)做信息技術(shù)文檔的聚類(lèi)研究;吳德平等[7]基于Word2Vec詞嵌入模型和K-Means聚類(lèi)算法對(duì)安全事故的文本案例進(jìn)行分類(lèi)研究;阮光冊(cè)等[8]基于Doc2Vec做期刊論文的熱點(diǎn)選題識(shí)別;賈君霞等[9]基于Doc2Vec模型和卷積神經(jīng)網(wǎng)絡(luò)模型CNN對(duì)新聞文本數(shù)據(jù)做了聚類(lèi)研究,相較于傳統(tǒng)的模型,提高了準(zhǔn)確率。但是傳統(tǒng)的文本表示方法無(wú)法反映整篇文本的上下文語(yǔ)境信息,導(dǎo)致文本聚類(lèi)的準(zhǔn)確性較差。近些年,隨著預(yù)訓(xùn)練語(yǔ)言模型BERT[10]的產(chǎn)生并在各項(xiàng)NLP任務(wù)中都取得了很好的效果,一些研究者開(kāi)始使用基于BERT的語(yǔ)言預(yù)訓(xùn)練模型來(lái)提高文本向量化表示的準(zhǔn)確性[11]。例如曹鳳仙[12]使用BERT模型和K-Means模型對(duì)市長(zhǎng)公開(kāi)電話(huà)的文本進(jìn)行聚類(lèi)研究,得到民眾的訴求主題分布;朱良齊等[13]融合BERT和自編碼網(wǎng)絡(luò)來(lái)做文本表示,再利用K-Means算法做文本聚類(lèi),有效地提高了文本聚類(lèi)的準(zhǔn)確性。除此之外,由于基于劃分聚類(lèi)的K-Means算法需要預(yù)先指定類(lèi)別數(shù)并且在含有噪聲數(shù)據(jù)時(shí)聚類(lèi)效果較差,而基于密度的聚類(lèi)算法不需要預(yù)先指定簇?cái)?shù)并且對(duì)噪聲數(shù)據(jù)不敏感,近些年來(lái)得到了越來(lái)越廣泛的使用,例如鄒艷春[14]基于DBSCAN算法結(jié)合文本相似度做文本聚類(lèi),曹旭友等[15]基于BERT+ATT和DBSCAN來(lái)做專(zhuān)利文本分析,得到了很好的效果,蔡岳等[16]提出了一種基于簇關(guān)系樹(shù)的改進(jìn)DBSCAN算法對(duì)互聯(lián)網(wǎng)中的文本做聚類(lèi)研究,但是DBSCAN算法在數(shù)據(jù)的密度分布不均勻時(shí)聚類(lèi)效果較差,而且在實(shí)際的應(yīng)用中對(duì)輸入?yún)?shù)異常敏感[17],而HDBSCAN算法相較于DBSCAN算法不需要復(fù)雜的調(diào)參過(guò)程,同時(shí)可以適應(yīng)多密度的數(shù)據(jù)分布因此,本文針對(duì)現(xiàn)有文本聚類(lèi)算法存在的問(wèn)題,提出一種基于RoBERTa-WWM+HDBSCAN的文本聚類(lèi)算法,從文本向量化表示和聚類(lèi)2個(gè)方面來(lái)同時(shí)提升文本聚類(lèi)的效果。
RoBERTa(A Robustly Optimized BERT Pretraining Approach)[18]是在BERT模型的基礎(chǔ)上,去除NSP任務(wù),使用更大規(guī)模的數(shù)據(jù)集和更大的batch-size再次訓(xùn)練得到的預(yù)訓(xùn)練語(yǔ)言模型。雖然和BERT模型相比,RoBERTa模型在多個(gè)NLP任務(wù)上的表現(xiàn)更好,但是原始的RoBERTa模型并不能很好地應(yīng)用在中文語(yǔ)言環(huán)境下,因此哈工大的研究團(tuán)隊(duì)在不改變RoBERTa模型結(jié)構(gòu)的前提下,根據(jù)中文的語(yǔ)言特點(diǎn)提出了RoBERTa-WWM(Whole World Mask)模型,該模型在預(yù)訓(xùn)練時(shí)采用全詞遮擋(WWM)的方式,極大地提升了RoBERTa模型在中文環(huán)境下的文本表示能力[19]。全詞遮擋的具體工作原理如表1所示。
表1 WWM的工作原理示例
無(wú)論是傳統(tǒng)的文本表示模型還是RoBERTa模型,最終得到的文本向量維數(shù)一般都會(huì)很高,而高維度的數(shù)據(jù)則會(huì)導(dǎo)致數(shù)據(jù)的可區(qū)分性變差,模型容易出現(xiàn)過(guò)擬合等問(wèn)題。因此在進(jìn)行聚類(lèi)之前,為了避免高維數(shù)據(jù)帶來(lái)的影響,同時(shí)節(jié)省存儲(chǔ)和計(jì)算成本,一般需要對(duì)樣本數(shù)據(jù)進(jìn)行降維處理[20]。
為了解決SNE算法難以?xún)?yōu)化以及降維到二維空間時(shí)容易出現(xiàn)擁擠現(xiàn)象(Crowding Problem)等問(wèn)題,Maaten等[21]提出了一種t-SNE(t-Distributed Stochastic Neighbor Embedding)算法,首先在使用梯度下降法尋找最優(yōu)解時(shí),使用對(duì)稱(chēng)的損失函數(shù),其次為了解決數(shù)據(jù)擁擠問(wèn)題,在高維空間仍然保持?jǐn)?shù)據(jù)的高斯分布,但是在低維空間使用t分布來(lái)構(gòu)建數(shù)據(jù)分布。 實(shí)驗(yàn)表明在有異常數(shù)據(jù)干擾時(shí),t分布比高斯分布對(duì)數(shù)據(jù)的低維擬合效果更好。
t-SNE算法的流程如下:
輸入:N個(gè)D維向量{X1,…,XN},設(shè)定困惑度Perp,迭代次數(shù)T,學(xué)習(xí)速率η,動(dòng)量α(t)
輸出:二維或者三維向量{Y1,…,Yn}
1)計(jì)算高維空間中的條件概率Pj|i,令:
(1)
2)使用正態(tài)分布N(0,10-4),隨機(jī)初始化Ym×k。
3)從1到T進(jìn)行迭代并計(jì)算低維空間的條件概率qij及損失函數(shù)C(yi)對(duì)yi的梯度,同時(shí)更新Yt,其中Yt的計(jì)算公式為:
(2)
4)輸出Y,得到最終的低維數(shù)據(jù)分布。
盡管現(xiàn)在有幾十種用于聚類(lèi)的算法,然而每一種聚類(lèi)算法都存在某種局限性,只能用來(lái)處理特定類(lèi)型的數(shù)據(jù)。比如雖然DBSCAN算法在含有異常數(shù)據(jù)的數(shù)據(jù)集上相比于其他聚類(lèi)算法有較好的效果,但是它只能對(duì)相同密度分布的數(shù)據(jù)進(jìn)行聚類(lèi),其次在優(yōu)化過(guò)程中的最小步長(zhǎng)Minpts和鄰域半徑Eps這2個(gè)參數(shù)調(diào)整困難,這使得DBSCAN算法在應(yīng)用時(shí)受到很大的限制。為了解決這一問(wèn)題,Campello等[22]在DBSCAN算法的基礎(chǔ)上,引入層次聚類(lèi)的思想構(gòu)建了HDBSCAN(Hierarchical Density-Based Spatial Clustering of Applications with Noise)算法。首先HDBSCAN算法定義了一種新的度量2個(gè)點(diǎn)之間距離的方法,這種度量方法可以更好地反映數(shù)據(jù)點(diǎn)的密度,計(jì)算公式為:
dmr-k(A,B)=max([dcorek(A),dcorek(B),dAB])
(3)
其中,dmr-k(A,B)是指A、B之間的相互可達(dá)距離,dAB指的是A、B之間的歐氏距離。
其次它使用最小生成樹(shù)來(lái)構(gòu)建點(diǎn)與點(diǎn)之間的層次樹(shù)模型,使得模型僅需給定簇所包含的最小樣本數(shù)便能自動(dòng)得到最優(yōu)的聚類(lèi)結(jié)果,避免了復(fù)雜的調(diào)參過(guò)程,極大地提升了模型準(zhǔn)確性和適用范圍。HDBSCAN算法的具體步驟如下:
1)根據(jù)密度、稀疏度變換空間。
2)構(gòu)建距離加權(quán)圖的最小生成樹(shù)。
3)構(gòu)建關(guān)聯(lián)點(diǎn)的簇層次結(jié)構(gòu)。
4)根據(jù)最小簇的大小壓縮簇的層次結(jié)構(gòu)。
5)從壓縮樹(shù)中提取穩(wěn)定的簇。
本文算法流程如圖1所示。
圖1 本文算法的流程
本文采用的是THUCNews新聞文本分類(lèi)數(shù)據(jù)集的一個(gè)子集[23],本次實(shí)驗(yàn)一共選用了其中的6個(gè)類(lèi)。為了更好地模擬現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)分布不均勻的情況,在選取數(shù)據(jù)時(shí),對(duì)每個(gè)類(lèi)別選取不同數(shù)量的數(shù)據(jù),同時(shí)從其他類(lèi)別的數(shù)據(jù)集中抽取部分?jǐn)?shù)據(jù)作為異常數(shù)據(jù)。其中正常的數(shù)據(jù)共20945條,干擾數(shù)據(jù)共330條。采用帶有標(biāo)簽的數(shù)據(jù)集的目的是為了能夠更好地對(duì)比不同算法的聚類(lèi)效果。
對(duì)于基于RoBERTa-WWM模型的算法,首先將每個(gè)文本處理成連續(xù)的句子序列,然后去除其中的特殊符號(hào)和網(wǎng)址等,其次,去除新聞文本中類(lèi)似于歡迎關(guān)注、快訊等對(duì)文本的正確語(yǔ)義造成干擾的無(wú)效文本,最后由于大部分文本的長(zhǎng)度小于RoBERTa-WWM模型的最大輸入序列長(zhǎng)度512,并且新聞文本的主要信息都集中在文本的開(kāi)頭部分,因此對(duì)文本長(zhǎng)度大于512的文本做頭截?cái)?head-only)處理。
2.4.1 微調(diào)RoBERTa-WWM模型
圖2 RoBERTa-WWM的微調(diào)結(jié)構(gòu)
微調(diào)的具體流程是:首先將標(biāo)注好的相似句子對(duì)和不相似句子對(duì)數(shù)據(jù)集輸入到RoBERTa-WWM模型,其中相似句子對(duì)和不相似句子對(duì)數(shù)據(jù)集從原有的THUCNews新聞文本分類(lèi)數(shù)據(jù)集中獲得,挑選同一類(lèi)新聞中語(yǔ)義相似的2個(gè)句子作為相似句子對(duì),隨機(jī)選擇不同類(lèi)別新聞中的2個(gè)句子作為不相似句子對(duì)。得到每個(gè)句子中每個(gè)詞的詞向量wx[a1,a2,…,a768],然后通過(guò)pooling層采用MEAN的方式得到固定大小的句子嵌入向量u[u1,u2,…,u768]和v[v1,v2,…,v768],并計(jì)算2個(gè)句子嵌入向量的差向量 |u-v|=c[c1,c2,…,c768]以及它和u,v這2個(gè)向量的拼接向量s[u1,u2,…,u768,v1,…,v768,c1,…,c768],最后乘以訓(xùn)練得到的權(quán)重ω3n×2,得到最終的目標(biāo)分類(lèi)函數(shù)softmax。在具體計(jì)算過(guò)程中,使用句子向量的余弦相似度的均方差函數(shù)作為損失函數(shù),通過(guò)優(yōu)化損失函數(shù)來(lái)更新模型參數(shù),達(dá)到微調(diào)的目的。
2.4.2 計(jì)算文本向量
將預(yù)處理后的文本數(shù)據(jù)輸入微調(diào)后的RoBERTa-WWM模型中,得到每個(gè)文本的文本向量Ti[t1,t2,…,t768],i表示第i個(gè)文本。最終得到的文本向量如表2所示。
表2 文本向量表示示例
選擇t-SNE算法的初始化方式為pca降維模式,設(shè)置困惑度和學(xué)習(xí)率,將文本向量Ti輸入t-SNE算法進(jìn)行降維,得到降維后的二維向量ti[x,y],并對(duì)降維后的數(shù)據(jù)進(jìn)行可視化。通過(guò)觀察降維后的數(shù)據(jù)分布,調(diào)整模型的困惑度和學(xué)習(xí)率,直到達(dá)到最優(yōu)的效果。降維后最終的數(shù)據(jù)分布如圖3所示。
圖3 降維后的數(shù)據(jù)分布
從圖3可以看出,數(shù)據(jù)可以分為6個(gè)比較大的簇,與實(shí)際的數(shù)據(jù)分布相同。
評(píng)估聚類(lèi)效果時(shí),常用的有輪廓系數(shù)、互信息(MI)指數(shù)以及Fowlkes-Mallows(FM)指數(shù)等,其中輪廓系數(shù)主要是衡量聚類(lèi)結(jié)果中簇內(nèi)數(shù)據(jù)點(diǎn)的相似程度和簇之間的區(qū)別程度,它一般適用于沒(méi)有標(biāo)簽的數(shù)據(jù),而后兩者適用于有標(biāo)簽的情況?;バ畔⒅笖?shù)主要是衡量原始的數(shù)據(jù)分布和聚類(lèi)結(jié)果分布的相似程度,取值范圍為[0,1],值越大,說(shuō)明聚類(lèi)效果越好。FM指數(shù)用來(lái)綜合衡量準(zhǔn)確率和召回率。本文選擇FM指數(shù)和MI指數(shù)作為作為聚類(lèi)效果的衡量標(biāo)準(zhǔn)。FM的計(jì)算公式為:
(4)
其中,TP為真實(shí)標(biāo)簽和預(yù)測(cè)標(biāo)簽中屬于同一簇的點(diǎn)的數(shù)量,F(xiàn)P為在真實(shí)標(biāo)簽中屬于同一個(gè)簇而在預(yù)測(cè)中不是的點(diǎn)的個(gè)數(shù),F(xiàn)N為在預(yù)測(cè)中屬于同一個(gè)簇而在實(shí)際中不是的點(diǎn)的個(gè)數(shù),MI的計(jì)算公式為:
(5)
其中:
(6)
其中,pi為歸屬于i類(lèi)的數(shù)據(jù)個(gè)數(shù)占數(shù)據(jù)總量的比例,pj同理。mij表示第1個(gè)序列中的i與第2個(gè)序列中j的交集的個(gè)數(shù),N為序列的長(zhǎng)度。
使用t-SNE算法降維后的二維向量作為HDBSCAN算法的輸入,設(shè)置參數(shù)的變化范圍得到聚類(lèi)結(jié)果,并計(jì)算FM指數(shù)和MI指數(shù),根據(jù)它們的變化曲線選擇最優(yōu)的參數(shù)的結(jié)果作為最終的聚類(lèi)結(jié)果,同時(shí)對(duì)該結(jié)果可視化,F(xiàn)M指數(shù)和MI指數(shù)的變化情況和最終的聚類(lèi)結(jié)果如圖4~圖6所示。
圖4 FM指數(shù)隨min_cluster_size的變化情況
圖5 MI指數(shù)隨min_cluster_size的變化情況
從圖4和圖5可以看出,類(lèi)別最小樣本數(shù)在540~680時(shí),聚類(lèi)效果最好。
從圖6可以看出,聚類(lèi)后的結(jié)果分布和原始分布大致相同,除了異常點(diǎn)外,總共可以有6個(gè)類(lèi)別,每種類(lèi)別中的文本如表3所示。
續(xù)表3
對(duì)不同的文本表示模型以及聚類(lèi)模型進(jìn)行實(shí)驗(yàn),取每種模型最好的聚類(lèi)效果作為最終結(jié)果,最終的結(jié)果如表4所示。
表4 不同模型的聚類(lèi)效果
從表4可以看出,首先在使用相同的聚類(lèi)模型的情況下,基于RoBERTa模型做文本表示的算法,它的FM指數(shù)和MI指數(shù)比基于詞袋模型和Word2Vec模型做文本表示的算法平均高出8個(gè)百分點(diǎn)以上。其次,在使用相同的文本表示模型時(shí),基于HDBSCAN模型的算法比基于K-Means模型的算法具有更好的聚類(lèi)效果。除此之外,經(jīng)過(guò)微調(diào)的RoBERTa-WWM模型,相比于原始的RoBERTa-WWM模型,聚類(lèi)效果有所提升。
本文針對(duì)現(xiàn)有的文本聚類(lèi)算法在處理現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)時(shí)存在的問(wèn)題,提出了一種基于RoBERTa-WWM+HDBSCAN的文本聚類(lèi)算法,經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,首先該算法相比于傳統(tǒng)的文本聚類(lèi)算法,聚類(lèi)效果有了很大的提升,也更適合現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù),其次本文使用的t-SNE降維算法,除了可以用來(lái)降維,還可以對(duì)降維后的數(shù)據(jù)進(jìn)行可視化,這使得在后續(xù)的聚類(lèi)工作中,可以更好地確定最終的類(lèi)別數(shù),從而縮小了算法優(yōu)化過(guò)程中參數(shù)的調(diào)整范圍。然而本文仍存在可以改進(jìn)的點(diǎn),首先由于本文使用的有標(biāo)注的微調(diào)數(shù)據(jù)較少,因此對(duì)RoBERTa-WWM模型微調(diào)后,對(duì)算法整體的聚類(lèi)效果提升有限,如果進(jìn)一步擴(kuò)充數(shù)據(jù)集,聚類(lèi)效果的提升會(huì)更明顯,其次,本文只研究了THUNews數(shù)據(jù)集,在后續(xù)的工作中可以針對(duì)其他領(lǐng)域的數(shù)據(jù)進(jìn)行研究以進(jìn)一步提升該算法的泛化能力。