node2vec
我發現了一個小秘密,好用的東西,原理都非常的簡單~~妙哉!!
Learning useful representations from highly structured objects such as graphs is useful for a variety of machine learning applications. Besides reducing the engineering effort, these representations can lead to greater predictive power.
**The node2vec framework learns low-dimensional representations for nodes in a graph by optimizing a neighborhood preserving objective. **The objective is flexible, and the algorithm accomodates for various definitions of network neighborhoods by simulating biased random walks. Specifically, it provides a way of balancing the exploration-exploitation tradeoff that in turn leads to representations obeying a spectrum of equivalences from homophily to structural equivalence.stanford
Node2vec是用來產生網絡中節點向量的模型,輸入是網絡結構(可以無權重),輸出是每個節點的向量
簡單的來說:通過特定的游走方式進行采樣,對於每個點都會生成對應的序列。再將這些序列視為文本導入word2vec中的cbow或者skip-gram模型,即可得到每個節點的向量(對應word2vec中每個詞的向量)知乎專欄
- random walk(隨機游走),通過一定規則隨機抽取一些點的序列。
- 將點的序列輸入至 Word2Vec 模型,從而得到每個點的 embedding 向量。
節點的embedding,可以想象每個節點是一個詞,這樣用word2vec就可以做embedding了
社交網絡結構:
社交圖譜:好友一般是自己在現實社會中認識的人,比如同事、同學、親戚等,並且這種好友關系是需要雙方確認的,如 Fackbook、QQ 空間。
興趣圖譜:好友往往都是現實中互不相識的,只是出於對對方言論的興趣而建立好友關系,並且這種好友關系也是單向的關注關系,如 Twitter、新浪微博。
需要注意的是,任何一個社會化網站都不是單純的社交圖譜或興趣圖譜。在 QQ 空間中大多數用戶聯系基於社交圖譜,而在微博上大多數用戶聯系基於興趣圖譜。但在微博中,也會關注現實中的親朋好友,在 QQ 中也會和部分好友有共同興趣。clvsit
在社交網絡中需要表示用戶之間的聯系,可以用圖 G(V, E, W) 定義一個社交網絡。每個user表示一個頂點,那有關聯的用戶會有邊相連。或者通過某一用戶間接進行相連。
社交圖譜:朋友關系是需要雙向確認的,因而可以用無向邊連接有社交網絡關系的用戶——無向圖;
興趣圖譜:朋友關系是單向的,可以用有向邊代表這種社交網絡上的用戶關系——有向圖。
random walk
【基本流程】:給定一張圖 G 和一個起始節點 S,標記起始節點位置為當前位置,隨機選擇當前位置節點的一個鄰居,並將當前位置移動至被選擇的鄰居位置,重復以上步驟 n 次,最終會得到從初始節點到結束節點的一條長度為 n 的“點序列”,此條“點序列”即稱為在圖 G 上的一次 random walk。clvsit
random walk 算法主要分為兩步:
選擇起始節點:起始節點的選擇存在兩種常見的做法。
按照一定規則隨機從圖中抽取一定數量的節點;
以圖中所有節點作為起始節點。一般來說我們選擇這種方式,以便所有節點都能被選取到。
選擇下一節點:最簡單方法是按照邊的權重隨機選擇,但是在實際應用中,我們希望能控制廣度優先還是深度優先,從而影響 random walk 能夠游走到的范圍。
深度優先:發現能力更強;
廣度優先:社區內的節點更容易出現在一個路徑中。
斯坦福大學計算機教授 Jure Leskovec 給出了一種可以控制廣度優先或者深度優先的方法。
After transitioning to node v from t, the return hyperparameter, p and the inout hyperparameter, q control the probability of a walk staying inward revisiting nodes (t), staying close to the preceeding nodes (x1), or moving outward farther away (x2, x3).
For example, the graph visualization above depicts the color-coded communities exhibiting homophily discovered by node2vec in the Les Misérables Network.