word2vecの理論背景
TRANSCRIPT
自己紹介
• データ分析と統計モデル構築15年– 学習データ以外の運用データでも予測が当たることに驚く
• 統計数理研究所の機械学習ゼミに6年間在籍– 殆どの統計モデルを構築 判別木 SVM ベイジアンネット DeepLearning等
• ロボット技術習得のため産業技術大学院に入学– 知覚・機械学習・制御理論の統合が必要で発展途上の技術
• 経験的には米国の機械学習の論文を読み、できれば実装するのが一番近道と思っている– NIPS ICML論文読会したい(隔週開催)
• 教師あり学習のXGBOOSTの性能に驚いている
word2vecとは
• 大量の文書をよんで文字をvectorで表現にする– vectorなので加減算で推論・推薦ができる
• 連想 vec(日本) - vec(東京) + vec(パリ) → vec(フランス)• 推奨 映画のBacktoFutureにviolenceを強くした映画は? vec(バックツウザフューチャ) + 2×vec(暴力) → vec(ターミネータ)
+ =2×violence
word2vecの背景理論
①なぜword2vecはvectorを使うのか②なぜword2vecは学習できるのか③なぜword2vecは加減算で推論できるのか
word2vecの理論背景には以下の論文と解説がある①A Latent Variable Model Approach to PMI-basedWord
Embeddings Sanjeev Arora+ (TACL 2016)②統数研 持橋大地先生の解説資料 (最先端NLP8) http://chasen.org/~daiti-m/paper/SNLP8-latent.pdf
①word2vecはvectorを使うのか
• word2vecのvectorの推定方法(skip-gram)–最適なvector算出するためvectorの内積を使う–発生確率を教師データとするsoftmaxの回帰モデル
単語Wiとその前後の単語Woの発生確率
教師データ softmax関数
①word2vecはvectorを使うのか(理論)A Latent Variable Model Approach to PMI-basedWord Embeddings
単語の発生確率をsoftmax関数で算出できると仮定する上記論文では以下の定理2.2(a) (b)が成立する
定理2.2(a) 隣合う文字v wの同時生起確率の対数はvector演算となる
softmax関数
①word2vecはvectorを使うのか(理論)A Latent Variable Model Approach to PMI-basedWord Embeddings
定理2.2 (b) 単語v w間の内積がPMI(相互情報量)に近似できる
定理2.2(a)を代入すると上式が求まる
wpvpwvp
wpvpwvp loglog,log,log
PMI情報量• (he has) (are the) 等のよく出てくる結びつきは意味がない。 (beer wine) (oil economy)の結びつきは意味がある• 頻繁に出てこない単語でよく見るペアに意味がある• PMI情報量は頻繁に出ないが、よく見るペアを表す
word2vecはPMI情報量(単語の内積)で回帰してvectorを求めている。
教師データ softmax関数
①word2vecはvectorを使うのか(証明)A Latent Variable Model Approach to PMI-basedWord Embeddings
<前提>時刻t において, ランダムウォークする文脈ベクトルct があり
単語vecotor wt の発生確率はsoftmax関数に従がうと仮定
この前提で観測するとZはCtに拘らず1
• 定理2.2 (a)の証明
①word2vecはvectorを使うのか(証明)A Latent Variable Model Approach to PMI-basedWord Embeddings
定理2.2(a)
②word2vecは学習できるのか• 文字wiとその前後の複数文字wo1~Cの発生頻度で最適なVectorをsoftmax関数の最尤値で解く
最尤値の更新式
Softmax関数を解く
Wovwji
v'ij
全単語について加算(事実上不可能)
wi
②word2vecは学習できるのか• word2vecの最尤値解の簡便化? 分母側を全単語ではなく、ランダム抽出とする
NegativeSampling法 計算量の削減 V(全語)→VNeg(ランダム抽出)
σ:シグモイド関数
Wovwji
v'ij
wi
③word2vecの加法推論• vec(king) - vec(man) + vec(woman) → vec(queen)
vec(king) - vec(qeen) = vec(man) - vec(woman)
)|()|(log
)|()|(log
),()(
)(),(log
),()(
)(),(log
),()()(
)()(),(log
),()()(
)()(),(log
)()(),(log
)()(),(log
)()(),(log
)()(),(log
)()(),(log
)(2.2
womanxpmanxp
queenxpkingxp
womanxpwomanp
manpmanxp
queenxpqueenp
kingpkingxp
womanxpwomanpxp
manpxpmanxp
queenxpqueenpxp
kingpxpkingxp
manpxpwomanxp
manpxpmanxp
queenpxpqueenxp
kingpxpkingxp
dkingx
kingpxpkingxpb
womanxmanxqueenxkingxx
womanmanqueenkingwomanqueenmanking
t
tttt
これを用いると
より定理
を掛けて任意
加法則はこれを示す
証明