徐菲菲 陳賽紅 田 宇
(上海電力大學計算機科學與技術學院 上海 200090)
隨著互聯網技術的飛速發展,產生的海量數據中通常包含許多重要的信息,如何對這些海量數據進行有效的挖掘,從而快速得到有價值的信息已經成為當前互聯網應用的關鍵問題之一。文本作為信息數據的重要載體,使得自然語言處理領域受到越來越多的學者們的關注。尤其是社交媒體和新聞媒體如微博、微信朋友圈、今日頭條、網易和騰訊已成為人們生活不可或缺的一部分,如何從大量的社交互動平臺或新聞內容檢測出有用的話題,方便用戶更加及時了解新聞熱點話題內容,已經成為自然語言處理領域的研究熱點之一。
話題檢測是指在不消耗人工的情況下自動檢測出新聞內容的話題[1]。話題檢測的主要步驟包括:數據預處理、建立模型、文本轉換和話題詞聚類/分類[2]。其中,如何選擇一個好的主題模型是話題檢測的重要部分。學者們提出向量空間模型(VSM)和統計語言模型來實現話題檢測的過程,但這些模型沒有充分考慮文本的語義,影響了話題檢測的準確性。潛在語義分析LSA[3](Latent Semantic Analysis)和傳統向量空間模型[4](vector space model)一樣使用向量來表示詞(terms)和文檔(documents),并通過向量間的關系(如夾角)來判斷詞及文檔間的關系。不同的是,LSA將詞和文檔映射到潛在語義空間,從而去除了原始向量空間中的一些“噪音”,提高了信息檢索的精確度。PLSA模型[5]在LSA模型的概念中融入了統計思想,以此改善LSA模型。在其基礎上,Blei等[6]提出了LDA模型,通過文檔-詞共現來發現話題,并在文本話題檢測領域有不錯的效果,如微博、博客等簡短的文本類型[7-8]。針對以上經典主題模型在處理短文本中都會面臨特征稀疏的缺點[9],Yan等[12]提出了BTM模型,該模型利用語料級別的詞共現模式聚合來解決短文本的稀疏性,將語料看作是一組話題的混合,每個二元詞組都是來自于某個話題。一個二元詞組屬于某個話題的概率由二元詞組里面兩個單詞從同一個話題中抽樣得到。這不僅在微博短文本上具有明顯優勢[10-11],在其他各類文本處理中也優于其他主題模型[12]。
在對文本建立主題模型進行轉換后,還需要對提取的話題詞進行聚類/分類,從而提高話題檢測的準確性。聚類分析作為一項十分有效的無監督機器學習技術,需要的驅動條件較少[13],不需要人工為其提供帶有標記的訓練樣本[14],節省了人力和數據資源,且適應力強,適合處理沒有標記的數據[15]。因此,在話題檢測研究中,通常采用聚類方法。文獻[16]根據微博數據存在時序性特征以及包含用戶的社交網絡行為特征,提出一種動量信號增強模型算法來有效地檢測微博突發話題;文獻[17]對經典Single-pass算法進行了改進,并將改進的Single-pass聚類算法與凝聚式層次聚類(Hierarchical Agglomerative Clustering,HAC)算法相結合,設計并實現了基于Improved-SP&HAC的微博話題檢測聚類算法;文獻[18]提出了改進后的Single-Pass聚類算法,對微博話題進行檢測;文獻[19]利用LDA模型來發掘當前公眾討論的熱點話題,提出一種文本關聯詞算法,利用LDA得到的關鍵詞進行聚類分析,也可以對LDA話題聚類后的結果進行優化調整。K-Means劃分聚類算法由于其計算速度較快,且聚類效果一般情況下較為理想,被學者們廣泛應用于各個領域。雖然K-Means算法受初始聚類中心的影響較大,同時容易陷于局部最優,但是與優化算法相結合,K-Means算法能自適應調整聚類中心,其效果有明顯的改善[20]。由于話題檢測數據集一般偏于話題間差別較為明顯且同一個話題前后往往存在鮮明反差,采用改進的優化算法與K-Means聚類算法相結合的方法可以得到較為理想的結果。
傳統K-Means算法存在以下缺點:① 對初始點選取較為敏感,需要人工設定K值;② 易陷于局部最優。文獻[21]提出改進的K-Means算法(AFSA-KM),引入人工魚群適應度函數計算聚類中心,從而自動確定近似全局最優的初始聚類中心,以提高精度,但該算法中覓食行為存在隨機性。
引入共軛梯度可以減少人工魚群覓食行為無價值的迭代,因此,本文的貢獻主要體現在以下幾個方面:
(1) 將基于共軛梯度的人工魚群算法引入K-Means中,確定初始聚類中心,降低隨機性;
(2) 利用BTM模型輸出新聞每類的話題,并與傳統的主題模型進行話題質量比較;
(3) 將(2)中的主題詞轉換為TF-IDF值,并輸入(1)中改進后的K-Means算法進行聚類分析。
BTM模型的提出最初是針對短文本主題模型,后來該模型被應用到長文本中,表現不亞于傳統主題模型[13],如LDA模型。BTM的關鍵思想是基于整個語料庫中的詞對b來學習文檔的主題,以緩解傳統模型的缺陷。具體而言,BTM模型是把整個語料庫當作主題的集合,其中每個詞對是從特定主題中獨立提取出來。詞對的概率是由兩個詞都來自一個主題確定的。
假設α和β是Dirichlet先驗參數,建立LDA模型與BTM模型分別如圖1、圖2所示。其中:K為人工設定的主題詞數目,θ為文本語料庫上的主題分布,ψ為該主題下的詞項分布,Z為主題θ的Dirichlet分布,B為詞對集合,記Mult()為多項分布,Dir()為Dirichlet分布,Wp、Wq為采樣主題詞。

圖1 LDA模型

圖2 BTM模型
具體操作步驟如下:
(1) 對于每個主題Z:
① 計算特定主題的詞分布φZ~Dir(β);
② 計算整個語料庫的主題分布θ~Dir(α)。
(2) 對詞對集合B中每個詞對b:
① 計算主題分布Z~Multi(θ);
② 繪制兩個詞Wp,Wq~Mult(φZ)。
按照上述步驟,一個詞對b的聯合概率表示為:
(1)
因此,整個語料庫的可能性概率計算式表示為:
(2)
從上述步驟可看出,BTM模型將單詞共現(詞對b)模式作為傳達主題語義的單元。與LDA中單個單詞的出現相比,詞對可以更好地揭示主題,從而增強主題的學習能力。為了更好地體現BTM模型的獨特性,本文對比了LDA模型和BTM模型。LDA模型首先計算文檔級主題分布θ,然后迭代采樣文檔中每個單詞Wp的主題分布Z。由于每個單詞的主題分布Z依賴于同一文檔中的其他單詞,因此LDA在推斷單詞主題分布時過分依賴本地觀察,同時損害了主題θ的學習。與LDA不同,BTM模型通過從語料庫級主題分布θ中計算主題分布Z,不僅克服了LDA的過分依賴問題,而且可以保持單詞之間的相關性,該模型可同時捕獲文檔中的多個主題梯度。
BTM與傳統主題模型的主要區別在于BTM不對文檔生成過程進行建模。因此,BTM模型無法在主題學習過程中直接獲取文檔的主題比例。為了推斷文檔中的主題,本文假設文檔的主題比例等于文檔生成的詞對主題比例的期望,其計算式表示為:

(3)
根據BTM中的參數,可以通過Bayes公式計算P(Z|d),表示為:
(4)
P(Z)=θZ
(5)
P(Wp|Z)=φp|Z
(6)
P(Wq|Z)=φq|Z
(7)
本文通過計算b的經驗分布得出P(b|d),計算式表示為:
(8)
式中:nd(b)是文檔中詞對b的頻率。P(b|d)可當作文檔中所有詞對的均勻分布。
在BTM模型得到主題詞通常是詞或短語等信息[21],這些信息為文本形式,為了便于后期進行相似度計算,需將文本轉換為數據。每條新聞內容是由多個句子構成,對于每個句子,句子屬于短文本,往往用幾個主題詞就可以涵蓋句子語義,所以可以考慮使用多個主題詞作為文本的基本單位。然而,這通常會導致模型過于復雜。為了使模型簡單化,本文使用句子中出現的共現詞表示文本的單位。
在該模型中,文本是由上述BTM模型產生的多個詞對表示。因此,一段文本可以表示為:
(9)

(10)
以計算Wp為例,TF-IDF計算如式(10)所示,Wq同理可得。
(11)

K-Means算法是聚類中經典的劃分算法。假設X={X1,X2,…,Xn}是一個具有n個數據樣本的數據集,其中Xi={Xi1,Xi2,…,Xim}表示數據集中具有m個屬性的m維樣本,然后將n個數據對象劃分k個聚類以滿足簇內相似度高和簇間相似度低的原則。K-means聚類的基本思想:以空間中k個點為中心進行聚類,以歐氏距離作為一般相似度標準,對最靠近它們的對象歸類,通過迭代的方法,逐次更新各聚類中心的值,直到聚類中心不再變化。
設k個聚類中心集合C={C1,C2,…,Ck},使數據集中每個數據對象有且只屬于一個類,即Xj∈Ci,則Xj到Ci的歐氏距離為:
(12)
K-Means算法隨機選擇初始聚類中心,導致算法可能會陷于局部最優值。文獻[24]表明了混合魚群算法(AFSA)和聚類分析問題有著對應關系,并且AFSA具有強魯棒性和易跳出局部最優值的優點。文獻[22]結合混合魚群算法提出改進的K-Means方法,但該方法在覓食過程中具有隨機性。共軛梯度可以減少人工魚群覓食行為無價值的迭代。因此,將其引入基于混合魚群的K-Means算法中,其輸出的結果作為K-Means算法的初始聚類中心,這樣既解決了K-Means算法對于初始聚類中心敏感的問題,又提高了AFSA后期的收斂速度,能保證在最短的時間內獲得最優的初始聚類中心。
基于共軛梯度人工魚群的改進K-Means算法(LAAFSA-KM)具體步驟如下:
Step1初始化魚群(魚群規模sizepop,感知范圍Visual,步長step,擁擠度因子δ,最大迭代次數MAXGEN);
Step2給每條人工魚計算其適應度值fitness,取適應度值最小的人工魚,記錄在公告板上;
Step3對每條人工魚進行聚群行為和追尾行為,選擇適應度值fitness改善較大的作為更新結果;
Step4若更新后的適應度值fitness不如原先的好,則用共軛梯度法更新該人工魚;
Step5計算更新后適應度值fitness,并跟公告板比較,如結果較好,則將其更新給公告板;
Step6當所有人工魚更新完成后,判斷是否達到最大迭代次數或精度,若滿足,則輸出最優解(K-Means初始聚類中心),否則轉Step 3;
Step7計算其他樣本數據點到初始聚類中心的歐氏距離,并將樣本點歸類至最近的聚類中心;
Step8計算新的聚類中心,新的聚類中心由一個類內所有點的算術平均值表示;
Step9重復Step 7和Step 8,直至聚類中心不再變化或到最大迭代次數。
經過BTM模型和主題詞轉換數據之后,采用上述改進的K-Means聚類算法對話題詞進行聚類[23]。首先,新聞內容通過BTM模型輸出相關的熱點主題詞,計算熱點主題詞相應的TF-IDF值,將詞的文本形式轉換為數據;然后,相應的TF-IDF值輸入LAAFSA中的適應度函數,輸出最優的初始聚類中心,再根據初始聚類中心進行聚類。實現本文模型的整體流程如圖3所示。

圖3 整體流程
當每類新聞語料庫話題比較集中,并且簇與簇之間類別明顯時,K-Means聚類算法能夠取得良好的效果[19]。此外,BTM模型能發現有效的主題詞,再運用改進后的K-Means算法加強主題質量的準確性。
選用的數據集來自于最受歡迎的中國新聞發布平臺網易新聞文章,所有的新聞文本都是2009年6月1日至2009年12月31日之間發布。本文選取數據集中的6類,分別是體育、軍事、醫學、文化、汽車和經濟,每類包括4 500條新聞內容,本文關于“中國足球超級聯賽”“烏魯木齊暴力恐怖事件”“甲型流感病毒”“新中國成立60周年”“新能源汽車發展”“金融危機”等話題進行數據分析。
為了提高數據集的準確性,本文采用北京大學的分詞工具pkuseg進行數據的預處理:分詞、去停用詞和刪除重復內容等。最后,得到數據集各類的數目如表1所示。

表1 數據集
在對新聞文本數據進行預處理后,使用BTM模型挖掘出每類新聞文本更深層次的話題。設iter_times=50,alpha=0.1,beta=0.01,得到每類新聞排名前10的話題詞,如表2所示。

表2 BTM模型發現的話題詞

續表2
可以看出,根據BTM模型發現的話題詞推斷“足球聯賽在河南建業拉開帷幕,北京國安獲得本屆聯賽的冠軍,這是北京參加多年比賽中首奪冠軍,長春亞泰和河南建業分別獲得亞軍和季軍,而山東與三支隊伍獲得亞洲杯參賽資格”,這類話題集中出現在6月至10月,后期,新聞文本主要講述亞洲杯比賽和足壇的賄賂行為;在軍事分類中,“在烏魯木齊市發生嚴重暴力事件,暴徒砸毀市區公共財物,殺害無辜群眾,特警趕至現場,逮捕犯罪分子,這是一場由境外組織的暴力犯罪,此行為嚴重影響了民族團結”該熱點話題6月至7月中下旬突出,隨著時間的遷移,新聞講述暴亂分子的刑罰及國家政治問題;在醫學分類中,描述“H1N1流感病毒疫情傳播迅速,癥狀與感冒相似,主要傳播途徑以咳嗽和噴嚏為主,死亡人數超過非典疫情的人數,可通過消毒和鍛煉身體進行預防”這話題在時間區間內都有涉及,畢竟在該時間內H1N1病毒大規模流行,隨著時間向后推動,新聞主要講述其預防手段和治療方案;在文化分類中,主要闡述了“在北京天安門廣場舉行新中國成立60周年的閱兵儀式,從閱兵中我們聽出了中國走向富強的腳步,在60年中新中國實現了民族復興,連外媒都驚訝這中國模式”,該熱點話題主要集中至9月—11月,前期主要講述新中國60周年慶典準備,后期主要講述人民群眾、媒體的反應及中國未來發展;在汽車分類中,主要圍繞“新能源汽車主要采用乙醇汽油,這相對于傳統燃料更加環保和節能,能夠改善空氣質量,汽車工業組織改造和研發新能源技術,實現部分汽車的運營”,該類熱點話題主要分布在6月至8月,其余相繼講述新能源汽車的銷量以及政策;在經濟分類中,描述“金融危機讓全球經濟進入大蕭條的時刻,全球的失業率普遍上升,中國的GDP雖占8%,但對全球經濟占50%”較多,在該時間區間內,新聞主要從金融危機波及各個行業、群眾的反應到經濟應對政策遷移。上述實驗結果表明BTM模型挖掘出與主題相關的話題詞,能基本保持語義的一致性,并突出其熱點話題。
同樣,對預處理后的新聞文本采用傳統的LDA模型來獲得每類新聞文本更深層次的話題。參數與上述設置相同,結果如表3所示?!澳蠀^”“俱樂部”“忠誠”“人民”“公共”“國際”“設計”和“機場”等加粗字不能清晰表達設定的主題,并與其主題無關。

表3 傳統LDA模型發現的話題詞
通過對比表2和表3可以得出,與傳統的LDA模型相比,BTM模型得到的話題詞能保持語義一致,并且與主題類別相關。因此,BTM模型在新聞內容中能有效地挖掘出更層次的話題。
通過BTM模型獲得相應話題詞,將話題詞轉換為數據后,采用聚類算法對話題詞進行聚類,保證話題的準確性和完整性。
評價一個聚類算法的準確度和查全度可以用準確率(Precision)和召回率(Recall)來表示。準確率表示挖掘出的話題準確性,其計算方法如式(13)所示;而召回率表示挖掘出話題的完整性,其計算方法如式(14)所示。
(13)
(14)
式中:Ni表示話題屬于類別i的數量;Nj表示話題屬于簇j的數量;Nij表示簇j中屬于類別i的話題數量。
F1值結合上述的準確率和召回率,其計算式表示為:
(15)
將BTM模型得到的話題詞進一步采用K-Means算法或Hierarchical clustering算法進行對比,文本聚類目標是根據文本之間的相似性進行歸類分析。表4列出了在不同新聞分類下的兩個模型的F1值。同時,從圖4可以看出,結合BTM模型后,K-Means聚類算法比Hierarchical clustering聚類算法的效果更好。相較于其他五類,由于汽車新聞文本內容話題比較集中,主要圍繞新能源汽車話題,因此汽車類的F1值較高;醫藥新聞文本F1值較低,是因為其涉及的主題比較廣泛,例如甲型H1N1流感、艾滋病和醫療體制改革等。

表4 BTM模型結合不同聚類算法的F1值

圖4 BTM模型結合不同聚類算法的F1值
為了驗證改進后的K-Means算法的有效性,本文將LAAFSA-KM算法與AFSA-KM算法進行對比,選擇最優的結果作為K-Means算法的初始聚類中心,本文選用誤差平方和函數的倒數作為適應度函數,這樣就將適應度函數引入至聚類中心求解中,得到K-Means初始聚類中心,以便后期進行話題詞聚類。參數設置如下:魚群規模N=50,嘗試次數Try_Number=40,擁擠度因子step=0.000 1,視野范圍Visual=0.000 1。采用Python 3.7實驗平臺上進行數值實驗,圖5是在固定迭代次數1 000次的情況下,函數值的變化趨勢。

圖5 LAAFSA-KM算法和AFSA-KM算法變化趨勢
如圖5所示,LAAFSA-KM算法比AFSA-KM算法收斂速度更快,并且收斂至更小的最優值,尤其是前400次迭代結果更為明顯,因此,本文選擇LAAFSA-KM算法對話題詞進行聚類。
4.3節的實驗表明了BTM+K-Means比BTM+Hierarchical clustering更具有優越性,因此,在本節中將BTM模型+改進后K-Means算法與傳統的LDA模型+改進后K-Means算法進行比較。根據BTM模型得到的話題詞實現文本轉換,再結合改進后K-Means算法,依次計算出Precision值、Recall值和F1值,并與LDA模型進行對比。通過圖6與圖7和圖8與圖9對比可知,通過改進后K-Means算法進行聚類得到的Precision值、Recall值和F1值高于傳統K-Means,說明改進后K-Means聚類對初始聚類中心不敏感,相對可實現全局最優,提高準確率。通過圖7和圖9對比,可以看出BTM模型+改進后K-Means算法得到的三個評價指標的值均高于LDA模型+改進后K-Means算法的值,說明BTM模型生成的話題詞不僅僅依賴于對應話題的詞分布,還可能依賴于上下文的詞,再次說明了在處理新聞文本數據上BTM模型比傳統LDA模型更具有優勢。

圖6 LDA模型+K-Means算法Precision值,Recall值和F1值

圖7 LDA模型+改進后K-Means算法Precision值,Recall值和F1值

圖8 BTM模型+K-Means算法Precision值、Recall值和F1值

圖9 BTM模型+改進后K-Means算法Precision值,Recall值和F1值
本文提出一種基于BTM模型和改進K-Means聚類算法的中文新聞熱點話題檢測方法。在網易新聞數據集上將BTM模型挖掘出的話題詞質量與傳統的模型進行比較,說明BTM模型的優越性。在此基礎上,將共軛梯度引入到基于魚群的K-Means聚類中,并結合BTM模型,從三個評估標準上說明本文所提方法的有效性。在未來的工作中,將對相關參數進行調整實驗,研究參數優化方法;進一步研究基于長文本和短文本共存的話題檢測,如:一篇新聞文章會有多個評論,新聞文章屬于長文本,評論屬于短文本,從短文本挖掘出主題補充說明長文本的主題,以確保整個話題更連貫,更全面。