1. 程式人生 > 其它 >圖聚類到圖卷積神經網路(一)

圖聚類到圖卷積神經網路(一)

圖資料(0,1板塊)

目錄:
0、引入
1、圖資料

  1.1 何為圖資料
  1.2 圖相關的理論鋪墊
        1.2.1    線性代數——從矩陣的乘法到以特徵向量為基的線性變換
        1.2.2    譜圖理論
  1.3 圖資料應用——譜聚類
        第1板塊 總結

2、圖卷積神經網路綜述
3、圖卷積神經網路的實踐

0.引入——卷積神經網路到圖資料

\(\qquad\)卷積神經網路的發展極大促進了深度學習的發展,廣泛應用於影象識別和自然語言處理領域,卷積神經網路幾乎能做到將很多問題畢其功於一役,以下特點可謂功不可沒:
1、利用平移不變性抽取區域性的特徵——區域性不變性
2、通過多層的卷積來實現低階到高階抽象特徵的抽取
3、權重共享,降低訓練成本
\(\qquad\)

卷積神經網路已經為很多種資料型別的深度學習任務,諸如影象、文字等領域帶來了飛躍式的發展,而機器學習中一類廣泛而特殊的資料——圖資料,具備典型的區域性連線特徵,人們開始思考卷積神經網路應用於此可行性。

1.圖資料

1.1 何為圖資料

\(\qquad\)重點是節點、邊、鄰接矩陣、度矩陣、拉普拉斯矩陣的概念
\(\qquad\)何謂圖?圖由節點和邊構成,節點和邊都帶有自己的特徵資訊。下面是大頭之前做過的一個國際貿易額視覺化圖:

\(\qquad\)圖資料主要包含以下構成:

  • 節點的特徵資料\(X_{k\times n}\),假設有\(n\)個節點,不妨記為\(X_{k\times n}=[x_1,x_2,x_3...x_n]^T\)
    ,其中\(x_i\)為來自節點\(i\)\(k\)維特徵,\(x_i=[x_{i,1},x_{i,2}...x_{i,k}]\)。看圖來說,節點資料可以是國家進出口貿易總額、國家GDP、國家人口數等等
  • 節點的鄰居關係。對於無向圖來說,鄰接矩陣由\(A_{n\times n}\)表示,\(A_{i,j}=1\),表示節點\(i\)\(j\)之間存在邊連線,反之\(A_{i,j}=0\)表示兩點之間無連線。看圖來說,就是兩個國家之間是否有貿易往來。
  • 節點之間的關係資訊。常見於含權重的鄰接矩陣,此處我們單獨定義節點之間關係權重矩陣\(W_{n\times n}\),權重矩陣描述的是邊的特徵資訊。看圖來說可以是國家之間的進出口貿易額,\(W_{CN,USA}\)
    表示中美貿易額。
  • 節點的度資訊。用矩陣\(D\)表示,這是一個對角陣。對於無向圖來說,第\(i\)個節點節點與\(d_i\)節點相連,那麼其節點的度就是\(d_i\)\(d_i=\sum_{j}^n A_{i,j}\)
  • 節點的加權度資訊,用矩陣\(D_w\)表示,也是對角陣,\(D_{w(i,i)}=\sum_{j}^n A_{i,j}\)
    \(\qquad\)圖資料具有典型的區域性連線結構,適用於抽取多尺度的區域性特徵,再組合成具有強表示能力的特徵。但是圖資料由於其本身特性,傳統的CNN的卷積核並不適用,主要原因是圖資料不具備規則的歐幾里得空間結構,節點之間不具備穩定的區域性位置關係。類比圖片隨著節點index排序的變化,相同的圖會呈現完全迥異的歐幾里得空間結構,並且每個節點周圍的鄰居節點數也是不一樣的,因此直接的CNN到GCN是無法遷移的。

1.2 圖相關的理論鋪墊

1.2.1 線性代數——從矩陣的乘法到以特徵向量為基的線性變換

\(\qquad\)首先從矩陣的乘法說起,我一直是這樣理解一個矩陣的乘法的,無論是矩陣還是向量左乘以一個矩陣\(B\)時候,其結果都是以矩陣\(B\)的列向量作為基(或者座標軸),以右乘的物件作為座標,在這組基張成的線性空間裡構造一個物件。以我們常見的向量為例,向量\(x\)並不只是單純的一個向量\(x\),而是\(Ix\),其中\(I\)是規模合適的單位陣,也就是說我們的向量\(x\)是某個不露面的向量在基於單位矩陣列向量這組正交基下的一組座標。
\(\qquad\)更進一步,做給定矩陣\(A\),規模合適的列向量\(x\),我們令\(y=Ax\),其實基於上文所述,可改寫為\(Iy=Ax\),關於這個矩陣乘法,可以理解為我們在矩陣\(A\)的列向量作為基,以向量\(x\)各維度標量的數值作為座標,生成的線性空間中的物件,該物件在單位矩陣列向量的正交基下的座標表示為\(y\)
\(\qquad\)再進一步,對於一個向量\(x\),其本質上是某個線性空間的物件在單位矩陣正交基下的座標表示,那麼我們如何將這個物件轉化為以某個可逆矩陣\(P\)為基下的座標表示呢?下面填空題就來了:\(x=P(??)\),答案是\(P^{-1}x\),如果一個向量在單位矩陣為基下的座標表示為\(x\),那麼其在\(P\)的列向量為基之下的座標表示就為:\(P^{-1}x\)。如果這個矩陣\(P\)恰好是一個正交陣,那麼自然有\(P^{-1}x=P^Tx\),某向量在單位矩陣為基下的座標表示\(x\),那其在正交陣\(P\)下的表示為\(P^Tx\).
\(\qquad\)舉個不是那麼雅觀的例子,線性空間裡面的某個物件,就像是現實中的一頭豬,豬的座標就像是我們在給豬拍照,豬的官方照——也就是這個線性空間的物件在單位矩陣為基下的座標表示,是最常用的也是約定俗成的即\(Pig=IPig\),然後我們可以調整鏡頭,在不同的座標系下去看這頭豬,拍下形色各異的照片,但是豬就是這一頭豬,不管在什麼樣的視角——矩陣左乘,拍出什麼樣的照片——該組基下的座標,這頭豬都是同一頭豬,從頭到尾都是這一頭豬——\(Iy=Ax=Bz=...\)
\(\qquad\)基於以上敘述,讓我們再換一個更深入的視角來重新審視矩陣的乘法,矩陣乘法帶來了什麼樣的線性變換。我們針對一個可以特徵對角化的矩陣\(A\)來說,\(A=S\Lambda {S^{-1} }\),矩陣乘法\(Ax\)可以通過特徵對角化分解為:\(Ax=S\Lambda {S^{-1} }x\),據前文所述,\({S^{-1}}x\)是將單位陣為基下向量的座標\(x\)基變換到了矩陣\(S\)之下的座標,隨後我們通過特徵對角陣\(\Lambda\)對基變換後的座標逐個維度根據矩陣\(A\)的特徵值做了拉伸,拉伸過後的座標,依舊是在矩陣\(S\)為基下的座標,最後我們左乘矩陣\(S\),將拉伸後的座標基變換到單位矩陣座標系下。至此我們將某個矩陣乘以一個向量分解為:

  • \({S^{-1}}x\)——基變換到座標系S下
  • \(\Lambda {S^{-1}}x\)——新座標系下的座標根據矩陣\(A\)特徵值逐維度做拉伸
  • \(S\Lambda {S^{-1} }x\)——逐維度拉伸後再將拉伸後坐標轉移回單位陣座標系下
    \(\qquad\)由此我們可以看到,左乘以某個矩陣,作為一個線性變換,對變換的物件做了如上的一些操作,這裡我們需要注意,只是更換座標系是不會從本質上對變換物件產生影響的——換個角度去看豬,豬還是那頭豬,真正對變換物件產生影響的是特徵對角陣\(\Lambda\)。這裡我們不妨把特徵對角陣\(\Lambda\)換成一個單位矩陣\(I\),言外之意是我們對基變換後的向量各維度不做拉伸保持原樣,變換如下:
\[SI {S^{-1} }x=S {S^{-1} }x=x \]

\(\qquad\)向量\(x\)看破一切地表示,我還是原來那個我,只要你不拉伸,左乘的矩陣的特徵對角陣\(\Lambda\)是個單位陣,那經歷這個變換後,註定還是那個我。這也暗含了一個訊息:如果一個矩陣\(A\)的特徵值全為1,那麼這個矩陣必然為單位陣,即\(A=I\)
\(\qquad\)最後我們來探討一個問題,如果一個向量多次左乘同一個矩陣回來帶什麼樣的效果?

\[A^{k}x=(S\Lambda {S^{-1} })^{k}x \] \[=S\Lambda^{k} {S^{-1} }x \]

\(\qquad\)可見當k趨於無窮時,若矩陣\(A\)的最大特徵值\(\geq 1\)\(A^{k}x\)會無限趨近於矩陣\(A\)最大特徵值的特徵向量方向,其他方向的拉伸相較於最大特徵向量方向的拉伸將會不值一提。這也很明白的解釋了在馬爾科夫轉移陣裡面,如果存在一個穩定狀態,那麼穩定狀態也一定是馬爾科夫陣最大特徵值得特徵向量方向。
\(\qquad\)

1.2.2 譜圖理論

(1)矩陣的乘法意味著線性變化,節點特徵向量左乘以鄰接矩陣、拉普拉斯矩陣都意味對節點特徵進行怎樣的變換?
\(\qquad\)由於我們在進行圖卷積神經網路相關的分析時候,面對的物件都是諸如鄰接矩陣、度矩陣、拉普拉斯矩陣等,因此在介紹圖卷積神經網路之前,先對譜圖理論展開介紹。
\(\qquad\)首先,對於一個無向圖\(G\),節點資料為\(x=[x_1,x_2...x_n]^T\),度矩陣\(D\),鄰接矩陣\(A\),鄰接矩陣和度矩陣滿足關係

\[D_{(i,i)}=\sum_{j}^n A_{(i,j)} \]

\(\qquad\)定義拉普拉斯矩陣\(L\)滿足\(L=D-A\)
\(\qquad\)節點資料左乘鄰接矩陣或者是拉普拉斯矩陣,都是在做將節點鄰居的資料彙總到中心節點的變換。具體來看,對於標準化後的鄰接矩陣:

\[A^*=D^{-1}A \] \[A^*x_{(i)}=\sum_{j}^n \frac{A_{(i,j)}}{D_{(i,i)}}x_j \]

\(\qquad\)即經過左乘鄰接矩陣,將節點資料\(x_{(i)}\)更新為與節點\(i\)相連的節點的資料的平均值。對於標準化後的拉普拉斯矩陣,拉普拉斯矩陣的標準化,常用的標準化方法有兩種,一種是對稱標準化\(L^*=D^{-\frac{1}{2}}LD^{-\frac{1}{2}}=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}}\),另一類是做成度矩陣的逆來做標準化\(L^*=D^{-1}L=I-D^{-1}A\)。此處我們採取第一種標準化,有:

\[L^*x_{(i)}=\sum_{j}^n\frac{A_{(i,j)}}{D_{(i,i)}}(x_{(i)}-x_{(j)}) \] \[=x_{(i)}-\sum_{j}^n\frac{A_{(i,j)}}{D_{(i,i)}}x{(j)} \]

\(\qquad\)即經過左乘拉普拉斯矩陣,將節點資料\(x_{(i)}\)更新為中心節點和周圍節點的加權平均差異。這也是在拉普拉斯運算元用於影象分割的主要原理,影象上的拉普拉斯運算元是圍繞中心節點和周圍節點的二階差分,如果中心節點和周圍節點和差異很大,這意味著中心節點位於不同的色塊的交界處。
\(\qquad\)
\(\qquad\)
\(\qquad\)
(2)拉普拉斯矩陣的譜分解
\(\qquad\)這裡的譜分解是從訊號角度去理解拉普拉斯矩陣,就其本質就是對拉普拉斯矩陣做特徵對角化,特徵向量類比訊號處理中的頻率,是某個基,類似小波基、傅立葉基等;特徵值就是頻譜,反映了這個頻率或者基的重要性程度,絕對值最大的特徵值的絕對值就是矩陣的譜半徑。這些都是很直觀的概念,只是換了個說法。
\(\qquad\)關於拉普拉斯矩陣的特徵值,對於標準化以後的拉普拉斯矩陣\(L\),將其特徵值從小到大排序,\(\lambda_1 \leq \lambda_2 \leq ... \leq \lambda_n\),則有:
1. \(\lambda_1=0\),拉普拉斯矩陣滿足半正定性
[證明]\(\lambda_1=0\)意味著拉普拉斯矩陣是半正定的,對任意向量\(f\in \mathbb{R}^n\),滿足:

\[f^tLf={{1}\over{2}}\sum_{i,j}^n\frac{A_{i,j}}{D_{(i,i)}}(f_i-f_j)^2 \]

\(\qquad\qquad\)由二次型的非負性,易得半正定性。且由拉普拉斯矩陣滿足:

\[L[1,1,1...1]^T=I[1,1,1...1]^T-D^{-1}A[1,1,1...1]^T \] \[=[1-\sum_{j}^n\frac{A_{(1,j)}}{D_{(1,1)}},1-\sum_{j}^n\frac{A_{(2,j)}}{D_{(2,2)}}...1-\sum_{j}^n\frac{A_{(n,j)}}{D_{(n,n)}}]^T \] \[=0\cdot [1,1,1...1]^T \]

\(\qquad\qquad\)易得拉普拉斯矩陣存在一個特徵向量[1,1,1...1]^T,其對應的特徵值為0,即拉普拉斯矩陣最小的特徵值\(\lambda_1=1\)

  1. \(\lambda_k=0\)當且僅當圖\(G\)有k個聯通區域,特徵值為零的數量對應著聯通區域的數量。此處不加證明地說明,拉普拉斯矩陣具有k重0特徵值的時候,說明圖中有k個獨立的聯通分量,0特徵值對應的特徵向量即為各個聯通分量的節點組合,例如\([0,0,0,1,0,1,1]^T\)該特徵值意味著第4,6,7個節點彼此聯通且不和其他節點聯通

1.3 圖資料應用——譜聚類

\(\qquad\)在介紹過譜圖理論的基本內容之後,我們來看一些應用的內容,在無向圖上基於拉普拉斯矩陣的譜聚類。

1. 聚類的兩種思路

\(\qquad\)聚類方法一般有兩種思路:

  • 樣本點在空間中的距離,根據節點的特徵取值,即節點在特徵空間中的位置進行聚類,例如k-means,層次聚類,GMM(高斯混合模型),SOM(自組織對映神經網路)等,其定義的等距離關係都是一個高維空間的低維球面。
  • 節點之間的關係強度,可以不必給出節點在特徵空間的位置,只依據節點之間的關係(距離)來實現聚類,這類聚類以譜聚類為代表。
    \(\qquad\)基於空間重點的位置的第一種思路只能處理特徵空間中的凸集,基於節點之間的關係的聚類方法卻沒有這個限制,在資料的適用性上更廣泛一些,下面兩幅圖片分別是特徵空間的凸集資料和非凸集資料,譜聚類的方法兩種情況下都會適用。

注:其實這裡我們還會有一類思路,我們可以利用SNE或者t-SNE的方法將原本不滿足非凸的資料,轉換為凸集,這樣很多是適用於凸集的方法便可以派上用場。SNE和t_SNE選擇高斯分佈或者t分佈作為擬合的分佈,天然就帶來了轉換非凸的效果。由此看來,t-SNE的方法不僅僅可以實現資料的降維,還可以進行資料形態的變換。

2、譜聚類時距離的定義

\(\qquad\)譜聚類根據節點之間的距離關係來聚類,距離的定義可以是樣本特徵空間的歐氏距離,也可以是樣本特徵向量的夾角餘弦值,也可以是徑向基函式等定義的特殊距離。給定無向圖\(G=(V,E)\),節點\(V=\{1,2,3...n\}\),邊資料\(E=\{W_{(i,j)}\}_{i,j=1,2,…n}\),記錄樣本間距離的矩陣為加權的鄰接矩陣\(W\),其元素\(W_{(i,j)}\)表示的是節點\(i\)\(j\)之間的距離。在加權的鄰接矩陣下,我們定義度矩陣為\(D\),其中\(D_{(i,i)}=\sum_{j}^nW_{(i,j)}\)

3、對圖做切分

\(\qquad\)進行圖聚類時,我們要做的是對圖中的節點進行切分,這樣的切分勢必會切斷節點之間邊的聯絡,如果我們能夠根據這個切斷的聯絡來構造一個損失函式,那我們追求的就是是切斷損失最小的圖的切分,下面我們以二切分為例,再說明下這個問題。

\(\qquad\)如上圖,加入我們要把一整個圖一分為二,那麼理應選擇一個切分,只截斷最少的邊,切分生成如上圖的兩個子圖,兩個子圖之間的連線儘可能少,連線儘可能保留在子圖內部。我們定義子圖之間的的連線權值:

\[W(A,B)=\sum_{i\in A,j\in B}W_{(i,j)} \]

\(\qquad\)其中\(W\)為帶權重的鄰接矩陣,我們要追求對於AB最優劃分,令子圖之間連線,即\(W(A,B)\)最小,問題轉化為:

\[\{\hat{A},\hat{B}\}=argmin\quad cut(A,B)=argmin\quad W(A,B) \]

\(\qquad\)將問題推廣到尋找一張圖最優的K個子圖的最優劃分,那麼我們追求的就是子圖之間的連線權重的最小化,下面定義這k個子圖之間的連線權重為:

\[cut(A_1,A_2,A_3...A_k)=\sum_{i}^k W(A_i,\bar{A_i}) \]

\(\qquad\)其中\(\bar{A_i}\)表示子圖\(A_I\)在圖上的補集,這樣我們就把劃分問題轉為了一個優化求最小值的問題。但是直接這樣處理會帶來一些問題,我們沒有對劃分的損失函式針對子圖的規模做加權平均處理,因此不可避免地子圖越大損失函式越大,演算法更傾向於將單獨的點劃分為獨立的圖,為了避免這個問題,我們對子圖之間的連線權重做加權處理,該方法稱為Normalized cut。

4、Normalized Cut

\(\qquad\)相較於之前的劃分方式,此處我們計運算元圖之間的連線權重時,通過子圖內部的節點的度資料之和進行加權,記節點\(i\)的度為\(d_i=\sum_{j}^n W_{(i,j)}\),Normalized Cut計算方式如下:

\[Normalized Cut(A_1,A_2,A_3...A_k)=min \quad \sum_{i}^k \frac{W(A_i,\bar{A_i})}{\sum_{j\in A_i}d_j} \]

\(\qquad\)譜聚類的模型便是:

\[\{\hat{A_k}\}_k^K=argmin \quad Normalized Cut(A_1,A_2,A_3...A_k) \]

\(\qquad\)引入指示變數矩陣\(Y_{n \times K}\):

\[y_i\in \{0,1\}^K \] \[\sum_{j=1}^K y_{i,j}=1 \]

\(\qquad\)其中y_{i,j}表示第i個樣本屬於第j個子圖劃分。指示矩陣滿足性質:

\[Y^TY=\sum_{i=1}^ny_iy_i^T \]

\(\qquad\)對於y_iy_i^T,若y_i屬於k類,則僅在對角線的\((k,k)\)位置上為1,其他位置均為零,由此可知累加\(\sum_{i=1}^ny_iy_i^T\)為對角陣,若記\(N_k\)為屬於第k個劃分的節點數,則

\[Y^TY=diag(N_1,N_2...N_K) \]

為方便書寫,我們記\(Ncut=Normalized Cut(A_1,A_2,A_3...A_k)\),所以:

\[\hat{Y}=argmin \quad Ncut \]

\(\qquad\)將Ncut寫成矩陣的形式:

\[Ncut=Trace[diag( \frac{W(A_1,\bar{A_1})}{\sum_{j\in A_1}d_j},\frac{W(A_2,\bar{A_2})}{\sum_{j\in A_2}d_j}...\frac{W(A_K,\bar{A_K})}{\sum_{j\in A_K}d_j})] \] \[=Trace[diag( W(A_1,\bar{A_1}), W(A_2,\bar{A_2})... W(A_K,\bar{A_K}))\cdot diag(\sum_{j\in A_1}d_j,\sum_{j\in A_2}d_j...\sum_{j\in A_K}d_j)^{-1}] \] \[=Trace[O,P^{-1}] \]

\(\qquad\)下面我們嘗試給矩陣\(O\)\(P\)換一個表達,由於\(D=diag(d_1,d_2,...d_n)\),由前文關於\(Y^TY\)的敘述,我們可以將矩陣P寫作:

\[P=Y^TDY \]

\(\qquad\)對於矩陣O,我們記全部節點的圖為V:

\[O=diag( W(A_1,\bar{A_1}), W(A_2,\bar{A_2})... W(A_K,\bar{A_K})) \] \[O=diag( W(A_i,V))-diag( W(A_i,A_i)) \] \[=diag(\sum_{j\in A_i}d_j)-diag( W(A_i,A_i)) \]

\(\qquad\)其中第一項我們已經給出過了,等於\(Y^TDY\),第二項可以寫成\(Y^TWY\),這是因為:

\[Y^TWY=\sum_{i=1}^n \sum_{j=1}^n W_{(i,j)}y_i^Ty_j \]

\(\qquad\)矩陣對角線元素為:

\[Y^TWY_{(k,k)}=\sum_{i\in A_k} \sum_{j\in A_k} W_{(i,j)}y_i^Ty_j \] \[=\sum_{i\in A_k} \sum_{j\in A_k} W_{(i,j)}=W(A_k,A_k) \]

\(\qquad\)\(Y^TWY\)對角線元素和矩陣O是相同的,故我們這裡進行跡運算,結果是一樣的。綜上所述,在對矩陣\(Y\)列向量僅有一維度為1其他維度為0的約束下,求解最優化問題:

\[argmin_Y\quad Ncut=argmin_Y\quad Trace[(Y^T(D-W)Y)\cdot(Y^TDY)^{-1}] \] \[=argmin_Y\quad Trace[(Y^TLY)\cdot(Y^TDY)^{-1}] \]

以上形式剛好是廣義瑞利商的形式,我們不加證明來看下廣義瑞利商的性質:

\(\qquad\)由此我們可以確定我們的矩陣Y的行向量為拉普拉斯矩陣的n個特徵向量中的k個,由瑞利商的性質可知,除了特徵向量\([1,1...1]^T\)之外,當我們選定特徵值最小的其他k個對應的特徵向量來構成我們的矩陣Y時,我們的求和式目標函式取得最小值。這裡的思路和我們通過過定義損失函式來逐個求解主成分分析的主成分時一樣。
\(\qquad\)至此我們已經說明了譜聚類的完整過程,譜聚類的運用很簡單,只需要圍繞拉普拉斯矩陣做特徵對角化求解特徵值和特徵向量即可,但是求解譜聚類的過程蘊含的思想對於理解圖資料很有意義。
注:關於瑞利商的推導和應用我們另寫文章

總結

\(\qquad\)關於圖資料的分析集中在圍繞反映圖結構的拉普拉斯矩陣的分析中,核心物件是拉普拉斯矩陣的特徵值、特徵向量,從訊號處理的角度審視,將矩陣線性空間的基和變化拉伸程度轉換為頻率和頻率的重要性程度,但是換湯不換藥,其本質還是矩陣的特徵分解,還是落腳在對於矩陣運算的理解上。因此我們在這個版塊裡花了大量的筆墨去講述理解矩陣乘法的全新視角,這是很有意義的一件事。
\(\qquad\)關於圖卷積神經網路的思想,一言以蔽之,空域卷積是基於權重矩陣非零元素的整體的一個卷積操作,引數很多,缺少權重共享降低運算量;頻譜方法下的卷積,從訊號處理角度理解,是對頻率的一個濾波操作,通過構建不同的頻率濾波器來提取不同特徵,簡單說就是通過給拉普拉斯矩陣換個特徵對角陣來實現濾波操作;其他的基於切比雪夫不等式的方法,都是為了提升運算的效率而採用的頻譜方法的簡化。關於圖卷積神經網路的內容我們將在下一個板塊裡詳細展開。