Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

詳説word2vec

5.295 Aufrufe

Veröffentlicht am

数学とコンピュータ Advent Calendar 2017 9日目の記事です。
https://qiita.com/advent-calendar/2017/math-and-computer
Xin Rong氏の"word2vec Parameter Learning Explained"をベースに数式の訂正、簡略化を行い、更に論文内に無い補足と図式を加えています。恐らく日本で、ともすれば世界で最も詳しい解説です[要出典]。

Veröffentlicht in: Ingenieurwesen
  • Get Now to Download eBook === http://zakuratest.com/144947652X-Bible-VerseaDay-2017-Mini-DaytoDay-Calendar.html
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD FULL. BOOKS INTO AVAILABLE FORMAT, ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD FULL. BOOKS INTO AVAILABLE FORMAT, ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Hello! High Quality And Affordable Essays For You. Starting at $4.99 per page - Check our website! https://vk.cc/82gJD2
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

詳説word2vec

  1. 1. 詳説 word2vec
  2. 2. word2vec • 単語の意味をベクトルとして学習する手法 • 正確には分散表現(後述)を学習する • word2vecという名前自体はその実装を指す • 単語を数値として学習する事で、 他の学習やアプリケーションの素性として利用できる • 言葉の意味を加減算できることで話題になった • king – man + woman = queen など 2017/12/09 数学とコンピュータ Advent Calendar 2017 2
  3. 3. 基礎知識 本題に入る前に共通の背景について補足 2017/12/09 数学とコンピュータ Advent Calendar 2017 3
  4. 4. 分散表現 [Hinton 86] • 局所表現 • 1つの概念に1つの計算要素を対応させる表現 • e.g.) 理想的なハッシュ関数、One-hotベクトル(後述) • 分散表現 • 1つの概念を複数の計算要素で構成する表現 • 複数の計算要素の組み合わせで1つの概念を説明する • e.g.) 多次元のベクトル 2017/12/09 数学とコンピュータ Advent Calendar 2017 4
  5. 5. One-hot ベクトル • 単語列を入力とした学習のモデルを考える • 単語を計算可能なベクトルに置き換えたい • この変換がone-hotベクトル • 入力: 文書中のある単語𝑤を表す One-hot ベクトル • 次元数は入力文書の語彙数に等しい • 本解説では語彙数と次元数を𝑉とする • 語彙をOne-hotベクトルのインデックスに一対一対応 • 文書中の語彙集合が以下の場合の “fox” の表現を図示 0 0 0 1 0 0 0 0 0[ ] 𝑇 {The, quick, brown, fox, jumps, over, a, lazy, dog} 2017/12/09 数学とコンピュータ Advent Calendar 2017 5
  6. 6. 以降One-hotベクトルはこのように図示 6 0 0 ⋮ 1 0 ⋮ One-hot ベクトル 2017/12/09 数学とコンピュータ Advent Calendar 2017
  7. 7. 単語ベクトル • ある語彙を指す分散表現 • 次元数はパラメータであり、𝑁とする(基本的に200から500) • 学習モデルは単語ベクトルを語彙の数結合した重み行列を持つ • 入力層と隠れ層の間、隠れ層と出力層の間に重み行列を持つ 2017/12/09 数学とコンピュータ Advent Calendar 2017 7 ⋮ 以降単語ベクトルはこのように図示
  8. 8. 入力ベクトル / 出力ベクトル • 入力ベクトル: 入力層から隠れ層間の単語ベクトル • 𝑖番目の語彙𝑤*に対応する入力ベクトルを 𝐯,- (∈ ℝ0)とする • 𝑉×𝑁次元の行列𝐖 = {𝑎67}は、 𝐖 = 𝐯,9 𝐯,: ⋯ 𝐯,< • 出力ベクトル: 入力層から隠れ層間の単語ベクトル • 𝑖番目の語彙𝑤*に対応する出力ベクトルを𝐯′,- (∈ ℝ0)とする • 𝑁×𝑉次元の行列𝐖′ = {𝑎′76}は、 𝐖> = 𝐯′,9 ? 𝐯′,: ? ⋮ 𝐯′,< ? 2017/12/09 数学とコンピュータ Advent Calendar 2017 8
  9. 9. 文脈 • word2vecで1単語について一度学習するために 入力として必要な周辺の単語数 • 補足: 「文脈(Context)」と「窓(Window)」 • 窓は文脈の具体的な幅を指す • 本解説では窓は不用だが、実際の実装では窓で考える • 学習中に窓の幅をランダムに変えることで精度が上がる手法 [Goldberg 14]など、改善の余地がありそうな部分 2017/12/09 数学とコンピュータ Advent Calendar 2017 9 入力: “Jackdaws love my big sphinx of quartz” 窓1: my sphinx 窓2: love my sphinx of 学習対象を”big”とした窓の例
  10. 10. 本編 ここから論文の構成に併せていきます 2017/12/09 数学とコンピュータ Advent Calendar 2017 10
  11. 11. Abstract • word2vecによる語の分散表現が注目を集めた • しかし著者は包括的な説明がないことに気付く • 本ノートでは以下の手法群[Mikolov 13a] について詳細な導出を行う • 学習手法 • Continuous Bag-of-Word • Skip-Gram • 最適化手法 • Hierarchical Softmax • Negative Sampling 2017/12/09 数学とコンピュータ Advent Calendar 2017 11
  12. 12. Continuous Bag-of-Word (CBOW) 入力する語(列)を固定し中央に現れる語を予測 簡便化のため はじめに文脈が1つの場合を説明し 次に複数の場合について説明します
  13. 13. 学習モデル(文脈1の場合) • 入力する語を固定し隣に 共起する語を予測する • 入力の語が決まった時に共 起する単語の事後確率が 最大になるよう学習 • 入力-隠れ層の計算 • 𝐖とOne-hotベクトル𝐱の積 • 語彙に対応する入力ベクト ルを抜き出す操作に相当 • 隠れ層𝐡 = {ℎ7}の計算 • 入力の語彙を𝑖𝑛𝑝𝑢𝑡として 𝐡 = 𝐖𝐱 = 𝐯*7GHI 2017/12/09 数学とコンピュータ Advent Calendar 2017 13 ! "′ $×! $ & ⋮ 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ " !×$ ! 文脈1の場合のネットワーク図
  14. 14. 学習モデル(文脈1の場合) • 出力層のスコア𝑢(𝑖) • 𝐖′の𝑖番目の出力ベクトルに 対して𝐡を掛けることで𝑖番目 の語彙のスコア𝑢(𝑖)を得る 𝑢* = 𝐯′,- ? 𝐡 • 出力層𝑦* • 入力語𝑖𝑛𝑝𝑢𝑡が定まった時𝑤* が共起する事後確率𝑦*を得る • 出力は語の予想としてOne- hotで出すためsoftmax関数 2017/12/09 数学とコンピュータ Advent Calendar 2017 14 𝑝 𝑤* 𝑖𝑛𝑝𝑢𝑡 = 𝑦* = exp(𝑢*) ∑ exp(𝑢6)Q 6RS = exp(𝐯′,- ? 𝐯*7GHI) ∑ exp(𝐯′,T ? 𝐯*7GHI)Q 6RS ! "′ $×! $ & ⋮ 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ " !×$ ! 文脈1の場合のネットワーク図
  15. 15. 隠れ-出力間の重み更新 • 目的関数の最大化から出発 • 事後確率が最大となるような語彙のインデックスを𝑖∗とする • 以下損失関数𝐸の導出 max 𝑝 𝑤*∗ 𝑖𝑛𝑝𝑢𝑡 = max 𝑦*∗ = max log 𝑦*∗ = max 𝑢*∗ − log ] exp 𝑢6 Q 6RS = max(−𝐸) 𝐸 ≔ −𝑢*∗ + log ] exp 𝑢6 Q 6RS • この損失関数𝐸を最小化していく • “Note that this loss function can be understood as a special case of the cross-entropy measurement between two probabilistic distributions.” 2017/12/09 数学とコンピュータ Advent Calendar 2017 15
  16. 16. 隠れ-出力間の更新式導出 • 損失関数を偏微分していく • ここで出力層の誤差𝑒*及びラベル𝑡*が定義される 𝜕𝐸 𝜕𝑢* = 𝑦* − 𝑡* ≔ 𝑒* 𝑡* ≔ b 1, 𝑖 = 𝑖∗ 0, otherwise • 隠れ-出力間の重みから勾配を得る • 𝐖′ の各要素𝑎′76で偏微分 𝜕𝐸 𝜕𝑎′76 = 𝜕𝐸 𝜕𝑢6 j 𝜕𝑢6 𝜕𝑎> 76 = 𝑒6 j ℎ7 2017/12/09 数学とコンピュータ Advent Calendar 2017 16
  17. 17. 隠れ-出力間の更新式導出 • 確率的勾配降下法によって更新式を得る • パラメータである学習率を𝜃(正の実数)とする 𝑎> 76 (7l,) = 𝑎> 76 (mno) − 𝜃 j 𝑒6 j ℎ7 または語𝑤*を用いて、 𝐯′,- (7l,) = 𝐯′,- (mno) − 𝜃 j 𝑒* j 𝐡 for 𝑖 = 1, 2, ⋯ , 𝑉 • 更新する毎に語彙全体の再計算になることに注意 2017/12/09 数学とコンピュータ Advent Calendar 2017 17
  18. 18. 隠れ-出力間の更新式の直観的理解 𝐯′,- (7l,) = 𝐯′,- (mno) − 𝜃 j 𝑒* j 𝐡 for 𝑖 = 1, 2, ⋯ , 𝑉 • 過大評価(𝑦* > 𝑡*)ならば、 • 𝐯′,- から𝐡の誤差を引く • 入力語(列)の単語ベクトル 𝐯*7GHI から離れる • 過小評価(𝑦* < 𝑡* , i. e. 𝑖𝑛𝑝𝑢𝑡 = 𝑤*∗)ならば、 • 𝐯,- に𝐡の誤差を加える • 入力語(列)の単語ベクトル 𝐯*7GHI へ近づく • 𝑡*に近づくほど次回の更新量が少なくなる • ここでの近づくや離れるといった言葉は 距離が内積であることに注意 2017/12/09 数学とコンピュータ Advent Calendar 2017 18
  19. 19. 入力-隠れ間の更新式導出 • 続いて入力-隠れ間の重み𝐖の更新について考える • まず損失関数を隠れ層の出力で偏微分する • EH: 誤差で重み付けられた全ての出力ベクトルの和 𝜕𝐸 𝜕ℎ7 = ] 𝜕𝐸 𝜕𝑢6 j 𝜕𝑢6 𝜕ℎ7 Q 6RS = ] 𝑒6 j 𝑎76 > Q 6RS ≔ EH7 • 入力層の各要素を𝑥*とすると ℎ7 = ] 𝑥6 j 𝑎67 Q 6RS 2017/12/09 数学とコンピュータ Advent Calendar 2017 19
  20. 20. 入力-隠れ間の更新式導出 • 以上により𝐖の各要素について𝐸の偏微分が考えられる 𝜕𝐸 𝜕𝑎67 = 𝜕𝐸 𝜕ℎ7 j 𝜕ℎ7 𝜕𝑎67 = EH7 j 𝑥6 • 入力層のベクトル𝐱とEHのテンソル積と等価 𝜕𝐸 𝜕𝐖 = 𝐱⨂EH = 𝐱EH? • 𝐱がOne-hot → yz y𝐖 の行もOne-hot (値はN次元のEH?) • 従って𝐖の更新式は、 𝐯*7GHI (7l,) = 𝐯*7GHI (mno) − 𝜃 j EH? 2017/12/09 数学とコンピュータ Advent Calendar 2017 20
  21. 21. 入力-隠れ間の更新式の直観的理解 𝐯*7GHI (7l,) = 𝐯*7GHI (mno) − 𝜃 j EH? • 文脈の入力ベクトルへ全語彙の出力ベクトルの 誤差分を加える • 出力層にて語𝑤*が出力される確率が • 過大評価 𝑦* > 𝑡* : 文脈の語𝑖𝑛𝑝𝑢𝑡は𝑤*から離れる • 過小評価 𝑦* < 𝑡* : 文脈の語𝑖𝑛𝑝𝑢𝑡は𝑤*へ近づく • ラベルに近づく程に更新量も小さくなる • 文脈の語の入力ベクトルの動きは 全語彙の出力ベクトルから決まる 2017/12/09 数学とコンピュータ Advent Calendar 2017 21
  22. 22. 更新式の直観的理解 • 語𝑤の出力ベクトルは共起する近辺の単語列の 入力ベクトルに引き寄せられる • 入力ベクトルは全出力ベクトルから引き寄せられている • 引き寄せられる力は単語間の共起の強さと学習率に関係 • 多くの繰り返しの後、相対的な位置関係が安定する 2017/12/09 数学とコンピュータ Advent Calendar 2017 22
  23. 23. 文脈が複数の場合 • 入力が単語列であり中央の 単語を予測する • 計算機に文章の穴埋め問題を 学習させるようなイメージ • 文脈の数が𝐶(正の整数)の 隠れ層の出力𝐡 • 入力される語が複数あるため 隠れ層で平均をとる 𝐡 = 1 𝐶 𝐖? 𝐱S + 𝐱~ + ⋯ + 𝐱• = 1 𝐶 𝐯,9 + 𝐯,: + ⋯ + 𝐯,€ ? 2017/12/09 数学とコンピュータ Advent Calendar 2017 23 ! "′ $×! $ & ⋮ ⋮ 0 0 ⋮ 1 0 ⋮ " !×$ ⋮ 0 0 ⋮ 1 0 ⋮ " !×$ ⋮ 0 0 ⋮ 1 0 ⋮ " !×$ ⋮ 0 0 ⋮ 1 0 ⋮ " !×$ 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ +⋮ C×! C×$ -input3 -input345 -input346 -input347 -89
  24. 24. 文脈が複数の場合 • 損失関数は隠れ層以降しか着目しないため同じ • 文脈内で𝑐番目の入力語を𝑖𝑛𝑝𝑢𝑡‚とする 𝐸 = − log 𝑝 𝑤*∗ 𝑖𝑛𝑝𝑢𝑡S, 𝑖𝑛𝑝𝑢𝑡~ , … , 𝑖𝑛𝑝𝑢𝑡• = −𝑢*∗ + log ] exp 𝑢6 Q 6RS = −𝐯> ,-∗ ? ⋅ 𝐡 + log ] exp 𝐯> ,T ? ⋅ 𝐡 Q 6RS 2017/12/09 数学とコンピュータ Advent Calendar 2017 24
  25. 25. 文脈が複数の場合 • 隠れ-出力間の更新式も同じ 𝐯′,- (7l,) = 𝐯′,- (mno) − 𝜃 j 𝑒* j 𝐡 for 𝑖 = 1, 2, ⋯ , 𝑉 • 入力-隠れ間の更新式は文脈𝑖𝑛𝑝𝑢𝑡‚全てに対して更新 • EHも変更無し 𝐯*7GHI… (7l,) = 𝐯*7GHI… (mno) − 1 𝐶 j 𝜃 j EH? for 𝑐 = 1, 2, ⋯ , 𝐶 2017/12/09 数学とコンピュータ Advent Calendar 2017 25
  26. 26. Skip-Gram ある単語を入力とした時 周辺にどのような語群が現れるか予測する はじめから文脈が複数の場合で説明
  27. 27. 学習モデル • CBOWとは対照的にある単 語を入力とした時、周辺に どのような語群が現れるか 学習する • 入力の単語が決まった時に 周辺に共起する語群の事後 確率が最大になるよう学習 • 隠れ層𝐡 = {ℎ7}の計算 • 常時恒等関数になる 𝐡 = 𝐖𝐱 = 𝐯*7GHI 2017/12/09 数学とコンピュータ Advent Calendar 2017 27 !w" # $ $ % 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ *×# ,′ $×# ,′ $×# , #×$ 0 0 ⋮ 1 0 ⋮ ⋮ ⋮ 0 0 ⋮ 1 0 ⋮
  28. 28. 学習モデル • 出力層の計算 • 1つ1つの事後確率の求め方 は文脈が1つのCBOWと同じ • ただし文脈が出力側にある • 𝑐番目の文脈を𝑜𝑢𝑡𝑝𝑢𝑡‚とし 行列のインデックスには𝑜𝑢𝑡‚ が対応する • 結果は各文脈の同時確率 • 文脈毎のスコア • 出力層のスコアを 文脈𝑜𝑢𝑡𝑝𝑢𝑡‚毎に計算する 以外はCBOWの 𝑢*と同じ 2017/12/09 数学とコンピュータ Advent Calendar 2017 28 !w" # $ $ % 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ 0 0 ⋮ 1 0 ⋮ *×# ,′ $×# ,′ $×# , #×$ 0 0 ⋮ 1 0 ⋮ ⋮ ⋮ 0 0 ⋮ 1 0 ⋮
  29. 29. 学習モデル • 出力層の𝑐番目の文脈のスコア𝑢‚,* 𝑢‚,* = 𝑢* = 𝐯′,- ? 𝐡 for 𝑐 = 1, 2, ⋯ , 𝐶 • 入力語が𝑖𝑛𝑝𝑢𝑡の時の出力層の計算 • 𝑐番目の文脈の語に対する出力層の計算𝑦*は 𝑦‚,* = exp 𝑢‚,* ∑ exp(𝑢6)Q 6RS • 𝐶個の出力層の語群𝑜𝑢𝑡𝑝𝑢𝑡S, 𝑜𝑢𝑡𝑝𝑢𝑡~, ⋯ , 𝑜𝑢𝑡𝑝𝑢𝑡•が 共起する確率は 𝑝 𝑜𝑢𝑡𝑝𝑢𝑡S, 𝑜𝑢𝑡𝑝𝑢𝑡~, ⋯ , 𝑜𝑢𝑡𝑝𝑢𝑡• 𝑖𝑛𝑝𝑢𝑡 = ‡ 𝑦‚,mHI… • ‚RS 2017/12/09 数学とコンピュータ Advent Calendar 2017 29
  30. 30. 更新式の導出 • 𝑖‚ ∗ を実際に現れた𝑐番目の文脈に対応する重み行列の インデックスとする • 損失関数𝐸は 𝐸 = − log 𝑝 𝑜𝑢𝑡𝑝𝑢𝑡S, 𝑜𝑢𝑡𝑝𝑢𝑡~, ⋯ , 𝑜𝑢𝑡𝑝𝑢𝑡• 𝑖𝑛𝑝𝑢𝑡 = − log ‡ exp 𝑢*… ∗ ∑ exp(𝑢6)Q 6RS • ‚RS = − ] 𝑢*… ∗ • ‚RS + 𝐶 ⋅ log ] exp 𝑢6 Q 6RS 2017/12/09 数学とコンピュータ Advent Calendar 2017 30
  31. 31. 更新式の導出 • 各スコアで偏微分し文脈毎の誤差𝑒‚,*を定義する 𝜕𝐸 𝜕𝑢‚,* = 𝑦‚,* − 𝑡‚,* ≔ 𝑒‚,* 𝑡‚,* ≔ b 1, 𝑖 = 𝑖∗ 0, otherwise • ある語彙の全文脈の誤差の総和EI*を全語彙について まとめた𝑉次元ベクトルをEI = {EIS, ⋯ , EIQ}とする EI* ≔ ] 𝑒‚,* • ‚RS 2017/12/09 数学とコンピュータ Advent Calendar 2017 31
  32. 32. 更新式の導出 • 𝐸を隠れ-出力間の行列𝐖′ について微分する 𝜕𝐸 𝜕𝑎′76 = 𝜕𝐸 𝜕𝑢‚,6 j 𝜕𝑢‚,6 𝜕𝑎> 76 = EI6 j ℎ7 • 以上により隠れ-出力間の行列𝐖′ の更新式を得る • パラメータである学習率を𝜃(正の実数)とする 𝑎> 76 (7l,) = 𝑎> 76 (mno) − 𝜃 j EI6 j ℎ7 または語𝑤*を用いて、 𝐯′,- (7l,) = 𝐯′,- (mno) − 𝜃 j EI* j 𝐡 for 𝑖 = 1, 2, ⋯ , 𝑉 2017/12/09 数学とコンピュータ Advent Calendar 2017 32
  33. 33. 更新式の導出 • 入力-隠れ間行列の更新式はCBOWの時と基本的に同じ 𝐯*7GHI (7l,) = 𝐯*7GHI (mno) − 𝜃 j EH? • 但しEHの内容が異なる • EHは以下の要素からなる𝑁次元ベクトルである EH7 = ] EI6 ⋅ 𝑎76 > Q 6RS 2017/12/09 数学とコンピュータ Advent Calendar 2017 33
  34. 34. Optimizing Computational Effciency CBOW/Skip-Gram両者に使える最適化手法
  35. 35. 概要 • これまでは最適化手法を適用してない状態 • CBOW/Skip-Gram共にbigramモデル • 全語彙に対し入力及び出力ベクトルを求める必要あり • 特に出力ベクトルが計算量が大きい • 本章では2つの最適化手法を紹介する • 両手法は出力ベクトルの計算量を削減する • 特に3つの値に注目する • 損失関数 𝐸 • 出力ベクトルの更新式 yz y𝐯‰- Š • 入力ベクトルを更新する際に逆伝搬する誤差の総和 yz y𝐡 2017/12/09 数学とコンピュータ Advent Calendar 2017 35
  36. 36. Hierarchical Softmax 出力ベクトルを2分木で持ち 一部だけを計算と更新に用いる
  37. 37. 概要 • softmax関数の高速な計算手法[Morin 05] [Mnih 09] • 全語彙を葉とする2分木で出力ベクトルを表現する 2017/12/09 数学とコンピュータ Advent Calendar 2017 37 !" !# !$ !% !&'" !& ⋯ ⋮ ⋮ ⋮ ⋮ ⋮ *(!#, 1) *(!#, 2) *(!#, 3) • 葉以外の節(以降内部節)は𝑉 − 1個 • 語彙は各葉に対応し、 根から唯一の経路が存在 • 根から語𝑤への経路の内、 𝑖番目の節を𝑛(𝑤, 𝑖)で指す • 内部節は出力ベクトル 𝐯> 7(,,*)を持つ • 実際には内部節が 常に2つの子を持ち 高速なハフマン木を採用 • 語𝑤~を指す例を右に図示
  38. 38. 概要 • ある語𝑜𝑢𝑡𝑝𝑢𝑡が出力される確率を以下のように定義する • 語𝑤の深さを𝐿(𝑤)とする • 根から語𝑤への経路の𝑖番目の節を𝑛(𝑤, 𝑖)で指す • 葉以外の節は出力ベクトル𝐯> 7(,,*)を持つ • ch(𝑛)は節𝑛の左の子 nd 𝑤, 𝑖 ≔ • 1, 𝑛 𝑤, 𝑖 + 1 = ch 𝑛 𝑤, 𝑖 −1, otherwise 𝑝 𝑤 = 𝑜𝑢𝑡𝑝𝑢𝑡 ≔ ‡ 𝜎 nd 𝑤, 𝑖 ⋅ 𝐯> 7 ,,* ? 𝐡 ‘ , ’S *RS 2017/12/09 数学とコンピュータ Advent Calendar 2017 38
  39. 39. 確率に関する説明 • この確率の直観的理解 • 根からランダムウォークし ある葉に到達する確率として定義 • 各葉以外の節にて左に行く確率及び右に行く確率を設定する 𝑝 𝑛, left ≔ 𝜎 𝐯> 7 ? 𝐡 𝑝 𝑛, right ≔ 1 − 𝜎 𝐯> 7 ? 𝐡 = 𝜎 −𝐯> 7 ? 𝐡 • これを各深さについて同時確率をとったものが先の式になる 𝑝 𝑤 = 𝑜𝑢𝑡𝑝𝑢𝑡 = ‡ 𝜎 nd 𝑤, 𝑖 ⋅ 𝐯> 7 ,,* ? 𝐡 ‘ , ’S *RS • Hierarchical Softmaxは全語彙の多項分布として定義される ため以下を検証するのは難しくない ] 𝑝 𝑤* = 𝑤“ Q *RS = 1 2017/12/09 数学とコンピュータ Advent Calendar 2017 39 !" !# !$ !% !&'" !& ⋯ ⋮ ⋮ ⋮ ⋮ ⋮ *(!#, 1) *(!#, 2) *(!#, 3)
  40. 40. パラメータの更新式 • 文脈が1語の場合から説明 • 損失関数𝐸はある語の出力される負の対数尤度 𝐸 ≔ − log 𝑝 𝑤 = 𝑜𝑢𝑡𝑝𝑢𝑡 𝑖𝑛𝑝𝑢𝑡 = − ] log 𝜎 nd 𝑤, 𝑖 𝐯> 7 ,,* ? 𝐡 ‘ , ’S *RS • 𝐸を𝐯> 7 ,,* ? 𝐡について偏微分する • 𝑡7(,,*)をnd 𝑤, 𝑖 = 1のとき1 、それ以外で0を返すラベルとすると 𝜕𝐸 𝜕𝐯> 7 ,,* ? 𝐡 = 𝜎 nd 𝑤, 𝑖 𝐯> 7 ,,* ? 𝐡 − 1 ⋅ nd 𝑤, 𝑖 = ” 𝜎 𝐯> 7 ,,* ? 𝐡 − 1, nd 𝑤, 𝑖 = 1 𝜎 𝐯> 7 ,,* ? 𝐡 , nd 𝑤, 𝑖 = −1 = 𝜎 𝐯> 7 ,,* ? 𝐡 − 𝑡7(,,*) 2017/12/09 数学とコンピュータ Advent Calendar 2017 40
  41. 41. 出力ベクトルの更新式 • 𝐸を𝑛(𝑤, 𝑖)のベクトルで偏微分する 𝜕𝐸 𝜕𝐯> 7 ,,* = 𝜕𝐸 𝜕𝐯> 7 ,,* ? 𝐡 ⋅ 𝜕𝐯> 7 ,,* ? 𝐡 𝜕𝐯> 7 ,,* = 𝜎 𝐯> 7 ,,* ? 𝐡 − 𝑡7 ,,* ⋅ 𝐡 • 以上より節のベクトルの更新式は 𝐯′7 ,,* (7l,) = 𝐯′7 ,,* (mno) − 𝜃 j 𝜎 𝐯> 7 ,,* ? 𝐡 − 𝑡7 ,,* ⋅ 𝐡 • 語𝑤を更新する度𝑖 = 1, 2, ⋯ , 𝐿 𝑤 − 1を更新する 2017/12/09 数学とコンピュータ Advent Calendar 2017 41
  42. 42. 出力ベクトルの更新式の直観的理解 • 内部節にとっての”タスク”は 左右のどちらに進むか決定すること • 𝑡7 ,,* = 1なら左の子へ𝑡7 ,,* = 0なら右の子へ • 𝜎 𝐯> 7 ,,* ? 𝐡 は予測結果 • 誤差が減るように𝐯> 7 ,,* が𝐡へ近付くまたは離れる • 内部節の予測が答えに近い程更新は小さくなる • skip-gramの場合は出力語の文脈だけ繰り返す • 余談(P.16):”the ground truth”は幾つかの分野のターム • 直接データを観測し経験的に得られた(正解集合としたい)情報 • 機械学習ではラベルにあたる • つまり”truth”に対し間違っている可能性が含まれる 2017/12/09 数学とコンピュータ Advent Calendar 2017 42
  43. 43. 入力-隠れ間の更新式 • 𝐸を隠れ層の出力で偏微分する 𝜕𝐸 𝜕𝐡 = ] 𝜕𝐸 𝜕𝐯> 7 ,,* ? 𝐡 ⋅ 𝜕𝐯> 7 ,,* ? 𝐡 𝜕𝐡 ‘ , ’S *RS = ] 𝜎 𝐯> 7 ,,* ? 𝐡 − 𝑡7 ,,* ⋅ 𝐯> 7 ,,* ‘ , ’S *RS ≔ EH • CBOWモデル: 更新式(スライドP.25)のEHと差し替える • Skip-Gramモデル: 文脈毎に計算したEHの総和を 更新式(スライドP.33)のEHと差し替える • 出力ベクトルの数をほぼ同数(𝑉 − 1個)に保ちつつ 計算量を文脈毎に𝑂 log 𝑉 まで削減 2017/12/09 数学とコンピュータ Advent Calendar 2017 43
  44. 44. Negative Sampling 各イテレーションにて出力ベクトルを全て更新せず 分布に応じて負例をサンプリングし計算量を削減
  45. 45. 概要 • イテレーション毎に全ての出力ベクトルを更新しない • 出力語として正しい語(正例, positive sample)を1つ選び、 間違った語(負例, negetive sample)を幾つかサンプル • サンプルには何らかの確率的分布が必要 • これをノイズ分布𝑃7と呼ぶ • 経験的に良い分布としてユニグラムの ˜ ™ 乗が知られている [Mikolov 13b] 2017/12/09 数学とコンピュータ Advent Calendar 2017 45
  46. 46. 損失関数の導出[Goldberg 14] • 単純な単語予測のモデルから導出される • 𝑤, 𝑐 を予測される語と文脈の組とする • 組が入力文書集合𝐷にある確率を𝑝 𝐷 = 1|𝑤, 𝑐 とし、 無い確率を𝑝 𝐷 = 0|𝑤, 𝑐 = 1 − 𝑝 𝐷 = 1|𝑤, 𝑐 とする • このモデルの確率分布のパラメータを𝜆とする • 実際に観測される組全ての確率を最大化する𝜆を探索する arg max Ÿ ‡ 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 ,,‚ ∈¢ = arg max Ÿ log ‡ 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 ,,‚ ∈¢ = arg max Ÿ ] log 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 ,,‚ ∈¢ 2017/12/09 数学とコンピュータ Advent Calendar 2017 46
  47. 47. 損失関数の導出[Goldberg 14] • 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 の量はsoftmaxを用いて定義される 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 ≔ 1 1 + 𝑒’𝐯… £ 𝐯‰ • ここまでの目的関数が導かれる arg max Ÿ ] log 1 1 + 𝑒’𝐯… £ 𝐯‰ ,,‚ ∈¢ • この目的関数には問題がある • この関数は全ての 𝑤, 𝑐 が𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 = 1になれば良い • 全ての𝐯‚, 𝐯,に対し𝐯‚ = 𝐯,かつ𝐯‚ ? 𝐯, = 𝑄となる𝜆で達成できる • 𝑄は充分に大きな数字 • 著者らによればQ ≈ 40で全ての確率が1にサチる 2017/12/09 数学とコンピュータ Advent Calendar 2017 47
  48. 48. 損失関数の導出[Goldberg 14] • 全てのベクトルが同じ値になることを防ぐ仕組みが必要 • 文書に無い組合わせの値を下げる方法が考えられる • 全て間違いのランダムな 𝑤, 𝑐 を含む負例集合𝐷′を導入 • 本手法名は負例(negative example)を randomly samplingすることに起因する 2017/12/09 数学とコンピュータ Advent Calendar 2017 48
  49. 49. 損失関数の導出[Goldberg 14] • 再び目的関数を導出する arg max Ÿ ‡ 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 ,,‚ ∈¢ ‡ 𝑝 𝐷 = 0|𝑤, 𝑐; 𝜆 ,,‚ ∈¢> = arg max Ÿ ] log 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 ,,‚ ∈¢ + ] log 1 − 𝑝 𝐷 = 1|𝑤, 𝑐; 𝜆 ,,‚ ∈¢> = arg max Ÿ ] log 1 1 + 𝑒’𝐯… £ 𝐯‰ ,,‚ ∈¢ + ] log 1 − 1 1 + 𝑒’𝐯… £ 𝐯‰ ,,‚ ∈¢> = arg max Ÿ ] log 1 1 + 𝑒’𝐯… £ 𝐯‰ ,,‚ ∈¢ + ] log 1 1 + 𝑒 𝐯… £ 𝐯‰ ,,‚ ∈¢> 2017/12/09 数学とコンピュータ Advent Calendar 2017 49
  50. 50. 損失関数の導出[Goldberg 14] • ここでシグモイド𝜎 𝑥 = S S¨l©ªより arg max Ÿ ] log 1 1 + 𝑒’𝐯… £ 𝐯‰ ,,‚ ∈¢ + ] log 1 1 + 𝑒 𝐯… £ 𝐯‰ ,,‚ ∈¢> = arg max Ÿ ] log 𝜎 𝐯‚ ? 𝐯, ,,‚ ∈¢ + ] log 𝜎 −𝐯‚ ? 𝐯, ,,‚ ∈¢> • 最小化問題とすることで損失関数が得られる arg min Ÿ − ] log 𝜎 𝐯‚ ? 𝐯, ,,‚ ∈¢ − ] log 𝜎 −𝐯‚ ? 𝐯, ,,‚ ∈¢> • これに次ページの不足分を取り入れることで Negative Samplingの損失関数となる 2017/12/09 数学とコンピュータ Advent Calendar 2017 50
  51. 51. Negative Samplingへの不足分 • 𝐷と𝐷′の比をパラメータ𝐾とする • 前述の導出では入力文書全体を用いて𝐷⋃𝐷′とした • Negative Samplingでは1つの正例 𝑤, 𝑐 を更新する度 𝐾個の負例 𝑤, 𝑐S , ⋯ , 𝑤, 𝑐- を更新する • 従って𝐷と𝐷′の比が1: 𝐾となる • 𝐷′をノイズ分布𝑃7からサンプリングする事で生成 • 前述の導出ではランダムだが 𝑤, 𝑐 は以下のノイズ分布𝑃7に従う 𝑤, 𝑐 ~ 𝑝,m¯o° 𝑤 𝑝‚m7Il±I° 𝑐 ˜ ™ 𝑍 • 𝑍は正規化定数 • Mikolovらの論文[Mikolov 13b]では 𝑝,m¯o° 𝑤 = 𝑝‚m7Il±I° 𝑐 = 「ある語の頻度/入力文書の全語数」 2017/12/09 数学とコンピュータ Advent Calendar 2017 51
  52. 52. Negative Samplingの損失関数 • 以上の導出を本スライドに適用した損失関数𝐸を用いる • 𝑤“は正例の出力語 • 𝑊7l´ = 𝑤* 𝑖 = 1, ⋯ , 𝐾}はノイズ分布𝑃7から サンプリングした負例集合 • 更新毎のサンプリング数𝐾はパラメータ 𝐸 ≔ − log 𝜎 𝐯,µ > ? 𝐡 − ] log 𝜎 −𝐯> ,- ? 𝐡 ,-∈¶·¸¹ 𝐡 ≔ º 1 𝐶 ] 𝐯,- • *RS , CBOWの場合 𝐯*7GHI, Skip−Gramの場合 2017/12/09 数学とコンピュータ Advent Calendar 2017 52
  53. 53. 更新式導出 • まず𝐸を出力語𝑤*のスコア値で偏微分 • 重み行列𝑖番目の語のラベルを𝑡*として 𝜕𝐸 𝐯,- > ? 𝐡 = ” 𝜎 𝐯,- > ? 𝐡 − 1, 𝑤* = 𝑤“ 𝜎 𝐯,- > ? 𝐡 , 𝑤* ∈ 𝑊7l´ = 𝜎 𝐯,- > ? 𝐡 − 𝑡* • 出力ベクトル𝐯,- > について偏微分 𝜕𝐸 𝜕𝐯,- > = 𝜕𝐸 𝜕𝐯,- > ? 𝐡 ⋅ 𝜕𝐯,- > ? 𝐡 𝜕𝐯,- > = 𝜎 𝐯,- > ? 𝐡 − 𝑡* 𝐡 2017/12/09 数学とコンピュータ Advent Calendar 2017 53
  54. 54. 出力-隠れ間の更新式 • 出力ベクトルの更新式が得られる 𝐯′,- (7l,) = 𝐯′,- (mno) − 𝜃 j 𝜎 𝐯,- > ? 𝐡 − 𝑡* j 𝐡 • 1更新毎に語群𝑤* ∈ 𝑤“ ⋃𝑊7l´について計算するだけ • 両モデルについてそのまま適用可能 • ただしSkip-Gramモデルでは文脈毎の計算を忘れない事 2017/12/09 数学とコンピュータ Advent Calendar 2017 54
  55. 55. 入力-隠れ間の更新式 • 入力-隠れ間の更新式を求めるには𝐡で偏微分する 𝜕𝐸 𝜕𝐡 = ] 𝜕𝐸 𝜕𝐯,- > ? 𝐡 ⋅ 𝜕𝐯,- > ? 𝐡 𝜕𝐡 ,-∈ ,µ ⋃¶·¸¹ = ] 𝜎 𝐯,- > ? 𝐡 − 𝑡* 𝐯,- > ≔ EH ,-∈ ,µ ⋃¶·¸¹ • CBOWモデル: 更新式(スライドP.25)のEHと差し替える • Skip-Gramモデル: 文脈毎に計算したEHの総和を 更新式(スライドP.33)のEHと差し替える • Skip-Gramとの組み合わせ(SGNS)が word2vecの手法で最も有名 2017/12/09 数学とコンピュータ Advent Calendar 2017 55
  56. 56. 参考文献 (登場順) • 本スライド作成元 [Rong 14] Rong, X.: Word2vec parameter learning explained, arxiv preprint arXiv:1411.2738 (2014) • 図式提供 自作 • その他文献 [Hinton 86] Hinton, G. E., McClelland, J. L., and Rumelhart, D. E.: Distributed representations, in Parallel distributed processing: Explorations in the microstructure of cognition, Vol. 1, chapter 3, pp. 77–109, MIT Press Cambridge, MA, USA (1986) [Goldberg 14] Goldberg, Y. and Levy, O.: word2vec explained: deriving mikolov et al. ’s negative sampling word-embedding method, arXiv preprint arXiv:1402.3722 (2014) [Mikolov 13a] Mikolov, T., Chen, K., Corradoa, G., and Dean, J.: Efficient estimation of word representations in vector space, International Conference on Learning Representations (2013) [Morin 05] Morin, F. and Bengio, Y.: Hierarchical probabilistic neural network language model, In AISTATS, Vol. 5, pp. 246–252, Citeseer. (2005) [Mnih 09] Mnih, A. and Hinton, G. E.: A scalable hierarchical distributed language model, In Koller, D., Schuurmans, D., Bengio, Y., and Bottou, L., editors, Advances in Neural Information Processing Systems 21, pp. 1081–1088, Curran Associates, Inc. (2009) [Mikolov 13b] Mikolov, T., Sutskever, I., Chen, K., Corrado, G., and Dean, J.: Distributed Representations of Words and Phrases and their Compositionality, Advances in Neural Information Processing Systems, pp. 3111–3119 (2013) 2017/12/09 数学とコンピュータ Advent Calendar 2017 56

×