https://yq.aliyun.com/articles/712465?type=2
講了最基本的概念:
1.b.常見的歐幾里得結構化數據
將數據轉換到歐幾里得空間中,所得到的數據稱為歐幾里得結構化數據。
常見的歐幾里得結構化數據主要包含:
1D:聲音,時間序列等;
2D:圖像等;
3D:視頻,高光譜圖像等;
2.a.非歐幾里得空間
科學研究中並不是所有的數據都能夠被轉換到歐幾里得空間中(eg:社交網絡、信息網絡等),對於不能進行歐幾里得結構化的數據,我們將其稱為非歐幾里得結構化數據。
2.b.非常見的歐幾里得結構化數據
1D:社交網絡(eg:Facebook,Twitter等)等;
2D:生物網絡(基因,分子,大腦連接)等;
3D:基礎設施網絡(eg:能源,交通,互聯網,通信等)等;
3.a.圖(Graph)的引入
針對非歐幾里得結構化數據表示問題,研究者們引入了圖論中抽象意義上的圖(Graph)來表示非歐幾里得結構化數據。
4.圖上的學習任務
介紹完圖的基本術語之后,我們來看看有了圖結構數據,我們可以進行哪些機器學習的任務
1、圖節點分類任務:圖中每個節點都有對應的特征,當我們已知一些節點的類別的時候,可以設計分類任務針對未知節點進行分類。我們接下來要介紹的 GCN、GraphSAGE、GAT模型都是對圖上的節點分類。
2、圖邊結構預測任務:圖中的節點和節點之間的邊關系可能在輸入數據中能夠采集到,而有些隱藏的邊需要我們挖掘出來,這類任務就是對邊的預測任務,也就是對節點和節點之間關系的預測。
3、圖的分類:對於整個圖來說,我們也可以對圖分類,圖分類又稱為圖的同構問題,基本思路是將圖中節點的特征聚合起來作為圖的特征,再進行分類。
5.圖數據應用舉例
對於一個簡單的電商的圖,其包含賣家,商品和用戶三個關鍵節點,其中,商品節點關聯商品類別節點,用戶節點關聯注冊 IP 節點和 注冊地址節點。當用戶在購買商品時,用戶節點和商品節點就會關聯交易節點,同時,交易節點也會關聯用戶下單時所對應的 IP 節點以及收獲地址節點,對應的圖結構如下圖所示。
從圖數據中節點間的關系以及特征,我們可以進行反欺詐以及商品推薦的操作。
1、節點分類—反欺詐:因為圖中每個節點都擁有自己的特征信息。通過該特征信息,我們可以構建一個風控系統,如果交易節點所關聯的用戶 IP 和收貨地址與用戶注冊 IP 和注冊地址不匹配,那么系統將有可能認為該用戶存在欺詐風險。
2、邊結構預測—商品推薦:圖中每個節點都具有結構信息。如果用戶頻繁購買某種類別商品或對某種類別商品評分較高,那么系統就可以認定該用戶對該類商品比較感興趣,所以就可以向該用戶推薦更多該類別的商品。
總而言之,圖數據的豐富應用價值促使更多的研究者加入圖數據的研究當中,但是對圖數據進行數據分析時,我們需要同時考慮到節點的特征信息以及結構信息。如果靠手工規則來提取,必將失去很多隱蔽和復雜的模式,那么有沒有一種方法能自動化地同時學到圖的特征信息與結構信息呢?這就是近年來興起的機器學習的一個熱點方向—圖神經網絡(Graph Neural Networks)。接下來我們將以一個系列的文章介紹它們。
https://zhuanlan.zhihu.com/p/64085525
https://cloud.tencent.com/developer/article/1481281
GNN 系列:圖神經網絡的“開山之作”CGN模型
【導讀】這是我們介紹圖神經網絡的第一篇文章,取自Kipf et al. 2017,文章中提出的模型叫Graph Convolutional Network(GCN),個人認為可以看作是圖神經網絡的“開山之作”,因為GCN利用了近似的技巧推導出了一個簡單而高效的模型,使得圖像處理中的卷積操作能夠簡單得被用到圖結構數據處理中來,后面各種圖神經網絡層出不窮,或多或少都受到這篇文章的啟發。
目錄
1、問題定義
2、圖上的快速卷積近似
a 譜圖卷積(Spectral Graph Convolutions)
b 逐層線性模型
3、半監督學習節點分類
a 傳播公式解釋
b 例子
4、后話
5、Reference
正文
1. 問題定義
考慮圖(例如引文網絡)中節點(例如文檔)的分類問題,通常該圖中只有一小部分節點有標簽。這類問題可以划分到基於圖的半監督學習問題中。為了對節點進行分類,首先我們可以利用節點自身的特征信息,除此之外,我們還可以利用圖結構信息,因此一個典型的圖半監督學習問題可以采用下面的學習策略:

這樣的學習策略基於圖中的相鄰節點標簽可能相同的假設。然而,這個假設可能會限制模型的能力,因為圖的邊不一定代表所連接節點相似。
因此,在這個工作中,作者不再顯示的定義圖結構信息的損失函數 Lreg, 而是使用神經網絡模型f(X,A)直接對圖結構進行編碼,訓練所有帶標簽的結點L0,來避免損失函數中的正則化項Lreg。
這篇文章的主要貢獻是為圖半監督分類任務設計了一個簡單並且效果好的神經網絡模型,這個模型由譜圖卷積(spectral graph convolution)的一階近似推導而來,具有理論基礎。
2. 圖上的快速卷積近似
這一節介紹如何從譜圖卷積推導出GCN的逐層更新模型,涉及到一些譜圖理論的知識,可以安全的跳過這一節,后面我們會為譜圖卷積出一個專欄的文章,詳細討論它們
這一節主要介紹圖神經網絡逐層更新(propagation)的理論推導。多層圖卷積網絡(Graph Convolutional Network, GCN)的逐層傳播公式:

2.a 譜圖卷積(Spectral Graph Convolutions)

2.b. 逐層線性模型
現在假設我們限制K=1,即譜圖卷積近似為一個關於L的線性函數。這種情況下,我們仍能通過堆疊多層來得到卷積的能力,但是這時候,我們不再受限於切比雪夫多項式參數的限制。我們期望這樣的模型能夠緩解當圖中節點度分布差異較大時對局部結構過擬合問題,比如社交網絡,引文網絡,知識圖譜等。另一方面,從計算的角度考慮,逐層線性模型使我們可以構建更深的模型。


3. 半監督學習節點分類
針對非歐幾里得結構化數據表示問題,研究者們引入了圖論中抽象意義上的圖(Graph)來表示非歐幾里得結構化數據。
3.a.傳播公式解釋
上一節中,我們從譜圖卷積理論中推導得到了GCN是如何逐層更新節點embedding的

3.b 例子

4. 后話
實現時,由於GCN需要輸入整個鄰接矩陣A和特征矩陣X, 因此它是非常耗內存的,論文中作者做了優化,他們將A作為稀疏矩陣輸入,然后通過實現稀疏矩陣和稠密矩陣相乘的GPU算子來加速計算,然而,即使這樣,整個矩陣仍然存在這要被塞進內存和顯存中的問題,當圖規模變大的時候,這種方法是不可取的,在下一篇GraphSAGE的博文中,我們將會介紹如何巧妙的克服這樣的問題。
5.Reference
Semi-Supervised Classification with Graph Convolutional Networks
GNN 系列:GraphSAGE
【引言】在GCN的博文中我們重點討論了圖神經網絡的逐層傳播公式是如何推導的,然而,GCN的訓練方式需要將鄰接矩陣和特征矩陣一起放到內存或者顯存里,在大規模圖數據上是不可取的。其次,GCN在訓練時需要知道整個圖的結構信息(包括待預測的節點), 這在現實某些任務中也不能實現(比如用今天訓練的圖模型預測明天的數據,那么明天的節點是拿不到的)。GraphSAGE的出現就是為了解決這樣的問題,這篇文中我們將會詳細地討論它。
Inductive learning v.s. Transductive learning
首先我們介紹一下什么是inductive learning. 與其他類型的數據不同,圖數據中的每一個節點可以通過邊的關系利用其他節點的信息,這樣就產生了一個問題,如果訓練集上的節點通過邊關聯到了預測集或者驗證集的節點,那么在訓練的時候能否用它們的信息呢? 如果訓練時用到了測試集或驗證集樣本的信息(或者說,測試集和驗證集在訓練的時候是可見的), 我們把這種學習方式叫做transductive learning, 反之,稱為inductive learning. 顯然,我們所處理的大多數機器學習問題都是inductive learning, 因為我們刻意的將樣本集分為訓練/驗證/測試,並且訓練的時候只用訓練樣本。然而,在GCN中,訓練節點收集鄰居信息的時候,用到了測試或者驗證樣本,所以它是transductive的。
概述
GraphSAGE是一個inductive框架,在具體實現中,訓練時它僅僅保留訓練樣本到訓練樣本的邊。inductive learning 的優點是可以利用已知節點的信息為未知節點生成Embedding. GraphSAGE 取自 Graph SAmple and aggreGatE, SAmple指如何對鄰居個數進行采樣。aggreGatE指拿到鄰居的embedding之后如何匯聚這些embedding以更新自己的embedding信息。下圖展示了GraphSAGE學習的一個過程:
1.對鄰居采樣
2.采樣后的鄰居embedding傳到節點上來,並使用一個聚合函數聚合這些鄰居信息以更新節點的embedding
3.根據更新后的embedding預測節點的標簽
算法細節
1. 節點 Embedding 生成(即:前向傳播)算法
下面的算法描述了我們是怎么做前向傳播的:
2. 采樣 (Sample) 算法
3. 聚合器 (Aggregator) 架構
4. 參數學習
后話
GraphSAGE采用了采樣的機制,克服了GCN訓練時內存和顯存上的限制,使得圖模型可以應用到大規模的圖結構數據中,是目前幾乎所有工業上圖模型的雛形。然而,每個節點這么多鄰居,采樣能否考慮到鄰居的相對重要性呢,或者我們在聚合計算中能否考慮到鄰居的相對重要性? 這個問題在我們的下一篇博文Graph Attentioin Networks中做了詳細的討論。