10-graph-gen 圖機器學習之圖生成模型


圖深度生成模型 deep generative models for graph

回顧上一節課中的圖編碼,圖卷積等

今天,來學習圖深度解碼,也就是反編碼,最終輸出一個圖結構


Problem of Graph Generation圖生成需要解決的問題
給定一個真實圖,生成一個合成圖
那么,什么才是好的生成模型?

圖生成的意義
生成→深入探索圖行程的過程
異常檢測
預測——從過去預測未來
新網絡的仿真
圖填充
如果。。。場景??
圖生成的任務:
真實圖的生成
目標導向圖的生成,例如分子生成
為什么如此吸引人?
葯物分子發現

發現一個全新的結構
網絡科學:真實網絡的空模型?

圖生成為什么如此有難度:
大的且多變的輸出空間  n^2

非唯一的表達,因為如果輸出是鄰接矩陣,那么根據節點的順序不同,矩陣也是不同的

復雜的依賴→邊的形成有遠程的依賴關系



ML Basics for Graph Generation
圖生成的機器學習基礎

輸入與輸出:
輸入:G
目標:學習G的分布;生成G?
起初:假設我們有圖的數據集{xi}
 p_data(x):數據分布,是未知的,但是我們可以抽樣知道一些
p_model(x;θ) :參數為θ的模型,用於近似 p_data(x)
目標:
p_model(x;θ) 趨近於 p_data(x)
可以從p_model(x;θ)中抽樣,形成新圖

核心思想:最大似然

p_model(x;θ)中抽樣,也就是,輸入一個噪聲,輸出一個近似的網絡。采用神經網絡的方式

深度生成模型的分類,本節采用的是自動回歸模型,該模型是基於過去預測未來
自動回歸模型:
p_model(x;θ)用於密度估計和抽樣
應用鏈式規則:聯合分布是條件分布的積


GraphRNN 生成真實圖譜
與RNN的思想同源,通過節點和邊序列的迭代輸入生成一個圖


那么,首先,需要將圖看做序列
一個圖,當順序固定時,可唯一通過序列標識?

那么,序列有兩個層次:節點層次(添加節點,一個一次);邊層次(從現有節點中添加邊)

總結:一個圖+節點順序=一個序列
節點順序是虛機選擇的

因此,將圖生成,轉變為序列的生成
因此,需要兩個步驟的模型:
生成新節點,生成新邊
方法:使用RNN


GraphRNN:兩個層次的RNN
node-level rnn生成初始狀態,可應用於edge-level rnn
edge-level rnn為新節點生成邊,探后更新node-level rnn的狀態


rnn的基礎


用於序列生成的RNN
如何初始化s0,x1?什么時候停止生成?→使用開始符和結束符

yt=前面t-1個的生成
rnn的每一步都輸出一個概率向量
從該向量中抽樣,並喂入下一步

測試時,

訓練時:y是邊,采用教師模式,即輸入是真實的數據用於修正模型
損失函數:交叉式
訓練的過程
節點1已經在網絡中了,現在添加節點2
edge rnn預測節點1是否與節點2關聯;
edge rnn得到監督結果,並輸入修正;
新的邊用來更新node rnn;
預測節點3與節點2是否關聯
edge rnn得到監督結果,並輸入修正;
新的邊用來更新node rnn;
節點4與其他點不相連,停止生成
回傳,梯度更新
測試
小結:



讓graphrnn更易於管控

每個節點可以跟前面的任一節點相連
邊生成的步驟太多:需生成一個全的鄰接矩陣;負責的過長的邊依賴關系
如何限制復雜度?

解決方案:使用廣度優先,只需要兩步而不是n-1步


如何評估生成的網絡?
定義網絡的相似度量,但沒有有效的網絡同構測試
解決方案:視覺相似度;圖的統計相似度
視覺相似度


Applications and Open Questions
應用於開放問題
葯物發現

基於規則的圖卷積網絡:將圖卷積與強化學習相結合,同時還有對抗訓練













免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM