node2vec核心思想

2021-09-24 12:51:27 字數 1662 閱讀 2172

[kdd2016] node2vec: scalable feature learning for networks

node2vec的核心在於得到從每乙個節點u

uu出發,定長l

ll的隨機遊走序列集合,進而得到每個節點的「新鄰居」,然後用word2vec的思想來學習更新每乙個節點的表示向量。

目標:

\textbf

目標:假定乙個隨機遊走序列→t→

v→\rightarrow t\rightarrow v\rightarrow

→t→v

→ 剛從t

tt到v

vv,如何找到v

vv的下一步?

對於節點v

vv來說,它下一步的概率是基於它的前乙個節點t

tt和它的下一步節點x

xx的關係決定的。其中,x

xx也可能是t

tt,因為對於無向圖來說,t

tt也是v

vv的鄰居。

定義d tx

d_dt

x​,表示v

vv的前乙個節點t

tt和下乙個節點x

xx之間的最短路徑長度,dtx

=d_=\

dtx​

=,即所謂的二階。如圖,

其中, q

qq為前進引數(in-out parameter),若q

>

1q>1

q>

1, 則到達v

vv之後的下一步會更接近t

tt(bfs);反之會遠離t

tt (dfs)。p

pp為回溯引數(return parameter),決定有多大的概率會回到上乙個節點,若p

>ma

x⁡(q

,1)p>max⁡(q,1)

p>ma

x⁡(q

,1),則會使遊走盡可能不回溯;若p

n⁡(q

,1)p

pn⁡(q

,1),則使整個遊走最終接近鏈路的起始節點。

這樣就算出了該遊走從t

tt到達v

vv之後,下一步要到達節點x

xx的搜尋偏差α

\alpha

α。若每條路徑對應的有初始權重wvx

w_wv

x​(沒有則預設為1),則對前面得到的每條路徑的搜尋偏差α

\alpha

α乘上對應的權重,即v→x

v\rightarrow x

v→x的概率為πvx

=αwv

x\pi_=\alpha w_

πvx​=α

wvx​

。接著對節點v

vv到達的所有的下乙個節點的路徑概率πv.

\pi_

πv.​

歸一化,然後採用alias取樣可以得到下一步到達的節點x

xx。(其中,alias取樣只是讓取樣更快o(1

)o(1)

o(1)

,不會對結果造成影響)

node2vec在社交網路推薦中的應用(二)

在上一步中,我們已經獲得了點的序列樣本,那麼下一步我們需要解決的問題是,如何根據上點序列生成每個點的特徵向量,即我們前面提到的 座標 我們先拋開這個問題,聚焦在word2vec演算法的意義上。word2vec已成為現在主流的特徵構造方法。word2vec是從大量文語料中以無監督的方式學習語義知識的一...

MapReduce核心思想

mapreduce核心程式設計思想,如圖1 1所示。圖1 1 mapreduce核心程式設計思想 1 分布式的運算程式往往需要分成至少 2個階段。2 第乙個階段的 maptask 併發例項,完全並行執行,互不相干。3 第二個階段的 reducetask 併發例項互不相干,但是他們的資料依賴於上乙個階...

Kafka核心思想

kafka是2010年12月份開源的專案,採用scala語言編寫,使用了多種效率優化機制,整體架構比較新穎 push pull 更適合異構集群。設計目標 1 資料在磁碟上的訪問代價為o 1 2 高吞吐率,在普通的伺服器上每秒也能處理幾十萬條訊息 3 分布式架構,能夠對訊息分割槽 4 支援將資料並行的...