RNNLM

9,816 views

Published on

RNNLMについて調査してみました

RNNLM

  1. 1. Neural Netowork Based Language Model 内海慶 kuchiumi@d-itlab.co.jp
  2. 2. 黒船到来 • 自然言語処理における Deep Learning の活用を紹介 • google の人が公開したword2vecというツールが話題
  3. 3. デモ 文章のみから単語の意味を獲得する
  4. 4. n-gram language model • 文に対する確率分布をモデル化 • 単語の条件付き確率の積で表す • 単語の条件付き確率はN-1個前までの単語で計 算できると仮定する 適切なn-gram確率をいかに求めるかがこれまでの焦点 コーパスに現れない低頻度なn-gramにも事前分布に従って正確な 確率を与えるという試みがなされてきた(スムージング)
  5. 5. n-gram lm の例 • HPYLM trigram の確率は… 観測したtrigram頻度を ディスカウントして… bigram確率でback-off “トヨタ/自動車” の確率は 0.5 “日産/自動車”の確率は0.4 Q: トヨタと日産の関係は? A: 知らない
  6. 6. n-gram LMのポイント • 直接訓練コーパスに対して尤度最大化 • 過学習になるのでやらない • 適切なスムージングを入れる • 事前分布を考慮して,今あるコーパスから真 のn-gram確率を推定する • 汎化されたモデル(アウトドメインに強い)
  7. 7. Neural Network Language Model これまでの言語モデル • 単語の出現確率を頻度から計算 • 適切なn-gram確率を計算するこ とにフォーカス • 各単語は独立に扱われる • 単語間の関係は見ない NNLM • 単語の出現確率をデータから学 習・予測 • 直接コーパスに対して尤度最大化 • インドメインに強い • アウトドメイン?何それ • 各単語を連続空間のベクトルとし て表現 • 似た単語は似たベクトルを持つ 従来は禁忌とされてきたコーパスに対する直接の尤度最大化をやってしまった. 事前知識なんていらない.アウトドメインとか汎化とか知らない.
  8. 8. NNLMの例 • Recurrent Neural Network Language Model • 次の単語の出現確率を直接コーパスから学習 次の単語は, 1. 入力単語を潜在空間へ写像(ベクトル表 現)したものと, 2. 単語の潜在ベクトルの履歴(ベクトル) を結合したベクトルと 3. 重みベクトルVとの内積 で予測 RNNLM
  9. 9. NNLMのポイント • 学習された単語の潜在ベクトル(U*j)が単語の意味を 獲得する • 獲得した単語の潜在ベクトルを使った操作で単語間 の関係が分かる • (やろうと思えば)入力単語を表す素性の追加もでき る(音声系で最近よくやられている) • コーパスの尤度を直接最大化するのでインドメイン に強い
  10. 10. 獲得した潜在ベクトル man woman king queen U で獲得された単語の潜在ベクトル表現 king のベクトルから man のベクトルを引く (manとkingの関係を取り出す) womanのベクトルに足すと… queen に近いベクトル コサイン類似度で queenが見つかる
  11. 11. NNLMって今までなかったの? • 実は… • 1990年にElmanが既に単純再帰型ニューラル ネットワーク(通称エルマンネット)を提案 • 1991年には単語予測に利用して,文法構造が ネットワークの結合係数として学習されるこ とを示している
  12. 12. エルマンネットとの違い RNNLM 単語を潜在ベクトルで表現 Uで潜在空間へ写像する エルマンネット 単語を1 of V で表現 文脈 s も V 次元ベクトル 過去の単語ベクトルに減衰係数を掛け て足し込んでいる w(t)+αs(t-1)
  13. 13. つまり • エルマンネットでは単語を潜在空間に写像 するという発想は無かった
  14. 14. RNNLMの学習 • を最大化するようなU, W, V の3つを学習する • 学習はSGDを使って逐次更新をする • だいたい5〜10回程度のepochで良い f : シグモイド関数 g : ソフトマックス関数 次の単語の確率 単語の潜在ベクトル表現
  15. 15. 対数尤度の最大化 • データの対数尤度を最大化 • 逆誤差伝搬を使って更新 • 細かいところはおいておいて,更新式 は... : 出力誤差 : 正解ベクトル(1 of V 表現) 次の単語w(t+1)の位置だけが1で残りは0
  16. 16. 出力層Vの更新式 • 出力誤差を潜在ベクトルに掛けてVに足し込むだけ • αは学習率
  17. 17. 隠れ層への誤差伝搬 • 誤差の勾配を隠れ層へ伝搬させる • Vの重みを逆向き(隠れ層へ向かって)掛ける • dは隠れ層の関数sの微分 • RNNLMではsにシグモイド関数を使ってるのでこの式になる
  18. 18. 単語の潜在ベクトル表現 Uの更新 • 隠れ層の誤差の勾配を入力層に伝搬 • w(t)が1 of V表現なので更新は効率的
  19. 19. 再帰の重みWの更新 • Uと同じように書けるが,s(t-1)は密
  20. 20. Backpropagation Through Time • 文脈ユニットを畳み込まない • 状態の履歴を持つ • 直前の単語と状態は直後には影 響しないけど,もっと後には影 響するかもしれない • UとWの更新にもっと過去の情 報も使うようにしてより最適に しようという発想 • 今回は割愛
  21. 21. どのくらい上手く意味 を捉えられるのか? • 文法規則を獲得できているかのテスト • 形容詞の原型,比較級,最高級 • 名詞の単数,複数 • 所有格と非所有格 • 現在形と過去形 • 現在形と三人称単数 • 過去形と三人称単数 • PennTreebankでニュース記事にタグ付けして,各項目ご とに高頻度な事例を取り出し,同じカテゴリの単語と組 み合わせたりして analogy question を自動生成. • 約40%の正解率
  22. 22. どのくらい上手く意味 を捉えられるのか? • SemiEval-2012, Task2, Measuring Relation Similarity[Jurgens et al., 2012] • 細かい粒度で単語の関係が書かれている79単語を使用 • 10個を使って学習,69個はテストに使用 • 各関係には3〜4事例の単語のペアが与えられている • e.g. 集合包含: 集合単数→clothing:shirt • 正解のペアがどのくらいの関連度を持っているか平均を出し て,他の手法と比較(MaxDiffという尺度を使うらしい) • 他の手法と比較しても高いスコアを出せた • e.g. RNN-1600 MaxDiff Acc. 0.418, UTD-NB, 0.395(state-of-the-art)
  23. 23. 他分野での利用 • 言語モデルを使う他のタスクで利用され始めている • 機械翻訳 • 音声認識 • InterSpeechの言語モデルセッションはRNNLMばかり • etc. • 提案 • 方言と標準語混じりのコーパスから類似語を獲得 • 画像処理分野で visual words に適用できたりする?
  24. 24. まとめ • 最近話題のRNNLMについて紹介 • 従来のn-gram言語モデルでは考慮されていな かった,単語間の関係がRNNLMでは獲得できる • ニュース記事にタグ付けしたデータを使った評 価で,文法規則を自動で獲得できていることを 示している • SemiEval-2012のデータを使った評価で,単語間の 関係も獲得できていることを確認
  25. 25. 参考 • Tomas Mikolov, Statistical language models based on neural networks (http://www.fit.vutbr.cz/~imikolov/rnnlm/thesis.pdf) • Tomas Mikolov, et al., Linguistic regularities in continuous space word representations, in NAACL HLT, 2013 • Tomas Mikolov, et al., Efficient estimation of word representations in vector space, in ICLR, 2013 • 浅川伸一, 単純再帰型ニューラルネットワーク (http://www.cis.twcu.ac.jp/~asakawa/waseda2002/elman.pdf) • 浅川伸一, 単純再帰型ニューラルネットワークの心理学モデル としての応用可能性 (http://www.cis.twcu.ac.jp/~asakawa/chiba2002/lect4- SRN/srn2001-compact.pdf)

×