在現實的網絡中,構成網絡的每個節點可能在網絡中擔任着某種角色。比如社交網絡中,經常可以看見一些關注量很高的大V。兩個大V在網絡中的角色可能相同,因為他們都有很高的關注量;而大V與普通人(僅有幾個關注)在網絡中的角色則是不同的,這就是所謂的某個節點的結構身份(structural identity)。
常見的一些可以決定某個節點的結構身份的方法有兩種。一種是基於距離的方式,通過鄰居信息計算每個節點對之間的距離,然后通過聚類、匹配的方式來將結構相似的節點放到一起。另一種是基於遞歸的方式,就是通過遞歸的方式將所有鄰居的信息聚合得到一個值,根據這個值決定是否是結構相似的。
之前的很多網絡表示的工作的思路是利用鄰居作為上下文。如果兩個節點的共同鄰居越多,那么表示這兩個節點越相似,自然就要減小他們在嵌入空間中的距離。但是這種方法無法鑒別結構相似但是距離非常遠的節點對,換句話說某些節點有着類似的拓撲結構,但是它們離得太遠,不可能有共同鄰居(就比如下圖的u和v)。這種情況是之前很多工作沒有考慮到的點。
DeepWalk或node2vec這一類的方法在判斷節點的結構是否等價的分類任務上往往並不能取得好的效果。其根本原因在於網絡中的節點具有同質性(homohily),即兩個節點有邊相連是因為它們有着某種十分相似的特征。因此在網絡中相距比較近的節點在嵌入空間也比較近,因為他們有着共同的特征;而在網絡中相距比較遠的節點,則認為它們沒有共同特征,因此在嵌入空間的距離也會比較遠,盡管兩個節點可能在局部的拓撲結構上是相似的。
如果分類任務更看重同質性的特征,那么DeepWalk類的方法自然可以滿足要求;但是術業有專攻,如果分類任務是想找出哪些節點的局部拓撲結構是相似的,那么DeepWalk自然就不能勝任了。