日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

综述 | 生成对抗网络(GAN)在图网络中的应用

發布時間:2024/2/28 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 综述 | 生成对抗网络(GAN)在图网络中的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.





導語: 生成對抗網絡(Generative Adversarial Network,簡稱GAN)是非監督式學習的一種方法,通過讓兩個神經網絡相互博弈的方式進行學習。自2014年GAN網絡提出以來,其在Computer Vision(計算機視覺)領域獲得了廣泛的關注,但GAN網絡在其他領域的應用相對較少。將GAN網絡的思想應用在圖網絡(network)特征表達是近一年新興的課題,本文綜述GAN模型在圖網絡表征學習方面的研究。


背景介紹

網絡表征學習(Graph Representation Learning、 Network Embedding、 Graph Embedding)的主要目的在于,將圖中每一個節點都映射到一個低維向量空間,使得其在此空間內保持原有圖的結構和距離信息。直觀理解是,靠近的兩個點在低緯空間中的距離接近。如下圖所示(邊上的數字代表邊的長度)。

對于圖表征學習的研究從很早就開始了,從最簡單的鄰接矩陣(Adjancency Matrix)表示,到后面對鄰接矩陣進行矩陣分解(SVD),再到前幾年比較火的基于隨機游走的方法(DeepWalk、Node2Vec)以及最近基于深度網絡的Graph Neural Network和基于注意力機制的Graph Attention Network模型,其目的都在于將網絡結構映射到低維空間以應用到多項任務中,如鏈路預測、節點分類等等。


本文主要介紹生成對抗網絡模型(Generative Adversarial Network)在圖表征學習中的最新進展。本文中,網絡模型如neural network中的network均稱為模型;網絡結構如social network中的network均稱為圖網絡


GraphGAN模型

論文[1]將圖表征學習的方法分為兩類,第一類叫生成式(generative)模型,第二類叫判別式(discriminative)模型。


生成式模型假設每一個節點都有一個潛在的概率分布,這個概率分布可以體現出該節點和其他每一個節點的連接情況。生成式模型的主要目的就是為圖網絡中的節點找到一個盡可能接近該潛在概率分布的向量表征。論文[1]中對這個潛在概率分布的表示為Ptrue(V|Vc),其中Vc表示正在觀測的節點,Ptrue(V|Vc) 就是指在除了 Vc 之外其他節點(V)與Vc之間構成一條邊的概率。


判別式模型是指,模型直接去學習兩個節點之間有邊的概率。這種方法會將邊<Vi, Vj>的兩個定點Vi 和 Vj 聯合作為 feature,然后輸出的是邊<Vi, Vj>存在的概率 P(<Vi, Vj>|Vi, Vj)。判別式模型往往是有監督的。


GraphGAN即為生成式模型和判別式模型的結合,其包含兩個重要部分,即生成器G(v|vc ; θG)?和判別器D(v|vc ; θD)。生成器為每一個節點維護一個向量,這些向量組合在一起構成θG。G(v|vc?; θG)?表示生成器認為給定節點Vc和參數θG下,V與Vc之間有一條邊的概率。G(v|vc?; θG)?的目的就是通過學習去逼近真實分布Ptrue(V|Vc)。判別器也為每一個節點維護一個向量,這些向量組合在一起構成θDD(v|vc ; θD)通過向量θD來判斷V與Vc之間是否有一條邊


GraphGAN采用GAN網絡中常見的對抗機制:生成器G盡可能的逼近Ptrue(V|Vc)以找到與Vc的相鄰節點極其相似的節點來欺騙判別器D,而判別器D則會反過來檢測給定的節點V是Vc的真實鄰居還是由生成器生成的。GraphGAN方法的核心在于公式(1)中的目標函數:


在給定θD的情況下,生成器G希望盡可能減少下式的值:

即降低(V,Vc)被D判定為非鄰居的概率;


在給定θG的情況下,判別器希望盡可能增大下式的值:

即判斷真實樣本為鄰居的概率盡可能接近1


同時增大下式的值:

即判斷生成器生成的樣本的概率盡可能接近0。


理解了公式(1)就基本理解了GraphGAN的內在原理,下圖給出GraphGAN工作的流程。θDθG可以通過交替最小化和最大化V(G,D)函數來迭代更新得到。每次迭代,我們從 Ptrue 中 抽樣一些跟 Vc 真實相鄰的綠點,從 G 中又生成了一些跟 Vc 接近的藍點。我們將綠點作為正樣本,將藍點作為負樣本來訓練 D,在得到 D 之后,再用 D 中的信號,通過policy gradient去反過來訓練 G。不斷重復這個過程,直到生成器 G 和 Ptrue 極為接近。在剛開始的時候,G 相對比較差,因此對于給定的 Vc 而言,G sample 的點都是一些離 Vc 很遠的點。隨著訓練的不斷進行,G sample 的點會逐漸向 Vc 接近,到最后 G 抽樣的點幾乎都變成了真正跟 Vc 相鄰的點,也就是 G 和 Ptrue 已經很難被區分了。


判別器D的實現是兩個節點向量的內積再取sogmoid:


生成器G的基本實現是一個softmax函數,即選擇離Vc向量距離最接近的V:


論文的另一個技術貢獻在于設計了一個基于寬度有限搜索的生成規則,使得生成器每次尋找鄰居節點的時候不需要將Vc和圖網絡中的每一個其他節點進行計算,這一部分優化與GAN網絡思想關系不太緊密這里不做詳細介紹了。


以上就是GraphGAN模型的主要思想和模型更改,GraphGAN基于回答“兩個節點之間是否存在一條邊”這個圖網絡研究中非常重要的問題而構建判別器和生成器,給后續GAN模型在圖網絡領域的研究一些啟迪。代碼:

https://github.com/hwwang55/GraphGAN


CommunityGAN模型

論文[2]中介紹了一種基于GAN模型的可重疊社區發現方法,稱為CommunityGAN。實際上,基于前面GraphGAN中產生的節點表征,通過聚類的方法也可以得到圖網絡中的社區。但是,GraphGAN中的表征僅僅考慮了邊的信息,而社區的形成往往需要更加緊密的結構如團(clique),所以CommunityGAN的基本思路就由GraphGAN中回答“兩個節點之間是否存在一條邊”變成了“多個節點之間是否兩兩相連”,來解決社區發現的問題。下面簡單介紹一下CommunityGAN模型。


首先,CommunityGAN假設每個節點可以屬于多個社區。論文中對每個節點維持一個社區歸屬度的向量,向量的每一維表示該節點屬于對應社區的權重,如下圖(V為節點id,C為社區id):


論文首先證明,在現實圖網絡中,團的結構更容易出現在社區當中,即,在同一個社區中的幾個節點比跨社區的幾個節點更容易出現兩兩相連的情況。這一點也是符合我們的直觀感受的。基于這一點,CommunityGAN設計了與GraphGAN非常類似的模型結構,唯一的差別就是,GraphGAN旨在判斷兩點之間是否有邊,而CommunityGAN則是判斷k個點之間是否成團。


生成G(s|vcG)在給定節點Vc的情況下,找到一個集合s,并認為s與Vc構成一個兩兩相連的團。假設我們以三團(3-clique)為目標,那么|s|=2。判別器D(s,θD)則是判斷給定的節點集合s是否構成一個團。有了前面關于GraphGAN的背景,這里對于CommunityGAN的目標函數就很容易理解了:


其中Ptrue是真實團在網絡中的分布。與GraphGAN類似,θG由每個節點的圈子歸屬度向量組成,θD由判別器中的每個節點的表征向量組合而成。


模型訓練如下圖所示:對于每一個節點Vc,我們根據Ptrue抽樣真實的團結構作為正樣本,生成器按照θG尋找向量接近的節點構成負樣本,訓練判別器。對應的,判別器在收到生成器的負樣本后會對樣本進行打分,然后將分數反饋給生成器,生成器通過policy gradient對θG進行更新。最終得到社區結果的方法是,θG中每一個維度上的歸屬度大于一定閾值的節點就屬于該維度對應的社區。



CommunityGAN中對生成器產生樣本的邏輯也有一定優化,通過隨機游走的方式保證并非所有的節點在一次選取中都要被全部計算一次。論文中對θG的起始狀態有一定要求,作者通過AGM算法對θG進行初始化。在實際實驗過程中,我們也發現當θG沒有被合理初始化時,CommunityGAN模型很難收斂,甚至根本不具備學習的能力。但在合理初始化的前提下,CommunityGAN可以明顯提高社區劃分的質量。代碼:

https://github.com/SamJia/CommunityGAN


NetRA模型

為了對每個節點進行表征,前面兩個模型都需要針對每一個節點去抽樣正樣本和生成負樣本,這在現實生活中的巨型網絡上是很難實現的。論文[3]采用了一種基于隨機游走的圖表征模型。實際上,基于隨機游走的圖表征模型已經有很多,例如DeepWalk。但這類模型有一個問題,就是當我們控制抽樣數量不變時,walk的長度越長,則效果越差。原因在于walk的長度變長時,可能出現的walk所組成的sample也增多,而當我們采樣不足時則會出現過擬合的問題。反過來講,如果我們減小walk的長度,那么其對于網絡表征的能力也會相應下降。論文給出了一組基于DeepWalk進行邊預測的實驗,假設圖中節點的平均度數為d,walk的長度為l,而抽樣的walk數量為k,他們三者之間的關系如下圖所示。


如上圖,當l或者d增大是,抽樣變得越來越稀疏,使得模型過擬合導致效果變差。而當我們增加walk的數量時,模型表現就會提升。


論文[3]提出的NetRA模型(Network Representation with Adversatially Regularized Autoencoders)要解決的就是在抽樣比較稀疏的情況下,避免圖表征過擬合的問題。具體而言,NetRA通過引入一個GAN模型的正則項使得encoder能夠提取到更有用的信息。NetRA的整體模型框架如下圖。


該模型主要包含三個部分,Autoencoder(藍色虛線框部分)、GAN(綠色虛線框部分)和圖表征(紅色虛線框部分)。下面分別介紹這三個部分。


Autoencoder

該部分包含兩個函數,編碼函數fφ(·)和解碼函數hΨ(·)。編碼函數將輸入映射到一個低維空間上,而解碼函數則可以通過低維向量反推出原輸入。Autoencoder的目標就是輸入(x)經過編碼和解碼之后,輸出(hΨ(fφ(x)))和輸入(x)盡可能的接近。假設Pdata為數據的真實分布,那么Autoencoder的目標函數則為


其中,距離函數采用交叉熵定義,即


值得一提的是,本文采用LSTM模型作為編碼器,主要是因為LSTM模型對于序列型輸入的有效處理能夠使得由隨機游走產生的節點序列被最好的表達。


GAN

圖中綠色框線中即為GAN模型的圖示。


生成器gθ(·)嘗試從噪音中產生離真實數據分布盡可能接近的數據,而判別器dw(x)則會計算輸入x來自真實樣本的概率。假設真實樣本分布為Pdata(x),而生成器采用分布為Pg(z),那么GAN模型中


這里的真實樣本即為上面的Autoencoder中的編碼器Encoder所產生的低維向量,所以當我們對GAN進行訓練時,同時也將正負樣本之間的差異反饋給Encoder,從而使得1)Encoder需要提取更有效的代表節點的信息以區分偽樣本;2)Encoder需要避免過擬合,以免太容易被生成器學習。


Network Embedding

Autoencoder通過隨機游走抽樣網絡中路徑來獲得節點與節點在整體網絡上的結構信息,而Network Embedding這一部分則通過保留節點與節點之間的邊信息來獲得local的連接關系。這里Embedding的函數仍然是Autoencoder中的編碼器,即fφ(·)。通過最小化下面這個函數使得編碼器編碼出的向量能夠保證有邊連接的節點的低維表達是接近的:

這里?φij?表示節點i與j之間是否有連邊,有為1,沒有則為0.


有了前面三部分的介紹,整體NetRA模型優化的函數則可以寫為


這里LAE表示Autoencoder學習的目標,LLE和W分別是Network Embedding和GAN模型所承擔的正則項,用來保證編碼器的結果可以保留網絡中的邊信息以及防止過擬合。


NetRA模型的訓練過程為:

  • 給定一個網絡,通過隨機游走獲得一些長度為l的路徑。將這些路徑中的節點通過one-hot encoding構建特征序列輸入LSTM模型產生Encoder的輸出,即節點的向量表征。

  • 將這些向量表征輸入Decoder函數,得到解碼的特征向量。通過計算這些解碼的特征向量與原始特征向量求交叉熵損失來更新Autoencoder的參數。

  • 同時,Network Embedding保證相鄰的節點的編碼向量互相接近。

  • 另外,將編碼的向量與GAN模型中的生成器產生的向量分別作為正負樣本去訓練判別器。

  • 最終的節點向量表征幾時編碼器產生的結果。

可以看見,NetRA模型并不僅僅是一個GAN模型的結構,而是將GAN模型當做正則項的一部分嵌入整個模型中得到節點的表征。這里為我們對GAN模型的應用提供了一個不同的思路。


小結

本文介紹了生成對抗網絡模型在圖表征學習中的基本方法(GraphGAN)、在社區發現任務中的應用(CommunityGAN)以及作為模型的正則項構建更復雜的圖表征模型(NetRA)。基于GAN模型或者說對抗學習思路在圖表征學習當中的 研究還有很多,本文僅僅拋磚引玉的調研了三種比較常見的使用場景。這里是一個圖神經網絡相關論文的集錦,可以看到圖神經網絡在近兩年受到很多的關注。


除了同學、同事、親人這樣的親密關系,微信上我們還加了許多房產中介、招聘HR、商品經銷商等等非親密關系的好友。我們和非親密關系的好友之間的邊被稱為weak ties(弱關系)。我們團隊針對關系鏈的畫像任務中,不僅僅挖掘出強關系,還找到了微信網絡中的弱關系。


參考文獻

[1] Wang etc.?GraphGAN: Graph Representation Learning with Generative Adversarial Nets. AAAI'18.

[2] Jia etc.?CommunityGAN: Community Detection with Generative Adversarial Nets. WWW'19.

[3] Yu etc. Learning Deep Network Representations with Adversarially Regularized Autoencoders. KDD'18.


總結

以上是生活随笔為你收集整理的综述 | 生成对抗网络(GAN)在图网络中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。