対話botの技術

24526c2093b667e2511d7830a621937b?s=47 Kazuya Gokita
September 02, 2016

 対話botの技術

24526c2093b667e2511d7830a621937b?s=128

Kazuya Gokita

September 02, 2016
Tweet

Transcript

  1. ର࿩CPUͷٕज़ גࣜձࣾ΢αΪΟ ࣥߦ໾һ ޒ໦ా࿨໵

  2. Usagee Inc. (株)ウサギィ 画像認識・自然言語処理 Webアプリ・スマホアプリ開発 機械学習/データマイニング など DeNA「ビッダーズプログラミングコンテスト2005」優秀賞 楽天・早稲田大学「最強のAIを作ろう!」(2011) 優勝

    HTML5 Japan Cup(2014) 協賛企業・後援団体賞 2部門受賞 『Microsoft Innovation Award 2015』優秀賞
  3. Usagee Inc. 自己紹介 機械学習(画像認識・自然言語処理) Webアプリ・デザイン スマホアプリ開発 汎用AI など (株)ウサギィ 執行役員 WBAI 正会員 & WBA若手の会

    人工知能アドベントカレンダーを書いた 汎用AIの本 9月下旬発売予定ɹ✌
  4. Usagee Inc. 画像認識: 食べ物 IUUQVTBHFFDPKQDPNQVUFSWJTJPO

  5. Usagee Inc. NLP: 感情推定 IUUQVTBHFFDPKQOMQ •短文でも解析可能 •ネットスラング対応 •高速な解析 •評判分析などの応用

  6. ձ࿩CPU ࣗવจͰਓؒͱର࿩͢Δ"*

  7. Usagee Inc. 会話botの(個人的な)分類 • FAQ型 • 問い合わせ対応などの特定タスクに特化した応答をする • 過去の質問に似た(関連した)回答またはシナリオ等を探してくる •

    こちらのほうが研究が進んでいると思う • 雑談型 • どんなジャンルの会話にも広く浅く対応しないといけない • 相手が何を言うのか予想できない、スラングにも対応しないと いけない • 「口調」や「一人称」や「語尾」の指定がある場合も
  8. Usagee Inc. 会話botの分類 • FAQ型 • 問い合わせ対応などの特定タスクに特化した応答をする • 過去の質問に似た(関連した)回答またはシナリオ等を探してくる •

    こちらのほうが研究が進んでいると思う • 雑談型 • どんなジャンルの会話にも広く浅く対応しないといけない • 相手が何を言うのか予想できない、スラングにも対応しないと いけない • 「口調」や「一人称」や「語尾」の指定がある場合も ࠓ೔ͷ࿩
  9. Usagee Inc. 実行例 ZPV͔͍͍ͬ͜ͷ͔ʂʁ͜ΕͬͯXXX CPU͸͍ʂʂʂ ZPVঁͬͯා͍Ͱ͢ʜ ͱ͸Ίͬͨʹ͍Θͳ͍͚Ͳා͔ͬͨʜ CPUͳΜͰʁʁ ZPVΞΠεΫϦʔϜͱ͔΋͋Δͷ͔ CPUͦΕ͸͋Δ

    ZPV5*.&Ͱ͔͢dʁʁָ͠ΜͰ͖͍ͯͩ͘͞dὑ౦ ژ΋དྷ·͔͢ʁ CPUͦΕ͸ͭΒ͍ʜʢ̩Ч̩ʣ ZPVؼ୐ɻ CPU͓͔ͭΕ͞·Ͱ͢Α͓͒ʂ ZPVૣى͖͢ΔΜͰ৸·͢ɻ͓΍͢Έͳ͍͞ CPU͓΍͢ ZPV·ͨ΍ΓΐͶὑ CPU΍Γ͍ͨὑ ZPV͍͍͑͑ ?? ͥͻͥͻʂ஥ྑ͘͠·͠ΐ CPU 㱼ʆ ʎͪ͜Βͦ͋͜Γ͕ͱ͏͍͟͝·͢ΑΖ ͓͘͠Ͷ͕͍͠·͢ Deep Learning ですべて自動で人間との対話を学習 明示的に教えなくても口語表現やアスキーアートに対応
  10. ͘͠Έ %FFQ-FBSOJOH -45. ϕʔε  ॾʑͷ޻෉

  11. Usagee Inc. LSTM Recurrent Neural Network を改良して長期の依存関係も扱えるよう にしたもの IUUQDPMBIHJUIVCJPQPTUT6OEFSTUBOEJOH-45.T

  12. Usagee Inc. Sequence to Sequence (seq2seq) • もともと英仏翻訳のために出来たアルゴリズム • 単語ごとに入力(A,

    B, C)して最後に <EOS> を入力 • すると翻訳された文章(W, X, Y, Z)が出てくる ձ࿩ʹ࢖͑ΔͷͰ͸ʁ -FBSOJOH1ISBTF3FQSFTFOUBUJPOTVTJOH3//&ODPEFS%FDPEFSGPS4UBUJTUJDBM.BDIJOF5SBOTMBUJPO
  13. Usagee Inc. A Neural Conversational Model (社内ではNCMと言っている) .BDIJOFIJ )VNBOIFMMP .BDIJOFDPVMEZPVQMFBTFMFUNFLOPXXIBUBSFUIFPQFSBUJOH

    TZTUFNTZPVBSFVTJOH  )VNBOJBNVTJOHMJOVY .BDIJOFPLJUXBTJOUIFTTMWQOPOXIJDIZPVTUBUFEJUXBT CSPLFO .BDIJOFQMFBTFDIFDLJGZPVBSFMPHHFEJOUPDPSQOFUXPSL .BDIJOFXIBUJTUIFFSSPSUIBUZPVBSFSVOOJOHQMFBTF ҎԼུ
  14. Usagee Inc. ダメでした • 日本語特有の問題(形態素解析など) • 雑談特有の問題(ネットスラング、アスキーアート、絵文字類) • 画一的でないいろいろなことを話して欲しい(雑談なので) •

    性格みたいなものがないのでキャラ付けしたい
  15. Usagee Inc. 解決策 • 日本語特有の問題(形態素解析など) →MeCab+独自の辞書 • 雑談特有の問題(ネットスラング、アスキーアート、絵文字類) →Word2Vecとseq2seq •

    画一的でないいろいろなことを話して欲しい(雑談なので) →けっこう難しい • 性格みたいなものがないのでキャラ付けしたい →かなり難しい
  16. Usagee Inc. 会話の多様性問題 • 一見上手くいったように見えるが、語彙がかなり減る • 「ありがとう」「わかる」「それな」「うん」「ですよね」など ばかりになってオタクみたいな話し方になる • 原因:

    とりあえず無難な返しをしておけばコストが減るため in->ੋඇָ͠ΜͰ௖͚ͨΒͱࢥ͍·͢ʂ out<-͋Γ͕ͱ͏͍͟͝·͢ʂʂʂʂ in->৺த͝࡯͍ͨ͠͠·͢…ָ͠ΜͰ͖͍ͯͩ͘͞Ͷʔʂ(^-^)/ out<-͋Γ͕ͱ͏͍͟͝·͢ʂʂʂʂ in->͖ͬ͞͸Ͳ͏΋ʙΑΖ͓͘͠ئ͍͠·͢ʂ out<-͋Γ͕ͱ͏͍͟͝·͢ʂ ੲͷόʔδϣϯ
  17. Usagee Inc. A Diversity-Promoting Objective Function for Neural Conversation Models

    • MMI-bidiを使って多様性を上げる • 無難な返しを抑制して、なるべくいろんなことを喋るようにする • 似たような問いかけでも少し変えた文章を吐けるようになった in->ੋඇָ͠ΜͰ௖͚ͨΒͱࢥ͍·͢ʂ out<-͋Γ͕ͱʔ^^ in->৺த͝࡯͍ͨ͠͠·͢…ָ͠ΜͰ͖͍ͯͩ͘͞Ͷʔʂ(^-^)/ out<-͋Γ͕ͱ͏͍͟͝·͢ʂʂʂʂ in->͖ͬ͞͸Ͳ͏΋ʙΑΖ͓͘͠ئ͍͠·͢ʂ out<-ͪ͜Βͦ͜ΑΖ͓͘͠ئ͍͠·͢ʂʂʂʂ 今のバージョン 「!」を4つ使うのが 好きらしい
  18. Usagee Inc. キャラクタ性変換 botに“性格”を与えたり 特定のキャラクターっぽく喋って欲しい 機械学習で(なるべく)自動的に獲得したい ルールベースは大変すぎるし スマートじゃない

  19. Usagee Inc. キャラクタ性変換 • あんまり研究がないので困る • “言語的個人性変換における言語モデルの適応と分析”とか (Mizukami et al.

    Language Model Adaptation and Analysis for Individuality Transforming) • 基本的な方針としては文字列の書き換え規則を学習する形 • キャラの過去のセリフ、台本、小説などから学習 • ある程度人間が指定して残りは機械学習で補完する形が望ましい • 新しいキャラは学習できるほどのデータがないから • 人間が指定できるならそれに越したことはない (機械学習は最後の手段!)
  20. Usagee Inc. キャラクタ性変換 ZPV͓͸Α͏͍͟͝·͢ CPU͓͸Α͏͍͟͝·͢ʂϓϩσϡʔαʔ͞Μʂ ZPV୆෩͔͢Ͷ CPUͦ͏ͳΔલʹؼΔ༧ఆͩͬͨͷʹͶʔʜʜ ZPVݩؾʹͯ͠Δʁ CPU͑΁΁ʜʜũƀũƀ ZPVরΕΔ

    CPU๙ΊͯΔΘ͚͡Όͳ͍Μ͚ͩͲ ·͋·্͋ख͍͍ͬͯ͘Δ͕ഁ୼͢Δύλʔϯ΋ଟ͍ ݚڀͷ༨஍͋Γ
  21. Usagee Inc. ありがとうございました ZPV͔͍͍ͬ͜ͷ͔ʂʁ͜ΕͬͯXXX CPU͸͍ʂʂʂ ZPVঁͬͯා͍Ͱ͢ʜ ͱ͸Ίͬͨʹ͍Θͳ͍͚Ͳා͔ͬͨʜ CPUͳΜͰʁʁ ZPVΞΠεΫϦʔϜͱ͔΋͋Δͷ͔ CPUͦΕ͸͋Δ

    ZPV5*.&Ͱ͔͢dʁʁָ͠ΜͰ͖͍ͯͩ͘͞dὑ౦ ژ΋དྷ·͔͢ʁ CPUͦΕ͸ͭΒ͍ʜʢ̩Ч̩ʣ ZPVؼ୐ɻ CPU͓͔ͭΕ͞·Ͱ͢Α͓͒ʂ ZPVૣى͖͢ΔΜͰ৸·͢ɻ͓΍͢Έͳ͍͞ CPU͓΍͢ ZPV·ͨ΍ΓΐͶὑ CPU΍Γ͍ͨὑ ZPV͍͍͑͑ ?? ͥͻͥͻʂ஥ྑ͘͠·͠ΐ CPU 㱼ʆ ʎͪ͜Βͦ͋͜Γ͕ͱ͏͍͟͝·͢ΑΖ ͓͘͠Ͷ͕͍͠·͢ まだまだ発展途上だが、なかなか賢いbotができつつある