DeepWalk的輸入是一張圖或者網(wǎng)絡(luò),輸出為網(wǎng)絡(luò)中頂點(diǎn)的向量表示。DeepWalk通過截?cái)嚯S機(jī)游走(truncated random walk)學(xué)習(xí)出一個(gè)網(wǎng)絡(luò)的社會(huì)表示(social representation)
前提假設(shè)
隨機(jī)游走的分布規(guī)律與NLP中句子序列在語(yǔ)料庫(kù)中出現(xiàn)的規(guī)律有著類似的冪律分布特征。那么既然網(wǎng)絡(luò)的特性與自然語(yǔ)言處理中的特性十分類似,那么就可以將NLP中詞向量的模型用在網(wǎng)絡(luò)表示中。
優(yōu)化目標(biāo)
- 映射函數(shù)選取
忽視頂點(diǎn)順序,更好地表達(dá)頂點(diǎn)臨近關(guān)系,只需要計(jì)算一個(gè)頂點(diǎn)的向量。
skip-gram
Hierarchical Softmax解決迭代計(jì)算量龐大的問題。
Huffman編碼是一種熵編碼方式,對(duì)于出現(xiàn)頻率高的符號(hào)用較短的編碼表示,出現(xiàn)頻率較低的符號(hào)用較長(zhǎng)的編碼表示,從而達(dá)到編碼壓縮的目的。Hierarchical Softmax樹也可以采用Huffman編碼的方式生成,高頻詞用較短的路徑到達(dá),低頻詞用較長(zhǎng)的路徑到達(dá),可以進(jìn)一步降低整個(gè)訓(xùn)練過程的計(jì)算量。
偽代碼
截?cái)嚯S機(jī)游走
隨機(jī)游走長(zhǎng)度固定。根結(jié)點(diǎn)vi,隨機(jī)路徑Wvi。
注意的點(diǎn)
-
適應(yīng)性,網(wǎng)絡(luò)表示必須能適應(yīng)網(wǎng)絡(luò)的變化。
網(wǎng)絡(luò)是一個(gè)動(dòng)態(tài)的圖,不斷地會(huì)有新的節(jié)點(diǎn)和邊添加進(jìn)來,網(wǎng)絡(luò)表示需要適應(yīng)網(wǎng)絡(luò)的正常演化。 - 屬于同一個(gè)社區(qū)的節(jié)點(diǎn)有著類似的表示。網(wǎng)絡(luò)中往往會(huì)出現(xiàn)一些特征相似的點(diǎn)構(gòu)成的團(tuán)狀結(jié)構(gòu),這些節(jié)點(diǎn)表示成向量后必須相似。
-
低維。
代表每個(gè)頂點(diǎn)的向量維數(shù)不能過高,過高會(huì)有過擬合的風(fēng)險(xiǎn),對(duì)網(wǎng)絡(luò)中有缺失數(shù)據(jù)的情況處理能力較差。 -
連續(xù)性。
低維的向量應(yīng)該是連續(xù)的。
參考
w2v: http://www.lxweimin.com/p/3217e8c00549
文獻(xiàn):https://arxiv.org/pdf/1403.6652.pdf
https://zhuanlan.zhihu.com/p/45167021
slide:http://www.perozzi.net/publications/14_kdd_deepwalk-slides.pdf