Graph Embedding方案之DeepWalk
?對于算法不太了解的同學,這是一個看上去很沒吸引力的標題,預計點擊量超不過200。最近非常迷戀一句話“萬物皆可Embedding”,講的是世間所有的事物都能通過某種方法被向量表示,一旦事物被向量表示了就可以通過乘法去做進一步邏輯處理。比如商品A被表示為向量m,商品B被表示為向量n,則m*n的結果就是A和B的相似關系。把事物Embedding的方法有很多,今天就來介紹DeepWalk,一種把圖關系向量化的方法。
DeepWalk有什么用呢?在推薦、文本分類等領域都有很多場景。比如用戶觀看視頻這件事,所有用戶的視頻觀看順序組合到一起會構成一種圖關系,每個節點是視頻,邊是觀看次數。當有一個客戶先后看了A->B->C三個視頻,那么下個視頻會看什么呢,就可以用DeepWalk將所有視頻向量化,然后所有視頻的向量分別與C視頻的向量相乘,分數最高的就可以作為下一個推薦視頻。
下面這張圖直觀展示了DeepWalk處理數據的過程:
具體DeepWalk做事物Embedding可以分兩步,第一步是Random Walk,第二步是Word2Vector。為了大家更好的理解,我們先從Word2Vector開始講。
Word2Vector
?
有的同學會奇怪,做Graph Embedding跟Word2Vector有什么關系,Word2Vector不是一個文本向量化的方法么?圖像量化其實可以巧妙的轉化成文本向量化。Word2Vector有一種模式叫做Skip-Gram,就是給定一個文章中的某個詞,預測這個詞的上下文,如下圖展示:
比如我們輸入一個文本“傲海是北京朝陽地區第一帥哥”,“朝陽”的上一個詞是“北京”,下一個詞是“地區”。當這種訓練樣本很多的時候,比如我們找到大量含“朝陽”的詞的語句進行訓練,就可以通過Skip-Gram得出“朝陽”這個詞的向量形式,這就是Skip-Gram這個算法的功能,這里需要指定一個窗口的概念,就是訓練的時候取每個詞上下幾個詞作為輸入。那么這種上下文關系如何映射到圖向量化工作呢?我們接著看。
Random Walk
先來看看這個有向圖,我們可以從圖關系中找到幾個序列,比如A->B->E->C,這是一個有向關系鏈。這個關系跟上文提到的“傲海是北京朝陽地區第一帥哥”是有一定相似性的,我們把“北京”看成A?,“朝陽”看成B,“地區”看成E,這種圖的先后關系可以映射成文本的先后出現關系。Random Walk做的事就是設置一個窗口,然后順著圖關系去隨機找到類似于A->B->E這樣的先后關系。
比如我們設窗口為2,那么以B為定點,可以找到如B->E、B->A這樣的前后關聯關系,這種關系放到Word2Vector里就能生成每個定點的向量表示。
Ok~講的比較淺,希望大家可以理解哈,希望有幫助,謝謝
?
總結
以上是生活随笔為你收集整理的Graph Embedding方案之DeepWalk的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李小璐PGONE事件对推荐系统的考验
- 下一篇: 基于外卖评论的舆情风控