efficient estimation of word representations in vector space
TRANSCRIPT
Efficient Estimationof
Word Representationsin
Vector Space
2017/10/2
石垣哲郎
NN論文を肴に酒を飲む会 #4
本プレゼンは、Tomas Mikolov、Kai
Chen、Greg Corrado、Jeffrey Dean著の
論文「Efficient Estimation of Word
Representations in
Vector Space」(arXiv:1301.3781v3)の要
旨紹介です。
発表者自己紹介
氏名:石垣 哲郎
1986年4月 日本電気株式会社入社2015年11月 日本インサイトテクノロジー株
式会社入社
TensorflowやKERASは仕事ではなく、もっぱらオフタイムに触っています。
論文の主旨
自然言語処理において、単語のベクトル表現を連
続値ベクトルにすることによって、少ないコンピュー
タ資源で高い精度を実現することができる。
更に、単語の文法的( syntactic)、意味的
( semantic)な類似性に関する評価において、高い
性能を実現できた。
ニューラルネットワークモデル
0.埋め込み
one-hotベクトル表現された語彙集合Vの各要素∈{0,1}|V|
を、行列𝑬 ∈ ℝⅮ× Vによって、ℝⅮに射影します。
ここで、Dは連続ベクトル表現の次元です。
また、行列𝑬’ ∈ ℝ𝑙𝑜𝑔 V ×Ⅾによって、連続ベクトル表現をℝ𝑙𝑜𝑔 Vに射影し、階層化softmaxの手法によって、正解のone-hotベクトルとcategorical_crossentropy評価します。(対数は常用対数)
行列𝑬および𝑬’が学習の対象です。
ニューラルネットワークモデル
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次元
ニューラルネットワークモデル
2. Continuous Skip-gram Modelターゲットの単語から算出された結果に、ターゲットの前後の単語ベクトルを使って学習させます。
下の図では前後2単語ずつですが、論文では計算量削減のため、最大10単語までの幅でランダムに単語幅を決定して評価しています。
𝒗(𝑡)𝒘(𝑡)
𝒘(𝑡 − 2)
𝒘(𝑡 − 1)
𝒘(𝑡 + 1)
𝒘(𝑡 + 2)
|V|次元
INPUT
𝑬
𝑬’ log|V|次元 階層化softmax
|V|次元
Categorical_crossentropy
D次元
PROJECTION OUTPUT
ニューラルネットワークモデル
3.評価関数
Huffman木ベースの階層化softmax
※階層化softmax:分類対象を2分木表現することで、各ノードの活性化確率をsoftmaxの代わりにsigmoidの積で求める、計算量削減手法
※Huffman木:単語の出現頻度に対応して生成した2分木
解説:階層化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
評価結果
CBOW、skip-gramを含む、以下の複数の単語ベクト
ル化手法について、単語類似性の表現能力を評価します。
① CBOW
② skip-gram
③ Feedforward Neural Net Language Model (NNLM)
④ Recurrent Neural Net Language Model (RNNLM)
評価結果se
man
tic
syn
tact
ic
以下のようなカテゴリでテストセットを準備し、評価します。評価尺度は、左側3列の単語が与えられたときに、一番右の列の単語が当てられるかどうか、です。
評価結果
単語の推定は、ベクトル演算で行います。
X=vector(”biggest”)−vector(”big”)+vector(”small”)
推定が正解かどうかは、コサイン距離で評価します。(Xがコサイン距離的にvector(“smallest”)に最も近ければ正解)
小ネタ:コサイン距離(またはコサイン類似度)について
ベクトル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𝜑
評価結果
訓練データ:グーグルニュース6Bトークン、埋め込みベクトル次元640の時の結果です。
評価結果
前ページで引用されている論文[20]の評価パターンは以下の通りです。
評価結果
公開されている結果との比較です。
評価結果
エポック数を増やした時の結果です。同じデータで繰り返し訓練するより、訓練データ量を増やしたほうが同等またはやや良い結果が得られます。また、訓練時間も短くて済みます。
評価結果
分散フレームワーク「DistBelief」を使用した、大規模並列学習の結果です。
評価結果
Microsoft Sentence Completion Challenge の結果。1040文の穴埋め問題です。
Skip-gramの結果は、答えの単語から周りの単語を当てた正解率です。
評価結果
単語間の関連性の推定結果です(学習単語数783M、次元数300)。
まとめ
• 本論文で紹介した単語のベクトル表現は、NNLM
など他の手法よりも高い精度で、単語の類似性を幾何学的に表現することができる。また、必要なコンピュータ資源も他の手法より少ない。
• CBOWよりもskip-gramのほうが、やや性能が良い。
• 同じデータで繰り返し訓練するより、訓練データ量を増やしたほうが効果が高い。
ご清聴ありがとうございまし
た