推薦系統中的常用演算法 DeepWalk演算法

2021-08-17 21:39:27 字數 2009 閱讀 6000

通過graph embedding得到圖中每個item的embedding表示,deepwalk演算法常被用於推薦系統。graph embedding使用低維稠密向量的形式表示圖中的節點,使得在原始圖中相似(不同的方法對相似的定義不同)的節點其在低維表達空間也接近。

deepwalk演算法借鑑了word2vec演算法的思想,word2vec是nlp中一種常用的word embedding方法,word2vec通過語料庫中的句子序列來描述詞與詞的共現關係,進而學習到詞語的向量表示。deepwalk演算法與word2vec類似,使用圖中節點與節點的共現關係來學習節點的向量表示。在deepwalk中通過使用隨機遊走(randomwalk)的方式在圖中進行節點取樣來模擬語料庫中的預料,進而使用word2vec的方式學習出節點的共現關係,其具體過程如下圖所示:

具體過程為:

抽取使用者的行為序列,如圖中(a)所示;

將使用者的行為序列轉換成圖的表示方法,如圖中(b)所示;

使用skip-gram學習出節點的embedding表示,如圖中(d)所示。

deepwalk演算法思想具體過程如下所示:

randomwalk是一種可重複訪問已訪問節點的深度優先遍歷演算法。給定當前訪問起始節點,從其鄰居中隨機取樣節點作為下乙個訪問節點,重複此過程,直到訪問序列長度滿足預設條件。假設圖為g=(

v,e)

g=\left ( v,e \right )

g=(v,e

),其中,v

vv表示圖中點的集合,e

ee表示圖中邊的集合,在randomwalk中關鍵的問題是如何計算從節點v

iv_i

vi​跳轉到節點v

jv_j

vj​的概率p(v

j∣vi

)p\left ( v_j\mid v_i \right )

p(vj​∣

vi​):p(

vj∣v

i)=\frac}m_} & \text v_i\in n_+\left ( v_i \right ) \\ 0 & \text e_\notin e \end

p(vj​∣

vi​)

=

mij​

是節點v

iv_i

vi​到節點v

jv_j

vj​的邊的權重,對於無向無權圖mij

=1m_=1

mij​=1

。randomwalk的**大致如下:

def

deep_worker

(self)

:for _ in

range

(self.nums)

:for node in self.g.nodes():

)def

random_walker

(self, first_node)

: series =

[first_node]

for _ in

range(1

, self.walk_length)

: nodes_list =

list

(self.g.adj[first_node]

) first_node = random.choice(nodes_list)

return series

from gensim.models import word2vec

w2v_model = word2vec(walks,sg=

1,hs=

1)

推薦系統 推薦系統的常用演算法概述

前一陣子準備畢業 的開題,一直在看推薦系統相關的 對推薦系統有了乙個更加清晰和理性的認識,也對推薦演算法有了深入了解。藉此機會總結分享一下,大家多多拍磚。推薦系統的出現 隨著網際網路的發展,人們正處於乙個資訊 的時代。相比於過去的資訊匱乏,面對現階段海量的資訊資料,對資訊的篩選和過濾成為了衡量乙個系...

推薦系統的常用演算法

推薦系統的任務就是,聯絡使用者和資訊,一方面幫助使用者發現對自己有價值的資訊,另一方面讓資訊能夠展現在對他感興趣的人群中,從而實現資訊提供商與使用者的雙贏。1 基於人口統計學的推薦 根據系統使用者的基本資訊發現使用者的相關程度,然後將相似使用者喜愛的其他物品推薦給當前使用者。2 基於內容的推薦 與上...

推薦系統常用演算法

在推薦系統簡介中,我們給出了推薦系統的一般框架。很明顯,推薦方法是整個推薦系統中最核心 最關鍵的部分,很大程度上決定了推薦系統效能的優劣。目前,主要的推薦方法包括 基於內容推薦 協同過濾推薦 基於關聯規則推薦 基於效用推薦 基於知識推薦和組合推薦。一 基於內容推薦 基於內容的推薦 content b...