【学習ノート】DeepWalk Graph Neural Network論文の精読

参考資料:DeepWalk [グラフニューラルネットワーク論文精読]

word2vec

関連文:
ベクトル空間における単語表現の効率的な推定
単語とフレーズの分散表現とその構成性

ランダムウォーク ラムダムウォークの概要

シーケンスはランダム ウォークを通じてサンプリングできます。

シーケンスは文のようなもので、ノードは単語のようなものです。

ランダム ウォークの仮定は word2vec と似ており、隣接する単語が類似していると仮定します。したがって、スキップグラム問題を構築し、中心ノードを入力し、周囲の隣接ノードを予測することができます。これにより、word2vec が完全に適用されます。

Deepwalk公式PPT紹介

https://dl.acm.org/doi/10.1145/2623330.2623732

中心となるアイデア: ランダム ウォーク = 文

ディープウォークの利点

  • スケーラブル - オンライン学習アルゴリズムなので、新しいデータが来たときにトレーニングを最初から開始する必要はありません。
  • ランダム ウォークを文として扱い、NLP の言語モデルを直接適用できます。
  • まばらにラベルが付けられたグラフ分類タスクでは良好に実行されます。

言語モデル

NLP の分野では、「単語頻度」と呼ばれる現象があり、特に頻繁に出現する単語もあれば、あまり出現しない単語もあります。
グラフ、特にスケールフリー グラフ ネットワークには、「頂点頻度」という同様の現象があります。これは、非常に頻繁にアクセスされる Web サイトと、そうでない Web サイトがあります。

プロセス

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

  1. 入力グラフ
  2. ランダム ウォーク シーケンスをサンプルする
  3. ランダム ウォーク シーケンスを使用した word2vec のトレーニング
  4. 階層型ソフトマックスを使用する
  5. 各ノードのベクトル表現を取得します
2. ランダムウォーク
  • 各ノードはγ \gammaを生成しますγランダム ウォーク シーケンス。
  • 各ランダム ウォークの最大長はttです。
  • ノードの次のノードを等しい確率で選択する
  • 例:v 46 → v 45 → v 71 → v 24 → v 5 → v 1 → v 17 v_{46} \rightarrow v_{45} \rightarrow v_{71} \rightarrow v_{24} \rightarrow v_5 \rightarrow v_1 \rightarrow v_{17}v46v45v71v24v5v1v17
3. ランダム ウォーク シーケンスを使用してスキップグラム タスクを構築し、word2vec をトレーニングします

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

4. 階層型ソフトマックスを使用する

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

学習パラメータ: ノード表現、
最適化中の確率的勾配降下法を使用した分類器の重み

評価する

属性予測(ノード分類問題)
ここに画像の説明を挿入します
スパースラベル問題です。Deepwalk をスペクトル クラスタリング、エッジ クラスタ、モジュール性、wvRN と比較します。

  • ブログカタログ
    ここに画像の説明を挿入します
  • ちらつき
    ここに画像の説明を挿入します

deepwalk は、特にラベルが非常に少ない場合に非常に優れたパフォーマンスを発揮します。

並列化可能

並列処理は表現品質には影響しません。

展望

  • ストリーミング: グラフ全体に関する情報は必要ありません。動的更新。
  • 「非ランダム」ウォーク: 特定の傾向がある可能性があります。
  • 写真と言語は相互に補完し合い、2 つの分野でのブレークスルーは互いに学ぶことができます。
    ここに画像の説明を挿入します

論文を集中的に読む

データセット: 空手クラブ

問題定義

G = ( V , E ) G=(V,E)G=( V E )
GL = ( V , E , X , Y ) G_L=(V,E,X,Y)GL=( V × Y )
X ∈ R ∣ V ∣ × SX \in \mathbb{R}^{|V| \倍S}バツRV × S : 各ノードは S 次元の特徴を持ちます
Y ∈ R ∣ V ∣ × ∣ Y ∣ Y \in \mathbb{R}^{|V| \times|\mathcal{Y}|}YRV × Y : 各ノードはY \mathcal{Y}Yタグ

タスク: 関係分類 (独立かつ同一の分布の仮定を満たさない)
目標: XE ∈ R r ∣ V ∣ × d X_E \in \mathbb{R}_r^{|V| \times d} を学習するバツERrV × d:d は単語埋め込み後の次元です

接続情報を反映した埋め込み + ノード自身を反映した特性 => 機械学習による分類(不正検知)

学びたい機能

  • 適応性: オンライン学習アルゴリズム
  • コミュニティ クラスタリング情報を反映: 元のイメージ内の類似したノードは、埋め込み後も近くにあります。
  • 低次元: 過学習を防止
  • Continuous: スムーズな決定境界を当てはめるのに便利

3.1 ランダムウォーク

起点: v i v_i v私は
ランダム ウォーク: W vi \mathcal{W}_{v_i}Wv私はW vi 1 , W vi 2 , … , W vik \mathcal{W}_{v_i}^1, \mathcal{W}_{v_i}^2, \ldots, \mathcal{W}_{v_i}^ {k}Wv私は1Wv私は2Wv私は: 右上隅は k 番目のステップを表します。
ランダム ウォークは、コンテンツの推奨、コミュニティの検出、および類似性の測定方法として使用されています。
ランダム ウォークは、一部の出力に依存するアルゴリズムの基礎でもあります (グラフ全体を少なくとも 1 回は走査する必要があります)。
ランダム ウォークの利点:
1. ランダム ウォーク シーケンスを生成するための並列サンプリング
2. オンライン学習: ネットワーク内に新しいノードと新しい関係がある場合、グラフ情報全体を再計算する必要はなく、新しいノードと新しい関係のみが再計算されます。サンプリングされたものであるため、反復的なオンライン増分トレーニングで十分です。

3.2 べき乗則分布(べき乗則)

  • ランダムネットワーク
    ランダムネットワークの場合、一般にノードの次数は小さく、一部のノードの次数が他のノードよりも大幅に大きい分布はなく、おおよそ正規曲線を描きます

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

  • スケールフリーネットワーク
    ここに画像の説明を挿入します

  • ジップの法則:
    単語の単語頻度は、単語頻度ランキングの定乗に反比例します。つまり、頻繁に使用される単語(ノード)はごく少数です。

3.3 言語モデル

言語モデルの目標は、特定の単語シーケンスが出現する可能性を推定することです。より正式には:
単語シーケンスW 1 n = ( w 0 , w 1 , ⋯ , wn ) W_1^n=\left(w_0, w_1, \cdots, w_n\right) が与えられたとします。W1=( w0w1w)、確率を最大化することを期待します:
Pr ⁡ ( wn ∣ w 0 , w 1 , ⋯ , wn − 1 ) \operatorname{Pr}\left(w_n \mid w_0, w_1, \cdots, w_{n-1}\右)広報( ww0w1wn 1)

つまり、前のnnがわかっていますn単語、n+1 n+1n+1単語の確率。

論文では前にi − 1 i-1を使用します。1ノード、nn 番目n個のノード。Φ: v ∈ V ↦ R ∣ V ∣ × d \Phi: v \in V \mapsto \mathbb{R}^{|V| \times d} を導入します
F vVRV × dマッピング。テーブル ルックアップを通じてノードをベクトルにマッピングします。
したがって、問題は次のように変換されます (最初の i-1 ノードの埋め込みを使用して i 番目のノードを予測します):
Pr ⁡ ( vi ∣ ( Φ ( v 1 ) , Φ ( v 2 ) , ⋯ , Φ ( vi − 1 ) ) ) \ 演算子名{Pr}\left(v_i \mid\left(\Phi\left(v_1\right), \Phi\left(v_2\right), \cdots, \Phi\left(v_{i-1 }\右) \右)\右)広報( v私は( F( v1)ファイ( v2)ファイ( vi 1) ) )
しかし、これを条件付き確率に変換すると、乗算が増加するにつれてどんどん小さくなり、非常に遠くに移動すると確率が非常に小さくなります。

参照ワード2vec

word2vec は自己教師ありモデルであり、周囲の単語の順序は関係ありません。

スキップグラムの誤り関数:minimum ⁡ Φ − log ⁡ Pr ⁡ ( { vi − w , ⋯ , vi + w } \ vi ∣ Φ ( vi ) ) \underset{\Phi}{\operatorname{minimize}}\ \ -\log \operatorname{Pr}\left(\left\{v_{iw}, \cdots, v_{i+w}\right\} \backslash v_i| \Phi\left(v_i\right)\right)ファイ最小化する  ログ_広報( { vi wv+ w}\ v私は∣Φ( v私は) )

ランダム ウォークによって生成されるグラフの順序は意味がありません。
モデルはより小さく、一度に 1 つのノードを入力し、周囲のノードを予測します。

4.方法

4.2 アルゴリズム: ディープウォーク

アルゴリズムは 2 つの部分に分かれています:
1. ランダム ウォーク ジェネレーター
2. 更新ステップ

  • ディープウォークの擬似コード

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

  • スキップグラムの疑似コード
    ここに画像の説明を挿入します

ランダム ウォーク シーケンスが特定の道を歩いた後に開始ノードに送信される確率を設定できますが、予備実験の結果は明らかな影響を与えません。

4.2.1 スキップグラム

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

4.2.2 階層的ソフトマックス

ソフトマックスを直接実行すると、分配関数を計算するにはコストが高すぎることがわかります。
ここに画像の説明を挿入します

ここに画像の説明を挿入します
したがって、ディープウォークは 2 つの重みセットをトレーニングする必要があります:
1. 単語埋め込み行列
2. N-1 ロジスティック回帰重み (N リーフ ノードには N-1 ロジスティック回帰があります)

  • 全体の流れ図
    ここに画像の説明を挿入します

4.2.3 最適化

パラメータは上記の 2 つの重みセットで、サイズはO ( d ∣ V ∣ ) O(d|V|)です。O ( d V )

4.3 マルチスレッドの非同期並列処理

4.4 アルゴリズムのバリエーション

4.4.1 ストリーミング

学習率が変化せず、小さいままであることを確認します。

4.4.2 非ランダムウォーク

ユーザーのインタラクションは偏りがちです。これには、接続の存在だけでなく、接続の重みも考慮されます。文は実際には、偏ったサンプリング シーケンスとして見ることができます。

5.実験デザイン

データセット:
ここに画像の説明を挿入します

5.2 比較アルゴリズム

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

6. 実験

6.1 マルチカテゴリノードの分類

TR T_RTR:ラベル付きノードの割合
評価指標:Macro−F1 Macro-F1マクロ_ _F 1 (各カテゴリーの平均 F1) およびMicro − F 1 Micro-F1マイクロ_ _F 1 (全体の TP、FN、FP、TN が全体の F1 を計算します)
ここでは、1 対残りのロジスティック回帰を使用して分類器を実装します。

1 対残りに関する参考資料を見つける

その効果を以下に示します。
結果を図に示します。
1. TR T_RTR最適寸法 d、TR T_Rに影響します。TR値が大きいほど、最適な d は大きくなります
γが大きいほど効果は高くなりますが、余裕があります
3.TR T_RTR4. 異なるサイズ、異なるγ \gamma
の写真γの相対的な影響は一貫しています
ここに画像の説明を挿入します

7.関連著作物

1. 埋め込みは自己教師あり (教師なし) 学習を通じて得られます。
2. グラフ内の接続情報のみを考慮してください。その後、埋め込みとアノテーションを使用して教師付き分類モデルをトレーニングできます。
3. オンライン学習。

おすすめ

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