理解機器學習中的node2vec演算法
Node2Vec 是一種機器學習方法,試圖學習如何以連續的方式描述網路或圖中的節點。它特別擅長捕獲網路的結構資訊,這使得它能夠執行諸如節點分類、連結預測和網路結構分析等任務。本文將探討 Node2Vec 演算法的基礎知識,包括其工作原理和應用場景。
圖表示學習
圖被用於表示許多領域中複雜的關係和互動,例如社交網路、生物網路、推薦系統和知識圖譜。圖表示學習專注於將圖節點對映到連續的向量空間,以便後續的機器學習技術可以應用於嵌入,而不是底層的網路結構。
根據節點的相似性嵌入節點,捕獲其結構和語義資訊,是圖表示學習的核心思想。傳統的基於矩陣分解和隨機遊走的方法只能近似地捕獲圖的全域性和區域性結構模式。在這種情況下,Node2Vec 方法就顯得很有幫助。
Node2Vec 的必要性
Node2Vec 透過使用節點鄰域來解決傳統方法中的問題。其核心思想是,圖中相同區域的節點很可能具有相同的功能或角色。Node2Vec 利用廣度優先搜尋 (BFS) 和深度優先搜尋 (DFS) 的優勢,生成能夠探索圖中區域性和全域性特徵的隨機遊走。
隨機遊走
隨機遊走是在網路中的一條路徑,其中下一個要訪問的節點是從該節點的鄰居中隨機選擇的。隨機遊走能夠捕獲圖的區域性和全域性結構。在 Node2Vec 中,目標是生成既能探索附近節點又能探索未知區域的隨機遊走。
Node2Vec 演算法
Node2Vec 演算法包含三個主要步驟:
取樣隨機遊走
建立有偏隨機遊走
使用 Skip-gram 或其他類似方法學習節點嵌入
步驟 1:取樣隨機遊走
在 Node2Vec 的第一步中,從圖中取樣隨機遊走。該方法從每個節點開始,生成一定數量的固定長度的隨機遊走。根據選擇的起始節點,可以專注於區域性或全域性探索。
Node2Vec 使用返回超引數 (p) 和內外超引數 (q) 來平衡探索與利用之間的權衡。返回超引數 (p) 控制重新訪問先前步驟中節點的機率,而內外超引數 (q) 區分廣度優先搜尋 (q > 1) 和深度優先搜尋 (q < 1) 探索策略。
步驟 2:建立有偏隨機遊走
在第二步中,使用節點之間的轉移機率來生成有偏的隨機遊走。這些轉移機率受圖的結構以及 p 和 q 的值影響。
在每個隨機遊走步驟中,演算法會決定是回到上一個節點,還是探索所有鄰居,或者更傾向於訪問距離上一個節點更近或更遠的節點。這些決策由轉移機率引導,而轉移機率受超引數 p 和 q 影響。
步驟 3:學習節點嵌入
Node2Vec 方法的最後一步是使用 Skip-gram 或相關方法學習節點嵌入。Skip-gram 是一種常用的自然語言處理中的詞嵌入學習方法,也可以用於學習節點嵌入。
在 Skip-gram 中,目標是根據目標節點預測上下文(目標節點周圍的其他節點)。Node2Vec 透過在其生成的隨機遊走上訓練模型來學習將節點嵌入到連續的向量空間中。節點嵌入之間的距離反映了其結構的相似性。
Node2Vec 的應用
Node2Vec 由於能夠捕獲圖中的結構資訊,因此已應用於許多領域。其最顯著的應用包括:
節點分類 - Node2Vec 嵌入可以作為機器學習任務(如後續節點分類)的特徵。透過在學習到的嵌入上訓練分類器,可以根據節點的嵌入表示以及訓練集中標記的節點,預測從未見過的節點的類別或標籤。
連結預測 - 連結預測旨在確定網路中缺少或將要新增的連結。Node2Vec 可以用來生成節點的嵌入,然後測量這些嵌入的相似性。具有相似嵌入的節點很可能具有相似的連線模式,這可以幫助確定缺失的連結或可能在將來新增的連結。
網路視覺化 - Node2Vec 嵌入使得能夠將大型圖視覺化到低維空間中。當將高維嵌入投影到 2D 或 3D 空間時,可以觀察圖的結構並識別叢集或社群。
推薦系統 - Node2Vec 也可以應用於推薦系統,以生成個性化推薦。透過學習推薦圖中使用者和專案的嵌入,可以根據與目標使用者或專案相似的節點來生成基於相似性的推薦。
結論
Node2Vec 是一種強大的方法,用於學習如何以連續的方式描述圖中的節點。Node2Vec 透過利用隨機遊走並結合探索與利用,能夠捕獲節點的區域性和全域性結構資訊。它可以應用於許多不同的領域,例如節點分類、連結預測、網路視覺化和推薦系統。Node2Vec 透過發現重要的圖模式,有助於改進用於分析和理解網路的機器學習方法。