Deep Reinforcement Learning for Dialogue Generation を読む(まだ途中)

Abstract

seq2seq は良いのだけど未来の会話の方向性を無視した近視眼的な output を出しがち。future reward をモデル化することで良いゴールを達成するよ。
モデルは2人の virtual agent をシミュレートする。vitual agents は policy gradient mothods を使って良い sequence がでるように reward を与えられる。

Intorduciton

seq2seq はすごく良いけど2つの問題点がある。
(1) maximum-likelihood estimation (MLE) objective function 使っているけど。これが人間相手の会話で一番良い方法かわからないよえ。会話長く続くとは限らないよね。
具体的な例としては seq2seq はすごく generic な返事をしがち。I don't know とか。(筆者注:これは僕の chatbot でも起こっていて問題視している)

(2) 無限ループに入るパターンがあること。
例)
A: Where are you going?
B: I’m going to the restroom.
A: See you later.
B: See you later.
A: See you later.
B: See you later.
これも MLE base だから起きること

というわけなので以下の2点の改善ができそう。
(X) chatbot の真の目的を reward として定義できる (MLE ではなく)
(Y) generic response が long term でどういう影響をあたえるのかモデリングする

これらを実現するために seq2seq を backbone として、2人の virtual agent が可能性のある返信を模索しつつ予想される reward を最大化するように動作する。
我々の良い会話の定義は

  • 将来を考慮している(forward-looking)
  • 会話のキャッチボールが続く(interactive)
  • 首尾一貫としている(coherent)

2. Related work

省略

3 Reinforcement Learning for Open-Domain Dialogue

2人の agent。p, q それぞれ first/second agent から生成された文を指す。agent 達は順番に会話をする。対話は p1, q1, p2, q2, ... のように表現される。ネットワークのパラメータは 4.3 で定義される policy search を利用して future reward が最大化されるように最適化される。

コンポーネント

3.1 Action

: 対話の1つの文が生成されたことを action と呼ぶ

3.2 State

1つ前の対話の pair [pi, qi] のこと。対話の履歴は pi と qi をくっつけて LSTM encoder にぶっこんで vector representation に変換される

3.3 Policy

LSTM encoder-decoder でそのパラメータによって定義される。

3.4 Reward:

r で表す。r はそれぞれの action で得られた reward である。計算可能で良い会話につながる reward function の major factor は


Ease of answering
machine で生成された答えは easy to answer であるべき。ease of answering を measure するには -log(単調な返事を返す確率)
単調な返事のセット S を手作業で用意する。(例) I have no idea.
単調な返事は手作業のセットよりもたくさんあるが vector space 的には近いところにあるはずなので OK 。
実際の式は論文参照


Information Flow
Agent が新しい話題を提供するほうが望ましいので、1つの agent からの幾つかの返事が意味的に似たものになることに対してペナルティを課すことを提案する。cosine similarlity を使うよと。

4 Simulation

4.1 supervised learning

seq2seq model を 80M データで学習せる。1つ前と2つ前の文をつなげて source input とした。

4.2 Mutual information

別論文読む必要あり。

4.3 Dialgoe Simulation

2人の agent が会話するようにシミュレート。最大 5 turn まで試す。