楊傳春, 張冰雪, 李仁德, 郭 強
(1. 上海理工大學 復(fù)雜系統(tǒng)科學研究中心,上海 200093;2. 上海理工大學 MPA教育中心,上海 200093)
快速發(fā)現(xiàn)和獲取網(wǎng)絡(luò)中的目標信息是自然語言處理、機器學習、人工智能等領(lǐng)域內(nèi)的研究熱點。文本的主題是目標信息的重要載體,獲取主題信息是實現(xiàn)準確定位的重要途徑。不同的網(wǎng)絡(luò)數(shù)據(jù)和處理要求,其發(fā)現(xiàn)算法一般有差異[1-3],但大多是基于LDA(latent Dirichlet allocation)生成模型實現(xiàn)的一種統(tǒng)計方法,該方法可以挖掘文本內(nèi)詞與詞之間的語義聯(lián)系[4]。在此基礎(chǔ)上進行的文本聚類能有效地對文本內(nèi)潛在的主題進行提煉和劃分,從而實現(xiàn)縮小查找范圍、快速準確定位目標信息的目的。
生成模型的顯著優(yōu)點是,不需要預(yù)先對文本進行歸類或標記,具有無監(jiān)督的機器學習特點。文獻[5]對具有規(guī)范語言特點和明確關(guān)鍵詞的社科文獻進行了主題建模,提出了主題引導(dǎo)詞庫的概念;文獻[6]把文本聚類應(yīng)用于查新系統(tǒng),進行了主題挖掘?qū)嶒?,并對實驗效果進行了自評;文獻[7]則對新浪平臺的微博網(wǎng)絡(luò)社區(qū)進行了主題發(fā)現(xiàn),以微博的主題分布作為衡量微博主題在用戶中影響力大小的依據(jù)。
近年來,在線網(wǎng)絡(luò)教育內(nèi)容呈現(xiàn)出爆炸式增長,其巨量數(shù)據(jù)的生成與維護成為在線教育吸引大眾的重要資源。本文基于LDA文本生成模型,對一個開放的在線教育機構(gòu)網(wǎng)絡(luò)刊物進行主題發(fā)現(xiàn)與聚類研究,提出了主題發(fā)現(xiàn)和聚類的流程,對層次聚類文本距離的算法作出了改進,提出了合并向量算法(union vector method,UVM)。
LDA生成模型簡稱LDA模型,是挖掘文本集內(nèi)文本主題潛在關(guān)系的算法,它模擬文本的生成過程。文本的主題發(fā)現(xiàn)與文本的生成是個互逆過程,文本的主題發(fā)現(xiàn)是從文本中發(fā)現(xiàn)詞項描述的主題,以及不同主題間的關(guān)聯(lián),同一文本可以有多個主題;文本的生成是根據(jù)主題,從詞庫內(nèi)選用與主題相匹配的詞項來構(gòu)成文本。兩者的路徑相反,通過先驗參數(shù),LDA模型實現(xiàn)了文本生成逆問題的解決方案。
假定要生成包含M篇文本的文本集,文本集的內(nèi)容與K個主題相關(guān),每個文本所用的詞項均來自于同一個包含V個元素的集合。文本生成過程如下[8]:
步驟1 生成文本的主題分布Θ,分布的維度為M×K,如圖1所示。
圖 1 文本-主題分布Fig.1 Doc-topics distribution
圖1 中的通項pmk(m≤M,k≤K)為第m篇文本選擇主題k的概率,每行的概率和為1。文本-主題分布服從狄利克雷分布Dir(Θ|α),α為先驗參數(shù),又稱超參數(shù)。文本的主題分布服從多項式分布Mult(?),依據(jù)該分布選擇概率值最大的主題。
步驟2 生成主題-詞項分布Ф,分布的維度為K×Nm,Nm為第m篇文本總的詞數(shù)量,如圖2所示。
圖 2 主題-詞項分布Fig.2 Topic-words distribution
圖 2中的通項 pkn(k≤K,n≤Nm)為第 k個主題下選中第n個詞項的概率,每列的概率和為1。主題-詞項分布服從狄利克雷分布Dir(Φ|β),β為先驗參數(shù)。主題下的詞分布服從多項式分布Mult(φ),依據(jù)該分布選擇概率值最大的詞項wj。
步驟3 迭代上述過程,直至產(chǎn)生文本集。
詞袋(bag of words,BOW)中有V個獨立同分布的不重復(fù)詞,取N個詞生成一篇文本(文本可取重復(fù)的詞),由每個生成后的詞在文本中出現(xiàn)的概率,反過來便可得到文本W(wǎng)的生成概率為
圖3中的矩形表示框內(nèi)相應(yīng)變量n,m,k的作用域;陰影圓圈內(nèi)的值表示實驗中是可以被觀測到的已知量,矩形框內(nèi)無陰影圓圈表示隱含變量;矩形框外的值表示先驗參數(shù),即狄利克雷分布的超參數(shù),需在實驗前預(yù)先給定;φk的箭頭穿透了2層矩形框指向,表示生成該詞項前有一個文本到主題和先驗參數(shù)β到主題的混合過程。圖中各量及其他相關(guān)符號含義見表1。
圖 3 LDA混合生成模型Fig. 3 Model of LDA hybrid generation
文本集中第m篇文本的生成過程可分為兩步[9-10]:a. 由先驗參數(shù)α獲得文本的主題分布,選取主題;b. 由先驗參數(shù)β獲得每個主題的詞項分布,選取詞項。因此,LDA模型文本生成過程可以看成3層條件概率過程。
表 1 使用符號及其含義Tab.1 Symbles and meanings used
第一層:基于主題概率的生成過程。第m篇文本中詞項t的生成概率可表示為
第二層:混合層,基于主題概率和基于文本概率的生成過程。第m篇文本的生成概率為文本-主題概率與主題-詞項概率的乘積
式中,φk的取值由中的主題值k確定。第三層:基于先驗參數(shù)的生成過程。文本集的生成概率等于每篇文本的概率積
LDA模型在概念上很簡單,但要實現(xiàn)求解就有很大困難,一般采用近似計算完成,吉布斯采樣是完成模型計算的一個理想方法,它可以消除先驗參數(shù)值對結(jié)果的影響。吉布斯采樣是對馬爾科夫鏈蒙特卡洛法(Markov-chain Monte Carlo,MCMC)的一種模擬,通過馬爾可夫鏈的平穩(wěn)態(tài)來模擬高維分布,某時刻xi的值只和生成xi之前的狀態(tài) x?i=(x1,x2,…,xi-1)有關(guān)(?i表示不包含i狀態(tài)),即
式中:x={xi,x?i};z為隱含變量。
LDA模型中,文本-主題分布Θ和主題-詞項分布Φ均是隱含的變量。它們包含在由兩個先驗超參數(shù)確定的聯(lián)合分布p(w,z|α,β)中,文本主題分布和主題詞項分布是兩個獨立過程,因此聯(lián)合分布可分解成兩個獨立項
其中 p(w|z,β)由下式給出:
布,在整數(shù)范圍內(nèi)有 Γ(n+1)=nΓ(n)。式(6)中p(z|α)由下式確定:
根據(jù)式(5)可得主題吉布斯采樣更新規(guī)則[11]:
最后可獲得多項式參數(shù)Θ和?的表示,結(jié)合多項式分布為狄利克雷的后驗分布可得
式(9)是LDA模型數(shù)學原理的核心,它通過式(7)和式(8)包含了文本-主題分布和主題-詞項分布,文本主題發(fā)現(xiàn)的信息就集中在這兩個概率分布中。然而由該式計算出來的結(jié)果具有不確定性,因為式中包含有先驗參數(shù)成份,因此需要不斷迭代以獲得穩(wěn)定的文本-主題分布和主題-詞項分布,這兩個分布更新規(guī)則通過吉布斯采樣求得的式(13)確定,這樣LDA生成模型就確定下來了。
評價LDA生成模型質(zhì)量的標準一般用困惑度表示,困惑度的定義為[8]
由此可得,
文本的聚類就是挖掘文本的相似性,是以描述文本的主題信息為基礎(chǔ)的,信息重要性的度量常用TF-IDF算法[12]。不同的詞在文本中出現(xiàn)的次數(shù)一般不同,可以用詞項在文本中出現(xiàn)的次數(shù)詞頻(term frequency,TF)表示。文本集中文本數(shù)量除以包含某個詞的文本數(shù)量叫逆文本頻率(inverse document frequency,IDF),該值越大,表示詞項在文本集內(nèi)具有一定的“獨特性”。
式中:分子Nm,n表示第m篇文本中第n個詞在該文本中出現(xiàn)的次數(shù);分母Nm表示第m篇文本中所有詞項的數(shù)量和。逆文本頻率為式中:M為文本集中文本的總數(shù)量;分母表示包含第n個詞項wn的文本數(shù)量。兩者的比值取對數(shù)是為了平衡TF和IDF對同一詞項wn的影響。
文本距離用來反映文本的相似程度,距離越小表示文本越相似。要實現(xiàn)文本距離的計算,先要實現(xiàn)文本的計算表示,向量空間模型(vector space model,VSM)就是把文本語義的相似度簡化為空間向量運算的模型[13],它以詞袋為基礎(chǔ),把文本的每個關(guān)鍵與詞袋對比,賦予一個正實數(shù)值,使每篇文本構(gòu)成一個多維空間向量,從而實現(xiàn)數(shù)據(jù)的計算表示。文本間距離的度量常用的有余弦相似度和杰森-香農(nóng)距離(Jensen-Shannon distance,JSD)[14],兩者都具有對稱性。余弦相似度的定義為
余弦相似度為零,表示兩個向量無語義關(guān)聯(lián)性;相似度越接近于1,表示文本越相似。JSD的定義為
本實驗的主題發(fā)現(xiàn)和聚類流程如圖4所示,實線箭頭所指的方向為實驗時間順序和步驟,虛線所指表示需要的相關(guān)算法或技術(shù)路線。
通過分析在線教育機構(gòu)的網(wǎng)頁特點,利用python語言的urllib,urllib2模塊和正則表達式制作爬蟲程序,匹配目標字段抓取數(shù)據(jù),共取得了2 794篇網(wǎng)絡(luò)刊物的名稱、分類和概述3個字段值??飪?nèi)容涉及學習和興趣的各個方面。
圖 4 文本聚類流程和技術(shù)路線Fig. 4 Text clustering process and technical route
由于頁面中存在著大量不規(guī)范的詞語,抓取下來的數(shù)據(jù)無法被直接利用,必須進行詞語替換、去污和深度清洗,僅保留簡體中文數(shù)據(jù)。通過建立非目標字符庫,構(gòu)造字符過濾器,把文本集中的數(shù)據(jù)與過濾器字符庫逐一對比達到清洗的目的。采用開源的結(jié)巴(Jieba)分詞算法,對文本集的全部語句進行分詞便可得到需要的數(shù)據(jù)。
清洗后的詞項構(gòu)成了實驗的文本集,通過去重建立詞袋,將詞袋與每篇文本所含詞項對比,構(gòu)造包含0與1的多維向量空間,1表示文本與詞袋有映射關(guān)系,0表示文本內(nèi)沒有該詞。每個文本對應(yīng)一個向量,向量的分量按詞袋內(nèi)詞的順序排列,形成1110010101…10結(jié)構(gòu)序列,序列長度等于文本內(nèi)詞項總數(shù)。計算各詞的TF-IDF值,用其置換向量序列內(nèi)的1,實現(xiàn)向量的計算表示。
計算文本間的余弦相似度,如圖5所示,它反映了不同余弦相似度隨文本數(shù)量變化的關(guān)系。隨著余弦值的增加,具有相似性的文本數(shù)量逐漸減少,沒有完全相同的文本(cosine=1),其中的子圖是母圖文本數(shù)量歸一化后的情況。
圖 5 余弦相似度與文本數(shù)量關(guān)系Fig.5 Relation of cosine similarity and text quantity
LDA模型的輸入值有,自定義主題數(shù)量K(60~440)、文本主題分布的超參數(shù)α=0.01、主題詞項分布超參數(shù)β=60/K,模型迭代的次數(shù)為1 000次;模型的輸出有文本主題分布Θ、主題詞項分布?,以及詞袋與自定義特征整數(shù)間的映射表,該映射表并非必須,但通過它易于人機交互計算建模。
利用先驗參數(shù)和文本集對模型作持續(xù)訓練,同時以20為步長改變主題數(shù),得到困惑度變化如圖6所示。數(shù)據(jù)顯示,當主題數(shù)為320時,模型困惑度最小,表明模型此時的生成效果最好;K>320時,模型的困惑度基本保持不變,這有可能是模型陷入了局部極小值的原因。困惑度最小意味著主題生成的概率最大。
圖 6 困惑度Fig.6 Perplexity
表2顯示了主題數(shù)K=320時,模型提取出的前4個主題和相應(yīng)的生成概率??梢钥闯雒總€主題的關(guān)鍵詞聚焦的內(nèi)容語義邊界非常明顯,表明LDA模型挖掘出了文本主題間的內(nèi)在聯(lián)系。與之對比,當主題數(shù)目K=80時,模型提取的前4個主題和相應(yīng)的生成概率如表3所示。此時,主題的關(guān)鍵詞之間有些模糊,主題邊界出現(xiàn)了交叉現(xiàn)象,交叉詞語已用下劃線標出。這種情況有可能是模型在進行數(shù)據(jù)采樣時,未進入平穩(wěn)態(tài)程序就已經(jīng)結(jié)束。實驗表明,當?shù)螖?shù)增加到2 000次時,模型輸出的主題結(jié)果并未改變,說明即使迭代只有1 000次時,模型事實上已進入了采樣的平穩(wěn)態(tài)。因此只能表明,如果把全部在線網(wǎng)絡(luò)刊物的內(nèi)容歸納到現(xiàn)有的主題數(shù)目時,主題定位將不再清晰,需要進一步細分或者放大主題內(nèi)涵才能確定更清晰的主題邊界。
聚類時,將每個刊物作為一個獨立的簇,計算兩兩文本之間的距離,并設(shè)定距離閥值簇的容量,依次合并不同的簇,合并后的簇以簇內(nèi)所有樣本點的距離平均值作為迭代計算的依據(jù),反復(fù)迭代直到最后所有簇均被合并[15]。這一算法只有在能定義簇平均值時才有意義,其時間復(fù)雜度為O(nmkt),其中n為數(shù)據(jù)點的數(shù)目,m為數(shù)據(jù)點的維度,k為簇的數(shù)目,t為迭代次數(shù)[16]。
本實驗中,合并以后的簇采用簇內(nèi)各數(shù)據(jù)點向量的并集來表示簇,并以此計算簇間的距離,該算法稱之為合并向量算法(UVM),算法的偽碼如表4所示。
UVM算法與文獻[15]算法隨詞袋中詞項數(shù)量的性能對比如圖7所示。
聚類結(jié)果如圖8所示,橫軸為各個刊物的序號,縱軸為向量間的歐幾里德距離。最后15步的聚類如圖9所示,橫軸上帶括號的數(shù)字表示該聚類葉子包含的刊物數(shù)量,未加括號的表示刊物序號。從圖9可以簡單統(tǒng)計出,最后一步的聚類中,兩個分支的刊物數(shù)量分別為4和2 790,表明全部刊物的主題總體上比較集中,有利于用戶在相應(yīng)主題下通過聚類層次圖向下找到更為確切的主題,實現(xiàn)主題定位。但是,平臺主題的過度集中,也暴露出刊物數(shù)量相對于內(nèi)容的冗余,如果平臺能對主題相似度較大的刊物進行歸并,適當縮減刊物數(shù)量,精煉刊物主題,不僅能增強不同刊物在用戶使用中的辨識度,也可以節(jié)約大量的平臺人力維護成本。
表 2 主題和詞項的概率(K=320)Tab.2 Probability of topics and items(K=320)
表 3 主題和詞項的概率(K=80)Tab.3 Probability of topics and items(K=80)
表 4 UVM算法偽碼表示Tab.4 Representation of pseudo-code of UVM algorithm
圖 7 UVM算法性能Fig.7 UVM algorithm performance
圖 8 全部刊物層次聚類圖Fig.8 Cluster graph of total journals
圖 9 最后15步聚類圖Fig.9 Graph of last 15 steps
對在線網(wǎng)絡(luò)教育平臺的刊物進行了主題發(fā)現(xiàn)和聚類研究。實驗數(shù)據(jù)通過爬蟲獲取,提出了主題發(fā)現(xiàn)和聚類的一般流程,通過對數(shù)據(jù)的清洗、生成詞袋、計算TF-IDF值和向量空間模型的表示等為主題建模提供了有效數(shù)據(jù)。以LDA生成模型為基礎(chǔ),完成了對2 794個刊物的潛在主題的發(fā)現(xiàn),以文本的關(guān)鍵詞為基礎(chǔ),利用層次聚類模型進行了主題聚類工作,并提出了新的合并向量算法(UVM算法)。
實驗中2 794篇文本中包含3 800左右的關(guān)鍵詞,聚類難度相當大。實驗中采用了分步聚類方法,先用kmeans算法聚類成320個主題,再進行層次聚類。結(jié)果表明,合理的聚類有助于用戶快速發(fā)現(xiàn)目標信息,在線教育機構(gòu)亦需要對刊物內(nèi)容和刊物構(gòu)成進行適當?shù)膬?yōu)化。
本實驗研究的不足之處是文本的層次聚類算法中距離的計算方法,這也是目前聚類算法面臨的系統(tǒng)性難題。在計算距離時,無論是采用余弦距離、歐幾里德距離還是香農(nóng)距離等都無法避免極端情況下,距離數(shù)值相等或相近引起結(jié)果可能出現(xiàn)的大偏差。如表5所示,向量1與向量2、向量2與向量3......向量n-1與向量n的“距離”是相等的,在進行簇合并時,它們將會被歸為同一簇。事實上,向量1和向量n在語義上可能根本沒有相似性,因此,對聚類距離的研究值得繼續(xù)深入。
表 5 向量在極端情況下的分布Tab.5 Distribution of vectors in extreme conditions