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.

深層学習による自然言語処理の研究動向

30,247 views

Published on

第1回ステアラボ人工知能セミナーにおける、NAIST進藤裕之先生の講演スライドです。

Published in: Technology

深層学習による自然言語処理の研究動向

  1. 1. 深層学習による自然言語処理の 研究動向 進藤 裕之 奈良先端科学技術大学院大学 2016-04-28 第一回ステアラボAIセミナー
  2. 2. 1 • 進藤 裕之 (Hiroyuki Shindo) • 所属: 奈良先端科学技術大学院大学 自然言語処理学研究室 助教 • 専門: 構文解析,意味解析 • @haplotyper (twitter), @hshindo (Github)
  3. 3. 本日のデモ 2 深層学習による言語解析(簡易版) https://github.com/hshindo/Merlin.jl にリンクがあります
  4. 4. NAISTの取り組み1: 論文解析CREST 3 知識データベース ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ Document Section Paragraph Sentence 係Dependency ・・・・・・・・・・・・・・ Word ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・ L 科学技術論文 User Interface / Document Visualization 膨大な科学技術論文からの知識獲得・編集・検索
  5. 5. stress sensor Aグループ Bグループ Stability Mood Quality Success Rate Speed Aグループ Bグループ Pulse ESR BPM impulsivity (衝動性) Empathy (共感性) Twitter Facebook social type fMRI 予測 NAISTの取り組み2: 社会脳CREST 脳活動と言語情報から個人の社会的態度を予測する
  6. 6. 最近の研究テーマ 5 • 複合表現(MWE)の解析,コーパス構築 • Ex. a number of ~, not only ... but ... • 言語の意味解析,コーパス構築 • 自然言語処理,深層学習ツールキットの開発
  7. 7. 自然言語処理 6 機械翻訳 Hello こんにち は 自動要約 Today’s news ・株価 ○○ ・通常国会 ・東京都、、 自動誤り訂正 He have a pen. has? Summary テキストデータ (英語,日本語,etc) 解析,編集,生成
  8. 8. 7 Audio Image Text 離散連続連続 言語データの特徴 From: https://www.tensorflow.org/
  9. 9. 8 • 離散シンボルの系列である • 系列長がサンプルごとに異なる • 階層的,再帰的な構造を有する(文字,単語,句,文) 言語データの特徴 John loves Mary .
  10. 10. 9 構造学習としての自然言語処理 1. 系列 → 系列 • 形態素解析 • 機械翻訳,自動要約 • 質問応答,対話bot 2. 系列 → 木構造 • 構文解析 3. 系列 → グラフ構造 • 意味解析
  11. 11. 深層学習 10 深い構造を持つニューラルネットワーク(NN) ベクトル,行列,テンソル 微分可能な関数 入力 特徴ベクトル
  12. 12. 深層学習とは 11 関数 f の例 • 線形関数 • 活性化関数 • Sigmoid • Tanh • Rectifier Linear Unit • 畳み込み関数(Convolution) • プーリング関数(Pooling) etc...
  13. 13. 言語処理における深層学習の効果 12 1. データから特徴量を自動的に学習できるようになっ た.(他分野と同様) 2. 従来よりも広い文脈情報が扱えるようになった. 3. モデルの最適な出力の探索が簡単になった. (貪欲法でもそこそこ精度が高い) 4. 画像・音声などを扱うモデルとの親和性が高くなり,マ ルチモーダルなモデル構築が容易になった.
  14. 14. 系列モデリング 13
  15. 15. リカレントニューラルネットワーク(RNN) 14 入力 特徴ベクトル... LSTM, GRUなどと 組み合わせるのが主流
  16. 16. Long-Short Term Memory (LSTM) 15 • ゲートによって情報を選択的に通す • メモリセルによって長期記憶を実現 • メモリセル • 入力ゲート • 忘却ゲート • 出力ゲート Gated Recurrent Unit もよく使われる
  17. 17. 系列モデリングに基づく言語処理 16 • 形態素解析(単語分割,品詞タギング) • 固有表現認識 • 機械翻訳 • 自動要約
  18. 18. 17 従来のアプローチ 品詞タグ付けタスク DT CD JJ NNVNN The auto maker sold 1000 cars last year.入力 出力 品詞タグ(45種類) • DT: 限定詞 (the, a, an, ...) • N: 名詞 • V: 動詞 • CD: 数字 • JJ: 形容詞
  19. 19. 18 従来のアプローチ 品詞タグ付けタスク 特徴ベクトル: 高次元,スパース,バイナリ The auto maker sold ... 1 0 0 1 ... 0 1 w0 = ‘maker’ w1 = ‘sold’ W-1 = ‘auto’ w-1 w0 w1 特徴量 • w0, w1, w-1 • w0 の文字n-gram • w0 && 文字n-gram • w1 && 文字n-gram • w2 && 文字n-gram • 先頭が大文字か • 文内での単語位置 Etc… 106~ 109
  20. 20. 19 単語埋め込み ベクトル VB The auto maker sold ... w-1 w0 w1 ニューラルネットワーク ニューラルネットワーク 品詞タグ付けタスク 特徴量を自動的に学習
  21. 21. 20 ニューラルネットワーク 品詞タグ付けタスク 特徴ベクトル: 低次元,密 The auto maker sold ... w-1 w0 w1 特徴量 ランダムに初期化 101~ 102 1.1 -0.5 -0.1 ... 3.7 -2.1 自動的に学習
  22. 22. 機械翻訳 21 (従来法) フレーズベース統計的機械翻訳 • 【学習】 フレーズのアライメント(対応関係)と翻訳モデルの スコアを決定する. • 【デコード】 翻訳モデルのスコアと言語モデルのスコアを考 慮して最適な翻訳を決定する. 3.2 1.45.1 明日は 英語を 学びます ? ? ?
  23. 23. 22 RNNによる機械翻訳のモデル化 A B C D X Y Z A B C D <eos> X Y Z <eos>X Y Z 機械翻訳 Sutskever et al., “Sequence to Sequence Learning with Neural Networks”, Arxiv, 2014
  24. 24. 23 アテンションに基づくRNN A B C D <eos> X Y Z <eos>X Y Z どこに「注意」して翻訳するかを学習する 機械翻訳 Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR, 2015
  25. 25. 24 アテンションに基づくRNN A B C D <eos> X Y Z <eos>X Y Z どこに「注意」して翻訳するかを学習する 機械翻訳 Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR, 2015
  26. 26. 25 アテンションに基づくRNN A B C D <eos> X Y Z <eos>X Y Z どこに「注意」して翻訳するかを学習する 機械翻訳 Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR, 2015
  27. 27. 26 アテンションに基づくRNN A B C D <eos> X Y Z <eos>X Y Z どこに「注意」して翻訳するかを学習する 機械翻訳 Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR, 2015
  28. 28. 機械翻訳 27 自動的に学習されたアテンションの例 アテンションのモデル化によっ て, 単語と単語の対応関係(アライメ ント)を明示的に与える必要がな くなった. Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR, 2015
  29. 29. 自動要約 28 アテンション型RNNに基づく要約 Rush et al., “A Neural Attention Model for Sentence Summarization”, EMNLP, 2015 russian defense minister ivanov called sunday for the creation of a joint front for combating global terrorism russia calls for joint front against terrorism 入力(原文) 出力(要約) • 概ね機械翻訳と同じ. • ビーム探索によって最適な要約を生成している.
  30. 30. 言語モデル 29 <s> A cat sofa A cat … …is </s> • 文(単語列)の尤もらしさをスコア 化するモデル • これまでの単語列から,次の単 語を予測させる. → 観測データに高いスコアを割 り当てるように学習させる • RNN (with LSTM, GRU) が主流
  31. 31. Softmax問題 30 単語を出力する系列モデルは出力層の計算が大変 次元数:~105(=語彙数) ~105次元 ~102次元 Softmax関数 入力層 中間層 出力層
  32. 32. Softmax問題 31 単語を出力する系列モデルは出力層の計算が大変 • 階層的Softmaxを使う手法 [Morin+ 2005] • サンプリングに基づく手法 [Ji+ 2016] • Softmax関数と似た別の関数を使う手法 • Sparsemax [Martins+ 2016] • Spherical softmax [Vincent+ 2015] • Self-normalization [Andreas and Klein 2015] 計算量を減らす or タスク精度を上げる ために・・・
  33. 33. Softmax問題(Vincentらの手法) 32 Vincent et al., “Efficient Exact Gradient Update for training Deep Networks with Very Large Sparse Targets”, Arxiv, 2014 Wを明示的に管理しない WD d D: 語彙数
  34. 34. Softmax問題(Vincentらの手法) 33 Vincent et al., “Efficient Exact Gradient Update for training Deep Networks with Very Large Sparse Targets”, Arxiv, 2014 数百倍の高速化が実現できる
  35. 35. Softmax問題 まとめ 34 • 階層的Softmaxを使う手法 [Morin+ 2005] • サンプリングに基づく手法 [Ji+ 2016] • Softmax関数と似た別の関数を使う手法 • Spherical softmax [Vincent+ 2015] • Self-normalization [Andreas and Klein 2015] • 基本的には,学習時の計算量を減らす手法. • テスト時の計算量を減らす手法は今後の課題.
  36. 36. Lateral Network 35 浅く広いネットワーク構造を使って言語モデルを高速化 Devlin et al., “Pre-Computable Multi-Layer Neural Network Language Models”, EMNLP, 2015 通常のネットワーク Lateral Network
  37. 37. Lateral Network 36 浅く広いネットワーク構造を使って言語モデルを高速化 Devlin et al., “Pre-Computable Multi-Layer Neural Network Language Models”, EMNLP, 2015 • 事前に行列積の計算を 行ってしまい,結果を記憶 しておく.(pre- computation) • 学習時にはパラメータが更 新されるため使えないが, テスト時には大幅な高速化 となる.
  38. 38. 画像からテキストを生成 37 Generates Image Description with RNN Karpathy et al., “Deep Visual-Semantic Alignments for Generating Image Descriptions”, CVPR, 2015 • 画像から領域CNN(RCNN) で領域の特徴量を学習. • 画像の記述文はRNNで生 成.
  39. 39. 系列モデリング: まとめ 38 • 多くの言語処理タスクは,系列モデリングの問題として解くこと ができる. • 現在のところ,RNN + LSTM + Attention を用いる手法がスタン ダードになっている. • 出力層の次元が大きいとき,Softmaxの計算をどのように効率 化するかは今度の課題.
  40. 40. 木構造モデリング 39
  41. 41. 再帰型ニューラルネットワーク 40 loves MaryJohn 構文木とネットワーク構造 が対応している. 特徴ベクトル
  42. 42. 構文解析(依存構造) 41 Chen and Manning, “A Fast and Accurate Dependency Parser using Neural Networks”, ACL, 2014 フィードフォーワードネットワークによるShift-reduce解析 • Shift-reduce解析の各アクションに対するスコア計算をNNで行 う. • 解析アルゴリズムは従来と同じだが,組み合わせ特徴量の設 計が不要になる.
  43. 43. 構文解析(依存構造) 42 Pei et al., “An Effective Neural Network Model for Graph-based Dependency Parsing”, ACL, 2015 動的計画法に基づく解析(Eisnerアルゴリズム) • Eisnerアルゴリズム(次スラ イド)のスコア計算をNNで 行う. • SHift-reduceのときと同様 に,アルゴリズムは従来と 同じだが,組み合わせ特徴 量の設計が不要となる.
  44. 44. (参考)Eisner’s Algorithm 43 She read a short novel. 0 1 2 3 4 Initialization
  45. 45. (参考)Eisner’s Algorithm 44 She read a short novel. [0, 1, comp] + [1, 2, comp] → [0, 2, incomp] 0 1 2 3 4
  46. 46. (参考)Eisner’s Algorithm 45 She read a short novel. [0, 1, comp] + [1, 2, comp] → [0, 2, incomp] 0 1 2 3 4
  47. 47. (参考)Eisner’s Algorithm 46 She read a short novel. 0 1 2 3 4 [0, 1, comp] + [1, 2, comp] → [0, 2, incomp] [0, 1, comp] + [1, 2, incomp] → [0, 2, comp]
  48. 48. (参考)Eisner’s Algorithm 47 She read a short novel. 0 1 2 3 4 [0, 1, comp] + [1, 2, comp] → [0, 2, incomp] [0, 1, comp] + [1, 2, incomp] → [0, 2, comp]
  49. 49. (参考)Eisner’s Algorithm 48 She read a short novel. 0 1 2 3 4
  50. 50. (参考)Eisner’s Algorithm 49 She read a short novel. 0 1 2 3 4
  51. 51. (参考)Eisner’s Algorithm 50 She read a short novel. 0 1 2 3 4
  52. 52. (参考)Eisner’s Algorithm 51 She read a short novel. 0 1 2 3 4
  53. 53. (参考)Eisner’s Algorithm 52 She read a short novel. 0 1 2 3 4
  54. 54. (参考)Eisner’s Algorithm 53 She read a short novel. 0 1 2 3 4
  55. 55. (参考)Eisner’s Algorithm 54 She read a short novel. 0 1 2 3 4
  56. 56. (参考)Eisner’s Algorithm 55 She read a short novel. 0 1 2 3 4
  57. 57. (参考)Eisner’s Algorithm 56 She read a short novel. 0 1 2 3 4
  58. 58. (参考)Eisner’s Algorithm 57 She read a short novel. 0 1 2 3 4
  59. 59. (参考)Eisner’s Algorithm 58 She read a short novel. 0 1 2 3 4
  60. 60. (参考)Eisner’s Algorithm 59 She read a short novel. 0 1 2 3 4
  61. 61. (参考)Eisner’s Algorithm 60 She read a short novel. 0 1 2 3 4
  62. 62. 構文解析(句構造) 61 Dyer et al., “Recurrent Neural Network Grammars”, arXiv, 2016 LSTMによるShift-reduce解析 • トップダウンに句構造木を生成するLSTMモデルを提案 • 英語WSJでF値92.4(state-of-the-art)
  63. 63. 構文解析(句構造) 62 木構造の線形化(linearization) Vinyals et al., “Grammar as a Foreign Language”, Arxiv, 2015 • 木構造を推定する問題を系列モデリング(3層LSTM)で解く • 品詞タグを使わない方が精度が高かった(!)(1pt) (従来手法では,品詞タグの情報が無いと精度は大きく低下)
  64. 64. 構文解析(句構造) 63 木構造の線形化(linearization) Vinyals et al., “Grammar as a Foreign Language”, Arxiv, 2015 • モデルが不正な木構造を出力する割合は1.5%(意外と少ない) • Attentionを入れないと精度が大きく低下 • 最終的に従来手法とほぼ同等の結果
  65. 65. 木構造モデリング:まとめ 64 • 言語の構文解析では木構造を出力することが目的 • 従来の動的計画法,Shift-reduce法に基づくアルゴリ ズムの場合,スコア関数をニューラルネットワークに変 える. → (組み合わせ)特徴量の設計が不要になる. • 木構造の線形化によって,系列モデリングの技術をそ のまま使う手法や,従来と同様に木構造の学習を直 接行う手法などがある.
  66. 66. 質問応答(QA)・言語理解 65
  67. 67. 66 質問応答 Hermann et al., “Teaching Machines to Read and Comprehend”, Arxiv, 2015 読解問題の自動回答 • CNNからデータ収集 • Bi-directional LSTM
  68. 68. 67 質問応答 Hermann et al., “Teaching Machines to Read and Comprehend”, Arxiv, 2015 • アテンションの例 読解問題の自動回答
  69. 69. 68 Facebook bAbi Task • Facebookの開発した質問応答タスク • Task 1 から Task 20 まである • 機械が言語理解をできているか評価するためのデータセット (人間は100%正解できることが期待される) Weston et al., “Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks”, arXiv, 2015
  70. 70. 69 Facebook bAbi Task Weston et al., “Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks”, arXiv, 2015 • 最も難しいタスク
  71. 71. 70 Dynamic Memory Networks Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”, arXiv, 2015 • 入力モジュール: 入力文(または文章)をベクトル へ変換する. • 質問モジュール: 質問文をベクトルへ変換する. • エピソード記憶モジュール: 入力文(と質問文)を順番に見ながら,入力のどの部分に注目する か(アテンション)を決定し,記憶ベクトルを生成していく.これを何回 か繰り返す. • 回答モジュール: 回答を生成する.
  72. 72. 71 Dynamic Memory Networks Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”, arXiv, 2015
  73. 73. 72 Dynamic Memory Networks Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”, arXiv, 2015 • 17: Positional Reasoning, 19: Path Finding は難しい • 概ね正解できている → もう少し難しい問題が必要 (外部知識が必要なもの)
  74. 74. 73 Xiong et al., “Dynamic Memory Networks for Visual and Textual Question Answering”, arXiv, 2016 Dynamic Memory Networks DMN for Visual QA 畳み込みネットワーク(CNN)で画像から 特徴ベクトルを作る
  75. 75. 74 意味解析+Visual QA Andreas et al., “Learning to Compose Neural Networks for Question Answering”, NAACL, 2016 (Best Paper Award) Visual QA
  76. 76. 75 意味解析+Visual QA Andreas et al., “Learning to Compose Neural Networks for Question Answering”, NAACL, 2016 (Best Paper Award) 1. 質問文を解析 2. 対応するニューラル ネットワークに変換 3. 知識データベースへ 回答を問い合わせる Visual QA
  77. 77. 深層学習の実装 76
  78. 78. 77 計算グラフ 計算グラフ A, B: パラメータ行列 x, y: データベクトル Merlin.jlによる実装例 >> x = Var() >> y = Var() >> A = Var(rand(8,5)) >> B = Var(rand(8,5)) >> z = A*x + B*y >> f = Graph(z) >> fx = f(rand(8,3),rand(8,3)) >> backward!(fx)
  79. 79. 78 計算グラフの最適化 • 中間オブジェクトを作らずに,一度に計算した方が速い. gemm! BLASによるin-place演算
  80. 80. 79 計算グラフの最適化 • キャッシング(pre-computation): パラメータが固定されているテスト時のみ有効 W 単語 embeddings The auto maker ... X concat x1 W 1 x2 W 2 一度計算したら記憶しておく 別々に計算して キャッシュする
  81. 81. 80 科学技術計算に適した高速なプログラミング言語 function fib(n::Int) if n < 2 1 else fib(n-1) + fib(n-2) end end • 動的言語だが,必要な部分(高速に処理 したい部分)には型を付けられる. • 多次元配列,線形代数がbuilt-in • C, pythonの関数を呼べる • 強力なマクロ Julia言語
  82. 82. 本日のデモ 81 深層学習による言語解析(簡易版) https://github.com/hshindo/Merlin.jl にリンクがあります
  83. 83. 82 Julia言語による深層学習ライブラリ Deep Learning: https://github.com/hshindo/Merlin.jl NLP: https://github.com/hshindo/Jukai.jl それぞれJulia100行程度で書けます デモの中身: 1. 文分割 2. トークナイズ(単語分割) 3. 品詞タグ付け
  84. 84. 83 in getting their money back ... ... ... ... g e t t i n gi n b a c k ... ... ... ... ... ... 文字レベル CNN 特徴ベクトル 単語レベル CNN CNN based POS-Tagging [Santos+ 14]
  85. 85. g e t t i n g 10 dim. <s> <e> CNN based POS-Tagging [Santos+ 14]
  86. 86. g e t t i g ... ... ... ... max-pooling 10 dim. max n<s> <e> 文字列から重要な 特徴を抽出 CNN based POS-Tagging [Santos+ 14]
  87. 87. 86 ミニバッチ化 • 言語データは,系列長が可変長. • モデルによっては,ミニバッチ化(複数サンプルを まとめて処理して高速化)が困難なケースもある. • 先ほどの品詞タガーでは,文字レベルのCNNと単 語レベルのCNNが階層的に結合されており,ミニ バッチ化が難しい • CPUの実装では実行速度に差が出る.
  88. 88. 実験結果 87 Method タグ付け精度 単語CNNのみ 96.83 単語CNN + 文字CNN 97.28 • 学習データ: WSJ newswire text, 40k sentences • テストデータ: WSJ newswire text, 2k sentences
  89. 89. 実験結果 88 0 200 400 600 800 1000 1 2 4 8 16 32 64 実行時間[sec] バッチサイズ [文] Merlin.jl Theano Chainer 学習時間の計測結果(CPU) 進藤ら, “Julia言語による深層学習ライブラリの実装と評価”, 人工知能学会全国大会, 2016
  90. 90. 実験結果 89 テスト時間の計測結果(CPU) (1文ずつ処理した場合) 進藤ら, “Julia言語による深層学習ライブラリの実装と評価”, 人工知能学会全国大会, 2016 ※ミニバッチサイズを大きくすれば差は縮まっていく.
  91. 91. 90 まとめ • 深層学習の最近の論文について紹介した. • 深層学習の手法も大事だが,データセットの開発・公 開も同様に重要. • テキストの意味理解は今後の大きな課題. • マルチモーダル(画像,音声)との同時モデルが今後 発展していくことが期待される.

×