圖嵌入專題(四):圖嵌入與矩陣分解

2021-02-19 MINS

在圖嵌入專題的前三篇文章中,我們分別從圖嵌入算法的整體概況、基於深度學習的圖嵌入算法以及基於skip-gram的圖嵌入算法三個方面進行了介紹。本文從圖嵌入算法與矩陣分解算法的關係出發,對圖嵌入算法進行進一步的介紹。    

圖嵌入與矩陣的關係

    圖嵌入算法的基本思想,是通過一種學習方式,將複雜網絡中的節點表達成一個低維的向量,使其能夠反映出該節點在網絡中複雜的交互信息。早期的圖嵌入算法通過構造一個設計好的節點連接矩陣,通過矩陣分解的方式學習到節點的嵌入向量;近年來,許多的圖嵌入算法雖然沒有顯式地構建連接矩陣(例如deep-walk算法),但本質上依然可以近似為對一種隱性的連接矩陣進行分解。這一節我們先介紹圖嵌入算法與矩陣分解的聯繫,在第二節我們將以deepwalk為例詳述這一過程。

    圖嵌入算法的基本思想是,對於一個節點,首先尋找它的鄰近節點(這裡簡稱鄰域),通過該節點鄰域的嵌入信息,學習到該節點的嵌入表示。一般來講,與目標節點直接相連的節點,可以被看作它的一階鄰域,例如對於下述網絡:

如果圖嵌入算法只考慮了與目標節點直接連接的節點(即一階鄰域),例如我們在圖嵌入算法(三)中介紹的,deepwalk算法通過截斷式隨機遊走尋找鄰域,如果設置隨機遊走的長度為1,則得到的實際是鄰接矩陣:

如果圖嵌入算法考慮二階鄰域(即鄰域的鄰域),也就是deepwalk算法的遊走長度為2,則得到的節點的連接矩陣為:

當然,如果根據節點的鄰近關係設置不同節點之間的權重,則上述矩陣將不再是0,1矩陣,而是一個帶權矩陣。可以看出,在我們的例子中僅6個節點,二階鄰域構成的節點連接矩陣已經非常稠密了。那麼在大型的網絡中,如果設置鄰域的窗口長度L趨近於無窮,則連接矩陣將被節點之間的近似關係填滿。

    圖嵌入算法,編碼的雖然是節點,編碼需要保留的信息卻是圖中的拓撲結構,即節點之間的連接關係。因此,有了節點之間的連接矩陣後,圖嵌入算法的假設是,這個連接矩陣是低秩的。因此可以通過某種低秩矩陣近似方法來學習節點的嵌入表達,並且這些圖中重要的連接信息,能夠通過這個低維的嵌入向量得到很好的編碼。

小結一下,雖然圖嵌入算法有很多,但他們通用框架本質上都是相似的。即先通過一種方式得到節點的連接矩陣,再通過一種方式對該連接矩陣進行分解。根據對節點鄰域的定義不同,不同的圖嵌入算法將得到不同的連接矩陣。例如有的算法直接用鄰接矩陣進行嵌入,skip-gram算法通過設置隨機遊走的窗口長度尋找鄰域。得到連接矩陣也就是得到了節點的鄰域信息,不同的嵌入算法按照不同的方式利用鄰域信息進行嵌入。

   

 論文[2]從數學上對基於skip-gram的網絡嵌入方法進行了理論證明:

DeepWalk,Line,PTE從理論上講都是一種隱式的矩陣分解。(這篇文章從數學書推導出了三種模型近似的矩陣分解形式);

當節點的上下文規模被設為1時,Line實際上是DeepWalk的一個特殊形式;作為Line的一種擴展,PTE可以被看作多個網絡的拉普拉斯矩陣的聯合分解;

這篇文章發現了DeepWalk的隱式矩陣和圖拉普拉斯算子之間的理論聯繫。

文中推導出的關於DeepWalk,Line,PTE和node2vec的近似隱性矩陣分解形式為: 

    矩陣分解的一般形式為 W=UV,而基於skip-gram的嵌入算法在學習過程中卻從而產生過類似的矩陣分解形式。本節將以DeepWalk為例,分析其學習方式的內在原理,探究其與矩陣分解形式的共性。我們知道,DeepWalk在訓練過程中需要維護一個target矩陣和一個context矩陣。target矩陣中存儲的是最終要得到的嵌入向量,context矩陣中存儲的是作為上下文節點時節點的嵌入向量。每次訓練時從target矩陣中抽出相應的列,與context矩陣的每一行作內積,就可以得到當前節點與所有節點的近似關係,即:

其中正樣本是通過隨機遊走得到的,除此之外的節點都是負樣本,這一步其實就是在構建節點連接矩陣。所以,通過將當前節點的target向量與所有節點的Context向量一一相乘,就可以得到這些節點兩兩之間的相似度,再通過一層softmax函數,就可以對哪些節點該讓其更接近,哪些節點該讓其遠離進行優化。

    

    從而我們發現,若對所有節點進行一次訓練,則實際上就是Targer矩陣中的每一列與Context矩陣的每一行相乘,從而有W = UV,這裡U是Target矩陣,V是Context矩陣,W是相乘後的矩陣。

    通過分析發現,得到的W矩陣表徵的正是節點之間的兩兩近似關係。反過來思考,現在我們通過隨機遊走知道了正負樣本,即連接矩陣W,我們的目標是得到節點的嵌入矩陣U,這其實正是對W矩陣的分解過程。具體地,我們將W分解為矩陣U和矩陣V的乘積,U是我們想要的Target矩陣,那麼V就是附加產生的Target矩陣。

    事實上,為了簡化訓練的過程,DeepWalk並沒有將非正樣本之外的節點全部作為負樣本,而是進行了一種負採樣的方式對負樣本進行抽取。如果從矩陣分解的視角來看,就是構建的連接矩陣W並沒有徹底反映出節點之間的連接關係,而只反應部分行之間的連接關係(即正樣本和負樣本所在行)。在矩陣分解的過程中,也只有這部分行成為了優化的目標,而大部分行(既不是正樣本也不是負樣本所在行)則在訓練過程中被忽視了。

    [4]從一個更一般的視角推導出最大化嵌入算法的目標函數相當於對一個偏移相似度矩陣進行矩陣分解。其中S是節點的相似度矩陣,是平衡兩個子目標矩陣的參數。下面我們將展示[4]中的推導過程。

    對於一個嵌入算法,我們有如下目標函數:

其中衡量的是節點對的相似度,它越大,表示節點對越相似。衡量的是嵌入向量的相似度,它越大,表示這兩個節點的嵌入向量越相似。是兩個增函數。優化目標為最大化O1,意味著節點之間的相似度和他們嵌入向量的相似度都要達到最大。同樣的有第二個目標函數:

其中表示減函數,最大化O2就相當於要最小化節點之間的相似度和他們嵌入向量之間的相似度。結合O1和O2有:

上述定義的可以被任意選擇,通過選擇合適的函數,可以得到DeepWalk,Node2Vec,Cauchy Graph Embedding的目標函數。

    論文[4]接下來從上述通用的目標函數推導出了Cauchy Graph Embedding的目標函數。將嵌入向量之間的相似度換成距離,可以得到替代的目標函數為:

另外將上述抽象函數具體化:

從而可以得到目標函數:

這個目標函數正是Cauchy Graph Embedding優化的目標函數。

現在我們將通過將上述抽象函數具體化的過程,推導出圖嵌入的矩陣分解形式。將上述抽象函數具體化為:

從而可以得到:

                

為了最大化上述目標函數,我們將和有關的偏導數設為0,並簡化公式,得到:

現在將單個節點i,j擴展到全部節點,上述公式可以被表示為:

至此,這篇論文證明了嵌入向量可以被看成是矩陣S的分解形式。下面我們來探究矩陣S的具體形式。

可以看到,只是對嵌入結果貢獻了一個乘法因子,因此可以將其忽視,從而得到:

其中。這就是被分解的矩陣,它相當於一個進行了偏移的節點相似度矩陣

    在前面幾個章節中,我們分別從不同的方面介紹了嵌入算法和矩陣分解的聯繫。在本章中,我們將介紹一種基於矩陣分解視角提出的嵌入算法:BoostNE[3]。

    [3]認為,現在的嵌入算法都嘗試使用一個嵌入向量來表示節點在圖中複雜的交互信息,這種假設太強,當涉及到複雜網絡和複雜交互時,這種one size fits all的嵌入並不能充分編碼這些信息。它指出,傳統嵌入的嵌入算法本質上都是首先構建連接矩陣,然後通過對連接矩陣進行分解得到嵌入向量。例如對於DeepWalk來說,得到的節點連接矩陣是一個非負矩陣,為了得到節點的嵌入表達,可以採用非負矩陣分解的方法對這個連接矩陣X進行分解:

分解後的矩陣,d是嵌入表達的維度,它遠遠小於節點的個數n。這種非負矩陣分解的方法背後隱含的意義是這個連接矩陣X是全局低秩的。這篇文章認為,這種全局低秩的假設在現實場景中是很難成立的,尤其涉及到複雜的節點交互時。因此單個的矩陣分解得到的嵌入結果不足以近似出節點之間全部的連接關係。

    為了得到更好的嵌入表達,這篇文章採用了一種迭代近似的矩陣分解算法。在每輪迭代的矩陣分解中,他們鬆弛了全局低秩的假設。相反地他們認為原始的連接矩陣X是通過多階的NMF才得到很好的近似。基於這種思想,有下列優化函數:

也就是說,這個算法會執行一系列矩陣分解的操作,每次的矩陣分解擬合的目標都是上一次矩陣分解擬合的殘差。可以理解為初始嵌入表示提供節點連接模式的粗略視圖,而後者嵌入提供細粒度嵌入表示。換句話說,就是不同階段的矩陣分解呈現不同粒度的嵌入視圖。更具體地,在第i次迭代的矩陣分解定義如下:

    

下圖對該BoostNE算法進行了進一步的展示:

它首先構建了一個連接矩陣,然後通過嵌入算法進行對該矩陣進行第一次擬合,將擬合殘差作為下一輪迭代的目標矩陣。最終的嵌入表達是所有迭代輪次嵌入向量的集成。

該算法的偽代碼如下:

實驗設置

這篇文章的對比算法主要來自於兩類:

(1)基於矩陣分解的嵌入算法

Spectral Clustering[5]:這個算法將網絡拉普拉斯矩陣的前K個特徵向量作為節點的嵌入向量

Modularity[6]:他假設良好的嵌入能夠最大化節點劃分的模塊性,從網絡的模塊矩陣中提取了前K個特徵向量

GraRep:該方法通過捕獲節點之間的不同k步關係信息來學習節點嵌入表示。

(2)基於skip-gram的嵌入算法 

這篇文章在四個數據集中,通過節點分類問題證明了該算法的優越性。評價指標只要為微F1和宏F1,定義如下:

實驗結果

該文章首先利用多標籤節點分類問題對比了BoostNE算法和其他算法的嵌入質量,如下表3-6所示:

接下來,這篇文章也比較了該多階網絡嵌入算法在不同的階數K時的近似誤差,可以看出在四個數據集上,隨著矩陣分解階數提高,近似誤差逐漸變小。

在知道了更大的近似階數導致更小的近似誤差後,論文又進一步分析不同的近似階數對嵌入質量的影響:

從上圖中看出,隨著矩陣分解階數的增多,嵌入向量分類表現首先達到了頂峰,接著逐漸下降。最好的分類結果在K為4或8時獲得。通過實驗,這篇文章證明了其觀點的正確性,即全局的節點連接矩陣不一定符合低秩假設,文章鬆弛了這一全局假設,提出了一種從不同粒度由粗到細學習多個網絡表達的方法。實驗證明了該方法要優於現階段的圖嵌入算法,即多個弱嵌入表達的集合能產生更有辨別性的節點表達。

本文分別從理解和理論兩個角度介紹了嵌入算法和矩陣分解之間的聯繫,並介紹了一種基於矩陣分解視角的嵌入算法。希望讀者能夠從本文中加深對圖嵌入算法的理解。後續我們會繼續對圖嵌入算法進行介紹,並總結出它未來的研究方向。


參考文獻

[1]https://zhuanlan.zhihu.com/p/29305464

[2]Network Embedding as Matrix Factorization= Unifying DeepWalk, LINE, PTE, and node2vec (arXiv, 2018)

[3]Multi-Level Network Embedding with Boosted Low-Rank Matrix Approximiation (arXiv, 2018)

[4]A General View for Network Embedding as Matrix Factorization(WSDM,2019)

[5]Lei Tang and Huan Liu. Leveraging social media networks for classification(Data Mining and Knowledge Discovery,2011)

[6]Lei Tang and Huan Liu. Relational learning via latent social dimensions.(KDD,2009)

[7]Shaosheng Cao, Wei Lu, and Qiongkai Xu. Grarep: Learning graph representations with global structural information.(CIKM,2015)

[8]Bryan Perozzi, Rami Al-Rfou, and Steven Skiena. Deepwalk: Online learning of social representations.(KDD,2014)

[9]Jian Tang, Meng Qu, Mingzhe Wang, Ming Zhang, Jun Yan, and Qiaozhu Mei. Line: Large-scale information network embedding.(WWW,2015)



相關焦點

  • 詞嵌入和矩陣分解的統一
    SGNS的基本過程大致如上圖所示,但當對輸出層使用softmax函數時,需要用單詞的上下文嵌入(context embedding)矩陣C乘以輸入單詞的詞嵌入矩陣W,該圖在這一點上未能清楚描述。對輸出層採用softmax函數,其計算量過大。負採樣(negative sampling)的引入能夠有效緩解這個問題。
  • 從圖嵌入到圖卷積:深度圖神經網絡的技術發展史
    為了便於理解,後續將圖神經網絡簡單劃分為兩類進行介紹:圖嵌入方向、圖卷積網絡方向。圖嵌入神經網絡方面,簡要介紹了以DeepWalk為代表的,優化圖頂點間Embedding相似度的一類模型,而圖卷積神經網絡方向則更多介紹其基礎理論的推導過程。
  • 1分鐘訓練百萬級別節點嵌入,Mila開源圖嵌入訓練系統GraphVite
    該研究顯著加快了圖嵌入、知識圖譜嵌入和圖結構&高維可視化的訓練速度,將多個標準數據集上的嵌入訓練時間刷新到了 15 分鐘左右,直接促進了圖上嵌入算法的實現與迭代,間接影響了圖表徵學習算法研發的範式。單 GPU 17 分鐘生成完整 ImageNet 數據集特徵空間的可視化,極大地方便了深度學習模型的調試和可視化。
  • 10分鐘了解圖嵌入
    知識圖譜中的客戶數據樣本以及該圖中附加的嵌入向量去年,圖嵌入在企業知識圖譜(EKG)策略中變得越來越重要。 圖形嵌入將很快成為在大型十億頂點EKG中快速找到相似項目的實際方法。 實時相似性計算對於許多領域至關重要,例如推薦,最佳行動和隊列構建。
  • 總結|為什麼要進行圖嵌入Graph embedding?
    如果要解決以上的問題,我們首先需要做的是對圖進行表示,graph embedding 是中非常有效的技術。1.什麼是圖嵌入(graph embedding)?圖嵌入是一種將圖數據(通常為高維稠密的矩陣)映射為低微稠密向量的過程,能夠很好地解決圖數據難以高效輸入機器學習算法的問題。圖嵌入需要捕捉到圖的拓撲結構,頂點與頂點的關係,以及其他的信息,如子圖,連邊等。
  • 圖計算黑科技:打開中文詞嵌入訓練實踐新模式
    圖1.如下圖所示,整個網絡分為兩部分,第一部分是利用詞特徵矩陣C獲得詞的分布式表示(即詞嵌入)。第二部分是將表示context的n個詞的詞嵌入拼接起來,通過一個隱藏層和一個輸出層,最後通過softmax輸出當前的p(wt|context)(當前上下文語義的概率分布,最大化要預測的那個詞的概率,就可以訓練此模型)。
  • 精彩論文|基於嵌入波矢濾波算法設計的「域」復用計算全息圖
    另外,基於對光的不同描述,一束光可以被分解為不同位置的球面波或者不同傳播方向的平面波(如圖1所示),該工作證明,這兩種不同的分解方式也可以復用起來,實現光經過同一個相位片後,在這兩種分解域呈現出不同圖片的功能!而且,這兩幅圖片之間的切換僅需做一次光學傅立葉變換,即插入一個普通透鏡!
  • 綜述 | 異質圖嵌入綜述: 方法、技術、應用和資源
    異質圖嵌入(Heterogeneous Graph Embedding, HGE),旨在在低維的空間中學習節點表示,同時保留異質結構和語義用於下遊任務(例如,節點/圖分類,節點聚類,連結預測),在近年來受到了廣泛的關注。在綜述中,我們對異質圖嵌入的方法和技術的最新進展進行了全面回顧,探索了異質圖嵌入的問題和挑戰,並預測了該領域的未來研究方向。
  • 從近期兩篇論文看大規模商品圖嵌入
    GATNE,該框架同時支持轉導式學習(transductive learning)和歸納式學習(inductive learning),在 Amazon,Youtube,Twitter 和 Alibaba 四個數據集上取得顯著提升。
  • 深入淺出詞嵌入技術
    X分解,因為矩陣X比較稀疏,從矩陣論的角度來看,希望學到更低秩的表示方法。因為矩陣分解中的共現矩陣中的統計信息是來自於所有的語料庫,因此矩陣分解得到的詞向量是全局的方法(Global Method)。由於CBOW、SkipGram模型每次考慮的是中心詞和它周圍的單詞,因此CBOW、SkipGram模型得到的詞向量是局部的方法(Local Method)。
  • 【知識圖譜】知識圖譜嵌入模型簡介
    在訓練學習實體和關係的嵌入表示時,優化目標是使得知識圖譜中已有三元組得分儘可能比未出現的三元組得分要高。根據打分函數的定義形式,可以將知識圖譜嵌入模型大致分為基於距離的模型、雙線性模型和神經網絡模型。部分知識圖譜嵌入模型的打分函數對比見表2。
  • ACL2020|基於正交關係轉換與圖上下文建模的知識圖嵌入
    1研究背景知識圖譜是一種多關係圖,節點表示實體,邊表示實體之間的關係。知識圖譜嵌入表示了連續向量空間中的實體和關係,可以用於連結預測等方面,大致可以分為基於距離和語義匹配模型兩類。以上模型取得了很大的進展,但是對於1-N ,N-1和N-N的複雜連結的預測仍然具有挑戰性,如下圖為一個N-N的示例,相關的邊用綠色表示。並且,上述知識圖嵌入方法主要針對單個三元組的建模,但是它們忽略了知識圖譜的結構,沒有充分利用鄰近節點和邊的上下文,由此有研究者引入了圖神經網絡對知識圖譜結構進行學習,該研究團隊提出了一種可以直接集成圖的上下文來計算距離評分函數的方法。
  • 圖模型+Bert香不香?完全基於注意力機制的圖表徵學習模型Graph-Bert
    通過將原始圖分解為以每個節點為中心的多個子圖來學習每個節點的表徵信息,這不僅能解決圖模型的預訓練問題,還能通過並行處理還提高效率。模型結構介紹Graph-Bert 主要由四部分組成:1、將原始圖分解為無邊子圖(不考慮子圖中的邊信息)2、節點輸入特徵的嵌入表示3、基於圖transformer的節點表徵學習編碼器
  • 康納斯嵌入問題:計算機科學中的裡程碑式的數學證明
    康納斯嵌入問題(英文:Connes embedding problem),也稱康納斯嵌入猜想(英文:Connes embedding conjecture),是由當代著名法國數學家阿蘭·康納斯(Alain Connes)在1970年代提出的關於馮·諾曼代數理論(英文:Von Neumann algebra)中的一個主要問題。
  • 從數據結構到算法:圖網絡方法初探
    然而這兩種劃分依據並不合適,因為當前圖嵌入算法的主要區別在於算法類型,同一算法類型下的框架都是相似的,因此本文基於 Hamilton 等 [1] 和 Goyal 等 [2] 兩篇關於圖嵌入的綜述,將圖嵌入方法概括為基於矩陣分解的圖嵌入、基於隨機遊走的圖嵌入、基於神經網絡的圖嵌入(即圖神經網絡)。
  • 圖(LabVIEW)文(Python)並茂嵌入編程展望
    這裡我僅對嵌入編程所選擇的兩款工具展開說說,一是LabVIEW圖形化程式語言,另一是Python腳本化解釋性程式語言。嵌入編程領域,我們特指除桌面PC機編程和雲端服務和客戶端的編程以外,眾多其它的電子產品編程,這領域90%以上還是C/C++程式語言雄霸著,選擇LabVIEW和Python來進行嵌入編程,多多少少會被公眾意識判為異類,但公眾意識一般都是滯後意識。
  • PPT實用技巧(3)--嵌入字體
    小學生在初學英語字母時,教師都會嚴格要求他們按照書寫規範,在四線三格上正確地書寫字母。但是英語字母有印製體和書寫體之分,使學生容易混淆; 英語字母的佔格同樣是字母書寫教學中的一個難點。(改作業時,真是難過呀~)    所以在給學生強調單詞的書寫方式時,需要用到xumin字體。那對於低年段的學生來說,還要強調單詞在四線三格裡的書寫方式。
  • 論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用
    但博客文章中有一個容易錯過的細節,那就是指向他們的網絡架構圖的一個超連結。在這篇博文中,我想集中討論他們網絡架構的一個方面,即他們創造性地使用嵌入來處理數量巨大並且可變的策略輸入和輸出。雖然嵌入以及注意力機制的點乘積的應用是自然語言處理中的標準技術,但它們並未廣泛用於強化學習中。
  • ps怎麼把圖片嵌入選區
    有時候我們需要把圖片嵌入到某一特定形狀的選區中,那麼ps怎麼把圖片嵌入選區呢?下面就來介紹一下ps中把圖片嵌入到選區的方法,希望對你有所幫助。
  • 從詞嵌入到含義嵌入:概覽含義向量表示方法
    PPDB(Paraphrase Database)基於圖結構,以詞組為節點,以詞組間的相互關係為邊。知識增強詞向量方法知識增強詞表示(knowledge-enhanced word representation)利用知識資源改進現有的詞向量表示,加上文本語料中未包含的信息。