Transformerを利用した対話システムの応答制御について

実験

以下では、前述のモデルを利用した実験の結果を紹介します。

使用データセット概要

今回の実験では ConvAI2 コンペティション用に配布されている PersonaChat データセット[3]を利用してモデルの学習を行いました。下図のように、PersonaChatデータセットには、2名による対話のテキストデータとともに、対話をしている話者のパーソナリティに関する3〜5文のテキストが含まれています。

図9: PersonaChatのデータ例(論文[3]からの引用)
実装したモデルの妥当性を測る対象として、コンペティションのベースラインで公開されているLanguage ModelingモデルとSeq2seq+Attentionモデルを利用します。
データセットの分割について、testセットが公開されていないため、trainセットで学習を行い、validationセットでモデル選択と評価を行います。
train、validationそれぞれのデータ件数は以下の通りとなっています。

 データセット  対話数  データ数 
train17,878131,438
validation1,0007,801
また、学習に用いる対話履歴は最大5ターン(5発話)までに区切っています。

実験設定

今回の実験で用いたモデルの基本的な設定は以下の通りです。

項目パラメータ
トークン分割手法sentencepiece(n_best=-1, alpha=0.1)
語彙数8000
レイヤー数6
Embed次元数256
FeedForward次元数1024
Attention head数8
Dropout率0.1
最適化手法Adam(3e-4)
ミニバッチサイズ24
EarlyStop Patience5
ビーム幅1
また、制御用の話者ベクトルの算出には、発話文と同じエンコーダで話者情報の特徴量を算出し、HTrmの文章特徴量計算と同様に文章特徴量を算出した後で、全ての話者情報の総和を取っています。この話者ベクトルを、エンコーダ制御の場合は256次元に、デコーダ制御の場合は256*6次元(層ごとに加算するため)に、それぞれ線形変換しています。

実験結果

応答生成例

以下は、実験で使用した各モデルが生成した例になります。
図10の対話例では、デコーダ制御HTrmを除いて、話者情報である「犬を飼っている」と読み取れる情報が応答に埋め込まれています。

図10: 実際の生成例(1)
図11の対話例では、HTrm系のモデルが、話者が学生であることを応答に埋め込んでいて、特にデコーダ制御では、運動関連の文脈であるということを考慮できていそうです。ただし、図10、11いずれも「ペットを飼っている」「学生である」と言った情報は文脈上既に知られている情報でもあり、対話システムの文脈対応の難しさが表れています。

図11: 実際の生成例(2)

評価について

対話応答生成タスクにおいて統一的な評価指標は存在していません。対話では、ひとつの文脈について考えられる応答の選択肢が多く、どの応答をもって正解とするかが決まりづらいためです。現状の一般的な対話生成タスクでは、類似している他タスクの指標や特定の特徴を測る指標を複数利用して評価を行います。以下では、今回利用した評価指標についてそれぞれ紹介していきます。
BLEUスコア
BLEUスコアは機械翻訳タスクでよく使用される評価指標です。対話応答生成では Transformer のように機械翻訳のモデルを利用することが多いため、BLEUスコアがよく用いられます。
BLEUスコアは、文章内のトークン同士の表層的な一致率です。BLEUスコアではまず、n-gram化したトークンの集合を用いて一致率を計算します。なお、n-gramとは n個のトークン連接を一かたまりとして文章を分割したものです。

P_n = \frac{\underset{i}{max} {\hat{Y} \cap Y_i}}{|\hat{Y}|}

以下の例を考えてみます。
  • 生成文\hat{Y}(1-gram):
     よく 音楽 を 聴き ます 。
  • 生成文\hat{Y}(2-gram):
     [よく 音楽] [音楽 を] [を 聴き] [聴き ます] [ます 。]
  • 正解文Y(1-gram):
     よく テレビ を 見 ます 。
  • 正解文Y(2-gram):
     [よく テレビ] [テレビ を] [を 見] [見 ます] [ます 。]
1-gram(uni-gram)では、生成文が全6トークンの内、参照文と共通しているトークンが4個なので、一致率は4/6です。一方、2-gram(bi-gram)では1/5となります。
BLEUスコアでは、考慮するn-gramの最大数Nを決めた上で、最大n-gram一致率までの幾何平均を求めます。

BLEU_N = BP \exp(\sum_{n=1}^N \frac{1}{N} \log P_n)

なお、BP(brevity penalty)は、生成文が参照文よりも短い場合に与えるペナルティになります。生成文が参照文の部分集合であった場合、文章としては不適切であるのに最大値の1となってしまう可能性があるためです。
BERTスコア
BERTスコア[8] はBERT出力の単語分散表現を利用することで、文章間の意味的な類似性を考慮に入れた評価指標です。BERTは、Transformerモデルのエンコーダ部分を応用して文章内におけるトークンそれぞれの意味をベクトルとして出力するモデルになります。大規模コーパスで事前学習されたBERTは、一般的な文章に含まれる各トークンの意味的な特徴を捉えていると考えられるため、これを前提として評価尺度に利用します。また、既存の評価指標と比較して人手評価との相関も改善されています。今回の実験では、表面的な単語が異なっていても意味的に近い応答が生成できた場合を想定して算出しています。なお、算出にはTransformersのbert-base-uncased モデルを利用しています。

図12: BERTスコア算出の流れ(論文[8]からの引用)
BERTスコア算出の手順は上記の図の通りです。まず、予測文(Candidate \hat{x})と正解文(Reference x)の各トークン総当たりで、BERT単語分散表現のコサイン類似度を求めます。算出された総当たりのコサイン類似度を、予測文か正解文いずれかのトークンごとに最大値を取り、そのトークン数で割ったものそれぞれPrecision、Recallとしています。各スコアはそれぞれ以下のように定義されています。

\frac{1}{|x|} \underset{x_i \in x}{\sum} \underset{\hat{x_i} \in \hat{x}}{max} \bf{x}_i^T \bf{\hat{x}}_j

\frac{1}{|\hat{x}|} \underset{\hat{x_i} \in \hat{x}}{\sum} \underset{x_i \in x}{max} \bf{x}_i^T \bf{\hat{x}}_j

この内、今回の実験ではPrecisionとRecallの調和平均で表されるF値をBERTスコアとして算出しています。

F = 2 \frac{Precision \cdot Recall}{Precision+Recall}

また、PrecisionとRecallそれぞれの算出過程で、参照コーパスでのトークン重要度(論文ではIDF)による重み付けも任意とされていますが、今回は特に重み付けは行なっていません。
DISTスコア
Distinct(DIST) [9] は、対話応答生成モデルによる応答の多様性を測る指標です。人の会話を学習コーパスとする対話応答生成では、「そうですね」のように色々な場面で当てはまりの良い応答(Dull Response)を返すのが、モデルにとって最も簡単な選択肢となってしまいます、対話応答生成モデルでは、デコーディングや損失関数を工夫することでDull Responseを回避する手法が提案されており、そういった手法の有効性を測る評価指標となっています。具体的には、評価セットに対する生成文全体のユニークなトークン数を、全てのトークン数で割ったものになります。
  • 生成文\hat{Y}(1-gram):
     すもも も もも も もも の うち
  • 生成文\hat{Y}(2-gram):
     [すもも も] [も もも] [もも も] [も もも] [もも の] [の うち]
上記の例の場合は、1-gramの場合のDISTは5/7であり、2-gramの場合のDISTは5/6となります。例では1文のみをコーパスとしたため比較的大きな値になりましたが、本来は生成したデータ全体で計算するため、値はより小さくなります。このようにDISTは、あるデータセットに対してモデルが生成した応答全体のトークン数が少ないほど大きな値になる傾向があります。そのため、今回の実験結果では、全体の生成トークン数も合わせて報告しています。
今回の実験では、話者情報をモデルに付与しているため、DISTが高ければ制御の影響で多様な応答を生成できている可能性があると考え、算出しています。次節の表では、DIST-1をユニークな1-gramの割合、DIST-2をユニークな2-gramの割合として表しています。
各評価指標による比較
まずは、予測文の正解文(Reference)に対する評価になります。今回の実験で実装したモデルの中ではBLEU-1、BLEU-2、BERT全てのスコアにおいてエンコーダ制御のTrmモデルが高い結果となりました。

 BLEU1_True  BLEU2_True  BERT_True 
Seq2seq+Attn16.725.3645.33
Language Modeling15.294.1342.90
Trm (Enc)17.155.5944.35
Trm (Dec)16.674.7844.18
HTrm (Enc)15.894.5743.70
HTrm (Dec)16.524.8443.72
次に、予測文と発話者の話者情報に対する評価になります。実験用の実装の中ではBLEU-1、BLEU-2、BERTスコア全てでエンコーダ制御のHTrmモデルが高い結果となりました。予想に反して、エンコーダ制御モデルの方が、話者情報を応答に含みやすい可能性があります。

BLEU1_Persona BLEU2_Persona BERT_Persona 
Seq2seq+Attn37.4316.2155.31
Language Modeling27.557.4349.73
Trm (Enc)37.2217.7853.60
Trm (Dec)37.0315.7453.97
HTrm (Enc)38.4618.6354.23
HTrm (Dec)36.5716.3452.62
最後に、応答の多様性評価になります。DISTの評価では、実際に人手で作成されたデータがどの程度の多様性であったのかも合わせて報告します。実験用実装モデルの中では、1-gramのDISTは HTrmのデコーダ制御が、2-gramのDISTではTrmのエンコーダ制御が最も高い結果となっています。一方で、HTrmのエンコーダ制御だけは他と比較して大きく値が下がっています。HTrm系のモデルは、文脈の各トークン特徴量を一度文章ベクトルの形にまとめてしまっているため、生成を行うための文脈や制御の情報が損なわれやすいのではないかと考えられます。デコーダ制御が高い値となっているのは、制御情報を文脈にまとめずにデコーダで加算しているおかげで文脈情報の不足が補われたためとも捉えられます。

 DIST1  DIST2  トークン数 
True Sentence4.2036.13100,868
Seq2seq+Attn1.406.0486,752
Language Modeling0.350.8999,988
Trm (Enc)0.733.2188,605
Trm (Dec)0.693.0387,381
HTrm (Enc)0.572.1383,049
HTrm (Dec)0.743.1084,067
また、全体的にベースラインのSeq2seq+Attentionが高くなっている理由として、話者情報を付与する方法が異なっていることが考えられます。今回の実験設定として「外部モデルでも学習可能なベクトルを利用して対話システムを制御できないか」を考えているため、実験モデルでは話者情報を単純にベクトル化してしまっています。Seq2seq+Attentionモデルでは、文章ごと対話履歴と結合しているので、実験モデルよりも詳細な条件分岐ができているようです。

まとめ

実験結果全体として、「デコーダ制御の方が、話者ごとに異なる単語の意味の違いを再現でき、制御情報を効率的に利用できるのでは無いか」という予想に反して、エンコーダ制御の精度が高い項目が多かったです。この結果は、Transformerに用いられているSource-Target-Attentionの貢献が大きいのではないかと考えられます。Source-Target-Attentionは、RNNを使ったSeq2seqモデルにおいて、エンコード時に失われるトークン情報を可能な限り活かそうとして利用された層でした。このため、話者情報のような制御情報を文脈として入力した場合にも、それをうまく考慮できたようです。そのような点で、Transformer自体が完成されたモデルであったのだと考えられます。本実験の結論としては「Transformerモデルにおいてよく使われる手法にはそれだけの安定感がある」ということになりましたが、実験を通じて、最近では画像処理等でも注目を集めているTransformerの実装や詳細から、BERTスコアを始めとする対話システム評価までを扱い、改めて勉強になりました。

ALBERTでは、様々な専門的バックグラウンドを持つリサーチャー・アナリストを募集しています、詳しくは採用ページをご覧ください。

参考文献

  1. A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, I. Polosukhin: “Attention Is All You Need”, NIPS 2017, pp. 6000–6010, 2017.
  2. E. Dinan, V. Logacheva, V. Malykh, A. Miller, K. Shuster, J. Urbanek, D. Kiela, A. Szlam, I. Serban, R. Lowe, S. Prabhumoye, A. W. Black, A. Rudnicky, J. Williams, J. Pineau, M. Burtsev and J. Weston: “The Second Conversational Intelligence Challenge (ConvAI2)”, arXiv preprint arXiv:1902.00098, 2019.
  3. S. Zhang, E. Dinan, J. Urbanek, A. Szlam, D. Kiela, J. Weston: “Personalizing Dialogue Agents: I have a dog, do you have pets too?”, Proc. 56th ACL, pp. 2204-2213, 2018.
  4. T. Kudo, J. Richardson: “SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing”, Proc. 2018 EMNLP: System Demonstrations, pp. 66-71.
  5. M. Johnson, M. Schuster, Q. V. Le, M. Krikun, Y. Wu, Z. Chen, N. Thorat, F. Viégas, M. Wattenberg, G. Corrado, M. Hughes, J. Dean: “Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation”, TACL 2017, pp. 339–351, 2017.
  6. E. Dinan, S. Roller, K. Shuster, A. Fan, M. Auli, J. Weston: “Wizard of Wikipedia: Knowledge-Powered Conversational agents”, arXiv preprint arXiv:1811.01241, 2018.
  7. J. Li, M. Galley, C. Brockett, G. Spithourakis, J. Gao, B. Dolan: “A Persona-Based Neural Conversation Model”, ACL 2016, pp. 994–1003, 2016.
  8. T. Zhang, V. Kishore, F. Wu, K. Q. Weinberger, Y. Artzi: “BERTScore: Evaluating Text Generation with BERT”, arXiv preprint arXiv:1904.09675, 2019.
  9. J. Li, M. Galley, C. Brockett, J. Gao, B. Dolan: “A Diversity-Promoting Objective Function for Neural Conversation Models”, NAACL 2016, pp. 110–119, 2016.