人同士のリアルタイムコミュニケーションを担う雑談対話。これをロボットで実現し、コミュニケーションのパートナーとするべく、リアルタイムの対話システムを研究している杉山弘晃さんに話を聞きました。
答えてくれる人
杉山 弘晃
NTT コミュニケーション科学基礎研究所
コミュニケーション環境インタラクション対話研究グループ
専門:対話システム,乳幼児の言語発達
Q.杉山さんの研究について教えてください。
A. コミュニケーション・パートナーとなる、ロボットを使ったリアルタイム雑談対話システムについての研究をしています。対話を成立させるには実は雑談が必須です。人同士の会話の中で60%くらいは雑談と言われています。実際に目的が決まっているタスク指向型の対話ロボットであっても、多くの人が雑談をしようとします。その際に、「お名前は?」とか「出身はどこ?」といった簡単な質問に答えられないロボットだと性能が低いと思われてしまい、信頼関係が生まれず、利用されなくなってしまいます。言い換えると、タスク指向型のロボットであっても、利用してもらうためには、雑談くらいはできる必要があるわけです。このジャンルはNTTコミュニケーション科学基礎研究所の研究が火付け役となっていて、海外よりも国内のほうが議論や研究が進んでいます。対話システムには大きく分けて、タスク指向型と、目的のない非タスク型(雑談型)があります。タスク指向型は、例えば「レストランを探す」といった特定の目的を持っているものです。タスク達成のために必要な条件が決められていて、対話内の言葉でその条件が満たされると、該当する情報を発話する仕掛けです。そのため、人側が適切な発話をすれば、精度の高い応答ができます。一方の雑談型は、対話の継続以外に目的やゴールが明確に決まっておらず、話題も広くなります。実際、研究で3680の雑談を精査すると、18000もの話題が含まれていました。単純にこの話題の数に対応するのであれば、参照するための膨大なデータベースが必要になります。タスク指向型に比べると雑談型システムは、難易度が非常に高いのです。
目的が決まっているタスク指向型の対話システムに加えて、雑談に対応する非タスク型(雑談型)の対話システムが増加傾向にある。
以前から、人工無能などテキストベースでのリアルタイム対話システムはありました。その後、対話システムは、ドコモの「しゃべってコンシェル」や、アップルのSiriのようなスマホの中の実用的なプログラムとして登場するようになりました。しかし、最近では、小型のロボットなど実体化したものが増えています。私も最初はモニターの中のCGを使ったテキストベースの対話システムを制作していましたが、現在はロボットを使っています。ロボットを使うと、音声認識や音声合成、ジェスチャの生成など考えることも増えますが、一方で音声以外の情報によって発話内容の不整合に気づきにくくなるなど、対話を続ける上でのメリットもたくさんあります。ロボットでどんなことができるか、試行錯誤を続けているところです。Q.ロボットはどういう仕組みで対話しているのですか?
A. いくつかの方式があります。まず、入力と出力のパターンを決めておくルールベースのシステムです。多くの商用システムで採用されている方式で、ルールが合致する範囲では品質の高い受け答えが可能です。ただし、雑談に対応するには膨大なルールが必要となります。次に、新聞記事やブログ、Twitterのツイートなどの大規模なデータベースからキーワードを検索して発話に利用する検索ベースの対話システム。これは、ほとんどの話題に対して何かしらの応答が可能ですが、重要でない部分を拾うと関連性が低くなり、逆に類似度が高すぎるとオウム返しになって会話が続きません。私は、それを解消するために、関連する話題をロボット側で付加して発言する、係り受けを利用した発話システムを作りました。例えば「お腹が空いた」という発話に対して、「ご飯+食べる」を導きだし、「お腹が空いたらご飯を食べましょうか」という高度な応答発話を生成します。係り受けを利用した発話の生成は、重要と思われる言葉を抽出して関連話題のデータベースを参照し、文章を合成する。オウム返しを抑制し、関連性の高い話題を発話できる。
しかし、これでも雑談をするには不十分でした。人は雑談の中で「お名前は?」などの相手のパーソナリティに関する質問をします。係り受けベースのシステムではこれに対応できません。そこで、パーソナリティに関する質問と応答の組み合わせを大規模に収集して、Person DataBase(PDB)を構築しました。話題の多様性をカバーする係り受けの発話生成と、PDBを利用した質問生成と応答の組み合わせで、数ターンの対話を確実に実現する雑談対話システムを制作しました。Q.雑談対話システムはどこまで進化していくのでしょうか?
A. 雑談対話システム自体は、まだ発展途上です。しかし、雑談自体は話題の多さだけでなく、単語が複雑だったり、目的が不明確だったり、一般常識が必要だったりするため、従来のアプローチでそれらをカバーするのは非常に困難です。そこで、別のアプローチで対話の破綻を減らし、相手への信頼度を上げる工夫を試みました。ひとつは、2台のロボットを使って破綻を回避する方法です。片方のロボットが相づちなどでいったん文脈を切り、もう一方のロボットが係り受けベースの発話をすることで、文脈から多少ずれても気にならなくなります。これは人の認知バイアスも利用しています。話題が不連続であっても、二体目のロボットが「会話に割り込んだ」だけのような印象を与えるため、破綻感は低減されます。また、ロボット間の対話を挟み、そこに破綻がなければ対話全体も破綻していないような印象を与えるのです。
ユーザーの発話に対して相づちなどでいったん話題を切ることで、ロボット間の対話が安定していれば、
対話全体の破綻感は低減される。