nips2016 supervised word mover's distance

94
NIPS 2016 Supervised Word Mover's Distance NIPS・ICDM 2016 論文輪読会 2017/02/11 ㈱リクルートライフスタイル 田村真一

Upload: recruit-lifestyle-co-ltd

Post on 14-Feb-2017

216 views

Category:

Data & Analytics


4 download

TRANSCRIPT

Page 1: NIPS2016 Supervised Word Mover's Distance

NIPS 2016 Supervised Word Mover's Distance

NIPS・ICDM 2016 論文輪読会 2017/02/11

㈱リクルートライフスタイル 田村真一

Page 2: NIPS2016 Supervised Word Mover's Distance

はじめに

話をする人田村真一 ‣‣‣

㈱ リクルートライフスタイル ネットビジネス本部(中略)データエンジニアリングチーム → 通称「CET チーム」と呼ばれている

たまに日曜 OSS 今までコントリビュートしたやつ: Ansible, PyGithub, Terraform, ggplot2 など

Page 3: NIPS2016 Supervised Word Mover's Distance

はじめに

RLS CET チームとは

"Capture EveryThing" を掲げ、RLS 各サービスの ログの収集から分析・活用までを一手に進める

エンジニア集団である!

自分の事例だと…… ✓日々膨大な量が流れてくるログの可視化基盤の運用 ✓サーバレスの準リアルタイムログ集計システムの構築 ✓各種レコメンドのロジック・バッチ作成

など

Page 4: NIPS2016 Supervised Word Mover's Distance

はじめに

ちょこっとだけ宣伝Qiita に NIPS 2016 参加報告を書きました 今日紹介する論文の他にもいろいろ触れています! http://qiita.com/tmshn/items/3ccc5d84daa23a98d4be

Page 5: NIPS2016 Supervised Word Mover's Distance

紹介する論文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 さんのホームページで公開されるかも?)

Page 6: NIPS2016 Supervised Word Mover's Distance

紹介する論文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"と呼びます

Page 7: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

Page 8: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

?

Page 9: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

?

?

Page 10: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

こんなことができるようになる!旅行予約サイトの口コミをイメージしてください

スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

Page 11: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

こんなことができるようになる!旅行予約サイトの口コミをイメージしてください

スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い ☜

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

立地基準で

Page 12: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

こんなことができるようになる!旅行予約サイトの口コミをイメージしてください

スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高! ☜

これに一番近いのは?

設備基準で

Page 13: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

?

?

Page 14: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

?

?

Page 15: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

どうやるか?「文書」をどう表現するかが鍵

Page 16: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

どうやるか?「文書」をどう表現するかが鍵

✓文書=「単語の分布」 ✓単語=単なる「トークン ID」 → 分布自体の近さを測る

Page 17: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

美味しい

食べる

バスタオル

部屋

ある

Page 18: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

美味しい

食べる

バスタオル

部屋

ある

Page 19: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキ

ング

美味しい

食べる

バスタオル

部屋

ある

Page 20: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

味しい

食べる

バスタオル

部屋

ある

Page 21: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

美味しい

食べ

バスタオル

部屋

ある

Page 22: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

美味しい

食べる

バス

タオル

部屋

ある

Page 23: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

美味しい

食べる

バスタオル

ある

Page 24: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

美味しい

食べる

バスタオル

部屋

ある

Page 25: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 1/2TL;DR 同じ単語がたくさん出てきたら高得点!

朝食バイキングは美味しかった

美味しい朝食が食べられます

バスタオルは部屋にありました 朝食

バイキング

美味しい

食べる

バスタオル

部屋

ある

似ている!

Page 26: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 27: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 28: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 29: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 30: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 31: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高! スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

これに一番近いのは?

Page 32: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 33: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 34: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

テル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 35: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

レンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 36: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 37: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 38: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

るさい

源泉かけ流し

大浴場

最高

Page 39: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉

かけ流し

大浴場

最高

Page 40: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴

最高

Page 41: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

Page 42: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

Page 43: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

BoW 同士のコサイン距離 2/2これをさっきの例でやると? スキー場目の前の温泉旅館です

古くて由緒のある旅籠です

古いホテルだがゲレンデが近い

大通りが目の前でうるさかった

源泉かけ流しの大浴場が最高!

これに一番近いのは?

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

これ!?

Page 44: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

どうやるか?「文書」をどう表現するかが鍵

✓文書=「単語の分布」 ✓単語=単なる「トークン ID」 → 分布自体の近さを測る

Page 45: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

どうやるか?「文書」をどう表現するかが鍵

✓文書=「単語の分布」 ✓単語=単なる「トークン ID」 → 分布自体の近さを測る

⬇ ✓文書=「単語の分布」 ✓単語=意味を表現した「特徴量」 → ベクトル同士の近さも考慮に入れる

Page 46: NIPS2016 Supervised Word Mover's Distance

単語の意味を捉える

Word2vec 1/2単語の「意味」を数学的に扱う手法 [Mikolov et al., '13] 単語を密なベクトルで表現する → 共起を浅いニューラルネットで学習 足し算・引き算などの算術演算ができる

Paris - France + Italy = Rome.

Paris

FranceRome

Italy

Page 47: NIPS2016 Supervised Word Mover's Distance

とうぜん、単語と単語の近さもわかる

単語の意味を捉える

Word2vec 2/2

ホテル旅館

旅籠スキー場

ゲレンデ

温泉

大浴場

Page 48: NIPS2016 Supervised Word Mover's Distance

とうぜん、単語と単語の近さもわかる

単語の意味を捉える

Word2vec 2/2

ホテル旅館

旅籠スキー場

ゲレンデ

温泉

大浴場

近い

Page 49: NIPS2016 Supervised Word Mover's Distance

とうぜん、単語と単語の近さもわかる

単語の意味を捉える

Word2vec 2/2

ホテル旅館

旅籠スキー場

ゲレンデ

温泉

大浴場

やや遠い

近い

Page 50: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 1/3「特徴点の分布」同士の距離を測る手法 [Rubner et al., '98] 分布(≒ヒストグラム)だけでなく、特徴点間の距離も考慮する → 特徴点同士の距離が定まっていることが大事

応用例:画像を色ヒストグラムで表したときの類似度 → やはりコサイン距離では不十分で、色同士の近さも考慮したい

違うけれど似ている色として扱いたい

Page 51: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 2/3ちなみに名前の "earth" は「地球」ではなく「土」 片方の分布を土の山、もう片方の分布を穴に喩え、「穴を埋めるのに必要な最小の輸送量」をその2分布間の距離とみなしている

Icon designed by Freepik from Flaticon http://www.flaticon.com/free-icon/truck-cleaner-snow_96129

Page 52: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?

0.2 0.30.5

0.15 0.10.30.45

?? ?

各円が特徴量、その大きさが頻度を表しています

Page 53: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ)

0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

Page 54: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

Page 55: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

Page 56: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

輸送量

Page 57: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

輸送量 × 輸送距離

Page 58: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

輸送量 × 輸送距離 / 正規化

Page 59: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

輸送量 × 輸送距離 / 正規化

Page 60: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

輸送量 × 輸送距離 / 正規化

T i

=

db

Page 61: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

輸送量 × 輸送距離 / 正規化

T da≦

j

Page 62: NIPS2016 Supervised Word Mover's Distance

特徴点分布同士の近さを測る

Earth Mover's Distance 3/3どの特徴量同士をマッチさせる?→ 全部(完全2部グラフ) 出来るかぎり近い者同士がマッチするように(最小化問題)0.2 0.30.5

0.15 0.10.30.45

各円が特徴量、その大きさが頻度を表しています

T da≦

ji

=

db

輸送量 × 輸送距離 / 正規化

Page 63: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用

[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)

文書の正規化された BoW (nBoW) da, db

Page 64: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用

[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)

文書の正規化された BoW (nBoW) da, db 正規化項は不要

Page 65: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用

[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)

文書の正規化された BoW (nBoW) da, db 正規化項は不要

word2vec のL2 ノルム

Page 66: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用

[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)

文書の正規化された BoW (nBoW) da, db 正規化項は不要

word2vec のL2 ノルム

不等号ではなく等号

Page 67: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

Word Mover's Distance 1/3文書=「word2vec の分布」と捉え、EMD を適用

[Kusner et al., '15] 単語のベクトル表現の一覧 X ∈ Rd×n 特徴量集合は文書間で共有(ないところは 0 になるスパース表現)

文書の正規化された BoW (nBoW) da, db 正規化項は不要

word2vec のL2 ノルム

不等号ではなく等号

Page 68: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

Word Mover's Distance 2/3もう一度さっきの例で スキー場目の前の温泉旅館です

古いホテルだがゲレンデが近い

スキー場

目の前

温泉

旅館

古い

由緒

旅籠

ホテル

ゲレンデ

近い

大通り

うるさい

源泉かけ流し

大浴場

最高

ホテル

旅館

スキー場

ゲレンデ温泉

近い

目の前

Page 69: NIPS2016 Supervised Word Mover's Distance

文書同士の近さを測る

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 というのも出て来るが今回は割愛

Page 70: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

?

?

Page 71: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

文書=「word2vec の分布」に EMD を使う距離指標!

?

Page 72: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

文書=「word2vec の分布」に EMD を使う距離指標!

?

Page 73: NIPS2016 Supervised Word Mover's Distance

距離を学習する

距離学習とはクラスラベルの付いたデータをもとに、 同クラス=近く/異クラス=遠くなるよう「距離」を学習 実際はデータを線形変換する行列 A を学習する → 学習された「距離」: dA(x, y) = d(Ax, Ay)

A は低ランクである(低次元への射影である)ことが多い 高次元データの可視化などのための次元削減でも使われる

A

Page 74: NIPS2016 Supervised Word Mover's Distance

距離を学習する 近傍成分分析 (NCA) 1/2

k-NN 分類エラーを最小化するよう変換行列を学習する手法 [Goldberger et al., '05]

主成分分析 (PCA) を教師ありにしたようなイメージ 変換後の距離基準での k-NN 分類の精度が高くなるよう学習

Page 75: NIPS2016 Supervised Word Mover's Distance

距離を学習する 近傍成分分析 (NCA) 2/2

「k-NN 分類エラー」は A について微分不可能 実際の誤差関数はそれを緩和して微分可能にしたものを使っている

P(i の最近傍が j)

A1 A2A

連続にした pij ("soft" assign)

A1 A2A

A2

A1

i

j

k

特徴点空間

Page 76: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

文書=「word2vec の分布」に EMD を使う距離指標!

?

Page 77: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

文書=「word2vec の分布」に EMD を使う距離指標!

k-NN 分類エラーを最小化するよう変換行列を学習する手法!

Page 78: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

ひとことで言うと……

文書間の距離である WMD を

NCA で距離学習する手法

文書=「word2vec の分布」に EMD を使う距離指標!

k-NN 分類エラーを最小化するよう変換行列を学習する手法!

Page 79: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

問題設定WMD に対して距離学習を行う手法 [Huang et al., '16] 単語ベクトルの表現行列 A に加え、BoW の重み付け w も学習 NCA 同様、k-NN 分類エラーを最小化するよう学習

Page 80: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

問題設定WMD に対して距離学習を行う手法 [Huang et al., '16] 単語ベクトルの表現行列 A に加え、BoW の重み付け w も学習 NCA 同様、k-NN 分類エラーを最小化するよう学習

Page 81: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定)

Page 82: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定) ‣ A0 = 「WCD に NCA を適用して得られた変換行列」

Page 83: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定) ‣ A0 = 「WCD に NCA を適用して得られた変換行列」WCD は単なるユークリッド距離 これに NCA をかけて A0 を学習

Page 84: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 1/31. 初期化 ‣ w0 = 1 (最初はすべての単語が同じ重みと仮定) ‣ A0 = 「WCD に NCA を適用して得られた変換行列」WCD は単なるユークリッド距離 これに NCA をかけて A0 を学習

この距離指標を Supervised WCD (S-WCD) と呼ぶ また、この A0, w0 を S-WMD に適用したものを S-WMD init. と呼ぶ

Page 85: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 2/32. ロス関数の最小化(バッチ勾配降下法) 誤差関数は NCA 同様、k-NN 分類エラーの連続化版(exp の中が L2 ノルムから S-WMD に変わっただけ)

Page 86: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 2/32. ロス関数の最小化(バッチ勾配降下法) 誤差関数は NCA 同様、k-NN 分類エラーの連続化版(exp の中が L2 ノルムから S-WMD に変わっただけ)

Page 87: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 2/32. ロス関数の最小化(バッチ勾配降下法) 誤差関数は NCA 同様、k-NN 分類エラーの連続化版(exp の中が L2 ノルムから S-WMD に変わっただけ)

高速化のための工夫 ① P(a's NN is b) を全 b について計算せず、WCD で近傍候補を枝刈り

Page 88: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 3/3続 2. ロス関数の最小化(バッチ勾配降下法) 高速化のための工夫 ② S-WMD の最適化問題は毎イテレーション解くには高コストすぎるので、正則化項を入れて凸にした問題を解く → もとの問題が O(p3 log p) に対し、こちらは O(p2)

Page 89: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

学習のしかた 3/3続 2. ロス関数の最小化(バッチ勾配降下法) 高速化のための工夫 ② S-WMD の最適化問題は毎イテレーション解くには高コストすぎるので、正則化項を入れて凸にした問題を解く → もとの問題が O(p3 log p) に対し、こちらは O(p2)

Page 90: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

実験結果可視化 教師データの有無が効いている

k-NN 分類 全体的に高精度 文章が長い(密になる)と TF-IDF + NCA が勝つことも

重みベクトルの活用 クラス分類に効く単語(≒各クラスに固有な単語。固有名詞など)ほど重みづけられている

訓練時間 20NEWS で2時間ちょっと

論文を見ながらどうぞ

Page 91: NIPS2016 Supervised Word Mover's Distance

S-WMD とは何か?

使えるの?S-WMD は WMD の純粋な拡張なので、良いところも悪いところもそのまま引き継いでいる 性能は良好そう ただしやはり処理時間がネック WMD に比べ考察が甘い(学習の高速化は言及があったが、評価の高速化については特に何もなし) Word2vec 同士の距離がコサインではなく L2 なのが気になる

個人的な結論 このままでは使える場面は限られそう 実応用までは追加研究が求められる

Page 92: NIPS2016 Supervised Word Mover's Distance

原著論文 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

Page 93: NIPS2016 Supervised Word Mover's Distance

原著論文 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

Page 94: NIPS2016 Supervised Word Mover's Distance

日本語の参考文献

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