咱們使用一階和二階鄰近度,正式定義了大規模信息網絡嵌入問題。 咱們首先定義一個信息網絡以下:網絡
定義 1(信息網絡):信息網絡定義爲G = (V, E)
,其中V
是頂點集合,每一個頂點表明一個數據對象,E
是頂點之間的邊集合,每一個邊表明兩個數據對象之間的關係。每一個邊e ∈ E
是有序對e = (u, v)
而且與權重w[uv] > 0
相關聯,其表示關係的強度。 若是G
是無向的,咱們有(u, v) ≡ (v, u)
和w[uv] = w[vu]
;若是G
是有向的,咱們有(u, v) ≢ (v, u)
和w[uv] ≢ w[vu]
。異步
在實踐中,信息網絡能夠是定向的(例如引文網絡)或無向的(例如,Facebook 中的用戶的社交網絡)。邊的權重能夠是二元的,也能夠是任意實數。 請注意,雖然負邊權重是可能的,但在本研究中咱們只考慮非負權重。 例如,在引文網絡和社交網絡中,你須要二元值;在不一樣對象之間的共現網絡中,w[uv]
能夠取任何非負值。 一些網絡中的權重可能會分散,由於一些對象共同出現不少次,而其餘對象可能只共同出現幾回。函數
將信息網絡嵌入低維空間在各類應用中都頗有用。 要進行嵌入,必須保留網絡結構。 第一個直覺是,必須保留局部網絡結構,即頂點之間的局部成對鄰近度。 咱們將局部網絡結構定義爲頂點之間的一階鄰近度:學習
定義 2(一階鄰近度):網絡中的一階鄰近度是兩個頂點之間的局部成對鄰近度。 對於由邊(u, v)
連接的每對頂點,該邊上的權重w[uv]
表示u
和v
之間的一階鄰近度。 若是在u
和v
之間沒有觀察到邊,則它們的一階鄰近度爲 0。優化
一階鄰近度一般意味着現實世界網絡中兩個節點的類似性。 例如,在社交網絡中彼此成爲朋友的人傾向於分享類似的興趣;在萬維網中相互連接的頁面傾向於談論相似的主題。 因爲這一重要性,許多現有的圖嵌入算法,如 IsoMap,LLE,拉普拉斯特徵映射和圖分解,目標是保留一階鄰近度。spa
然而,在現實世界的信息網絡中,觀察到的連接只佔很小的比例,許多其餘的連接是缺失的 [10]。缺失連接上的一對節點的一階鄰近度爲零,即便它們本質上彼此很是類似。 所以,單獨的一階鄰近不足以保留網絡結構,而且重要的是尋求解決稀疏問題的替代鄰近概念。 一種天然的直覺是,共享類似鄰居的頂點每每彼此類似。 例如,在社交網絡中,分享相似朋友的人每每具備類似的興趣,從而成爲朋友;在詞共現網絡中,老是與同一組詞共同出現的詞每每具備類似的含義。 所以,咱們定義了二階鄰近度,它補充了一階鄰近度並保留了網絡結構。code
定義 3(二階鄰近度):網絡中一對頂點(u, v)
之間的二階鄰近度,是它們的鄰域網絡結構之間的類似性。 在數學上,讓p[u] = (w[u, 1], … , w[u, |V|])
表示u
與全部其餘頂點的一階鄰近度,而後u
和v
之間的二階鄰近度由p[u]
和p[v]
之間的類似性肯定。若是u
和v
沒有連接到相同的頂點,則u
和v
之間的二階鄰近度爲 0。orm
咱們研究了網絡嵌入的一階和二階鄰近度,其定義以下。對象
定義 4(大規模信息網絡嵌入):給定大型網絡G = (V, E)
,大規模信息網絡嵌入的問題,旨在將每一個頂點v ∈ V
在低維空間R^d
表示,即學習函數f[G]: V -> R^d
,其中d << |V|
。 在空間R^d
中,保留頂點之間的一階鄰近度和二階鄰近度。
接下來,咱們介紹一種大規模網絡嵌入模型,它保留了一階和二階鄰近度。
用於現實世界信息網絡的理想嵌入模型必須知足若干要求:首先,它必須可以保留頂點之間的一階鄰近和二階鄰近度;第二,它必須適用於很是大的網絡,好比數百萬個頂點和數十億個邊;第三,它能夠處理具備任意類型邊的網絡:有向,無向和/或加權,無權。 在本節中,咱們提出了一種新的網絡嵌入模型,稱爲「LINE」,它知足全部這三個要求。
咱們描述 LINE 模型來分別保留一階鄰近度和二階鄰近度,而後介紹一種組合兩個鄰近度的簡單方法。
一階鄰近度是指網絡中頂點之間的局部成對鄰近度。 爲了模擬一階鄰近度,對於每一個無向邊(i, j)
,咱們定義頂點v[i]
和v[j]
之間的聯合機率,以下所示:
(1)
其中u[i] ∈ R^d
是頂點v[i]
的低維矢量表示。公式(1)定義空間V×V
上的分佈p(·,·)
,其經驗機率可定義爲^p[1](i, j) = w[ij]/W
,其中W = Σw[ij], (i, j) ∈ E
。 爲了保留一階鄰近度,一種直接的方法是最小化如下目標函數:
(2)
其中d(·,·)
是兩個分佈之間的距離。 咱們選擇最小化兩個機率分佈的 KL 散度。 用 KL 散度代替d(·,·)
並省略一些常數,咱們獲得:
(3)
請注意,一階鄰近度僅適用於無向圖,而不適用於有向圖。 經過找到最小化公式(3)中的目標的{u[i]}, i = 1 .. |V|
,咱們能夠表示d
維空間中的每一個頂點。
二階鄰近度適用於有向圖和無向圖。給定網絡,在不失通常性的狀況下,咱們假設它是有向的(無向邊能夠被認爲是具備相反方向和相等權重的兩個有向邊)。 二階鄰近度假設共享與其餘頂點的許多鏈接的頂點彼此類似。 在這種狀況下,每一個頂點也被視爲特定的「上下文」,而且假設在「上下文」中具備類似分佈的頂點是類似的。 所以,每一個頂點扮演兩個角色:頂點自己和其餘頂點的特定「上下文」。 咱們引入兩個向量u[ i]
和u'[i]
,其中u[i]
是v[i]
在被視爲頂點時的表示,而v'[i]
是當v[ i]
被視爲特定「上下文」時的表示。 對於每一個有向邊(i, j)
,咱們首先將頂點v[i]
生成「上下文」v[j]
的機率定義爲:
(4)
其中|V|
是頂點或「上下文」數量。對於每一個頂點v[i]
,公式(4)實際上定義了上下文中(即網絡中的整個頂點集)的條件分佈p[2](·|v[i])
。 如上所述,二階鄰近度假設在上下文中具備類似分佈的頂點彼此類似。 爲了保持二階鄰近度,咱們應該使由低維表示指定的上下文條件分佈p[2](·|v[i])
鄰近經驗分佈^p[2](·|v[i])
。 所以,咱們最小化如下目標函數:
(5)
經過學習使這個目標最小化的{u[i]}, i = 1 .. |V|
以及{u'[i]}, i = 1 .. |V|
,咱們可以用d
維向量u[i]
表示每一個頂點v[i]
。
要經過保留一階和二階鄰近度來嵌入網絡,咱們在實踐中找到的一種簡單而有效的方法是訓練 LINE 模型,分別保留一階鄰近和二階鄰近度,而後鏈接由兩種方法爲每一個頂點訓練的嵌入向量。結合兩種鄰近度的更原則性方法,是聯合訓練目標函數(3)和(6),咱們將其留做將來的工做。
優化目標(6)在計算上是昂貴的,其在計算條件機率p[2]
時須要對整個頂點集合求和。 爲了解決這個問題,咱們採用 [13] 中提出的負採樣方法,根據每條邊(i, j)
的一些噪聲分佈採樣多個負邊。 更具體地說,它爲每一個邊(i, j)
指定如下目標函數:
(7)
其中σ(x) = 1 / (1 + exp(-x))
是 sigmoid 函數。 第一項用於模擬觀察到的邊,第二項用於模擬從噪聲分佈中提取的負邊,K 是負邊的數量。 咱們設置 [13] 中提出的P[n](v) ∝ d[v]^3/4
,其中d[v]
是頂點v
的出度。
對於目標函數(3),存在一個簡單的解決方案:u[ik] = ∞
,對於i = 1, ..., |V|
和k = 1, ..., d
。 爲了不這種簡單的解決方案,咱們仍然能夠經過將u'[j]^T
改成u[j]^T
來利用負採樣方法(7)。
咱們採用異步隨機梯度算法(ASGD)[17] 來優化公式(7)。 在每一個步驟中,ASGD 算法對小批量邊進行採樣,而後更新模型參數。 若是採樣邊(i, j)
,則頂點i
的嵌入向量u[i]
的梯度爲將計算爲:
(8)
請注意,梯度將乘以邊的權重。 當邊的權重具備高方差時,這將成爲問題。 例如,在單詞共現網絡中,一些單詞共同出現屢次(例如,數萬次),而一些單詞僅共同出現幾回。 在這樣的網絡中,梯度的尺度發散,很難找到良好的學習率。 若是咱們根據小權重的邊選擇較大學習率,大權重的邊緣上的梯度將爆炸,而且若是咱們根據大權重的邊選擇較小學習率,梯度將變得過小。
解決上述問題的直覺是,若是全部邊的權重相等(例如,具備二元邊的網絡),則不存在選擇適當學習率的問題。 所以,簡單的處理是將加權邊展開成多個二元邊緣,例如,權重爲w
的邊展開成w
個二元邊。 這將解決問題,但會顯着增長內存需求,特別是當邊的權重很是大時。 爲了解決這個問題,能夠從原始邊採樣並將採樣邊視爲二元邊,採樣機率與原始邊權重成正比。 經過這種邊採樣處理,整體目標函數保持不變。 問題歸結爲如何根據權重對邊採樣。
咱們討論了 LINE 模型的幾個實際問題。
低度頂點:一個實際問題是如何精確地嵌入低度頂點。 因爲此類節點的鄰居數量很是少,所以很難準確地推斷其表示,尤爲是基於二階鄰近度的方法,這種方法嚴重依賴於「上下文」的數量。對此的直觀解決方案是擴展 這些頂點的鄰居經過添加更高階的鄰居,例如鄰居的鄰居。 在本文中,咱們只考慮向每一個頂點添加二階鄰居,即鄰居的鄰居。 頂點i
與其二階鄰居j
之間的權重測量爲:
實際上,人們只能添加頂點{j}
的子集,它與低度頂點i
具備最大鄰近度。
新頂點:另外一個實際問題是如何找到新到達頂點的表示。 對於新的頂點i
,若是已知其與現有頂點的鏈接,咱們能夠在現有頂點上得到經驗分佈^p[1](·, v[i])
和^p[2](·|v[i])
。 根據目標函數公式(3)和(6),爲了得到新頂點的嵌入,一種直接的方法是最小化如下任一目標函數。
(10)
經過更新新頂點的嵌入並保持現有頂點的嵌入。 若是沒有觀察到新頂點和現有頂點之間的鏈接,咱們必須求助於其餘信息,例如頂點的文本信息,並將其做爲咱們將來的工做。