# 曖昧な要求と気の利いた応答を含む 対話コーパスの収集と分類

田中 翔平 1,3 , 吉野 幸一郎 ${ }^{2,1,3}$, 須藤 克仁 1,3 , 中村 哲 1,3

\{tanaka.shohei.tj7, sudoh, s-nakamura\}@is.naist.jp, koichiro.yoshino@riken.jp

1 奈良先端科学技術大学院大学

2 理化学研究所 ロボティクスプロジェクト

3 理化学研究所 革新知能統合研究センター
## 1 はじめに

タスク指向型対話システムとは, ユーザの要求に 対してあらかじめ定義されたシステムの API など を用いて応答するシステムであり，スマートスピー カーやデジタルサイネージなどの形で実社会へと普及しつつある.しかしこれまで研究・実用化された きたタスク指向型対話システム $[1,2]$ は，ユーザ発話の中に明確に要求が含まれていることを前提とし たものが多く, ユーザの要求が曖昧な場合に, 適切 な応答を生成することが難しい。

一方で，人間のコンシェルジュやガイドなどは，曖昧なユーザ発話に対しても気の利いた応答を行 う。例えば，ユーザが「ここの景色は綺麗だね」と 言った場合に，「写真を撮りましょうか？」などと 応答することができる。このように，特定の機能を 要求しておらず，またそもそも何らかの機能を要求 しているかどうかが曖昧なユーザ発話に対しても， ユーザが望むであろう行動が可能なシステムを構築 することが本研究の目的である。そこでまず，ユー ザ発話と，それに対する対話エージェントの気の利 いた応答を含むコーパスを収集した。

ユーザとシステムの対話を想定したコーパスの収集方法としては， 2 人の被験者をユーザ役とシステ 么役に割り当てて対話してもらう方法が一般的であ る $[3,4]$. だが，全ての曖昧なユーザ発話に対して 常に気が効いた応答を返すことは，人間であっても 難しい。また，実際に気の利いた応答が認定できた としても，システムが実行可能な行動はシステム自身に定義されている API などの機能に制約され，そ の応答を返すことが現実的ではない場合も多い。そ こで本研究では，システム側の応答 70 種類をシス テムが利用可能な API に基づいてあらかじめ定義

対話エージェント

図 1 気の利いた対話例

し，各応答が気が利いているとみなせるような先行発話を，クラウドワーカーに入力してもらうことで コーパスを収集した。これは，API などに制約され るシステム応答に応じてこれらが有効な文脈を収集 する方が，広範な文脈に対して現実的な気の利いた 応答候補を収集できると考えたためである.

こうして収集したコーパスに対し，ユーザの曖昧 な要求に対応する気の利いた応答を分類するモデ ルを構築した。具体的には, Wikipedia などのコー パスを用いて事前学習を行った BERT[5] を用いて， ユーザ発話を対応するシステム応答へと分類する分類器を学習させた。学習した分類器を自動評価した 結果，55\%以上のユーザ発話を対応するシステム応答へと分類できることが判明した。また $83 \%$ 以上の ユーザ発話に関して，対応するシステム応答を上位 5 位以内へと分類できることが判明した。

## 2 データセット構築

ユーザの要求が曖昧な発話と, そうした発話に対 するシステムの気の利いた応答を含むコーパスを収集する．本節ではクラウドソーシングを用いた収集方法について説明する。

本研究で収集するコーパスは, 観光案内のドメイ ンにおいてユーザとスマートフォンアプリケーショ ン上の対話エージェントとの対話を想定したもので
表 1 対話エージェントの機能とカテゴリーのリスト

 & 10 \\

表 2 収集したコーパスの統計情報

ある. 対話は全て一問一答形式であり, ユーザは要求が曖昧な発話や独話を行い, 対話エージェントは そのユーザ発話に対して気の利いた応答を返す。図 1 にユーザと対話エージェントの対話例を示す.こ こでユーザの「ここの景色最高だね」という発話は 必ずしも特定の機能に対する要求というわけでは ない。これに対して，対話エージェントが「カメラ を起動しましょうか？」という気の利いた応答を返 し，実際のカメラ機能を起動できるようにする.

図1のような対話を収集する方法として，クラ ウドソーシングなどを利用して，2 人のワーカーに ユーザ役と対話エージェント役に分かれて対話して もらう WoZ 対話が考えられる. しかし, 先に述べ たように，意図の曖昧なユーザ発話に対して常に気 の利いた応答を返すことは，人間にとっても難しい タスクであり, 一般的な WoZ 対話では期待する気 の利いた応答候補を収集することが難しい。また，対話エージェントがスマートフォン上などで稼働す るアプリケーションとして実運用されることを想定 すると, その応答はアプリケーションが利用可能な API の機能に紐付いている必要がある. すなわち,対話エージェントにとって可能な気の利いた応答の 範囲はユーザ発話の範囲と比較して限定的であり,対話エージェントの行動空間をあらかじめ定義した 方がコーパスの質を担保しやすい。これらのあらか じめ定義されたエージェントの行動カテゴリーに対
して，広範なユーザの先行発話をワーカーに入力し てもらう方法により収集する。

本研究では対話エージェントの機能をスポット 検索, レストラン検索, アプリ起動の 3 つに大きく 分けて定義した。定義した機能のリストを表 1 に示 す. 各機能はそれぞれ細分化されたカテゴリーを持 ち，コーパス中の対話エージェントの応答はこれら のカテゴリーに紐付いて生成される．定義したカテ ゴリーは全部で 70 種類である. スポット検索は特定のカテゴリーのスポットを検索する機能であり，「近隣の美術館を検索しましょうか?」といった応答としてユーザに提示される. レストラン検索は特定のカテゴリーのレストランを検索する機能であ り，「近隣のかき氷を検索しましょうか？」といっ た応答としてユーザに提示される. アプリ起動は特定のアプリケーションを起動する機能であり，「カ メラを起動しましょうか?」といった応答として ユーザに提示される.

定義した対話エージェントの応答カテゴリーに 基づき，日本語コーパスをクラウドワークスス1)を用 いて収集した ${ }^{2)}$ ，収集したコーパスの統計情報を 表 2 に，コーパス中の発話例を表 3 に示す. 表 3 よ り, 定義された応答を気が効いているとみなせるよ うな, 要求が曖昧なユーザ発話を収集できている ことがわかる. 収集した 27,230 ユーザ発話を含む コーパスを, 学習データ: 検証データ: テストデー タ $=24,430: 1,400: 1,400$ の割合で分割した.ここ で，各データに含まれる各カテゴリーの割合が同一 になるようにコーパスを分割した。
$ 付録に示す.
}
表 3 コーパス中のユーザ発話例

ユーザ発話（クラウドソーシングを用いて収集） $\quad$ システム応答（あらかじめ定義）

汗をかいて気持ち悪い 周辺の温泉を検索しましょうか?

歩くと時間がかかるな.

周辺のバス停を検索しましょうか？

子供達がお腹が減っちゃって駄々こねてるね.

最近は和食が多くて少し飽きてきたんですよね.

周辺の子供向けレストラン・ファミレスを検索 しましょうか?

いい景色だな

周辺の肉料理を検索しましょうか?

皆にホテルの部屋番号を伝えないと.

カメラを起動しましょうか?

メッセージを起動しましょうか？

表 4 使用した事前学習済み BERT モデル

 &  &  & 日本語 Wikipedia & Juman++[6] \& BPE[7] & 32,000 \\

図 2 ユーザ発話の分類タスクとモデル

## 3 ユーザ発話分類モデル

前節で収集したコーパスを用いて，ユーザ発話を 対応する応答のカテゴリーへと分類するモデルを構築・評価した。

## 3.1 分類モデル

図 2 にユーザ発話の分類タスク及びモデルの概要 を示す. 分類モデルは入力されたユーザ発話を, そ のユーザ発話に紐付けられた対話エージェントの正解応答カテゴリーへと分類する. 具体的な手続きと しては，BERT[5]によってユーザ発話を分散表現へ と変換した後, 1 層の Multi Layer Perceptron (MLP) に よって各カテゴリーに対応する確率值 $p$ を算出し,全 70 カテゴリーのうち最も高い確率值を持つカテ ゴリーを予測カテゴリーとして出力する. モデルの 学習には Softmax Cross Entropy 損失関数を用いる.

表 7 ユーザ発話の分類を間違えやすいカテゴリー

## 3.2 実験

本実験では BERT モデルとして, Wikipedia 記事 などを対象に事前学習を行った 5 つの日本語 BERT モデル $[8,9,11]$ を用いた. 表 4 に使用した事前学習済み BERT モデルの一覧を示す. 各モデルは隠れ 層の大きさなどのモデルサイズ [5] や学習に用いた コーパス，文をトークンに分割するためのトークナ
表 8 正解カテゴリーと誤って分類したカテゴリー

イザーなどが異なっている.

構築した分類モデルの性能を，テストデータを用 いて評価した結果を表 5 に示す. R@5 (Recall @ 5) は, 分類モデルが出力した正解カテゴリーの順位 が，上位 5 位以内に含まれている割合である．MRR $(0<M R R \leq 1)$ は Mean Reciprocal Rank の略であり,次式の通り算出される.

$
M R R=\frac{1}{|U|} \sum_{u \in U} \frac{1}{\operatorname{rank}_{u}}
$

ここで $\operatorname{rank}_{u}$ はユーザ発話 $u$ に対応する正解カテゴ リーについて, 分類モデルが出力した順位を意味 し，U はテストデータに含まれるユーザ発話の集合 である. Acc. (Accuracy), MRR ともに数值が大きい ほど，分類モデルの性能が高いことを意味する.

表 5 を見ると，どのモデルも $55 \%$ 以上のユーザ発話に対応する正解カテゴリーを予測できているこ とがわかる. また R @ 5 の数値より, どのモデルも $83 \%$ 以上のユーザ発話に対応する正解カテゴリーの 順位を上位 5 位以内に予測できていることがわか る. 全体の傾向として, 事前学習に SNS コーパス を用いた BERT よりも, Wikipedia コーパスを用い た BERT の方が性能が高い.ここで, 学習データ中 のユーザ発話をトークナイズした後の, モデルごと の未知語の割合を表 6 に示す. 表 6 より, SNS コー パスから構築したトークナイザーを用いた場合より も, Wikipedia コーパスから構築したトークナイザー を用いた場合の方が，未知語の割合が低いことが わかる. すなわち SNS コーパスよりも, Wikipedia コーパスの方が本研究にて対象とした観光ドメイン に関連するテキストが多く含まれていたため, 事前学習に Wikipediaコーパスを用いた BERT の方が性能が高かったと考えられる。

さらに，どのカテゴリ一応答に先行するユーザ発話の分類を間違えやすいのかを調査した結果を表 7 に示す. 誤り数は全モデルの平均を算出したものを 使用している. 表 7 を見ると, 正解カテゴリーが自然・風景である場合の先行発話の分類を最も多く間違えており,こうした先行発話を正解カテゴリーに 分類することが難しいことがわかる.

ただし，詳細な分類結果を見ると，分類誤りとさ れているものが実際には分類誤りでない場合があ る. 正解カテゴリーと誤って分類したカテゴリーの 例を表 8 を示す. 表 8 を見ると，これらのユーザ発話は正解カテゴリーの他に, 予測カテゴリーの応答 を用いたとしても誤りというわけではない。つま り, これらの応答カテゴリーに対応するユーザ発話 はそもそも複数の応答候補を取り得る，マルチラベ ル問題であり, ユーザ発話と応答カテゴリーを一対一で対応付ける今回の収集方法は，こうした対応を 収集できていない可能性が示唆される.

## 4 おわりに

本論文では, 対話エージェントの機能に着目し, ユーザの曖昧な要求と対話エージェントの気の利い た応答を含むコーパスを収集した，具体的な方法と して，APIに基づきあらかじめ定義された対話エー ジェントの応答に対し, その応答が気が利いている とみなせるような先行発話をクラウドワーカーに入力してもらった。さらに，収集したコーパスを用い て, 曖昧なユーザ発話を対応する気の利いたシステ ム応答のカテゴリーへと分類する分類器を構築し た. 構築した分類器を評価した結果, $55 \%$ 以上の正解カテゴリーを 1 位に， $83 \%$ 以上の正解カテゴリー を 5 位以内にランク付けできることが判明した。

一方で, 曖昧なユーザ発話は複数のシステム応答 カテゴリーと紐付き得ることが示唆された. 今後は こうした複数の意図として解釈し得るユーザ発話に 対して，マルチラベリングなどの手法を適用するこ とを検討する.

## 謝辞

本研究にご協力いただいた理化学研究所革新知能統合研究センター観光情報解析チームの皆様に感謝 いたします.

## 参考文献

[1] Andrea Madotto, Chien-Sheng Wu, and Pascale Fung. Mem2Seq: Effectively Incorporating Knowledge Bases into End-to-End Task-Oriented Dialog Systems. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (ACL), pp. 1468-1478, 2018.

[2] Andrea Vanzo, Emanuele Bastianelli, and Oliver Lemon. Hierarchical multi-task natural language understanding for cross-domain conversational ai: Hermit nlu. In Proceedings of the 20th Annual SIGdial Meeting on Discourse and Dialogue, pp. 254-263, Stockholm, Sweden, September 2019. Association for Computational Linguistics.

[3] Paweł Budzianowski, Tsung-Hsien Wen, Bo-Hsiang Tseng, Iñigo Casanueva, Stefan Ultes, Osman Ramadan, and Milica Gašić. MultiWOZ - a large-scale multidomain Wizard-of-Oz dataset for task-oriented dialogue modelling. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pp. 5016-5026, Brussels, Belgium, October-November 2018. Association for Computational Linguistics.

[4] Dongyeop Kang, Anusha Balakrishnan, Pararth Shah, Paul Crook, Y-Lan Boureau, and Jason Weston. Recommendation as a communication game: Self-supervised bot-play for goal-oriented dialogue. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), pp. 1951-1961, Hong Kong, China, November 2019. Association for Computational Linguistics.

[5] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In Proceedings of the 18th Annual Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (NAACL-HLT), pp. 4171-4186, 2019.

[6] Arseny Tolmachev, Daisuke Kawahara, and Sadao Kurohashi. Juman++: A morphological analysis toolkit for scriptio continua. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, pp. 54-59, Brussels, Belgium, November 2018. Association for Computational Linguistics.

[7] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 1715-1725, Berlin, Germany, August 2016. Association for Computational Linguistics.

[8] 柴田知秀, 河原大輔, 黒橋禎夫. BERT による日本語構文解析の精度向上. 言語処理学会 第 25 回年次大会 発表論文集 (ANLP), pp. 205-208, 2019.

[9] National Institute of Information and Communications Technology (NICT). NICT BERT . 2020.

[10] Taku Kudo. MeCab .
2006.

[11] Takeshi Sakaki, Sakae Mizuki, and Naoyuki Gunji. Bert pre-trained model trained on large-scale japanese social media corpus. 2019.

[12] Taku Kudo and John Richardson. SentencePiece: A Simple and Language Independent Subword Tokenizer and Detokenizer for Neural Text Processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (EMNLP), 2018.

## A 付録

## 【概要】

観光寀内中の気の利いた応答に先行する発話を入カしていただくお仕事です。

## 【依頼内容】

作業 :

京都を観光しているあなたのために、観光寀内アブリが特定のカテゴリーの観光スボットを検索するような応答を生成しま した。

その観光案内アブリの応答を気が利いているとみなせるような、あなたの先行発話を入カしてください。

以下に例を示します。

例 :

$\cdot$対話（良い例）

あなたの発話（入カしていただくもの）：ちょつと歩き疲れたな。

相手の応答（与えられるもの）：周辺の休息所を検索しましょうか？

. 対話（覀い例1）

あなたの発話（入カしていただくもの）: 周辺の休覫所を検索して。

相手の応答（与えられるもの）：周辺の休意所を検索しましょうか？

$\cdot$対話（覀い例2）

あなたの発話（入カしていただくもの）：休㮩所に行きたいな。

相手の応答（与えられるもの）：周辺の休息所を検索しましょうか？

【報酬】

10 種類のシチュエーションにおけるユーザ発話入力で100円になります。

【注意事項】

あなたの発話は明示的に検索を要求するような形では書かないでください。

あなたの発話は検索するスポット名を含むような形では書かないでください。

明らかに提示されている条件に沿わない発話である場合，また記入漏れがある場合は非承認となる可能性があります。全2種類から一つタスクを選択して入カしていただく形になります。

各タスクについて、お一人様一件までの入カとしてください。

その他ご垍問等ありましたら、気軽にお問い合わせください。

ご応㔍をお待ちしております!

## :

## 4. 対話1 必須

あなたの発話：(ここに当てはまるものを入力してください)

相手の応答 : 周辺の遊固地を検索しましょうか?

30文字以下

図 A. 1 コーパス収集におけるインストラクションおよび入力フォーム.

図 A. 1 はコーパス収集におけるインストラクションおよび入力フォームの一例である．本研究で収集する ユーザ発話は要求が曖昧である必要があるため, 良くない例として「周辺の休暞所を検索して.」という要求 が明確な発話を挙げ，そのような発話は入力しないよう注記している．1 人のワーカーごとにそれぞれ異な る 10 カテゴリーに対してユーザ発話を入力してもらった.
 田中 翔平 1,3 , 吉野 幸一郎 ${ }^{2,1,3}$, 須藤 克仁 1,3 , 中村 哲 1,3  \{tanaka.shohei.tj7, sudoh, s-nakamura\}@is.naist.jp, koichiro.yoshino@riken.jp  1 奈良先端科学技術大学院大学  2 理化学研究所 ロボティクスプロジェクト  3 理化学研究所 革新知能統合研究センター 