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