網絡表徵學習綜述

SIGAI 特邀作者:VicFig

研究方向:機器學習,圖像處理

背景

當前機器學習在許多應用場景中已經取得了很好的效果,例如人臉識別與檢測、異常檢測、語音識別等等,而目前應用最多最廣泛的機器學習算法就是卷積神經網絡模型。但是大多應用場景都是基於很結構化的數據輸入,比如圖片、視頻、語音等,而對於圖結構(網絡結構)的數據,相對應的機器學習方法卻比較少,而且卷積神經網絡也很難直接應用到圖結構的數據中。在現實世界中,相比圖片等簡單的網格結構,圖結構是更泛化的數據結構,比如一般的社交網絡、互聯網等,都是由圖這種數據結構表示的,圖的節點表示單個用戶,圖的邊表示用戶之間的互聯關係。針對網絡結構,用向量的數據形式表示網絡結構、節點屬性的機器學習方法就是網絡表徵學習。

圖的鄰接矩陣是將邊的信息表示成了N*N的矩陣(N爲節點個數)通過鄰接矩陣可以將圖重建,那麼是否可以直接用鄰接矩陣的列向量作爲圖節點的表示向量呢?其實是可以的,但是這種表示形式有兩個問題:第一,圖結構中,任意兩個節點不一定是相連的,通常一個節點僅有很少的鄰居,因此鄰接矩陣是稀疏矩陣,倘若節點數目很多(如社交網絡,用戶可能達百萬級甚至更多),以鄰接矩陣直接表示圖結構將非常不划算。第二,鄰接矩陣僅僅表示了邊的信息,而無法加入節點的本身屬性,在當前的很多應用中,我們不僅僅需要表示圖的結構屬性,而且還伴隨着節點本身的屬性(比如社交網絡中,每個用戶的性別,年齡,愛好等)綜合以上兩點問題,網絡表徵學習的目的就有了兩個:第一,我們要學習一種低維度的向量表示網絡節點,將節點映射到相應的向量空間,這種網絡表徵學習就是關於圖結構的網絡表徵學習,也稱網絡嵌入;第二,我們的表示不僅僅可以表徵網絡結構,同時也可以表徵節點本身自帶的屬性,這種表徵學習,就是伴隨節點屬性的網絡表徵學習。通常第二種表徵學習方法都是從第一種方法中推廣而來。

傳統網絡分析 VS. 網絡表徵學習【1】

關於圖結構的網絡表徵學習

關於圖結構的網絡表徵學習重點關注的是網絡的拓撲結構與性質,是網絡表徵學習中最基本的一類方法,其目的在於如何得到節點在低維空間中的向量表示,使得向量之間的關係可以保持圖結構中節點之間的結構關係。同時,我們需要確定向量之間距離的一種度量方式,用來表徵對應節點之間的相似性。

節點之間的結構關係就是邊的連接,比如直接鄰居節點,就應該比二階鄰居(鄰居的鄰居)或高階鄰居(鄰居的鄰居的…)與原本節點的關係更緊密,因爲直接鄰居與原節點有邊的直接連接。這種緊密關係應該可以用向量的距離來表示。節點之間的性質關係,則對應在邊的性質。首先是邊的權重,如果兩個向量距離較小,那麼在原圖中對應兩個節點之間邊的權重越小(也可能越大,權重表示距離則權重越小;權重表示相似度則權重越大)。其次是邊的方向,在無向圖中邊僅代表連接,但對於有向圖,邊的指向將影響節點之間的連接方式。下面我將介紹幾種常見且有效的網絡表徵方法。

DeepWalk

DeepWalk【2】是KDD 2014的一篇文章,這種方法的核心思想是,採用隨機遊走的方式,將網絡結構節點之間的關係轉化成句子,那麼不同節點就代表不同的詞,然後用自然語言處理中Word2Vec的方法得到節點的低維度向量表示。那麼這種方法其實就是分兩步:隨機遊走,和詞向量表示學習。我們分別來看看這兩步操作到底是什麼:

隨機遊走就是在網絡結構中,以某個節點做起點,然後以一定的概率隨機移動到其鄰居位置,再從鄰居位置隨機移動,直到走t步(t是預先設定好的參數),於是得到一個由t個“詞”(節點)組成的“句子”(序列)。圖中每個節點都要作爲起點做隨機遊走,設有N個節點;且每個節點都要做r次隨機遊走,那麼最後就可以得到N*r個“句子”,每個“句子”都是由t個“詞”組成。

接下來是詞向量表示學習的方法,原工作中使用Skip-gram的方法學習詞向量表示,具體思想類似於極大似然概率:比如現在有一個隨機遊走得到的句子(序列) A B C D E,每個字母代表一個詞(節點),這個句子共5個詞。這個句子之所以出現,是因爲這種詞的順序是常見的形式(比如我們只能從一羣學生中抽1個學生,問他考試前是否複習,如果這個同學說複習,那麼我們就會更傾向於相信在這個羣體中,考試動作之前會發生複習動作的概率更大),所以我們可以認爲C詞很大概率就是與B詞和D詞相鄰的,我們以C詞的詞向量作爲輸入,那麼其鄰居詞中,B詞和D詞出現的概率就應該更高,也就是P(鄰居是B詞和D詞 | 輸入爲C詞的詞向量)的值應該更高,那麼我們就應該更新C詞的詞向量,使得上述的條件概率最大。其更新公式如下所示:

Node2Vec

Node2Vec【3】是KDD 2016的一篇文章,Node2Vec的方法同樣也是採用了隨機遊走和Skip-gram的學習方法,主要的創新點在於隨機遊走的策略。在 Node2Vec方法中對隨機遊走向鄰節點轉移的概率做了調整。

Node2Vec偏置示意圖【3】

圖中t是上一次走的節點,v是當前節點,α是一個偏置,影響最終的轉移概率,轉移概率的公式如下:

式中???爲邊的權重,πvx表示轉移概率。由圖可知,v點回到t點轉移概率的偏置設爲1/p,v點向x1點(既與v相連,又與t相連)轉移概率的偏置設爲1,v點向其他點轉移概率的偏執設爲1/q

這種方法的好處是結合了BFS(p控制)與DFS(q控制)來做隨機遊走(DeepWalk方法是基於DFS的)以兩個參數p,q來控制,得到的序列可以更全面地表示網絡結構中節點的鄰居關係。

LINE

LINE方法由2015年發表在WWW會議上的論文【4】提出來。首先我們需要使用卷積神經網絡模型對節點提特徵,得到節點的低維向量表示,那麼究竟怎樣的低維向量表示是更好的呢?作者提出了兩種相似度的衡量方式:一階相似度和二階相似度,其中一階相似度表示節點與直接鄰居之間的相似性,二階相似度表示節點與高階鄰居之間的相似性。原本網絡結構中邊的連接和權重表示了節點之間的相似性,在這裏不妨設權重越大,表示兩個節點越相近。那麼我們得到的低維向量表示,也一定需要符合原結構中各個節點的相似性關係。

一階鄰節點與二階鄰節點【4】

首先我們來看看一階相似度。式中,

是根據網絡邊的權重計算出的節點之間相似度,???是連接節點i,j邊的權重。其本質是選中i,j兩個節點的經驗概率。

而節點的低維向量的內積,可以用來衡量兩個向量的相似度(距離),式中使用了sigmoid函數,將向量的內積映射到[0,1]之間。也可以表示i,j兩個節點同時出現的聯合概率

接下來作者以KL散度,來衡量兩個概率分佈的距離作爲損失函數,並通過BP算法更新卷積神經網絡的參數。優化函數如下所示

對於二階相似度,首先求得在節點i出現的條件下,節點j出現的條件概率,即從i出發,能到達j的條件概率;然後求得網絡結構中兩個節點的經驗條件概率,始終的分母表示i點的度;最後同樣利用KL散度表示兩個分佈的差異,求得優化函數如下。

最後我們可以將一階相似度和二階相似度結合在一起,共同訓練卷積神經網絡的參數。

SDNE

論文【8】提出了一種半監督模型來做圖嵌入,引入了自動編碼機的模型架構,以鄰接矩陣中第i個列向量表示節點i,設爲,輸入編碼器,得到低維的

SDNE模型結構

編碼向量設爲yi,那麼對於原圖結構中相連的節點i,j,對應的編碼向量的距離應該很小,因此這裏引入一個監督學習的目標函數

式中???表示鄰接矩陣中i,j兩個節點的連接情況。同時我們還需要訓練解碼器,使得解碼得到的輸出設爲

,與輸入xi相同,於是引入了無監督學習的損失函數

但是由於輸入xi爲鄰接矩陣的列向量,其中會有很多0元素,我們更希望要求輸出與輸入在非0元素處的值相近,即最好保證原始邊的權重不變,因此在上式中加入了一個懲罰因子?? ∈ R?,使損失函數在非0處不同的值有更大的懲罰項。

於是總損失函數包含三個部分:監督學習的損失函數L1、無監督學習的損失函數L1,以及參數正則化項

最終我們編碼器的輸出??即爲對節點i的向量表示。

伴隨節點屬性的網絡表徵學習

伴隨節點屬性的網絡表徵學習,則是在關於圖結構的網絡表徵學習基礎上,加入了節點本身的屬性,例如社交用戶組成的網絡,每個節點表示一個用戶,同時每個用戶有其自己的屬性,比如年齡、性別、星座、愛好等,我們其實最需要的是節點本身的屬性,但經常我們得到的標籤可能並不完全精準或全面,而網絡中邊的存在,使用戶之間的信息可以得到交流,我們可以通過鄰居的節點屬性,更新原節點的屬性,可以得到相對更精準或全面的節點屬性,在推薦系統等方面有着很好的應用前景。

伴隨節點屬性的網絡表徵學習方法,通常都是由關於圖結構的網絡表徵學習方法變體而來,這裏我將主要介紹圖卷積的方法,將神經網絡應用在網絡結構中。

一般的網格結構,如圖片,可以看作網絡結構的一種特殊形式:一個像素點表示一個節點,而相鄰的像素點表示互聯的鄰居。這種結構的特殊性在於每個節點的鄰居個數是固定的(每個節點有6個鄰居,H,W,C維度各2個),所以神經網絡的卷積可以很輕鬆地做到參數共享。而對於一般網絡結構的節點,其鄰居個數是不固定的,因此普通的神經卷積網絡很難直接應用其中。最近幾年研究者提出圖卷積的操作,並逐漸進行改進,最終取得了很好的效果。

圖譜域的圖卷積

起初圖卷積是在圖譜域計算的。兩個時域信號的卷積,在頻域上是相乘的關係;兩個圖片的卷積,也可以通過二維傅立葉變換轉化成頻域的乘法。因此研究者定義了圖結構數據的傅立葉變換,將圖從節點域轉換到圖譜域,那麼圖卷積就可以通過圖譜域上的乘法來實現。如果大家想詳細瞭解圖卷積的理論知識的話,可以參考論文【5】,或者網址【6】中的回答。

首先類比連續信號的傅立葉變換?(?) = F[?(?)] = ∫ ?(?)?−?????,其中?−???是拉普拉斯算子的特徵函數,那麼對於圖結構,拉普拉斯矩陣數學意義上等同於離散的拉普拉斯算子,我們找到拉普拉斯矩陣的特徵向量和特徵值? = ???−1 = ????(U列向量是單位特徵向量,∧特徵值的對角矩陣),那麼圖的傅立葉變換即爲

= ?? ⋅ ?。最終圖卷積可以表示爲圖譜域的乘法,再做逆傅立葉變換得到節點域的結果

我們設? = (?? ⋅ h)爲卷積核,將向量點乘轉化爲與對角矩陣的乘法,卷積層的輸出可以表示爲

式中?{}表示激活函數。這就是最初的圖卷積操作流程,這個初版本的圖卷積有兩個很大問題:第一,每次前向傳播都需要計算? ⋅ ????(?) ⋅ ??;第二,參數個數與節點個數相同,倘若網絡複雜,節點個數達百萬級,則卷積參數將非常大。因此論文【7】提出了圖卷積的改進版

節點域的圖卷積

經過簡化,則有

通過對參數的近似,將卷積從圖譜域的計算簡化到節點域,省去了計算? ⋅ ????(?) ⋅ ??的操作,同時將參數個數從節點個數減少到K個,K是預先設定的參數。在節點域上這種簡化的卷積操作本質上表示K階鄰居的屬性向量,按權重??影響當前節點的屬性向量。下圖中表示K=1時(僅有一階鄰居影響當前節點屬性向量)的更新操作。

紅色節點的一階鄰居用來更新該節點

以上的方法,都是從圖譜理論出發,通過推導得到的計算過程,改進版的GCN方法實現了節點域的卷積操作,上述方法中的K類似於傳統CNN中的kernel_size,決定了卷積核的感受野(每個節點的感受野中節點數目很可能是不相同的,因爲每個節點的鄰居個數不是固定的)。

除此之外,還有一種更加直觀,直接從節點域出發的計算卷積方法:我們固定每個節點的感受野中只有M個節點,然後對每個節點計算其他節點與它的距離(一階鄰居可以直接使用邊的權重;高階鄰居則需要額外的距離函數),並按照距離進行排序,選取前M個最近的節點作爲感受野中的節點。這種方法中參數個數爲M個,同樣也是在節點域執行了卷積操作,但這種方法的最大難點在於如何選取魯棒性強的距離函數。

小結

當前網絡表徵學習仍是正在研究中的熱門課題之一,網絡作爲更加泛化的數據形式,其結構的複雜度也遠高於普通的網格結構(圖片)。爲了挖掘網絡結構本身的性質,出現了關於圖結構的網絡表徵學習,研究着重於節點之間的拓撲結構關係。但是網絡中蘊藏的信息不僅僅是拓撲關係,更重要的是每個節點自己的屬性,因此從關於圖結構的網絡表徵學習中,衍生出伴隨節點屬性的網絡表徵學習,起目的是利用網絡中節點的拓撲關係,確定或完善每個節點本身的屬性信息。

參考文獻

【1】 王嘯 崔鵬 朱文武. 網絡表徵學習中的基本問題初探[J] 中國計算機學會通訊. 2018.

【2】 Perozzi, Bryan, Rami Al-Rfou, and Steven Skiena. "Deepwalk: Online learning of social representations." Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014.

【3】 Grover, Aditya, and Jure Leskovec. "node2vec: Scalable feature learning for networks." Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016.

【4】 Tang, Jian, et al. "Line: Large-scale information network embedding." Proceedings of the 24th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2015.

【5】 Bruna, Joan, et al. "Spectral networks and locally connected networks on graphs." arXiv preprint arXiv:1312.6203 (2013).

【6】 https://www.zhihu.com/question/54504471

【7】 Defferrard, Michaël, Xavier Bresson, and Pierre Vandergheynst. "Convolutional neural networks on graphs with fast localized spectral filtering." Advances in Neural Information Processing Systems. 2016.

【8】 Wang, Daixin, Peng Cui, and Wenwu Zhu. "Structural deep network embedding." Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章