朱良奇,黃 勃,黃季濤,馬莉媛,史志才,2
1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620
2.上海信息安全綜合管理技術(shù)重點(diǎn)實(shí)驗(yàn)室,上海 200240
隨著互聯(lián)網(wǎng)和移動(dòng)終端的快速發(fā)展,網(wǎng)絡(luò)深入人心,越來越多的人在線上完成交易,如網(wǎng)絡(luò)購物、在線觀影以及外賣等,所以產(chǎn)生了大量的行為數(shù)據(jù),比如,購物評(píng)價(jià)、外賣評(píng)價(jià)以及影評(píng)等等,且以短文本居多。通過挖掘這些文本數(shù)據(jù)中潛在的信息,有助于企業(yè)發(fā)現(xiàn)新的商機(jī),對(duì)于政府可以及時(shí)發(fā)現(xiàn)輿情事件并做出正確疏導(dǎo)有重要意義。其次,網(wǎng)絡(luò)的發(fā)展,導(dǎo)致數(shù)據(jù)爆炸式增長,每天充斥著各種各樣的新聞報(bào)道,對(duì)于準(zhǔn)確地將各種新聞進(jìn)行分類展示,便于人們快速獲取熱點(diǎn)信息。正是上述的問題以及需求,對(duì)大量的短文本數(shù)據(jù)做出快速、準(zhǔn)確的聚類迫在眉睫。
短文本相比于長文本包含的字符數(shù)更少,文本描述更加隨意,各個(gè)實(shí)體間的關(guān)系會(huì)更加模糊,完整的語義信息更加難以準(zhǔn)確提取。傳統(tǒng)的空間向量模型基于詞出現(xiàn)的頻率等方法進(jìn)行文本向量化[1],應(yīng)用于短文本的表示,容易出現(xiàn)高維稀疏,造成語義鴻溝,對(duì)于下游的文本聚類或者分類等任務(wù)會(huì)直接導(dǎo)致準(zhǔn)確率下降。并且傳統(tǒng)的聚類方法將特征表示和聚類分為兩個(gè)步驟分別處理,這樣容易造成聚類模型和特征不匹配,以上的兩個(gè)原因?qū)е伦罱K聚類效果不盡人意。
針對(duì)以上短文本聚類過程出現(xiàn)的向量表征和模型匹配問題,本文提出一種BERT-AK模型,具體如下:
(1)首先利用預(yù)訓(xùn)練模型BERT(bidirectional encoder representations from transformers)[2]的多頭注意力機(jī)制和動(dòng)態(tài)詞向量等特性獲取具體語境的短文本向量表示,實(shí)現(xiàn)從數(shù)據(jù)空間到特征空間轉(zhuǎn)換。
(2)構(gòu)建一個(gè)降維自編碼網(wǎng)絡(luò)AutoEncoder,利用自監(jiān)督學(xué)習(xí)方法,訓(xùn)練一個(gè)特征提取器Encoder,把輸入的768維的高維向量進(jìn)一步轉(zhuǎn)換為低維稠密向量,用于下游聚類任務(wù)。
(3)聯(lián)合訓(xùn)練聚類網(wǎng)絡(luò)。利用Maaten和Hinton[3]提出的學(xué)生分布Q擬合文獻(xiàn)[4]提出的樣本點(diǎn)的輔助目標(biāo)分布P,最后以這兩個(gè)分布的KL散度為損失函數(shù),迭代聯(lián)合訓(xùn)練編碼器Encoder和聚類模型K-Means。
有學(xué)者利用詞袋模型BoW(bag of words)和詞頻-逆文檔頻率TF-IDF(term frequency-inverse document frequency)[1]對(duì)短文本進(jìn)行向量化表示,由于短文本本身字符數(shù)少的特性,導(dǎo)致利用上述的方法得到的文本向量高維且稀疏,利用這些文本向量進(jìn)行相似度計(jì)算的時(shí)候,往往不能準(zhǔn)確地反映樣本間真正的距離[5],會(huì)產(chǎn)生較大的誤差。Hu等[6]和Banerjee等[7]提出通過利用維基百科的相應(yīng)數(shù)據(jù)擴(kuò)充短文本數(shù)據(jù),彌補(bǔ)短文本信息不足問題,增強(qiáng)短文本的表達(dá)能力。同樣利用引入外部知識(shí),增強(qiáng)文本表達(dá)的還有Hotho等[8]和Wei等[9]提出利用本體方法論來擴(kuò)充短文本的信息表示,提高短文本的表示能力,以及Kozlowski等[10]和Zheng等[11]分別提出利用語料的主題和語義信息對(duì)短文本信息增強(qiáng),但是這些方法都需要很強(qiáng)的自然語言處理相關(guān)知識(shí)儲(chǔ)備,不同的數(shù)據(jù)源,需要不同的外部知識(shí),不具一般性,導(dǎo)致成本過高。
近年,隨著深度學(xué)習(xí)的快速發(fā)展,詞嵌入方法[12],對(duì)于解決文本表示有很大的提升,通過在大量的語料中利用無監(jiān)督的方法訓(xùn)練詞之間的語義關(guān)系,得到的詞向量更加稠密,更能表示該詞的語義信息。本質(zhì)上也是利用外部知識(shí)增強(qiáng)當(dāng)前的文本表示方法,但是更具一般性和高效性。文獻(xiàn)[4]提出深度嵌入聚類方法,利用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)文本的特征表示和聚類目標(biāo),該方法實(shí)現(xiàn)了從數(shù)據(jù)空間到低維特征空間的映射,然后迭代優(yōu)化聚類目標(biāo)。詞向量是文本表示的基礎(chǔ),傳統(tǒng)的詞向量化的方式有詞袋模型BoW以及靜態(tài)詞向量模型Word2Vec[13]等,由于前兩種詞表征方式都是從詞頻角度出發(fā)對(duì)詞進(jìn)行向量化,對(duì)于詞匯相對(duì)少的短文本,得到的詞向量是高維稀疏的,而且難以捕捉詞之間的語義和語法聯(lián)系,不利于下游任務(wù)的使用。而Word2Vec雖然是在大規(guī)模語料上訓(xùn)練得到的詞向量,但是由于模型結(jié)構(gòu)的原因,得到的是靜態(tài)的詞向量,對(duì)于包含多義詞的文本向量表征不準(zhǔn)確。BERT[2]預(yù)訓(xùn)練模型,該模型在億級(jí)別規(guī)模的語料上無監(jiān)督訓(xùn)練,并且利用掩碼方式,同時(shí)利用上下文信息提取語義關(guān)系,實(shí)現(xiàn)根據(jù)環(huán)境動(dòng)態(tài)提取詞向量,和獲取詞之間的潛在語義關(guān)系,模型表現(xiàn)出很強(qiáng)的魯棒性,在很多自然語言處理任務(wù)中取得了最好的結(jié)果[14-16]。本文提出采用BERT初始化文本向量表示,并在下游聚類任務(wù)中設(shè)計(jì)自編碼網(wǎng)絡(luò)進(jìn)一步降維和抽取稠密特征,最后將編碼器和聚類算法聯(lián)合微調(diào)模型,以提高準(zhǔn)確度。
BERT預(yù)訓(xùn)練模型是谷歌2018年提出的大型多任務(wù)語言模型[2],模型的結(jié)構(gòu)如圖1所示。為了同時(shí)捕獲詞和句子兩個(gè)目標(biāo)的特征信息表示,提出了MLM(masked language model)和NSP(next sentence prediction)任務(wù),其中,MLM通過將輸入句子中15%的詞采用以下三種策略掩蓋,具體的,該詞有10%的可能被替換為隨機(jī)詞,80%的可能被MASK字符串替換和10%的可能被保留的方式來實(shí)現(xiàn)掩碼效果,以提高模型的預(yù)測(cè)能力。NSP任務(wù)是因?yàn)樵谝恍﹩柎鹑蝿?wù)上需要兩個(gè)句子的關(guān)系,所以BERT模型通過訓(xùn)練下一個(gè)句子預(yù)測(cè)任務(wù),提高模型對(duì)于連續(xù)句子識(shí)別能力,提升在問答和推理等任務(wù)上的性能。
輸入包括三部分,如圖1所示,分別為詞條的詞嵌入(token embedding)、片段嵌入(segment embedding)和位置編碼嵌入(position embedding)。其中詞條的嵌入包括每個(gè)詞的向量嵌入和不在詞表中的詞的字符嵌入,片段嵌入是為了當(dāng)輸入為兩個(gè)句子時(shí),用于后期訓(xùn)練該模型的NSP任務(wù)。位置編碼嵌入是由于BERT利用Self-Attention機(jī)制,實(shí)現(xiàn)了輸入句子中詞之間相對(duì)距離都是1,解決了文本長距離依賴問題,但是丟失了原本的語序信息,對(duì)每個(gè)詞加入位置信息作為位置編碼,給模型提供詞之間的相對(duì)位置,提高了文本表征中信息的完整性。
如圖1所示,BERT的核心模塊便是Transformer塊,通過堆疊12個(gè)或24個(gè)該模塊,形成深度神經(jīng)網(wǎng)絡(luò)提取文本之間的語義信息。Transformer[17]是2017年谷歌提出的一種新的語言模型,通過引入自注意力機(jī)制Self-Attention解決了傳統(tǒng)自然語言處理問題的長程依賴問題,并且為了提高模型對(duì)于不同位置的識(shí)別能力,計(jì)算公式如式(1)所示:
圖1 BERT結(jié)構(gòu)圖Fig.1 BERT infrastructure diagram
其中,Q∈Rn×dk是查詢向量,可表示為Q=[q1,q2,…,qn],T,K∈Rm×dk和V∈Rm×dv分別表示為K=[k1,k2,…,kn]T和V=[v1,v2,…,vn]T。Attention將一個(gè)n×dk的序列編碼為一個(gè)n×dv的序列,為了防止計(jì)算過程中內(nèi)積很大時(shí)梯度小的問題,加入dk作為調(diào)節(jié)因子。
為了進(jìn)一步提高模型對(duì)于不同特征的關(guān)注,從而引入多頭注意力機(jī)制,使模型可以專注于不同特征,不同注意力頭head按照公式(2)進(jìn)行拼接。相比于其他的語言模型,BERT通過引入大量的外部知識(shí)信息和從輸入的上下文同時(shí)提取詞的表示信息,最后獲得詞更加完整的表征信息。
其中,headi的計(jì)算公式如式(3)所示,對(duì)每個(gè)headi拼接得到最終的多頭注意力輸出,作為文本向量的表征,然后輸入到前饋網(wǎng)絡(luò)進(jìn)行下一步的計(jì)算。
神經(jīng)網(wǎng)絡(luò)的初始化對(duì)于模型結(jié)果至關(guān)重要,因此本文利用自編碼網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)于特征提取器的參數(shù)初始化操作。自編碼網(wǎng)絡(luò)分為兩部分,由編碼器(Encoder)和解碼器(Decoder)組成,并且兩個(gè)網(wǎng)絡(luò)呈對(duì)稱結(jié)構(gòu)。編碼器和解碼器通常都是三層神經(jīng)網(wǎng)絡(luò),由輸入層、隱藏層和輸出層組成,如圖2所示。其中,編碼器的輸出是解碼器的輸入,編碼器和解碼器的輸出可以分別表示為公式(4)和(5)所示,自編碼網(wǎng)絡(luò)通過編碼器提取高維特征并降維處理輸出文本特征Zi,解碼器通過對(duì)稱的網(wǎng)絡(luò)結(jié)構(gòu),對(duì)編碼器的輸入X進(jìn)行重構(gòu),得到X′,目的是利用神經(jīng)網(wǎng)絡(luò)擬合一個(gè)恒等函數(shù),提高編碼器的特征提取能力。其中重構(gòu)過程采用均方誤差作為損失函數(shù),為了防止模型過擬合,本文采用L2范數(shù)進(jìn)行正則化,提高模型在測(cè)試集的表現(xiàn)。計(jì)算公式如式(6)所示。
圖2 自編碼網(wǎng)絡(luò)Fig.2 Self coding network
其中,We和Wh是權(quán)重矩陣,be和bh是偏置向量,f1和f2是映射函數(shù)。
其中,λ為懲罰因子,控制模型的復(fù)雜度。n為批量樣本個(gè)數(shù),Xi為輸入向量,Xi′為解碼器的擬合分布。W為模型的參數(shù)。
利用自編碼網(wǎng)絡(luò)初始化特征提取器Encoder,相比于隨機(jī)初始化,對(duì)于下游任務(wù)表現(xiàn)出更好的結(jié)果。本文所提出的BERT_AE_K-Means模型如圖3,利用上述訓(xùn)練好的編碼器Encoder對(duì)文本數(shù)據(jù)表示Embedding進(jìn)一步做特征降維處理,然后通過將該部分和聚類網(wǎng)絡(luò)Kmeans相結(jié)合,根據(jù)聚類結(jié)果反向調(diào)整網(wǎng)絡(luò)參數(shù)。該過程可以抽象為以下過程。
圖3 BERT-AK模型框架結(jié)構(gòu)圖Fig.3 Frame structure of BERT-AK model
(1)初始化K-Means聚類算法的簇心uj。由于基于劃分的K-Means聚類算法對(duì)于初始簇心的選取十分敏感,因此本文在不同的簇心下,利用K-Means進(jìn)行100次實(shí)驗(yàn)預(yù)估,計(jì)算劃分誤差最小的簇心作為初始的聚類簇心,然后計(jì)算每個(gè)樣本點(diǎn)i屬于簇j的概率qij,計(jì)算公式如式(7),得到樣本點(diǎn)的概率分布Q。
其中,zi表示樣本點(diǎn)的特征向量,uj表示簇心向量,v是t分布的自由度,本文為取值為1。
(2)本文中的自監(jiān)督學(xué)習(xí)的目標(biāo)分布采用Xie等[4]所提出的輔助目標(biāo)分布P,該分布相對(duì)于步驟(1)得到的樣本點(diǎn)的軟分布Q,P更近似于原數(shù)據(jù)分布[4],所以作為自訓(xùn)練階段的輔助目標(biāo)具有合理性。輔助目標(biāo)分布的計(jì)算公式如式(8)所示:
其中,qij表示樣本i屬于簇心j的估計(jì)概率。
(3)聯(lián)合訓(xùn)練編碼器Encoder和聚類網(wǎng)絡(luò)K-Means。由于需要度量兩個(gè)分布Q和P之間的差異,本文采用KL散度(KL-divergence)作為損失函數(shù)訓(xùn)練模型,計(jì)算公式如式(9)所示:
其中,P是估計(jì)分布,Q是輔助目標(biāo)分布,pij是樣本屬于簇心j的近似概率,qij是樣本i屬于簇心j的估計(jì)概率值。
本文在4個(gè)短文本數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn):(1)Search-Snippets,該數(shù)據(jù)集來自谷歌搜索引擎,一共有12 295個(gè)短文本,包含8個(gè)不同類別[18]。(2)StackOverflow,該數(shù)據(jù)集是一些問答案例的標(biāo)題數(shù)據(jù),發(fā)布于Kaggle平臺(tái),一共有16 407個(gè)短文本,分別來自20個(gè)不同類別[19]。(3)BioMedical,該數(shù)據(jù)集發(fā)布于BioASQ官方網(wǎng)站,來自生物醫(yī)學(xué)相關(guān)領(lǐng)域,一共包含20個(gè)類別和19 448個(gè)樣本[20]。(4)Tweet,該數(shù)據(jù)集由2 472個(gè)短文本組成,包含89個(gè)類別[20]。關(guān)于數(shù)據(jù)集的詳細(xì)信息如表1所示,其中N表示每個(gè)數(shù)據(jù)集包含的類別個(gè)數(shù),T表示每個(gè)數(shù)據(jù)集包含的文本數(shù)量,L表示每一個(gè)數(shù)據(jù)集的樣本平均長度。
表1 短文本數(shù)據(jù)集Table 1 Short text dataset
本文實(shí)驗(yàn)中,利用BERT預(yù)訓(xùn)練模型獲取詞的上下文動(dòng)態(tài)詞向量表征,將模型[CLS]標(biāo)簽輸出的768維向量作為短文本的向量表示,該標(biāo)簽是BERT模型輸出的用于文本分類的包含全局信息的文本表示。由于當(dāng)前得到的文本向量表示維度高,直接利用聚類算法聚類,不但準(zhǔn)確率低,而且會(huì)導(dǎo)致模型的時(shí)間復(fù)雜度過高,因此本文提出利用AutoEncoder模型對(duì)上述的文本向量做特征提取和降維,自編碼網(wǎng)絡(luò)的內(nèi)部分為Encoder和Decoder部分,Encoder模塊包含輸入層,隱藏層和輸出層,神經(jīng)元個(gè)數(shù)分別是768、1 000和128,特別的,編碼器的輸出作為解碼器的輸入,Decoder模塊同樣包含三層網(wǎng)絡(luò),神經(jīng)元的個(gè)數(shù)分別是128、1 000和768,實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的向量表征V進(jìn)行重構(gòu)。訓(xùn)練過程中,設(shè)置批處理大小為64,學(xué)習(xí)率為0.001,優(yōu)化算法為隨機(jī)梯度下降算法(stochastic gradient descent,SGD)。經(jīng)過30次迭代優(yōu)化,得到特征提取器Encoder,然后利用該編碼器對(duì)輸入的文本向量V進(jìn)行降維和特征提取,然后輸入到聚類網(wǎng)絡(luò),利用聚類結(jié)果反向優(yōu)化編碼器和聚類模型的參數(shù),進(jìn)行聯(lián)合訓(xùn)練優(yōu)化。該階段模型的損失函數(shù)設(shè)置為KL散度,通過不斷優(yōu)化模型輸出的樣本估計(jì)分布Q和輔助目標(biāo)分布P之間的距離,提高編碼器對(duì)于當(dāng)前數(shù)據(jù)的特征提取能力和聚類的準(zhǔn)確度。
3.2.1 對(duì)比實(shí)驗(yàn)
本文一共設(shè)置了6組對(duì)比實(shí)驗(yàn),分別在四個(gè)短文本數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),對(duì)比模型詳細(xì)介紹如下:
前兩組對(duì)比模型是基線模型,分別利用TF-IDF和Word2Vec獲取詞向量,然后基于詞向量對(duì)文本進(jìn)行特征表示,然后直接利用K-Means聚類算法進(jìn)行聚類。
STC2[19]是一種基于詞嵌入和卷積神經(jīng)網(wǎng)絡(luò)的短文本聚類算法,在聚類的過程中利用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)文本表示。
GSDPMM[20]是一種用于短文本聚類的基于狄利克雷過程的多項(xiàng)式混合模型,該模型不需要提前指定簇的個(gè)數(shù),由于模型的設(shè)計(jì)原因,通常趨向于產(chǎn)生更多的簇。
SIF-Auto[21]是一種利用SIF詞向量表示方法進(jìn)行文本表示,然后利用自編碼網(wǎng)絡(luò)進(jìn)行特征提取,最后進(jìn)行聚類的算法。
BERT_K-Means和BERT_AE_K-Means兩個(gè)模型是本文提出的文本表示方法,均采用預(yù)訓(xùn)練模型BERT提取文本的語義表示,第一個(gè)模型相比第二個(gè)沒有經(jīng)過自編碼網(wǎng)絡(luò)進(jìn)行特征提取和降維,用來驗(yàn)證提取到的高階特征對(duì)下游文本聚類的重要性。
3.2.2 評(píng)價(jià)指標(biāo)
本文在四個(gè)數(shù)據(jù)集上進(jìn)行了多次實(shí)驗(yàn),選用聚類準(zhǔn)確率(accuracy,ACC)和標(biāo)準(zhǔn)互信息(normalized mutual information,NMI)作為模型評(píng)價(jià)指標(biāo)。聚類準(zhǔn)確率ACC的計(jì)算公式如下:
其中,N是樣本個(gè)數(shù),Ci是模型對(duì)樣本點(diǎn)xi分配到的簇標(biāo),yi是樣本點(diǎn)xi的真實(shí)標(biāo)簽,map(Ci)用于將模型得到的簇標(biāo)映射為與yi相同的形式。δ(x,y)是判別函數(shù),定義如式(11)所示,用于判斷聚類得到的類別和真實(shí)標(biāo)簽是否相同。
標(biāo)準(zhǔn)互信息NMI計(jì)算公式如下:
其中,H(·)為信息熵,H(C),H(D)用于將互信息值歸一化到[0,1]范圍內(nèi)。I(C,D)定義為C和D之間的互信息值,計(jì)算公式如式(13)所示:
當(dāng)聚類模型把數(shù)據(jù)C和D完美劃分為兩部分的時(shí)候,標(biāo)準(zhǔn)互信息值取到最大值為1。
本文為了實(shí)驗(yàn)結(jié)果的可靠性,每個(gè)模型的結(jié)果都是取10次實(shí)驗(yàn)的平均值作為模型最終的結(jié)果,同時(shí),在相同的數(shù)據(jù)集上做了6組對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)的結(jié)果分別如表2和表3所示。通過K-Means、Word2Vec_K-Means和BERT_K-Means三個(gè)實(shí)驗(yàn),驗(yàn)證文本的不同向量表示對(duì)于文本聚類的重要性,從表2中可以看到3個(gè)實(shí)驗(yàn)中BERT_K-Means效果最好,相比于Word2Vec_KMeans模型在SearchSnippet數(shù)據(jù)集上準(zhǔn)確率提高了24個(gè)百分點(diǎn),而Word2Vec_K-Means模型相比于K-Means也提高了20個(gè)百分點(diǎn),從實(shí)驗(yàn)結(jié)果可以看到,在短文本上,直接利用基于詞頻的文本表示效果最差,利用大量語料進(jìn)行預(yù)訓(xùn)練可以有效地提高文本表示的能力,從而提高下游的文本聚類的效果。
實(shí)驗(yàn)GSDPMM和STC2以及SIF-Auto是近年提出的在這4個(gè)數(shù)據(jù)集上取得不錯(cuò)結(jié)果的方法,本文將其作為部分對(duì)比實(shí)驗(yàn),驗(yàn)證本文提出的特征提取和聚類方法的有效性,從表2和表3中可以看到GSDPMM在Tweet數(shù)據(jù)集上均表現(xiàn)出了最好的結(jié)果,因?yàn)門weet數(shù)據(jù)集包含89個(gè)類別,相比其他數(shù)據(jù)集樣本數(shù)多出4倍,而GSDPMM模型趨向于產(chǎn)生更多的簇,因此在該數(shù)據(jù)上取得了最好的結(jié)果,其中ACC和NMI值均比本文提出的模型高不到1個(gè)百分點(diǎn)。本文提出的方法在其他3個(gè)數(shù)據(jù)集上均取得了最好的結(jié)果,其中ACC在StackOver-Flow數(shù)據(jù)集上比最好的對(duì)比模型SIF-Auto的結(jié)果提升3個(gè)百分點(diǎn),NMI值在BioMedical數(shù)據(jù)集上相比對(duì)比模型SIF_Auto提升2.8個(gè)百分點(diǎn)。
表2 模型在數(shù)據(jù)集上的準(zhǔn)確率對(duì)比Table 2 Accuracy comparison of models on datasets %
表3 模型在數(shù)據(jù)集上的標(biāo)準(zhǔn)互信息對(duì)比Table 3 Standard mutual information comparison of models on datasets %
最后兩組實(shí)驗(yàn)BERT_K-Means和BERT_AE_KMeans進(jìn)行對(duì)比驗(yàn)證本文提出的自編碼網(wǎng)絡(luò)對(duì)于文本特征提取和降維的有效性,通過該模塊進(jìn)行特征提取和降維之后,文本的表示向量更適合下游的應(yīng)用。從表2和表3均可以看到,聚類準(zhǔn)確率在各個(gè)數(shù)據(jù)集上均有提升,并且在除了Tweet數(shù)據(jù)集外,其他3個(gè)數(shù)據(jù)集上取得了對(duì)比實(shí)驗(yàn)中最好的效果,其中NMI值在StackOverflow數(shù)據(jù)集上比BERT_K-Means提升超過4個(gè)百分點(diǎn),ACC提升6個(gè)百分點(diǎn)。說明了本文提出的對(duì)文本表示進(jìn)行特征提取和降維方法可以有效地提高文本表示能力,從而提高了聚類算法的性能。
上述實(shí)驗(yàn)驗(yàn)證了本文所提出的文本表示和高階特征提取方法對(duì)于提高聚類準(zhǔn)確度方面的有效性,同時(shí)為了驗(yàn)證模型的計(jì)算效率,本文選取近年提出的對(duì)比實(shí)驗(yàn)STC2、SIF_Auto與本文所 提出的BERT_K-Means和BERT_AE_K-Means模型在四個(gè)數(shù)據(jù)集各一萬條樣本上進(jìn)行運(yùn)行時(shí)間測(cè)試,對(duì)比結(jié)果如圖4所示。
圖4 各個(gè)模型運(yùn)行時(shí)間Fig.4 Running time of each model
從圖4中可以看到,本文所提出的BERT_AE_KMeans模型在四個(gè)數(shù)據(jù)集上的運(yùn)行時(shí)間均低于BERT_K-Means,略高于STC2和SIF_Auto兩個(gè)對(duì)比實(shí)驗(yàn),這是由于BERT預(yù)訓(xùn)練模型輸出的是768維的高維特征向量,需要更多的計(jì)算時(shí)間,而相比BERT_K-Means,本文通過AutoEncoder模塊提取高階特征后,不但減少了計(jì)算量,而且聚類模型更容易收斂,所以運(yùn)行時(shí)間低于BERT_K-Means模型。因此可以看出本文所提出的模型在提高聚類準(zhǔn)確度的同時(shí),時(shí)間復(fù)雜度并沒有大幅提高。
為了更加直觀地看到聚類結(jié)果的變化,本文在SearchSnippet數(shù)據(jù)集上將對(duì)比實(shí)驗(yàn)下的聚類結(jié)果進(jìn)行降維處理,利用python的Sklearn庫中的集成模型t-SNE將樣本數(shù)據(jù)特征降維到2維空間,可視化如圖5所示,可以直觀地看到基于詞頻統(tǒng)計(jì)的TF-IDF模型所得到的聚類效果最糟糕,沒有有效地將各個(gè)類別的數(shù)據(jù)劃分開,這是因?yàn)閷?duì)于短文本數(shù)據(jù)集,樣本數(shù)據(jù)所包含的詞匯數(shù)量少,能夠體現(xiàn)文本意思的核心詞匯不足,通過詞頻統(tǒng)計(jì)的文本向量化表征方法導(dǎo)致核心語義詞匯并不能體現(xiàn)出高的權(quán)重,因此這種基于統(tǒng)計(jì)的文本表示方式所得到的聚類效果不好。STC2模型利用卷積網(wǎng)絡(luò)提取文本信息的特征,相比于圖5(b),聚類算法直接作用于數(shù)據(jù)空間,前者提取特征之后得到的聚類效果更加明顯,各個(gè)簇的邊界曲線更加清楚。圖5(d)采用SIF進(jìn)行文本表示之后利用自編碼網(wǎng)絡(luò)提取文本的高階特征表示,有效地提高了聚類的效果。圖5(e)是本文采用預(yù)訓(xùn)練模型BERT進(jìn)行文本表示之后,直接利用K-Means進(jìn)行聚類,和圖5(b)相對(duì)比,可以明顯看出預(yù)訓(xùn)練模型BERT利用上下文環(huán)境信息動(dòng)態(tài)獲取文本表示比利用Word2Vec得到的文本表示更有利于下游的聚類,各個(gè)簇的邊界更加清晰。圖5(f)是本文提出的模型BERT_AE_K-Means聚類得到的結(jié)果,通過和圖5(e)相比,進(jìn)一步驗(yàn)證本文提出采用自編碼網(wǎng)絡(luò)對(duì)于BERT得到的文本向量提取高階特征之后,可以再次提升聚類模型的有效性,在SearchSnippet數(shù)據(jù)集上表現(xiàn)出最好的聚類效果,得到的簇的邊界更加清晰。
圖5 在SearchSnippets數(shù)據(jù)集上聚類結(jié)果的對(duì)比圖Fig.5 Comparison of clustering results on SearchSnippets dataset
通過以上實(shí)驗(yàn)可以發(fā)現(xiàn)文本聚類任務(wù)中,對(duì)于文本的向量化表征十分重要,本文相比于傳統(tǒng)的基于詞頻統(tǒng)計(jì)的向量表征方法和基于Word2Vec的靜態(tài)詞向量方法,充分利用大型預(yù)訓(xùn)練模型BERT提取詞之間高維空間的語義和語法等信息,對(duì)于下游的文本聚類任務(wù)效果的提升尤為重要,以及配合本文提出的特征抽取、降維和聚類微調(diào)方法,在文本聚類任務(wù)上準(zhǔn)確度有了較大的提升。本文將聚類準(zhǔn)確率和標(biāo)準(zhǔn)互信息值在各個(gè)模型的縱向?qū)Ρ冉Y(jié)果可視化如圖6和圖7所示,從圖中可以直觀地發(fā)現(xiàn),本文所提出模型獲得更高的準(zhǔn)確率。
圖6 模型的聚類準(zhǔn)確率縱向?qū)Ρ葓DFig.6 Accuracy comparison chart of model on dataset
圖7 模型的聚類標(biāo)準(zhǔn)互信息縱向?qū)Ρ葓DFig.7 Standard mutual information comparison chart of model on dataset
本文提出了一種組合模型用來解決短文本聚類問題,通過利用預(yù)訓(xùn)練模型BERT初始化文本向量表征,將文本數(shù)據(jù)空間轉(zhuǎn)換到特征空間,提取詞之間的高維語義關(guān)系,然后將得到的文本特征向量輸入到自編碼網(wǎng)絡(luò)訓(xùn)練特征映射編碼器,通過自編碼網(wǎng)絡(luò)的自監(jiān)督學(xué)習(xí)完成編碼器Encoder的訓(xùn)練,最后將編碼器和聚類模型相結(jié)合。利用聚類網(wǎng)絡(luò)K-Means計(jì)算每個(gè)樣本點(diǎn)的估計(jì)概率分布Q和輔助目標(biāo)分布P,利用KL散度作為損失函數(shù)聯(lián)合訓(xùn)練編碼器Encoder和聚類模型。本文的模型在4個(gè)公開的數(shù)據(jù)集上,聚類準(zhǔn)確率ACC和標(biāo)準(zhǔn)互信息NMI基本都高于對(duì)比實(shí)驗(yàn)結(jié)果,在數(shù)據(jù)集SearchSnippet上,通過t-SNE方法對(duì)文本數(shù)據(jù)進(jìn)行特征降維到2維空間,進(jìn)行可視化,可以看到本文提出的模型的聚類效果更好,類之間的分割更加明確,本文的研究和提出的模型具有一定的意義。