nips2016 supervised word mover's distance
TRANSCRIPT
NIPS 2016 Supervised Word Mover's Distance
NIPS・ICDM 2016 論文輪読会 2017/02/11
㈱リクルートライフスタイル 田村真一
はじめに
話をする人田村真一 ‣‣‣
㈱ リクルートライフスタイル ネットビジネス本部(中略)データエンジニアリングチーム → 通称「CET チーム」と呼ばれている
たまに日曜 OSS 今までコントリビュートしたやつ: Ansible, PyGithub, Terraform, ggplot2 など
はじめに
RLS CET チームとは
"Capture EveryThing" を掲げ、RLS 各サービスの ログの収集から分析・活用までを一手に進める
エンジニア集団である!
自分の事例だと…… ✓日々膨大な量が流れてくるログの可視化基盤の運用 ✓サーバレスの準リアルタイムログ集計システムの構築 ✓各種レコメンドのロジック・バッチ作成
など
はじめに
ちょこっとだけ宣伝Qiita に NIPS 2016 参加報告を書きました 今日紹介する論文の他にもいろいろ触れています! http://qiita.com/tmshn/items/3ccc5d84daa23a98d4be
紹介する論文Supervied Word Mover's Distance
G. Huang, C. Guo, M.J. Kusner, Y. Sun, K.Q. Weinberger, F. Sha, In NIPS 2016.
‣ 論文 https://papers.nips.cc/paper/6139-supervised-word-movers-distance
‣ 発表ビデオ https://channel9.msdn.com/Events/Neural-Information-Processing-Systems-Conference/Neural-Information-Processing-Systems-Conference-NIPS-2016/Supervised-Word-Movers-Distance
‣ ソースコード(Matlab のみ) https://github.com/gaohuang/S-WMD
‣ スライド・ポスター なし(そのうち Kusner さんのホームページで公開されるかも?)
紹介する論文Supervied Word Mover's Distance
G. Huang, C. Guo, M.J. Kusner, Y. Sun, K.Q. Weinberger, F. Sha, In NIPS 2016.
‣ 論文 https://papers.nips.cc/paper/6139-supervised-word-movers-distance
‣ 発表ビデオ https://channel9.msdn.com/Events/Neural-Information-Processing-Systems-Conference/Neural-Information-Processing-Systems-Conference-NIPS-2016/Supervised-Word-Movers-Distance
‣ ソースコード(Matlab のみ) https://github.com/gaohuang/S-WMD
‣ スライド・ポスター なし(そのうち Kusner さんのホームページで公開されるかも?)
以後 "S-WMD"と呼びます
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
?
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
?
?
S-WMD とは何か?
こんなことができるようになる!旅行予約サイトの口コミをイメージしてください
スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
S-WMD とは何か?
こんなことができるようになる!旅行予約サイトの口コミをイメージしてください
スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い ☜
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
立地基準で
S-WMD とは何か?
こんなことができるようになる!旅行予約サイトの口コミをイメージしてください
スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高! ☜
これに一番近いのは?
設備基準で
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
?
?
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
?
?
文書同士の近さを測る
どうやるか?「文書」をどう表現するかが鍵
文書同士の近さを測る
どうやるか?「文書」をどう表現するかが鍵
✓文書=「単語の分布」 ✓単語=単なる「トークン ID」 → 分布自体の近さを測る
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美味しい
食べる
バスタオル
部屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美味しい
食べる
バスタオル
部屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキ
ング
美味しい
食べる
バスタオル
部屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美
味しい
食べる
バスタオル
部屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美味しい
食べ
る
バスタオル
部屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美味しい
食べる
バス
タオル
部屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美味しい
食べる
バスタオル
部
屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美味しい
食べる
バスタオル
部屋
ある
文書同士の近さを測る
BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!
朝食バイキングは美味しかった
美味しい朝食が食べられます
バスタオルは部屋にありました 朝食
バイキング
美味しい
食べる
バスタオル
部屋
ある
似ている!
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目
の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高! スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
これに一番近いのは?
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホ
テル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲ
レンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
う
るさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉
かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴
場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最
高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
文書同士の近さを測る
BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です
古くて由緒のある旅籠です
古いホテルだがゲレンデが近い
大通りが目の前でうるさかった
源泉かけ流しの大浴場が最高!
これに一番近いのは?
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
これ!?
文書同士の近さを測る
どうやるか?「文書」をどう表現するかが鍵
✓文書=「単語の分布」 ✓単語=単なる「トークン ID」 → 分布自体の近さを測る
文書同士の近さを測る
どうやるか?「文書」をどう表現するかが鍵
✓文書=「単語の分布」 ✓単語=単なる「トークン ID」 → 分布自体の近さを測る
⬇ ✓文書=「単語の分布」 ✓単語=意味を表現した「特徴量」 → ベクトル同士の近さも考慮に入れる
単語の意味を捉える
Word2vec 1/2単語の「意味」を数学的に扱う手法 [Mikolov et al., '13] 単語を密なベクトルで表現する → 共起を浅いニューラルネットで学習 足し算・引き算などの算術演算ができる
Paris - France + Italy = Rome.
Paris
FranceRome
Italy
とうぜん、単語と単語の近さもわかる
単語の意味を捉える
Word2vec 2/2
ホテル旅館
旅籠スキー場
ゲレンデ
温泉
大浴場
とうぜん、単語と単語の近さもわかる
単語の意味を捉える
Word2vec 2/2
ホテル旅館
旅籠スキー場
ゲレンデ
温泉
大浴場
近い
とうぜん、単語と単語の近さもわかる
単語の意味を捉える
Word2vec 2/2
ホテル旅館
旅籠スキー場
ゲレンデ
温泉
大浴場
やや遠い
近い
特徴点分布同士の近さを測る
Earth Mover's Distance 1/3「特徴点の分布」同士の距離を測る手法 [Rubner et al., '98] 分布(≒ヒストグラム)だけでなく、特徴点間の距離も考慮する → 特徴点同士の距離が定まっていることが大事
応用例:画像を色ヒストグラムで表したときの類似度 → やはりコサイン距離では不十分で、色同士の近さも考慮したい
違うけれど似ている色として扱いたい
特徴点分布同士の近さを測る
Earth Mover's Distance 2/3ちなみに名前の "earth" は「地球」ではなく「土」 片方の分布を土の山、もう片方の分布を穴に喩え、「穴を埋めるのに必要な最小の輸送量」をその2分布間の距離とみなしている
Icon designed by Freepik from Flaticon http://www.flaticon.com/free-icon/truck-cleaner-snow_96129
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?
0.2 0.30.5
0.15 0.10.30.45
?? ?
各円が特徴量、その大きさが頻度を表しています
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ)
0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
輸送量
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
輸送量 × 輸送距離
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
輸送量 × 輸送距離 / 正規化
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
輸送量 × 輸送距離 / 正規化
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
輸送量 × 輸送距離 / 正規化
T i
=
db
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
輸送量 × 輸送距離 / 正規化
T da≦
j
特徴点分布同士の近さを測る
Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5
0.15 0.10.30.45
各円が特徴量、その大きさが頻度を表しています
T da≦
ji
=
db
輸送量 × 輸送距離 / 正規化
文書同士の近さを測る
Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用
[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)
文書の正規化された BoW (nBoW) da, db
文書同士の近さを測る
Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用
[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)
文書の正規化された BoW (nBoW) da, db 正規化項は不要
文書同士の近さを測る
Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用
[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)
文書の正規化された BoW (nBoW) da, db 正規化項は不要
word2vec のL2 ノルム
文書同士の近さを測る
Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用
[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)
文書の正規化された BoW (nBoW) da, db 正規化項は不要
word2vec のL2 ノルム
不等号ではなく等号
文書同士の近さを測る
Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用
[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)
文書の正規化された BoW (nBoW) da, db 正規化項は不要
word2vec のL2 ノルム
不等号ではなく等号
文書同士の近さを測る
Word Mover's Distance 2/3もう一度さっきの例で スキー場目の前の温泉旅館です
古いホテルだがゲレンデが近い
スキー場
目の前
温泉
旅館
古い
由緒
旅籠
ホテル
ゲレンデ
近い
大通り
うるさい
源泉かけ流し
大浴場
最高
ホテル
旅館
スキー場
ゲレンデ温泉
近い
目の前
文書同士の近さを測る
Word Mover's Distance 3/3ダメなところ 距離計算自体にめちゃくちゃ時間かかる O(p3 log p) たとえばコサイン距離は O(p) ……最適化問題を毎回解くのは辛い ※ p は対象文書中の単語数(=da, db 中の非ゼロ次元数)
↓
高速な距離計算のために 下記の Word Centroid Distance (WCD) が下限として使える
計算量は O(dp) (d は word2vec の次元数) ただの L2 ノルムなので既存のインデックス手法が使える ※他に Relaxed-WMD というのも出て来るが今回は割愛
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
?
?
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
文書=「word2vec の分布」に EMD を使う距離指標!
?
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
文書=「word2vec の分布」に EMD を使う距離指標!
?
距離を学習する
距離学習とはクラスラベルの付いたデータをもとに、 同クラス=近く/異クラス=遠くなるよう「距離」を学習 実際はデータを線形変換する行列 A を学習する → 学習された「距離」: dA(x, y) = d(Ax, Ay)
A は低ランクである(低次元への射影である)ことが多い 高次元データの可視化などのための次元削減でも使われる
A
距離を学習する 近傍成分分析 (NCA) 1/2
k-NN 分類エラーを最小化するよう変換行列を学習する手法 [Goldberger et al., '05]
主成分分析 (PCA) を教師ありにしたようなイメージ 変換後の距離基準での k-NN 分類の精度が高くなるよう学習
距離を学習する 近傍成分分析 (NCA) 2/2
「k-NN 分類エラー」は A について微分不可能 実際の誤差関数はそれを緩和して微分可能にしたものを使っている
P(i の最近傍が j)
A1 A2A
連続にした pij ("soft" assign)
A1 A2A
A2
A1
i
j
k
特徴点空間
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
文書=「word2vec の分布」に EMD を使う距離指標!
?
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
文書=「word2vec の分布」に EMD を使う距離指標!
k-NN 分類エラーを最小化するよう変換行列を学習する手法!
S-WMD とは何か?
ひとことで言うと……
文書間の距離である WMD を
NCA で距離学習する手法
文書=「word2vec の分布」に EMD を使う距離指標!
k-NN 分類エラーを最小化するよう変換行列を学習する手法!
S-WMD とは何か?
問題設定WMD に対して距離学習を行う手法 [Huang et al., '16] 単語ベクトルの表現行列 A に加え、BoW の重み付け w も学習 NCA 同様、k-NN 分類エラーを最小化するよう学習
S-WMD とは何か?
問題設定WMD に対して距離学習を行う手法 [Huang et al., '16] 単語ベクトルの表現行列 A に加え、BoW の重み付け w も学習 NCA 同様、k-NN 分類エラーを最小化するよう学習
S-WMD とは何か?
学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定)
S-WMD とは何か?
学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定) ‣ A0 = 「WCD に NCA を適用して得られた変換行列」
S-WMD とは何か?
学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定) ‣ A0 = 「WCD に NCA を適用して得られた変換行列」WCD は単なるユークリッド距離 これに NCA をかけて A0 を学習
S-WMD とは何か?
学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定) ‣ A0 = 「WCD に NCA を適用して得られた変換行列」WCD は単なるユークリッド距離 これに NCA をかけて A0 を学習
この距離指標を Supervised WCD (S-WCD) と呼ぶ また、この A0, w0 を S-WMD に適用したものを S-WMD init. と呼ぶ
S-WMD とは何か?
学習のしかた 2/32. ロス関数の最小化(バッチ勾配降下法) 誤差関数は NCA 同様、k-NN 分類エラーの連続化版(exp の中が L2 ノルムから S-WMD に変わっただけ)
S-WMD とは何か?
学習のしかた 2/32. ロス関数の最小化(バッチ勾配降下法) 誤差関数は NCA 同様、k-NN 分類エラーの連続化版(exp の中が L2 ノルムから S-WMD に変わっただけ)
S-WMD とは何か?
学習のしかた 2/32. ロス関数の最小化(バッチ勾配降下法) 誤差関数は NCA 同様、k-NN 分類エラーの連続化版(exp の中が L2 ノルムから S-WMD に変わっただけ)
高速化のための工夫 ① P(a's NN is b) を全 b について計算せず、WCD で近傍候補を枝刈り
S-WMD とは何か?
学習のしかた 3/3続 2. ロス関数の最小化(バッチ勾配降下法) 高速化のための工夫 ② S-WMD の最適化問題は毎イテレーション解くには高コストすぎるので、正則化項を入れて凸にした問題を解く → もとの問題が O(p3 log p) に対し、こちらは O(p2)
S-WMD とは何か?
学習のしかた 3/3続 2. ロス関数の最小化(バッチ勾配降下法) 高速化のための工夫 ② S-WMD の最適化問題は毎イテレーション解くには高コストすぎるので、正則化項を入れて凸にした問題を解く → もとの問題が O(p3 log p) に対し、こちらは O(p2)
S-WMD とは何か?
実験結果可視化 教師データの有無が効いている
k-NN 分類 全体的に高精度 文章が長い(密になる)と TF-IDF + NCA が勝つことも
重みベクトルの活用 クラス分類に効く単語(≒各クラスに固有な単語。固有名詞など)ほど重みづけられている
訓練時間 20NEWS で2時間ちょっと
論文を見ながらどうぞ
S-WMD とは何か?
使えるの?S-WMD は WMD の純粋な拡張なので、良いところも悪いところもそのまま引き継いでいる 性能は良好そう ただしやはり処理時間がネック WMD に比べ考察が甘い(学習の高速化は言及があったが、評価の高速化については特に何もなし) Word2vec 同士の距離がコサインではなく L2 なのが気になる
個人的な結論 このままでは使える場面は限られそう 実応用までは追加研究が求められる
原著論文 1/2
[Huang et al., '16] Supervised Word Mover's Distance G. Huang, C. Guo, M.J. Kusner, Y. Sun, K.Q. Weinberger, F. Sha. Supervised Word Mover's Distance. In NIPS 2016. https://papers.nips.cc/paper/6139-supervised-word-movers-distance
[Mikolov et al., '13] word2vec T. Mikolov, K. Chen, G. Corrado, J. Dean. Efficient Estimation of Word Representations in Vector Space. In ICLR 2013 Workshop. https://arxiv.org/abs/1301.3781
[Rubner et al., '98] Eearth Mover's Distance Y. Rubner, C. Tomasi, L.J. Guibas. A Metric for Distributions with Applications to Image Databases. In ICCV 1998. http://ieeexplore.ieee.org/abstract/document/710701/ http://ai.stanford.edu/~rubner/papers/rubnerIccv98.pdf
原著論文 2/2
[Kusner et al., '15] Word Mover's Distance M.J. Kusner, Y. Sun, N.I. Kolkin, K.Q. Weinberger. From Word Embedding To Documents Distances. In ICML 2015. http://www.jmlr.org/proceedings/papers/v37/kusnerb15.html
[Goldberger et al., '05] Neighborhood Component Analysis J. Goldberger, S. Roweis, G. Hinton, R. Salakhutdinov. Neighborhood Component Analysis. In NIPS 2005. https://papers.nips.cc/paper/2566-neighbourhood-components-analysis
日本語の参考文献
Word Mover's Distance Word Mover's Distance: word2vecの文書間距離への応用 - yubessy.hatenablog.com http://yubessy.hatenablog.com/entry/2017/01/10/122737
From Word Embeddings To Document Distances http://www.slideshare.net/kentonozawa75/from-word-embeddings-to-document-distances
Earth Mover's Distance Earth Mover's Distance (EMD) - 人工知能に関する断創録 http://aidiary.hatenablog.com/entry/20120804/1344058475