23
Don’t count, predict! A systematic comparison of context- counting vs. context-predicting semantic vectors Marco Baroni, Georgiana Dinu, German Kruszewski ACL 2014 読読読 読読読読 D1 読読読

dont_count_predict_in_acl2014

Embed Size (px)

Citation preview

Page 1: dont_count_predict_in_acl2014

Don’t count, predict!A systematic comparison of context-counting

vs. context-predicting semantic vectors

Marco Baroni, Georgiana Dinu,

German Kruszewski

ACL 2014

読む人:東北大学  D1  高瀬翔

Page 2: dont_count_predict_in_acl2014

単語の意味をどう表現する?• 分布仮説 [Harris, 64]

– 似た文脈で出現する単語は似た意味を持つ– 単語の意味を文脈の分布で表現できる

• 様々な工夫– 単語間の共起情報尺度( e.g., 共起頻度, PMI )– 次元圧縮( e.g., PCA , Matrix Factorization )

代表作 作家 陸上競技 文学賞 時速 筋肉 順位 書く

フランツ・カフカ 1 1 0 1 0 0 0 1

大江健三郎 1 1 0 1 0 0 0 1

パオロ・バチガルピ

1 1 0 1 0 0 0 1

ウサイン・ボルト 0 0 1 0 1 1 1 0

カール・ルイス 0 0 1 0 1 1 1 0

作家

陸上選手

作家

Page 3: dont_count_predict_in_acl2014

最近: predictive モデルが流行• 低次元,密な空間で単語のベクトルを予測(学習)

– 利点1:既存手法(カウントモデル)を一つのモデルで表現• カウントモデル:共起頻度カウント→ PMI 計算→次元圧縮

– 利点2:大規模データに対してもスケールする

• 補足(個人の意見):火付け役は word2vec ?– 実装が公開されていて,簡単に使用可能

• コンパイルしてコーパスを突っ込むだけ– ACL2014 では word2vec を引用した論文が大量に

Page 4: dont_count_predict_in_acl2014

カウントモデル vs. predictive モデル

• どちらが良いのか気になるのが人情• 個々のタスクでの比較は報告されている

– 単語の類似度 [Huang+ 12] ,フレーズの類似度 [Blacoe+

12] , analogy[Mikolov+ 13]

– タスク横断的に検証,報告したものはない

• 本研究の目的:単語の意味表現の質について,カウントモデルと predictive モデルの性能を様々な実験を通して比較– 実質的にはカウントモデル vs. word2vec– (他の predictive モデルも載ってるが,ほぼ比較なし)

Page 5: dont_count_predict_in_acl2014

論文の概要図

コーパス

共起情報の集計(頻度, PMI ,…)

代表作 作家 …

フランツ・カフカ

3.4 5.6 …

大江健三郎 3.8 4.2 …

… … … …

フランツ・カフカ

6.9 -3.2

大江健三郎 7.8 -2.8

… … …

次元圧縮( NMF ,SVD ,…)

フランツ・カフカ

-5.8 1.7

大江健三郎 -6.9 1.2

… … …word2vec( CBOW )

カウントモデルVS.

predictive モデル様々なタスクで比較

Page 6: dont_count_predict_in_acl2014

まずはカウントモデルの概要説明

コーパス

共起情報の集計(頻度, PMI ,…)

代表作 作家 …

フランツ・カフカ

3.4 5.6 …

大江健三郎 3.8 4.2 …

… … … …

フランツ・カフカ

6.9 -3.2

大江健三郎 7.8 -2.8

… … …

次元圧縮( NMF ,SVD ,…)

Page 7: dont_count_predict_in_acl2014

共起情報の集計• 窓幅 n 以内の単語との• Pointwise Mutual Information(PMI)

– 二単語( wi, wj )の相関の強さ– 片方が出現したとき必ずもう一方も出現で最大に

• Local Mutual Information(LMI)[Evert+ 05]

 

In 1912, Kafka wrote the story…

n n

Page 8: dont_count_predict_in_acl2014

次元圧縮• 単語の文脈ベクトルの次元を k に圧縮

– 行列の圧縮テクニックを利用( SVD , NMF )• SVD (特異値分解)

– Ukと Σkから m × k の行列を作成• NMF ( Nonnegative Matrix Factorization ) [Lee+ 00]

– 行列を非負の要素からなる二つの行列で近似

U( m×m )

行列( m ×

n )=

VT

( n × n )

Σ( m ×  

n )

k

Uk

k

Σk

行列( m ×

n )≅

k

m

m

m × k の行列を圧縮結果とする

Page 9: dont_count_predict_in_acl2014

word2vec の概要を説明

コーパス

フランツ・カフカ

-5.8 1.7

大江健三郎 -6.9 1.2

… … …

word2vec( CBOW )

Page 10: dont_count_predict_in_acl2014

word2vec(CBOW)

• 周辺(窓幅 n )の単語から中央の単語ベクトルを予測• skip-gram (周辺単語を予測するモデル)より高速,大規模

データでは高性能• 高速化,精度向上のための様々な工夫

– Hierarchical softmax , negative sampling , subsampling– (時間の都合上今回は説明しません…)

n

n

wI wO ここの計算が大変(全単語対象)なので様々な工夫を行う

Page 11: dont_count_predict_in_acl2014

カウントモデル vs. word2vec

• 訓練コーパス(モデルの作成用): 28 億単語– ukWaC , English Wikipedia , British National Corpus を結合

• 単語:頻出単語 30 万個• 評価タスク: 5種類のタスク, 14 個のデータセット(既存研究か

ら)– Semantic relatedness– Synonym detection– Concept categorization– Selectional preference– Analogy

• 評価対象– パラメータを変えてタスクに適用,モデルの性能や頑健さを検証

Page 12: dont_count_predict_in_acl2014

Semantic relatedness

• 単語ペアについて人手で意味的に似ているか/関連があるかを付与したデータを用意

– 単語間に人手による類似度付与– king , queen : 9– tiger , cat : 8– drink , ear : 1– king , cabbage : 0

• モデルから得たベクトルで計算した類似度と人手による類似度が対応するか検証– 類似度:コサイン類似度– 相関の測定:類似度順に並べ,順位の一致率を見る

• 5種類のデータセット

king , queen : 0.8tiger , cat : 0.6king , cabbage : 0.04drink , ear : 0.01

単語ベクトル間のコサイン類似度

順位の一致率を見る

Page 13: dont_count_predict_in_acl2014

Synonym detection

• 同義語を選ぶ 4択問題

• 入力と最もコサイン類似度の高い候補を出力• 正解率を測定• 1種類のデータセット( TOEFL )

入力: levied

候補imposed (正解)

believedrequestedcorrelated

Page 14: dont_count_predict_in_acl2014

Concept categorization

• 単語とその意味カテゴリのデータを用意– helicopters , motorcycles→vehicle– dogs , elephants→animal

• モデルから得たベクトルに基づきクラスタリング,正確なクラスタができているか検証– クラスタリング: CLUTO を利用– Repeated bisection でクラスタリング

• データを二つのクラスタに分割,を繰り返す• 3種類のデータセット

Page 15: dont_count_predict_in_acl2014

Selectional preference

• ある動詞とその主語や目的語として典型的な名詞のペアを集めたデータを用意– person は eat の主語として典型的– person は eat の目的語としては非典型的

• 動詞の主語/目的語に頻出の 20 単語のベクトルの平均と対象の単語のコサイン類似度測定,データと比較

• 2種類のデータセット

eat

IHeAnimal……

20 単語↓

単語ベクトルの平均person のベクトル

類似度測定

Page 16: dont_count_predict_in_acl2014

Analogy

• 単語対の意味的/統語的関係の類推テスト– 意味的関係

• man-woman , king-? (正解: queen )• brother-sister , grandson-? (正解: granddaughter )

– 統語的関係• work-works , speak-? (正解: speaks )• have-had , eat-? (正解: ate )

• モデルから得たベクトルの足し引き結果と最も類似度の高い単語– v(man)-v(woman)+v(king) と最も近い単語は?

• 3種類のデータセット– 統語のみ,意味のみ,両方

Page 17: dont_count_predict_in_acl2014

カウントモデル vs. word2vec (再掲)

• 訓練コーパス(モデルの作成用): 28 億単語– ukWaC , English Wikipedia , British National Corpus を結合

• 単語:頻出単語 30 万個• 評価タスク: 5種類のタスク, 14 個のデータセット(既存研究か

ら)– Semantic relatedness– Synonym detection– Concept categorization– Selectional preference– Analogy

• 評価対象– パラメータを変えてタスクに適用,モデルの性能や頑健さを検証

Page 18: dont_count_predict_in_acl2014

各手法でのパラメータ窓幅 共起情報 次元圧縮 次元

2 ,5

PMI , LMI なし, SVD ,NMF

300k (次元圧縮なし), 200 , 300 ,

400 , 500

窓幅 hs negative sampling

subsampling 次元

2 , 5 なし,あり

なし( hs

あり), 5 ,

10

なし,あり 200 , 300 , 400 ,500

カウントモデルのパラメータ2 * 2 (次元圧縮なし) + 2 * 2 * 2 * 4 (次元圧縮) = 36 通り

word2vec のパラメータ2 * 3 * 2 * 4 = 48 通り

Page 19: dont_count_predict_in_acl2014

各タスクで最も良い結果の比較(各結果のパラメータが異なる)

• word2vec ( pre )はどのタスクでもカウントモデル( cnt )より良い性能– カウントモデルもそれほど悪い訳ではない

• 一部のタスクでは word2vec は state-of-the-art の結果よりも高性能– state-of-the-art は各タスクに特化した手法で得た値

• 知識の利用,人手のルール,大規模コーパスの利用…– state-of-the-art に勝てる word2vec はスゴい

semanticrelatedness

conceptcategorization

synonymdetection analogy

selectionalpreference

Page 20: dont_count_predict_in_acl2014

Semantic relatedness に最適化(パラメータ固定)

• Semantic relatedness の一部のデータで最も性能が良かったパラメータでの結果– 開発データでチューニングした状況を想定

• カウントモデル, word2vec ともにそこそこ高い値– カウントモデルもきちんとチューニングすれば悪くな

い結果を出せる

semanticrelatedness

conceptcategorization

synonymdetection analogy

selectionalpreference

Page 21: dont_count_predict_in_acl2014

タスク横断で最も悪い結果(パラメータ固定)

• 全タスクに適用し,最も悪かったパラメータでの比較• カウントモデルはボロボロ

– パラメータ設定に失敗すると酷い結果になる• word2vec はそこそこ高い値

– カウントモデルのベスト時と同等の性能• word2vec は非常に頑健

– パラメータの設定を誤ってもそこそこの結果が出せる

semanticrelatedness

conceptcategorization

synonymdetection analogy

selectionalpreference

Page 22: dont_count_predict_in_acl2014

各パラメータでのタスク横断の順位

• 各パラメータで作成したベクトルを全タスクに適用,性能の良い順– 各タスクでの順位の平均が高い順

• word2vec の平均ランク>カウントモデルの平均ランク– 全体的に word2vec>カウントモデルという傾向

• カウントモデルでは PMI , SVD を使用すると良い• word2vec では negative sampling , subsampling を利用すると良い

カウントモデル word2vec

Page 23: dont_count_predict_in_acl2014

まとめ• カウントモデルと predictive モデル(主に word2vec )

を様々な実験を通して比較• 性能は word2vec>カウントモデル

– word2vec で得た単語ベクトルは state-of-the-art な性能– パラメータに対して頑健

• 残る疑問: predictive モデルの次元とは何なのか?– 潜在的な意味を表現しているのか?– カウントモデルで得られるベクトルとの表現力の差は?

• Predictive モデルの研究はまだ始まったばかりだ!– この先は君の目で確かめてみてくれ!