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