いきなりまとめ
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 件のコメント:
コメントを投稿