Jointly Optimizing Diversity and Relevance in Neural Response Generation (NAACL2019) 読んだ

Jointly Optimizing Diversity and Relevance in Neural Response Generation*1 を読んだので軽くまとめようかと (久々にまとまった文章を書く・・・。)

論文の流れに沿ってまとめます(断りがない限り図は論文からの引用)。

f:id:cl_hair:20190714175427p:plain

論文

(コード公開のところに著者スライドがあった・・・、これを読めば簡単に理解できた・・・)

概要

  • Neural Conversation Modelにおける問題点は {bland|generic} responseを生成する点
  • responseの多様性を考慮したモデルもあるけど、そのためにcontextとの関連性が犠牲になることも・・・
  • そこで、 "SPACE FUSION"という提案モデルにより多様性と関連性を同時に捉えられるような潜在空間を導入
    • 基となるresponse vectorとの距離と方向により直感的にわかる
  • 提案モデルは、自動評価・人手評価どちらでもベースラインに勝る

関連研究

Grounded Conversation Models

  • ペルソナ
  • 知識
  • 対話行為
  • 感情ラベル

を利用した対話モデルが提案されている。

=> 提案モデルでは、上記のような補情報を用いず、対話文のみから学習を行う

VAE

VAE/CVAEを用いたテキスト生成も提案されていますが2点ほど問題点が挙げられています。

  • vanishing latent variable problem

    • word dropping とKL annealingによる対処
    • bag-of-word lossを用いる対処
  • ガウス分布のような単純な潜在表現に制限されている点

=> 提案モデルでは幾何学的なアプローチをとるから上記のような確率的アプローチとは異なる

Decodingとランキング

A diversity-promoting objective function for neural conversation models(NAACL2016) の話です。

マルチタスク学習

機械翻訳に置いてモノリンガルデータの活用でマルチタスク学習がうまくいき、対話にも似たアイディアが提案されており、

  1. Seq2Seqで対話対の学習
  2. AutoEncoderで特有の話者の対話文ではないデータからの学習

上記2つのモデルでdecoderは共有し、交互に学習する

SPACE FUSION MODELとは?

f:id:cl_hair:20190714180859p:plain

モデルアーキテクチャ

図が全てです。

  • src-tarの間のmappingを学習するSeq2Seq
  • tarについて学習するAutoEncoder
  • 両者の潜在変数の内挿に当たる潜在変数の導入

といったことをしており、最後の項目が提案モデルの新規性の1つだと言えます。 Seq2SeqとAutoEncoderのlossに、この新しく導入した潜在変数にまつわるLoss(2項分)を正則化項として追加して学習を行います

  • interpolation loss

f:id:cl_hair:20190714181343p:plain

この項の役割は「同じ方向に並ぶ点(潜在変数)から異なる応答が生成されることを防ぐ」ことです。 z _ {interp} = uz _ {S2S} + (1-u)z _ {AE} (uは[0,1]の一様分布から)と表現され、まさしく内挿を表現しています。

  • fusion loss

f:id:cl_hair:20190714181358p:plain

この項の役割は「各対話対におけるSeq2SeqとAutoEncoderの潜在変数をなるべく近づけ、かつ全体的に潜在変数が散らばる」ことです。

上記2つのlossを合わせたモデル全体のlossは以下のようになっており、\alpha\betaは各lossの重みに相当します。

f:id:cl_hair:20190714181417p:plain

 実験

データ

f:id:cl_hair:20190714183719p:plain

上図がデータに関する情報です。*2

モデルパラメータ

Category Item Value
Encoder(GRU*2) dimention 128
Decoder(GRU*2) dimention 128
Noise Layer σ 0.1
Loss Weight α 1
β 30
Optimizer method Adam
learning rate 0.001

評価指標

  • 自動評価: BLEU(4-gram)のF1
  • 人手評価: 関連性・面白さの2項目について3人の評価者に1~5のリッカート尺度

ベースライン

  • Seq2Seq+Sampling

vanilla seq2seqの利用

  • CVAE+BOW

Learning discourse-level diversity for neural dialog models using conditional variational autoencoders (ACL2017)

  • MTask

Multi-task learning for speaker-role adaptation in neural conversation models(IJCNLP2017)

結果と分析

潜在空間に対する考察

  1. 関連性と多様性がちゃんとdisentangleされたような空間になっているか?
  2. 意味が滑らかに変化する際に穴があるような空間になっていないか?(よくわからない表現になってしまったorz

f:id:cl_hair:20190714185400p:plain

3つの方向(今回はNo I don't などの各発話が方向に相当)と距離(今回はパラメータuにより操作されている)に関しての事例が上図。 概ね、各方向ごとの多様性、距離ごとの関連性の変化が意図通りに見て取れている。

方向と多様性

正則化項のある、なしでどう変わるかを見るために、1つのcontext(x_k)に対して複数の参照があるresponse(y _ {k,0},y _ {k,1} ... )について、 異なるresponse間の潜在変数でのcos類似度を見た結果、正則化を入れない場合はほぼ類似しているが、入れると類似してないことが見て取れる

=>正則化により方向が異なるように学習されていると言える!

距離と関連性

(Perplexityをみていたけど、なんで良いと言えるかはよくわからなかった・・・orz)

 自動評価

評価項目は前章参照

f:id:cl_hair:20190714190419p:plain

ベースラインより良い(それはそう)

人手評価

評価項目は前章参照

f:id:cl_hair:20190714190536p:plain

提案モデルが、最も良いが人手とはまだ1pt程度の開きがある。 Seq2Seq+Samplingもそこそこいい感じの結果に見える。

ちなみに、各手法の生成結果例は以下

(this movieという文脈が挟まるような例を出すのはどうなんだろうかと思わなくもない)

f:id:cl_hair:20190714190827p:plain

所感

最初の図のような感じで応答の多様性と関連性が理解できるのは良いなと思いつつ、 距離に関しての変数uがどれくらいピーキに効いてくるのかをPerplexiy以外の尺度で見られると嬉しいかな。

(方向ごとにuの効き具合がどう異なるのかを定性的に見たいくらいの意味合い)

また、多様性毎(?)に方向が散らばってくれるのはわかったが、 どの程度の方向の幅ごとに大まかな意味合いの異なるものが存在するのかとかも気になった。

*1:https://www.aclweb.org/anthology/N19-1125

*2:実験では、1つのcontextに対して複数のresponseがあるような対話データを用いていますが、これが完全な1対1のデータを用いた場合になるのか気になります。