【グラフ深層学習】第1章グラフ深層学習：イントロダクション

## なぜグラフニューラルネットワークなのか？

1. **グラフの汎用性**: 
グラフは、ソーシャルネットワーク、交通ネットワーク、タンパク質間相互作用ネットワーク、知識グラフ、脳のネットワークなど、多様な分野のデータを表現するのに適しています。

2. **グラフ上の計算タスクの取り扱い**: 
現実世界の多くの問題は、グラフ上の小さな計算タスクの集合として処理できます。例えばノード分類問題やリンク予測問題として扱うことができます。

さらに、グラフ上のノードは他のノードと関連しているため、従来の機械学習手法が適用しにくいという課題があります。これを解決するためには、グラフに特化した新しい仕組みを構築する「集団的分類」や、グラフを平坦化して従来の分類技術を適用するといった2つのアプローチがあります。特に、深層学習は表現学習において大きな可能性を持っていますが、グラフは不規則なデータであり、その構造情報が複雑であるため、従来の深層学習ではこれらを十分に捉えることが困難です。そのため、グラフ深層学習という新しい研究分野が開拓されてきたのです​​。

## 想定読者

本書は、コンピュータ科学に関する基礎知識（特に微積分、線形代数、確率・統計）を有する読者を想定して書かれています。
具体的には、
- **学生**: データマイニング、機械学習、ソーシャルネットワーク分析に関心を持つ学部上級生や大学院生。
- **講義用途**: グラフ深層学習に関する講義資料として活用可能。データマイニング、機械学習、ソーシャルネットワーク分析のコースの発展トピックとしても適用可能。
- **実務担当者・プロジェクト責任者**: 自社製品やプラットフォームへの応用を目指す実務担当者やプロジェクト責任者。
- **非コンピュータ科学者**: コンピュータ科学以外の分野でグラフニューラルネットワークを活用したいと考える研究者。

### 進行ガイド
「章ノード」をクリックすると、該当の章の概要ページにジャンプします（外部リンク）

```mermaid
%%{init:{'theme':'neutral','themeVariables':{'lineColor':'black','mainBkg':'white','textColor':'black','fontSize':'18px'}}}%%
graph TD;
    1章((1章))-->2章((2章));
    1章((1章))-->3章((3章));
    2章((2章))-->4章((4章));
    3章((3章))-->4章((4章));
    4章((4章))-->9章((9章));
    4章((4章))-->5章((5章));
    5章((5章))-->6章((6章));
    5章((5章))-->7章((7章));
    5章((5章))-->14章((14章));
    5章((5章))-->8章((8章));
    8章((8章))-->10章((10章));
    8章((8章))-->11章((11章));
    8章((8章))-->12章((12章));
    8章((8章))-->13章((13章));
    8章((8章))-->15章((15章));
click 15章 "https://deeplearning-on-graphs.github.io/chap/15_introduction.html" _blank;
click 14章 "https://deeplearning-on-graphs.github.io/chap/14_introduction.html" _blank;
click 13章 "https://deeplearning-on-graphs.github.io/chap/13_introduction.html" _blank;
click 12章 "https://deeplearning-on-graphs.github.io/chap/12_introduction.html" _blank;
click 11章 "https://deeplearning-on-graphs.github.io/chap/11_introduction.html" _blank;
click 10章 "https://deeplearning-on-graphs.github.io/chap/10_introduction.html" _blank;
click 9章 "https://deeplearning-on-graphs.github.io/chap/9_introduction.html" _blank;
click 8章 "https://deeplearning-on-graphs.github.io/chap/8_introduction.html" _blank;
click 7章 "https://deeplearning-on-graphs.github.io/chap/7_introduction.html" _blank;
click 6章 "https://deeplearning-on-graphs.github.io/chap/6_introduction.html" _blank;
click 5章 "https://deeplearning-on-graphs.github.io/chap/5_introduction.html" _blank;
click 4章 "https://deeplearning-on-graphs.github.io/chap/4_introduction.html" _blank;
click 3章 "https://deeplearning-on-graphs.github.io/chap/3_introduction.html" _blank;
click 2章 "https://deeplearning-on-graphs.github.io/chap/2_introduction.html" _blank;
click 1章 "https://deeplearning-on-graphs.github.io/chap/1_introduction.html" _blank;
```
## グラフ上の特徴量学習に関する歴史

グラフを用いた計算タスクでは、ノードのベクトル表現が重要です。この表現を得るための二つの主要な方法は、特徴量エンジニアリングと特徴量学習です。特徴量エンジニアリングは手作業に依存し、下流タスクに最適でない可能性があり、膨大な人手を要します。対照的に、特徴量学習はノードの特徴量を自動的に学習し、下流タスクに適している可能性が高く、人間の介入を最小限に抑えます。グラフにおける特徴量学習は、特徴量選択と表現学習に大別されます。

### 特徴量選択
特徴量選択は、冗長性が最小で、目的変数との関連性が最大となる特徴量の集合を選択することを目的とします。多くの応用では元の特徴量が重要であり、特に厳しい要請がある場合に好まれます。グラフにおける特徴量選択は、教師あり学習や教師なし学習の設定で研究され、正則化項を導入した線形分類器などを用いています。この問題は動的グラフや多次元グラフなどにも拡張されています。

### 表現学習
### 初期のアプローチ
- **スペクトラルクラスタリング**: データ点をグラフのノードと見なし、スペクトラル埋め込みを利用して低次元空間にノードを埋め込む方法。これにより、従来のクラスタリングアルゴリズムが適用できるようになる。
- **次元削減技術**: 親和性グラフの構造情報を保持するノード表現を学習する。IsoMapやLLE、eigenmapなどがこのアプローチに含まれる。
- **行列因子分解**: 文書コーパスや推薦システムに応用され、文書や単語、ユーザーとアイテム間の表現を学習するために使用される。

### Word2vecの影響
- **Word2vec**: 単語のベクトル表現を生成する手法で、自然言語処理タスクで大成功を収める。
- **DeepWalk**: Word2vecのSkip-gramモデルをグラフ領域に適用し、ランダムウォークを通じてノード表現を学習する手法。

### 表現学習の発展
- **高度な方法の開発**: ノード共起を保持するための高度な手法が開発される。
- **情報保存**: ノードの構造的役割やコミュニティ情報、ノード状態などを保存する方法が開発される。
- **フレームワークの設計**: 有向グラフ、へテログラフ、二部グラフ、多次元グラフ、符号付きグラフ、ハイパーグラフ、動的グラフなど、様々な複雑グラフに対するフレームワークが設計される。

### 深層ニューラルネットワーク（DNN）の一般化
- **グラフニューラルネットワーク（GNN）**: DNNをグラフに一般化し、空間的アプローチとスペクトルアプローチに大別される。
- **グラフ分類**: グラフ全体の表現を求めるため、ノード表現からグラフ表現を得るプーリング手法が導入される。
- **敵対的攻撃と防御**: GNNも伝統的なDNNのように敵対的攻撃に対して脆弱であり、様々な防御技術が開発される。
- **スケーラビリティの問題**: GNNを大規模グラフに対応できるようにするための研究が行われる。
- **複雑グラフの取り扱い**: GNNモデルは複雑グラフを扱えるように設計される。
- **深層学習アーキテクチャの適用**: オートエンコーダやリカレントニューラルネットワーク、敵対的生成ネットワークなどがグラフに適用される

## より詳細を知りたい方へ
以上、「グラフ深層学習」の第1章についてまとめました。
もし気に入っていただければ，ぜひ書籍版をご購入くださると嬉しいです．
本書の概要ページは以下になります．

https://deeplearning-on-graphs.github.io