@uminchu987さんと輪読会を開催したので、資料の内容をまとめました。
第5章 ノード埋め込み
表データの機械学習について復習
表データの機械学習は以下のような整理ができる。
- 各処理対象が1行の特徴量で記述される。
- 各処理対象に対する予測は、行間の依存関係を考えない。
ネットワークは直接扱う場合、ノード数が増えるにつれて行と列が大きくなりやすい。そのため、ネットワークの構造から「新たな特徴量」を抽出するアプローチを用いることが多い。
例1
| ブランド | 原産国 | 内容量 | 価格 |
|---|---|---|---|
| ブランドA | コロンビア | 200g | 2,000円 |
| ブランドA | ジャマイカ | 200g | 1,800円 |
| ブランドB | コロンビア | 200g | 1,600円 |
| ブランドB | ブランドB | 100g | 700円 |
| ブランドB | インドネシア | 400g | 3,500円 |
例2
| ユーザ | 特徴1 | 特徴2 | 年齢 |
|---|---|---|---|
| ユーザA | 10.2 | 20.9 | 20歳 |
| ユーザB | -5.5 | 25.1 | 40歳 |
| ユーザC | 12.8 | 20.7 | 22歳 |
| ユーザD | 6.1 | 8.0 | 16歳 |
| ユーザE | -4.0 | 16.8 | 38歳 |
(記号としての)単語の数値表現
- 代表的な例として「One-Hotエンコーディング」「Bag of Words」「tf-idf」などがある。
- これらの手法は「意味的な類似性」を扱うことができない欠点がある。
- 例えば「織田信長」と「豊臣秀吉」が意味的に近く、「織田信長」と「テレビ」の意味的に離れていることを表現できない。
単語埋め込み
- 単語埋め込み(word embedding)とは?
- テキストデータ内の単語を低次元のベクトルに変換し、潜在的な意味を数値的に扱う技術。
- 単語埋め込みの代表的な手法として「word2vec」がある。
ノード埋め込み
- ノード埋め込み(node embedding)とは?
- ネットワーク中のノードの性質を数値によるベクトルで表現する技術。
- 「周辺のノードの性質が似ているノード同士は類似している」と仮定して学習することが多い。
- どの性質に着目するかは手法による。
- 何かしらの系列を生成することで、word2vecと同じように埋め込みをすることができる。
ノードの近接性を捉える手法
DeepWalk
- ランダムウォークを利用して、ノードの分散表現を学習する手法。
- ランダムウォーク:次のノードに移るかを確率的無作為に選択する方法
node2vec
- 「幅優先探索(BFS)」と「深さ優先探索(DFS)」を組み合わせて偏りを持たせたランダムウォークによってノード系列をサンプリングする手法
- DeepWalkは「局所的または大局的なつながりの情報を積極的に活用することができていない」という課題があったという点を解消するために考案された。
LINE
ランダムウォークを使わずにノードを埋め込みを学習する手法の1つ。
「1次の近接性」と「2次の近接性」を区別して考えることで、ネットワークの局所的、大域的な構造を学習することができる。
NetMF
- DeepWalkなどで行われているアルゴリズムを「行列因子分解」で表現する手法。
- 他の手法ではサンプリングなどで計算量を抑えている一方で、こちらは行列因子分解で解を求めるため、元の手法より高い性能が期待できる。
- アルゴリズムを行列形式で理論的に解析できるようになる。








