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.

Step by Stepで学ぶ自然言語処理における深層学習の勘所

2,313 views

Published on

数式なしで機械学習から自然言語処理における深層学習、実装したプログラムの説明。さらに実践における注意点と勉強方法についてまとめました。keynoteで作成してPowerPointに出力したので若干ずれています。その点はご容赦ください。

Published in: Engineering
  • Be the first to comment

Step by Stepで学ぶ自然言語処理における深層学習の勘所

  1. 1. Step by Stepで学ぶ自然言語処理における深層学習 の勘所
  2. 2. 自己紹介 大串 正矢 @SnowGushiGit ポート株式会社 Web開発事業部 研究チーム Tech-Circle 運営スタッフ 機械学習/自然言語処理 インフラ自動構築 /並列分散処理 Python 2
  3. 3. Agenda • 機械学習 • 深層学習(ニューラルネットワーク) • 自然言語処理における深層学習 • 勉強方法 3
  4. 4. 機械学習とは 4
  5. 5. 機械学習とは 5 • 人がルールを教えるのではなくデータからルールを学習する方法 人 ルール データ ルール学習
  6. 6. 機械学習の利点と欠点 6
  7. 7. 機械学習の利点と欠点 7 • 利点 • 欠点 速い 24時間動作 分野によっては高精度 データ依存 精度が出せる分野が限られる適切なデータの準備
  8. 8. 機械学習をどこで使うか 8
  9. 9. 機械学習をどこで使うか 9 • 値の予測 • 分類 商品のレコメンド 購入者が好きそうな商品のスコアを計 算しレコメンド 迷惑フィルタ 無限に近いパターンから迷惑メールと そうでないパターンを分類
  10. 10. 機械学習の適用が難しい所 10
  11. 11. 機械学習の適用が難しい所 11 データの用意が難しい分野 法的な問題(プライバシーなど ) 少量のデータしかない 人でも分からない問題ミスが許されない分野
  12. 12. 機械学習の仕組み 12
  13. 13. 機械学習の仕組み 13 特徴を抽出 ・茶色、肌色 ・丸みがある ・etc 学習データ
  14. 14. 学習の仕組み 14
  15. 15. 機械学習の仕組み 15 教師有り学習 教師なし学習 強化学習 特徴 データ 女性 特徴 女性 答え 特徴 女性 特徴 男性 特徴 データ 特徴 特徴 特徴 特徴空間 ゴール 女性の特徴である髪が長 いかなどの特徴を軸とし た空間で行動して女性を 探すように学習させる
  16. 16. どれが良いの??? 16
  17. 17. どれが良いの??? • 結論:教師有り学習:人間と同じで良い教師がいた方が良くなります 。 • 教師なし学習 • データの分析や特徴量の選出に役に立つ • 教師有り学習の前の準備に使用するのがベター • 強化学習 • 特徴量空間の設定とゴールの設定が難しい • 適用分野や適用方法を絞れば効果的 • ゲームなど明確にルールが決まった分野では強力 17
  18. 18. 深層学習の学習方法はどれでしょう ? 18
  19. 19. 深層学習の学習方法はどれでしょう ? 19 教師有り学習 教師なし学習 強化学習 特徴 データ 女性 特徴 女性 答え 特徴 女性 特徴 男性 特徴 データ 特徴 特徴 特徴 特徴空間 女性の特徴である髪が長 いかなどの特徴を軸とし た空間で行動して女性を 探すように学習させる ゴール
  20. 20. 深層学習の適用分野 20 教師有り学習 教師なし学習 強化学習 特徴 データ 女性 特徴 女性 答え 特徴 女性 特徴 男性 特徴 データ 特徴 特徴 特徴 特徴空間 女性の特徴である髪が長 いかなどの特徴を軸とし た空間で行動して女性を 探すように学習させる 全部できるよ ゴール
  21. 21. 深層学習が 効果を発揮している分野 21
  22. 22. 深層学習が 効果を発揮している分野 22 • 画像認識の分野で2位以下に圧倒的な精度の差を出す • 音声認識の分野でも従来手法を上回る精度
  23. 23. なぜ効果を発揮しているか 23
  24. 24. なぜ効果を発揮しているか 24 • 大量の情報から適切な情報を選択して、それを元に学習している 従来手法 人手で特徴量を抽出 ・茶色、肌色 ・丸みがある ・etc 従来の機械学習 深層学習 深層学習 特徴量の抽出から学習まで行う
  25. 25. 非構造化データ 25
  26. 26. 非構造化データ • 非構造化データとは画像、音声、動画、言語など情報の意味づけがされ ていないデータ 画像 音声 Data Base 言語 構造化データ非構造化データ
  27. 27. なぜ効果を発揮しているか 27 • 画像、音声には大量の情報を含んだ情報源がある。 エッジ 部分 猫 ピクセル情報 音素 単語 発話 波形情報 低次 高次
  28. 28. なぜ効果を発揮しているか 28 • 低次の情報から高次への情報へ変換する技術が上手く適用されている。 エッジ 部分 猫 ピクセル情報 音素 単語 発話 波形情報 低次 高次 深層学習
  29. 29. 非構造化データ • 次ページから画像、音声で成果を出した深層学習が言語においてどのよ うな位置づけか述べます。 画像 音声 Data Base 言語 構造化データ非構造化データ
  30. 30. 自然言語処理の概要の説明 30
  31. 31. 自然言語処理の概要の説明 31 • 自然言語(人の話す言葉)をコンピューターで処理させるための技 術 • 主な応用:日本語入力の予測変換、機械翻訳、検索など 予測変換 機械翻訳 検索
  32. 32. 自然言語処理の概要の説明 32 • 自然言語処理の方向性 • 言語の構造を明らかにする • 言語から情報を得ること 対話 検索 分かち書き 構文解析 S NP VP NP Neural networks improv e the accuracy
  33. 33. 自然言語処理における深層学習の位置づけ 33
  34. 34. 自然言語処理における深層学習の位置づけ 34 エッジ 部分 猫 ピクセル情報 音素 単語 発話 波形情報 低次 高次 単語 フレーズ 文表現 深層学習
  35. 35. 自然言語処理における深層学習の位置づけ 35 低次 高次 単語 フレーズ 文表現 I show am me your you … when are 1, 0, 0, 0, 0, 0, … 0, 0I am Shota I show am me your you … when are 0, 0, 1, 0, 0, 0, … 0, 0 I show am me your you … when are 0, 0, 0, 0, 0, 0, … 0, 0 数万語以上あるがほとんどが使用されない データ
  36. 36. 36 単語で数万以上… 表現だと もっと多いのでは
  37. 37. 37 深層学習により 単語の空間を 圧縮して 表現の空間を表します
  38. 38. 自然言語処理における深層学習の位置づけ 38 低次 高次 単語 フレーズ 文表現 0.5, 0.0, 1.0, 1.0, 0.3, 0.0 I am Shota 深層学習により単語の空間を圧縮 深層学習 0.5, 0.0, 1.0, 1.0, 0.0, 0.0 0.5, 0.0, 1.0, 0.5, 0.3, 0.0 データ
  39. 39. 39 自然言語処理における深層学習の位置づけ 圧縮された空間を 分散表現 と呼びます。
  40. 40. 深層学習による自然言語の分散表現 40
  41. 41. 深層学習による自然言語の分散表現 41 I :0 am:0 show:1 me:0 your:0 you:0 : when:0 are:0 I :0 am:0 show:1 me:0 your:0 you:0 : when:0 are:0 中間層 が分散表現
  42. 42. 分散表現の学習方法 42
  43. 43. 分散表現の学習方法 43 • CBOW • 単語を直接予測 • 小規模なデータセットに良い • Skip-gram • 単語から周りの単語を予測 • 大規模なデータセットに使われる 性能が早く高速なのでSkip-Gramが人気
  44. 44. 分散表現の学習方法 44 I :0 am:1 show:0 me:0 your:0 you:0 : when:0 are:0 • CBOW • 例文: I am Ken I :0 am:1 show:0 me:0 your:0 you:0 : when:0 Ken:0
  45. 45. 分散表現の学習方法 45 I :0 am:1 show:0 me:0 your:0 you:0 : when:0 Ken:0 • Skip-Gram • 例文: I am Ken I :1 am:0 show:0 me:0 your:0 you:0 : when:0 Ken:1
  46. 46. 分散表現を行うことが可能な 深層学習のモデル 46
  47. 47. 分散表現を行うことが可能な 深層学習のモデル 47 • Skip-gram(先ほど説明したモデル) • Recurrent Neural Network(実装で使用しているモデル) • Recursive Neural Network
  48. 48. 分散表現を行うことが可能な 深層学習のモデル • Recurrent Neural Network 48 0 0 0 0 1 : 0 出 力 層 例文:Show me your hair your hair隠れ 層 meの時 の 隠れ層 変換行列 過去の値をコピー
  49. 49. 分散表現を行うことが可能な 深層学習のモデル 49 • Skip-gram(先ほど説明したモデル) • Recurrent Neural Network(実装で使用しているモデル) • Recursive Neural Network
  50. 50. 分散表現を行うことが可能な 深層学習のモデル • Recursive Neural Network • 合成ベクトルを単語から再帰的に予測するニューラルネットワークを構 築 50 S Neural 単語ベクトル networks 単語ベクトル improve 単語ベクトル the 単語ベクトル accuracy 単語ベクトル 合成ベクトル 合成ベクトル合成ベクトル
  51. 51. デモに使用したモデル 51
  52. 52. デモに使用したモデル 52 太郎 さん こんにちは こんにちは<EOS>• Recurrent Neural Network(Seq to Seq) • 入力側(Encoder)と出力側(Decoder)それぞれRNNを用意 • Encoderによって入力系列を中間ノードに変換しその情報をもとに Decoderが系列を出力 Encoder Decoder
  53. 53. デモに使用したモデル 53 太郎 さん こんにちは こんにちは<EOS>• Attention Model • 出力ステップで、その時の隠れ層を使い入力側の 隠れ層を加重平均したベクトルを出力で使用 +Encoder Decoder
  54. 54. システム構成 54
  55. 55. System Architecture 55 SQLite 対話破綻 コーパス ファインチューニ ング用学習データ プレトレイン WikiPediaタイ トルデータ 学習 データ取得データ出力 チューニング ボット応答 ユーザーアクション Word Net Wikipedia Entity Vector Word Net Wikipedia Entity Vector
  56. 56. Wikipedia Entity Vector と Word Net を用いた話題選定 56
  57. 57. Wikipedia Entity Vector と Word Net を用いた話題選定 57 彼氏 妹 パパ
  58. 58. Wikipedia Entity Vector と Word Net を用いた話題選定 • Word Netは何?? – 単語に概念を付与してグループ化してくれているデータセット 58 スコティッシュ ホールド クロネコ オレンジネコ ネコ
  59. 59. 59 Wikipedia Entity Vector と Word Net を用いた話題選定 しかし概念数が多い : その数57,238 概念 概念数が多いと データを用意しづらい
  60. 60. 60 Wikipedia Entity Vector と Word Net を用いた話題選定 同じような概念があるはず : それをまとめたい
  61. 61. Wikipedia Entity Vector と Word Net を用いた話題選定 • Wikipedia Entity Vectorは何?? – 単語、および Wikipedia で記事となっているエンティティの分 散表現ベクトル 61
  62. 62. 62 Wikipedia Entity Vector と Word Net を用いた話題選定 概念にベクトルが付与できる : つまり計算が可能に (注意:今回は計算量とメモリ の関係で20万単語のみ使用)
  63. 63. Wikipedia Entity Vector と Word Net を用いた話題選定 63 Word Netと Wikipedia Entity Vector を組み合わせることで 概念クラスを 分散ベクトル化
  64. 64. Wikipedia Entity Vector と Word Net を用いた話題選定 • Word Net とWikipedia Entity Vectorを組み合わせ 1:Word Netの概念クラスをWikipedia Entity Vectorを用いて サマライズ 2: Word Netの未知語をWikipedia Entity Vectorで付与 3:概念クラスの平均ベクトルをWikipedia Entity Vectorで 導出 4:概念クラスをサマライズ 5:概念クラス内の単語の頻度が1000以上だけ残す 64
  65. 65. Wikipedia Entity Vector と Word Net を用いた話題選定 1:Word Netの概念クラスをWikipedia Entity Vectorを用いて サマライズ 65 ネコ:[0.2, 0.3, 0.4…] 犬:[0.3, 0.4, 0.5…] Wikipedia Entity Vector うさぎ:[0.2, 0.5, 0.4…] コ サ イ ン 類 似 度 計 算
  66. 66. Wikipedia Entity Vector と Word Net を用いた話題選定 2: Word Netの未知語をWikipedia Entity Vectorで付与 66 クロネコ 白猫 : 三毛猫 : ネコWikipedia Entity Vector コサイン類似 度 近い 未知語なら 追加
  67. 67. 67 Wikipedia Entity Vector と Word Net を用いた話題選定 各概念に属する単語数が増え ある程度まとまったが : まだ多い
  68. 68. Wikipedia Entity Vector と Word Net を用いた話題選定 3: 概念クラスの平均ベクトルをWikipedia Entity Vectorで導出 68 クロネコ:[0.2, 0.3, 0.4…] 白猫:[0.1, 0.3, 0.…] : ネコ 柴犬:[0.1, 0.3, 0.4…] 土佐犬:[0.1, 0.2, 0.…] : 犬 平均ベクトル 平均ベクトル
  69. 69. Wikipedia Entity Vector と Word Net を用いた話題選定 4: 概念クラスをサマライズ 69 クロネコ:[0.2, 0.3, 0.4…] 白猫:[0.1, 0.3, 0.…] : ネコ 柴犬:[0.1, 0.3, 0.4…] 土佐犬:[0.1, 0.2, 0.…] : 犬 平均ベクトル 平均ベクトル コサイン類似度計算
  70. 70. 70 Wikipedia Entity Vector と Word Net を用いた話題選定 各概念に属する単語数が増え ある程度まとまったが : まだ多い(20000程度)
  71. 71. Wikipedia Entity Vector と Word Net を用いた話題選定 5: 概念クラス内の単語の頻度が1000以上だけ残す 71 クロネコ 白猫 : ネコ 柴犬 土佐犬 : 犬 白鳥 アヒル : トリ コアラ コアラ
  72. 72. 72 Wikipedia Entity Vector と Word Net を用いた話題選定 これで76概念まで減少 : 他は概念を与えないことに 全てのベクトル 使えばもっと良くなるはず・・
  73. 73. Wikipedia Entity Vector と Word Net を用いた話題選定 73 その 服 可愛い どこ で 買ったの? 彼氏 イケメン かっこいい : 妹 可愛い 服 : パパ お金 小遣い : 単語の平均一致 率計算
  74. 74. Attention Modelを用いた 言葉へのフォーカス 74
  75. 75. Attention Modelを用いた 言葉へのフォーカス 75 私 と仕事の どっちが 大事 ? その 服 可愛い どこ で 買ったの? パパ 小遣い 頂戴 彼氏 妹 パパ
  76. 76. デモに使用したモデル 76 太郎 さん こんにちは こんにちは<EOS>• Attention Model +
  77. 77. Attention Modelを用いた 言葉へのフォーカス 77 • Attention Model • 詳しくは下記のスライドで http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention
  78. 78. 深層学習を実際に適用するには 78
  79. 79. 深層学習を実際に適用するには 79 データの用意が難しい分野 法的な問題(プライバシーなど ) 少量の教師データしかない 人でも分からない問題ミスが許されない分野
  80. 80. 深層学習を実際に適用するには 80 データの用意が難しい分野 法的な問題(プライバシーなど ) 人でも分からない問題ミスが許されない分野 少量の教師データしかない
  81. 81. 深層学習を実際に適用するには • データの問題 • 法的な問題 • ・・・ • 少量の教師データしかない問題 • 既にある資源の有効活用 • Wikipedia • WordNet • etc • 転移学習 • 事前に他のデータで学習したモデルの重みを使用 • バイトを雇う。外注(クラウドワークス) • 教師データを作成してもらう。 81
  82. 82. 深層学習を実際に適用するには 82 データの用意が難しい分野 法的な問題(プライバシーなど ) 人でも分からない問題ミスが許されない分野 少量の教師データしかない
  83. 83. 深層学習を実際に適用するには • ミスが許されない分野 • 人と機械学習のハイブリッド • 機械学習で効率化+人で最終チェック 83 +
  84. 84. 深層学習を実際に適用するには 84 データの用意が難しい分野 法的な問題(プライバシーなど ) 人でも分からない問題ミスが許されない分野 少量の教師データしかない
  85. 85. 深層学習を実際に適用するには • 人でも分からない問題 • 哲学的なものは厳しい(人はなぜ生きるのかなど) • フィーリングと勘でやっていて言葉にできない。(営業など) • 難しい・・けどコミュニケーションを取れば何らかの傾向や 細分化できる部分があるはず。その部分のみ解決することは 可能 85
  86. 86. 勉強方法 86
  87. 87. 勉強方法 • 王道 • 時間の使い方を変える • 付き合う人を変える • 環境を変える • 独学コース • 勉強会を主催して、発表することが一番早いと思います!! 87
  88. 88. 勉強方法 • 勉強のための教材 • Coursera • https://www.coursera.org/learn/machine- learning/home/info • Stanford University CNN • http://cs231n.stanford.edu/ 88
  89. 89. Conclusion 89
  90. 90. Conclusion • 機械学習 • 深層学習(ニューラルネットワーク) • 自然言語処理における深層学習 • 勉強方法 • GithubにStarをくれるとやる気が加速します!! – githubを“Chainer Slack Twitter”で検索 90
  91. 91. Reference 91
  92. 92. Reference • Chainerで学習した対話用のボットをSlackで使用+Twitterから学習データを 取得してファインチューニング – http://qiita.com/GushiSnow/items/79ca7deeb976f50126d7 • WordNet – http://nlpwww.nict.go.jp/wn-ja/ • 日本語 Wikipedia エンティティベクトル – http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/ • PAKUTASO – https://www.pakutaso.com/ • A Neural Attention Model for Sentence Summarization – http://www.aclweb.org/anthology/D15-1044 • 猫の画像(10ページ) • http://photobucket.com/images/gif%20pixel%20cat%20kitten%20b lack%20cat%20cute • 構文解析 • http://qiita.com/laco0416/items/b75dc8689cf4f08b21f6 92
  93. 93. Reference • 分かち書き画像 • http://www.dinf.ne.jp/doc/japanese/access/daisy/seminar20090211/s ession1_1.html • 波形の画像(10ページ) • http://www.maroon.dti.ne.jp/koten-kairo/works/fft/intro1.html • Large Scale Visual Recognition Challenge 2012 • http://image-net.org/challenges/LSVRC/2012/results.html • 音声認識技術 - 大規模テキストアーカイブ研究分野 - 京都大学 • http://www.ar.media.kyoto-u.ac.jp/lab/project/paper/KAW- IEICEK15.pdf • iconfinder • https://www.iconfinder.com/search/?q=Program&price=free • Machine learningbootstrap For Business • http://www.slideshare.net/takahirokubo7792/machine- learningbootstrap-for-business • A Neural Attention Model for Sentence Summarization [Rush+2015] (Slide Share) – http://www.slideshare.net/yutakikuchi927/a-neural-attention-model- for-sentence-summarization 93

×