# ユーザから情報を引き出すための強化学習による応答生成

佃夏野 1 品川政太朗 1,2 中村 哲 1,2
1 奈良先端科学技術大学院大学
2 理化学研究所革新知能統合研究センター
\{tsukuda.natsuno.tn1 sei.shinagawa s-nakamura\}@is.naist.jp

## 概要

雑談対話システムをユーザに長く使用してもらう には，システムがユーザに興味のある話題を提供す る必要があるが，まずシステムがユーザの情報を知 らねばならない。この時ユーザの心象を損ねず対話 でユーザから情報を引き出すのが理想だと考えら れ，質問や相槌等の複数の言動を効果的に使い分け ることが有望な方法の一つとして考えられる. 本研究では初歩として，指定された情報をユーザ発話か ら抽出する簡単なタスクを設定した。また，タスク を達成するために単純な報酬を用意し，強化学習を 利用して既存の対話システムの最適化を行い，シス テムの応答文の変化について実験を行なった. 結果 として，システムをタスクに最適化できたことと，的外れな内容の生成への対策の必要性が分かった.

## 1 はじめに

雑談対話システムを実運用するには，ユーザに長 く使用してもらうことは重要な課題の一つである. そのために, システムがユーザの趣味や職業等の情報をユーザから引き出し，ユーザに興味のある話題 を提供することが考えられる。ここで情報を引き出 すために単に質問のみ繰り返すと，ユーザが煩わし さや不信感を感じ，システムを使用しなくなる恐れ がある。これを防ぐには，質問以外に相槌や自己開示等の複数の対話行為をシステムが扱いつつ，情報 を引き出すせるように戦略的に複数の対話行為を使 い分けることが必要となる．また，情報を引き出す 戦略を学習するには, 正解文と比較して最適化を行 う教師あり学習より，タスクの目的に合わせて報酬 を設計し，より直接的にタスクを解くように最適化 できる強化学習を用いるのが良いと考えられる．理想的にはユーザの心象によって複数の対話行為を使 い分けられるように最適化を行うべきであるが，扱 う対話行為が多いことやユーザの心象についてのモ

図 1 本研究の対話システムの概要図.

デリングのしにくさからタスクとして複雑になる.

そこで本研究では初歩的な実験として，図 1 のよ うに雑談における情報抽出に目的を限定し，そのた めの対話戦略を強化学習を用いて学習する. また,対話行為について質問か質問でないかの二つのみを 扱うこととし，強化学習の結果として直接的に情報取得をしやすい質問が行われやすくなることを期待する。そこで，「予め欲しい情報を定義し，シス テムの応答に対し，目的の情報を含む発話をユーザ が行ったか」という単純なタスクと報酬を定義し， システムを REINFORCE [1] で最適化する。本来は ユーザの心象と相関の高い機械的な指標を用意し報酬に含めるべきであるが，今回は情報の取得のみを 報酬として定義する。これによりユーザのシステム に対する心象や会話に対する反応を考慮しないた め，対話行為として質問を行いやすくなると考えら れる.この際，JPersonChat データセット [2]で予め fine-tuning した Encoder-Decoder モデルを学習対象の システムと，ユーザの代わりであるユーザモデルの 双方に適用し，両者を会話させて学習のためのデー タセットを収集する。また，強化学習を適用する前後のシステム応答を比較し，報酬の変化，質問の生成しやすさ，及び生成した応答例を評価する。

## 2 関連研究

## 2.1 対話による情報抽出

Han らの研究 [3] では，カウンセリング対話にお ける患者から情報を引き出す $5 \mathrm{~W} 1 \mathrm{H}$ の質問文の作成
表 1 タスク達成判断の例。

と，患者の回答から対応する情報を抽出する手法を 提案した. この手法ではあらかじめ用意したテンプ レートをもとにした質問文の作成と情報抽出によ り，テンプレートに沿った質問と発話については自然な質問作成と正確な情報抽出が行えた。しかし， テンプレートにない多様な質問や発話には対応で きなかった. Cotris らの対話システム [4]では対話 からイベントに関する人や場所，日付等のユーザの 情報を抽出・統合し，外部利用が可能なモジュール を作成した. また，Tigunova らの研究 [5] ではユー ザ発話の潜在的な特徴量やスピーチスタイルを元 に，趣味や職業等のユーザの個人情報の推定を行 なった.

## 2.2 既存研究と本研究の差分

対話からの情報抽出についての既存研究 [3][4][5] では，ユーザ発話の中にユーザ自身の情報が含まれ ることを前提とし，いかに情報を抽出するかが研究 の主眼とされてきた. これに対し本研究では, 日常的な会話で考えられるように，会話の運び方や話し 相手への心象によりユーザ発話に情報が含まれない 場合があることを踏まえ，心情を損ねずユーザが自身の情報について言及するような対話戦略の学習を 目標にしている。

## 3 提案手法

## 3.1 タスク設定

本研究では，対話システムが行なった応答 $R$ に 対して，ユーザが発話 $U$ を返すという設定の下で、 ユーザ発話 $U$ にユーザ情報 $I$ が含まれるように，応答 $R$ をシステムが生成することを目標にする.ここ で，取得したいユーザの情報を，今回は職業や出身地といった固有表現として抽出可能なものと定義 する．また，この固有表現は，ユーザから取得可能 で，かつ，正誤判定のために正解の固有表現をデー タセット中に保持できるものとする．タスクが達成 できたかどうか判断する変数 isSuccess はシステム の応答に対するユーザの発話から判断され，式 1 と なる。

$
\text { isSuccess }= \begin{cases}\text { True } & (I \in U) \\ \text { False } & (I \notin U)\end{cases}
$

また，固有表現抽出とタスク達成の評価の例を 表 1 に示す。まず，このタスクで取得したいユーザ の情報は表 1 のように，固有表現にあたる部分が

に，ユーザ発話に固有表現が含まれ，かつそれが正解であった場合，タスクについて成功したとみな し，ユーザの発話に正解の固有表現が一切含まれて いなかった場合にタスク失敗とみなす。また，ユー ザ発話中に複数の固有表現が含まれている場合，一 つでも正解の固有表現と合致していればタスクを達成したとみなす.

## 3.2 対話システムの概要

本研究の対話システムは，ユーザ自身について得 たい情報とユーザ発話の 2 つをもとにして応答を生成するモデルからなる。概要を図 2 に示す.

図 2 対話システムの概要.

まず図 1 のようにユーザについて知りたい情報 のうち固有表現部分をマスクした文と，コンテキス トを繋げた文を区切り文字 [SEP] で繋げ入力文とす る. 次に，これをトークン化し，Encoder-Decoder モ デルからなる応答生成モデルに入力し, 最後にシス テムの応答を得る。これにより，システムは知りた い情報を引き出すための対話行為と応答の内容，加 えて前のターンの会話から大きく外れないことを考慮して，応答を生成できると考えられる。

## 3.3 学習方法

学習方法には REINFORCE [1] を用い，応答生成 モデルを最適化する。 まず前提として，システムと ユーザモデルを会話させる際に，図3のようにユー ザモデルには正解となるユーザについての情報「私 は福岡出身です」が与えられ，システム側にはその 情報のうち固有表現をマスクしたものが与えられ る.これは，学習・推論のいずれの場合でも同様で ある.

図 3 報酬計算のためのデータ処理とそれぞれのシステム に与えられる入力.

次に報酬 $r$ について，先程の前提を元に，コンテ キストを元にした 1 ターンの会話でユーザからマス クした固有表現が得られれば $r=1$, 得られなけれ ば $r=0$ とする. 以上のような学習設定と報酬を元 に，予め学習前のシステムとユーザモデルを会話さ せ，報酬を計算しておくことで強化学習用のデータ セットを構築しておく.

次に, 用意したデータセットからの学習方法に ついて述べる. 今回のような言語生成に対して REINFORCE を適用する場合，損失 $L$ は，入力系列 $y$ のトークン長 $T$, 言語モデル（方策関数） $\pi_{\theta}$ と時間 $\mathrm{t}$ までの状態 $s_{t}$ に対して,

$
L=-\frac{1}{T} \sum_{t=1}^{T} r \log \pi_{\theta}\left(y_{t} \mid s_{t}\right)
$

となることが知られている。これは，通常の 損失 $\log \pi_{\theta}\left(y_{t} \mid s_{t}\right)$ に対して報酬 $r$ で重み付けし, Teacher forcing で学習することに等しい. 通常の REINFORCE では，モデル更新にしたがってモデル が新たに生成する文も変化していくが，この方法で は一般的に学習が不安定になりやすい。そこで本研究では，強化学習を行う前のシステムとユーザモデ ル間の対話によって対話のデータセットを予め作成 しておき，このデータセットからサンプリングした 対話データに対して報酬を評価し、訓練に用いた。

## 3.4 ユーザモデル

強化学習を行う際に用いるユーザモデルについて

えた固定のペルソナに沿った発話をするように学習 した応答生成モデルを用いる.

固定された情報私は岐阜出身です $[S E P]$ 出身は？

図 4 ユーザモデル概要図。

このユーザモデルでは，まずユーザについて固定 された情報とコンテキストを連結した文が，入力文 として Encoder-Decoder モデルに与えられる. 学習時には大力文に対応したデータセット中の返答文を 教師データとしてユーザモデルの学習を行う. 推論時には，与えられた情報とコンテキストに矛盾しな い発話が生成される.

## 4 実験設定

## 4.1 データセット

まず，対話データを作成する際に用いる，対話 システムとユーザモデルの fine-tuning に使用す る JPersonaChat [2] について述べる。JPersonaChat は PersonaChat [6] の設定をもとにして，クラウドワー カーが与えられたペルソナに沿ってお互いを深く知 り合うよう2 者間で話した対話を収集したものであ る. 各会話のそれぞれの話者にペルソナと呼ばれる ユーザに関する情報が「私は横浜出身です」「私は島根県在住です」といった文の形で付与されている. このうち，対話データのみを用いてシステムの生成 モデルを fine-tuning する．またユーザモデルは，対話データに加えてそれぞれの対話に結びついた話者 のペルソナのうち，固有表現を含むペルソナのみを 一つ抽出し， 3.4 で示した方法で fine-tuning を行う. これにより，与えた 1 つのペルソナに矛盾しない発話をユーザモデルに行わせる.

次に，強化学習用のデータセットについて述べ る. fine-tuning を行ったシステムとユーザモデルに ついて，ユーザモデルのペルソナを変更しつつ 20 ターンの会話を行い，過去 3 発話程度のコンテキス ト，システム応答，ユーザ発話，およびユーザ発話
表 2 学習した対話システムによる応答生成例と得られた報酬. テストセットや生成例に含まれる正解の情報，コンテキ スト及びユーザモデルの発話については表に収まらないため省略した。

から計算される報酬の 4つからなる対話データセッ ト作成した. このデータセットには，227 個のペル ソナ， 227 個の対話，および 9080 発話が含まれてお り，データセットの総数は 4540 個である。このう ち 3971 個を学習セットとし，569 個をテストセット として評価に用いる。

## 4.2 評価尺度

評価尺度として，テストセットで得られる報酬の 総和と，質問を行っている応答の総数を用い，シス テムが報酬を得やすくなったか，および質問をしや すくなったかについて評価する。また，質問の報酬獲得率を計算し，質問で報酬を獲得できているかに ついて評価する．質問の報酬獲得率の計算式は

$
\text { 質問の報酬獲得率 }=\frac{\text { 報酬を得られた質問の総数 }}{\text { 質問をしている応答の総数 }}
$
となる。

## 5 実験結果と考察

4.2 節で述べた尺度による評価の結果を表 3 に示 す. 学習前後の報酬の総和を比較すると，学習後の

表 3 報酬の総和と質問数・質問の報酬獲得率の変化によ る比較.

システムの方が多くなっており，また，質問の数も 多くなっていることから, 狙った方向性にシステム が正常に学習できていると考えられる. しかし，学習した後は質問が 2 倍近く増加しているのに対し て, recall はあまり増加していない.この結果から，質問という対話行為を選択しやすくなったものの，知りたいことを適切に聞けるような発話ができては いないと考えられる。

そこで，詳しく結果を分析するために，テスト セットから生成した応答を表 2 に示す. 表 2 の上か ら1つ目の例は，質問はしたが報酬に結び付かな かった応答の代表的な例である. 報酬に結び付かな
かった質問は，このように「お休みの時は何をされ るのか」という内容のものが多かった。これは学習 セット中で，報酬を獲得できた質問が 570 個である のに対し，これに類する質問が，44 個含まれてお り，頻出する質問を行うよう学習したためと考えら れる。続いて，表 2 上から 2 つ目の例は，報酬を獲得できた質問の代表的なものである。報酬を獲得で きた質問は，このように質問の答えのドメインが絞 られる内容のものが主になっていた。加えて，表 2 の上から 3 つ目のように，質問でなくても報酬が得 られた応答としては，会話のドメインを絞った内容 のものが主になっている.これらのことから，今回用いたユーザモデルに対して，システムがドメイン を絞った直接的な質問を行うことで，更に報酬を増 やすことが期待できると分かった.

## 6 まとめ

本研究では初歩的な実装として，ユーザから指定された情報を引き出すことのみをタスクとして， ユーザが情報を話したか，という単純な報酬を用い て強化学習で対話システムを最適化し, 学習したモ デルの応答文の変化について調査を行なった. その 結果，質問を生成しやすくなり，タスクへの最適化 が行えたことが確認できた. また，ユーザから対話的に情報抽出を行うためには，情報抽出のための適切な内容を含む必要があるという課題も分かった.本研究の本来の最終的な目標は, 対話行為を適切 に使い分けることでユーザの心象を損ねず対話で ユーザから情報を引き出すことである．今後はユー ザが情報を話しやすい状態かの判断を報酬設計に組 み込み，質問や相槌等の対話行為をシステムが適切 に使い分けることを目指す. また，今回の課題も踏 まえて対話行為だけでなく, 応答の内容についても 適切なものを生成できる機構をシステムに導入する ことを検討していく，将来的には，取得すべき情報 を増やしてタスクを複雑化し, 本研究を拡張してマ ルチターンの対話による最適化を行い，最終的に人手の評価を行う予定である.

## 参考文献

[1] Ronald J. Williams. Simple statistical gradient-following algorithms for connectionist reinforcement learning. Mach. Learn., Vol. 8, No. 3-4, p. 229-256, may 1992.

[2] Hiroaki Sugiyama, Masahiro Mizukami, Tsunehiro Arimoto, Hiromi Narimatsu, Yuya Chiba, Hideharu Nakajima, and Toyomi Meguro. Empirical analysis of training strategies of transformer-based japanese chit-chat systems. arXiv:2109.05217, 2021

[3] Sangdo Han, Kyusong Lee, Donghyeon Lee, and Gary Geunbae Lee. Counseling dialog system with 5W1H extraction. In Proceedings of the SIGDIAL 2013 Conference, pp. 349-353, Metz, France, August 2013. Association for Computational Linguistics.

[4] Keith Cortis and Charlie Abela. Semchat: Extracting personal information from chat conversations. In EKAW 2010. Workshop W2, p. 14. Citeseer.

[5] Anna Tigunova. Extracting personal information from conversations. In Companion Proceedings of the Web Conference 2020, WWW '20, p. 284-288, New York, NY, USA, 2020. Association for Computing Machinery.

[6] Saizheng Zhang, Emily Dinan, Jack Urbanek, Arthur Szlam, Douwe Kiela, and Jason Weston. Personalizing dialogue agents: I have a dog, do you have pets too? In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 2204-2213, Melbourne, Australia, July 2018. Association for Computational Linguistics.

## A 実験で使用したモデルについて

節 3.1 で行う固有表現抽出は，オープンソース日本語 NLP ライブラリである Ginza で配布されてい る ja_ginaza モデル ${ }^{1)}$ を用いて，JPersonaChat データ セットに対して行う. また，応答生成モデルとし て，システムとユーザモデルの両方で NTT による 日本語事前学習済み Encoder-Decoder モデル [2] を用 いる.

1) https://github.com/megagonlabs/ginza
 佃夏野 1 品川政太朗 1,2 中村 哲 1,2 1 奈良先端科学技術大学院大学 2 理化学研究所革新知能統合研究センター \{tsukuda.natsuno.tn1 sei.shinagawa s-nakamura\}@is.naist.jp  