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