孫 紅,俞衛(wèi)國
(1.上海理工大學光電信息與計算機工程學院;2.上?,F(xiàn)代光學系統(tǒng)重點實驗室,上海 200093)
聚類是一種無監(jiān)督的機器學習方法,文本聚類是依靠文檔特征將文本聚集為文檔簇。隨著互聯(lián)網(wǎng)及信息技術(shù)的飛速發(fā)展,社區(qū)平臺Twitter、新浪微博等普及,短文本呈爆炸式增長,對短文本聚類預處理具有重要價值。不同于傳統(tǒng)媒體平臺的文本信息,短文本具有以下特點:更新快速,存在大量不規(guī)范用語,吸收新詞匯多,數(shù)據(jù)具有稀疏性,這給短文本聚類增加了難度。
常用的文本聚類算法通過計算文本的相似度信息,如VSM(Vector Space Model)模型,通過計算空間向量之間的余弦值來衡量文本的相似度。目前文本聚類主要應(yīng)用有文本分類、文本可視化、搜索引擎聚類、信息推薦等。
20 世紀中后期,Gerard 等[1]提出VSM 空間向量模型并成功應(yīng)用,但這種模型在計算空間相似度時計算量比較大,而且沒有考慮詞與詞之間的內(nèi)部聯(lián)系。主題模型(Top?ic Model)考慮了詞語與主題之間的內(nèi)部聯(lián)系,劉金亮[2]提出了一種改進的LDA(Latent Dirichletalloc Allocation)主題模型,使得LDA 模型的主題分布向高頻詞傾斜,導致能夠代表主題的多數(shù)詞被少量的高頻詞淹沒,使主題表達能力降低;汪進祥[3]提出一種基于主題模型的微博話題挖掘,結(jié)合詞性標注進行話題提取;張志飛等[4]基于潛在狄利克雷分配的新方法,提出基于LDA 主題模型的短文本分類方法,生成的主題不僅可以區(qū)分常用詞的上下文并降低其權(quán)重,還可以通過連接區(qū)分詞并增加其權(quán)重來減少稀疏性;張蕓[5]結(jié)合在短文本建模方面具有優(yōu)勢的BTM 主題模型對短文本進行特征擴展,將擴展后的特征矩陣進行相似度計算。
本文首先介紹了VSM(Vector Space Model)模型聚類、LTM(Lifelong Topic Modeling)模型聚類、LSA[6](Latent Se?mantic Analysis)模型聚類、PLSA[7](Probabilisticlatent Se?mantic Analysis)模型聚類,然后引出經(jīng)典模型LDA(Latent Dirichlet Allocation),介紹了LDA 模型的優(yōu)劣,最后針對經(jīng)典的LDA 模型沒有考慮到文本與主題之間的聯(lián)系問題,提出一種具有判別學習能力的LDA-λ模型。將二項分布引入到LDA-λ基礎(chǔ)模型中,增加詞項的判別能力。最后經(jīng)過對比聚類算法實驗,證明基于判別學習能力的LDA-λ模型聚類性能比VSM 和LDA 模型顯著提高。
VSM 是一種空間向量模型,出現(xiàn)在20 世紀中后期,由Gerard 等[8]提出,并成功應(yīng)用于著名的SMART 文本檢索系統(tǒng)。VSM 模型簡單,易于理解。它的核心思想是把需要處理的文本內(nèi)容轉(zhuǎn)化到空間向量中,并以向量運算的方式計算語義的相似度。當文本表示為空間向量時,文本的相似性就可以通過計算文本空間向量的度量值表示。通常將余弦距離作為度量值來比較相似性。
假如一篇文本D1 中有a、b、c、d、e 五個特征項,權(quán)值分別為30、20、20、10、10,文本D2 中有a、c、d、e、f 五個特征向量,權(quán)值分別為30、30、20、10、10,則對應(yīng)文檔D(D1,D2)的總體特征為(a,b,c,d,e,f),D1 的向量表示為D1(30,20,20,10,10),D2 的向量表示為D2(30,30,20,10,10),根據(jù)夾角余弦公式:
計算文本D1 與D2 的相似度是0.92。
從上述描述與計算可知VSM 模型用于聚類時的缺點:①在計算相似度時,相似度計算量較大,每次有新的文檔加入時必須重新計算詞的權(quán)值;②沒有考慮到詞與詞之間的聯(lián)系,語義相同但是使用不同詞語的特征詞沒有關(guān)聯(lián)起來。
主題模型[9](Topic Model)是用在大量文檔中發(fā)現(xiàn)一種潛在主題的統(tǒng)計模型。與上述VSM 模型相反,主題模型考慮被處理文檔的語義信息以及與各個主題之間聯(lián)系,并將文本到詞項的分布轉(zhuǎn)化為文檔與主題之間的分布,有效降低了特征維度,利于短文本處理,但在提高性能的同時犧牲了時間。在主題模型中,假如一篇文章有一個中心思想,那么關(guān)于中心思想的詞語就會頻繁出現(xiàn)。在現(xiàn)實中一個文檔通常包含多個主題,并且每個主題所占的比例各不相同,那么這些主題相關(guān)關(guān)鍵字出現(xiàn)的頻率就與這些主題所占比例有關(guān)。
主題模型的特點是能夠自動分析文檔,統(tǒng)計文檔中的單詞時不需要考慮他們出現(xiàn)的順序,根據(jù)統(tǒng)計出的信息判斷文檔中的主題以及各個主題所占的比例。
傳統(tǒng)主題模型基本都是一種完全無監(jiān)督模型,會產(chǎn)生許多不符合邏輯的Topic,針對該問題學者提出了許多關(guān)于先驗知識的主題模型。本文的LTM 主題模型不需要任何用戶輸入就能從大量主題中自動地和動態(tài)地挖掘先驗知識,這就是Lifelong 思想。
Lifelong 思想假設(shè):問題:如何找到先驗知識并利用它完成新的主題建模任務(wù)?
數(shù)據(jù):情緒分析背景下的產(chǎn)品評論。
算法如下:
(1)先驗topic 的生成,或者稱為proir-topic。給定來自n 個領(lǐng)域的一個文檔集合D={D1,…,Dn},使用Algorithm 1 PriorTopicsGenenration(D)對每個領(lǐng)域的文檔Di(Di∈D)運行算法,生成所有topic 的集合S,稱這個S 為proir-topic 集合。這些proir-topic 后續(xù)會用在LTM 模型上作為先驗知識。S 中的proir-topic 可以通過迭代來改善。上一輪迭代中的S 可以通過下一輪的LTM 過程從D 中生成更好的top?ic。LTM 從第二輪開始使用。
(2)測試文檔topic 的生成,或者稱為test-topic。給定一個測試文檔集合D(t)和第(1)步生成的proir-topics 集合S,利用Algorithm2(LTM)生成topics。區(qū)別第(1)步的topic稱為test-topics。注意測試文檔D(t)可以來自于D 或者新領(lǐng)域的一個文檔集合。LTM 算法偽代碼如下:
以上過程很自然地用上了Lifelong learning 思想。S 是系統(tǒng)生成的一個知識庫(proir-topic),而LTM 是學習算法。給定一個新的學習任務(wù)G(如主題建模)和它的數(shù)據(jù)(如Da?ta),lifelong learning 可以分為兩個階段:①Learning with pri?or knowledge。這對第(2)步至關(guān)重要,它需要解決兩個子問題(第(1)步是初始化)。②知識的保留和合并。如果G是一個新任務(wù)就簡單地把G 的topic 加進S 中。如果G 是一個舊任務(wù)就在S 中替換其topics。
LTM 模型主要包括潛在語義分析LSA(Latent Semantic Analysis)、概率潛在語義分析PLSA(Probability Latent Se?mantic Analysis)和潛在迪里克雷分布LDA(Latent Dirichlet Allocation),3 個模型分別描述如下。
1.2.1 LSA
在某些情況下,LSA 又稱作潛在語義索引(LSI),是一種非常有效的文本建模方法。正如其名稱,該方法意在分析文本語料所包含的潛在語義,然后將單詞和文檔映射到該語義空間。LSA 以矩陣奇異值分解(SVD)為基礎(chǔ),在了解LSA 之前,需要先對奇異值分解[10]進行簡單介紹。
一個矩陣代表一個線性變換(旋轉(zhuǎn),拉伸),可將一個線性變換過程分解多個子過程,矩陣奇異值分解就是將矩陣分解成若干個秩與矩陣的和。
其中,σi是奇異值,是秩為的矩陣,表示一個線性變換子過程。奇異值σi反映了該子過程在該線性變換A 中的重要程度。對式(2)進行整理,將奇異值分解過程表示如下:
其中,U 是左奇異向量構(gòu)成的矩陣,兩兩相互正交,S 是奇異值構(gòu)成的對角矩陣,VT是右奇異向量構(gòu)成的矩陣,兩兩相互正交。
奇異值分解具有如下數(shù)學性質(zhì):①一個m*n 的矩陣至多有p=min(m,n)個不同的奇異值;②矩陣的信息往往集中在較大的幾個奇異值中。
LSA 正是利用了奇異值分解的這兩個性質(zhì)將原始的單詞—文檔矩陣映射到語義空間。在LSA 中不再將矩陣理解成變換,而是看作文本數(shù)據(jù)的集合。文本語料中所有單詞構(gòu)成矩陣的行,每一列表示一篇文檔(詞袋模型表示)。假設(shè)A 是一個m*n 的文本數(shù)據(jù)矩陣(n< 依據(jù)奇異值分解性質(zhì)①,矩陣A 可以分解出n 個特征值,然后依據(jù)性質(zhì)②選取其中較大的r 個并排序,這樣USVT就可以近似表示為矩陣AA。對于矩陣U,每一列代表一個潛語義,這個潛語義的意義由m 個單詞按不同權(quán)重組合而成。因為U 中每一列相互獨立,所以r 個潛語義構(gòu)成了一個語義空間。SS 中每一個奇異值表示該潛語義的重要度。VT中每一列仍然是一篇文檔,但此時文檔被映射了語義空間。VT的大小遠小于A。有了VT就相當于有了矩陣A 的另外一種表示,之后就可使用VT代替A 進行之后的工作。 Fig.1 Singular value decomposition圖1 奇異值分解 LSA 通過SVD 和低秩逼近,把原始向量空間映射到潛在語義空間,在潛在語義空間計算文檔相似性能夠解決部分一義多詞的問題,從該層面可知LSA 優(yōu)點很明顯。但是低秩逼近后的矩陣中元素缺乏直觀解釋,甚至矩陣中會出現(xiàn)很多元素為負數(shù)的情況,特征向量的方向沒有對應(yīng)的物理解釋,k 的選取會對結(jié)果產(chǎn)生很大影響,且k 不是計算出來的而是一個經(jīng)驗值,所以很難選出合理的k 值,無法對應(yīng)現(xiàn)實中的概念。 1.2.2 PLSA 盡管上述的LSA 模型取得了一定的成功,但是由于缺乏嚴謹?shù)臄?shù)學統(tǒng)計基礎(chǔ),而且SVD 分解非常耗時,因此Hofmann 在SIGIR1999 上提出了基于概率統(tǒng)計的PLSA 模型,并且采用EM 算法學習模型參數(shù)。PLSA 模型是最接近LDA 的模型,所以理解PLSA 模型有助于理解LDA。PLSA模型如圖2 所示。 Fig.2 PLSA model圖2 PLSA 模型 PLSA 模型數(shù)學符號如表1 所示。 Table 1 Mathematical symbols of PLSA model表1 PLSA 模型數(shù)學符號 先從文檔集合中選擇一篇文檔di,選定后從主題分布中按照概率P(zk|di)選擇一個隱含的主題類別zk;選定主題zk后從詞分布中按照概率P(wj|zk)選擇一個詞wj。 根據(jù)大量已知的文檔—詞項信息P(wj|di)訓練出文檔—主題P(zk|di)和主題—詞項P(wj|zk),見式(5): 得到文檔中每個詞的生成概率為: 上述是完整的生成過程。事實上由于P(di)可事先計算求出,而P(wj|zk)、P(zk|di)未知,所以θ=(P(wj|zk),P(zk|di))就是要估計的參數(shù)值。一般要最大化這個θ,由參考文獻[6]求解出這兩個參數(shù)。 1.2.3 LDA 模型聚類 LDA 模型是一種文檔—主題生成模型,在2003 年由Blei 等[11]提出。LDA 模型是PLSA 模型的擴展,它能夠在一系列文檔中分析出文檔的主題概率分布,歸屬于統(tǒng)計模型。事實上,理解了PLSA 模型也就理解了LDA 模型,因為LDA就是在PLSA 的基礎(chǔ)上加上貝葉斯框架,即LDA 就是PLSA的貝葉斯版本(正因為LDA 被貝葉斯化了,所以才需要考慮歷史先驗知識加上兩個先驗參數(shù)),LDA 模型如圖3所示。 Fig.3 LDA model圖3 LDA 模型 在LDA 模型中,一篇文檔生成方式如下:①從迪利克雷分布α中取樣生成文檔i的主題分布θi;②從主題的多項式分布θi中取樣生成文檔i第j個詞的主題zij;③從迪利克雷分布β中取樣生成主題zij對應(yīng)的詞語分布φzij;④從詞語的多項分布φzij中采樣最終生成詞語Wij。 和PLSA 模型一樣,文檔到主題服從多項式分布,主題到詞服從多項式分布,是一種完全的概率生成模型。生成文檔中每個詞出現(xiàn)的概率為: 聯(lián)合概率分布公式為: 詞wi在主題z 上的分布如下: 文檔d 在主題z 上的分布如下: 經(jīng)過一系列的訓練推導過程求出吉布斯采樣公式如下: 基礎(chǔ)LDA 模型未考慮詞項的區(qū)分程度,如果一個詞項在大部分主題下都以高頻出現(xiàn),那么這個詞項不能作為特征詞來代表主題。文本具有稀疏性,直接去除對主題沒有區(qū)分度的詞項會對模型產(chǎn)生一定的影響,為此提出新的模型[14],將二項分布引入到LDA 基礎(chǔ)模型之中,增加詞項的判別能力,并將其并行化。 對單詞進行采樣,將同一個單詞隸屬于不同話題看作是相互獨立的,用γ表示詞項的判別能力。如果話題z 含有詞項w,那么γw,z=1;如果不含有w,則γw,z=0??梢钥闯?,γ是一個服從二項分布的參數(shù): 其中,λw代表單詞w在所有話題上的分布。本文假設(shè)λw~Beta(a,b),因為α與β參數(shù)已被使用,所以本文中用a、b參數(shù)表示貝塔分布中的參數(shù): 其中,Υ={Υw,1,Υw,2,…,Υw,K}。 可以推斷如下:如果某詞項w 在各個話題中均勻出現(xiàn)時,λw值較大時對話題的區(qū)分程度不大;相反,如果某詞項w僅集中在某一個或少部分話題中出現(xiàn),則此詞項的λw值較小。因此,采用來表示詞項判別力,將更大的權(quán)重分派給判別力大的詞項以減小判別力小的詞對聚類的影響。使用ω∈[0,1]對ω進行正則化表示如下: 在引入λw后,改進LDA 的概率模型如圖4 所示。 Fig.4 Improved LDA probability model圖4 改進后的LDA 概率模型 改進LDA 模型采樣過程如下: 對話題分布進行采樣: 選擇文檔話題:zd~Multi(θd); 吉布斯采樣可以通過迭代對高維概率模型進行求解,每次迭代僅僅采樣當前維度的值,將其他維度的值固定。算法一直迭代直到收斂為止,最終輸出需要估計的參數(shù)。在LDA 算法中即輸出φ與θ。 經(jīng)過一系列推導變換,可以得到新模型的吉布斯采樣更新后的公式: 初始時刻,為文檔的每個詞項進行主題zi的隨機分配。然后統(tǒng)計zi下的詞項w 的個數(shù),以及文檔i下含有主題zi中詞項的個數(shù)。每一輪都根據(jù)公式估計每個詞對于每個主題分配到的概率,然后用此概率分布進行新主題采樣;同時對每個詞均采用同樣的方法進行詞的主題更新。如果各個主題中詞項的分布以及訓練文檔在各個主題下的分布更新收斂,就將模型中的參數(shù)輸出。 經(jīng)過吉布斯采樣過程后求得θ參數(shù)與φ參數(shù)的表達式: 選用網(wǎng)上現(xiàn)有的API 就可以方便地進行數(shù)據(jù)分頁爬取,本文選用Jsoup 進行數(shù)據(jù)爬取,獲取的數(shù)據(jù)源是東方財富網(wǎng)??紤]到短文本限制,在數(shù)據(jù)選取上只爬取標題,選取對應(yīng)的標簽,爬取約8 000 條數(shù)據(jù)。 爬取到的大量數(shù)據(jù)質(zhì)量差別很大,有些短文本僅僅包含兩三個無用且沒有實際意義的詞匯,這樣的低質(zhì)量數(shù)據(jù)對模型干擾很大,在數(shù)據(jù)預處理時應(yīng)將其去掉,在去除了大量低質(zhì)量數(shù)據(jù)后再選擇合適的算法。 在進行特征選擇之前要對訓練集中的每篇文檔進行分詞,采用的分詞工具是IKAnalyzer。IKAnalyzer 是一個開源的基于Java 語言開發(fā)的輕量級中文分詞工具包。分詞結(jié)果如圖5 所示。 Fig.5 Word segmentation results圖5 分詞結(jié)果 現(xiàn)有的特征抽?。?6]方法很多,包括信息增益IG、局部文檔頻率和全局文檔頻率,對于文本分類選用局部DF 或者IG 都能達到良好的效果。 首先根據(jù)IG 或者局部DF 完成普通的特征選取,然后經(jīng)過訓練得到基于LDA 的隱主題模型,對隱主題對應(yīng)的高比重單詞進行特征加強,即對于原來特征選擇中沒有出現(xiàn)的單詞加入到LDA 主題模型中,完成LDA 拓展文本特征選取。 為了完成LDA 拓展的特征選取,先訓練LDA 得到隱藏的主題。找到每個主題下對應(yīng)的關(guān)鍵詞項。LDA 模塊使用GitHub 上成熟的LdaGibbsSampler 的API 模塊。為了得到短文本的LDA 主題模型,需要將這上千條數(shù)據(jù)劃分為上千個單獨的短文本文檔。 本實驗采用精確度(ACC)、歸一化互信息(NMI)和成對F 測度值(PWF)[17]作為評價指標。精確度主要用來評價實驗中類標簽和真實標簽相比預測正確的概率。歸一化互信息是評價聚類效果常用的指標,用來表示預測的實驗結(jié)果與真實結(jié)果的相近程度。F 測度是評價分類器好壞的重要指標,是準確度(precision)和召回率(recall)的調(diào)和平均值。F 測度計算公式如式(19)所示。 在本文實驗中,所有數(shù)據(jù)集上都設(shè)置α=50/K,β=0.01,a=10,b=30。本文分別對比LDA 和改進的LDA 以及VSM模型,實驗結(jié)果如表2 所示。 Table 2 Clustering results表2 聚類結(jié)果 從實驗結(jié)果可以看出,LDA 在聚類效果上比SVM 效果好,具有判別學習能力的LDA 聚類效果比基礎(chǔ)LDA 模型有很大改善。 LDA 模型是一種基于概率分布的主題模型,本文對此模型進行改進,將不同詞項對于不同的話題區(qū)分程度融合進去。實驗表明,在聚類性能方面具有判別學習能力的LDA 比基礎(chǔ)的LDA 和VSM 模型都有提高。 上述模型都屬于機器學習模型,目前流行的深度學習在處理文本方面也有許多需要提高的地方。深度學習[18]最初之所以在圖像和語音領(lǐng)域取得巨大成功,一個很重要的原因是圖像和語音的原始數(shù)據(jù)都是連續(xù)和稠密的,都有局部相關(guān)性。應(yīng)用深度學習解決大規(guī)模文本分類問題最重要的是解決文本表示[19],再利用CNN/RNN[20]等網(wǎng)絡(luò)結(jié)構(gòu)自動獲取特征表達能力,去掉繁雜的人工特征,端到端地解決問題。2 LDA 模型改進
2.1 模型改進過程
2.2 吉布斯采樣求解
3 實驗
3.1 數(shù)據(jù)爬取
3.2 數(shù)據(jù)預處理
3.3 文本分詞
3.4 特征選取
3.5 LDA 隱主題抽取
3.6 評價指標
4 結(jié)語