Weisfeiler-Leman test与WL subtree kernel
Weisfeiler-Lehman test及其擴展
- 引言
- 圖同構
- WL test(Weisfeiler-Lehman test)
- 一維Weisfeiler-Lehman test的一個例子
- WL子樹核(WL subtree kernel)
- 參考文獻
引言
在閱讀GNN相關論文時,經常會碰到一個概念叫做WL test(Weisfeiler-Lehman test),然而網上對這個概念的相關介紹卻很少。本人在查閱了一些資料后,將自己對這個概念的理解記錄下來,希望能和大家交流學習。由于本人學識有限,有不妥之處還請大家批評指正。
圖同構
在介紹具體的Weisfeiler-Lehman test和Weisfeiler-Lehman算法之前,先對圖同構(Graph Isomorphism)的概念進行簡單的回顧。圖同構是圖論中用來描述兩個圖在拓撲結構上是否完全等價的一個概念,如果兩個圖GGG和HHH完全等價,我們稱GGG和HHH是同構的;否則,GGG和HHH是非同構的。顯然,兩個圖GGG和HHH等價的必要條件是:GGG和HHH必須是同階的(GGG和HHH有相同的節點數目)。描述兩個圖同構的嚴格數學定義為:兩個簡單圖GGG和HHH是同構的,當且僅當存在一個將GGG的節點1,...,n1, ..., n1,...,n映射到HHH的節點1,...,n1, ..., n1,...,n的一一對應σ\sigmaσ ,使得GGG中任意兩個節點viv_ivi?和vjv_jvj?相連接,當且僅當HHH中對應的兩個節點σ(vi)\sigma(v_i)σ(vi?)和σ(vj)\sigma(v_j)σ(vj?)相連接。如果GGG和HHH是有向圖,那么同構的定義中還進一步要求對于GGG中任意兩個相連的節點viv_ivi?和vjv_jvj?,邊(i,j)(i, j)(i,j)與它在HHH中對應的邊(σ(vi),σ(vj))(\sigma(v_i), \sigma(v_j))(σ(vi?),σ(vj?))方向相同。類似地可以定義兩個多重圖的同構關系。
關于圖同構的一個具體例子如下,為方便起見,兩圖中對應節點被染成了相同的顏色:
WL test(Weisfeiler-Lehman test)
判斷兩個圖是否為同構的是一個非常困難的問題,目前還沒有一個可以在多項式時間內求解的算法。除了一些極端的情況外,WL test是用來判斷兩個圖是否是同構的一個有效的方法,它的一維形式“naive vertex refinement”類似于GNN中的鄰居信息聚合。具體操作分為兩步:
(1)聚合當前節點vvv及當前節點vvv鄰居節點的標簽;
(2)用一個哈希函數將(1)中的聚合結果映射為一個新的標簽并賦給節點vvv。
將上述兩個步驟迭代多次,判斷兩個圖GGG和HHH的節點標簽是否相同,若相同,則認為圖GGG和HHH是同構的;否則,GGG和HHH是非同構的。如果設hih_ihi?表示節點viv_ivi?的標簽,那么標簽的更新公式可以表示為:
hl(t)(v)=HASH(hl(t?1)(v),F{hl(t?1)∣u∈N(v)})h_l^{(t)}(v)=HASH(h_l^{(t-1)}(v), F\{h_l^{(t-1)}|u \in N(v)\}) hl(t)?(v)=HASH(hl(t?1)?(v),F{hl(t?1)?∣u∈N(v)})
其中,ttt表示迭代次數,N(v)N(v)N(v)表示圖中節點vvv的鄰居節點集合。
一維Weisfeiler-Lehman test的一個例子
給定有標簽的圖GGG和G′G^{'}G′:
1.聚合兩圖中每個節點及其鄰居節點的標簽,當前節點自身的標簽和其鄰居節點標簽之間用逗號隔開,鄰居節點標簽按升序排列,聚合結果如下:
2.用定義在多重集上的哈希函數在1中結果的基礎上進行計算,得到每個節點的新的標簽,并將新標簽賦給相應節點:
如果兩個圖GGG和HHH是同構的,則在某次迭代之后,這兩個圖對應節點的標簽會變成完全相同的。
WL子樹核(WL subtree kernel)
WL子樹核是Shervashidze等人于2011年基于WL test提出的概念,它用來度量兩個圖之間的相似性。子樹核用WL test迭代過程中不同節點標簽的數量來作為圖的特征向量。在WL test的第k次迭代過程中,一個節點的標簽表示以該節點為根,高為k的一個子樹結構。聽起來有點太抽象了,下面用一個例子來說明:
上圖中左邊的部分表示原始的Graph,右邊表示在經過兩次WL test迭代后,以節點2為根的高為2(這里高的2和兩次迭代相對應)的rooted subtree(根子樹)的結構。除了上圖右邊所示的以節點2為根的高為2的根子樹結構,以節點1,3,4為根的子樹結構如下圖所示(涂黑的表示節點2):
由于節點1和節點4對稱,所以節點1和節點4對應的子樹結構是相同的,因此,兩次WL test迭代后形成的不同節點標簽數為3。
參考文獻
總結
以上是生活随笔為你收集整理的Weisfeiler-Leman test与WL subtree kernel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机中的几种通信方式
- 下一篇: android 多任务按钮,XDA大神推