【勉強ノート】Node2Vecグラフニューラルネットワーク論文の精読

参考: https://www.bilibili.com/video/BV1BS4y1E7tf/?p=12&spm_id_from=pageDriver

Node2vec の簡単な紹介

ディープウォークの欠点

完全なランダム ウォークを使用してノード埋め込みベクトルをトレーニングすると、隣接するノードのコミュニティ類似性情報のみを反映できますが、ノードの機能的役割の類似性情報は反映できません。

Node2vec

ここに画像の説明を挿入します
pとqのパラメータを調整することで重みを調整できます。

p 値が非常に小さく、戻りたがる場合、それは BFS に似ており、ミクロな視点を反映しています。
q 値は非常に小さく、戻りたがります。これは DFS に似ており、マクロの観点を反映しています。
DFS は同性愛コミュニティ (ソーシャル ネットワーク) の特徴を捉え
、BFS は構造的等価ノードの機能的役割 (ハブ、ブリッジ、エッジ) の特徴を捉えます。

疑似コード

ここに画像の説明を挿入します
ここに画像の説明を挿入します

技術的な詳細

Alias Sampling: 空間を時間と交換し、時間計算量が O(1) のサンプリング アルゴリズム。

AliasSampling リファレンス: https://keithschwarz.com/darts-dice-coins/

Node2vecの論文を集中的に読む

教師あり学習アルゴリズムには、豊富なセマンティクス、分類識別可能性、および相互に独立した機能が必要です。
グラフ埋め込みの方法:
1. 手動による特徴の構築
2. 行列分解に基づくグラフ埋め込み
3. ランダム ウォークに基づくグラフ埋め込み
4. ニューラル ネットワークに基づく

同じコミュニティ内のノードと同じ機能的役割を持つノードは、同様の埋め込みにエンコードされる必要があります。

二次ランダム ウォーク法を使用してノードの近傍を生成します。

1 次ランダム ウォーク (1 次マルコフ プロパティ): 次のノードは現在のノード (ディープウォーク、ページランク) にのみ関連します。
2 次ランダム ウォーク (2 次マルコフ プロパティ): 次のノードは現在のノードにのみ関連するわけではありません。現在のノード、前のノードにも関連する

異なる p と q は異なる探索戦略に対応し、解釈可能です。
パラメータを調整することで最適な p と q を得ることができます。

貢献する

1. p と q を調整することでネットワークのさまざまな特性を調査し、SGD を使用して最適化できる node2vec を提案します。
2. node2vec はネットワーク科学の原則に準拠し、柔軟な表現を提供します。
3. node2vec はノードの埋め込みを接続の埋め込みに一般化します
。 4.カテゴリ分類タスクと接続予測タスクについて複数の実験が行われました。

3.Node2vecアルゴリズム

図:G = ( V , E ) G=(V,E)G=( V E )
サンプリング戦略:SSS
ノードううドメインノードNS ( u ) ⊂ V N_S(u) \subset V of uNS( u )V
タスク: マッピングの学習f : V → R df: V \rightarrow \mathbb{R}^df:VRd : d は単語埋め込み後の次元 目的関数
:
max ⁡ f ∑ u ∈ V log ⁡ Pr ⁡ ( NS ( u ) ∣ f ( u ) ) \max _f \sum_{u \in V} \log \operatorname { Pr}\left(N_S(u) \mid f(u)\right)fマックスu Vログ_広報( NS( u )f ( u ) )
問題を単純化するために、次の 2 つの仮定が行われます。

  • 条件付き独立性の仮定: 周囲のノードは互いに影響を与えない:
    Pr ⁡ ( NS ( u ) ∣ f ( u ) ) = ∏ ni ∈ NS ( u ) Pr ⁡ ( ni ∣ f ( u ) ) \operatorname{Pr}\left ( N_S(u) \mid f(u)\right)=\prod_{n_i \in N_S(u)} \operatorname{Pr}\left(n_i \mid f(u)\right)広報( NS( u )f ( u ) )=n私は∈N _S( u )広報( n私はf ( u ) )
  • 特徴空間の対称性: 2 つのノード間の相互影響の度合いは同じであるため、確率
    Pr ⁡ ( ni ∣ f ( u ) ) = exp ⁡ ( f ( ni ) ⋅ f ( u ) ) ∑ v ∈ V exp ⁡ ( f ( v ) ⋅ f ( u ) ) \operatorname{Pr}\left(n_i | f(u)\right)=\frac{\exp \left(f\left( n_i\right) \cdot f(u )\right)}{\sum_{v \in V} \exp (f(v) \cdot f(u))}広報( n私はf ( u ) )=v Vexp ( f ( v )f ( u ))経験値( f( n私は)f ( u ) )

Z u = ∑ v ∈ V exp ⁡ ( f ( u ) ⋅ f ( v ) ) Z_u=\sum_{v \in V} \exp (f(u) \cdot f(v))Zあなた=v Vexp ( f ( u )f ( v ))は分配関数と呼ばれ、目的関数は
Pr ⁡ ( ni ∣ f ( u ) ) = exp ⁡ ( f ( ni ) ⋅ f ( u ) ) ∑ v ∈ V exp ⁡ ( f ( v ) ⋅ f ( u ) ) \operatorname{Pr}\left(n_i \mid f(u)\right)=\frac{\exp \left(f\left(n_i\right) \cdot f(u )\ right)}{\sum_{v \in V} \exp (f(v) \cdot f(u))}広報( n私はf ( u ) )=v Vexp ( f ( v )f ( u ))経験値( f( n私は)f ( u ) )

3.1 従来の検索戦略

フィールドNS (u) N_S(u)の定義方法NS( u )戦略SSS._ _ 戦略が異なれば、近隣地域も異なります。
ここに画像の説明を挿入します
BFS: 最近傍のみを探索します。
DFS: どんどん遠ざかり、元のノードから遠く離れたノードを探索します。

同性愛の仮定 (BFS に対応) の下では、同じコミュニティ内のノードは単語埋め込み後に比較的類似します。
たとえば、構造等価性の仮定 (DFS に対応) の下では、s1 と u は、単語埋め込み後に同様の構造、役割、および機能ノードを持ちます。たとえば、
実際のグラフでは u と s6 は相互に排他的ではなく、グラフは同種性と構造的等価性の両方を備えている可能性があります。
BFS のサンプリング結果は比較的安定しており、ばらつきが小さくなります。
DFS サンプリングの結果は比較的不安定で、ばらつきが大きくなります。

3.2 ノード2vec

3.2.1 ランダムウォーク

うーんu : 開始点
ttt : 前のノード
vvv : 現在のノード
xxx : 次のノード
N s (t) N_s(t)Ns( t ) :前のノードの
kkk : 現在のノード v の隣接ノードllの数
l : ランダムウォークシーケンスノードの数

次のノードの生成確率式:
P ( ci = x ∣ ci − 1 = v ) = { π vx Z if ( v , x ) ∈ E 0 それ以外の場合 P\left(c_i=x \mid c_{i-1 } =v\right)= \begin{cases}\frac{\pi_{vx}}{Z} & \text { if }(v, x) \in E \\ 0 & \text { それ以外の場合 }\end{ケース }P( c私は=バツci 1=v )={ Z円周率vx0 if  ( v ,× Eそれ以外の場合 
其中, π v x \pi_{v x} 円周率vxは正規化されていない遷移確率です。

3.2.2 検索バイアスα \alphaある

重みを歩行確率として直接使用する場合、探索戦略を調整することはできません。BFSやDFSをそのまま使うと極端すぎてスムーズな調整ができません。
そこで、パラメーター p と q を使用した 2 次ランダム ウォークを考えます。
α pq ( t , x ) = { 1 p if dtx = 0 1 if dtx = 1 1 q if dtx = 2 \alpha_{pq}(t, x) = \begin{cases}\frac{1}{p} & \text { if } d_{tx}=0 \\ 1 & \text { if } d_{tx}=1 \\ \frac{1}{q } & \text { if } d_{tx}=2\end{cases}あるpq( t × = p11q1 もし d×=0 もし d×=1 もし d×=2
π vx = α pq ( t , x ) ⋅ wvx \pi_{vx}=\alpha_{pq}(t, x) \cdot w_{vx}円周率vx=あるpq( t × wvx

次のノード x は、現在のノード v の到達可能性を考慮するだけでなく、x と前のノード t の間の距離も考慮する必要があるため、これは 2 次のランダム ウォークになります。隣接
ここに画像の説明を挿入します
リストO (∣ E∣ ) O(|E|)O ( E )便宜上、2 次ランダム ウォークではO ( a 2 ∣ V ∣ ) O(a^2|V|) をああ_2V)で距離を記録します。ここでaaaは、グラフの各点における接続の平均数です。
時間計算量:O ( lk ( l − k ) ) O\left(\frac{l}{k(lk)}\right)(k ( l k )) , k はドメイン内のノードの数です
ハードウェアの発展により、空間の複雑さは時間の複雑さほど重要ではなくなりました。

3.2.3 擬似コード

ここに画像の説明を挿入します
合計 3 つのステージがあります。

  1. p、q、およびグラフの重みを指定して、ランダム ウォーク サンプリング戦略を生成し、テーブルに保存します。
  2. 各ノードは r 個のランダム ウォーク シーケンスを生成します。ここで、node2vecWalk 関数を使用して、開始点が u、長さが l のランダム ウォーク シーケンスを生成します。
    ここに画像の説明を挿入します
  3. 生成されたランダム ウォーク シーケンスを使用して、スキップグラム モデルのトレーニングを通じてノード埋め込み表現が取得されます。

AliasSampling は、空間 (前処理) を時間と交換する方法です。その時間計算量は O(1) です。特に、多数の繰り返しサンプリング状況に適しており、優れた利点があります。離散分布サンプリングを一様分布サンプリングに変換します。
ランダム ウォーク プロセス中に、暗黙的なバイアスが発生します。したがって、偏差をできる限り減らすために、各ノードが r 回サンプリングされます。
各ステージは並列化して非同期にトレーニングでき、拡張性が非常に優れています。

3.3 接続の特徴を学ぶ

ノードの埋め込みをリンクの埋め込みに拡張します。2
つのノードが与えられた場合、二項演算子∘ \circを定義します。接続の表現を生成するには:
ここに画像の説明を挿入します

4. 実験

4.1: レ・ミゼラブルの登場人物関係グラフのグラフ埋め込み

4.2 実験のセットアップ

他のアルゴリズムと比較する
各比較実験の条件を厳密に管理する

4.3 マルチラベル分類

4.4 パラメータの感度

ここに画像の説明を挿入します

一部の接続をランダムに削除すると、パフォーマンスが徐々に低下します

4.5 外乱解析

接続の欠落: プルーニングによって新しいアイランドは作成されませんが、接続されたドメインは変更されません。
ノイズ増加接続: ランダムに増加する接続。センサー ネットワークでより一般的です。

4.6 スケーラビリティ

ノード数が 100 万から 100 万までの ER ランダム グラフを作成し、node2vec アルゴリズムを使用して、それにかかる時間を確認します。時間計算量がほぼ線形であることがわかります。

4.7 接続予測

陽性サンプルと陰性サンプルの二項分類問題を作成します。
テスト セットを収集します。残りのネットワークの接続が変更されていないことを確認しながら、ネットワークからエッジの 50% を取得します。次に、ネットワークからいくつかの隣接しないノードのペアをネガティブ サンプルとしてランダムに選択します。その後、2 分類モデルをトレーニングできます。

5. 議論と結論

node2vec はある程度の解釈可能性を示し、p および q パラメーターは柔軟で調整可能であり、複雑なタスク、特に摂動されたデータセットでのパフォーマンスが良好です。
ノードの埋め込みは接続の埋め込みに拡張できます。

コード

参考:https://www.bilibili.com/video/BV1VS4y1E7Me/?p=14&spm_id_from=pageDriver

おすすめ

転載: blog.csdn.net/zhangyifeng_1995/article/details/132787431