題目:deepwalk: online learning of social representationsshort random walks = sentenceword2vec在訓練詞向量時,以文字語料作為輸入資料;網路表示學習以複雜資訊網路作為資料輸入。在訓練過程中詞語出現的頻次與根據原始網路結構進行隨機遊走時頂點被訪問到的次數兩者均服從冪律分布。原始碼:
deepwalk方法很簡單,就是以某一特定點為起始點,做隨機遊走得到點的序列,然後得到的序列視其為句子,用word2vec來學習,得到該點的表示向量。
模擬word2vec
deepwalk
輸入資料
語料庫短的隨機遊走序列集合
輸入資料
詞彙表節點集合
詞語出現的頻次服從冪律分布
隨機遊走時頂點被訪問到的次數服從冪律分布
不考慮視窗中上下文節點到中心節點的距離的影響,
只關心與中心節點是否同時出現。
對於每個節點產生 y個遊走(相當於 γ
\gamma
γ 個epoch);每一輪遊走中所有節點都進行一次隨機遊走。對於每個節點 v
iv_i
vi, 產生長度為 t
tt 的隨機遊走 wvi
w_wv
i來更新表示。使用skipgram演算法更新。
計算 p(v
3∣φ(
v1))
p(v_3 | \phi(v_1))
p(v3∣
φ(v1
)) 複雜度為 o(∣
v∣)o(|v|)
o(∣v∣)
,太耗時。考慮將圖節點作為二叉樹的葉子節點,最大化 p(v
3∣φ(
v1))
p(v_3 | \phi(v_1))
p(v3∣
φ(v1
)) 等價於最大化從根節點到節點 v
3v_3
v3 的路徑的概率。如上圖中從根節點到 v
3v_3
v3 節點的路徑為 b1,
b2,b
5b1,b2,b5
b1,b2,
b5,將這些節點對應的概率乘積算出
p (v
3∣φ(
vi))
=1(1
+e−φ
(v1)
∗ψ(b
1))(
1+eφ
(v1)
∗ψ(b
2))(
1+e−
φ(v1
)∗ψ(
b5))
p(v_3|\phi(v_i)) = \frac) (1+ e^) (1+ e^)}
p(v3∣
φ(vi
))=
(1+e
−φ(v
1)∗
ψ(b1
))(1
+eφ(
v1)
∗ψ(b
2))(
1+e−
φ(v1
)∗ψ
(b5)
)1假設從左邊是正例,從右邊是負例;ψ(b
1)\psi(b1)
ψ(b1
) 是b1b1
b1的隱含表示;原式複雜度降為 o(l
og∣v
∣)o(log|v|)
o(log∣v∣)
為什麼計算 p(v學習引數 步驟3∣φ(
v1))
p(v_3 | \phi(v_1))
p(v3∣
φ(v1
)) 複雜度為 o(∣
v∣)o(|v|)
o(∣v∣)
計算p(v
3∣φ(
v1))
p(v_3 | \phi(v_1))
p(v3∣
φ(v1
))使用多項邏輯斯蒂回歸需要所有節點參與複雜度為o(|v|)
隨機初始化表示
對於二叉樹每個非葉子結點計算loss函式
使用隨機梯度下降法同時更新二分類器的權重和節點表示
作者的**實現中只對圖進行隨機遊走生成語料庫,作為輸入給word2vec
演算法由兩部分組成:(1)隨機遊走生成器(2)更新步驟
外迴圈:對於每個節點產生 y個遊走
內迴圈:對於每個節點 v
iv_i
vi, 產生長度為 t
tt 的隨機遊走 wvi
w_wv
i來更新表示。使用skipgram演算法更新。
t
tt 為每次隨機遊走的長度,這樣後續構造出來的所有序列都是等長的。
γ
\gamma
γ 為每個點作為隨機遊走序列起點的次數
網路表示學習總結
總結一下網路表示學習 network embedding network representation learning 的東西。網路表示學習即是將節點表示為向量。為什麼表示為向量,目前看來有以下幾點原因 向量是一種分布式表示,比 one hot 表示什麼的更易於使用,如可以方便地作為 featur...
神經網路 表示
神經網路為什麼會誕生。先看邏輯回歸。如果有100個特徵x1 x100,那麼如果想表示x1x2,x1x100.這就要算100 100 o n 2 個的項了,更何況有的時候不僅僅是二次項。比如我要求的就是乙個50 50畫素的小,總共有2500個畫素特徵。如果是rgb的那麼就7500個特徵。如果要用邏輯回...
稀疏表示學習
1.提出問題 什麼是稀疏表示 假設我們用乙個m n的矩陣表示資料集x,每一行代表乙個樣本,每一列代表樣本的乙個屬性,一般而言,該矩陣是稠密的,即大多數元素不為0。稀疏表示的含義是,尋找乙個係數矩陣a k n 以及乙個字典矩陣b m k 使得b a盡可能的還原x,且a盡可能的稀疏。a便是x的稀疏表示。...