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.
Copyright © 2016 TIS Inc. All rights reserved.
Neural Conversational Modelを用いた
対話と破綻の同時学習
戦略技術センター
久保隆宏
2
Agenda
• おさらい・対話破綻検出チャレンジについて
• アプローチ方針
• 基本モデル
• 提案モデル
• 実験設計
• 実験結果
• 考察
• 今後に向けて
• Appendix:モデルの墓場
3
おさらい:対話破綻検出チャレンジについて
ある対話の中で、システム発話が対話の破綻を引き起こすかを検出する。
具体的には、以下2つのタスクを行う。
破綻ラベルの推定
システム発話について、以下のラ
ベルを予測する。
○:破綻ではない
△:破...
4
アプローチ方針
最終的なゴールは、対話システムを作ること。
そのため、発話文の生成とその破綻度合いの推定は、統一的な仕組みの上で
考えたい。
※もちろん、発話候補を複数生成して、様々な判定機でスコアリングすると
いう考え方もある。
発話文生...
5
基本モデル
背景より、発話生成に向いたNeural Conversational Model(以下、NCM)を
基本としたモデルを検討した。前回の対話破綻検出チャレンジ(2015)にて、
NCMと同等のSeq2Seqを基にした以下の提案が行...
6
提案モデル(1/3)
最終的なモデルは以下のような構成とした。
7
提案モデル(2/3)
システム発話末尾に破綻ラベルを付与し、「こ
の対話が破綻していたかどうか」まで含めて学
習を行う。
これにより、以下のようなメリットが得られる。
破綻した対話データの有効活用
対話破綻検出チャレンジで提供されるデータは...
8
提案モデル(3/3)
モデルの実装
実装にはTensorFlowを利用
軽い気持ちで触る
と火傷するぜ!
慣れの問題もありますが、命が惜しかったらChainerかKerasを使った方がい
いと思います(少なくとも簡潔に書ける類の代物ではない...
9
実験
構築したモデルは、学習済み
モデルと共にGitHubで公開
しています。
10
実験設計
検証パターン
以下のパターンを検証
・特徴量
Encoder/Decoderのstateを利用したもの(run1)、Decoderのstateと出
力を用いたもの(run2)を検証
・△を予測する/しない
△の存在意義がかなり微...
11
実験結果(1/3) 特徴量:
Encoder/Decoder
state
特徴量: Decoder
state/output
△予測しない版
12
実験結果(2/3)
フォーマルランの結果
13
実験結果(3/3)
・破綻ラベルの推定
基本的に低Precision/高Recallなモデル
Precisionについても昨年度平均0.363をクリア
・破綻ラベルの分布の推定
JS divergence (○, △, ×)は0.1近辺と...
14
考察(1/3)
△を予測しない効果について
あまり大きな効果は見られなかった。データとして与えられている以上、
省略する意味はあまりないのかもしれない。
分散表現の効果について
あまり大きな効果はないどころか、若干悪化した。
×を○に勘違...
15
考察(2/3)
分散表現の効果について
分散表現で、似ている表現を検知できることが逆にあだとなったのでは
ないかと、推察している(意味的に適合しているが、文法的・応答文的に
破綻しているケースの検知が苦手?)。
検知に失敗した例(×⇒○)...
16
考察(3/3)
対話システム間の違いについて
今回はDCM/DIT/IRSという3つの対話システムがあり、そのそれぞれに
ついて評価を行った。ただ、対話システム間で結果に取り立てて大きな
差異はなかった。
しいて言えばDITが一番よく、F...
17
今後に向けて
モデルの改善の方向性
ベースライン研究、また今回の研究により、RNNのstateが対話コンテキ
ストの判定に有用な性質を持つことは推察できる。分散表現があまり効
果がなかった点とその分析を考慮すると、単語よりはより文脈的な特...
18
Appendix
19
モデルの墓場(1/3)
通常RNNモデル
単純にユーザー発話とシステム発話を結合
したものをRNNで処理するというもの。
精度が出ず、やはりユーザー用とシステム
用は分ける必要があるという結論に至る。
20
モデルの墓場(2/3)
再翻訳モデル
ユーザー発話→システム発話→ユーザー発
話というように再翻訳のようなことを行い、
その結果と元のユーザー発話を比較すると
いう案(破綻していなければ双方が近しい
はずという理屈)。ただ、「近さ」を比較...
21
モデルの墓場(3/3)
Multiresolutionモデル
Multiresolution Recurrent Neural
Networks: An Application to Dialogue
Response Generatio...
対話破綻検出チャレンジ2016: NCMを用いた対話と破綻の同時学習
Upcoming SlideShare
Loading in …5
×

対話破綻検出チャレンジ2016: NCMを用いた対話と破綻の同時学習

2,702 views

Published on

発話の生成と破綻検知を行う仕組みを統合し、破綻検知にチャレンジ

Published in: Data & Analytics
  • Be the first to comment

対話破綻検出チャレンジ2016: NCMを用いた対話と破綻の同時学習

  1. 1. Copyright © 2016 TIS Inc. All rights reserved. Neural Conversational Modelを用いた 対話と破綻の同時学習 戦略技術センター 久保隆宏
  2. 2. 2 Agenda • おさらい・対話破綻検出チャレンジについて • アプローチ方針 • 基本モデル • 提案モデル • 実験設計 • 実験結果 • 考察 • 今後に向けて • Appendix:モデルの墓場
  3. 3. 3 おさらい:対話破綻検出チャレンジについて ある対話の中で、システム発話が対話の破綻を引き起こすかを検出する。 具体的には、以下2つのタスクを行う。 破綻ラベルの推定 システム発話について、以下のラ ベルを予測する。 ○:破綻ではない △:破綻とは言い切れないが、違 和感がある ×:明らかにおかしい 破綻ラベルの分布の推定 アノテーターが付けた、○△×の 分布を正しく推定で来ているか。 ○ △ × ラベルの一致で 評価 分布距離で評価 参考:対話破綻検出チャレンジ2 [東中+ 2016]
  4. 4. 4 アプローチ方針 最終的なゴールは、対話システムを作ること。 そのため、発話文の生成とその破綻度合いの推定は、統一的な仕組みの上で 考えたい。 ※もちろん、発話候補を複数生成して、様々な判定機でスコアリングすると いう考え方もある。 発話文生成 対話破綻検知器 発話文生成 対話破綻検知器 発話生成に破綻 検知を活かす シナジーが生ま れにくい
  5. 5. 5 基本モデル 背景より、発話生成に向いたNeural Conversational Model(以下、NCM)を 基本としたモデルを検討した。前回の対話破綻検出チャレンジ(2015)にて、 NCMと同等のSeq2Seqを基にした以下の提案が行われていたため、今回はそ のアプローチをベースラインとした。 再帰型ニューラルネットワークを用いた対話破綻検出と言語モデルのマルチ タスク学習 [小林+ 2015] ・ユーザー発話後 ・システム発話後 双方の内部状態を基に特徴 量を作成し、破綻ラベルを 分類する 小林らの提案モデルの概略
  6. 6. 6 提案モデル(1/3) 最終的なモデルは以下のような構成とした。
  7. 7. 7 提案モデル(2/3) システム発話末尾に破綻ラベルを付与し、「こ の対話が破綻していたかどうか」まで含めて学 習を行う。 これにより、以下のようなメリットが得られる。 破綻した対話データの有効活用 対話破綻検出チャレンジで提供されるデータは破綻した対話を含んでおり、 これをNCMの学習に利用するのは好ましくない(そのため、通常は学習のた めに別途の「正しい対話」データセットが必要)。しかし、「破綻していた かどうか」を付与することで、破綻している対話は破綻の例として、そう でない対話は正例として学習することができる。 学習データの生成 破綻のラベルは、アノテーターの分布に基づき確率的に付与する。これに より、一つの対話データから(分布に基づく)異なるラベルの付いた複数の学 習データを生成することができる。 別途の対話データ の収集は大変 少ない学習データ を最大限活用
  8. 8. 8 提案モデル(3/3) モデルの実装 実装にはTensorFlowを利用 軽い気持ちで触る と火傷するぜ! 慣れの問題もありますが、命が惜しかったらChainerかKerasを使った方がい いと思います(少なくとも簡潔に書ける類の代物ではない)。 ※TensorFlowも含め、機械学習フレームワークで実装を行うに当たっての注 意点についてはこちらにまとめています。
  9. 9. 9 実験 構築したモデルは、学習済み モデルと共にGitHubで公開 しています。
  10. 10. 10 実験設計 検証パターン 以下のパターンを検証 ・特徴量 Encoder/Decoderのstateを利用したもの(run1)、Decoderのstateと出 力を用いたもの(run2)を検証 ・△を予測する/しない △の存在意義がかなり微妙だったので、○×の二値にして確率が微妙な場 合(閾値で設定)△にする ・入力に分散表現を利用する/しない 通常の単語(単語ID)ではなく、分散表現を利用する。これにより、単語 表現を事前学習したような効果を狙った。分散表現の作成にはFacebook のfastTextを用い、データとしては日本語Wikipediaのダンプを利用した。 学習が高速で、扱いも簡単な のでお勧め
  11. 11. 11 実験結果(1/3) 特徴量: Encoder/Decoder state 特徴量: Decoder state/output △予測しない版
  12. 12. 12 実験結果(2/3) フォーマルランの結果
  13. 13. 13 実験結果(3/3) ・破綻ラベルの推定 基本的に低Precision/高Recallなモデル Precisionについても昨年度平均0.363をクリア ・破綻ラベルの分布の推定 JS divergence (○, △, ×)は0.1近辺とかなり小さい値 Mean Squared Errorも0.06~7とかなり小さい 分布の推定については、かなりうまくできている印象を受ける ベースラインのモデルでは30万件の対話データを別途用意していたので、そ れがなくとも学習方法の工夫で同程度のモデルを構築できることを示せた。 ベースラインのモデルとは性質が異なるものの(ベースラインは高Precision、 低Recall)、総合指標であるF値で上回る(F(X)で0.14 vs 0.511) ベースラインのモデルと同程度の性能(JS divergence/MSE)
  14. 14. 14 考察(1/3) △を予測しない効果について あまり大きな効果は見られなかった。データとして与えられている以上、 省略する意味はあまりないのかもしれない。 分散表現の効果について あまり大きな効果はないどころか、若干悪化した。 ×を○に勘違いするケース が増えている(Tの勘違いは あり得る話なので除外)
  15. 15. 15 考察(2/3) 分散表現の効果について 分散表現で、似ている表現を検知できることが逆にあだとなったのでは ないかと、推察している(意味的に適合しているが、文法的・応答文的に 破綻しているケースの検知が苦手?)。 検知に失敗した例(×⇒○)。こうした同じ意 味の単語の出現は○の会話で多いが、文法的 な破綻により×になるケースもある。
  16. 16. 16 考察(3/3) 対話システム間の違いについて 今回はDCM/DIT/IRSという3つの対話システムがあり、そのそれぞれに ついて評価を行った。ただ、対話システム間で結果に取り立てて大きな 差異はなかった。 しいて言えばDITが一番よく、F-measure(X)が0.68、F- measure(T+X)は0.91という高い値。データ的には、DITは時事ニュー スも絡めた長めの発言がおおい印象がある。その影響なのか、ラベルの 分布によるものなのかは不明。
  17. 17. 17 今後に向けて モデルの改善の方向性 ベースライン研究、また今回の研究により、RNNのstateが対話コンテキ ストの判定に有用な性質を持つことは推察できる。分散表現があまり効 果がなかった点とその分析を考慮すると、単語よりはより文脈的な特徴 量(対話行為タイプ的なものや、発話のモダリティ(肯定・否定)など)が重 要なのではないかと考えられる。 対話破綻チャレンジについて 現在の破綻は文法起因なものも多く、破綻の範囲が広すぎる印象を受け る。最終的な破綻検知の活用を考えると、現状では「×」となってもシス テムがどうしたらいいかわからないため、「どういう修復が必要」とい うのが分かる程度に細かくする必要があると考えている。 ⇒雑談対話では破綻の定義が広くまた定義が難しいので、もっと限定さ れた分野(タスク指向対話)にするのもあり? あと、スケジュールがタイトすぎたと思います(開発データの到着が8月 末、提出は9月上旬)。
  18. 18. 18 Appendix
  19. 19. 19 モデルの墓場(1/3) 通常RNNモデル 単純にユーザー発話とシステム発話を結合 したものをRNNで処理するというもの。 精度が出ず、やはりユーザー用とシステム 用は分ける必要があるという結論に至る。
  20. 20. 20 モデルの墓場(2/3) 再翻訳モデル ユーザー発話→システム発話→ユーザー発 話というように再翻訳のようなことを行い、 その結果と元のユーザー発話を比較すると いう案(破綻していなければ双方が近しい はずという理屈)。ただ、「近さ」を比較 する良い方法がなく断念。
  21. 21. 21 モデルの墓場(3/3) Multiresolutionモデル Multiresolution Recurrent Neural Networks: An Application to Dialogue Response Generationを基にしたモデル。 余裕があれば試してみたかったが、余裕は 全くなかったため到達できずに見送りと なった。

×