王成柱 魏銀珍
(武漢郵電科學(xué)研究院 武漢 430074)
隨著互聯(lián)網(wǎng)的成熟與移動(dòng)互聯(lián)網(wǎng)的普及,人類(lèi)進(jìn)入了一個(gè)數(shù)據(jù)爆炸的時(shí)代,無(wú)處不在的文本信息塞滿了我們的生活,我們需要對(duì)這些信息進(jìn)行選擇與過(guò)濾,而人工篩選的成本過(guò)大,因此,如何有效并且準(zhǔn)確地自動(dòng)抽取文本中的關(guān)鍵信息便成了自然語(yǔ)言處理領(lǐng)域急需解決的基礎(chǔ)問(wèn)題和研究熱點(diǎn),對(duì)文本分類(lèi)[1],情感分析[2],文檔檢索[3],問(wèn)答系統(tǒng)[4]等細(xì)分領(lǐng)域的研究有著重大意義,而關(guān)鍵詞自動(dòng)抽取便是其中的核心問(wèn)題。
關(guān)鍵詞自動(dòng)抽取被定義為自動(dòng)識(shí)別一組最能描述文本主題的詞語(yǔ)的任務(wù),這組詞語(yǔ)可以很好地代表文本的中心意思,當(dāng)我們知道文本的中心意思后,無(wú)論是對(duì)文本進(jìn)行分類(lèi),情感分析,或者意圖識(shí)別,都可以很快地做出判斷。而在語(yǔ)義相似度計(jì)算中,關(guān)鍵詞自動(dòng)抽取是影響相似度計(jì)算結(jié)果的重大因素,利用關(guān)鍵詞我們可以生成多種基于關(guān)鍵詞的相關(guān)特征,更好地判斷文本的相似程度。
GBDT(Gradient Boosting Decision Tree)是一種基于梯度提升的集成學(xué)習(xí)算法,其主要思想是通過(guò)弱模型的迭代加權(quán)累加形成一個(gè)強(qiáng)模型。XGBOOST(eXtreme Gradient Boosting)是陳天奇對(duì)GBDT的一種高效實(shí)現(xiàn),在學(xué)術(shù)界和工業(yè)界有著廣泛實(shí)現(xiàn)。本文XGBOOST算法引入關(guān)鍵詞自動(dòng)抽取領(lǐng)域,并與傳統(tǒng)機(jī)器學(xué)習(xí)算法進(jìn)行比較。
本文提出的關(guān)鍵詞自動(dòng)抽取算法是針對(duì)語(yǔ)義相似度領(lǐng)域,即在比較兩個(gè)文本是否相似時(shí),對(duì)兩個(gè)文本抽取關(guān)鍵詞,由于該場(chǎng)景的特殊性,存在相似與不相似兩種不同分布,因此本文在單一文本的關(guān)鍵詞自動(dòng)抽取技術(shù)的基礎(chǔ)上,提出了一種基于KL散度的關(guān)鍵詞特征,并且引入XGBOOST算法,融合KL散度,TF-IDF等多種特征提出了一種基于機(jī)器學(xué)習(xí)的關(guān)鍵詞自動(dòng)抽取方法。
關(guān)鍵詞自動(dòng)抽取方法可以分為兩大類(lèi),無(wú)監(jiān)督方法和有監(jiān)督方法。
無(wú)監(jiān)督方法利用候選詞的統(tǒng)計(jì)特征的得分進(jìn)行排序,選取最高的若干個(gè)作為關(guān)鍵詞。無(wú)監(jiān)督方法包括基于統(tǒng)計(jì)模型的算法、基于語(yǔ)義的算法和基于圖模型的算法。基于統(tǒng)計(jì)模型的關(guān)鍵詞抽取算法中常見(jiàn)的有基于詞頻和TF-IDF的算法,該類(lèi)方法簡(jiǎn)單易實(shí)現(xiàn),通用性與實(shí)用性較好,但準(zhǔn)確率較低,通常作為關(guān)鍵詞抽取算法的基礎(chǔ)。基于語(yǔ)義的算法使用詞,句子和文本的語(yǔ)義特征進(jìn)行關(guān)鍵詞抽取,該類(lèi)方法考慮了語(yǔ)法的含義,但是依賴(lài)于背景知識(shí)庫(kù),詞典等,難以推廣與遷移。基于圖模型的算法是近年來(lái)研究者研究無(wú)監(jiān)督方法的主流方向,圖是一種數(shù)學(xué)模型,它能非常有效地探究關(guān)系和結(jié)構(gòu)信息,受到PageRank在信息檢索領(lǐng)域巨大成功后的啟發(fā),2004年Mihalcea和Tarau提出一種基于圖的排序算法TextRank,該方法的基本思想是將文本看成詞的網(wǎng)絡(luò),該網(wǎng)絡(luò)中鏈接表示詞與詞之間的共現(xiàn)關(guān)系,一個(gè)詞的重要性由鏈向它的詞的重要性與數(shù)量決定。由于需要構(gòu)造圖結(jié)構(gòu),因此該方法不適合短文本或句子。
有監(jiān)督方法是利用標(biāo)注訓(xùn)練集,抽取候選詞的各類(lèi)特征,將問(wèn)題轉(zhuǎn)換為一個(gè)機(jī)器學(xué)習(xí)問(wèn)題,通過(guò)模型對(duì)每個(gè)候選詞進(jìn)行判定。自1999年Frank提出采用樸素貝葉斯分類(lèi)器,利用TF-IDF和相對(duì)位置兩個(gè)特征抽取關(guān)鍵詞以來(lái),研究者不斷嘗試各種經(jīng)典分類(lèi)器,并且細(xì)化已有特征和提出新的特征,諸如決策樹(shù),支持向量機(jī),條件隨機(jī)場(chǎng),隨機(jī)森林等分類(lèi)器,詞頻,長(zhǎng)度,位置,詞嵌入向量等特征以及不同場(chǎng)景下的加權(quán)處理都被研究者不斷地研究與運(yùn)用,進(jìn)而提出更有效的關(guān)鍵詞自動(dòng)抽取方法。
本文針對(duì)語(yǔ)義相似度領(lǐng)域,研究了KL散度用于關(guān)鍵詞自動(dòng)抽取的可實(shí)現(xiàn)性,并且融合KL散度,TF-IDF等多種特征,基于XGBOOST算法構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,結(jié)果表明,該方法比現(xiàn)有的無(wú)監(jiān)督方法和基于傳統(tǒng)機(jī)器學(xué)習(xí)的有監(jiān)督方法效果更好。
本文在語(yǔ)義相似度領(lǐng)域利用KL散度構(gòu)造了一個(gè)關(guān)鍵詞評(píng)分指標(biāo),并且設(shè)計(jì)了一種基于XGBOOST算法,融合KL散度,TF-IDF等多種特征的關(guān)鍵詞自動(dòng)抽取方法。
3.1.1 KL散度
在數(shù)理統(tǒng)計(jì)中,KL散度也被稱(chēng)為相對(duì)熵,是一種度量一個(gè)概率分布與另一種概率分布偏離的方法,對(duì)于離散概率分布P和Q,從Q到P的KL散度定義為

對(duì)于連續(xù)隨機(jī)變量的分布P和Q,其KL散度定義為

本文將兩個(gè)文本相似與否當(dāng)成兩種不同的概率分布,相似標(biāo)記為1,不相似標(biāo)記為0,對(duì)于這兩種概率分布可以應(yīng)用KL散度得到偏離程度。


由數(shù)據(jù)統(tǒng)計(jì)的結(jié)果,我們可以得到每個(gè)特征在不同分布中的概率,利用這兩個(gè)離散概率分布,根據(jù)KL散度計(jì)算出的結(jié)果即為每個(gè)特征的重要性得分,如果 pk=qk,即該詞語(yǔ)在相似對(duì)文本對(duì)與不相似文本對(duì)中出現(xiàn)的概率相等,其KL散度則為0,該特征的影響可以忽略不計(jì),這種方法可以有效地增加在標(biāo)記ti=1的文本對(duì)中共同出現(xiàn)的詞語(yǔ),及在標(biāo)記ti=0的文本對(duì)中單獨(dú)出現(xiàn)的詞語(yǔ)的重要性得分。
3.1.2 TF-IDF
詞頻(Term frequency,TF)是指詞語(yǔ)在給定文本中出現(xiàn)的頻率:

其中ni,j表示第i個(gè)詞語(yǔ)在第j個(gè)文本中出現(xiàn)的次數(shù),表示第j個(gè)文本中的總詞數(shù),
通常情況下認(rèn)為詞頻高,該詞為文本中的關(guān)鍵詞的可能性越大。在某些長(zhǎng)文本或者文檔中,有TF變化得到多種相關(guān)特征,如標(biāo)題TF,摘要TF等被提出,但實(shí)際情況經(jīng)常存在某些常用詞的使用頻率特別高,其本身卻并不是關(guān)鍵詞,因此在整體語(yǔ)料的基礎(chǔ)上引入了逆文檔頻率(Inverse document frequency,IDF)來(lái)衡量包含一個(gè)詞語(yǔ)的普遍重要性:

其中D表示總文本數(shù),ti表示第i個(gè)詞,dj表示包含ti的文本,j表示包含ti的文本數(shù)。在某些時(shí)候可能存在特殊情況,若文檔集中不存在某個(gè)生僻的詞語(yǔ),這會(huì)導(dǎo)致公式中的分母為0,此時(shí)的IDF值便沒(méi)有意義了,因此在實(shí)際操作中,本文中做了平滑處理:

根據(jù)某一特定文本的高頻詞語(yǔ),以及該詞語(yǔ)在整個(gè)文件集合中的逆文檔頻率,我們可以綜合起來(lái)得到tfidf:

TF-IDF是一種無(wú)監(jiān)督學(xué)習(xí)的關(guān)鍵詞抽取方法,綜合了詞頻與逆頻率的優(yōu)勢(shì),當(dāng)TF-IDF值越大時(shí),即該詞語(yǔ)在當(dāng)前文本中出現(xiàn)頻率高,而在其他文本中較少出現(xiàn),則說(shuō)明該詞的重要性程度越大。經(jīng)過(guò)幾十年的研究與發(fā)展,關(guān)鍵詞自動(dòng)抽取出現(xiàn)了各種各樣的方法,但是由于TF-IDF的有效性和簡(jiǎn)單性,它仍然在當(dāng)今關(guān)鍵詞自動(dòng)抽取的學(xué)術(shù)界與工業(yè)界占據(jù)了重要的地位。
3.1.3 詞長(zhǎng)
詞長(zhǎng)特征是指詞語(yǔ)本身的長(zhǎng)度,通常關(guān)鍵詞的長(zhǎng)度一般為2和3,因此關(guān)鍵詞的長(zhǎng)度具有很好區(qū)分性。
3.1.4 詞性
詞性是淺層的語(yǔ)言特征,不需要對(duì)文本進(jìn)行復(fù)雜的分析,根據(jù)關(guān)鍵詞的詞性分布規(guī)律,本文將詞性設(shè)計(jì)為多維布爾型特征,選取的關(guān)鍵詞詞性標(biāo)注為NN,VV,JJ,AD,,DT,VA,VE,DT,如果一個(gè)詞的詞性標(biāo)注為NN,那NN對(duì)應(yīng)的特征記為1,其他的詞性特征則記為0。通過(guò)對(duì)詞性特征進(jìn)行選擇性組合,既可以避免詞性特征維度過(guò)高與稀疏,同時(shí)也有很好的區(qū)分性。
詞性特征能夠有效克服基于傳統(tǒng)統(tǒng)計(jì)方法無(wú)法解決高頻但無(wú)非重要性的詞語(yǔ),從而提高關(guān)鍵詞自動(dòng)抽取的性能。
Boosting算法屬于集成學(xué)習(xí),其主要思想是通過(guò)迭代生成多個(gè)弱模型,然后將每個(gè)弱模型的預(yù)測(cè)結(jié)果相加得到一個(gè)強(qiáng)模型。


在XGBoost中,我們對(duì)損失函數(shù)進(jìn)行泰勒展開(kāi):

由損失函數(shù)的公式可知,γ與λ越大,表示希望獲得結(jié)構(gòu)相對(duì)簡(jiǎn)單的樹(shù),確定樹(shù)的葉子結(jié)點(diǎn)之后,進(jìn)行樹(shù)的分裂,我們采用貪心生長(zhǎng)的方法,遍歷所有特征,基于分裂前目標(biāo)函數(shù)值與分裂后最小目標(biāo)函數(shù)值,找到增益最大的點(diǎn)為最優(yōu)點(diǎn),其對(duì)應(yīng)的特征即為最優(yōu)特征,以此循環(huán),直到一定深度或者無(wú)法繼續(xù)分裂時(shí)停止,此時(shí)的樹(shù)便是第t輪迭代的最優(yōu)子結(jié)構(gòu)樹(shù)。將每輪得到最優(yōu)子結(jié)構(gòu)樹(shù)進(jìn)行累加求和即得到XGBOOST算法的最終模型。
XGBOOST是GBDT的一種高效實(shí)現(xiàn),它相較于傳統(tǒng)的GBDT有著多方面的優(yōu)勢(shì),它利用泰勒展開(kāi)求二階導(dǎo)比一階導(dǎo)即梯度更加準(zhǔn)確,支持線性基分類(lèi)器,加入正則項(xiàng)控制模型復(fù)雜度,同時(shí)它也支持分布式計(jì)算,更加適用于大規(guī)模數(shù)據(jù)集的訓(xùn)練,并且可以進(jìn)行列抽樣,能夠降低過(guò)擬合,減少計(jì)算量。本文利用采用python語(yǔ)言的XGBOOST工具包實(shí)現(xiàn)了關(guān)鍵詞自動(dòng)抽取模型。
本文實(shí)驗(yàn)的輸入數(shù)據(jù)為一段文本,已標(biāo)記數(shù)據(jù)中會(huì)標(biāo)識(shí)每個(gè)文本中的關(guān)鍵詞,將文本預(yù)處理后得到文本中的詞語(yǔ)與詞性標(biāo)注以及對(duì)應(yīng)的標(biāo)簽,實(shí)驗(yàn)分為兩個(gè)步驟,訓(xùn)練階段和預(yù)測(cè)階段。
步驟1訓(xùn)練階段:對(duì)數(shù)據(jù)集中的訓(xùn)練集進(jìn)行預(yù)處理與特征抽取,利用XGBOOST算法訓(xùn)練獲得關(guān)鍵詞自動(dòng)評(píng)分模型。
步驟2預(yù)測(cè)階段:利用訓(xùn)練階段得到的模型對(duì)測(cè)試數(shù)據(jù)進(jìn)行關(guān)鍵詞評(píng)分,對(duì)文本中的詞語(yǔ)進(jìn)行得分排序,取排名前N的詞語(yǔ)為該文本的關(guān)鍵詞。
本文關(guān)鍵詞自動(dòng)抽取框架如圖1所示。

圖1 關(guān)鍵詞抽取框架
其中特征抽取部分依賴(lài)于數(shù)據(jù)字典,即根據(jù)大規(guī)模語(yǔ)料計(jì)算得到的每個(gè)詞語(yǔ)的KL散度與TF-IDF得分字典,輸出關(guān)鍵詞部分中含有一個(gè)超參數(shù)N,即選取文本中排名前N的詞語(yǔ)作為關(guān)鍵詞輸出,可以根據(jù)不同場(chǎng)景來(lái)確定不同的N值。
本文采用電商客服中的客服回答模板語(yǔ)料,共303個(gè)句子,預(yù)處理之后得到7821個(gè)詞語(yǔ),其中標(biāo)注為關(guān)鍵詞的詞語(yǔ)個(gè)數(shù)為1557個(gè),將其切分訓(xùn)練集與測(cè)試集,如表2所示。

表1 數(shù)據(jù)集
由于本文研究的是語(yǔ)義相似度計(jì)算領(lǐng)域的關(guān)鍵詞自動(dòng)抽取方法,對(duì)于兩個(gè)文本,關(guān)鍵詞抽取的個(gè)數(shù)相同時(shí)才方便用于計(jì)算語(yǔ)義相似度的特征,如Jaccard距離,因此我們每個(gè)句子中抽取N個(gè)關(guān)鍵詞,只需要關(guān)心每個(gè)句子中抽取的N個(gè)詞語(yǔ)中關(guān)鍵詞的準(zhǔn)確率,至于當(dāng)句子中關(guān)鍵詞個(gè)數(shù)大于N時(shí),還有多少個(gè)關(guān)鍵詞未被抽取出,即召回率,在此場(chǎng)景下我們并不關(guān)心。
本文中關(guān)鍵詞自動(dòng)抽取的評(píng)估指標(biāo)采取句子中得分排名前N的詞語(yǔ)的準(zhǔn)確率作為評(píng)估指標(biāo),即準(zhǔn)確率P=句子得分排名前N的詞語(yǔ)正確的個(gè)數(shù)/句子中關(guān)鍵詞的個(gè)數(shù)(大于N按N算)。
實(shí)驗(yàn)中XGBOOST模型選擇基于樹(shù)的模型做提升計(jì)算,參數(shù)booster為gbtree,學(xué)習(xí)率eta設(shè)置為0.1,訓(xùn)練的最大深度max_depth設(shè)置為9,此時(shí)性能最優(yōu)。
針對(duì)不同的超參數(shù)N,即選取每個(gè)文本中得分排名前N的詞語(yǔ)作為關(guān)鍵詞,本文算法與無(wú)監(jiān)督方法KL散度,TF-IDF,以及有監(jiān)督方法SVM和LR進(jìn)行了評(píng)估指標(biāo)的對(duì)比,結(jié)果如圖2所示。

圖2 算法性能對(duì)比圖
由圖2可以明顯地看出有監(jiān)督方法相對(duì)于無(wú)監(jiān)督方法準(zhǔn)確率有大幅提升,在無(wú)監(jiān)督方法中,KL散度的表現(xiàn)比TF-IDF更好,因此在語(yǔ)義相似度計(jì)算領(lǐng)域,KL散度可以代替TF-IDF得到詞語(yǔ)的重要性得分,在有監(jiān)督方法中,XGBOOST算法的準(zhǔn)確率高于SVM算法和LR算法,并且在效率方面也大幅領(lǐng)先,運(yùn)算時(shí)間相對(duì)而言更少。因此,在語(yǔ)義相似度計(jì)算領(lǐng)域,本文提出的KL散度方法是優(yōu)于TF-IDF的,基于XGBOOST算法的有監(jiān)督方法也比傳統(tǒng)的機(jī)器學(xué)習(xí)方法準(zhǔn)確率更高。
在語(yǔ)義相似度計(jì)算領(lǐng)域,本文提出了一種基于XGBOOST算法,融合KL散度,TF-IDF等多種特征的關(guān)鍵詞自動(dòng)抽取方法,根據(jù)得分排序選擇最終關(guān)鍵詞。實(shí)驗(yàn)證明,該方法不僅優(yōu)于單一的無(wú)監(jiān)督方法,也比基于傳統(tǒng)機(jī)器學(xué)習(xí)算法的有監(jiān)督方法效果更好。
本文的下一步研究工作將會(huì)考慮更多的詞語(yǔ)特征,如依存關(guān)系,詞向量表示,并且擴(kuò)大標(biāo)注數(shù)據(jù)集,進(jìn)一步優(yōu)化關(guān)鍵詞自動(dòng)抽取的效果。并且將該方法用于語(yǔ)義相似度計(jì)算中,通過(guò)提高關(guān)鍵詞抽取的準(zhǔn)確率來(lái)優(yōu)化語(yǔ)義相似度計(jì)算的結(jié)果。