O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

自然言語処理

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
自然言語処理概要
自然言語処理概要
Carregando em…3
×

Confira estes a seguir

1 de 36 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Quem viu também gostou (14)

Anúncio

Mais recentes (20)

Anúncio

自然言語処理

  1. 1. 自然言語処理 ー古典的手法から言語モデルまでー 森山 直人
  2. 2. 注意 • 私個人の主観に基づく表現が多数あり、 間違っていたらすみません!! • 概念の理解を最優先としており、数式を排除して います。そのため一部厳密な定義を割愛しました 2
  3. 3. アジェンダ • 自然言語とは(5分) • 古典的な手法(10分) • word2vec(10分) • ニューラルネットワーク言語モデル(15分) 3
  4. 4. • 自然言語とは • 古典的な手法 • word2vec • ニューラルネットワーク言語モデル(NNLM) 4
  5. 5. 自然言語とは? • つまり、人間の人間による人間のための意味記号の集合体 • 「概念」という摩訶不思議なデータ構造を符号化したもの • 人間の頭脳がどのようにして処理しているかはまだ研究中 5
  6. 6. 逆に自然言語じゃないのは? • コンピュータはこれじゃないと処理できない • こっちのほうが論理的 • いろいろ呼び方はあるが、よく「構造化データ」とよばれる { "name": "森山", "sex": "男” "age": 27, "language": "python", } 口語ではなく、要素ごとに存在 し、それぞれの要素同士の関連 を明確に記されている “森山という男がいて、彼は今年27歳でpythonをつかう” 6
  7. 7. 自然言語処理とは 人間だけが処理できる記号の集合体を、何らかの手法で コンピュータに処理させ、意図するものを出力させる 7
  8. 8. 自然言語処理とは 人間だけが処理できる記号の集合体を、何らかの手法で コンピュータに処理させ、意図するものを出力させる 簡単そうに聞こえるが、機械学習で最も難しい分野 (ビジネス観点で)最大の金脈とも言われている 8
  9. 9. 文書を数字化する コンピュータは数字しか処理できないのであれば、 単純に単語にIDをつけて、数字にすればよいのでは?? 9
  10. 10. 闇へようこそ!! 10
  11. 11. • 自然言語とは • 古典的な手法 • word2vec • ニューラルネットワーク言語モデル(NNLM) 11
  12. 12. 単語を数字化する 単語同士の意味に関連性があると同じように、数字化させた 際に近い意味を持つ単語のIDが近く来るようにしたい (ユークリッド距離が近い) パソコン インターネット プログラミング アメリカ ホワイトハウス ワシントン ID 近い意味を 持つ単語群 IDが近い ID 単語 1999 プログラミング … … 2342 インターネット … … 2652 パソコン 単語同士 では一定 の関連性 はある 数字(ID) は近い 12
  13. 13. 単語を数字化する • 日本語の単語は約25万語(広辞苑より)あり、各単語同士の関連 性を1次元の数字順列で表現するのはほぼ不可能 • 曖昧な数字IDは逆にコンピュータの計算を妨げる 13
  14. 14. 単語を数字化する • 日本語の単語は約25万語(広辞苑より)あり、各単語同士の関連 性を1次元の数字順列で表現するのはほぼ不可能 • 曖昧な数字IDは逆にコンピュータの計算を妨げる とは言え、 計算するには数字化しないと始まらないので、 「意味を伴わないID」をつける方法を考える 14
  15. 15. Bug-Of-Words(BOW) ※ここからベクトル(線形代数)の話が入ります ① 予め、処理する単語の総ユニーク数を算出 ② ①の数字を次元としたゼロベクトル配列を用意 ③ 各単語の出現順に、その単語が位置が1となるベクトルを付与 パソコン インターネット プログラミング エンジニア UNIX CPU ②6次元のゼロベクトル[0, 0, 0, 0, 0, 0] ①6次元 ⇒ [1, 0, 0, 0, 0, 0] ⇒ [0, 1, 0, 0, 0, 0] ⇒ [0, 0, 1, 0, 0, 0] ⇒ [0, 0, 0, 1, 0, 0] ⇒ [0, 0, 0, 0, 1, 0] ⇒ [0, 0, 0, 0, 0, 1] ※これの何がうれしいか • 各ベクトルの値が違うにもかかわらず、 • すべて互いの距離が等しい(ノルム距離)!! • つまり、独自性を保ちつつ、無駄な相対関係を 持たない • 機械学習で自然言語以外でもよく使われる ③ 15 例)
  16. 16. Bug-Of-Words(BOW)の計算 • 前述のBOW化により、一旦単語を数値化できるようになった • ただし、単語の意味を計算することはまだできていない • とりあえず、単語の出現位置や出現回数を元に単語の性質が計算で きる様になる 16
  17. 17. でも・・・ 本質的な意味解析はできてないので、万能なアルゴリズムを 諦め、やりたいことに応じて何らかの計算を行う • 単語の出現頻度と希少性を考慮し、重要な単語を推定するTF-IDF法(教師なし) • 予めウォッチする単語を決めて、文章の分類を行うナイーブベイズ法(教師あり) • 単語の品詞を元に、文脈判定を行うチャンクや構文木法(半教師あり) これ以外にもたくさんあります(ニーズがあれば別途解説致します!) 17
  18. 18. 古典的手法の限界 • 単語の出現位置と回数や品詞だけで考えられており、 結局意味の理解にはつながらない • ルールベースの処理しかできない • 長年目覚ましい進歩がない・・・ 18
  19. 19. • 自然言語とは • 古典的な手法 • word2vec • ニューラルネットワーク言語モデル(NNLM) 19
  20. 20. word2vec a1 a2 a3 a4 a5 Continuous Bag–of–Words 周囲の単語から中心の単語を予測する Skip-Gram 中心の単語から周囲の単語を予測する • 2014年にGoogleより発表され、性能の高さから瞬く間に世界中に広がった • 文中で連続する5つの単語(シーケンス)をベースに、2つのアルゴリズムで実装 ベースは2つのアルゴリズムで構成 ・・・ ・・・ 20
  21. 21. word2vec-注目すべきデータ構造 • 右図は200次元のベクトルを特別に2次 元にプロットしたもの • 「中国+北京」のベクトルが「ロシア+モ スクワ」及びその他の国+首都のベクトル とかなり近い • その他、「王様ー男+女=女王」といった 演算ができる • つまり、ベクトル化さえすれば、広い範囲 の処理が可能に! • 前述の処理により、単語を任意の次元ベクトルに変換(100〜200次元くらい) (多次元空間に、単語を埋め込む) • 単語ベクトル同士で、ベクトル演算が可能(足し引き) 21
  22. 22. word2vec-で完璧か?? • 擬似的に単語の「意味」に繋がる表現ができたとは言え、 まだまだ単語の出現頻度の枠を抜け出せていない • 時系列的に、文章を捉えることはできない • 単語ごとの話にとどまっている 22
  23. 23. word2vec-で完璧か?? • 擬似的に単語の「意味」に繋がる表現ができたとは言え、 まだまだ単語の出現頻度の枠を抜け出せていない • 時系列的に、文章を捉えることはできない • 単語ごとの話にとどまっている 無数の単語が時系列順に並べられた文章を解析する 手法は無いものか・・・ 23
  24. 24. • 自然言語とは • 古典的な手法 • word2vec • ニューラルネットワーク言語モデル(NNLM) 24
  25. 25. 深層学習(DNN)を用いたアプローチ • 近年目覚ましい成果を上げている深層学習(ディープニューラル ネットワーク)を応用 • これにより、これまで手動で設定していた処理の手順を自動化 • 細かいパラメータさえ気にしなければ、結構うまくいく 25
  26. 26. 深層学習(DNN)を用いたアプローチ • 近年目覚ましい成果を上げている深層学習(ディープニューラル ネットワーク)を応用 • これにより、これまで手動で設定していた処理の手順を自動化 • 細かいパラメータさえ気にしなければ、結構うまくいく 深層学習ってなに??? 26
  27. 27. 超ざっくり言うと 入力層 隠れ層 出力層 複数の情報を元に、“見解“を得る • どの要素がそれくらいの重要度を占めるか • それぞれの要素同士の相関関係はどんなものか • そもそも与えられた情報で、見解が得られるのか これらを自動で計算してくれるパワフル なフレームワーク ※くわしい方は突っ込みたい気持ちを 抑えてください (多分言いたいこと察しています) 27
  28. 28. さらに、時系列データが扱える • ニューラルネットワークは様々な種類がある • リカレントニューラルネットワーク(RNN)だと時系列を処理しやすい • たとえば、過去の単語列から、次の単語を予測する y1 h1 x1 y2 h2 x2 y4 h4 x4 y3 h3 x3 x h y :入力層 :隠れ層 :出力層 いつ やるの ? 今でしょ やるの ? 今でしょ ・・・ 28
  29. 29. RNNは過去のデータから、現在のデータを推定 h1 x1 h2 x2 y3 h3 x3 いつ やるの ? 今でしょ ①「いつ」②「やるの」③「?」の3単語がこの順に来 ると次に「今でしょ」が推定される • 一つの単語の推定には、過去のすべ ての単語から入力順に計算 • 入力順はすなわち時系列と捉えるこ とができ、これにより文脈を学習 • 他にも金融情報や音声情報など、時 系列の概念があるものはだいたい適 応可能(原則上) • ただし、RNNはあくまで概念であり、 実装するにはLSTMと呼ばれる理論 が重要 29
  30. 30. RNNがあれば完璧? • 残念ながら、まだ不十分 • 確かに単語のみならず、文脈も学習できるようになったが、 結局のところ単語の持つ意味は理解出来ていない • 意味って何?? 30
  31. 31. RNNがあれば完璧? • 残念ながら、まだ不十分 • 確かに単語のみならず、文脈を学習できるようになったが、 結局のところ単語の持つ意味は理解出来ていない • 意味って何?? 31
  32. 32. RNNがあれば完璧? • 残念ながら、まだ不十分 • 確かに単語のみならず、文脈を学習できるようになったが、 結局のところ単語の持つ意味は理解出来ていない •意味って何?? 32
  33. 33. ココらへんが、機械学習の限界かも • 今のところ、機会学習における計算の精度を高める方法はあるが、 意味の表現方法は検討がつかない • どのような構造化がわからない以上、計算のしようがない • 結論、まずは人間(脳)の処理について学ぶべき 33
  34. 34. 意味の解明を求め、数学・脳科学領域へ広がる 数学分野 • トポロジーアナリティクス • ベイジアンネットワーク • 複素ニューラルネット • etc... 34 脳科学分野 • コネクトーム • ニューロサイエンス • 新大脳皮質モデル • etc...
  35. 35. 意味の解明を求め、数学・脳科学領域へ広がる 数学分野 • トポロジーアナリティクス • ベイジアンネットワーク • 複素ニューラルネット • etc... 脳科学分野 • コネクトーム • ニューロサイエンス • 新大脳皮質モデル • etc... 優れたアイディアはたくさん得られたが、なかなか体系立てができない コンピューターで実装できない・・・ 35
  36. 36. 戦いはこれからだ・・・ 36

×