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