Slide 1

Slide 1 text

ACL読み会@PFI “How to make words with vectors: Phrase generation in distributional semantics” 株式会社Preferred Infrastructure 海野  裕也 (@unnonouno) 2014/07/12 ACL読み会@PFI

Slide 2

Slide 2 text

要旨 l  複合語の合成・分解過程を学習する l  学習された合成・分解過程によって、既存の単語や複合 語から、新規の複合語を⽣生成できるようにする l  学習は既知のベクトル表現を⽣生成できるような⾏行行列列を計 算するだけ(簡単) l  ⾔言語横断の実験もしている 2

Slide 3

Slide 3 text

フレーズベクトルの⽣生成 l  前提として単語やフレーズにはベクトルが割り当てられ るとする l  単語uと単語vのベクトルから、フレーズuvのベクトルp を⽣生成する関数 f comp を考える l  uとvを並べた2d次元のベクトルに、⾏行行列列Wをかけたらp ができることにする 3

Slide 4

Slide 4 text

4 u v W p = X

Slide 5

Slide 5 text

⽣生成関数の学習 l  単語uと単語vと、フレーズpのベクトルが沢⼭山わかって るとする l  学習データ中で誤差が最⼩小になるような⾏行行列列Wを求める l  全体を⾏行行列列で書くと上の式 5 簡単!

Slide 6

Slide 6 text

フレーズベクトルの分解 l  ベクトルpを持つ2単語からなるフレーズから、単語uと 単語vのベクトルに分解する関数f decomp を考える l  pに⾏行行列列W’をかけたらuとvをつなげたベクトルができる とかんがえる 6

Slide 7

Slide 7 text

分解⾏行行列列の学習 l  同じように、学習事例例中での誤差が最⼩小になるように W’を解く  (2)式 l  フレーズのベクトルPがなくても、WからW’を学習する こともできる  (3)式 l  Wの学習にPが必要だから、これは意味あるのか? 7 簡単!

Slide 8

Slide 8 text

再帰的なフレーズの処理理 l  フレーズは段階的に合成関数を適⽤用する l  このとき、品詞対毎に合成関数は⽤用意する l  後の実験で出る通り、今回扱うのは名詞:N、形容詞:A、前置 詞:Pの3つ 8 big red car =

Slide 9

Slide 9 text

実験 l  学習した関数(⾏行行列列)を使って、フレーズの分解と合成 を⾏行行う l  単語とフレーズのベクトルは2種類を⽐比較する l  cbow: Mikolovのword2vecを使って作ったベクトル l  count: 出現頻度度で作ったナイーブなベクトル l  名詞(N)と形容詞(A)は2万個、前置詞(P)は25個使う 9

Slide 10

Slide 10 text

⽣生成と分解の実験 l  数字は正解単語のランクの中央値 l  上:A+NàNは合成の予備実験 l  下:NàA+Nは分解の実験 l  いずれもcbowの結果が劇的に良良い 10 ⼤大体11番⽬目に正解が来る ということ

Slide 11

Slide 11 text

実例例 l  間違いではないものも多い l  religious religionのように、同じ意味の語の繰り返しに なることも・・・ 11

Slide 12

Slide 12 text

複合語から複合語を⽣生成する実験 l  ANからNPNを⽣生成する l  やはり意味的に正しいものは多い l  評価⽅方法の限界? 12

Slide 13

Slide 13 text

英伊で⾔言語横断の複合語作成 l  ⾔言語間のベクトルの写像は、少数の既知単語対から学習 l  同⼀一品詞間なので正解率率率は⾼高め 13

Slide 14

Slide 14 text

まとめ l  意味の合成・分解を単純な⾏行行列列の掛け算でモデル化 l  既知ベクトルから、合成・分解過程を学習する l  ⽅方法は簡単だが、結果を⾒見見ると⽅方針としては筋が良良さそ う 感想 l  簡単なので実装しようと思ったが時間なかった l  単語ベクトルが意味の合成・分解に有⽤用そうなことを⽰示 しているが、⼿手法が安易易なのでもう少し⼯工夫したい 14