efficient estimation of word representations in vector space

22
Efficient Estimation of Word Representations in Vector Space 2017/10/2 石垣哲郎 NN論文を肴に酒を飲む会 #4

Upload: tetsuo-ishigaki

Post on 21-Jan-2018

434 views

Category:

Data & Analytics


3 download

TRANSCRIPT

Page 1: Efficient estimation of word representations in vector space

Efficient Estimationof

Word Representationsin

Vector Space

2017/10/2

石垣哲郎

NN論文を肴に酒を飲む会 #4

Page 2: Efficient estimation of word representations in vector space

本プレゼンは、Tomas Mikolov、Kai

Chen、Greg Corrado、Jeffrey Dean著の

論文「Efficient Estimation of Word

Representations in

Vector Space」(arXiv:1301.3781v3)の要

旨紹介です。

Page 3: Efficient estimation of word representations in vector space

発表者自己紹介

氏名:石垣 哲郎

1986年4月 日本電気株式会社入社2015年11月 日本インサイトテクノロジー株

式会社入社

TensorflowやKERASは仕事ではなく、もっぱらオフタイムに触っています。

Page 4: Efficient estimation of word representations in vector space

論文の主旨

自然言語処理において、単語のベクトル表現を連

続値ベクトルにすることによって、少ないコンピュー

タ資源で高い精度を実現することができる。

更に、単語の文法的( syntactic)、意味的

( semantic)な類似性に関する評価において、高い

性能を実現できた。

Page 5: Efficient estimation of word representations in vector space

ニューラルネットワークモデル

0.埋め込み

one-hotベクトル表現された語彙集合Vの各要素∈{0,1}|V|

を、行列𝑬 ∈ ℝⅮ× Vによって、ℝⅮに射影します。

ここで、Dは連続ベクトル表現の次元です。

また、行列𝑬’ ∈ ℝ𝑙𝑜𝑔 V ×Ⅾによって、連続ベクトル表現をℝ𝑙𝑜𝑔 Vに射影し、階層化softmaxの手法によって、正解のone-hotベクトルとcategorical_crossentropy評価します。(対数は常用対数)

行列𝑬および𝑬’が学習の対象です。

Page 6: Efficient estimation of word representations in vector space

ニューラルネットワークモデル

1. Continuous Bag-of-Words Model(CBOW)

ターゲットの単語の前後の単語ベクトルから得られた結果に、ターゲットの単語ベクトルを使って学習させます。𝒘(𝑡) ∈{0,1}|V|はone-hotベクトル、𝒗(𝑡) ∈ ℝⅮはその埋め込み表現です。

下の図では前後2単語ずつですが、論文によると、前後4単語ずつの時が最も良い結果を得られたとしています。

𝒗(𝑡 − 2)

𝒗(𝑡 − 1)

𝒗(𝑡 + 1)

𝒗(𝑡 + 2)

𝒘(𝑡 − 2)

𝒘(𝑡 − 1)

𝒘(𝑡 + 1)

𝒘(𝑡 + 2)

𝒘(𝑡)

𝑬|V|次元

D次元

𝑬’

|V|次元log|V|次元

階層化softmax

Categoricalcrossentropy

INPUT PROJECTION

SUM

OUTPUT

D次元

Page 7: Efficient estimation of word representations in vector space

ニューラルネットワークモデル

2. Continuous Skip-gram Modelターゲットの単語から算出された結果に、ターゲットの前後の単語ベクトルを使って学習させます。

下の図では前後2単語ずつですが、論文では計算量削減のため、最大10単語までの幅でランダムに単語幅を決定して評価しています。

𝒗(𝑡)𝒘(𝑡)

𝒘(𝑡 − 2)

𝒘(𝑡 − 1)

𝒘(𝑡 + 1)

𝒘(𝑡 + 2)

|V|次元

INPUT

𝑬

𝑬’ log|V|次元 階層化softmax

|V|次元

Categorical_crossentropy

D次元

PROJECTION OUTPUT

Page 8: Efficient estimation of word representations in vector space

ニューラルネットワークモデル

3.評価関数

Huffman木ベースの階層化softmax

※階層化softmax:分類対象を2分木表現することで、各ノードの活性化確率をsoftmaxの代わりにsigmoidの積で求める、計算量削減手法

※Huffman木:単語の出現頻度に対応して生成した2分木

Page 9: Efficient estimation of word representations in vector space

解説:階層化softmax

𝑤0 ・・・・・・・・・・・・・・・・・・

|V|次元ベクトルの各要素を2分探索木

に対応させると、階層数は(だいたい)log(|V|)になります。

各要素は各層の「オンオフ」の組み合わせで一意に表現できるので、ニューラルネットのノードを各層に対応させると、各要素の確率は各層の活性化関数(2択なのでsigmoid)の積で表現できます。

あとはcategorical_crossentropyにより、softmaxの重い計算をせずに誤差評価できます。𝑤1

𝑤𝑖= 0≤𝑗<log 𝑉 𝜎(𝑠𝑗 (𝑖) ⋅𝑬′𝒗[𝑗, 0])

𝑤|V|−1

ここに、 𝒗 ∈ ℝⅮは単語の連続ベクトル表現、

𝑬′ ∈ ℝ𝑙𝑜𝑔 V ×Ⅾは重み行列、𝑠𝑗 (𝑖)は𝑤𝑖の階層オンオフ表現で、値は右の通り。

𝑠𝑗 (𝑖)

=

1, 階層𝑗が「ON」のとき

-1, 階層𝑗が「OFF」のとき

𝑤2

ONOFF

ONOFF ONOFF

ONOFF ONOFF ONOFF ONOFF

Page 10: Efficient estimation of word representations in vector space

評価結果

CBOW、skip-gramを含む、以下の複数の単語ベクト

ル化手法について、単語類似性の表現能力を評価します。

① CBOW

② skip-gram

③ Feedforward Neural Net Language Model (NNLM)

④ Recurrent Neural Net Language Model (RNNLM)

Page 11: Efficient estimation of word representations in vector space

評価結果se

man

tic

syn

tact

ic

以下のようなカテゴリでテストセットを準備し、評価します。評価尺度は、左側3列の単語が与えられたときに、一番右の列の単語が当てられるかどうか、です。

Page 12: Efficient estimation of word representations in vector space

評価結果

単語の推定は、ベクトル演算で行います。

X=vector(”biggest”)−vector(”big”)+vector(”small”)

推定が正解かどうかは、コサイン距離で評価します。(Xがコサイン距離的にvector(“smallest”)に最も近ければ正解)

Page 13: Efficient estimation of word representations in vector space

小ネタ:コサイン距離(またはコサイン類似度)について

ベクトルaおよびbが挟む角度を𝜑と置くとき、コサイ

ン距離はずばり、cos𝜑です。

𝜑

ab

b-a

余弦定理より、

‖b-a‖22= ‖a‖2

2+‖b‖22-2‖a‖2 ‖b‖2 cos𝜑

一方、内積とL2ノルムの関係より、

左辺=<b-a,b-a>= ‖a‖22+‖b‖2

2-2<a,b>

これを左辺に代入して両辺の同一項をキャンセルする

と、

<a,b>= ‖a‖2 ‖b‖2 cos𝜑

ゆえに<a,b>‖a‖2 ‖b‖2

=cos𝜑

Page 14: Efficient estimation of word representations in vector space

評価結果

訓練データ:グーグルニュース6Bトークン、埋め込みベクトル次元640の時の結果です。

Page 15: Efficient estimation of word representations in vector space

評価結果

前ページで引用されている論文[20]の評価パターンは以下の通りです。

Page 16: Efficient estimation of word representations in vector space

評価結果

公開されている結果との比較です。

Page 17: Efficient estimation of word representations in vector space

評価結果

エポック数を増やした時の結果です。同じデータで繰り返し訓練するより、訓練データ量を増やしたほうが同等またはやや良い結果が得られます。また、訓練時間も短くて済みます。

Page 18: Efficient estimation of word representations in vector space

評価結果

分散フレームワーク「DistBelief」を使用した、大規模並列学習の結果です。

Page 19: Efficient estimation of word representations in vector space

評価結果

Microsoft Sentence Completion Challenge の結果。1040文の穴埋め問題です。

Skip-gramの結果は、答えの単語から周りの単語を当てた正解率です。

Page 20: Efficient estimation of word representations in vector space

評価結果

単語間の関連性の推定結果です(学習単語数783M、次元数300)。

Page 21: Efficient estimation of word representations in vector space

まとめ

• 本論文で紹介した単語のベクトル表現は、NNLM

など他の手法よりも高い精度で、単語の類似性を幾何学的に表現することができる。また、必要なコンピュータ資源も他の手法より少ない。

• CBOWよりもskip-gramのほうが、やや性能が良い。

• 同じデータで繰り返し訓練するより、訓練データ量を増やしたほうが効果が高い。

Page 22: Efficient estimation of word representations in vector space

ご清聴ありがとうございまし