Weisfeiler-Lehman 算法
很多論文中會講,從另一個角度來講,GCN模型可以看作圖上非常有名的 Weisfeiler-Lehman 算法的一種變形。那么什么是 Weisfeiler-Lehman 算法呢?
一維的 Weisfeiler-Lehman 如下所示:


下面舉例說明 Wisfeiler-Lehman 算法
給定兩圖 $G$ 和 $G^{\prime}$,其中每個節點都已經打上了標簽(實際應用中,有些時候我們並拿不到節點的標簽, 這時可以對節點都標上 "1" 這個標簽)

要比較 $\mathrm{G}$ 和 $\mathrm{G}^{\prime}$ 的相似性,我們來看看 weisfeiler-lehman 算法是怎么做的:
1、aggregate 鄰居節點的標簽得到一個標簽的字符串,對字符串進行升序排列。

2、對字符串進行哈希處理,這里生成了一個一一映射的字典,這一步也可以使用其它的字符串哈希函數,只要保證碰撞率盡量小就可以。

3. 將哈希過的值重新賦值給相應的節點

這樣第一輪迭代之后, $G=\{6 、 6 、 8 、 10 、 11 、 13\} $, $G^{\prime}=\{6 , 7 , 9 , 10 , 12 , 13\}$ 於是利用 Jaccard 公 式就可以計算出 $G$ 和 $G$ 的相似度了,如果需要更嚴格的對比,可以持續迭代上述過程。
Jaccard系數
Jaccard index , 又稱為 Jaccard 相似系數(Jaccard similarity coefficient)用於比較有限樣本集之間的相似性與差異性。Jaccard 系數值越大,樣本相似度越高。
定義:給定兩個集合A,B,Jaccard 系數定義為A與B交集的大小與A與B並集的大小的比值,定義如下:
$J(A, B)=\frac{|A \cap B|}{|A \cup B|}=\frac{|A \cap B|}{|A|+|B|-|A \cap B|}$
當集合 A,B 都為空時,J(A,B) 定義為 1。
與Jaccard 系數相關的指標叫做Jaccard 距離,用於描述集合之間的不相似度。Jaccard 距離越大,樣本相似度越低。公式定義如下:
$d_{j}(A, B)=1-J(A, B)=\frac{|A \cup B|-|A \cap B|}{|A \cup B|}=\frac{A \Delta B}{|A \cup B|}$
其中對稱差(symmetric difference)$A \Delta B=|A \cup B|-|A \cap B|$ 。
性質:$J(A, B) \in[0,1]$
