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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成

發布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文使用 Zhihu On VSCode 創作并發布

Paper | Code

本文一作實在是太大佬了,讓我和小伙伴焦慮了好一陣子。作者主頁送你們,將這份焦慮傳遞下去。

Introduction

圖生成有很多用處

  • 建模physical and social interactions
  • 發現新的化學和分子結構
  • 構建知識圖譜
  • 本文摘要直接指出了圖生成問題的難點

    圖生成模型需要學習到圖的結構分布,然而圖具有非唯一 (non-unique)高維以及給定圖的邊之間存在復雜、非局部的依存關系

    因此直接對復雜的圖分布直接進行建模,并從這些分布中進行有效采樣是一項挑戰。

    目前,圖生成面臨的挑戰有:

  • 要讓模型在沒有圖結構假設的情況下,從一組觀察到的圖中直接學習生成模型;
  • 具備從多個圖以及大圖中學習生成的能力;
  • Large and variable output spaces: 個節點的圖需要輸出的值才能完整表示,且每個圖的邊和節點也不是固定的數值;
  • Non-unique representations:如果我們想學習一個有 個節點的圖的結構,然而它最多可以表示為 個等效鄰接矩陣,這會讓訓練變得很難。
  • Complex dependencies:很明顯,圖中的邊關系不可能簡單地看作相互獨立的,它們之間有復雜的依存關系。
  • GraphRNN

    為解決上述問題,本文提出了 GraphRNN,以 autoregressive (or recurrent) 作為一系列新節點和邊的添加方式繪制 graph,來捕獲圖中所有節點和邊的復雜聯合概率

    GraphRNN 可以視作一種級聯形式,由兩個RNN組成:

  • graph-level RNN:維護圖的狀態并生成新節點;
  • edge-level RNN:為新生成的節點生成新的邊。
  • 符號定義

    GraphRNN 思路

    Key Idea將不同節點順序下的圖表示為序列,并在這些序列上構建一個自回歸的生成模型。

    將graph建模成序列

    定義從graphs到sequences的映射

    其中,每個元素

    表示節點和先前所有節點之間的邊的鄰接向量 (如圖一,注意下面的向量依次對應右上方的graph)。

    由此,

    的序列就可以表示整個無向圖,這里用一個反向的映射表示

    在此基礎上,對于圖分布

    的學習就可以轉化為聯合分布 的邊緣分布:

    這時,我們只需要學習

    就可以了。由于它又是個序列模型,所以可以分解為條件分布的乘積:

    定義最后一個元素

    為序列終止 EOS。

    GraphRNN 框架

    即使

    被分解成了 ,這仍然很棘手。因為它需要在之前的節點的連接基礎上,得到節點 如何與之前的節點連接。這又是一個復雜的概率關系,本文打算用RNN來建模這種關系,包含狀態轉移函數輸出函數

    • 是一個編碼了到目前為止生成的圖的狀態的向量;
    • 是最近一個生成節點的鄰接向量;
    • 指定了下一個節點鄰接向量的分布 。

    文中指出,

    可以用任意神經網絡表示(本文開源代碼用了兩個GRU)。 也可以是任意形態分布。

    算法總結為:

    利用 BFS 處理變長度的序列

    由于RNNs需要固定長度的輸入向量,然而

    的長度是隨著 i 變化的,因此本文旨在利用 BFS (廣度優先搜索) 的節點序列,而不是任意節點序列,來學習圖的生成。這樣做的好處,據說是不是一般性?

    將式1改為

    BFS 以一個隨機順序

    為輸入,將 作為起點,按照 中的先后順序將它的鄰居依次添加到 BFS 隊列中。

    好處如下:

    • BFS 是一對多的,一個 BFS 序列可以轉化為多個節點排序。因此我們需要訓練的數量少了。

    • BFS排序通過減少 edge-level RNN 中進行的邊緣預測的數量,來使學習變得更容易。因為如果我們新加入一個節點,那么它的連接邊只能處在BFS搜索前沿的節點(當搜索完成時,可以想象成樹的葉子節點)定義描述就是:

      Proposition 1. Suppose

      is a BFS ordering of nodes in graph , and but for some then and

      這個性質是我們可以將可變長度的

      定義為固定長度的 M 維向量,表示節點 與當前BFS隊列中最大大小為M的節點之間的連通性:

      至于這個 M 怎么去估計,見本文附錄吧。

    擴展到具有節點、邊特征的Graph

    GraphRNN可以擴展到具有節點和邊特征的Graph生成,在節點順序

    下,圖 與它的節點特征矩陣 和邊特征矩陣 相關聯。因此,可以將 的定義擴展為 。在 模塊,用一個 MLP 來生成 ,edge-level RNN 來生成 。

    作者的開源代碼好像并沒有這部分,我已經在github上發了issues。

    總結

    以上是生活随笔為你收集整理的序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成的全部內容,希望文章能夠幫你解決所遇到的問題。

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