Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

nlpaper.challenge2 nlp1

194 views

Published on

nlpaper.challenge 第2回NLP/CV交流勉強会で発表したものです。内容は「言語処理における深層学習の基礎」となり、pp43~pp72を担当しました。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

nlpaper.challenge2 nlp1

  1. 1. 深層学習による 自然言語処理 言語処理における深層学習の基礎 藤堂 健世 東京工業大学 博士2年 @yousui_t_ken
  2. 2. 自己紹介 東京工業大学情報理工学院博士2年 ①知能とはなにか?みたいな厨二的な感覚で人工 知能の研究を始める(学部教育学) ②1つのアイデアとして、感情(Emotion)と性格 (Personality)を組み込んだエージェントを作りた いと思い研究を進めていた ③次の研究どうしよう→機械による言語・概念創 発っておもしろそうじゃない?機械独自のコミュニ ケーションってどういう体型なんだろう?生命現象 としても面白いんじゃないか? ④研究室教授とバトル中(そろそろデータをまと めないと行けないシーズン) 全然更新していないけどブログ もやっています 「やわやわ人工知能考察」 技術論ではなく、そもそも「人 工知能ってなんやねん」という ものを今のSOTA的技術を使っ て説明しようとかする無理ゲー コンセプト 次回 ・ボンガルド問題 ・パターンの外側に何がある?
  3. 3. http://www.foundalis.com/res/bps/bpidx.htm BP#10. Designer: M. M. Bongard みんなで解こうボンガルド
  4. 4. ニューラル翻訳で消えてしまった モンティ・パイソン小ネタシリーズ
  5. 5. 目次 「深層学習による自然言語処理」の Chapter3「言語処理における深層学習基礎」 pp43~pp72 サブタイトルは以下の通りです 3.1.準備:記号の世界とベクトルの世界の橋渡し 3.2.言語モデル 3.3.分散表現 このスライドで重要なのは 現実世界の離散情報をどのようにすればニューラルネット で記述で扱えるようになるのだろうか?
  6. 6. 3.1.準備:記号の世界とベクトルの世界の橋渡し ■画像認識・音声認識と自然言語処理で利用する情報の違い 画像認識・音声認識 数値 連続値 自然言語処理 文字・単語・記号 離散値 ニューラルネットで「記号」を処理するためには 記号の世界から、「実数値連続領域の世界」に変換する必要がある ぼく、連続値しか利用できないよ
  7. 7. 3.1.準備:記号の世界とベクトルの世界の橋渡し 橋渡しの1つの方法→「One-Hotベクトル表記*」 *論文によっては、1-of-Kベクトルと呼ぶ場合もある。K次元ベクトルの中の1つの要素だけ、1(残りはすべて0)のベクトルという意 味になるため One-Hotはベクトルの世界の橋渡しの入り口である。 実際の計算では埋め込み行列を使って分散表現化して利用する。
  8. 8. 3.1.準備:記号の世界とベクトルの世界の橋渡し ニューラルネットワークによって 処理された「何らかの記号」は、 そのままの状態では離散値の情報で あり、使い勝手が悪い →ベクトルから記号の世界へ 戻す必要がある。 ■Softmax関数を利用することで可能になる この数式はoのすべての要素の中で、最も大きい値を取る要素番号の値が1に なり、それ以外が0になるベクトルを返すことになる。 →One-hotへの変換が可能
  9. 9. 3.1.準備:記号の世界とベクトルの世界の橋渡し 記号の世界 One-Hot ベクトル 連続値の世界 分散表現化 ソフトマックス関数 One-Hotベクトル列を実際を 入出力として利用する
  10. 10. どっちが自然な「言語」だろうか? どうすれば、自然言語ぽさを計測できるか? →言語モデル(確率的言語モデル)をたてる 文や文章が生成される確率をモデル化したもの 言語モデルを利用することで ●文章の自然言語らしさを推定する ●確率分布から単語をサンプリングし、文章を生成する 3.2. 言語モデル(Language model;LM) 「天気良い今日はにゅ。に ゃにゃにゃ」 「今日は良い天気ですね」
  11. 11. 3.2. 言語モデル(Language model;LM) ■言語モデルの表し方の前に… 長さTの単語列をY=(y1,y2,y3,...,yT)とする*。 このとき単語列Yを生成する確率をP(Y)と表すことができる。 ただ、このままでは「文」として完成していることが明示的でない。 なので、文頭と文末を能わす仮想単語「BOS」と「EOS」を利用する。 BOSとEOSを導入すると、Yは新しい単語列Y'として表される。 また、このときの確率もP(Y’)として表される *Yの中身であるytは厳密には、単語に対応するOne-hotベクトルである。
  12. 12. 3.2. 言語モデル(Language model;LM) P(BOS今日は良い天気ですねEOS) P(BOS天気良い今日はにゅ。にゃにゃにゃEOS) このP(・)を正しく推定してくれるモデルを構築したい。 この言語モデルをどのようにして構築するか・・・? ●Nグラム言語モデル ●ニューラル言語モデル(neural language model) 「天気良い今日はにゅ。に ゃにゃにゃ」 「今日は良い天気ですね」
  13. 13. 3.2. 言語モデル(Language model;LM) ■実際の言語モデル構築を考える T個の単語からなる文に、 文頭と文末の仮想単語を含めた文を Y=(y0,y1,y2,y3,...,yT,yT+1) と定義する 言語モデルとして、この文Yの生成確率をP(Y)を モデル化することを考える →ただし直接P(Y)を直接モデル化することは困難* である。 *「困難」…文の種類はそれこそ無限に考えられるため、無限の種類のデータ に対して十分な量の訓練データを揃えることは困難。またデータを揃えたとし ても、効率的にモデルを学習することはやっぱり困難… P(Y)? 無理無理?
  14. 14. 3.2. 言語モデル(Language model;LM) ■言語モデルは次の戦略を利用する 言語モデルは、直前に出現したいくつかの単語 を文脈*として次の単語の出現確率をモデル化す る。 *言語モデルにおいて、ある単語の出現確率を計 算するときに用いる周辺の単語を文脈(context) と呼ぶ 確率的言語モデルは以下の式で表される (3.5) (3.8)(t-a)単語だけ使うとこの式になる 今日 僕は 彼女と ご飯を 〇〇 このへんの 単語を利用して この単語の出現 確率をモデル化 する ■この言語モデルが、NNモデルの基本的の形になる
  15. 15. 3.2. 言語モデル(Language model;LM) 3.2.3.順伝播型ニューラルネットワーク基本モデル(FFNN言語モデル) ニューラル言語モデルのサブカテゴリとして、順伝播型ニューラルネットを用い た言語モデルを総称して順伝播型ニューラル言語と呼ぶ (3.9)
  16. 16. 3.2. 言語モデル(Language model;LM) 例えば3層のニューラルネットワークでt番目の単語の生成確率Pを求めたい (3.11)
  17. 17. 私の話、 自然言語の 確率 小さすぎ!?
  18. 18. 3.2. 言語モデル(Language model;LM) 3.2.4.再帰ニューラル言語モデル(RNN言語モデル) 順伝播型ニューラルと異なり、文脈帳を固定することなく可変長入力に対応でき る。系列データのモデル化に適している。 ニューラル言語モデルのサブカテゴリとして再帰ニューラルネットワークを用い た言語モデルを再帰ニューラル言語モデル(RNN language model)よぶ。 (3.12)
  19. 19. 3.2. 言語モデル(Language model;LM) 例えば,1層の再帰ニューラルネットワークではこの様に表現する
  20. 20. 3.2. 言語モデル(Language model;LM) 3.2.5.言語モデル評価・・・パープレキシティ(PPL)が利用される 式を見ると後半の部分は負の対数尤度として見ることができる PPLは単語を予測する確率分布に どれだけばらつきがあるか評価し ている。 →PPLが小さいほど、評価データ の確率分布と言語モデルが似てい ることになる。
  21. 21. 3.2. 言語モデル(Language model;LM) 3.2.6.言語モデルからの文生成 言語モデルは単語の生成確率をモデル化したもの →生成確率に基づいてサンプリングすると 「それっぽい」文が作れるのではないか? (3.15) 文頭から順番に次の単語を予測する処理と解釈す ることもできる 何らかの分布を持 っている 言語モデル文頭から順番に単語 を入れていく 次の単語をサンプリ ングする 今日 僕は 彼女と ご飯を 〇〇 このへんの 単語を利用して この単語の出現 確率をモデル化 する この単語を予測 できないか?
  22. 22. 3.2. 言語モデル(Language model;LM) 3.2.6.言語モデルからの文生成 言語モデルは、ある文章が自然言語かどうかを判断する評価機である。(基準と なる文章が存在する) それを「生成モデル」として利用するためには、単語を逐次サンプリングする必 要がある。(自分で自分の予測した結果を再利用する形になる) →数式的には以下のような違いになっている (3.16) ・(すなおな)言語モデルでは、文脈に対応するある単語の確率を出力する ・生成モデルでは、予測対象となる単語を出力している(事前には知らない)
  23. 23. 3.2. 言語モデル(Language model;LM) 3.2.7. 文字単位の言語モデル ■単語より短い文字単位の言語モデルを考えることができる →単語ベースだと訓練データに現れていない単語に対応することができない →単語境界を事前に特定の問題 ■課題もある →単語や句などの人間が認識している大きな単位(長い依存関係)の学習が難し い →Tが必然的に長くなるわけだから、計算量や領域コストが掛かってしまう。
  24. 24. 3.3. 分散表現 ■記号を計算機上で賢く扱うための方法論→1つの研究領域として考えられる 記号の世界 One-Hot ベクトル 連続値の世界 ソフトマックス関数 分散表現化
  25. 25. 3.3. 分散表現 離散 オブジェクト One-Hot ベクトル 連続値の世界 分散表現化 僕たちが話す 言葉は 離散オブジェクト
  26. 26. 3.3. 分散表現 離散オブジェクト ベクトル空間で表された分散表現 単語に着目した分散表現を」「単語分散表現(単語埋め込み)」と呼ぶ 類似度の定義が難しい ベクトル空間上で 表現されているので 類似度や関係性を数値として 表現することができる
  27. 27. 3.3.2.歴史的背景 3.3. 分散表現 自然言語処理の文脈で利用した分布仮説のアイデアが ニューラルネット研究とうまく融合できた ニューラルネット研究からの視点 自然言語処理研究からの視点 1980年代のHintonらの研究から、 脳のモデル化する方法として生ま れた。 その後、ニューラルネットワーク で単語分散表現に成功することが できた(2000年) 単語の分布仮説 …周囲の文脈によって単語の意味 が決まる これにより、単語間に何かしらの 類似度を与えることができる
  28. 28. 3.3. 分散表現 3.3.3 分散表現の獲得方法 よい分散表現とはなにか? 意味の似ている離散オブジェクトは近く、反対の意味の離散オブジェクトは遠く なれば、よい分散表現として考えることができる
  29. 29. 3.3. 分散表現 3.3.3 分散表現の獲得方法 (1)ニューラル言語モデルを用いる (3.11)の式の一番上のみ ↑より、一般的なニューラル言語モデルを学習することで、同時に分散表現も獲 得できたことになる (図3.4.) 変換行列が分散表現として利用できる 入力の際の変換行列が似ていれば、出力も類似する→良い性質となる Ex)「おはよう」と「こんにちは」の変換行列、出力が類似すれば・・・?
  30. 30. 3.3. 分散表現 3.3.3 分散表現の獲得方法 (2)対数双線形モデルに基づく分散表現の獲得 →ニューラル言語モデルの派生 ニューラル言語モデルだと大規模データ用いると性能上がるけど、計算量的に困 難じゃん・・・? →なら、最も簡単なニューラル言語モデルを作ればいいんじゃない? 実際にはSkip-gramモデルとCBoWモデルを総称・包括したツール わしら、2つの内 積ベクトルで構成 されていてめっち ゃ早いねん
  31. 31. 3.3. 分散表現 3.3.3 分散表現の獲得方法 (2)対数双線形モデルに基づく分散表現の獲得 周りの単語からある単語を予測するモデル 1つの単語から周囲の単語を予測する CBoWモデル Skip-gramモデル
  32. 32. 3.3. 分散表現 3.3.3 分散表現の獲得方法 (2)対数双線形モデルに基づく分散表現の獲得 =■学習方法 訓練データをD ・・・ として 目的関数を符の対数尤度として取ると (3.21) となり、実際の計算式である(3.17) を代入すると となる ほら、2つの内積で構成されてい るからこんな簡単なニューラルネ ットになるんだよ
  33. 33. 3.3. 分散表現 3.3.3 分散表現の獲得方法 (3)負例サンプリングによる高速化 詳細な説明は4.3.4節に譲ります・・・ ←実際にWord2Vecで利用されている計算方法 訓練データを生成する 確率分布 ノイズデータ (間違ったデータ)を 生成する確率分布 クラス分類のタスクとして判断する
  34. 34. 3.3. 分散表現 3.3.3 分散表現の獲得方法 (3)負例サンプリングによる高速化 訓練データを生成する確率分布を表現する確率モデル ノイズデータの確率モデルはこのPD’=(1−P)となる この目的関数は次のようになる データを考慮すると次になる
  35. 35. 3.3. 分散表現 ■よい分散表現は様々な自然言語処理の応用タスクで利用されている ■Word2Vecが今の所性能が良いとされているが、単語だけでなく、句・文・文 章を含んだ分散処理が期待されている
  36. 36. ご清聴ありがとうございました

×