Node2Vec
Node2Vec
論文名稱:node2vec: Scalable Feature Learning for Networks
論文地址:https://www.kdd.org/kdd2016/papers/files/rfp0218-groverA.pdf
Node2Vec是用于學(xué)習(xí)網(wǎng)絡(luò)節(jié)點的連續(xù)特征表示。node2vec將節(jié)點映射為低維特征表示,最大化網(wǎng)絡(luò)鄰居節(jié)點的似然表示。定義一組彈性的鄰居節(jié)點的概念,設(shè)計有偏的隨機游走策略,學(xué)習(xí)探索各種各樣的鄰居表示。
1.FEATURE LEARNING FRAMEWORK
G=(V,E)G=(V,E)G=(V,E)表示網(wǎng)絡(luò), 我們分析方法適用于有向(無向),有權(quán)(無權(quán))的網(wǎng)絡(luò)模型。f:V→Rdf:V\rightarrow \mathbb{R}^df:V→Rd將節(jié)點映射為 特征表示,用于下游的預(yù)測任務(wù)。ddd表示特征表示的維度。fff是大小為∣V∣×d|V|\times d∣V∣×d的參數(shù)矩陣。對于每個source node u∈Vu \in Vu∈V, 我們定義NS(u)?VN_{S}(u) \subset VNS?(u)?V 為通過采樣策略SSS獲得uuu節(jié)點的鄰居節(jié)點。
我們采用擴展的Skip-gram結(jié)構(gòu)。給定節(jié)點uuu的特征表示,最大化鄰居節(jié)點的log-probability。 fff表示如下:
max?f∑u∈Vlog?Pr?(NS(u)∣f(u))(1)\max _{f} \sum_{u \in V} \log \operatorname{Pr}\left(N_{S}(u) \mid f(u)\right)\tag{1} fmax?u∈V∑?logPr(NS?(u)∣f(u))(1)
為了使得優(yōu)化過程易于處理,我們作出兩個假設(shè):
-
條件獨立假設(shè). 在給定source node的節(jié)點,他們的鄰居節(jié)點是是獨立的。
Pr?(NS(u)∣f(u))=∏ni∈NS(u)Pr?(ni∣f(u))\operatorname{Pr}\left(N_{S}(u) \mid f(u)\right)=\prod_{n_{i} \in N_{S}(u)} \operatorname{Pr}\left(n_{i} \mid f(u)\right) Pr(NS?(u)∣f(u))=ni?∈NS?(u)∏?Pr(ni?∣f(u)) -
Symmertry in feature space。 source node和neighborhood在feature space之間的影響是對稱。
對source-neighborhood node pair的特征進行softmax dot product操作:
Pr?(ni∣f(u))=exp?(f(ni)?f(u))∑v∈Vexp?(f(v)?f(u))\operatorname{Pr}\left(n_{i} \mid f(u)\right)=\frac{\exp \left(f\left(n_{i}\right) \cdot f(u)\right)}{\sum_{v \in V} \exp (f(v) \cdot f(u))} Pr(ni?∣f(u))=∑v∈V?exp(f(v)?f(u))exp(f(ni?)?f(u))?
根據(jù)以上假設(shè)Eq.1 簡化為:
max?f∑u∈V[?log?Zu+∑ni∈NS(u)f(ni)?f(u)](2)\max _{f} \sum_{u \in V}\left[-\log Z_{u}+\sum_{n_{i} \in N_{S}(u)} f\left(n_{i}\right) \cdot f(u)\right]\tag{2} fmax?u∈V∑?????logZu?+ni?∈NS?(u)∑?f(ni?)?f(u)???(2)
對于每個節(jié)點的partition function, Zu=∑v∈Vexp?(f(u)?f(v))Z_{u}=\sum_{v \in V} \exp (f(u) \cdot f(v))Zu?=∑v∈V?exp(f(u)?f(v))對于大型網(wǎng)絡(luò)的計算代價是非常大的,因此,我們采用負采樣。采用隨機梯度法優(yōu)化Eq.2中的模型參數(shù)。
在文本中,基于連續(xù)的文字序列,通過window size定義它們的鄰居。在網(wǎng)絡(luò)中,采用隨機策略生成source節(jié)點的不同的鄰居,他們的鄰居節(jié)點依賴于抽樣策略SSS。
2.node2vec
基于BFS和DFS, 我們設(shè)計兩者之間平滑的抽樣策略。
2.1 Random Walks
設(shè)隨機游走的長度lll, cic_ici?是游走的第iii個節(jié)點, 起始節(jié)點c0=uc_0=uc0?=u。節(jié)點cic_ici?通過以下方式產(chǎn)生:
P(ci=x∣ci?1=v)={πvxZif?(v,x)∈E0otherwise?P\left(c_{i}=x \mid c_{i-1}=v\right)=\left\{\begin{array}{ll} \frac{\pi_{v x}}{Z} & \text { if }(v, x) \in E \\ 0 & \text { otherwise } \end{array}\right. P(ci?=x∣ci?1?=v)={Zπvx??0??if?(v,x)∈E?otherwise??
πvx\pi_{vx}πvx?是 節(jié)點v和節(jié)點x之間非標準化的轉(zhuǎn)移概率, ZZZ是用于標準化的常數(shù)。
2.2 Search bias α\alphaα
最簡單直接的隨機游走方式是基于邊的權(quán)重wvxw_{vx}wvx?進行下一個節(jié)點的抽樣。例如:πvx=wvx\pi_{vx}=w_{vx}πvx?=wvx?。(對于無權(quán)圖wvx=1w_{vx}=1wvx?=1)。但是,這種情況沒有考慮到網(wǎng)絡(luò)的結(jié)構(gòu),不能進行不同形式鄰居節(jié)點的探查。BFS和DFS分別適合結(jié)構(gòu)等價和同質(zhì)的網(wǎng)絡(luò)的極端采樣范式。現(xiàn)實多是兩種情況的融合,我們的隨機游走對兩者作出平衡。
根據(jù)ppp和qqq我們定義2nd2^{nd}2nd階的隨機游走,ppp和qqq引導(dǎo)游走的方式:假設(shè)剛游走過一條邊(t,v)(t,v)(t,v), 現(xiàn)在處于節(jié)點vvv,(Figure 2)。現(xiàn)在基于邊(v,x)(v,x)(v,x), 決定下一步游走的轉(zhuǎn)移概率πvx\pi_{vx}πvx?。我們設(shè)未標準化的轉(zhuǎn)移概率πvx=αpq(t,x)?wvx\pi_{vx}=\alpha_{pq}(t,x)\cdot w_{vx}πvx?=αpq?(t,x)?wvx?,其中:
αpq(t,x)={1pif?dtx=01if?dtx=11qif?dtx=2\alpha_{p q}(t, x)=\left\{\begin{array}{ll} \frac{1}{p} & \text { if } d_{t x}=0 \\ 1 & \text { if } d_{t x}=1 \\ \frac{1}{q} & \text { if } d_{t x}=2 \end{array}\right. αpq?(t,x)=????p1?1q1???if?dtx?=0?if?dtx?=1?if?dtx?=2?
dtxd_{tx}dtx?是節(jié)點ttt和節(jié)點xxx之間的最短路徑。dtxd_{tx}dtx?是集合{0,1,2}\{0,1,2\}{0,1,2}中的一個。兩個參數(shù)對于引導(dǎo)游走的方式是非常必要的。
直觀上,參數(shù)ppp和參數(shù)qqq是用來控制離開起始節(jié)點uuu鄰域的速度。特別的,這些參數(shù)允許我們的搜索過程在BFS和DFS之間進行插值,從而反映對不同節(jié)點的親和力。
Return parameter ppp
參數(shù)ppp控制在游走的過程中,折返( revisiting)訪問節(jié)點可能性。如果將其設(shè)置一個較高的值(>max?(q,1))(\gt \max(q,1))(>max(q,1)),采樣到已經(jīng)訪問過節(jié)點的概率是非常小的(除非下一個節(jié)點沒有鄰居節(jié)點)。這個策略鼓勵新的探索,避免重復(fù)過去無效2-hop。另一方面,如果ppp比較小(<min?(q,1))(\lt\min(q,1))(<min(q,1)),它將會導(dǎo)致游走的回溯(Figure 2), 將會導(dǎo)致在節(jié)點uuu附近進行l(wèi)ocal walk。
In-out parameter qqq
參數(shù)qqq控制“inward”和“outward”的參數(shù)。如Figure 2,如果q>1q\gt1q>1, 隨機游走偏向節(jié)點ttt。這個游走獲得起始節(jié)點的局部視圖,類似BFS,獲取都是局部樣本點。
如果q<1q<1q<1, 游走會遠離節(jié)點ttt, 進行更深層次訪問。這種行為類似DFS探索。與DFS不同的是,我們基于隨機游走的框架實現(xiàn)類似DFS探索。給定樣本點uuu, 抽樣的樣本不是嚴格遵循DFS的distance 遞增過程,但是采樣的效率是非常高的且易于處理。設(shè)πv,x\pi_{v,x}πv,x?是在ttt時刻, 當前進行節(jié)點的函數(shù),它們的隨機游走符合馬爾科夫性。
Benefits of random walks
在時間和空間復(fù)雜度方面,相對于 BFS和DFS, 隨機游走的計算非常高效的。在空間復(fù)雜度方面, 存儲節(jié)點鄰居O∣E∣O|E|O∣E∣. 在2nd2^{nd}2nd隨機游走過程中,存儲鄰居間的交互,它們的空間復(fù)雜度是O(a2∣V∣)O(a^2|V|)O(a2∣V∣), 其中aaa是圖平均度。在時間復(fù)雜度方面,通過在樣本生成過程施加圖連接,隨機游走一種方便的機制,通過跨不同源節(jié)點重用樣本來提高采樣的效率。假設(shè)模擬l>kl>kl>k隨機游走, 由于馬爾可夫性, 我們可以為l?kl-kl?k個節(jié)點一次產(chǎn)生kkk個樣本。因此,每個樣本的復(fù)雜度為O(lk(l?k))O(\frac{l}{k(l-k)})O(k(l?k)l?)。舉例來說,我們隨機游走l=6l=6l=6, 序列為{u,s4,s5,s6,s8,s9}\{u, s_4, s_5, s_6, s_8, s_9\}{u,s4?,s5?,s6?,s8?,s9?}, 會產(chǎn)生如下: NS(u)={s4,s5,s6}N_{S}(u)=\left\{s_{4}, s_{5}, s_{6}\right\}NS?(u)={s4?,s5?,s6?},NS(s4)={s5,s6,s8}N_{S}\left(s_{4}\right)=\left\{s_{5}, s_{6}, s_{8}\right\}NS?(s4?)={s5?,s6?,s8?}和NS(s5)={s6,s8,s9}N_S(s_5)=\{s_6,s_8,s_9\}NS?(s5?)={s6?,s8?,s9?}。需要注意的是:重用樣本在整個過程中會引入偏差,但效率大大提高。
2.3 The node2vec algorithm
Algorithm 1是node2vec的偽代碼,由于起始節(jié)點uuu的選擇, 在隨機游走過程中,會存在隱含的偏差。因為我們要學(xué)習(xí)所有節(jié)點的表示,我們將每個節(jié)點作為起始節(jié)點,隨機游走固定的長度lll, 游走rrr次。每一步的游走基于轉(zhuǎn)移概率πvx\pi_{vx}πvx?。對于二階馬爾科夫轉(zhuǎn)移概率πvx\pi_{vx}πvx?可以事先計算。因此,對于節(jié)點的采樣可以在O(1)O(1)O(1)時間內(nèi)完成。node2vec可以分為3個階段:轉(zhuǎn)移概率預(yù)計算、隨機游走序列生成、SGD優(yōu)化,三個過程串聯(lián)進行。每個階段可以并行、異步執(zhí)行,對全局進行優(yōu)化。
3 Learning edge features
node2vec提供半監(jiān)督的方式學(xué)習(xí)節(jié)點特征表示。然而,相對個體節(jié)點,我們通常對節(jié)點對的預(yù)測任務(wù)更加感興趣。例如,在鏈路預(yù)測任務(wù)中,判斷兩個節(jié)點是否存在邊。因為隨機游走自然地學(xué)習(xí)到網(wǎng)絡(luò)節(jié)點之間的連接性。我們基于個體節(jié)點的特征表示,使用bootstrapping的方法,可以學(xué)習(xí)節(jié)點對之間的關(guān)系。
考慮兩個節(jié)點uuu和vvv, 我們基于特征向量f(u)f(u)f(u)和f(v)f(v)f(v)定義二值算子°\circ°,用于計算表征向量g(u,v)g(u,v)g(u,v), g:V×V→Rd′g: V \times V \rightarrow \mathbb{R}^{d^{\prime}}g:V×V→Rd′, 其中,d′d^{\prime}d′是節(jié)點對(u,v)(u,v)(u,v)表征大小。我們想讓我們的算子對任何算子定義有效,即使節(jié)點之間的邊不存在。這樣做是方便鏈路預(yù)測。我們的測試數(shù)據(jù)包含真假邊。我們考慮幾種算子°\circ°, 使得d′=dd^{\prime}=dd′=d, 總結(jié)在Table 1中。
總結(jié)
- 上一篇: win7 计算机定时关机脚本,定时关机命
- 下一篇: vdbench(一)