郭江林
(河北地質大學信息工程學院,河北 石家莊 050031)
網絡是一種通用的數據結構[1],由節(jié)點和邊構成,其中節(jié)點代表實體,邊代表實體間的關系。屬性網絡[2]是在網絡的基礎上考慮了節(jié)點和邊的屬性信息。在現(xiàn)實世界中互聯(lián)網每時每刻都在產生海量數據,這些數據便可構成屬性網絡,例如文檔鏈接網絡、社交網絡、鐵路網絡。這些網絡涉及關乎社會發(fā)展和民生的各個領域,因此有大量學者研究屬性網絡。以文檔鏈接網絡為例,網絡中的節(jié)點代表論文,網絡中的邊代表論文間具有引用關系,而節(jié)點的屬性代表論文的具體內容。對文檔鏈接網絡做社區(qū)發(fā)現(xiàn)和表示學習可以將屬于同一主題的文檔聚類,也可以獲得文檔的表示。
社區(qū)發(fā)現(xiàn)是分析網絡的一個基本任務,它旨在將網絡中的節(jié)點劃分為不同的社區(qū)。同一社區(qū)內的節(jié)點彼此聯(lián)系較為緊密,而不同社區(qū)間的節(jié)點聯(lián)系較為稀疏。社區(qū)發(fā)現(xiàn)可以有效的捕獲網絡的全局結構。很多社區(qū)發(fā)現(xiàn)方法是基于矩陣分解的。這些方法通常會利用圖的鄰接矩陣或其他矩陣的低秩分解。如Fei Wang等人提出的三種非負矩陣分解(NMF)技術[3]和Jaewon Yang等人提出的BIGCLAM(Cluster Affiliation Model for Big Networks)[4]。但是,這些方法由于矩陣分解的復雜性而無法擴展。還有很多社區(qū)發(fā)現(xiàn)方法模擬了圖的生成過程構建了生成模型,例如 Hongyi Zhang等人提出的 PNMF(preference-based nonnegative matrix factorization)[5]模型和Mingyuan Zhou提出的EPM(edge partition model)模型[6]。由于這些方法是基于生成模型的,因此可以用于生成網絡和預測缺失的邊。
對網絡中節(jié)點進行表示學習旨在獲得節(jié)點的分布式表示,節(jié)點表示可以有效捕獲網絡的局部結構,可以使局部連通性相似的節(jié)點具有相似的表示。應用到文檔鏈接網絡中便可使具有相似引用關系的論文表示相似。經典的網絡表示學習方法包括 DeepWalk[7],LINE[8],node2vec[9]。這些方法通過隨機游走探索每個節(jié)點的局部聯(lián)通性。但是這些方法考慮的是圖的局部信息,而忽略了全局社區(qū)信息。
已有方法共同考慮社區(qū)發(fā)現(xiàn)和表示學習[10],但這些方法并非同步解決社區(qū)發(fā)現(xiàn)和表示學習。而Fan-Yun Sun等人提出的VGRAP[1]模型通過概率生成模型來同步進行社區(qū)發(fā)現(xiàn)和表示學習。但該方法并未考慮節(jié)點的屬性信息即文檔的內容信息。本文提出的RColc模型融合表示學習對文檔鏈接網絡進行了語義社區(qū)發(fā)現(xiàn)學習,不僅對節(jié)點鄰居的生成過程建模,還對節(jié)點屬性的生成過程建模。
RColc模型是針對文檔鏈接網絡融合表示學習進行社區(qū)發(fā)現(xiàn)的方法。RColc模型的圖表示如圖1所示,它是一個聯(lián)合概率模型,虛線框描述了文檔文本內容部分,實線框描述文檔鏈接的拓撲部分,這兩部分共享的是特定于文檔的混合比例p(z|d)。這種聯(lián)合建模方法的優(yōu)點是,它以原則性的方式集成了內容和鏈接信息。其中,φn表示節(jié)點dn的嵌入,ψ表示社區(qū)嵌入,φ表示p(c|z)生成的節(jié)點的嵌入,μ表示p(w|z)生成的節(jié)點的嵌入。
圖1 RColc的圖表示Fig.1 Graph representation of RColc
RColc對節(jié)點鄰居(文檔鏈接)和節(jié)點屬性(文檔內容)的生成建模。生成過程如下:
1.根據分布p(dn)隨機選擇一個節(jié)點dn
2.根據p(z|dn)為節(jié)點繪制一個社區(qū)分配z:
(a)以p(c|z)的概率生成節(jié)點的鄰居
(b)以p(w|z)的概率生成節(jié)點的屬性w
這個生成過程用概率的表達方式如公式(1)所示:
RColc通過引入一組節(jié)點嵌入和社區(qū)嵌入參數化分布p(z|d),p(c|z)和p(w|z)。令φi表示分布p(z|d)中使用的節(jié)點i的嵌入,φi表示分布p(c|z)中使用的節(jié)點i的嵌入,μt表示分布p(w|z)中使用的節(jié)點t的嵌入,ψk表示第k個社區(qū)的嵌入。由于三者都是基于類似的分解,可以通過三個softmax模型參數化社區(qū)分布、節(jié)點分布以及節(jié)點屬性分布,分別如公式(2)、(3)、(4)所示:
式(3)中的W代表語料庫的大小,式(4)中的V代表總鏈接數,因此公式(3)、(4)的計算成本和總鏈接數與語料庫的大小成正比,在實踐中是不可行的。對于這種情況,與標準的skip-gram模型類似,采用負采樣方法提高效率,對每一個單詞訓練時,對詞匯表中的詞匯進行隨機采樣,只更新部分權重;同理,在對文檔鏈接訓練時,在所有目標節(jié)點中隨機采樣。只更新部分目標節(jié)點的權重。使用負采樣后,如公式(5)、(6)所示:
式(5)、(6)中的σ(x)代表 sigmoid函數,σ(x)= 1 /(1+exp(-x));S是負采樣的個數。進行負采樣時使用頻率的次方,這是根據經驗來的,在Mikolov et al[11]的文章中,他們說這個公式比其他函數的表現(xiàn)更優(yōu)。
我們通過最大化觀測變量的對數似然來學習模型參數,和的對數在進行梯度回傳求解導數時過于繁瑣,考慮將其轉化為對數的和減少計算量,我們使用Jesson不等式將和的對數轉換為對數的和,將式(1)轉化為式(7)(8)所示:
式(7)、(8)中p(z|d,c )和p(z|d,w)難以求解,我們使用變分推斷求得參數分布q(z|c,d)和q(z|w,d)來分別近似真實后驗分布p(z|d, c)和p(z|d,w),通過最小化每個數據點的變分分布和真實后驗分布之間的Kullback-Leible(rK-L散度)來實現(xiàn)。具體來說,我們使用神經網絡參數化變分分布q(z|c,d)和q(z|w,d),如式(9)(10)所示:
式(9)(10)中⊙代表元素乘法,之所以使用元素乘法是因為源節(jié)點的表示與目標節(jié)點和源節(jié)點的表示與節(jié)點屬性的表示是對稱的,并且可以將文檔與鏈接文檔的表示、文檔與文檔內容的表示聯(lián)系起來。
q(z|c,d)代表(d,c)的社區(qū)成員,q(z|w,d)代表(d,w)的社區(qū)成員。我們將每個節(jié)點的鏈接文檔和每個節(jié)點的屬性進行加權聚合,用來近似每個節(jié)點d的社區(qū)成員分布,p(z|d)的計算如公式(11)所示:
式(11)中N(d)是節(jié)點d的鏈接節(jié)點集合,W(d)是節(jié)點d的屬性集合。我們使用 argmax來近似推斷p(z|d),對于文檔與鏈接節(jié)點和文檔與內容節(jié)點的相對重要性對p(z|d)進行切分,一般我們把在同一個主題下的文檔鏈接在該主題下的概率和文檔內容在該主題下的概率通過α加權聚合來求解社區(qū)z,具體求解如式(12)所示:
使用變分推斷近似后,我們現(xiàn)在已經準備好所有能夠計算的概率,得到最后的目標函數如式(13)所示:
式(13)中α表示我們使用的權重,Ez~q(zk|c,d)logp(c|zk)和Ez~q(zk|w,d)logp(w|zk)分別表示logp(c|zk)和logp(w|zk)的期望。KL(·||·)表示兩個分布之間的 Kullback-Leibler散度。KL散度越小說明兩個分布越接近。
這部分首先介紹使用的數據集和實驗設置。然后,我們使用模塊度(Modularity)[12]評估RColc模型得到的社區(qū)劃分的效果。
為了驗證RColc模型的效果,我們在DBLP[13]、samll-hep和large-hep這三個文檔鏈接網絡的公共數據集上進行實驗,這三個數據集中的文本是論文的標題和摘要,鏈接是論文間的引用關系。small-hep擁有397篇文檔,三個類別,698個鏈接。DBLP數據集有6936篇文檔,5個分類,12353個鏈接,large-hep有 11752篇文檔,4個類別,134857個鏈接。數據集中的文本是每篇論文的標題和摘要,鏈接是論文間的引用關系?,F(xiàn)在我們將對數據集進行處理,對于DBLP數據集,首先將數據集中所有文檔中詞頻小于1的詞去掉,然后將文檔剩余詞的個數小于10和大于50的文檔從數據集中刪除。再將這些刪除的文檔在文檔鏈接中刪除。最后得到1460篇文檔,2848個鏈接。對于large-hep,我們將數據集中詞頻小于5的詞刪除,然后保留文檔剩余詞的個數在10和30之間的文檔。最終得到3017篇文檔,10323個鏈接。
實驗電腦處理器為Intel(R) Core(TM) i7-3770 CPU,8G 內存,GeForce GTX1060 顯卡。實驗將文檔的節(jié)點嵌入、社區(qū)嵌入和詞嵌入維度都設為 128;權重α設為 0.75;學習率設為 0.05,迭代1000輪進行參數訓練。
我們通過模塊度評估RColc模型社區(qū)檢測的效果。模塊度由Mark NewMan 提出,是常用的衡量網絡社區(qū)結構強度的方法。模塊度定義如式(14)所示:
其中Q代表模塊度,其值越大說明社區(qū)劃分效果越好。當兩個節(jié)點直接相連時Avw=1,否則Avw= 0 。kv代表節(jié)點v的度。當節(jié)點v和節(jié)點m在 同一個社區(qū)內δ(cv,cm)=1,否則δ(cv,cm)=0。
我們使用貝葉斯計算的 PHITS[14]和使用嵌入計算的Vgraph進行對比實驗,實驗結果如表1所示。
表1 真實數據集上算法的模塊度對比結果Tab.1 Modularity comparison results of algorithms on real datasets
表1顯示了本文提出的RColc模型在三個真實網絡數據集上的運行結果,在社區(qū)劃分任務上的效果明顯優(yōu)于對比模型。與PHITS模型相比,我們摒棄了使用樸素貝葉斯的傳統(tǒng)計算方法,使用迭代更多,速度更快、適用性更強的神經網絡進行計算,得到了更加準確的社區(qū)劃分;與Vgraph模型相比,RColc模型除了考慮源節(jié)點及目標節(jié)點的節(jié)點嵌入外,還考慮了源節(jié)點的屬性信息,因此社區(qū)劃分的質量更高。
本文提出了一種針對文檔鏈接網絡進行表示學習和語義社區(qū)發(fā)現(xiàn)的聯(lián)合概率模型,對文檔內容的生成過程和文檔鏈接的生成過程建模,并用一組共同的潛在因素來解釋文檔內容和其引用關系。這種方法可以提高社區(qū)檢測和文檔表示的質量,在社區(qū)劃分任務上證明其效果較好。未來將考慮對文檔上下文的生成過程建模,并考慮解決一詞多義帶來的主題模糊性的問題。