# Graph, GNN # Plan * Graph, GNN * GCN * Sample Training * AlphaFold # Graph Examples SNSや、路線図、決定木、分子構造など様々 ![](https://i.imgur.com/HcERbPR.png) # How to define the Graph グラフをどう数式として定義できるか。計算は置いておいて、次のような要素と行列でまず定義する。 ## Component ![](https://i.imgur.com/luSpH9n.png) ## Adjacency Matrix ![](https://i.imgur.com/ncZZAgz.png) # Graph Task ## Types of task Graph で解きたいTaskの種類 ![](https://i.imgur.com/Cz4PM5Y.png) ![](https://i.imgur.com/uGJLiyd.png) より具体的なタスクはここ参照 http://web.stanford.edu/class/cs224w/slides/01-intro.pdf ## How to solve graph's task 例えば、画像や自然言語でも同様にまずはtaskを解きやすくできる形にEncodeする必要がある ![](https://i.imgur.com/Y6MaSIb.png) なので、Graphも同様にEncodeできれば良い。そして、**NodeをEncode**できれば様々なlevelのtask に適用が容易。 ![](https://i.imgur.com/w5wGvv0.png) $\boldsymbol{z}_n$はEncodeして獲得したNodeの特徴ベクトル。NodeをEncodeした特徴量で色々と代用可能。 ![](https://i.imgur.com/9xSduOk.png) # How to encode a node 基本的なアイデアは、**Target となる Node は近傍の Node(neighborhoods)から情報(Message)を受け取って表現される**、というものである。 ![](https://i.imgur.com/LIy7KpR.png) ![](https://i.imgur.com/fubjO3B.png) 式で書くとこんな感じ ![](https://i.imgur.com/PnJ3Ohj.png) Target Node の2個隣のノードまでとして具体的に計算すると ![](https://i.imgur.com/m9ILAAz.png) Taargetの2個隣のNode Encode ![](https://i.imgur.com/Y03SKyS.png) ![](https://i.imgur.com/QRLxo6Z.png) Taargetの1個隣のNode Encode ![](https://i.imgur.com/XJKgADA.png) 赤のパラメータを学習する。**N個隣の中では重みを共有している**