最近、DeepWalkやLINEなどのグラフ埋め込みに出会いました。ただし、グラフの埋め込みが何を意味するのか、いつそれを使用するのか(アプリケーション)という明確な考えはまだありませんか?どんな提案でも大歓迎です!
最近、DeepWalkやLINEなどのグラフ埋め込みに出会いました。ただし、グラフの埋め込みが何を意味するのか、いつそれを使用するのか(アプリケーション)という明確な考えはまだありませんか?どんな提案でも大歓迎です!
回答:
グラフの埋め込みは、関連するネットワークプロパティを保持しながら、ネットワークからベクトル空間へのマッピングを学習します。
ベクトル空間は、グラフよりもデータサイエンスに適しています。グラフにはエッジとノードが含まれます。これらのネットワーク関係は、数学、統計、機械学習の特定のサブセットのみを使用できます。ベクター空間には、これらのドメインの豊富なツールセットがあります。さらに、ベクトル演算は多くの場合、同等のグラフ演算よりも簡単で高速です。
1つの例は、最近傍の検索です。グラフ内のノードから別のノードへの「ホップ」を実行できます。数ホップ後の多くの実世界のグラフでは、意味のある情報はほとんどありません(たとえば、友人の友人の友人からの推奨など)。ただし、ベクトル空間では、距離メトリックを使用して定量的な結果(ユークリッド距離やコサイン類似度など)を取得できます。意味のあるベクトル空間に定量的な距離メトリックがある場合、最近傍を見つけるのは簡単です。
「グラフの埋め込み手法、アプリケーション、およびパフォーマンス:調査」は、さらに詳しく説明する概要記事です。
グラフ埋め込みとは何ですか? 「グラフ埋め込み」は、今日の機械学習の注目分野です。基本的に、グラフのトポロジを(非常に基本的な意味で)キャプチャするグラフの「潜在ベクトル表現」を見つけることを意味します。頂点と頂点の関係、エッジ情報なども考慮することで、この「ベクトル表現」を豊かにすることができます。グラフには、おおよそ2つのレベルの埋め込みがありますさまざまなサイズの部分グラフ):
アプリケーション- 注意深く見ると、埋め込みは「潜在的な」表現であり、グラフが| V | * | V | | V |の隣接行列 = 1M、アルゴリズムで1M * 1Mの数字を使用または処理するのは困難です。したがって、次元「d」の潜在的な埋め込み(d << | V |)により、隣接行列| V |が作成されます。* dおよび比較的使いやすい。別のアプリケーションとしては、次のようなものが考えられます-ソーシャルネットワークに同様の関心を持つ人々に製品を推奨する簡単なシナリオを考えてみましょう。頂点の埋め込み(ここでは各人のベクトル表現を意味します)を取得することで、これらのベクトルをプロットすることで類似したものを見つけることができ、これにより推奨が簡単になります。これらはいくつかのアプリケーションであり、他にもあります。素敵な調査論文-Graph Embedding Techniques、a Surveyを参照できます。
どこから来たの?この分野には多くの研究があり、ほとんどすべてが自然言語処理分野の画期的な研究、つまりミコロフによる「Word2Vec」から来ています。グラフの埋め込みに関する調査を開始する場合は、まずWord2Vecの仕組みを理解することをお勧めします。あなたは素晴らしい説明を見つけることができます-Word2Vecパラメーター学習の説明とスタンフォード講義。次に、リストした論文にジャンプできます。これらの作品は次のように分類できます。
「グラフの埋め込み」に基づいて動作します。- ディープグラフカーネル、Subgraph2Vec。
論文では、レビンらによるランダムなドット積グラフのオムニバス埋め込みのための中心極限定理。論文では、特定の種類のグラフ埋め込み(オムニバス埋め込み)は、グラフ埋め込みを「グラフの頂点が低次元ユークリッド空間のベクトルにマッピングされる」方法論として定義しています。詳細については、リンクを確認してください。