【詞向量表示】Item2Vec、DeepWalk、Node2vec、EGES詞向量生成演算法

九年义务漏网鲨鱼發表於2024-12-05

前言:一般來說使用者Embedding在推薦系統中可以透過物品的Embedding向量平均或者聚類實現,因此物品的Embedding演算法的效果成為重中之重。這篇文章是筆者閱讀《深度學習推薦系統》第四章Embedding技術在推薦系統中的應用的學習筆記。本篇文章主要介紹傳統詞向量的生成演算法,在Word2Vec演算法的基礎上,詞向量生成演算法在推薦系統上的衍生。

目錄
  • 傳統詞向量生成演算法
    • Embedding
      • Word2Vec
      • Item2Vec
    • Graph Embedding
      • DeepWalk
        • 主要思想
        • 演算法實現
      • Node2vec
        • 演算法實現
      • EGES
        • 演算法實現

傳統詞向量生成演算法

Embedding

Word2Vec

傳統的編碼方式:one-hot編碼,不同單詞[1, 0, 0][0, 1, 0]之間的餘弦相似度為0。因此,Word2Vec希望能夠透過訓練得到一個新的詞向量表達方式,從而豐富向量的語義資訊。主要目標如圖所示,從一個稀疏的one-hot向量透過訓練得到一個豐富稠密的新向量。

學習參考連結:【詞向量表示】Word2Vec原理及實現-CSDN部落格

Item2Vec

狹義上:一種物品Embedding方法,是對Word2Vec演算法的延申,Item2Vec方法是將物品視為“單詞”,而一個行為,例如購買行為視為一個句子,在一個行為中,有物品先後購買順序,而Item2Vec正是利用這種序列學習物品向量表示。

廣義上:只要是物品→向量的方法都可以稱為Item2Vec:雙塔模型(百度、Facebook),以one-hot編碼作為輸入,經過複雜的多層神經網路輸出Embedding向量。

與Word2Vec的區別

  • 資料不同:

Item2Vec利用“物品序列”等行為產生歷史行為序列(包括購買、瀏覽等行為),而Word2Vec是利用“詞序”。

  • 最佳化目標不同:

Item2Vec在最佳化目標的過程中認為任意兩個物品之間都存在聯絡,而Word2Vec認為只有在一定視窗內才有聯絡。

侷限性

只能使用序列型的行為資料實現向量生成

Graph Embedding

DeepWalk

本質還是Item2Vec演算法,只不過是利用遊走的方式在圖上產生大量的物品序列

主要思想

​ 給定一張圖結構,在圖上進行隨機遊走,產生大量的物品序列,最後將序列放入Item2Vec中進行訓練

image

演算法實現

​ 與Item2Vec不同的是,在生成大量物品序列的過程中,需要確定當前結點的下一個結點,即隨機遊走的演算法,假設物品關係圖是有向有權圖,則隨機遊走的形式化表達為:

\[P(v_j|v_i) = \frac{M_{ij}}{\sum_{j \in N_+(v_i)}M_{ij}} \]

其中$ N_+(v_i)\(表示\)v_i\(的所有出邊集合,\)M_{ij}$表示兩個結點之間的權重。這一過程即計算下一個結點被選擇機率,邊權重越大,被選擇的機率越大。若是無權圖,則將所有邊權重預設為1,即每個結點被選擇的機率相同。

Node2vec

在DeepWalk的基礎上,調整了隨機遊走的權重,使得結果更能體現圖網路的同質性和結構性

  • 同質性:相互連線的物品向量相近,在物品網路結構表示為同類、同屬性商品;
  • 結構性:拓撲結構相似的物品向量相近,在物品網路結構表示為各品類的爆款、最佳湊單等等;
演算法實現
  • 同質性:不僅需要找到相近的結點,還需要遊走到遠方的結點訓練,BFS只能找到相近的結點,而DFS更適合表達網路”同質性“的遊走過程
  • 結構性:需要找到物品相似的拓撲結構,需要對周圍的結點網路結構進行遍歷掃描,BFS更適合表達網路”結構性“遊走過程

image

​ 綜上所述,在選擇下一結點時,需要權衡BFS和DFS的傾向性,Node2Vec透過節點間的跳轉機率權衡兩者的傾向性,從結點v跳轉到結點x的機率為:

\[P(x|v) = a_{pq}(d) \times \omega_{vx} \]

其中d表示結點v和x的距離,\(\omega_{vx}\)表示兩個結點的權重,\(a_{pq}\)表示機率權重引數,平衡BFS和DFS的傾向性

\[a_{pd}(d)= \begin{cases} \frac{1}{p},d=0\\ 1, \ d=1\\ \frac{1}{q}, d=2\\ \end{cases} \]

其中p表示在附近遊走的可能性,p越小,Node2vec更注重表達網路的結構性,q越小,則遠離原始節點的機率越大,此時,Node2vec更注重表達網路的同質性

EGES

阿里巴巴的embedding方法,基本思想是在Deepwalk生成的Graph Embedding上引入補充資訊,目的是為了解決長尾物品問題、冷啟動物品互動資訊少的問題。DeepWalk、Node2Vec只基於圖結構生成節點嵌入向量,忽略了節點可能攜帶的其他輔助資訊。EGES透過引入更多的補充資訊來豐富向量特徵。實現上並沒有過多的理論創新,但在工業上是實用性很強的演算法。

演算法實現
  • 生成物品關係圖:利用物品的相同特徵生成基於內容的知識圖譜,透過知識圖譜生成的物品向量被稱為補充向量

  • 對於不同特徵的向量,模型透過加權求和的方式得到最後的Embedding輸出,其中權重引數為\(e^{a_j}\)

相關文章