輸入: 圖蚓庭,一般為無向圖猪瞬,邊可以有權重痹愚。
輸出: 圖中每個節(jié)點的embedding向量
一種方法是: 1. 以某種方式游走富岳,生成一系列向量。2. 用word2vec 訓練
DeepWalk拯腮、Node2Vec ?相同點:在構建一系列向量時窖式,都是對整個圖的節(jié)點遍歷n 邊,每次遍歷時动壤,遍歷每個節(jié)點萝喘,作為游走的起始節(jié)點,游走為長度為k的序列琼懊。再用word2vec 訓練阁簸,一般是用SkipGram 的方式訓練。
DeepWalk哼丈、Node2Vec ?不同點: 游走方式不同启妹,也就是在選擇鄰居節(jié)點時的方法不同。Node2Vec 中圖的邊有權值醉旦,影響游走時方向的選擇饶米。
DeepWalk 游走: 取某個隨機值,這個隨機值大于某個值alpha车胡,則從鄰居節(jié)點隨機取檬输。否則,取游走的(最初始)的節(jié)點
Node2Vec ?游走:在當前節(jié)點(cur_node)匈棘,要選擇下一個節(jié)點時丧慈。鄰居節(jié)點會出現(xiàn)3種情況,上一個節(jié)點(pre_node)主卫,cur_node和pre_node同時連接的節(jié)點逃默,其他鄰居節(jié)點鹃愤。在轉移時,分別以某種概率轉移笑旺。
如果是帶權的邊昼浦,在上述轉移概率的基礎上馍资,會乘以邊的權值筒主。在轉移時,會進行概率的歸一化鸟蟹。那么抽樣時乌妙,采用的是 ?Alias Method 算法。
應用: 微信的“l(fā)ookalike” 建钥,好友相似度藤韵。
參考:https://zhuanlan.zhihu.com/p/26222107
http://www.yeolar.com/media/note/2016/12/04/bj2016-archsummit/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AE%9E%E6%88%98/%E5%BD%93%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E9%81%87%E4%B8%8A%E5%A4%8D%E6%9D%82%E7%BD%91%E7%BB%9C%EF%BC%9A%E8%A7%A3%E6%9E%90%E5%BE%AE%E4%BF%A1%E6%9C%8B%E5%8F%8B%E5%9C%88%20lookalike%20%E7%AE%97%E6%B3%95.pdf
https://blog.csdn.net/sky_zhe/article/details/10051967
https://github.com/aditya-grover/node2vec
https://github.com/phanein/deepwalk
https://baike.baidu.com/item/Zipf%E5%AE%9A%E5%BE%8B/1577540