LINE學習


LINE

Abstract

LINE 是一種將大規模網絡結點表征成低維向量的算法,可很方便用於網絡可視化,結點分類,鏈路預測,推薦。
source code

Advantage

LINE相比於其他算法來說有如下幾點優勢:

  1. 適用於大規模網絡。
  2. 有明確的目標函數(這一點DEEPWALK是沒有的,DW沒有提出一個明確的目標函數來告知什么網絡屬性被保留下來,直觀上講,DW更偏向於結點間有更高的二階相似度的有相似的表征)該目標函數既反映了局部結構又反映了全局結構。LINE同時考慮了一階相似度和二階相似度
  • 局部結構:頂點間的一階相似性(由觀察到的頂點間的鏈接強度表示,鏈接強度大的兩結點有相似的向量表示,不足以反映圖的全局結構,因此引入二階相似度)
  • 全局結構:頂點間的二階相似性(由頂點間的共享鄰域來決定,具有共享鄰居的結點更可能是相似的)

用一張圖來直觀理解

關聯圖中6,7結點的是一條強邊,因此結點6,7的向量表示應該相似(一階相似度);而結點5,6因為共享了相似的鄰居,因此5,6的向量表示也應該相似(二階相似度)。

  1. 提出一種新穎的邊采樣的方法解決了隨機梯度下降算法的局限性。(由於現實網絡中邊權的方差往往是非常大的,SGD可能導致梯度爆炸,損害性能)

ps:具體措施:以正比於邊權大小的概率來采樣邊,將被采樣的邊作為二值邊(0 無邊,1有邊)進行模型更新。
在這種采樣過程中,目標函數保持不變,邊的權重不再影響梯度。

  1. LINE可適用於任何類型的網絡:有向無向,有權無權(DW只能適用於無權網絡)

Definition

  • 一階相似度:兩個結點u,v之間的邊權代表u與v之間的一階相似度。若u,v之間無邊,則一階相似度為0.
  • 二階相似度:兩個結點u,v的二階相似度由兩個結點共同鄰居的個數決定。

Model Description

LINE with First-order Proximity

首先,了解一下KL散度和一階相似度的概念

KL散度Dkl(p,q):指用q分布來近似p分布的信息損失。

一階相似度:對於兩個有邊鏈接的頂點,其邊的強度越大,則該兩頂點關系越密切,即越相似。

模型大體過程:

  1. 首先計算兩個結點的聯合概率密度
  2. 其次計算兩結點經驗分布概率
  3. 最小化下列目標函數
    這里的d,兩個分布的距離可以用KL散度來計算,最終目標函數如下:
    即對圖中每條邊,計算相關聯兩頂點的kl散度,求各個結點向量表示ui,使得該目標函數達到最小。

(個人理解PS:但是為什么使得聯合概率分布近似經驗分布的信息損失最小就是保留一階相似度?經驗分布,邊權除以邊權總和一定程度上體現了邊權的重要性,而邊權的大小又是描繪一階相似度的重要信息,因此可以將該經驗分布理解成保留了一階相似度的分布,而求各個結點的向量表示,使得兩節點的聯合分布近似於經驗分布的信息損失最小,即該組向量表示就是體現一階相似度的最優的向量表示)

上述一階相似度只適用於無向圖,而不適用於有向圖。


LINE with Second-order Proximity

首先要理解二階相似度的相關概念

  1. 二階相似度既適用於有向圖也適用於無向圖。
  2. 二階相似度即指,有相同上下文(鄰居)的頂點越相似。

模型大體過程

  1. 首先,每個頂點由兩個向量表示,ui表示該頂點i本身的向量表示,當頂點i被當做是其他頂點的上下文來考慮時,ui’為其向量表示。
  2. 其次計算在頂點i出現的條件下,下一個頂點是j的概率(條件概率)利用該公式,我們可以算出頂點i的條件分布,即
    因此 根據二階相似度的定義,我們不難推出,具有相似條件分布的頂點彼此相似。
  3. 因此,類似於一階相似度,為了更好保留二階相似度,我們需要使得每個結點i的條件分布近似於自身條件經驗分布的信息損失最小。即最小化下述目標函數其中:

  • 為每個結點在網絡中的權重(考慮到每個結點在網絡中的重要性可能不同)。該權重可以通過度來衡量,或者一些算法來計算,比如PageRank算法。
  • 條件經驗分布如下計算
  1. 最后仍然使用kl散度來衡量兩分布的距離。
    最終目標函數如下:

通過學習每個結點i的兩個向量表示ui,ui’來最小化上述目標函數,最終可以得到每個結點的向量表示。


Combining first-order and second-order proximities

那么如何同時結合一階相似度和二階相似度呢?這篇論文提出時涉及了兩種方案:

  1. 分別訓練基於一階相似度的和基於二階相似度的,得到每個結點的兩種向量表示,
    再連接該兩種向量表示。
  2. 同時優化兩個目標函數(3)和(6)來學習向量表示。留待未來研究。

Model Optimization

ps:個人對這部分理解不夠成熟,可能有誤。

優化上述目標函數(6)需要很大的計算開銷(需要對每一條邊進行采樣來訓練模型)。這里使用負采樣來解決問題。

  • Optimization via Edge Sampling

負采樣根據一定的策略選取部分更重要的邊來進行訓練,每次訓練只對神經網絡的部分權重進行更新,大大減少了SGD過程中的計算量。

(ps:正比於邊的權重作為概率進行邊的采樣。一般來說,邊權越大的應該被采樣的概率要越高,在語言學領域:出現單詞對頻率越高的應該被采樣的概率越大)
上述這種邊采樣策略提高了隨機梯度下降的效率。

  • 時間復雜度

LINE 時間復雜度是邊的線性函數,與頂點個數V無關。如下:


Discussion

1. 低度頂點的嵌入表示

由於低度頂點鄰居數目極少,原網絡中提供的信息有限,尤其在基於二階相似度的LINE算法中是非常依賴於頂點的鄰居數目的,那么如何確定低度頂點的向量表示呢?

一種直觀的方法:添加更高階的鄰居(如鄰居的鄰居)來作為該低度結點的直接鄰居。 與新添鄰居邊的權重如下:

dk是結點k的出邊的權重總和。(實際上,可以只添加與低度頂點i有邊的,且邊權最大的頂點j的鄰居作為頂點i的二階鄰居)

2. 如何找到網絡中新添加頂點的向量表示

如果已知新添加的頂點i與現有頂點的聯系(即存在邊),則可得到其經驗分布
之后通過最小化目標函數(3)或(6)可得到新加頂點i的向量表示

如果未能觀察到新添頂點與其他現有頂點的聯系,我們只能求助其他信息,比如頂點的文本信息,留待以后研究。

6.Conclusion

LINE 適用於大規模網絡;既保留了一階相似度,又保留了二階相似度;提出邊采樣算法,只采樣部分且只更新神經網絡部分權值,並且將采樣的邊處理成二進制邊,解決了加權邊梯度下降的局限性(即梯度爆炸----邊權直接乘以梯度,且若邊權方差過大 可能導致梯度爆炸),加快了效率。

未來的拓展:一階二階以外更高階的相似度以及在異構網絡中的應用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM