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.

深層学習時代の自然言語処理

141,350 views

Published on

2015-01-24にTokyoWebminingで発表した資料です

Published in: Technology
  • Be the first to comment

深層学習時代の自然言語処理

  1. 1. 深層学習時代の⾃自然⾔言語処理理 (株)Preferred Infrastructure 海野  裕也(@unnonouno) 2015/01/24 TokyoWebmining
  2. 2. ⾃自⼰己紹介 海野  裕也 l  (株)プリファードインフラストラクチャー l  ⾃自然⾔言語処理理、情報検索索、機械学習、テキストマイ ニングなどの研究開発 l  画像解析とかもやります l  Jubatusの開発など NLP若若⼿手の会共同委員⻑⾧長(2014-) 2
  3. 3. 宣伝:NLP若若⼿手の会(YANS) l  YANSシンポジウム(9⽉月) l  若若⼿手研究者(40歳未満くらい)の若若⼿手研究者が、⾃自 ⾝身の研究を進めるための集まり l  学⽣生やエンジニアの参加も歓迎 l  今年年も合宿をやる予定です l  スポンサーも募集する予定です l  YANS懇(3⽉月) l  ⾔言語処理理学会全国⼤大会期間中に懇親会をします l  単なる飲み会です  J 3
  4. 4. 今⽇日のはなし l  ⾔言語処理理系でよくみる深層学習系の話のざっく りまとめ l  既存の⾔言語処理理技術との関係性について議論論 (←こっちがメイン) 4
  5. 5. おすすめ資料料 l  渡邉陽太郎郎さんのチュートリアルがよくまとまっている l  http://ibisml.org/archive/ibis2013/pdfs/ibis2013-watanabe.pdf 5
  6. 6. ⾔言語処理理固有(?)の問題 1.  ⼊入⼒力力はシーケンス 2.  シーケンスの各要素の異異なり数は膨⼤大(単語) 3.  極めて規則的に各要素が選ばれる(⽂文法) 6
  7. 7. ⾔言語処理理に於ける深層学習を観るポイント l  シーケンスをどう扱うか⼿手法毎に違う l  1つの単語は1つのベクトルで表す l  ⽂文法的な規則が学習できると信じる 7
  8. 8. ⾔言語処理理でよくみる深層(表現)学習3種 l  Recurrent Neural Network l  Recursive Neural Network l  Skip-gram 8
  9. 9. ⾔言語処理理でよくみる深層(表現)学習3種 l  Recurrent Neural Network l  Recursive Neural Network l  Skip-gram 9 Skip-gramは このあと@piroyoungさんが 説明してくれる!
  10. 10. l  Recurrent Neural Network l  Recursive Neural Network 10
  11. 11. Recurrent Neural Network (RNN) l  系列列に対するネットワーク l  隠れ層をコピーして、次の⼊入 ⼒力力に使うところがポイント l  必ずしも予測は必要ない 11 ⽂文字、単語 時刻  t-‐‑‒1  の隠れ層 隠れ層 予測 コピー
  12. 12. 詳しいことは得居さんの資料料を⾒見見て下さい http://www.slideshare.net/beam2d/pfi-seminar-20141030rnn 12 オススメ
  13. 13. つなげて書くと・・・ 13 ⽂文字1 時刻  0  の隠れ層 隠れ層 時刻1の 予測 ⽂文字2 時刻2の 予測 ⽂文字3 時刻3の 予測
  14. 14. ふつうのニューラルネットとの関係 l  横⽅方向に並べて書くと・・・ 14 ここだけみると、⽂文 ⻑⾧長と同じ⻑⾧長さのニュー ラルネットワーク
  15. 15. Recurrent Neural Network Language Model (RNNLM) [Mikolov+10] l  RNNを使った⾔言語モデル l  次の単語を予測する l  隠れ層に⽂文脈情報が埋め込ま れていくイメージ 15 ⽂文字、単語 時刻  t-‐‑‒1  の隠れ層 隠れ層 次の⼊入⼒力力 の予測 コピー
  16. 16. Back Propagation Through Time (BPTT)で学習 l  展開した状態で誤差逆伝搬(Back Propagation)する と、時間をさかのぼって学習しているように⾒見見える 16
  17. 17. 深いネットワークと同様の問題が発⽣生する l  何度度も掛け算が発⽣生するので、重みが爆発したり、勾配 が消失する問題が発⽣生する l  そのため、⻑⾧長期依存を学習できない 17
  18. 18. Long Short-Term Memory l  勾配が消えないようにエラーを内部に貯めこむ構造に なっている l  ⼊入出⼒力力のゲートを作って、情報を選択的に流流すようにす る(流流すタイミングを学習するイメージ) 18 情報が貯 まる 出⼒力力タイ ミング ⼊入⼒力力タイ ミング
  19. 19. 昨年年後半からLSTMが流流⾏行行(?) l  Sequence to sequenceのLSTMで機械翻訳 [Sutskever +14] l  原⽂文を全部⾷食わせてベクトルを作って、そこから翻訳⽂文を⽣生成 する l  同じ⽅方法を構⽂文解析に適⽤用 [Vinyals+15] l  いずれもGoogle 19
  20. 20. l  Recurrent Neural Network l  Recursive Neural Network 20
  21. 21. Recursive Neural Network (RNN) l  2つの単語の表現ベクトルを組合せて、フレーズ の表現ベクトルを構成する l  再帰的に繰り返すことで、⽂文全体の表現ベクト ルを作る 21
  22. 22. RNNによる構⽂文解析 [Socher+11] l  隣隣接単語からフレーズを 構成する l  構成を繰り返すことで、 ⽊木ができる l  画像の構造推定にも使え る 22
  23. 23. RNNによる評判分析 [Socher+13] l  構⽂文⽊木に沿ってベクトルを再帰的に構築して、分類する l  各フレーズ単位でもpos/negの判定ができる 23
  24. 24. RecurrentはRecursiveの⼀一種? l  Recursiveでは、普通は⽊木構造(構⽂文⽊木)に沿ってベク トルを再帰的に構築する l  Recurrentは、⽊木ではなくてシーケンスに沿って構築し ていると⾒見見ると、Recursiveの特殊ケースに思える・・ 24 x1 x2 x3 x4 h1 h2 h3
  25. 25. 議論論:Recursive Neural NetworkとConvolutional Neural Network (CNN) の関係? l  いずれも隣隣接要素から新しいベクトルを構成している点 で似ている l  CNNはどのような構造があるか仮定を置いていない点、 繰り返しの回数が予め決まっている点、層毎に重みが違 う点で異異なる 25
  26. 26. Recurrent vs Recursive いずれも⼊入⼒力力(シーケンス)に対して単⼀一のベク トルが作られる l  Recurrentは前から順番にベクトルを構成する l  Recursiveは⽊木構造に沿ってベクトルを構成する 26
  27. 27. ここからが本題 27
  28. 28. 今⽇日の議論論 ⾃自然⾔言語処理理において 深層学習のアプローチは 何が嬉しいのか考えてみる 28
  29. 29. 構⽂文解析のことを考える・・・ l  構⽂文解析とは⽂文の構造を推定するタスク l  「構造」は、ふつう句句構造か係り受け構造 l  もっとも標準的な⾃自然⾔言語処理理のタスク 29 ⽂文 私は りんごを ⾷食べた 動詞句句 私は りんごを ⾷食べた
  30. 30. 余談:プログラミング⾔言語の構⽂文解析の場合 ⾃自然⾔言語と違って・・・ l  曖昧性がない(2通りの解釈は許されない) l  線形の計算量量で解析できる(CKY法はO(n3)時 間) ことが強く要請される 30
  31. 31. 構⽂文解析⼿手法(特に係り受け)の2⼤大派閥 l  Transition-based(局所最適型) l  ⽂文を前から順番に読んで、スタックに積んでいく l  Shift-Reduce法 l  Graph-based(⼤大域最適型) l  全ての構造の候補からスコアの最⼤大となる⽊木を効率率率 的に選ぶ l  MST法、Eisner法、CKYアルゴリズム 31
  32. 32. Shift-Reduce法(1/2) l  単語を前から順番に読み込んで、スタックに積みながら ⽊木を構築していく l  普通は単語を読むたびに決定的に「操作」を⾏行行うため、 ⽂文⻑⾧長に対して線形時間で解析できる 32
  33. 33. Shift-Reduce法(2/2) l  ⽂文を前から読んで、スタックに積む(Shift)か消す (Reduce)の分類を繰り返す l  操作のたびにスタックの中⾝身は変化する l  スタックの中⾝身と、⽂文中の単語からいずれの操作をする か判断する 33 時間変化
  34. 34. スタックの操作の仕⽅方で⼿手法が変わる l  前から順番に読むのは同じだが、スタックに対 する操作の⽅方法で亜種が沢⼭山ある l  Arc-Eager / Arc-Standardなど l  どういう操作体系にするかが性能にも影響を与 える 34
  35. 35. RecurrentとShift-Reduce法の類似性 l  前から順番に読んでいく l  内部状態(隠れベクトル or スタック)を次々に更更新し ていく 35 内部状態
  36. 36. RNNの隠れ状態の中にスタック相当の情報が埋め込 まれている??? 36 ? いい感じのスタック操作になるように学習している?
  37. 37. ⽂文脈⾃自由⽂文法(context free grammar, CFG) l  チョムスキー階層の3番⽬目 l  書き換え規則の左辺は1つの⾮非終端記号し か現れない 37 X à Y Z X à α
  38. 38. 確率率率的⽂文脈⾃自由⽂文法(PCFG)による構⽂文解析 l  ⽂文脈⾃自由⽂文法の各規則にスコア(確率率率)をつけて、スコ アの総和が最⼤大になる⽊木を探索索する l  データに基づいてスコアは決められる 38 名詞句句 ⾚赤い りんごの ⽊木 名詞句句 名詞句句 ⾚赤い りんごの ⽊木 名詞句句>
  39. 39. CKYアルゴリズム l  局所的な規則の総和が最⼤大となる⽊木を探すのは、動的計 画法によりO(n3)時間で求められる(CKY) 39 区間 [i, j) の最⼤大スコアは s(i, j) = maxk s(i, k) + s(k, j) + t(i, j, k) i k j
  40. 40. RecursiveとPCFGとの類似性 l  いずれも、⼊入⼒力力列列に対して構造を再帰的に構築 している l  そもそもRecursiveは構⽂文⽊木をつかっているし、 そもそも構⽂文解析タスクも解いてる・・・ 40
  41. 41. 品詞の粒粒度度では⾜足りない l  同じ品詞でも振る舞いは異異なる l  ⾃自動詞、他動詞、⽬目的語の数、補語の有無 etc. l  時制や⼈人称などの細かい規則が表現しきれない l  無限に品詞を増やすことになる・・・? 41
  42. 42. 語彙ごとに振る舞いが異異なる l  どの語を使っているかという情報が構⽂文解析に 有効であることがわかっている l  例例えばgoなら、toがつきやすいなど l  単語⾃自体を特徴として学習することは有効 l  しかし、頻度度の低い単語の学習ができな い・・・ 42
  43. 43. 品詞  vs 語 43 品詞 語 •  数が少ない •  表現力不足 •  数が多すぎる •  表現力は十分 この辺にいいのがあるは ず・・・
  44. 44. 品詞以上語以下の表現を獲得する歴史 l  HPSGやCCGといった、語彙情報に統語的な振る舞いを 記述する⽂文法 l  PCFGに隠れ変数を持たせて、振る舞いの似ている単語 をまとめる⼿手法 l  こうした情報を単語ベクトルの中で表現されるのでは? (深層学習系アプローチ) 44
  45. 45. 主辞駆動句句構造⽂文法(HPSG) l  それぞれの語に対して、⽂文法的な振る舞い(感覚的には ルール)を記述する l  振る舞いに応じて構造を推定できる 45 語彙項目 [宮尾12]など参照
  46. 46. Recursiveでこうした語彙項⽬目相当の情報が獲得で きている??? 46 ?
  47. 47. ⾔言語処理理における深層学習に期待すること l  ⽂文法(規則)によるアプローチは構⽂文解析で有 効だった l  複雑な⽂文法に相当するような情報をベクトル空 間の中に埋め込んでくれる? l  構⽂文解析以外のタスクでも複雑な規則相当の情 報を学習してくれたら嬉しい? 47
  48. 48. まとめ l  ⾃自然⾔言語処理理でよく⾒見見られる深層学習を紹介した l  Recurrent Neural Networkは状態をもって前から順に読む l  Recursive Neural Networkは構造に沿ってベクトルを構築する l  RecurrentはShift-Reduceパーザーの状態を埋め込んで いるようにみえる l  RecursiveはHPSGパーザーの語彙項⽬目相当の情報を埋め 込んでいるように⾒見見える l  いずれも⾮非⾃自明な規則を学習によって獲得してくれてい る・・・のかな・・? 48
  49. 49. 参考⽂文献 l  [Mikolov+10] T Mikolov, M Karafiát, L Burget, J Cernocký, S Khudanpur. Recurrent neural network based language model. Interspeech 2010. l  [Sutskever+14] Ilya Sutskever, Oriol Vinyals, Quoc V. Le. Sequence to Sequence Learning with Neural Networks. NIPS 2014. l  [Vinyals+15] Oriol Vinyals, Lukasz Kaiser, Terry Koo, Slav Petrov, Ilya Sutskever, Geoffrey Hinton. Grammar as a foreign language. ICLR 2015. 49
  50. 50. 参考⽂文献 l  [Socher+11] Richard Socher, Cliff Lin, Andrew Y. Ng, Christopher D. Manning. Parsing Natural Scenes and Natural Language with Recursive Neural Networks. ICML 2011 l  [Socher+13] Richard Socher, Alex Perelygin, Jean Wu, Jason Chuang, Chris Manning, Andrew Ng, Chris Potts. Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank. EMNLP 2013. 50
  51. 51. 参考⽂文献 l  [渡邉13] 渡邉陽太郎郎. ⾃自然⾔言語処理理分野におけるディープラーニングの現状. IBIS 2013 チュートリアル. http://ibisml.org/archive/ibis2013/pdfs/ibis2013- watanabe.pdf l  [得居14] 得居誠也. Recurrent Neural Network. PFI seminar. http://www.slideshare.net/beam2d/pfi-seminar-20141030rnn l  [宮尾12] 宮尾祐介. ⾃自然⾔言語処理理における構⽂文解析と⾔言語理理論論の関係. http://www.ism.ac.jp/~daichi/workshop/2012-parsing/ parsing2012-miyao.pdf 51

×