Skip to content

A Deep Reinforcement Learning Chatbot

Higepon Taro Minowa edited this page Apr 14, 2018 · 19 revisions

Abstract

  • Amazon Alexa Prize competition で MILABOT を deep reinforcement learning で開発した。
  • よくある small talk topi に対応していて人と会話できる
  • bot は
    • natural language generation model と retrieval model を組み合わせてつくられている
    • template-based model, bag-of-words model, seq2seq, latent variable などなど。
  • crowd source と実際のユーザーとのやりとりで、複数のモデルから適切な response を選ぶように reinforcement learning で train した。

1.Introduction

2 System Overview

  • rule base は限界があるのでほぼ全て Statistical machine learning にした。
  • 全てのコンポーネントが独立して大量データを使って ML で training された
  • dialogue manager
    • モデルたちから reponse 候補をもらう
    • priority response があったら即返す (what's your name?)
    • なかったら selection policy で選ぶ

3 Response Models

  • 22 個のレスポンスモデルを内包している
  • retrieval-based
  • generation
  • knowledge base
  • template base

3.1 Template-based Models

[1]. Alicebot
  • AIML テンプレートに記述されたレスポンス(会話履歴)からレスポンスを出す
  • www.alicebot.org
  • priority response ではない
  • トレーニング
[2]. Elizabot
  • string match base template bot
  • Rogerian psychotherapis システムをまねしたもの
[3]. Initiatorbot
  • 会話を始める starter として使う - 40個のopen questions を用意
  • 例: What did you do today?
  • interesting fact で会話を始めることも
  • 過去2ターンですでに起動しているかも確認
[4]. Storybot
  • ユーザーが say/tell というとトリガーされる
  • 唯一の会話形ではないボット

3.2 Knowledge Base-based Question Answering

[5].Evibot
  • www.evi.com
  • Amazon の Q/A web service
  • direct question に関しては priority response となる
  • evibot に投げる。失敗したら NLTK named entity processor を使ってサブクエリがあるか調べる
[6]. BoWMovies
  • template-based
  • movie bot: あらすじ。公開年などのデータ持ってる
  • string matching で映画タイトルなどをユーザーのクエリの中で探す
  • matching に word embeddingも使ってる

3.3 Retrieval-based Neural Networks

[7, 8, 9, 10]. VHRED models
  • いくつかの VHRED model がある。VHRED は seq2seq with Gaussian latent variables (論文あり)
  • レスポンス生成の方法
    • K個のレスポンス候補が、「現時点の会話ヒストリ」と「dataset にある会話ヒストリ」の cosine similarity で得られる。(bag-of-words TF-IDF Glove word embeddingsを使う)
    • その 20(K?)個のレスポンスの log-likelifood を VHRED で計算して一番高いやつを return する
  • 4つの VHRD モデルが有る。reddit から scrape してる
11. SkipThought Vector Models
  • BookCorpus でトレーニングしたSkipThought Vector model
  • amazon prize の rule で宗教や政治のトピックに関して意見を言ってはいけないというものがあった
  • それに対応するもの
[12, 13] Dual Encoder Models
  • DualEncoderRedditPolitics and DualEncoderRedditNews
  • ENC_Q と ENC_R の2つのEncoder で dialogue history と学習して response を返す。
  • candidate response の score は bilinear mapping of the dialogue history embedding and the candidate response embedding.
  • top K results が TFIDF と Glove word embeddings cosine similarity
14. Bag-of-words Retrieval Models
  • TF-IDF Glove word embeddings と word2vec embeddings に基づいたモデル
  • highest cosine similarity で retrieve する

3.4 Retrieval-based Logistic Regression

15. BoWEscapePlan
  • topic-independnet, generic pre-defined response を返すモデル
  • I don't know, could you repeat that? など。
  • logisc regression を classifier として使っている

3.5 Search Engine-based Neural Networks

16. LSTMClassifierMSMarco
  • user の最後の発話をクエリとして web search 使って 10個の search の snippets をゲットする
  • user の最後の発話と snippet をつなげて 0-1 のスコア(どれだけ適切か)を MLP で作る

3.6 Generation-based Neural Networks

  • GRUQuestion-Generator という Generative RNN Language モデル使ってる
  • dialogue history に応じて follow up questions を生成できる

4 Model Selection Policy

  • response candidates が生成されたあとはdialogue manager が selection policy を使う

  • ユーザーの満足度 immediate と long term のトレードオフが必要

  • RL でやる。dialogue manager は agent。step t=1, 2, ..., T 。 dialogue history h_t を受け取る

  • K このアクションから1つ選ばないといけない at1, ..., atK の中から。

  • action を選んだあとに 報酬 rt を受け取り。 next state ht+1 を受け取る

  • dialogue history と candidate response を入力して 1548 features を計算してそれを scoring model への input とする

  • input features は word embeddings, dialogue acts, part-of-speech tags, unigram word overlap, bigram word overlap and model-specific features

  • scoring model は 5 layer NN

  • layer 1: 1458 features を input とするレイヤ

  • layer 2: 500 hidden units. layer 1 を linear transformation.

  • layer 3: 20 hidden units. layer 2 を linear transformation.

  • layer 4: 5 outputs units as 確率. layer3 の softmax

    • 後述に Amazon Mecahnical Turk labels に一致
  • layer 5: final layer

Stochastic Policy Parametrization

h_t の a_t_k に対して score を返す f_theta。

4.1 Input Features

  • response モデルが生成するものはたとえ h_t (status)が同じでも、違う response が変わる。ので普通の RL と違う。
  • agent の policy は2つの異なる方法で parameterize された
Action-value Parametrization
  • 1つめ: 式2 で定義される action-value function。h_t に対して a_t_k action をとったときの return の期待値

4.2 Model Architecture

4.3 Supervised AMT: Learning with Crowdsourced Labels

  • crowdsourced な label で supervised learningした action value function を estimate。
  • Crowdsourcing
    • dialogue と 4 つの candidate response を人に見せた
    • それぞれの candidate がどれだけ適切かを 1-5で flag してもらった
  • 上記のラベルと x でトレーニングした

4.4 Supervised Learned Reward: Learning with a Learned Reward Function

Learned Reward Function
  • h_t (dialogue history)
  • a_t (action taken)
  • score を regression model で学習させる (1-5のスコア)
  • R_d dialogue d に対して Alexa userが返したスコア。上記のスコアのラベルデータ。

4.5 Off-policy REINFORCE

4.6 Off-policy REINFORCE with Learned Reward Function

4.7 Q-learning with the Abstract Discourse Markov Decision Process

4.8 Preliminary Evaluation

5 A/B Testing Experiments

5.1 A/B Testing Experiment #1

5.2 A/B Testing Experiment #2

5.3 A/B Testing Experiment #3

5.4 Discussion

6 Related Work

7 Future Work

7.1 Personalization

7.2 Text-based Evaluation

8 Conclusion

Acknowledgments

Clone this wiki locally