Weisfeiler-Lehman(WL)算法
Weisfeiler-Lehman 算法
- Weisfeiler-Lehman(WL)算法
- The Weisfeiler-Lehman Test of Isomorphism
- The General Weisfeiler-Lehman Kernels
- 1.The Weisfeiler-Lehman Kernel Framework
- 2.The Weisfeiler-Lehman Subtree Kernel
- 多圖上計算The Weisfeiler-Lehman Subtree Kernel
- THE RAMON-GARTNER SUBTREE KERNEL
- 3.The Weisfeiler-Lehman Edge Kernel
- 4.The Weisfeiler-Lehman Shortest Path Kernel
Weisfeiler-Lehman(WL)算法
The Weisfeiler-Lehman Test of Isomorphism
- 圖核使用來自Weisfeiler?LehmanWeisfeiler-LehmanWeisfeiler?Lehman同構檢驗的概念,更具體地講是其一維變體,也稱為“樸素頂點修飾”
- 該算法的關鍵思想是通過對相鄰節點的節點標簽排序后的集合來擴展節點標簽,并將這些擴展后的標簽壓縮為新的短標簽
- alphabetalphabetalphabet ΣΣΣ必須足夠大才能使fff具內射性。 對于兩個圖,∣Σ∣=2n|Σ| = 2n∣Σ∣=2n個滿足條件。
- (a)(a)(a)網絡中每個節點有一個labellabellabel,如圖中的彩色的1,2,3,4,51,2,3,4,51,2,3,4,5
- (b)(b)(b)標簽擴展:做一階廣度優先搜索,即只遍歷自己的鄰居。比如在圖(a)(a)(a)網絡GGG中原(5)(5)(5)號節點,變成(5,234)(5,234)(5,234),這是因為原(5)(5)(5)節點的一階鄰居有2,3和42,3和42,3和4
- (c)(c)(c)標簽壓縮:僅僅只是把擴展標簽映射成一個新標簽,如 5,234=>135,234 => 135,234=>13
- (d)(d)(d)壓縮標簽替換擴展標簽
- (e)(e)(e)數標簽:比如在GGG網絡中,含有111號標簽222個,那么第一個數字就是222。這些標簽的個數作為整個網絡的新特征
算法:
假設要測試同構的兩張圖為GGG和G’G’G’,那么在結點vvv的第iii次迭代里,算法都分別做了四步處理:標簽復合集定義、復合集排序、標簽壓縮和重標簽
- WLtestWL\ testWL?test的復雜度是O(hm)O(hm)O(hm),其中h為iterationiterationiteration次數,mmm是一次iterationiterationiteration里multisetmultisetmultiset的個數
一維的Weisfeiler?LehmanWeisfeiler-LehmanWeisfeiler?Lehman如下所示:
穩定后,統計兩張圖的labellabellabel的分布,如果分布相同,則一般認為兩張圖時同構的。
注意:我們可以發現,WLtestWL\ testWL?test方法的步驟和GNNsGNNsGNNs具有異曲同工之妙,都是通過不斷聚合鄰居信息,得到節點的新表示,這也是為什么KipfKipfKipf在201720172017年GCNGCNGCN的論文中單獨討論和GCNGCNGCN和WLtestWL testWLtest關系的原因。而正是這種統一性,才使得本文能以 WLtestWL\ testWL?test 為基礎來分析GNNsGNNsGNNs框架。
The General Weisfeiler-Lehman Kernels
1.The Weisfeiler-Lehman Kernel Framework
- Weisfeiler?LehmanalgorithmWeisfeiler-Lehman\ algorithmWeisfeiler?Lehman?algorithm 對圖GGG和G′G'G′的結點進行重標簽時,只有當兩個結點vvv和v′v'v′有相同的標簽復合集,它們生成的新標簽才一樣。
- 因此,我們可以認為對所有圖進行標簽壓縮和重標簽時,標簽映射函數fff都是一樣的,定義為r((V,E,li))=(V,E,l(i+1))r((V, E, l_i)) = (V, E, l_{(i+1)})r((V,E,li?))=(V,E,l(i+1)?),其中,VVV是圖GGG的結點集,EEE是圖GGG的邊集,lil_ili?和l(i+1)l_{(i+1)}l(i+1)?分別是Weisfeiler?LehmanalgorithmWeisfeiler-Lehman\ algorithmWeisfeiler?Lehman?algorithm 在第iii次和第i+1i+1i+1次迭代時生成的標簽集。
G0G_0G0?是原始圖,G1=r(G0)G_1 = r(G_0)G1?=r(G0?)是第一次重新貼標產生的圖,依此類推.
性質 - 1.半正定矩陣的行列式是非負的。
- 2.兩個半正定矩陣的和是半正定的。
- 3.Gi=r?G(i?1)=(r2)?G(i?2)=....=(ri)?G0=(ri)?GG_i = r * G_{(i-1)} = (r^2) * G_{(i-2)} = .... = (r^i) * G_0 = (r^i) * GGi?=r?G(i?1)?=(r2)?G(i?2)?=....=(ri)?G0?=(ri)?G
證明
**請注意,**可以將非負實權重αiα_iαi?放在k(Gi,Gi′),i=0,1,...,hk(G_i,G_i'),i = {0,1,...,h}k(Gi?,Gi′?),i=0,1,...,h上,以獲得更一般的Weisfeiler?LehmanWeisfeiler-LehmanWeisfeiler?Lehman核定義:
2.The Weisfeiler-Lehman Subtree Kernel
ci(G,σij)c_i(G,σ_{ij})ci?(G,σij?)是圖形GGG中字母σijσ_{ij}σij?的出現次數。
也就是說,Weisfeiler-Lehman子樹內核在兩個圖中計數共同的原始標簽和壓縮標簽
- 假設基本內核kkk是一個函數,用于計算兩個圖中的匹配節點標簽對:
多圖上計算The Weisfeiler-Lehman Subtree Kernel
算法:
- 在NNN個圖和hhh次迭代的情況下,ΣΣΣ大小為Nn(h+1)Nn(h + 1)Nn(h+1)。
舉例:
THE RAMON-GARTNER SUBTREE KERNEL
具有子樹高度hhh的Ramon?GartnerRamon-GartnerRamon?Gartner子樹內核通過迭代比較它們的鄰域來比較圖G=(V,E,l)G =(V,E,l)G=(V,E,l)和G0=(V0,E0,l)G_0 =(V_0,E_0,l)G0?=(V0?,E0?,l)中的所有節點對:
M(v,v′)M(v,v')M(v,v′)是vvv和v′v'v′鄰域的子集的精確匹配集合。M(v,v′)M(v,v')M(v,v′)的每個元素RRR是來自v∈Vv∈Vv∈V和v0∈V0v_0∈V_0v0?∈V0?的鄰域的一組節點對,因此每對中的節點具有相同的標記,并且不包含多于一對的節點。 因此,從直觀上講,kRGk_{RG}kRG?迭代地考慮來自GGG的節點vvv和來自G0G_0G0?的v0v_0v0?的鄰居之間兩個相同標記節點的所有匹配M(v,v′)M(v,v')M(v,v′)。 使參數λvλ_vλv?和λv′λ_{v'}λv′?等于單個參數λ會導致每個模式加權λλλ,并提高到模式中節點數的冪。
LINK TO THE WEISFEILER-LEHMAN SUBTREE KERNEL
3.The Weisfeiler-Lehman Edge Kernel
TheWeisfeiler?LehmanedgekernelThe\ Weisfeiler-Lehman\ edge\ kernelThe?Weisfeiler?Lehman?edge?kernel 是theWeisfeiler?Lehmankernelframeworkthe\ Weisfeiler-Lehman\ kernel\ frameworkthe?Weisfeiler?Lehman?kernel?framework的另一個實例。 對于具有未加權邊的圖,我們考慮對兩個圖中具有相同標記的端點(事件節點)的匹配邊對進行計數的基本內核。 換句話說,基本內核定義為
其中φE(G)φ_E(G)φE?(G)是對(a,b)(a,b)(a,b),a,b∈Σa,b∈Σa,b∈Σ的出現次數的向量,它們表示GGG中邊的端點的有序標簽. (a,b)(a,b)(a,b)和(a0,b0)(a_0,b_0)(a0?,b0?)分別表示邊eee和e0e_0e0?的端點的有序標簽,以及DirackernelDirac\ kernelDirac?kernel的δ,kEδ,k_Eδ,kE?可以等效地表示為∑e∈E∑e0∈E′δ(a,a0)δ(b,b0)∑_{e∈E} ∑_{e_0∈E'}δ(a,a_0) δ(b,b_0)∑e∈E?∑e0?∈E′?δ(a,a0?)δ(b,b0?)。如果邊緣通過分配權重的函數www加權,則基本核kEk_EkE?可以定義為∑e∈E∑e0∈E′δ(a,a0)δ(b,b0)kw(w(e),w((e0))∑_{e∈E} ∑_{e_0∈E'}δ(a,a_0) δ(b,b_0)k_w(w(e),w((e_0))∑e∈E?∑e0?∈E′?δ(a,a0?)δ(b,b0?)kw?(w(e),w((e0?)) ,其中kwk_wkw?是比較邊緣權重的內核。
4.The Weisfeiler-Lehman Shortest Path Kernel
在這里,我們使用節點標記的最短路徑內核作為基礎內核。
Weisfeiler-Lehman Graph Kernels
https://github.com/BorgwardtLab/GraphKernels
https://static.aminer.cn/misc/pdf/20190419.pdf
https://github.com/ysig/GraKeL
總結
以上是生活随笔為你收集整理的Weisfeiler-Lehman(WL)算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python与单片机通信——serial
- 下一篇: 计算机视觉:特征提取与匹配