圖神經網絡(GNN)已經在許多具有挑戰性的應用中展示了優越的性能,包括小樣本學習任務。盡管GNN具有強大的從少量樣本中學習和歸納的能力,但隨著模型的深入,GNN通常會出現嚴重的過擬合和過平滑問題,這限制了模型的可擴展性。在這項工作中,我們提出了一個新的注意力GNN來解決這些挑戰,通過合并三重注意機制,即節點自我注意,鄰居注意和層記憶注意力。我們通過理論分析和實例說明了所提出的注意模塊可以改善小樣本學習的GNN的原因。廣泛的實驗表明,在mini-ImageNet 和Tiered-ImageNet數據集上,通過誘導和直推設置,提出的注意力GNN在小樣本學習方面優于基于最先進的GNN方法。
簡介
本文研究如何利用圖生成作為自監督任務來預訓練GNN。我們將圖的生成概率分解成兩個模塊:1)節點特征生成;2)圖結構生成。通過對這兩個模塊建模,GPT-GNN可以捕捉圖任務里特征與結構之間的關聯,從而不需要很多的標注數據就可達到很高的泛化性能。
背景:預訓練
機器學習的成功很大程度上取決于數據。但是,高質量的標記數據通常很昂貴且難以獲得,尤其是對于希望訓練參數較多的模型。而相對應的,我們卻可以很容易地獲取大量的無標記數據,其數量可以是標記數據的數千倍。 例如,在社交網絡上進行異常檢測時,惡意帳戶的標注需要依賴于專家知識,數量較小,而整個網絡的規模卻可以達到十億規模。
為了解決標注數據較少,盡可能利用其無標注數據,一個常規的做法是自監督的預訓練(self-supervisedpre-training)。其目標是設計合理的自監督任務,從而使模型能從無標注數據里學得數據的信息,作為初始化遷移到下游任務中。由于目標任務中很多的知識已經在預訓練中學到,因此通過預訓練,我們只需要非常少量的標注數據,就能得到較好的泛化性能。
在NLP領域,BERT及其變種的取得了巨大的成功,證明了語言模型作為一個自監督任務,可以幫助訓練非常深的Transformer模型,以捕捉語言的底層知識,如語法、句法、詞義等。同樣,在CV領域,最近的工作如SimCLR也顯示出通過對比學習(Contrastive Learning) 對ResNet進行預訓練也可以顯著提升泛化性能。這些成功表明,無標注數據本身包含豐富的語義知識,因此如果通過預訓練可以使模型能捕捉無標注數據的分布,就能作為初始化幫助一系列下游任務。
受到這些工作的啟發,我們思考能否將預訓練的想法運用到圖數據分析中。本工作就致力于預訓練圖神經網絡,以期GNN能夠學習到圖數據的結構和特征信息,從而能幫助標注數據較少的下游任務。
GPT-GNN模型
要在圖數據上做預訓練,第一個問題是:如何設計合適的無監督學習任務?
本工作提出用生成模型來對圖分布進行建模,即逐步預測出一個圖中一個新節點會有哪些特征、會和圖中哪些節點相連。
由于我們想同時捕獲屬性和結構信息,因此需要將每個節點的條件生成概率分解為兩項,特征生成與圖結構生成。對每一個節點,我們會先掩蓋其特征及部分邊,僅提供剩下的部分作為已經觀測到的邊。
在第一步中,我們將通過已經觀測到的邊,預測該節點的特征,
在第二步中,我們將通過已經觀測到的邊,以及預測出的特征,來預測剩下的邊。
我們可以寫出對應的分解表達式。從理論上,這個目標的期望等同于整個圖的生成概率。
為了并行高效地計算每個節點的loss,避免信息泄露(如節點特征預測的時候如何避免看到該節點自己的輸入特征),以及處理大圖和增加負樣本采樣的準確性,我們做了很多的模型設計。詳見文章。
實驗
我們在兩個大規模異構網絡和一個同構網絡上進行了實驗。
第一個異構圖是MicrosoftAcademic Graph(OAG),其中包含超過2億個節點和23億條邊。另一個是AmazonRecommendation數據集。
總體而言,我們提出的GPT-GNN在不同的實驗設定下顯著提高下游任務的性能,平均能達到9.1%的性能提升。
我們還評估了在不同百分比的標記數據下,GPT-GNN是否依然能取得提升。我們可以看到,使用GPT預訓練時,僅使用20%標簽數據的模型性能就會比使用100%數據進行直接監督學習的模型性能更高。這顯示了預訓練的有效性,尤其是在標簽稀缺時。
【導讀】 GAT并非是基于譜域方法的圖神經模型,GAT利用節點的空間鄰域信息來學習節點的特征表示,這與基于譜域方法的GCN恰恰相反。在本教程中,我們將手把手教你如何構建基于Tensorflow的GAT模型在Cora數據集上實現節點分類任務。
系列教程《GNN-algorithms》
本文為系列教程《GNN-algorithms》中的內容,該系列教程不僅會深入介紹GNN的理論基礎,還結合了TensorFlow GNN框架tf_geometric對各種GNN模型(GCN、GAT、GIN、SAGPool等)的實現進行了詳細地介紹。本系列教程作者王有澤(//github.com/wangyouze)也是tf_geometric框架的貢獻者之一。
系列教程《GNN-algorithms》Github鏈接: *
TensorFlow GNN框架tf_geometric的Github鏈接: *
前序講解:
前言
Graph Attention Networks(GAT)發表在ICLR2018上,利用masked self-attention 來學習中心節點與鄰居節點之間的注意力權重,根據權重大小聚合鄰居節點的空間信息來更新中心節點的特征表示,從而解決了基于卷積或者多項式近似卷積核等方法的固有缺陷。本教程將從具體實現的角度帶你一起深入了解GAT。
GAT簡介
GCN通過圖的拉普拉斯矩陣來聚合鄰居節點的特征信息,這種方式和圖本身的結構緊密相關,這限制了GCN在訓練時未見的圖結構上的泛化能力。GAT利用注意力機制來對鄰居節點特征加權求和,從而聚合鄰域信息,完全擺脫了圖結構的束縛,是一種歸納式學習方式。 GAT中的attention是self-attention,即Q(Query),K(Key),V(value)三個矩陣均來自統一輸入。和所有的Attention機制一樣,GAT的計算也分兩步走: 1. 計算注意力系數。
對于中心節點,我們需要逐個計算它與鄰居節點之間的注意力系數:
首先對節點特征進行變換或者說是增加維度(常見的特征增強手段),然后將變換后的中心節點特征逐個與其鄰居節點特征拼接后輸入一個單層的神經網絡a,所得結果就是中心節點與該鄰居節點之間的注意力系數,當然,注意力系數還需要經過softmax歸一化,將其轉換為概率分布。 具體來說我們在實現過程中首先計算了中心節點Q向量與其鄰居節點K向量之間的點乘,然后為了防止其結果過大,會除以一個尺度 ,其中
為Query或者Key向量的維度。公式表示為:
通過加權求和的方式聚合節點信息。
利用上面計算所得的注意力系數對鄰居節點的特征V進行線性組合作為中心節點的特征表示:
俗話說“一個籬笆三個樁,一個好漢三個幫”,GAT也秉承了這種思想,采用多頭注意力機制(multi-head attention)來捕獲鄰居節點在不同的方面對中心節點影響力的強弱。我們將K 個head分別提取的節點特征表示進行拼接作為最終的節點表示:
我們可以看出GAT中的節點信息更新過程中是逐點運算的,每一個中心節點只與它的鄰居節點有關,參數a和W也只與節點特征相關,與圖結構無關。改變圖的結構只需要改變節點的鄰居關系 重新計算,因此GAT與GraphSAGE一樣都適用于inductive任務。而大名鼎鼎的GCN在節點特征的每一次更新上都需要全圖參與,學習到的參數也很大程度上與圖結構有關,因此GCN在inductive任務上不給力了。 GNN引入Attention機制有三大好處:
教程代碼下載鏈接:
GAT論文地址: 文獻參考:
教程目錄
開發環境 * GAT的實現 * 模型構建 * GAT訓練 * GAT評估
開發環境
操作系統: Windows / Linux / Mac OS
Python 版本: >= 3.5 * 依賴包: * tf_geometric(一個基于Tensorflow的GNN庫) 根據你的環境(是否已安裝TensorFlow、是否需要GPU)從下面選擇一條安裝命令即可一鍵安裝所有Python依賴:
pip install -U tf_geometric # 這會使用你自帶的TensorFlow,注意你需要tensorflow/tensorflow-gpu >= 1.14.0 or >= 2.0.0b1
pip install -U tf_geometric[tf1-cpu] # 這會自動安裝TensorFlow 1.x CPU版
pip install -U tf_geometric[tf1-gpu] # 這會自動安裝TensorFlow 1.x GPU版
pip install -U tf_geometric[tf2-cpu] # 這會自動安裝TensorFlow 2.x CPU版
pip install -U tf_geometric[tf2-gpu] # 這會自動安裝TensorFlow 2.x GPU版
教程使用的核心庫是tf_geometric,一個基于TensorFlow的GNN庫。tf_geometric的詳細教程可以在其Github主頁上查詢:
GAT的實現
首先添加自環,即添加節點自身之間的連接邊,這樣中心節點在稍后的特征更新中也會計算自己原先的特征。
num_nodes = x.shape[0]`
`` # self-attention`` edge_index, edge_weight = add_self_loop_edge(edge_index, num_nodes)`
row為中心節點序列,col為一階鄰居節點序列
row, col = edge_index
將節點特征向量X通過不同的變換得到Q(Query),K(Key)和V(value)向量。通過tf.gather得到中心節點的特征向量Q和相應的鄰居節點的特征向量K。
Q = query_activation(x @ query_kernel + query_bias)` Q = tf.gather(Q, row)``
`` K = key_activation(x @ key_kernel + key_bias)`` K = tf.gather(K, col)``
`` V = x @ kernel`
由于是multi-head attention,所以Q,K,V也需要劃分為num_heads份,即每一個head都有自己相應的Q,K,V。相應的,為了計算方便,將圖節點連接關系矩陣也進行擴展,每一個head都要對應整個graph。最后將Q,K矩陣相乘(每一個中心節點的特征向量與其鄰居節點的特征向量相乘)得到的attention_score,通過segmen_softmax進行歸一化操作。
# xxxxx_ denotes the multi-head style stuff` Q_ = tf.concat(tf.split(Q, num_heads, axis=-1), axis=0)`` K_ = tf.concat(tf.split(K, num_heads, axis=-1), axis=0)`` V_ = tf.concat(tf.split(V, num_heads, axis=-1), axis=0)`` edge_index_ = tf.concat([edge_index + i * num_nodes for i in range(num_heads)], axis=1)``
`` att_score_ = tf.reduce_sum(Q_ * K_, axis=-1)`` normed_att_score_ = segment_softmax(att_score_, edge_index_[0], num_nodes * num_heads)`
將歸一化后的attention系數當做邊的權重來對鄰居節點進行加權求和操作,從而更新節點特征。由于是multi-head attention,所以將同一個節點在每一個attention下的節點特征拼接輸出。
h_ = aggregate_neighbors(` V_, edge_index_, normed_att_score_,`` gcn_mapper,`` sum_reducer,`` identity_updater`` )``
`` h = tf.concat(tf.split(h_, num_heads, axis=0), axis=-1)``
`` if bias is not None:`` h += bias``
`` if activation is not None:`` h = activation(h)``
`` return h`
模型構建
導入相關庫 本教程使用的核心庫是tf_geometric,我們用它來進行圖數據導入、圖數據預處理及圖神經網絡構建。GAT的具體實現已經在上面詳細介紹,另外我們后面會使用keras.metrics.Accuracy評估模型性能。 * * * * * *
# coding=utf-8`import os``os.environ["CUDA_VISIBLE_DEVICES"] = "0"``import tf_geometric as tfg``import tensorflow as tf``from tensorflow import keras`
使用tf_geometric自帶的圖結構數據接口加載Cora數據集:``` graph, (train_index, valid_index, test_index) = CoraDataset().load_data()
*
定義圖模型。我們構建兩層GAT,即GAT只聚合2-hop的鄰居特征,Dropout層用來緩解模型過擬合(小數據集上尤其)。```
gat0 = tfg.layers.GAT(64, activation=tf.nn.relu, num_heads=8, drop_rate=drop_rate, attention_units=8)
gat1 = tfg.layers.GAT(num_classes, drop_rate=0.6, attention_units=1)
dropout = keras.layers.Dropout(drop_rate)
def forward(graph, training=False):
h = graph.x
h = dropout(h, training=training)
h = gat0([h, graph.edge_index], training=training)
h = dropout(h, training=training)
h = gat1([h, graph.edge_index], training=training)
return h
GAT訓練
模型的訓練與其他基于Tensorflow框架的模型訓練基本一致,主要步驟有定義優化器,計算誤差與梯度,反向傳播等。
optimizer = tf.keras.optimizers.Adam(learning_rate=5e-3)`for step in range(2000):`` with tf.GradientTape() as tape:`` logits = forward(graph, training=True)`` loss = compute_loss(logits, train_index, tape.watched_variables())``
`` vars = tape.watched_variables()`` grads = tape.gradient(loss, vars)`` optimizer.apply_gradients(zip(grads, vars))``
`` if step % 20 == 0:`` accuracy = evaluate()`` print("step = {}\tloss = {}\taccuracy = {}".format(step, loss, accuracy))`
用交叉熵損失函數計算模型損失。注意在加載Cora數據集的時候,返回值是整個圖數據以及相應的train_mask,valid_mask,test_mask。GAT在訓練的時候的輸入是整個Graph,在計算損失的時候通過train_mask來計算模型在訓練集上的迭代損失。因此,此時傳入的mask_index是train_index。由于是多分類任務,需要將節點的標簽轉換為one-hot向量以便于模型輸出的結果維度對應。由于圖神經模型在小數據集上很容易就會瘋狂擬合數據,所以這里用L2正則化緩解過擬合。``` def compute_loss(logits, mask_index, vars): masked_logits = tf.gather(logits, mask_index) masked_labels = tf.gather(graph.y, mask_index) losses = tf.nn.softmax_cross_entropy_with_logits( logits=masked_logits, labels=tf.one_hot(masked_labels, depth=num_classes) )
kernel_vals = [var for var in vars if "kernel" in var.name] l2_losses = [tf.nn.l2_loss(kernel_var) for kernel_var in kernel_vals]
return tf.reduce_mean(losses) + tf.add_n(l2_losses) * 5e-4
**GAT評估**
***
在評估模型性能的時候我們只需傳入valid_mask或者test_mask,通過tf.gather函數就可以拿出驗證集或測試集在模型上的預測結果與真實標簽,用keras自帶的keras.metrics.Accuracy計算準確率。```
def evaluate(mask):
logits = forward(graph)
logits = tf.nn.log_softmax(logits, axis=-1)
masked_logits = tf.gather(logits, mask)
masked_labels = tf.gather(graph.y, mask)
y_pred = tf.argmax(masked_logits, axis=-1, output_type=tf.int32)
accuracy_m = keras.metrics.Accuracy()
accuracy_m.update_state(masked_labels, y_pred)
return accuracy_m.result().numpy()
運行結果
運行結果與論文中結果一致
step = 20 loss = 1.784507393836975 accuracy = 0.7839999794960022
step = 40 loss = 1.50897 accuracy = 0.800000011920929
step = 60 loss = 1.2436 accuracy = 0.84175
...
step = 1120 loss = 0.8608425855636597 accuracy = 0.80208
step = 1140 loss = 0.87129 accuracy = 0.80224
step = 1160 loss = 0.75888 accuracy = 0.80224
step = 1180 loss = 0.8362383842468262 accuracy = 0.8009999990463257
完整代碼
教程中完整代碼鏈接:demo_gat.py:教程代碼下載鏈接:
本教程(屬于系列教程**《GNN-algorithms》**)Github鏈接: *
小樣本學習(FSL)近年來引起了越來越多的關注,但仍然具有挑戰性,因為學習從少數例子中歸納的固有困難。本文提出了一種自適應間隔原則,以提高基于度量的元學習方法在小樣本學習問題中的泛化能力。具體地說,我們首先開發了一個與類相關的加性邊緣損失算法,該算法考慮了每對類之間的語義相似性,從而將特征嵌入空間中的樣本從相似的類中分離出來。此外,我們在抽樣訓練任務中加入所有類別之間的語義上下文,并開發了與任務相關的附加間隔損失,以更好地區分不同類別的樣本。我們的自適應間隔方法可以很容易地推廣到更現實的廣義FSL設置。大量的實驗表明,在標準FSL和通用FSL設置下,所提出的方法可以提高現有基于度量的元學習方法的性能。
在多標簽文本分類(MLTC)中,一個樣本可以屬于多個類。可以看出,在大多數MLTC任務中,標簽之間存在依賴關系或相互關系。現有的方法往往忽略了標簽之間的關系。本文提出了一種基于圖的注意力網絡模型來捕獲標簽間的注意依賴結構。圖注意力網絡使用一個特征矩陣和一個相關矩陣來捕獲和探索標簽之間的關鍵依賴關系,并為任務生成分類器。將生成的分類器應用于文本特征提取網絡(BiLSTM)獲得的句子特征向量,實現端到端訓練。注意力允許系統為每個標簽分配不同的權值給相鄰節點,從而允許系統隱式地學習標簽之間的依賴關系。在5個實際的MLTC數據集上驗證了模型的結果。與以往的先進模型相比,該模型具有相似或更好的性能。
圖神經網絡是解決各種圖學習問題的有效的機器學習模型。盡管它們取得了經驗上的成功,但是GNNs的理論局限性最近已經被揭示出來。因此,人們提出了許多GNN模型來克服這些限制。在這次調查中,我們全面概述了GNNs的表達能力和可證明的強大的GNNs變體。
1、Approximation Ratios of Graph Neural Networks for Combinatorial Problems
作者:Ryoma Sato, Makoto Yamada, Hisashi Kashima;
摘要:本文從理論的角度研究了圖神經網絡(GNNs)在學習組合問題近似算法中的作用。為此,我們首先建立了一個新的GNN類,它可以嚴格地解決比現有GNN更廣泛的問題。然后,我們彌合了GNN理論和分布式局部算法理論之間的差距,從理論上證明了最強大的GNN可以學習最小支配集問題的近似算法和具有一些近似比的最小頂點覆蓋問題比率,并且沒有GNN可以執行比這些比率更好。本文首次闡明了組合問題中GNN的近似比。此外,我們還證明了在每個節點特征上添加著色或弱著色可以提高這些近似比。這表明預處理和特征工程在理論上增強了模型的能力。
網址://www.zhuanzhi.ai/paper/9cad40c81920dfd71fa91e4ddf778616
2、D-VAE: A Variational Autoencoder for Directed Acyclic Graphs
作者:Muhan Zhang, Shali Jiang, Zhicheng Cui, Roman Garnett, Yixin Chen;
摘要:圖結構數據在現實世界中是豐富的。在不同的圖類型中,有向無環圖(DAG)是機器學習研究人員特別感興趣的,因為許多機器學習模型都是通過DAG上的計算來實現的,包括神經網絡和貝葉斯網絡。本文研究了DAG的深度生成模型,提出了一種新的DAG變分自編碼器(D-VAE)。為了將DAG編碼到潛在空間中,我們利用了圖神經網絡。我們提出了一個異步消息傳遞方案,它允許在DAG上編碼計算,而不是使用現有的同步消息傳遞方案來編碼局部圖結構。通過神經結構搜索和貝葉斯網絡結構學習兩項任務驗證了該方法的有效性。實驗表明,該模型不僅生成了新穎有效的DAG,還可以生成平滑的潛在空間,有助于通過貝葉斯優化搜索具有更好性能的DAG。
網址:
3、End to end learning and optimization on graphs
作者:Bryan Wilder, Eric Ewing, Bistra Dilkina, Milind Tambe;
摘要:在實際應用中,圖的學習和優化問題常常結合在一起。例如,我們的目標可能是對圖進行集群,以便檢測有意義的社區(或者解決其他常見的圖優化問題,如facility location、maxcut等)。然而,圖或相關屬性往往只是部分觀察到,引入了一些學習問題,如鏈接預測,必須在優化之前解決。我們提出了一種方法,將用于常見圖優化問題的可微代理集成到用于鏈接預測等任務的機器學習模型的訓練中。這允許模型特別關注下游任務,它的預測將用于該任務。實驗結果表明,我們的端到端系統在實例優化任務上的性能優于將現有的鏈路預測方法與專家設計的圖優化算法相結合的方法。
網址:
4、Graph Neural Tangent Kernel: Fusing Graph Neural Networks with Graph Kernels
作者:Simon S. Du, Kangcheng Hou, Barnabás Póczos, Ruslan Salakhutdinov, Ruosong Wang, Keyulu Xu;
摘要:雖然圖內核(graph kernel,GK)易于訓練并享有可證明的理論保證,但其實際性能受其表達能力的限制,因為內核函數往往依賴于圖的手工組合特性。與圖內核相比,圖神經網絡通常具有更好的實用性能,因為圖神經網絡使用多層結構和非線性激活函數來提取圖的高階信息作為特征。然而,由于訓練過程中存在大量的超參數,且訓練過程具有非凸性,使得GNN的訓練更加困難。GNN的理論保障也沒有得到很好的理解。此外,GNN的表達能力隨參數的數量而變化,在計算資源有限的情況下,很難充分利用GNN的表達能力。本文提出了一類新的圖內核,即圖神經切線核(GNTKs),它對應于通過梯度下降訓練的無限寬的多層GNN。GNTK充分發揮了GNN的表現力,繼承了GK的優勢。從理論上講,我們展示了GNTK可以在圖上學習一類平滑函數。根據經驗,我們在圖分類數據集上測試GNTK并展示它們實現了強大的性能。
網址:
5、HyperGCN: A New Method of Training Graph Convolutional Networks on Hypergraphs
作者:Naganand Yadati, Madhav Nimishakavi, Prateek Yadav, Vikram Nitin, Anand Louis, Partha Talukdar;
摘要:在許多真實世界的網絡數據集中,如co-authorship、co-citation、email communication等,關系是復雜的,并且超越了成對關聯。超圖(Hypergraph)提供了一個靈活而自然的建模工具來建模這種復雜的關系。在許多現實世界網絡中,這種復雜關系的明顯存在,自然會激發使用Hypergraph學習的問題。一種流行的學習范式是基于超圖的半監督學習(SSL),其目標是將標簽分配給超圖中最初未標記的頂點。由于圖卷積網絡(GCN)對基于圖的SSL是有效的,我們提出了HyperGCN,這是一種在超圖上訓練用于SSL的GCN的新方法。我們通過對真實世界超圖的詳細實驗證明HyperGCN的有效性,并分析它何時比最先進的baseline更有效。
網址:
6、Social-BiGAT: Multimodal Trajectory Forecasting using Bicycle-GAN and Graph Attention Networks
作者:Vineet Kosaraju, Amir Sadeghian, Roberto Martín-Martín, Ian Reid, S. Hamid Rezatofighi, Silvio Savarese;
摘要:從自動駕駛汽車和社交機器人的控制到安全監控,預測場景中多個交互主體的未來軌跡已成為許多不同應用領域中一個日益重要的問題。這個問題由于人類之間的社會互動以及他們與場景的身體互動而變得更加復雜。雖然現有的文獻探索了其中的一些線索,但它們主要忽略了每個人未來軌跡的多模態性質。在本文中,我們提出了一個基于圖的生成式對抗網絡Social-BiGAT,它通過更好地建模場景中行人的社交互來生成真實的多模態軌跡預測。我們的方法是基于一個圖注意力網絡(GAT)學習可靠的特征表示(編碼場景中人類之間的社會交互),以及一個反方向訓練的循環編解碼器體系結構(根據特征預測人類的路徑)。我們明確地解釋了預測問題的多模態性質,通過在每個場景與其潛在噪聲向量之間形成一個可逆的變換,就像在Bicycle-GAN中一樣。我們表明了,與現有軌跡預測基準的幾個baseline的比較中,我們的框架達到了最先進的性能。
網址:
7、Scalable Gromov-Wasserstein Learning for Graph Partitioning and Matching
作者:Hongteng Xu, Dixin Luo, Lawrence Carin;
摘要:我們提出了一種可擴展的Gromov-Wasserstein learning (S-GWL) 方法,并建立了一種新的、理論支持的大規模圖分析范式。該方法基于Gromov-Wasserstein discrepancy,是圖上的偽度量。給定兩個圖,與它們的Gromov-Wasserstein discrepancy相關聯的最優傳輸提供了節點之間的對應關系,從而實現了圖的匹配。當其中一個圖具有獨立但自連接的節點時(即,一個斷開連接的圖),最優傳輸表明了其他圖的聚類結構,實現了圖的劃分。利用這一概念,通過學習多觀測圖的Gromov-Wasserstein barycenter圖,將該方法推廣到多圖的劃分與匹配; barycenter圖起到斷開圖的作用,因為它是學習的,所以聚類也是如此。該方法將遞歸K分割機制與正則化近似梯度算法相結合,對于具有V個節點和E條邊的圖,其時間復雜度為O(K(E+V) logk V)。據我們所知,我們的方法是第一次嘗試使Gromov-Wasserstein discrepancy適用于大規模的圖分析,并將圖的劃分和匹配統一到同一個框架中。它優于最先進的圖劃分和匹配方法,實現了精度和效率之間的平衡。
網址:
8、Universal Invariant and Equivariant Graph Neural Networks
作者:Nicolas Keriven, Gabriel Peyré;
摘要:圖神經網絡(GNN)有多種形式,但應該始終是不變的(輸入圖節點的排列不會影響輸出)或等變的(輸入的排列置換輸出)。本文考慮一類特殊的不變和等變網絡,證明了它的一些新的普適性定理。更確切地說,我們考慮具有單個隱藏層的網絡,它是通過應用等變線性算子、點態非線性算子和不變或等變線性算子形成的信道求和而得到的。最近,Maron et al. (2019b)指出,通過允許網絡內部的高階張量化,可以獲得通用不變的GNN。作為第一個貢獻,我們提出了這個結果的另一種證明,它依賴于實值函數代數的Stone-Weierstrass定理。我們的主要貢獻是將這一結果推廣到等變情況,這種情況出現在許多實際應用中,但從理論角度進行的研究較少。證明依賴于一個新的具有獨立意義的廣義等變函數代數Stone-Weierstrass定理。最后,與以往許多考慮固定節點數的設置不同,我們的結果表明,由一組參數定義的GNN可以很好地近似于在不同大小的圖上定義的函數。
網址:
1、DeepGCNs:Can GCNs Go as Deep as CNNs
作者:Guohao Li , Matthias Müller , Ali Thabet Bernard Ghanem;
摘要:卷積神經網絡(CNNs)在廣泛的領域中取得了令人印象深刻的性能。他們的成功得益于一個巨大的推動,當非常深入的CNN模型能夠可靠的訓練。盡管CNNs有其優點,但它不能很好地解決非歐幾里德數據的問題。為了克服這一挑戰,圖形卷積網絡(GCNS)構建圖形來表示非歐幾里德數據,借用CNNs的概念,并將它們應用于訓練。GCNs顯示出有希望的結果,但由于消失梯度問題,它們通常僅限于非常淺的模型(見圖1)。因此,最先進的GCN模型不超過3層或4層。在這項工作中,我們提出了新的方法來成功地訓練非常深的GCNs。我們通過借鑒CNNs的概念來做到這一點,特別是剩余/密集連接和擴展卷積,并將它們應用到GCN架構中。大量的實驗證明了這些深度GCN框架的積極作用。最后,我們使用這些新的概念來構建一個非常深的56層GCN,并展示了它如何在點云語義分割任務中顯著提升性能(+ 3.7% Miou-Unice狀態)。我們相信公眾可以從這項工作中受益,因為它為推進基于GCN的研究提供了許多機會。
網站: //www.zhuanzhi.ai/paper/c1e02bdee9efe20fd0a53d23883901c3
2、Dynamic Graph Attention for Referring Expression Comprehension
作者:Sibei Yang, Guanbin Li, Yizhou Yu;
摘要:引用表達式理解的目的是在圖像中定位由自然語言描述的對象實例。這項任務是合成的,本質上需要在圖像中對象之間關系的基礎上進行視覺推理。同時,視覺推理過程是由指稱表達式的語言結構來指導的。然而,現有的方法孤立地對待對象,或者只探索對象之間的一階關系,而不與表達式的潛在復雜性對齊。因此,他們很難適應復雜的參考表達的基礎。本文從語言驅動的視覺推理的角度,探討了表達理解的問題,并提出了一種動態圖形注意力網絡,通過對圖像中的對象之間的關系和表達的語言結構進行建模來進行多步推理。特別地,我們構造了具有對應于對象和它們的關系的節點和邊緣的圖像,提出了一種差分分析器來預測語言制導的視覺推理過程,并在圖的頂部執行逐步推理,以更新每個節點上的復合對象表示。實驗結果表明,所提出的方法在三個共同的基準數據集不僅可以顯著超越所有現有的最先進的算法,而且還能產生可解釋的視覺證據,以逐步定位復雜的語言描述的對象。
網址:
3、Understanding Human Gaze Communication by Spatio-Temporal Graph Reasoning
作者:Lifeng Fan, Wenguan Wang, Siyuan Huang, Xinyu Tang, Song-Chun Zhu;
摘要:本文從原子層次和事件層次兩個方面探討了社會視頻中人的注釋交流這一新問題,對研究人類的社會互動具有重要意義。為了解決這一新穎而具有挑戰性的問題,我們貢獻了一個大規模的視頻數據集,VACATION,涵蓋不同的日常社會場景和注釋交流行為,并在原子級和事件級對物體和人臉、人類注意力、交流結構和標簽進行了完整的注釋。結合VACATION,我們提出了一個時空圖神經網絡,明確地表示社會場景中不同的注釋交互,并通過消息傳遞來推斷原子級的注視交流。在此基礎上,進一步提出了一種基于編碼-解碼器結構的事件網絡來預測事件級注視通信。我們的實驗表明,該模型在預測原子級和事件級注釋通信時顯著地改進了各種基線。
網址:
4、SceneGraphNet Neural Message Passing for 3D Indoor Scene Augmentation
作者:Yang Zhou, Zachary While, Evangelos Kalogerakis;
摘要:在本文中,我們提出了一種神經消息傳遞方法,以增加輸入三維室內場景中與周圍環境匹配的新對象。給定一個輸入,可能是不完整的,三維場景和一個查詢位置(圖1),我們的方法預測在該位置上適合的對象類型上的概率分布。我們的分布是通過在稠密圖中傳遞學習信息來預測的,其節點表示輸入場景中的對象,并且邊緣表示空間和結構關系。通過一個注意力機制對消息進行加權,我們的方法學會將注意力集中在最相關的周圍場景上下文,從而預測新的場景對象。基于我們在SUNCG數據集中的實驗,我們發現我們的方法在正確預測場景中丟失的對象方面明顯優于最先進的方法。我們還演示了我們的方法的其他應用,包括基于上下文的3D對象識別和迭代場景生成。
網址:
5、Language-Conditioned Graph Networks for Relational Reasoning
作者:Ronghang Hu, Anna Rohrbach, Trevor Darrell, Kate Saenko ;
摘要:解決基于語言任務通常需要對給定任務上下文中對象之間的關系進行推理。例如,要回答盤子上的杯子是什么顏色??我們必須檢查特定杯子的顏色,以滿足盤子上的關系。最近的工作提出了各種復雜關系推理的方法。然而,它們的能力大多在推理結構上,而場景則用簡單的局部外觀特征來表示。在本文中,我們采取另一種方法,建立一個視覺場景中的對象的上下文化表示,以支持關系推理。我們提出了一個通用的語言條件圖網絡(LCGN)框架,其中每個節點代表一個對象,并通過文本輸入的迭代消息傳遞來描述相關對象的感知表示。例如,調節與plate的on關系,對象mug收集來自對象plate的消息,以將其表示更新為mug on the plate,這可以很容易地被簡單分類器用于答案預測。我們的實驗表明,我們的LCGN方法有效地支持關系推理,并在多個任務和數據集上提高了性能。我們的代碼可以在
網址:
論文題目: Meta-GNN: On Few-shot Node Classification in Graph Meta-learning
摘要: 元學習作為一種模仿人類智能的可能方法,近來受到了極大的關注,即,學習新的知識和技能。現有的元學習方法多用于解決圖像、文本等少數樣本的學習問題,在歐幾里得域比較常見。然而,將元學習應用于非歐幾里得域的研究工作非常少,最近提出的圖神經網絡(GNNs)模型在處理圖少樣本學習問題時表現不佳。為此,我們提出了一種新的圖元學習框架——元GNN,以解決圖元學習環境中節點分類問題。該算法通過對多個相似的少樣本學習任務進行訓練,獲得分類器的先驗知識,然后利用標記樣本數量較少的新類對節點進行分類。此外,Meta-GNN是一個通用模型,可以直接納入任何現有的最先進的GNN。我們在三個基準數據集上的實驗表明,我們的方法不僅在元學習范式中大大提高了節點分類性能,而且為任務適應提供了一個更通用、更靈活的模型。
論文作者: Fan Zhou, Chengtai Cao, Kunpeng Zhang, Goce Trajcevski, Ting Zhong, Ji Geng