【記事更新】私のブックマーク「対話システム」


私のブックマーク

対話システム

東中 竜一郎(名古屋大学大学院情報学研究科)

1.は じ め に

 スマートフォン上の音声エージェントやスマートスピーカ,コミュニケーションロボットなど,身の回りに対話システムが見られるようになってきた.現在の対話システムは,レストラン検索のような簡単なタスクであればこなせるし,短い間のテキストチャットであれば人間とわからないレベルになった.この背景にあるのは,音声認識・言語処理技術の高度化に加え,クラウドソーシングによるデータ収集の容易化やディープラーニングの進展,豊富なコンピュータ資源が利用できるようになったことなどであろう.本稿では,対話システムに関する重要な論文やシステムを紹介しつつ,現状における対話システムの問題点や対話システム構築に役立つ情報を紹介したい.

2.これまでの対話システム研究の流れ

 対話システムは,対話によって所定のタスクを遂行するタスク指向型対話システムと,タスク達成を主目的としない非タスク指向型対話システムに大別される.後者は雑談対話システムとも呼ばれる.
 ユーザの命令に従い積み木を操作する対話システムのSHRDLUはタスク指向型対話システムの初期のものとして有名である(対話的なやり取りができるシステムとしては BASEBALLLUNARも有名なので押さえておきたい).その後,積み木の世界では実世界での適用は難しかったため,フレーム表現を用いて限られた範囲の理解を行うフレームベースシステムにつながっていった.フレーム表現とは,スロットとその値の属性値対からなる構造で,ユーザ発話をこの表現に変換することでユーザ意図の理解を行ったり,次にどのような発話をすべきかを決定したりする.フレームを用いたシステムとしてはGUSが有名である.フレーム表現を用いた方法論は現在まで続いており,深層学習を用いてスロットの値を分類・生成する方法が盛んに研究されている.また,深層学習を用いて,対話履歴からシステム応答を直接生成する方法論も取られるようになってきた.
 一方で,ロジャーズの心理療法におけるセラピストを模倣したELIZAは非タスク指向型対話システムの元祖とされる.手作業によるルールを用いて相手の発話を繰り返したり,問い返しを行うことで,まるで人間と話しているような感覚を与えるものであった.ルールベースのシステムは質の高い発話が生成できるうえに制御性が高いため商用でも現在よく用いられているが,人手作業のコストが高いので,大規模なデータから発話を検索してシステム発話として用いたり,ディープラーニングを用いた生成モデルによって対話履歴から応答を生成する手法が現在活発に研究されている.マイクロソフトのMeenaや FacebookのBlenderBot(最近はBlenderBot2が発表された)は短いターン数であれば人間と遜色ない評価値が得られるレベルとなっている.

3.最近の対話システム研究

 具体的に最近の対話システム研究を見てみよう.以下では,タスク指向型対話システム,非タスク指向型対話システムのそれぞれについて最近の取組みに触れる.また,そのほかの興味深い動向についても触れる.関連する最近の文献もいくつか列挙する.

3・ 1 タスク指向型対話システム

 現在のタスク指向型対話システムの研究はディープラーニング適用の研究が非常に多い.特に,MultiWOZと呼ばれる,マルチドメインのタスク指向型対話システムのデータセットが公開されてからこの流れが加速している.タスク指向型対話システムは,フレーム表現(信念状態と呼ぶことが多い)を中心的な情報とし,発話理解(Natural Language Understanding:NLU)状態更新(Dialogue State Tracking:DST)行動選択(Policy),発話生成(Natural Language Generation:NLG)のモジュールで構成されるが,個別のモジュール,複数のモジュール,そして,全体のモジュールを深層学習によって実現する研究が多い.近年,特にDSTとNLGのモジュールを対象にするものが多く,DSTではスロットの値を対話履歴や他のスロットの値からコピーしてきて利用するといった仕組みが用いられている.

 NLGについては,発話したい内容と発話文字列の整合性を改善する取組みが多い.

 End-to-Endのタスク指向型対話システムの実現には,大規模言語モデルであるGPT-2などをベースとした言語モデルベースの方法が注目されている.この方法は,対話履歴に対して,信念状態を出力し,その信念状態と,信念状態からバックエンドデータベース(レストランのデータベースなど)を検索した結果をさらに入力として,システムの発話内容を出力し,さらにそれを入力として,システム発話を生成する.有名な手法としてSimpleTODSOLOISTUBARなどがある.MultiWOZのリーダーボードを見ることで現在どのようなモデルが良いスコアをたたき出しているかがわかる.なお, MultiWOZ以外にもCamRest676Schema Guided Dialogue(SGD)CrossWOZなどが有名なデータセットである.

3・ 2 非タスク指向型対話システム

 非タスク指向型対話システムの研究はディープラーニング適用の研究が盛んである.特に, Dull responseと呼ばれる,ありきたりな応答をどのように避けるか,システムの個性をどのように一貫させるか,論理をどう一貫させるか,評価をどう自動化するか,といった研究が主眼となっている.
 Dull responseは,知識グラフなどの外部知識を取り入れたり,データを拡充したりすることで改善が図られている.

 一貫性の対処としては,対話含意認識をモデルに含める手法が検討され始めている.また,一貫した発話が生成されるようなモデル化も検討されている.

 なお,こうした研究は,RedditPersonaChatEmpatheticDialoguesDailyDialogOpenSubtitlesといったデータセットを用いて行われることが多い.
 評価については,これまでに多くの取組みがある.過去には機械翻訳で利用される BLEUなどがよく利用されていた.しかし,人手評価値との相関が低いことがLiuらによって指摘されてから, ADEMRUBERなどさまざまな手法が提案されている.近年は,FEDなどの正解を用いない評価尺度が着目されているとともに,人手で評価するとしても, ACUTE-EVALなど,なるべく安定した評価値を得たり,そのコストを下げたりする方法が検討されている.

3・ 3 その他の対話システム

 タスク指向型・非タスク指向型と簡単に分類できない,より複雑な対話システムの検討も進められている.読解を交えた対話(DoQAQuACShARC)や画像や動画に関する対話(Visual Dialog),さらに,3D空間内での共同作業の対話などが収集され,システムにどのように実装するかが研究されている.

 加えて,対話システムにおける倫理的な課題も検討されている.例えば,システム発話におけるジェンダーバイアスの研究やユーザ発話による情報漏洩のリスクなどについての研究も見られる.

4.ソフトウェア・モデル

 対話システムは複雑な構成を必要とすることが多く,実装面でつまずきやすい.ここでは,そういった場面で助けになるソフトウェアやモデルを紹介したい.
 まず,簡単に何かしらつくりたい場合は,ルールベースのシステムをつくるのがよい.ルール記述にはAIMLという言語が便利である. AIMLで記述したルールは Pythonの python-aimlパッケージから読み込んで利用できる.また,xAIML SUNABAでは, GUIを用いて対話のシナリオを作成することができる.筆者は対話システム講習会を実施しているが,そこでもxAIML SUNABAを用いている.xAIML SUNABAで作成したシステムはWebAPIで外部から呼べるため,自身のシステムに組み込むことも容易である.ルールの作成方法,自身のプログラムへの組込み方の詳細などは講習会サイトに説明動画があるので参照されたい.
 対話がいくつかの状態遷移で記述できる場合は,SCXMLと呼ばれる言語で状態とその遷移を記述するとよい. Pythonでは,Qt for Pythonに含まれる SCXML処理系を用いると扱いやすい.マルチモーダル対話システムの構築ツールであるMMDAgentでも状態遷移を記述できるのでこちらを用いてもよい.
 タスク指向型対話システムをつくりたい場合は, NLU, DST, Policy, NLGのモジュールをつくっていくことが必要となるが,ConvLabでは,基本的なモデルとともにこれらのインタフェースが定義されており,自身のアルゴリズムをこのインタフェースに合わせて作成することで,比較的容易に MultiWOZなどのデータを対象とした実験ができる.また, ConvLabではユーザシミュレータが備わっているので評価がしやすい.さらに,ParlAIと連動しているため,Amazon Mechanical Turk での被験者実験もサポートされている.大変便利なのでお勧めである.なお,ParlAIは,対話システムを評価するためのフレームワークであり,タスク指向型対話システム・非タスク指向型対話システム問わず,さまざまなデータやモデルがビルトインされており,システム構築や評価も行いやすくなっているのでお勧めしたい.
 ディープラーニングを用いてシステム構築をする場合に有用なものは,事前学習済みの大規模言語モデルであろう.これらはhugging faceのtransformersライブラリを用いると,さまざまなモデルをすぐに利用することができる.日本語の対話に使えるモデルとしては,京都大学黒橋研究室が公開しているBART日本語pre-trainedモデルや東北大学の乾研究室が公開しているILYS-aoba-chatbotのモデルが有用だろう.これらはfairseqライブラリを用いる必要がある.
 テキストチャットだけではなく,音声入力やロボットを使いたいという場合には,より多くのツールを組み合わせなくてはならない.このあたりの実装に便利なツールについては最近の解説記事(「対話ロボットコンペティションにおける音声対話システム構築」(音響学会誌,Vol. 77, No. 8, pp. 512-520, 2021))にまとめてあるので,ぜひそちらを参考にしていただきたいが,その中で触れたツールを列挙しておくと,音声認識はGoogle Cloud Speech,音声合成はAmazon Polly,マルチモーダル認識にはOpenPoseFace++,通信のミドルウェアとしてはROSなどがある.なお,通信のミドルウェアには,ActiveMQZeroMQもよく利用される.ロボットはVstone社のSotaやCommUが比較的安価とはいえ,気軽に購入できるというわけでもない.MMDAgentなどによるCGエージェントの利用も検討すべきであろう.

5.データセット

 ここまでで触れたもの以外の対話データセットをいくつか紹介しておきたい.正直なところ,日本語の対話データで公開されているものはそれほど多くない.
 「Pythonでつくる対話システム」の書籍サイトでは 500対話程度の人間同士のテキストチャットのデータが公開されている.その他,名大会話コーパスBTSJ日本語自然会話コーパスが日本語の対話のデータとして比較的大きなものである.名大会話コーパスについては,言語資源協会から別途対話行為のアノテーションデータが購入可能である.日本語日常会話コーパス(CEJC)は人間同士のさまざまな状況下での対話データを多数収録しており,人間の会話の多様さがよくわかるとともに,今後検討すべき対話処理の課題を検討するうえで大変貴重なデータである.
 人間とシステムの対話データとしては,筆者が運営をしていた対話破綻検出チャレンジのデータ対話システムライブコンペティションの対話ログのデータが利用できる.対話破綻検出チャレンジのデータには,各システム発話について 30名のアノテータが〇△×のラベルを付与しており,文脈におけるシステム発話の妥当性のきめ細やかな分析が可能となっている.Hazumiは人間とシステムのマルチモーダル対話データであり,書き起こしのみならず,各種センサ情報や印象評定,性格特徴アンケートの結果など多くの付加情報が含まれている.
 日本語以外のデータについては,Serbanらによるサーベイが大変よくまとまっているのでそちらを参照されたい.

6.教科書・解説記事

 談話・対話の基本的な概念の教科書としての定番は「談話と対話(言語と計算)」(石崎・伝)であろう.対話システムの教科書としての定番は「音声対話システム」(河原・荒木)である.基本的な考え方が理解できる.「対話システム」(中野ら)は,網羅的に既存研究がまとめられており参考になる.筆者らによる「Pythonでつくる対話システム」は実践的な書籍として執筆したものであり,すぐに何かつくりたい方に向いていると思う.カジュアルに対話システムのことを知りたい方は「AIの雑談力」もぜひ読んでいただきたい.話し言葉の奥深さは「話し言葉対話の計算モデル」(島津ら)がわかりやすい.対話におけるコミュニケーション分析については,「基礎から分かる会話コミュニケーションの分析法」(高梨)がわかりやすい.解説記事としては「音声対話システムの進化と淘汰」(河原)が有名である.「対話システムにおける深層学習の適用」(東中・増村)には対話処理における深層学習の手法がまとめてある.

7.国際会議・研究会・コンペティション

 対話システムの研究はさまざまな学会で発表されるため,全体像を把握することが難しい.対話システムに特化した会議のほか,言語処理,人工知能,音声・信号処理,マルチモーダル・バーチャルエージェント,ユーザインタフェース,ヒューマンコンピュータインタラクション,ロボティクス関連の学会で発表されることが多い.具体的には以下のような会議である.

 国内の研究会として特に関係しているものには以下がある. SLUDは本会の研究会であり,毎年秋から冬にかけて開催される回では対話システムシンポジウムが開かれている.対話システムに関する研究者が一同に会し,さまざまなデモンストレーションが見られる一大イベントとなっている.

 対話システムのコンペティションとしては,以下が現状開催されている.

 なお,現在進行中の対話システム関連の大規模プロジェクトとして,新学術領域研究「人間機械共生社会を目指した対話知能システム学」および「ムーンショット型研究開発事業目標1」がある.対話研究者の多くが分野横断的に取り組んでいるので,これらのプロジェクトのページについてもぜひ確認されたい.

8.お わ り に

 本稿では,対話システムに関する重要な論文やシステムを紹介しつつ,現状における対話システムの問題点や対話システム構築に役立つソフトウェア・データセットなどを紹介した.対話システムに関する研究発表は年々増加していると感じられる.しかし,実際に使えると感じる対話システムの実現にはまだ先は長いと感じる.本稿によって,対話システムの研究を始めたいと思う人が増えれば幸いである.