2017 年 59 巻 10 号 p. 658-665
対話システムの利用は近年産業界でも注目を浴びており,一般ユーザーが利用可能な対話システムも数多く提供されている。本稿では対話システムの概要について,実際のいくつかの対話システムの動作結果や対話システムの仕組みの概略,関連するタスクの内容を通じて,専門外の読者にもわかりやすく紹介する。そのうえで,一研究者の視点から,対話システムの現状と将来について議論する。
ここ数年,人工知能に関連する話題が大きな注目を浴びている。その原動力は,産業的な期待によるところが大きいようである。期待が投資を呼び,投資が成果と新たな応用への期待を要求する。そして今(少なくとも執筆時の数か月では),どうやら対話システムが次なる期待を集めているようである。
そこで,対話システムに大きな興味と期待を持つ一研究者としての視点から,本稿では対話システムについていくつかの事例を挙げつつ,対話システムや自然言語処理が専門でない方にもわかりやすく紹介する。
身近なところでは,Microsoft社の「りんな」「Cortana」,NTTドコモ社の「しゃべってコンシェル」,Apple社の「Siri」,Google社の「Google Assistant」等々,各社からさまざまな対話システムが提供されている。
対話システムを大きく分けると2種類ある。特定のタスクの達成を目的にするものをタスク指向型対話システムと呼び,雑談的に対話を続けるものを非タスク指向型対話システムと呼ぶ。
対話システムとは,誤解を恐れず端的にいえば「人間とおしゃべりするシステム」といえよう。ただこの表現では,ユーザーである人間と言語情報を通じた会話をするのみのように聞こえてしまうが,表情やジェスチャーなど非言語情報も重要である。さらに,対話する相手がどのような見た目,またどのような人物設定であるかということも大きな影響を及ぼす。このように非言語情報は重要であるが,本稿では,言語情報を通じた対話システムに焦点をあてて記述する。
本章では,初期の対話システムとしてもっとも有名であろうELIZA(イライザ)と,チューリングテスト,現代の対話システムを順に紹介する。
2.1 初期の対話システムELIZA1)は,1960年代に開発された対話システムである。ELIZAは達成すべき特定の目的がないので,非タスク指向型対話システムといえる。ELIZAではキーワードのリストと対応する言語表現パターン,返答用テンプレートを定義しておく。そして,ユーザーの入力にそれらのキーワードがないかを探し,もしあればパターンマッチを実行して,入力から単語やフレーズを抽出する。最後に抽出した単語やフレーズを定義済みのテンプレートにはめ込み返事をする。たとえば
(キーワード)面白い
(パターン)Xは面白い
(テンプレート)どうしてXは面白いと思うの?
といった具合である。
こうした記述をスクリプトと呼んでいるが,ELIZAの有名なスクリプトとして,精神分析医をシミュレートしたといわれる「DOCTOR」がある。DOCTORは英語のテキスト入力に対して英語で回答する。UNIX系のOSには標準で入っていることの多いEmacsエディターで,“M-x doctor”(“M-x”は,Escキーを押した後xキーを押す,に相当する場合が多い)というコマンドを打てば起動するのでお試しいただきたい。図1に筆者が試してみたDOCTORスクリプトとの対話の例を掲載する。カッコ内は筆者による拙訳である。仕組みをわかったうえで観察すると,なぜこのような応答が返ってくるのか理解できる。
たとえばELIZAでは,あくまで人間が記述したスクリプトの範囲でしか応答ができない。それでは会話がつながらなくなってしまうので,スクリプトのパターンで答えるのが難しい場合にはある種オウム返し的な答えをしたり(A),なにがしか話題を転換したりするよう(B)工夫されている(図1)。また答えられる範囲内であれば,ユーザーに疑問を投げかけることで会話を続けさせるようにしている。
ELIZAは人工無脳(あるいはチャットボット,ボット)などと呼ばれる対話システムの元祖といえよう。ELIZAが登場した際,ユーザーによってはこれがパターンマッチで動作しているとは信じなかったという。現代でも,掲示板やTwitterなどで相手が機械だと気づかず会話をしている場面を見かけることがある。後述の図3の場合では,筆者はかなりの部分の応答に違和感を抱いたが,読者の皆様はどうお感じになっただろうか。人間同士でも,相手の話の一部が聞き取れなかったり,理解できなかったりする部分があっても,推測して補うことで対話が成立している(と思っている)ことはよくあるだろう。対話が成立しているのかどうか,その基準は必ずしも明確ではない。
基準が明確でないのであれば,作成された対話システムの良しあしはどうやって評価すればよいのだろうか。テキストで対話文を与えたときに,その返答に対して自動的に何点と数値が出せれば低コストで評価ができてよいが,どういうときに何点をつけるかということ自体が研究テーマであり標準的な評価指標はないだろう。コストはかかるが,何人かの人間に頼んでシステムの自然さを,たとえば5段階で評価してもらうような主観評価が主流といえよう。
対話システムの評価として有名なものに,チューリングテスト2)がある。評価者(人間)に,テキスト入出力のみに限定した状態で対話をしてもらい,相手が機械(コンピューター)か人間かを見分けてもらう。機械でなく人間であると判定されればテストに合格したことになる。実際のテストは時間制限を設けて,その間の対話で判定を行う。毎年,そのようなチューリングテストのコンテストに賞金を懸けて行っている,「ローブナー賞」3)というものがある。毎年賞金額やルールが異なるが,2016年の場合は次のような設定であった注1)。4人の審査員が2人の相手とそれぞれ25分間やりとりをする。この2人の相手のうち片方は人間,片方はシステムであり,審査員はどちらが人間かを推測する。システムがインターネット接続することは許されていない。2016年に優勝したMitsukuの開発者がシステムを公開しており,ブラウザで試すことができる注2)。また,2014年には別のチューリングテストをパスしたというシステムが話題になった。5分間のテストの後で,33%の審査員が人間であると判断した。ただし,このシステムはEugene Goostmanというウクライナの13歳の少年という設定になっており,設定が影響し幼稚にみえる会話が許されたという面もありそうである。
関連する有名な議論として,「サールの中国語の部屋」4)と呼ばれる思考実験がある。部屋の中にアルファベットしかわからない人を閉じ込めておき,中国語の文字だけを使用して外部とやりとりをする。漢字が読めないため意味はわからないが,部屋には〇△×と書いてあったら△〇×と書いて返せ,というようなマニュアルが置いてあり,ひたすらその指示に従って作業をする。すると,室内にいる人は意味がわかっていないのに部屋の外からは中国語を理解しているようにみえるというものである。つまりチューリングテストでのやりとりだけをみて判断しても,言葉を理解している,知能があるとはいえないのではないか,という議論である。室内にいる人とマニュアルを一体と考えれば,全体として理解しているといえるという反論も考えられる。ただ現在の対話システムはまだ,チューリングテストに合格しているとしても非常に限られた時間,局面のみであるようにみえる。
チューリングテストは本質的には妥当な評価基準ではないかと筆者は思うが,現実にはテスト時間が有限で,テストに合格することだけに特化するとどうしても「制限時間内の逃げ切り」という方向になりがちである。その結果,ELIZA同様の表層的な情報の処理に終始していては,私だけでなく多くの方が期待する対話システムの未来の姿とは違ってしまうと思われる。
2.3 現代の雑談対話システムMicrosoft社の「女子高生AI りんな」は,現在最もユーザーの多い雑談対話システム(非タスク指向型対話システム)の一つといえる。本節の説明は主に2016年時点の論文5)に基づいている。りんなには「恋愛相談」などいくつかのモードがあるようで,その際はタスク指向型対話システムのようにふるまうが,中核はチャットワーカーと呼んでいる雑談対話システムになろう。この対話システムでは,学習用に大量の発話ペアデータを準備したうえで,教師付き機械学習によりユーザー入力に最も類似した発話ペアを決定し,これを回答として用いている。教師付き機械学習とは,入力に対し期待する出力を付与した訓練データを用意し,この訓練データを機械が学習することで出力の不明な未知の入力データに対しても出力を推測できるようにする手法である。類似度は主に出現した単語によって計算している。
こうした発話ペアデータと教師付き機械学習を用いた手法は,統計的な対話システムの多くに共通しているようである(図2)。強化学習を利用する場合,やはり対話データをある種の正解として訓練に用いるが,状態遷移を訓練することになるため「会話の流れ」を学習することが期待される。
いずれにせよ,ユーザーとの対話を通じて学習データを蓄積し,学習により「賢く」なっていくことが期待されているだろう。
対話破綻検出チャレンジ注3)は,雑談対話システムと人間の対話ログから対話の破綻(システムが文脈的に不適切な応答をした箇所)を検出する技術(対話破綻検出)に焦点を絞り,参加者が各自開発した手法や技術を持ち寄ることで互いの技術を高め合うことを目的とした学術的なタスクである6)。システムの発話に対して破綻しているかどうか自動判定できれば,そのようなシステム発話を抑制することでより自然な応答を返す対話システムが構築できる。また,対話が破綻する理由を探究すること自体にも大きな意義がある。
タスク開催にあたり,対話システムとユーザーのテキスト対話が記録された対話データが参加者に配布された。現在は,一般にも公開されている。この対話データには,システムとユーザーの発話したテキストに加え,別途アノテーター(評価者)が各発話ペアについて対話が成り立っているかどうかのアノテーション(正解ラベル)を付与している。ラベルは,○,△,×の3種類である。ラベルは同一のシステム発話に対し複数のアノテーターが付与している。図3は対話データの例である。
対話データは1対話につき,システムとユーザーの発話あわせて21発話からなっている。対話破綻検出チャレンジはこれまで2年にわたり2度開催された。1年目の2015年は,訓練データとして2~3名のアノテーターがラベル付与した1,046対話と,24名のアノテーターがラベル付与した100対話のコーパスが作成された。そして開発・評価データとして100対話に30名のアノテーターがラベル付与したコーパスが作成された。2年目は使用する対話システムを3種類に増やしたうえで,各システムにつき100対話,計300対話について30名のアノテーターがラベル付与したものが作成された。1年目(2015年)は,最終的な〇,×,△を決める基準を段階的に変えて多段階で評価したが,2年目(2016年)は多数決によって〇,×,△のいずれかに決めたうえで用いられた。
1年目は6チーム,2年目は8チームが参加した。結果はチームによりばらつきがあるが,おおむね5~9割程度の正答率であった。正答率に幅があるのは,1年目のデータと2年目のデータ,2年目の中でも使用する対話システムによって結果が異なるためである。参加チームの多くは機械学習を用いていたが,ルールベースのものもあり,必ずしも明確な性能差があるわけではなかった。
あらためて図3の例についてラベルをつけるという視点でみると,この課題の難しさがわかる。アノテーターの判断も割れているが,実際のところ破綻と不自然の間くらいのものが多いようにみえる。たとえば図3の例の最後の部分で「U:運動は気分転換になりますからね。」に対しシステムが「S:運動は気分転換になってるんですね。気分は大丈夫ですね」と答えている。このシステム発話に対するアノテーターの評価は「○11 △15 ×4」で,おそらく後半の「気分は大丈夫ですね」という部分をおかしいと考えるか,意味としては正しいと解釈したかで判断が分かれたのではないかと思われる。
対話を破綻と考える理由もよくみてみると,口調が不自然であるというものから,過去の対話内容を「理解」していないだろうと思われるものまでさまざまである。解決に必要と考えられる要素技術も語彙の不足から意味解析までさまざまと思われる。システムの観点からみると,単語のみを抽出して用いる,過去に蓄積したデータをテンプレート的に利用して返す,といった原因で不自然になってしまった部分があるようにみえる。
対話破綻検出チャレンジで提供されたデータのアノテーター間の一致率を示すκ統計量は0.2~0.5の範囲であり,一致率はかなり低いと考えられる。この種の課題では「正解」を決めるのは人間の認識であり,機械はそれをどこまで復元できるかが目標になる。そもそも人間同士が一致しない場合は機械にとっても困難なタスクとなる。
本章では対話システムの構成を,もう少し一般化して説明する。図4は対話システムの典型的な構成例である。図4では音声対話を想定したものになっているが,テキスト入出力の対話システムであればこの図4から音声認識と音声合成を除いたものになる。実際にはもっと細かい機能ブロックから構成されることもあるが,基本的に独立した機能ブロックを組み合わせる形で構成されることが多い。これは対話システムに限らず,自然言語処理を用いたシステムではよくみられる設計である。機能ブロックの要素一つひとつがそれ自体複雑で,要素の作成自体が研究分野をなしているレベルである。そのためすべてを一から作成するのは現実には難しく,既存のツールやリソースを利用することが多い。
図4の典型的な対話システムの流れを,乗車券の予約をするシステムの例だとして説明する。ユーザーが「浜松まで」と発話したとする。「音声認識」ではこの音声波形をテキストに変換する。
「言語解析」では変換されたテキストを解析し,さまざまな情報を抽出する。たとえば「浜松 / 名詞 / 地名」「まで / 助詞」というように,形態素解析,品詞解析,固有表現解析,あるいは係り受け解析や主語述語の解析などである。
「対話戦略」では,そうした言語解析の結果を用いて,応答する内容を決定する。乗車券の予約であれば,対話を通じて少なくとも出発地と目的地を確認する必要がある。「浜松まで」という入力から,目的地が「浜松」であると判断できれば,あとは出発地を確認する必要がある,といった具合である。
このとき,すでにそれまでの対話で出発地が確認済みであれば,予約終了の手続きに移ることになるかもしれない。つまり次に何をすべきかは,うまく対話の流れの中での「状態」を定義して,ユーザー入力とシステム出力に応じて状態遷移をすることで決定できる。対話戦略の部分は対話システムとその目的によってさまざまである。
「対話戦略」で応答したい内容が決まったら,これをもとに応答テキストを生成する。生成といっても,一から自然な文章を作り上げるのはまだ難しいため,多くの場合ではテンプレートとなるテキストが用意されており,そこに単語を当てはめることでテキストを生成する。たとえば「Xまでですね。どこからですか?」というテンプレートを用意しておいて,Xに「浜松」を当てはめるという具合である。
最後にこうして生成された「浜松までですね。どこからですか?」というテキストを音声合成システムで音声波形に変換し,発話する。
ここでは単純な例で説明したが,ユーザーはどんな自然言語の入力もできてしまうので,予期しない入力が来ることは多々考えられる。先の乗車券予約の例はタスク指向型対話システムであり,目的が限定される分,予期できなかった入力は目的に関係がなければ対応できなくてもある程度許されるだろう。しかし乗車券の予約だけだとしても,対話の状態とテンプレートの準備に大変な労力が必要である。さらにテーマを問わない雑談となると,あらゆる入力に対応しなければならない。そうなると機械学習を用いて自動的な対話の学習を行うシステムが期待されるが,人間のように自然な対話ができるようなシステムはまだ存在しない。
産業的な期待の高さを考えると,公開されている対話システムは1~2年程度の遅れはあるにせよ,おおむね最新の研究成果を反映したものと考えてよいのではないだろうか。だとすると,現段階で利用可能な対話システムは,率直にいってまだ「人間にははるかに遠い」といわざるをえないのではないか。たとえば対話システム同士で会話をさせると,ほとんどの場合で会話がかみ合っているようにはみえないだろう。システムが意味深長な発言をしたというようなニュースを目にすることがあるが,残念ながらテンプレートの返答あるいは,大量のデータの中からたまたまそのような対話ができただけのようにみえる。実際のところは,試してみれば一番正確に判断ができるだろう。
関連分野の開発者,研究者が急激に増加しているであろうことを考えると,この原稿を執筆している間にも新たな発展があるかもしれないが,最後に筆者からみた現在の課題点を考察する。
まず,対話システムを構築する直接的な手法として,現在主流といえる教師付き機械学習でよいのかという問題がある。言語表現の無限の組み合わせを考えると,既存のデータから発話と応答のペアをとってきたとしても,その応答は唯一の正解ではなく,本来は潜在的に無数の「正しい」応答がありうる。一方で理論的に無限といっても,人間の一度の発話,そして人生の短さを考えれば,バリエーションは有限で学習データをどんどん増やしていけばだいたい「類似」した対話ばかりになるから,大規模データによる教師付き機械学習でうまくいくという考え方もあろう。
組み合わせの議論と関連するが,類似度を計算して既知の対話から近いものを持ってくるとしても,構文や意味など単語レベルよりも深い解析の結果を用いる7),8)ことで,探索空間を狭めてより精密な計算が可能になるのではないか。たとえば,「その話が」と言われたときに「その話」が何を指しているのかわからないと,対話は成立しづらいだろう。
もし人間並みに自然な対話システムが実現したならば,その応用可能性は極めて大きい。日々膨大なデータを扱う計算機と人間との仲立ちをするインターフェースとして自然言語が使えたならば,人間と機械の協働のありようは一変するのではないか。筆者も主に自然言語処理部分を担当するオーガナイザーとして参加している「人狼知能プロジェクト」9)では,会話ゲーム「人狼」のプレーヤーを人工知能により自動化することを目標としている。「人狼」ゲームは会話を通じて他のプレーヤーの信頼を得たり,うそを見破ったりすることがカギとなるため,機械が人間の信頼を得られるかという点で社会的な意味も大きい挑戦的なプロジェクトといえる。そのためには表情やジェスチャー,論理的な推測などに加えて,言語を通じた自然な対話の実現は,必須の土台であろう。
自然な対話を行うということは,単に言語情報をやりとりするというよりも,実は人間のほとんどあらゆる知的機能を含んでいるのではないだろうか。
後天的な知識については,人間は成長過程でさまざまに獲得するものと思われるが,機械はどう学んだらよいのか。さらに,対話するときは暗黙のうちにたくさんの前提を共有している。身体性,対話相手のこと,自分と対話相手のいる物理的な世界のこと,人間とは何か,社会とはどういうものか。仮に同じ言語を話したとして(言語自体が文化に依存しているのであろうが),共有する前提が惑星や恒星,物理法則くらいとなる,宇宙人と対話ができるのだろうか。
思考とはどういう処理か,意識をもつとはどういう状態か。こういった高度な人間の知的機能のメカニズムが十分わかっていないと,自然な対話を実現するシステムの構築は難しいように思われる。
先天的,あるいは遺伝的に決まるであろうことについていえば,他にありえたかもしれない無数の可能性の中で,人間とその脳はたまたま今のような構造をしている。脳は理論的に何でもできるようでありながら,その構造や記憶の容量をはじめさまざまな物理的制約がある。そういった制約を考えると,人間と親和するより人間に近いシステムは,万能的なものよりも,いかに人間に近いかが重要ではないかと考えている。かなうことならばその一部だけでも,自分の手で実現させたいものである。
静岡大学 情報学部行動情報学科准教授.博士(情報理工学)。2001年東京大学 理学部物理学科卒業,2007年同大学院 情報理工学系研究科博士課程単位取得退学。東京大学大学院 情報理工学系研究科特任研究員,科学技術振興機構さきがけ研究者などを経て,2014年より現職。質問応答, 電子カルテの処理,論文のテキストマイニングなど自然言語処理技術の応用と,より自然な対話システムの構築に興味をもつ。