圖神經網絡入門推薦好文(附GNN大佬資料包下載福利)

今天想和大家分享的是圖卷積神經網絡。隨着人工智能發展,很多人都聽說過機器學習、深度學習、卷積神經網絡這些概念。但圖卷積神經網絡,卻不多人提起。那什麼是圖卷積神經網絡呢?簡單的來說就是其研究的對象是圖數據(Graph),研究的模型是卷積神經網絡。

 

爲什麼有圖卷積神經網絡

自2012年以來,深度學習在計算機視覺以及自然語言處理兩個領域取得了巨大的成功。和傳統方法相比,它好在哪裏呢?

 

假設有一張圖,要做分類,傳統方法需要手動提取一些特徵,比如紋理啊,顏色啊,或者一些更高級的特徵。然後再把這些特徵放到像隨機森林等分類器,給到一個輸出標籤,告訴它是哪個類別。而深度學習是輸入一張圖,經過神經網絡,直接輸出一個標籤。特徵提取和分類一步到位,避免了手工提取特徵或者人工規則,從原始數據中自動化地去提取特徵,是一種端到端(end-to-end)的學習。相較於傳統的方法,深度學習能夠學習到更高效的特徵與模式。

 

卷積神經網絡很好,但是它研究的對象還是限制在Euclidean domains的數據。什麼是Euclidean data?Euclidean data最顯著的特徵就是有規則的空間結構,比如圖片是規則的正方形柵格,比如語音是規則的一維序列。而這些數據結構能夠用一維、二維的矩陣表示,卷積神經網絡處理起來很高效。

 

但是,我們的現實生活中有很多數據並不具備規則的空間結構,稱爲Non Euclidean data。比如推薦系統、電子交易、計算幾何、腦信號、分子結構等抽象出的圖譜。這些圖譜結構每個節點連接都不盡相同,有的節點有三個連接,有的節點有兩個連接,是不規則的數據結構。

 

下面結合兩個典型的業務場景來說明什麼是圖:

社交網絡非常適合用圖數據來表達

上面的圖譜刻畫社交網絡中各個節點以及它們之間的關係,用戶A、用戶B、帖子都是節點,用戶與用戶之間的關係是關注,用戶與帖子之間的關係可能是發佈或者轉發。通過這樣一個圖譜,可以分析用戶對什麼人、什麼事感興趣,進一步實現推薦機制。

電商場景中的圖譜

在電商中,我們首先可以想到的關鍵節點就是,用戶、交易和商品。用戶關聯的節點比如會有註冊地址、收穫地址等;交易會關聯到商品、收貨地址、交易IP等、商品會關聯類目等。這些節點之間的關係,比如用戶除了可以通過交易購買商品,還可以對商品進行評分。這樣的圖數據我們可以用來做兩件事情,一是推薦、二是反欺詐。

 

通過上面兩個例子,可以很明顯的感受到,圖有兩個基本的特性:

 

一是每個節點都有自己的特徵信息。比如針對上圖,我們建立一個風控規則,要看這個用戶的註冊地址、IP地址、交易的收貨地址是否一樣,如果這些特徵信息不匹配,那麼系統就會判定這個用戶就存在一定的欺詐風險。這是對圖節點特徵信息的應用。

 

二是圖譜中的每個節點還具有結構信息。如果某段時間某個IP節點連接的交易節點非常多,也就是說從某個IP節點延伸出來的邊非常多,那麼風控系統會判定這個IP地址存在風險。這是對圖節點結構信息的應用。

 

總的來說,在圖數據裏面,我們要同時考慮到節點的特徵信息以及結構信息,如果靠手工規則來提取,必將失去很多隱蔽和複雜的模式,那麼有沒有一種方法能自動化地同時學到圖的特徵信息與結構信息呢?——圖卷積神經網絡

 

什麼是圖卷積神經網絡

圖卷積神經網絡(Graph Convolutional Network)是一種能對圖數據進行深度學習的方法。

如何理解圖卷積算法?我們看動圖分三步去理解(注意不同顏色代表不同的權重):

第一步:發射(send)每一個節點將自身的特徵信息經過變換後發送給鄰居節點。這一步是在對節點的特徵信息進行抽取變換。

第二步:接收(receive)每個節點將鄰居節點的特徵信息聚集起來。這一步是在對節點的局部結構信息進行融合。

第三步:變換(transform)把前面的信息聚集之後做非線性變換,增加模型的表達能力。

 

圖卷積神經網絡具有卷積神經網絡的以下性質:

1、局部參數共享,算子是適用於每個節點(圓圈代表算子),處處共享。

2、感受域正比於層數,最開始的時候,每個節點包含了直接鄰居的信息,再計算第二層時就能把鄰居的鄰居的信息包含進來,這樣參與運算的信息就更多更充分。層數越多,感受域就更廣,參與運算的信息就更多。

我們來看GCN這個模型框架,輸入是一張圖,經過一層一層計算變換,最後輸出一張圖。 

 

GCN模型同樣具備深度學習的三種性質:

1、層級結構(特徵一層一層抽取,一層比一層更抽象,更高級);

2、非線性變換 (增加模型的表達能力);

3、端對端訓練(不需要再去定義任何規則,只需要給圖的節點一個標記,讓模型自己學習,融合特徵信息和結構信息。)

 

GCN四個特徵:

1、GCN 是對卷積神經網絡在 graph domain 上的自然推廣。

2、它能同時對節點特徵信息與結構信息進行端對端學習,是目前對圖數據學習任務的最佳選擇。

3、圖卷積適用性極廣,適用於任意拓撲結構的節點與圖。

4、在節點分類與邊預測等任務上,在公開數據集上效果要遠遠優於其他方法。

 

我們怎麼用圖卷積神經網絡

下面分享一個我們在實際應用場景中的實驗:

 

實驗輸入是一個驗證數據構成的圖數據,節點是驗證事件以及事件相關的屬性節點。如IP,DeviceID,UA等節點。(我們總計用了30天的驗證數據,每兩個小時的數據構成一張圖,共360張圖。)

 

實驗輸出是對事件節點進行人機分類,正常或者異常。

 

實驗細節

網絡結構:GCN(128)->GCN(64)->GCN(64)->Linear(2)

訓練:  Adam優化器, lr=0.001

參照基準:  以只能學習特徵信息的GBDT做爲基準, grid_search 搜索超參數,GBDT是目前最流行的淺層分類器。

 

我們用第一天的數據做訓練,持續30天預測結果如下:

 

GCN模型的準確率衰減比較小,而GBDT的衰減很嚴重。可見,GCN模型的人機判別效果要好,魯棒性好。 

7d評估效果可視化,(用第一天的數據訓練模型,第七天觀察其預測效果及最後一層輸出的tsne可視化結果)。上圖可以看出,GCN在第七天時對樣本判別的分界面仍很明顯,但是GBDT對樣本判別的分界面已經很模糊類了。綜上,GCN學到的結構信息在人機判別中不僅效果很好,也具有更好的魯棒性。

學習資料整理:

圖神經網絡商業應用——套裝搭配【附PPT與視頻資料】,微信搜索極驗,或搜索微信號:geetest_jy,後臺回覆“PPT”獲取

NeurIPS 2019 超全GNN論文合集,附原文PDF下載,微信搜索極驗,或搜索微信號:geetest_jy,後臺回覆“NIPS2019”獲取

William L和唐建 AAAI2019《圖表示學習》報告,微信搜索極驗,或搜索微信號:geetest_jy,後臺回覆“AAAI2019”獲取

基於圖卷積神經網絡的共享單車流量預測,微信搜索極驗,或搜索微信號:geetest_jy,後臺分別回覆“紐約”、“芝加哥”獲取數據集下載地址

寫在最後

由於時間有限,很多問題淺嘗輒止,關於GCN還有很多有趣的東西。我們已開設專欄《Graph Learning》,分享給大家更加全面的圖學習算法。

一直以來,我們都認爲自己是一家技術驅動的公司,也說自己是AI公司。AI公司並不是那麼高大上,實際上有時候很難,因爲很多技術還不成熟,沒有現成的可以用。在做公司業務的時候,會遇上一些現實難題,會踩到很多坑,當然也會收穫一些感悟和經驗。我們想,這些是企業創造的另外一種價值,應當好好利用。

“你有一種思想,我有一種思想,互相交換後,我們都擁有兩種思想”這便是分享的意義。因此,後期我們還會整理一系列的乾貨分享專欄,以期把在實際應用中總結、學習、創造的知識分享給大家。當然,也非常歡迎有人可以一起探討、交流、進步,這是我們做這件事情最期待的回饋。

圖學習專欄:

極驗公衆號文章推薦:

圖卷積實戰——文本分類

圖卷積在基於骨架的動作識別中的應用

基於圖的團伙挖掘算法實踐

用圖卷積神經網絡進行情感識別

從源頭探討 GCN 的行文思路

圖上定義的各種卷積

圖開源深度學習庫彙總

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章