李曉璐,趙慶聰,3,齊 林
(1.北京信息科技大學(xué)信息管理學(xué)院,北京 100192;2.北京信息科技大學(xué)經(jīng)濟(jì)管理學(xué)院,北京 100192;3.綠色發(fā)展大數(shù)據(jù)決策北京市重點(diǎn)實(shí)驗(yàn)室,北京 100192;4.北京世界城市循環(huán)經(jīng)濟(jì)體系(產(chǎn)業(yè))協(xié)同創(chuàng)新中心,北京 100192)
中國(guó)傳統(tǒng)文化源遠(yuǎn)流長(zhǎng),中華民族創(chuàng)造了無數(shù)文化瑰寶,現(xiàn)階段需要通過科技的力量將這些寶貴的文化財(cái)富融入現(xiàn)代生活中。但是由于傳統(tǒng)文化體系龐大,加大了獲取和理解傳統(tǒng)文化的難度,因此實(shí)現(xiàn)中國(guó)傳統(tǒng)文化的體系分類是一項(xiàng)需迫切解決的問題。本研究基于課題組的中國(guó)傳統(tǒng)文化素材庫進(jìn)行主題聚類研究,該素材庫的數(shù)據(jù)源為《四庫全書》和《太平御覽》。從上述數(shù)據(jù)源抽取出古文短文本數(shù)據(jù)集,通過自然語言處理以及聚類算法挖掘出該數(shù)據(jù)集的內(nèi)在聯(lián)系和潛在信息,得到每一條文本所屬具體類別。該數(shù)據(jù)集表現(xiàn)為短文本詞條的形式,短文本不同于傳統(tǒng)文本,短文本包含的有效信息量少,具有特征稀疏等特點(diǎn),且部分詞條內(nèi)容夾雜古文,基于機(jī)器學(xué)習(xí)的傳統(tǒng)文本聚類算法效果不佳。
傳統(tǒng)短文本聚類往往利用向量空間來進(jìn)行文本的表示,而該文本表示方法具有特征稀疏、特征維度高,且忽略文本語義等特點(diǎn)。Shangfu Gong等在分析傳統(tǒng)互信息缺陷的基礎(chǔ)上,提出了一種基于二次TF-IDF互信息的特征選擇方法,實(shí)驗(yàn)證明該方法對(duì)特征降維有效。郭頌等從信息增益的角度進(jìn)行特征降維,提出了一種基于特征分布差異因子加權(quán)的算法,改善了文本表示的表征能力。這些降維方法可以有效的提高長(zhǎng)文本的聚類效果,但是短文本由于其自身的特點(diǎn)并不適用。隨著深度學(xué)習(xí)的發(fā)展,王月等使用BERT(Bidirectional Encoder Representation From Transformers)預(yù)訓(xùn)練模型來代替Word2vec的Skip-gram和CBOW來進(jìn)行詞向量的訓(xùn)練,實(shí)驗(yàn)表明,該方法極大地提高了詞向量的表征能力。Rakib等提出一種基于迭代分類的聚類增強(qiáng)算法,實(shí)驗(yàn)表明,其可提高任意基線聚類算法的聚類結(jié)果。Pugachev等在Rakib工作的基礎(chǔ)上,引入了BERT預(yù)訓(xùn)練模型,實(shí)驗(yàn)結(jié)果表明該方法提高了其在英文公開數(shù)據(jù)集上的聚簇效果。結(jié)合該古文數(shù)據(jù)集特征稀疏,上下文語義信息聯(lián)系緊密等特點(diǎn),本文嘗試采用BERT預(yù)訓(xùn)練模型作為生成詞向量的方法,結(jié)合K-means聚類算法+迭代分類模型進(jìn)行訓(xùn)練,提出一種BERT+K-means+迭代分類思想的融合模型,對(duì)該古文短文本進(jìn)行聚類研究。
短文本表示是文本挖掘、信息檢索以及自然語言處理(NLP)等研究的基礎(chǔ),文本表示是為了將非結(jié)構(gòu)化的文本數(shù)據(jù)轉(zhuǎn)化為計(jì)算機(jī)可以處理的數(shù)據(jù)格式。學(xué)術(shù)界目前提出了多種文本表示模型,傳統(tǒng)的文本表示方法有向量空間模型(Vector Space Model,VSM)、語言模型、本體等。利用高效的文本特征提取方法來構(gòu)造文本表示模型是提高短文本聚簇效果的關(guān)鍵。隨著計(jì)算機(jī)性能的不斷提升,深度學(xué)習(xí)在自然語言處理(NLP)中也發(fā)揮著越來越重要的作用,基于語義信息的詞向量表示模型成為現(xiàn)在研究的重點(diǎn)。
1.1.1 向量空間模型
向量空間模型(VSM)由G.Salton首次提出,是一種基于詞袋模型的文本表示方法。向量空間模型將文本轉(zhuǎn)換為空間中的向量形式,特征詞的個(gè)數(shù)即為向量的維數(shù)。假如一個(gè)文本文檔包含n個(gè)特征項(xiàng),則文本可以表示為如下公式:D=((t,w),(t,w),…,(t,w)),其中t表示文本第i個(gè)特征詞,w表示文本第i個(gè)特征詞的權(quán)重值。表1描述了文檔集-特征項(xiàng)矩陣表示的文本集。
表1 VSM文檔集-特征項(xiàng)矩陣示例
傳統(tǒng)的向量空間模型一般使用TF-IDF來計(jì)算文檔中特征項(xiàng)的權(quán)重,TF-IDF是一種基于統(tǒng)計(jì)的方法,可以有效評(píng)估一個(gè)詞對(duì)所屬文檔的重要程度。TF-IDF計(jì)算公式如下:
其中,n表示詞i在文檔j中的出現(xiàn)頻次,|D|表示文檔集中總文檔數(shù)。
向量空間模型使用向量來表示文本,使模型具有了可計(jì)算性,可以有效評(píng)估不同詞語對(duì)文檔的重要程度,VSM簡(jiǎn)單直接但是由于維數(shù)過高而產(chǎn)生特征稀疏問題,并且VSM假設(shè)詞與詞之間獨(dú)立,割裂了詞語之間的上下文語義關(guān)系。
1.1.2 詞向量模型
由于傳統(tǒng)的文本表示方法具有維度高、性能差、并且不能發(fā)揮文本中同義詞的作用等特點(diǎn)。Hinton首先提出了詞向量的分布式表示,其基本思想是將每個(gè)詞語映射到低維稠密且維度固定的向量表示中,也被稱為詞嵌入(Word Embedding)。經(jīng)多年發(fā)展之后,產(chǎn)生了多種詞向量模型。Bengio等提出了一種G-gram的神經(jīng)概率模型,該模型使用Softmax作為輸出層,模型復(fù)雜度會(huì)隨著詞匯表的增加而增大,無形中增加了訓(xùn)練的難度。隨后,Morin和Bengio對(duì)該算法進(jìn)行了改進(jìn),將輸出層的Softmax與哈夫曼樹相結(jié)合,該改變大大降低了訓(xùn)練的復(fù)雜度。
Mikolov等提出了將特征詞轉(zhuǎn)換為詞向量的Word2vec語言模型,該模型包括兩種詞向量訓(xùn)練模型CBOW和Skip-gram,前者通過學(xué)習(xí)特征詞上下文環(huán)境的獨(dú)熱編碼,輸出預(yù)測(cè)詞的獨(dú)熱編碼向量,后者與之相反。該模型根據(jù)上下文環(huán)境預(yù)測(cè)特征詞的詞向量,很好的保留了文本的語義相關(guān)性,也實(shí)現(xiàn)了特征項(xiàng)從高維到低維的映射。詞向量訓(xùn)練模型CBOW和Skip-gram的結(jié)構(gòu)圖如圖1所示。
圖1 CBOW和Skip-gram模型結(jié)構(gòu)
隨 著ELMo(Embeddings From Language Models)、GPT(Generative Pre-Training)、BERT等預(yù)訓(xùn)練模型的出現(xiàn),不僅改變了自然語言處理任務(wù)中的模型結(jié)構(gòu),在自然語言處理領(lǐng)域中的諸多任務(wù)中也都取得了最優(yōu)的結(jié)果。不同于Word2vec、Glove等詞向量模型中一個(gè)詞只對(duì)應(yīng)一個(gè)詞向量,上述預(yù)訓(xùn)練模型會(huì)根據(jù)上下文語料創(chuàng)建高度相關(guān)的詞向量表示,解決了Word2vec、Glove等詞向量模型無法解決的一詞多義問題。
文獻(xiàn)[15]提出了BERT預(yù)訓(xùn)練模型,該模型是一種基于Transformer模型的雙層編碼器表示,BERT模型根據(jù)上下文語料動(dòng)態(tài)生成詞語對(duì)應(yīng)的詞向量表示,解決了上述多義詞問題。BERT不是只根據(jù)出現(xiàn)過的詞來預(yù)測(cè)下一個(gè)詞,而是將整個(gè)句子中的一部分詞進(jìn)行隨機(jī)掩蓋,使用雙向Transformer來預(yù)測(cè)掩蓋的詞,BERT網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 Bert網(wǎng)絡(luò)結(jié)構(gòu)
文本聚類就是將文檔集中的文檔根據(jù)一定的規(guī)則劃分成不同的聚簇的過程,通過計(jì)算文本向量之間的相似度進(jìn)行聚類,如果相似度高則說明為同一聚簇。常見的文本聚類方法大致分為基于層次的聚類和基于劃分的聚類,層次聚類是將文本對(duì)象組織成一個(gè)聚類的樹,然而層次聚類算法相比較而言時(shí)間復(fù)雜度高,不適合大量文本的聚類操作?;趧澐值木垲惽∏∠喾矗湫偷挠蠯-means算法,這是一種基于質(zhì)心的聚類算法,其原理是首先選擇k個(gè)文檔作為初始的聚類點(diǎn),然后通過計(jì)算文本相似度,將高于閾值的文檔劃分為一個(gè)簇,依次迭代計(jì)算。K-means聚類算法流程如下:
算法1 K-means聚類算法
輸入:語料集D,聚類簇?cái)?shù)K,誤差平方差收斂條件
輸出:聚簇劃分C={C,C,C,…,C}
①?gòu)恼Z料集中隨機(jī)選擇K個(gè)樣本作為初始聚簇中心。
②采用歐式距離計(jì)算每個(gè)樣本點(diǎn)與初始聚簇中心的相似度,按照最小距離原則將樣本點(diǎn)劃分到最臨近聚簇中心。
③計(jì)算所有聚簇樣本點(diǎn)的均值,并由此更新聚類中心。
④計(jì)算誤差平方和,若滿足收斂條件,則繼續(xù)執(zhí)行,若不滿足,繼續(xù)重復(fù)②③。
⑤輸出聚簇劃分C={C,C,C,…,C}。
本論文總體實(shí)驗(yàn)流程如圖3所示。
圖3 實(shí)驗(yàn)流程
使用初始聚類結(jié)果進(jìn)行迭代訓(xùn)練,對(duì)每一個(gè)聚簇結(jié)果采用孤立森林(Isolation Forest)作為離群值檢測(cè)算法,記錄每一個(gè)聚簇結(jié)果的離群值與非離群值。將非離群值作為訓(xùn)練集,離群值作為測(cè)試集。使用訓(xùn)練集訓(xùn)練分類器,然后利用該分類器對(duì)測(cè)試集進(jìn)行分類,直到達(dá)到停止標(biāo)準(zhǔn)或者最大迭代次數(shù)。對(duì)迭代后的聚類結(jié)果計(jì)算準(zhǔn)確率和互信息值,保存模型并整理實(shí)驗(yàn)結(jié)果,實(shí)驗(yàn)證明迭代分類增強(qiáng)了聚類結(jié)果。
分詞是數(shù)據(jù)預(yù)處理的核心步驟,是指通過某些策略將沒有分隔符的句子分成若干詞語,這對(duì)于中文文本的處理尤為重要。目前中文分詞技術(shù)主要包括三種:基于規(guī)則的分詞技術(shù)(正向最大匹配法、逆向最大匹配法、雙向最大匹配法等)、基于統(tǒng)計(jì)的分詞(隱馬爾可夫、條件隨機(jī)場(chǎng)等)以及混合分詞。Jieba分詞作為一個(gè)開源的中文分詞工具,采用基于規(guī)則和統(tǒng)計(jì)兩種方法的混合分詞技術(shù)。
首先基于詞典的方式進(jìn)行分詞,得到一個(gè)包含所有分詞結(jié)果的有向無環(huán)圖,對(duì)于標(biāo)注語料,采取動(dòng)態(tài)規(guī)劃的策略來獲取最大概率路徑。對(duì)于未登錄詞Jieba采用了隱馬爾可夫模型,并通過Viterbi算法進(jìn)行推導(dǎo)。Jieba分詞包含三種切分模式:精確模式、全模式、搜索引擎模式。精確模式是指以最精確的方式將句子切分,適用于文本分析;全模式試圖將所有可以組詞的詞語都切分出來,但沒有解決歧義問題;搜索引擎模式則是基于精準(zhǔn)模式的結(jié)果,對(duì)長(zhǎng)詞再進(jìn)行下一步的切分,適用于搜索引擎問題。本文利用精確模式對(duì)文檔集進(jìn)行分詞操作。分詞示例如表2所示。
表2 分詞結(jié)果
分詞結(jié)束之后對(duì)分詞結(jié)果進(jìn)行去停用詞操作,停用詞是指文本中沒有意義的語氣詞、助詞等。本論文停用詞表采用哈工大實(shí)驗(yàn)室的停用詞詞表,在該詞表基礎(chǔ)上,加入本文數(shù)據(jù)集中與古文相關(guān)的助詞與語氣詞,進(jìn)一步提高停用詞的篩選效果。
常見的主流預(yù)訓(xùn)練有兩種feature-based和fine-tuning。feature-based將語言模型的中間結(jié)果即LM embedding作為額外的特征,引入到原任務(wù)的模型中。最典型的是ELMo,其首先對(duì)語料庫進(jìn)行訓(xùn)練,以language model為目標(biāo)訓(xùn)練出bi-direction LSTM,再通過LSTM得到詞語的向量表示。然而ELMo究其根本是兩個(gè)單向語言模型的拼接,并沒有實(shí)現(xiàn)真正的雙向。fine-tuning是指在已經(jīng)訓(xùn)練好的模型的基礎(chǔ)上,加入特定任務(wù)的模型參數(shù)進(jìn)行微調(diào),進(jìn)而更好的完成下游任務(wù),OpenAIGPT采用了該方法,使用單向的transformer decoder進(jìn)行訓(xùn)練。由于ELMo和GPT采用的都是單向的語言模型,無法充分的獲取詞語的上下文語義,2018年Google提出的BERT,才是真正采用了雙向Transformer的預(yù)訓(xùn)練模型,能捕獲基于字的序列信息、上下文語義信息等,解決了一詞多義問題。BERT使用Transformer來代替Bi-LSTM,Transformer的并行能力遠(yuǎn)強(qiáng)于Bi-LSTM,并且可以采用多層注意力機(jī)制疊加的方式來提高表征能力。
BERT模型的主要?jiǎng)?chuàng)新點(diǎn)在于預(yù)訓(xùn)練方法上的改進(jìn),預(yù)訓(xùn)練階段分為兩個(gè)階段,分別采用掩蔽語言模型(masked language model,MLM)和下一句預(yù)測(cè)(next sentence prediction,NSP)兩種方法聯(lián)合訓(xùn)練來獲取詞和句子層面的上下文語義表達(dá),其中MLM真正采用了雙向語言模型。
2.3.1 掩蔽語言模型(MLM)
MLM模型通過隨機(jī)掩蔽一定比例的輸入tokens,然后根據(jù)上下文預(yù)測(cè)得到這些被掩蔽的token,這個(gè)過程也可稱為完形填空法。論文中mask每一句子中15%的token。由于在后續(xù)fine-tuning過程中,輸入不會(huì)出現(xiàn)[mask],這就造成了預(yù)訓(xùn)練與fine-tuning不匹配的問題。為了減輕不匹配問題的影響,將這15%需要被mask的token分為以下三種情況:80%的概率用[mask]代替被掩蔽的token、10%的概率用一個(gè)隨機(jī)詞來代替、剩下10%采用原有單詞不做改變。由于隨機(jī)替換句子中token的概率只有1.5%(15%×10%),并不會(huì)對(duì)模型的語言表達(dá)能力造成太大影響。
2.3.2 下一句預(yù)測(cè)(NSP)
MLM是基于token級(jí)別的預(yù)訓(xùn)練,但是自然語言處理任務(wù)中的許多下游任務(wù),比如問答、自然語言推理等,都需要句子關(guān)系層面的理解。然而這種句子層面的理解不能通過語言建模直接訓(xùn)練得到,于是BERT提出一種方法對(duì)獲取下一個(gè)句子進(jìn)行預(yù)訓(xùn)練。具體方法是:在語料庫中選擇50%正確句子對(duì),有50%的概率A與B構(gòu)成上下句,剩余50%情況不構(gòu)成上下句。該訓(xùn)練過程類似于構(gòu)建一個(gè)二分類模型,用來判斷句子之間的關(guān)系。
迭代增強(qiáng)聚類算法流程如算法2所示:
算法2迭代增強(qiáng)聚類算法
輸入:文檔集D(n個(gè)文檔),初始文檔標(biāo)簽L,聚類簇?cái)?shù)K
輸出:增強(qiáng)后的聚簇劃分C={C,C,C,…,C}
1.設(shè)定迭代次數(shù)max Iter=50
2.計(jì)算每一簇的平均文檔數(shù)avgTexts=n K
3.while i 4. 從區(qū)間[P,P]隨機(jī)選擇一個(gè)數(shù)P 5. 利用離群檢測(cè)算法從D中根據(jù)標(biāo)簽P移除每一個(gè)簇的離群值 6. 若簇中的文檔數(shù)n≥P×avgTexts: 7. 隨機(jī)的移除簇中文檔使得簇中文檔數(shù)保持在P×avgTexts以內(nèi) 8. 將步驟5、6、7中移除的文檔作為testSet,剩余文檔作為trainSet 9. 使用trainSet訓(xùn)練分類器對(duì)testSet中的文檔進(jìn)行分類,更新testSet中的L 10.end 本研究通過重復(fù)的將初始聚簇中的離群值重新分配來更新聚類的簇劃分結(jié)果,并將這個(gè)重復(fù)過程稱為迭代分類。在每次的迭代過程中,通過離群值算法將初始聚類劃分為離群值和非離群值,將非離群值作為訓(xùn)練集,離群值作為測(cè)試集。從區(qū)間[P,P]中選取P值,將額外的文檔從訓(xùn)練集移到測(cè)試集,即離群值和額外的文檔共同組成了測(cè)試集。利用非離群值訓(xùn)練分類器,對(duì)測(cè)試集中的文檔重新分配標(biāo)簽。重復(fù)這個(gè)過程,直到迭代結(jié)束。 本文數(shù)據(jù)來源于《四庫全書》和《太平御覽》,課題組專家從上述兩本巨著中抽取出傳統(tǒng)文化要素相關(guān)的詞條短文本,總計(jì)12000條數(shù)據(jù)。為了對(duì)本文算法進(jìn)行評(píng)估,對(duì)其中2000條數(shù)據(jù)進(jìn)行了標(biāo)簽標(biāo)注工作,共包含10個(gè)標(biāo)簽,分別為:朝代、年號(hào)、軍事戰(zhàn)役、歷史事件、史料典籍、史學(xué)名家、考古、民俗文化、江湖志、野史筆記。 本論文采用準(zhǔn)確率(ACC)和歸一化互信息(NMI)來衡量算法的性能,互信息表明了兩個(gè)隨機(jī)變量互相依賴的程度,歸一化互信息常用來評(píng)估聚類效果,通過預(yù)測(cè)標(biāo)簽集和真實(shí)標(biāo)簽集來計(jì)算兩個(gè)聚類結(jié)果的相似程度,公式如下: 其中N表示正確聚類的文檔數(shù)量,N表示總文檔數(shù),H(X)和H(Y)分別是X,Y的熵。歸一化互信息取值在0~1之間,值越大聚類效果越好。 為了驗(yàn)證短文本特征提取方法的有效性,本論文分別使用TF-IDF、Word2vec、BERT預(yù)訓(xùn)練模型進(jìn)行文本的特征提取,并將該三種方法提取的文本表示向量分別作為K-means聚類算法的輸入,得到三組初始聚類結(jié)果。對(duì)這三組初始聚類結(jié)果使用上述迭代訓(xùn)練算法進(jìn)行聚類結(jié)果的增強(qiáng),實(shí)驗(yàn)結(jié)果如表3所示。相較TFIDF和Word2vec詞向量表示,使用BERT預(yù)訓(xùn)練模型對(duì)聚類效果的提高更為顯著。作用于本文古文短文本數(shù)據(jù)集中,使用Word2vec訓(xùn)練詞向量,迭代訓(xùn)練之后ACC和NMI均提高了接近20%,TF-IDF和BERT預(yù)訓(xùn)練模型分別提高了8%和3%,實(shí)驗(yàn)進(jìn)一步驗(yàn)證了迭代訓(xùn)練對(duì)中文短文本基類聚類結(jié)果均有提高作用。 表3 對(duì)比實(shí)驗(yàn)結(jié)果 針對(duì)傳統(tǒng)短文本聚類算法文本表示特征稀疏、特征維度高、忽略文本語義信息等特點(diǎn),本文提出了BERT+K-means+迭代訓(xùn)練的融合模型對(duì)古文短文本進(jìn)行聚類研究。對(duì)比了其他兩種詞向量表示方法,實(shí)驗(yàn)結(jié)果證明,該模型具有最優(yōu)的結(jié)果。因此證明了BERT預(yù)訓(xùn)練模型更好的提高了詞向量的表征能力,以及迭代訓(xùn)練算法在古文短文本聚類算法中的有效性。3 算法驗(yàn)證與結(jié)果分析
3.1 實(shí)驗(yàn)數(shù)據(jù)
3.2 評(píng)價(jià)指標(biāo)
3.3 實(shí)驗(yàn)對(duì)比及分析
4 結(jié)語