グラフの中心でAIを叫んだノード(なおAIは出ない) 〜あるいはnode2vecに至るグラフ理論〜
1 イントロダクション
本記事を読む前に、本章を読んでください。書いていくごとに、とにかくボリュームが多くなりました。
本章では「グラフとは何か?」と「本記事で扱うこと・扱わないこと」をまとめています。非常にボリューミーなので、自身の必要な知識・不要な知識を取捨選択して読んでいただくことをお勧めします。
1.1 そもそもグラフ理論とは
まず第一に、 グラフ理論は図示とは全く別のもの です。
恥ずかしながら、ある勉強会でグラフ理論のタイトルで話す登壇者の方がいて「より良い図示の方法をまとめたトークかなにかかな。」と思っていました(無事、話を聞いて「あぁ、そっちね。」となりました)。
本ブログの著者ふたりとも物理出身の門外漢故広い心で見守ってくれればと思います。
グラフ理論とは相互に関係し合うネットワークを数学的に扱う一学問です。
下記のようなシンプルなグラフネットワークの例を考えます。例えばECサイトにおいてユーザーが商品ページを閲覧します。その際の商品をノードに、ページ遷移をエッジとしてグラフを構築します。
Figure 1: グラフの例
例えば、上記グラフで商品 \(u_2\) を閲覧したユーザーは、商品 \(u_1,\ u_3,\ u_7\) に遷移するエッジ(学習データとしてのユーザーの閲覧履歴)が存在します。集計ベースの共起確率に基づく商品レコメンドでは、商品 \(u_2\) を見ているユーザーには商品 \(u_1,\ u_3,\ u_7\) ばかりがオススメされることになります。ですが、グラフ理論に基づきネットワークを考慮すると商品 \(u_1,\ u_7\) を見ているユーザーは共通して商品 \(u_8\) を閲覧しているので、商品 \(u_8\) も 見えないエッジ としてレコメンドすることができるようになるわけです。
このような集計ベースではできないニュアンスが表現できるグラフ理論に可能性を感じ勉強を始めた次第です。
次章にて数学的なグラフの扱いについて解説します。続く章では、グラフの機械学習を用いたアプローチを紹介します。
続きを読む