ブログではないです

ブログでなくはないです

Generating More Interesting Responses in Neural Conversation Models with Distributional Constraints [Baheti+, EMNLP'18]

http://aclweb.org/anthology/D18-1431

ニューラル対話応答モデルにおいて起こりがちな、"I don't know." を連発するといったdull conversationを解決しようという話。 方針としてはベースラインとなるSeq2Seqでも用いている応答生成の確率分布 { \displaystyle P(Y|X)} に加えて 発話をX、応答をYとした時に
(1)トピックTの一貫性: { \displaystyle sim(P(T|X), P(T|Y))}
(2)発話・応答の類似度: { \displaystyle sim(P(X), P(Y))}
を重み付けして応答生成時のスコアリングに用いるというもの。

(1)のトピック類似度計算についてはHMM-LDAベースの手法を用いて単語単位でトピックに対する確率分布を推定した後、それを文全体に適用して文単位のトピックに対する確率分布を得て、発話応答間でのコサイン類似度で計算。(2)の意味的な類似度については文中の単語wについてのembeddingを { \displaystyle {a} \over {a + P(w)}}で重み付け(P(w)はunigram probability)して平均を取るという手法でかなり優秀な文ベクトルを作れるらしく、それを使って作った2つの文のコサイン類似度を用いている。 こうした割とシンプルな手法を取る理由としてはこの計算はdecodeの途中で1単語生成するごとに行うため、計算に時間が掛からずかつ生成途中の不完全な文に対しても適用できる手法が望ましいため。

実験では訓練にOpenSubtitles, テストにCornell Movie Dialogue Corpusを用いている。(OpenSubtitlesはノイジーなので評価に使いたくないとのこと) また、訓練に使うOpenSubtitlesについても Jiwei Liが NAACL'16で使っていた際の前処理を加えたいい感じのコーパスを使い、なんとそれを配布してくれている。正直自分で使っていてもこんなノイジーで大丈夫かよ感があったのでこれは試してみたい。

結果としては既存手法 (MMI, TA-Seq2Seq)と比較して、生成例 (右端) も大分diverseになっているように見えるし、定量的にもdistinct-1, 2 (生成された応答の単語のばらつき具合で測る応答の多様性) も大幅に上がっている。 f:id:jack_and_rozz:20181116112453p:plain:w400
f:id:jack_and_rozz:20181116112459p:plain:w400