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.

人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share

1,950 views

Published on

2016 年はLINE, FacebookなどがAPIを公開したことでBotの活躍する場がますます増えてきています。決めうちで回答を返したり、各企業が提供しているAPIを 使って対話用のBotを作成することも可能ですが、本スライドではChainerを使用して対話Botを作成してみました。

Twitter
- https://twitter.com/SnowGushiGit
Qiita
- http://qiita.com/GushiSnow/items/79ca7deeb976f50126d7
Youtube
- https://youtu.be/2eGs_Qpt_aQ

Published in: Technology
  • Be the first to comment

人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share

  1. 1. 人工知能の技術で有名なニューラルネットワー クのフレームワークであるChainer を用いた対話Botを使った俺の屍を越えてゆけ July Tech Festa 2016 「IoTxAIxインフラ時代の最 新技術、やってみたSP — 俺の屍を越えて行け — 」 1
  2. 2. 注意 数式は一切出てきません。 厳密に理解したい方は論文を参照すること をお勧めいたします。 2
  3. 3. Agenda : Self Introduction Dialogue Value Character of the Bot System Feature Plan 3 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2
  4. 4. Self Introduction 4
  5. 5. Self Introduction 名前:大串 正矢 @SnowGushiGit ポート株式会社 Web開発事業部 研究開発チーム Tech-Circle 運営スタッフ 機械学習、自然言語処理、クロラー 開発、インフラ自動構築、並列分散 処理、検索機能構築 5
  6. 6. Dialogue Value 6
  7. 7. Agenda 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2 : Self Introduction Dialogue Value How to Dialogue to the Bot System Feature Plan 7
  8. 8. Dialogue Value 対話の価値 連続性 インタラクティブな提案 新たなユーザー体験の提供 8
  9. 9. Dialogue Value 連続性 会話の事前情報が利用 できる 9 最近 テニスに はまってて 対話Bot テニスですか 面白そう ちょうど 知り合いの スポーツ店の店長 がバイト 探してたよ そうそう そういえばバイト 探してるんだけど 良いのない?
  10. 10. Dialogue Value インタラクティブな提案 相手のニーズをヒアリ ングして提案が可能 10 対話Bot 最近、美味しい お菓子見つけた 夏に向けて ダイエット中! ダイエット中な のにそんなこと 言わないで ダイエットにも 良いらしいよ 本当に??
  11. 11. Dialogue Value 新たなユーザー体験の提供 キャラクター性 11 実装したものの動作例
  12. 12. Dialogue Value 対話の価値 連続性 インタラクティブな提案 新たなユーザー体験の提供 12 対話のデータ が必要な領域 データがなくても ある程度カバー可能 最初はこっち
  13. 13. Character of the Bot 13
  14. 14. Agenda 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2 : Self Introduction Dialogue Value Character of the Bot System Feature Plan 14
  15. 15. 突然ですがどちらが高度な回答をしそうですか? 15 Character of the Bot
  16. 16. どちらと話してみたいですか? 16 Character of the Bot
  17. 17. どちらにギャップを感じますか? 17 Character of the Bot 最近、読んだ本は “Statistical Machine Translation” ですね 最近、読んだ本は “Statistical Machine Translation” ですね
  18. 18. Character of the Bot 対話Bot 松屋が個人的に オススメ 良いバイト先 ない? かなり違うかな もっと女性向け のお願い スィーツ店とか ? そんな感じ キャラクター性が重要(フィクションです) 18 とりあえず 飯屋 スィーツ が良さげ 面白そう 太ってるから 仕方ないか 意外に 分かってる じゃん 学習 許容 驚き
  19. 19. Character of the Bot 新たなユーザー体験をもっ と高度にするには 回答に対する期待値を下 げつつ話しかけやすさを 上げる アイコン画像の工夫 Botの発話内容の工夫 19 認知科学の効果 回答に対する期待値:高 い 話しかけやすさ:低い 回答に対する期待値:低 い 話しかけやすさ:高い 気軽に 話しかけて 気軽に 話しかけて こっちについて話します。
  20. 20. Character of the Bot キャラクターごとに文章 を用意するのは高コスト 同じ文章でも微妙に変え る必要がある。 20 お前は食ったパンの数を 覚えているか? あなたは食べたパン の数を 把握されていますか? あなたは食べたパン の数を 覚えているの?
  21. 21. 21 Character of the Bot 多数のシナリオライターが必要
  22. 22. Character of the Bot 内容を変えたくないがキ ャラクター性だけ付与し たい!! 22 お前は食ったパンの数を 覚えているか? あなたは食べたパン の数を 把握されていますか? あなたは食べたパン の数を 覚えているの?
  23. 23. Character of the Bot 23 女性っぽい文章 太い人特有の文章 丁寧な執事っぽい文章 あなたは食べた パンの数を 覚えていますか? キャラクター性 を付与
  24. 24. Character of the Bot NeuralStoryTeller 通常の文章に特徴をつける。下記はロマンチック要素を付与 24 「彼は心の奥で裸の男であっ た。彼が私にキスしようと肩 に寄りかかってきた時、私は 悪態をついた。私が彼のボク サーを履いたら美しいため、 彼は私を締め付けようとした のだ」
  25. 25. 25 Character of the Bot 微妙な表現の変更をニューラルネットに任せる。 キャラクターの文さえあれば色々な文章に適用可能
  26. 26. 26 Character of the Bot 今回は残念ながらここまで実装できませんでした(汗 途中までの実装になります
  27. 27. Agenda 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2 : Self Introduction Dialogue Value Character of the Bot System Feature Plan 27
  28. 28. System 28
  29. 29. System 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2 : システム全体像 対話インターフェースはSlack データはTwitterから取得(事前学習にWikipediaのデータと対話破綻コーパス使用) 話題の選定はWordNetとWikiPedia Entity Vectorを使用 対話モデルの作成はChainerを使用 29 WordNet WikiPediaVector
  30. 30. System 話題の選定 30 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2 : WordNet WikiPediaVector
  31. 31. System 話題の選定 相手によって話す内容が異なる 31 私 と仕事の どっちが 大事 ? その 服 可愛い どこ で 買ったの? パパ 小遣い 頂戴 彼氏 妹 パパ
  32. 32. System 話題の選定 Word Netについて 単語に概念を付与してグループ化してくれているデータセット 32 スコティッシュ ホールド クロネコ オレンジのネコ ネコ
  33. 33. 33 System 概念数が多い。57238概念 データの用意が難しい
  34. 34. 34 System 概念をまとめたい
  35. 35. System まとめ方 概念を距離を測れるような空間に移す 距離が近いものをまとめる 35 ネコ ネコ ネコ トラ
  36. 36. System 概念の距離を測れる空間に移す 36 Facebook Twitter 近い?? 単純な文字列の比較では 概念毎の近さは分からな い 適切な距離を測れる空 間に写像する必要があ る。
  37. 37. System 概念の距離を測れる空間に移す エンティティリンキング キーワードを比較可能な知識の空間へ移す 37 Facebook Twitter 近い?? 知識空間へ Facebook Twitter SNS
  38. 38. System 話題の選定 概念を適切な知識空間に移すには 日本語WikiPedia エンティティベクトルの使用!!! 単語及びWikiPedia(知識)で記事となっているエンティティの分散表現ベクトル (Wikipediaなどのナレッジベースをエンティティと呼ぶ) 38
  39. 39. System 話題の選定 Wiki Pedia Entity Vectorを使用して概念クラスにベクトルを付与 39 ネコ:[0.2, 0.3, 0.4…] 犬:[0.3, 0.4, 0.5…]
  40. 40. 40 System 距離を測りたい
  41. 41. System 概念の距離を測る 41 写像した空間に適した 距離のはかり方を選択 間違うと図のように 近さを間違う 黄色が近そう 水色の方が 近かった
  42. 42. 42 System ベクトル間の近さを測るため、コサイン類似度を使用 (注意:もっと適切な距離の測り方があるかもしれません )
  43. 43. System 話題の選定 概念クラス同士のコサイン類似度を計算してサマライズ 43 ネコ:[0.2, 0.3, 0.4…] 犬:[0.3, 0.4, 0.5…] コサイン類似度計算
  44. 44. 44 System これでもまだ概念数が多い
  45. 45. System 話題の選定 概念が持っている単語が少ないのでWordNetの未知語をWikiPedia Entity Vectorから追加 45 クロネコ 白猫 : 三毛猫 : ネコWikipedia Entity Vector コサイン類似 度 近い 未知語なら追加 Word Net
  46. 46. System 話題の選定 WikiPedia Vectorでベクトルが付与できた単語のベクトルを用いて各概念の平均ベクトルを算出 46 クロネコ:[0.2, 0.3, 0.4…] 白猫:[0.1, 0.3, 0.…] : ネコ 柴犬:[0.1, 0.3, 0.4…] 土佐犬:[0.1, 0.2, 0.…] : 犬 平均ベクトル 平均ベクトル
  47. 47. System 話題の選定 各概念の平均ベクトルを用いてコサイン類似度を計算し、各概念をサマライズ 47 コサイン類似度計算し 基準以上ならまとめる クロネコ:[0.2, 0.3, 0.4…] 白猫:[0.1, 0.3, 0.…] : ネコ 柴犬:[0.1, 0.3, 0.4…] 土佐犬:[0.1, 0.2, 0.…] : 犬 平均ベクトル 平均ベクトル
  48. 48. 48 System これでもまだ概念数が多い(20000概念)
  49. 49. System 話題の選定 各概念が持つ単語の総数が1000以上の概念のみ選択(発話と一致しやすいクラスのみ残すため) 49 クロネコ 白猫 : ネコ 柴犬 土佐犬 : 犬 白鳥 アヒル : トリ コアラ コアラ 選択された概念
  50. 50. 50 System 76概念まで減らせている。 (注意:WikiPedia Entity Vectorを全て使用していない。 計算量を減らす実装に変えれば全て使用できる。)
  51. 51. System 話題の選定 対話の振り分け方法 各概念との一致率を計算して振り分ける 51 その 服 可愛い どこ で 買ったの? 彼氏 イケメン かっこいい : 妹 可愛い 服 : パパ お金 小遣い : 単語の平均一致 率計算
  52. 52. System 内容理解・対話制御・応答文生成 52 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2 : WordNet WikiPediaVector
  53. 53. 53 System ニューラルネットワークで全て対応 (注意:この対応が必ずしも良いとは思っていません。)
  54. 54. 54 System なぜニューラルネットか 自然言語処理における深層学習の位置づけが関連しま す。
  55. 55. Dialogue Value ニューラルネットの価値 表現力 連続性 フォーカス 55
  56. 56. Dialogue Value ニューラルネットの価値 表現力 連続性 フォーカス 56
  57. 57. 57 System 自然言語をベクトル空間へ移すとき Bag of Wordsを使用 (辞書を用意して単語が観測された回数カウント) 低次 高次 単語 フレーズ 文表現 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 数万語以上あるがほとんどが使用されない データ
  58. 58. 58 System 単純に単語のみしか考慮していない。
  59. 59. 59 System ニューラルネットを使用すると単語のみでなく周囲の 単語も考慮した空間にWord2vec により移せる 低次 高次 単語 フレーズ 文表現 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 データ
  60. 60. Dialogue Value ニューラルネットの価値 表現力 連続性 フォーカス 60
  61. 61. 61 System 太郎 さん こんにちは 発話は文章の連続性が重要 ニューラルネットはRecurrent Neural Networkにより、 その考慮も可能
  62. 62. Dialogue Value ニューラルネットの価値 表現力 連続性 フォーカス 62
  63. 63. 63 System + 太郎 さん こんにちは 発話中の重要な単語へのフォーカスが重要 ニューラルネットはAttention Modelにより、 その考慮も可能
  64. 64. System 発話内容の生成 表現力 連続性 フォーカス 64 私 と仕事の どっちが 大事 ? その 服 可愛い どこ で 買ったの? パパ 小遣い 頂戴 彼氏 妹 パパ
  65. 65. 65 System ニューラルネットワークでどのように実現するか
  66. 66. 66 System 今回、使ったモデルです。 次ページから細かく解説していきます。 太郎 さん こんにちは こんにちは<EOS> +Encoder Decoder
  67. 67. 67 System 発話内容をニューラルネットの空間に移します。 中間層がニューラルネットの空間を表します。 太郎 さん こんにちは 太郎:1 さん:0 こんにちは:0 : 太郎:1 さん:0 こんにちは:0 :
  68. 68. 68 System 発話の連続性を学習します。 0 0 0 0 1 : 0 出 力 層 さん こんにちは隠れ 層 太郎の時 の 隠れ層 変換行列 過去の値をコピー 太郎 さん こんにちは
  69. 69. 69 System 逆方向も学習します。 重要な単語が最初に出ても対応するため 太郎 さん こんにちは
  70. 70. 70 System 順方向と逆方向の情報を集約します。 発話部分の情報を集約します。 + Encoder 太郎 さん こんにちは
  71. 71. 71 System 集約された情報を元に対応する発話を作成 太郎 さん こんにちは +Encoder こんにちは Decoder
  72. 72. 72 System 発話文の作成部分で連続性を考慮 太郎 さん こんにちは こんにちは<EOS> +Encoder Decoder
  73. 73. 73 System このモデルの良いところ 表現力 連続性 フォーカス
  74. 74. 74 System お待たせしました。デモです!! https://youtu.be/2eGs_Qpt_aQ
  75. 75. Agenda Self Introduction Dialogue Value Character of the Bot System Feature Plan 75 : 対話Bot 話題の選定 内容理解 対話制御 応答文生成 応答文候補 ニューラルネットワーク1 内容理解 対話制御 応答文生成 ニューラルネットワーク2
  76. 76. Feature Plan 76
  77. 77. Feature Plan テスト環境の充実 テストコードが揃っていない 評価 F measureなどで定量評価できていない Chainerの最新バージョン(v11.0)への対応 Trainerが良いらしい 概念クラスの距離の選定(コサイン類似度以外にKL距離など) ニューラルネットで処理するか決めうちの文章で処理するか分類する前処理の実装 NeuralStoryTellerの実装 キャラクター性の付与 検索機能の付与(Q & A対応) 77
  78. 78. Conclusion Word Netは概念を表したデータセット 上位概念を表せるデータがあればそれで代替可能 Wikipedia Entity Vectorはベクトル付与に使用 ベクトルの付与に使用。独自のデータセットを使用してWord2Vecを作 成してベクトル付与しても良い ニューラルネットで全て対話を対応する必要はない ルールとのハイブリッド githubで探して“Chainer Slack Twitter”で検索 Starをくれるとやる気が増します!! 78
  79. 79. Conclusion エンジニア募集中 https://www.theport.jp/recruit/information/ 79
  80. 80. 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/ • Luong, Minh-Thang, Hieu Pham, and Christopher D. Manning. "Effective approaches to attention-based neural machine translation." arXiv preprint arXiv:1508.04025 (2015). • Rush, Alexander M., Sumit Chopra, and Jason Weston. "A neural attention model for abstractive sentence summarization." arXiv preprint arXiv:1509.00685 (2015). • Tech Circle #15 Possibility Of BOT • http://www.slideshare.net/takahirokubo7792/tech-circle-15-possibility-of-bot • Generating Stories about Images • https://medium.com/@samim/generating-stories-about-images-d163ba41e4ed#.h80qhbd54 • 二つの文字列の類似度 • http://d.hatena.ne.jp/ktr_skmt/20111214/1323835913 • 構文解析 • http://qiita.com/laco0416/items/b75dc8689cf4f08b21f6 80

×