イベント
[CEDEC 2017]なぜゲームのモブキャラは「膝に矢を受けてしまって」程度しか話せないのか? 産業界の研究事例から学ぶ「AIと人との会話技術」
なるほどと思わされる一方,「NPCがなぜ未だに賢くならないのか」も理解できる内容だったので,その概要を紹介してみたい。
産業界では長い研究の歴史がある,AIと人との会話技術
東中氏によると,「電話事業を行うNTTでは,もともと音声の研究が非常に盛んで,音声を使った会話や音声認識の研究をもう3,40年ほどはやっている」のだそうだ。東中氏自身も,NTTドコモの会話エージェントシステム「しゃべってコンシェル」や,地上波のバラエティ番組から生まれたアンドロイド「マツコロイド」における雑談機能の開発に携わるなど,メジャーどころに携わってきたそうだ。
さて,東中氏は対話を「自然言語で情報を授受することを繰り返す」ものであると定義し,その特徴は「対話によって外界に作用を及ぼす」点にあると語る。つまり,ある人が何かを語ると,それによってその人自身や相手の状況が変わって,次の「語り」につながっていくという特徴があるわけだ。
人間と対話するシステム(以下,対話システム)は,人工知能の最終ゴール」と言われるほど難しく,それゆえ東中氏は「知能の総合格闘技」と呼んでいるという。
一言で「対話システム」とまとめても,さまざまなタイプがある。
下に示したスライドは,東中氏が示した主な類型だが,一番上にある「タスクの有無」こそ,非常に大きな分類の1つになると東中氏は述べていた。対話システムに何か果たすべき仕事(=タスク)があるかないかが,まず対話システムを大きく2つに分けるというわけである。
タスク志向型の対話システムとは,たとえば「会議室の予約システムやレストランの案内など」(東中氏)が典型的な例で,産業界では長い研究開発の歴史があるという。一方,非タスク志向型の対話システムとは,つまり雑談のこと。こちらは「タスク志向型とは違う方向性で開発が進められている」という。
タスク志向型は,産業界における研究開発の歴史が長いだけに,かなり完成度が高まっているとのこと。実際,タスク志向型対話システムの大部分は,下のスライドのような構造で作ることができるという。
下のスライドは会議室予約システムの例だが,内部に「スロット」と呼ばれるExcelの表のようなものを持っており,その表を埋めていくという動作を行う。スライドの例であれば,「会議室」というスロットが相手の発話の解析で埋まり,続いて空いている「開始時間」と「終了時間」のスロットを埋めるように人工知能側が発話を組み立てる仕組みだ。
なお,先ほど示した「対話システムの類型」スライドにあるとおり,類型としてはそのほか,1対1なのか1対多なのか,あるいはシステム側が会話の主導権を握るか否か,どんなインタフェースで対話を行うかといった違いもある。
東中氏によると,システム側が会話の主導権を握るケースは,作る側としては非常に楽だが,逆にユーザーが主導権を握る場合は,「ユーザーが何を言い出すか分からないので」(同氏)非常に難しくなる。なので現在では,「主導権を握ったり(ユーザーに)渡したりを半々くらいで混ぜる『混合主導型』が主流になっている」そうだ。
より自然な会話には雑談が欠かせない
実用一辺倒のタスク志向型対話システムだと構造が決まっているが,より人間に近い対話を行うとなると,タスク志向型対話システムだけでは対応が難しい。東中氏によると,その理由は「人間の会話の6割以上が雑談で占められている」ため。それゆえに,現在では非タスク志向型に注目が集まっている。
というわけで,雑談に対応できる非タスク志向型対話システムが,現在どのように作られているのかを示したのが下のスライドだ。
ご覧のとおり,4つ挙がっているが,最もシンプルなのは左上にある「ルールベース」のシステムである。要は相手の発話に対する対応をルールベースに収めておく方法で,「商用ベースの雑談対話システムはほとんどこれを使って作られている」と東中氏は言う。
ルールにヒットすれば極めて質の高い対話ができるうえに,会話に間違いがないというのがルールベースの利点だそうだ。一方,ルールにないことを言われると無難な対話に終止してしまう欠点があり,ルールを蓄積するコストがかかるのが,このタイプの課題になるとのことだ。
右上にある「抽出ベース」のシステムは,Twitterなど,ネット上にあるデータから雑談らしい対話を抽出してきて活用するというもので,楽に対話データを集めることができる半面,「ノイズがとても多いことが課題になる」(東中氏)そうだ。
左下の「生成(深層学習)ベース」は,いま流行している深層学習を使った方法だが,現状,あまりうまくいっていないという。その理由は,学習に使うための対話データにいいデータがあまりないからなのだそうだ。
利用できるデータは,映画の字幕やドラマの脚本,Twitterといったものに限られ,いずれも人間の自然な会話としては質が低い。そのため,深層学習を使って生成した対話の質が,どうしても高くならないという課題があるとのことである。
右下の「理解・生成に基づく手法」は,タスク志向型の対話システムを応用して雑談に対応させたものである。ユーザーの発話をエンコードして,Twitterなどから収集してきた対話のルールなどを収めた内部の知識ベースと照合し,応答を生成する手法と言い換えてもいい。東中氏が携わっているNTTの雑談対話システムでは,これを使っているという。
より自然な会話を目指して
より自然な対話を行うためには雑談が欠かせないが,NTTではどのようなことを行っているのだろうか。
東中氏はまず,「対話のルールなどを収めた内部の知識ベース」をいかにして充実させるかが重要だとした。ユーザーの発話に対する応答のルールを豊富に持っているほど,豊かで自然な対話を行えるからだ。
ただし,「ユーザーが何を言うか」をすべて網羅するのは極めて難しく,単なるルールベースの手法だとそこに限界があるというのは前段で述べたとおりである。
そこでNTTでは,「ユーザー回答予測システム」というものを作成したという。これは,対話のルールを作成しているシナリオ作成者が,思いついた言葉を入れると,似た文脈で使われている語を候補として挙げてくれるシステムだそうだ。
具体例は下のスライドのとおりで,「できたてを食べたいものは何?」という質問に対し,シナリオ作成者が4つ程度しか回答を思いつかなくても,その4つの候補と同じ文脈で出現する語をシステムが出力してくれるという。
このような方法でルールを増やすことで,より自然な会話が可能になるわけだが,「増やせば増やすほどよいというものではない」とも東中氏は言う。
下のグラフはルール数を30万,1万,5000,1000の4通りに変えて,対話の精度をスコア化したものだ。4がスコアの中間点で,4を超えたならまずまずの精度ということになる。
グラフを見ると30万ルールが良い成績になっているが,「実は,15万ルールでも試しているが,30万ルールとスコアは大して変わらなかった」と東中氏。ユーザーの発話すべてを予測してルールを作ることができない以上,ルールの数を増やし続けても会話の精度が直線的に上がっていくわけではないというわけである。これはとても重要なポイントだと東中氏は強調していた。
さらにNTTでは,先のスライドにもちらりと出てきたように,Twitterなどのビッグデータも活用して,会話のデータベースを充実させているという。
Twitterはノイズが多い問題点を抱えるが,NTTではさまざまなフィルタを駆使して「質のいい“上澄み”の2.4%を採用している」(東中氏)とのこと。これにより,会話の精度を向上させることができているそうだ。
Twitterの会話からさまざまなフィルタを駆使してノイズを取り去り,会話のデータベースとして活用しているとのこと |
ルールとビッグデータ(Twitter)を併用することで,会話の自然さや多様性,継続性といった要素を改善できたと東中氏は言う |
また,楽しく会話を行うためにキャラクター性を持たせると言った試みもNTTでは行っているそうだ。キャラ付けには文末表現がポイントになるそうで,そういった文末表現でもTwitterのビッグデータを活用しているという。
セッションではそのほか,対話システムに身体をもたせた結果としてのロボットや,対話システムに議論をさせるといった試みも紹介されたが,自然な会話を成立させるために必要な要素は以上のようなところだろう。
自然な会話を行うためには「雑談に対応できる能力」が欠かせず,そのためには膨大なルールや会話のデータベースが必要になるというのが本稿の要点となるが,翻ってゲームのNPCが20年前と変わらず単調な会話しかできない理由もそこにありそうだ。会話そのものをゲームとして楽しむのでもない限り,雑談に対応するような膨大なデータベースをゲームに盛り込むのは難しい。
とはいえ,「ゲームからクラウド上の会話データベースを引っ張ってくる」といった形で,モブNPCとの会話精度を上げていくことは,将来的に可能になるはずだ。そして,そうなったとき,東中氏が今回紹介したような産業界の先行研究が役に立つに違いない。
将来,「その膝は治らないの?」「膝に矢って,何かの比喩?」と会話を続けられるようなゲームが登場することを期待したいものだ。
NTTドコモの雑談対話APIデモページ
4GamerのCEDEC 2017記事一覧
CEDEC 2017公式サイト
- この記事のURL: