曖昧な要求と気の利いた応答を含む
対話コーパスの収集と分類
田中 翔平 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

きたタスク指向型対話システム [1, 2] は，ユーザ発気の利いた対話例

話の中に明確に要求が含まれていることを前提としたものが多く，ユーザの要求が曖昧な場合に，適切し，各応答が気が利いているとみなせるような先行な応答を生成することが難しい．

コーパスを収集した．これは，API などに制約され発話を，クラウドワーカーに入力してもらうことで一方で，人間のコンシェルジュやガイドなどは，るシステム応答に応じてこれらが有効な文脈を収集

曖昧なユーザ発話に対しても気の利いた応答を行する方が，広範な文脈に対して現実的な気の利いたう．例えば，ユーザが「ここの景色は綺麗だね」と応答候補を収集できると考えたためである．

言った場合に，「写真を撮りましょうか？」などと応答することができる．このように，特定の機能をこうして収集したコーパスに対し，ユーザの曖昧な要求に対応する気の利いた応答を分類するモデ要求しておらず，またそもそも何らかの機能を要求ルを構築した．具体的には，Wikipedia などのコーしているかどうかが曖昧なユーザ発話に対しても，パスを用いて事前学習を行った BERT[5] を用いて，ユーザが望むであろう行動が可能なシステムを構築することが本研究の目的である．そこでまず，ユーユーザ発話を対応するシステム応答へと分類する分

ザ発話と，それに対する対話エージェントの気の利結果，55%以上のユーザ発話を対応するシステム応いた応答を含むコーパスを収集した．

答へと分類できることが判明した．また 83%以上のユーザとシステムの対話を想定したコーパスの収類器を学習させた．学習した分類器を自動評価した

ユーザ発話に関して，対応するシステム応答を上位集方法としては，2 人の被験者をユーザ役とシステ5 位以内へと分類できることが判明した．

ム役に割り当てて対話してもらう方法が一般的であ2

る [3, 4]．だが，全ての曖昧なユーザ発話に対してデータセット構築

常に気が効いた応答を返すことは，人間であってもユーザの要求が曖昧な発話と，そうした発話に対難しい．また，実際に気の利いた応答が認定できたするシステムの気の利いた応答を含むコーパスを収としても，システムが実行可能な行動はシステム自集する．本節ではクラウドソーシングを用いた収集

身に定義されている API などの機能に制約され，そ方法について説明する．の応答を返すことが現実的ではない場合も多い．そこで本研究では，システム側の応答 70 種類をシス

本研究で収集するコーパスは，観光案内のドメインにおいてユーザとスマートフォンアプリケーショテムが利用可能な API に基づいてあらかじめ定義ン上の対話エージェントとの対話を想定したもので

表1

対話エージェントの機能とカテゴリーのリスト機能

カテゴリー

スポット検索遊園地, 公園, スポーツ施設, 体験施設, お土産, 動物園, 水族館, 植物園,観光案内所, ショッピングモール, 温泉, 寺院, 神社, 城, 自然・風景, 美術館, 博物館, 着物レンタル, 紅葉, 桜, 人力車, 駅, バス停, 休憩所, WiFi
スポット, 静かなところ, 綺麗なところ, 楽しいところ, 広いところ, 眺
めが良いところ30

レストラン検索カフェ, 抹茶, かき氷, 和菓子, 洋菓子, カレー, おばんざい, 豆腐料理, パン屋, ファーストフード, 麺類, 鍋料理, 丼もの・揚げ物, 肉料理, 寿司・魚料理, 粉もの, 京料理, 中華, イタリアン, フレンチ, 子供向けレストラ
ン・ファミレス, 懐石料理, 精進料理, ベジタリアン向けレストラン, 居酒屋・バー, レストラン街, 朝食, 価格帯が安いレストラン, 価格帯が普通なレストラン, 価格帯が高いレストラン

30

アプリ起動

カメラ, 写真, 天気, 音楽, 乗り換え, メッセージ, 電話, アラーム, ブラウ
ザ, 地図

10

表2

カテゴリー数

して，広範なユーザの先行発話をワーカーに入力し収集したコーパスの統計情報機能

平均ユーザ発話長

発話数

スポット検索13.44(±4.69)

11,670

本研究では対話エージェントの機能をスポット

レストラン検索14.08(±4.82)

11,670

検索，レストラン検索，アプリ起動の 3 つに大きくアプリ起動

13.08(±4.65)

3,890

分けて定義した．定義した機能のリストを表 1 に示

合計

13.66(±4.76)

27,230す．各機能はそれぞれ細分化されたカテゴリーを持ある．対話は全て一問一答形式であり，ユーザは要求が曖昧な発話や独話を行い，対話エージェントはそのユーザ発話に対して気の利いた応答を返す．図
1 にユーザと対話エージェントの対話例を示す．ここでユーザの「ここの景色最高だね」という発話は必ずしも特定の機能に対する要求というわけではない．これに対して，対話エージェントが「カメラを起動しましょうか？」という気の利いた応答を返し，実際のカメラ機能を起動できるようにする．
図 1 のような対話を収集する方法として，クラウドソーシングなどを利用して，2 人のワーカーにユーザ役と対話エージェント役に分かれて対話してもらう WoZ 対話が考えられる．しかし，先に述べたように，意図の曖昧なユーザ発話に対して常に気の利いた応答を返すことは，人間にとっても難しいタスクであり，一般的な WoZ 対話では期待する気の利いた応答候補を収集することが難しい．また，対話エージェントがスマートフォン上などで稼働するアプリケーションとして実運用されることを想定
すると，その応答はアプリケーションが利用可能なAPI の機能に紐付いている必要がある．すなわち，対話エージェントにとって可能な気の利いた応答の範囲はユーザ発話の範囲と比較して限定的であり，対話エージェントの行動空間をあらかじめ定義した方がコーパスの質を担保しやすい．これらのあらかじめ定義されたエージェントの行動カテゴリーに対てもらう方法により収集する．

ち，コーパス中の対話エージェントの応答はこれらのカテゴリーに紐付いて生成される．定義したカテゴリーは全部で 70 種類である．スポット検索は特定のカテゴリーのスポットを検索する機能であり，「近隣の美術館を検索しましょうか？」といった応答としてユーザに提示される．レストラン検索は特定のカテゴリーのレストランを検索する機能であり，「近隣のかき氷を検索しましょうか？」といった応答としてユーザに提示される．アプリ起動は特定のアプリケーションを起動する機能であり，「カメラを起動しましょうか？」といった応答としてユーザに提示される．
定義した対話エージェントの応答カテゴリーに基づき，日本語コーパスをクラウドワークス1）を用いて収集した2）．収集したコーパスの統計情報を
表 2 に，コーパス中の発話例を表 3 に示す．表 3 より，定義された応答を気が効いているとみなせるよ
うな，要求が曖昧なユーザ発話を収集できていることがわかる．収集した 27,230 ユーザ発話を含むコーパスを，学習データ : 検証データ : テストデー
タ = 24, 430 : 1, 400 : 1, 400 の割合で分割した．ここで，各データに含まれる各カテゴリーの割合が同一になるようにコーパスを分割した．

1） https://crowdworks.jp/
2） 収集画面や方法の詳細は A 付録に示す．

表3

コーパス中のユーザ発話例

ユーザ発話（クラウドソーシングを用いて収集） システム応答（あらかじめ定義）
汗をかいて気持ち悪い周辺の温泉を検索しましょうか？

歩くと時間がかかるな．

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

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

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

最近は和食が多くて少し飽きてきたんですよね． 周辺の肉料理を検索しましょうか？
いい景色だな

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

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

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

モデル名
Kurohashi
Kurohashi L
NICT
NICT BPE
hottoSNS

公開元
京都大学
黒橋研究室 [8]NICT[9]hottolink[11]

表 4 使用した事前学習済み BERT モデル
モデルサイズ [5] 学習コーパス
トークナイザーBASE
日本語 Wikipedia 全記事
Juman++[6] & BPE[7]LARGE
MeCab[10]BASE
日本語 Wikipedia 全記事
MeCab & BPE
BASE
SNS 中の 85,925,384 投稿 sentencepiece[12]表5モデル

R@5 (%)

MRR

Kurohashi

58.36

87.14

0.71

Kurohashi L

57.21

86.21

0.70

NICT

55.50

83.93

0.68

NICT BPE

58.50

86.50

0.71

hottoSNS

55.14

84.36

0.68

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

ユーザ発話分類モデル

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

表7

トークナイズ後の未知語の割合

3.1

0.44

NICT

2.55

NICT BPE

0.85

hottoSNS

8.73

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

1

分類モデル

図 2 にユーザ発話の分類タスク及びモデルの概要

未知語の割合 (%)

Kurohashi (L)順位

築・評価した．

100,000
32,00032,000

ユーザ発話の分類結果

モデル

332,000

Acc. (%)

表6

図2

語彙サイズ

正解カテゴリー

誤り数

自然・風景 17.00(±2.65)

2寺院

14.60(±1.67)

3

公園

13.60(±1.52)

4

豆腐料理

13.40(±1.14)

5

ブラウザ

13.20(±1.10)を示す．分類モデルは入力されたユーザ発話を，そのユーザ発話に紐付けられた対話エージェントの正解応答カテゴリーへと分類する．具体的な手続きと

3.2

実験

しては，BERT[5] によってユーザ発話を分散表現へ

本実験では BERT モデルとして，Wikipedia 記事と変換した後，1 層の Multi Layer Perceptron (MLP) になどを対象に事前学習を行った 5 つの日本語 BERTよって各カテゴリーに対応する確率値 p を算出し，モデル [8, 9, 11] を用いた．表 4 に使用した事前学

全 70 カテゴリーのうち最も高い確率値を持つカテゴリーを予測カテゴリーとして出力する．モデルの習済み BERT モデルの一覧を示す．各モデルは隠れ層の大きさなどのモデルサイズ [5] や学習に用いた学習には Softmax Cross Entropy 損失関数を用いる．

コーパス，文をトークンに分割するためのトークナ表8

正解カテゴリーと誤って分類したカテゴリー

ユーザ発話例

正解カテゴリー

予測カテゴリー

自然に癒やされたいな

自然・風景

植物園

心を清めたいな．

寺院

神社

混雑していたから，少し気分が悪くなってきた． 公園

静かなところ京都ならではの料理ってなんだろう

豆腐料理

おばんざい

〇〇には行ったことないな．

ブラウザ

地図

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

違えており，こうした先行発話を正解カテゴリーにいて評価した結果を表 5 に示す．R@5 (Recall @ 5)

分類することが難しいことがわかる．
ただし，詳細な分類結果を見ると，分類誤りとさは，分類モデルが出力した正解カテゴリーの順位れているものが実際には分類誤りでない場合があが，上位 5 位以内に含まれている割合である．MRR

る．正解カテゴリーと誤って分類したカテゴリーの(0 < M RR ≤ 1) は Mean Reciprocal Rank の略であり，例を表 8 を示す．表 8 を見ると，これらのユーザ発次式の通り算出される．

話は正解カテゴリーの他に，予測カテゴリーの応答構築した分類モデルの性能を，テストデータを用M RR=1 ∑ 1|U| u ∈U rank uを用いたとしても誤りというわけではない．つま(1)

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

り，これらの応答カテゴリーに対応するユーザ発話はそもそも複数の応答候補を取り得る，マルチラベル問題であり，ユーザ発話と応答カテゴリーを一対一で対応付ける今回の収集方法は，こうした対応を収集できていない可能性が示唆される．

4

おわりに表 5 を見ると，どのモデルも 55%以上のユーザ発

本論文では，対話エージェントの機能に着目し，話に対応する正解カテゴリーを予測できていることがわかる．また R@5 の数値より，どのモデルもユーザの曖昧な要求と対話エージェントの気の利いた応答を含むコーパスを収集した．具体的な方法と83%以上のユーザ発話に対応する正解カテゴリーのして，API に基づきあらかじめ定義された対話エー順位を上位 5 位以内に予測できていることがわか

ジェントの応答に対し，その応答が気が利いているる．全体の傾向として，事前学習に SNS コーパスとみなせるような先行発話をクラウドワーカーに入を用いた BERT よりも，Wikipedia コーパスを用い力してもらった．さらに，収集したコーパスを用いた BERT の方が性能が高い．ここで，学習データ中て，曖昧なユーザ発話を対応する気の利いたシステのユーザ発話をトークナイズした後の，モデルごとム応答のカテゴリーへと分類する分類器を構築しの未知語の割合を表 6 に示す．表 6 より，SNS コーた．構築した分類器を評価した結果，55%以上の正パスから構築したトークナイザーを用いた場合より解カテゴリーを 1 位に，83%以上の正解カテゴリー

も，Wikipedia コーパスから構築したトークナイザーを用いた場合の方が，未知語の割合が低いことがを 5 位以内にランク付けできることが判明した．
一方で，曖昧なユーザ発話は複数のシステム応答わかる．すなわち SNS コーパスよりも，Wikipediaカテゴリーと紐付き得ることが示唆された．今後はコーパスの方が本研究にて対象とした観光ドメインに関連するテキストが多く含まれていたため，事前こうした複数の意図として解釈し得るユーザ発話に対して，マルチラベリングなどの手法を適用するこ学習に Wikipedia コーパスを用いた BERT の方が性とを検討する．

能が高かったと考えられる．
さらに，どのカテゴリー応答に先行するユーザ発謝辞

話の分類を間違えやすいのかを調査した結果を表 7

本研究にご協力いただいた理化学研究所革新知能に示す．誤り数は全モデルの平均を算出したものを使用している．表 7 を見ると，正解カテゴリーが自統合研究センター観光情報解析チームの皆様に感謝

然・風景である場合の先行発話の分類を最も多く間いたします．

参考文献[1] Andrea Madotto, Chien-Sheng Wu, and Pascale Fung.
Mem2Seq: Eﬀectively 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 OliverLemon. 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 the2019 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, andKristina 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 Conferenceon 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 subwordunits. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: LongPapers), 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(https://alaginrc.nict.go.jp/nict-bert/index.html). 2020.
[10] Taku Kudo. MeCab (https://taku910.github.io/mecab/).

2006.
[11] Takeshi Sakaki, Sakae Mizuki, and Naoyuki Gunji. Bert
pre-trained model trained on large-scale japanese socialmedia corpus. 2019.
[12] Taku Kudo and John Richardson. SentencePiece: ASimple and Language Independent Subword Tokenizer andDetokenizer for Neural Text Processing. In Proceedingsof the 2018 Conference on Empirical Methods in Natural
Language Processing (EMNLP), 2018.

A

付録

図 A.1

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

図 A.1 はコーパス収集におけるインストラクションおよび入力フォームの一例である．本研究で収集するユーザ発話は要求が曖昧である必要があるため，良くない例として「周辺の休憩所を検索して．」という要求が明確な発話を挙げ，そのような発話は入力しないよう注記している．1 人のワーカーごとにそれぞれ異なる 10 カテゴリーに対してユーザ発話を入力してもらった．