2017/06/15

Dual Encoderによる自動応答システム(Chatbot)

いきなりまとめ


Dual Encoder LSTM networkの概要
  • 2つのLSTMレイヤー
  • 会話文と応答をそれぞれのレイヤーに入力
  • 会話側のLSTMレイヤーのstateより応答側のLSTMレイヤーのstateを予測 
  • 両者の類似度から応答分の正答確率を出力

Dual Encoder LSTM networkのパフォーマンス
  • recall@1ではベースラインモデルと同程度
  • recall@2,@5ではDual Encoderが勝っていた


Today I Learned


Deep Learning for Chatbots, Part 2 – Implementing a Retrieval-Based Model in Tensorflow
を参考に。


Dual Encoder LSTM networkによるRetrieval-based-modelの実装例。


データセット


ubuntu Dialog Corpusを使用。
トレーニングには会話文、応答分、応答分の正誤ラベル。
テストには会話文、応答分、9つの誤った応答分。


モデル構造


embedding+LSTMレイヤーを2つ用意。
会話文と応答分をそれぞれのレイヤーに入力。
会話文側のレイヤーから出力されるfinal stateを用いて、
応答分側のレイヤーから出力されるfinall stateを予測する。
両者のdot productより類似度を算出し、
sigmoidアクティベーションで応答分の正答確率を出力する。
loss functionにはcross entropyを使用する。


モデルの評価


テストデータに対するリコール@1,2,5で評価。
ベースラインモデルとしてランダムモデル、tf-idfモデル。
ランダムモデル:0.09, 0.19, 0.49
tf-idfモデル:0.49, 0.59, 0.76
Dual-Encoder:0.50, 0.68, 0.91%
リコール@2,5でDual-Encoderのパフォーマンスが大幅に上回った。

0 件のコメント:

コメントを投稿

Relation Netowrksの概要

いきなりまとめ Relation Netowrksとは関係性の推論を行えるニューラルネット。 画像や音声の単純な認識ではなく、複雑な思考が可能。 例えば、 グレーの物体から最も離れている物体の形は何か? ボールは今何処にあるか? ランダムに動くボール群のどれが...