(57)【要約】 【課題】自然な対話制御を実現可能な対話フロー制御装置、対話フロー制御方法およびプログラムを提供する。【解決手段】実施形態の対話フロー制御装置は、ユーザーの入力に対する振る舞いを決定して対話制御を行う対話フロー制御装置であって、入力解釈部と決定部と記憶部と修正部とを備える。入力解釈部は、ユーザーの入力を解釈する。決定部は、入力解釈部による解釈結果に基づいて対話フロー制御装置の振る舞いを決定する。記憶部は、相互に依存関係の無い独立な事象を示す複数のスロットごとに、該スロットの優先度合いを示す優先度情報と、該スロットに対応する値が未入力か否かを示す入力情報とを示すリスト情報を記憶する。修正部は、リスト情報の中に、決定部により決定された振る舞いに関するスロットが存在し、該スロットよりも優先度が高く、かつ、未入力のスロットを示す優先スロットが存在する場合は、決定部により決定された振る舞いを、優先スロットに関する振る舞いに修正する。【選択図】図２
2018045381.tif 000002
【特許請求の範囲】
【請求項１】
ユーザーの入力に対する振る舞いを決定して対話制御を行う対話フロー制御装置であって、
前記ユーザーの入力を解釈する入力解釈部と、
前記入力解釈部による解釈結果に基づいて前記対話フロー制御装置の振る舞いを決定する決定部と、
相互に依存関係の無い独立な事象を示す複数のスロットごとに、該スロットの優先度合いを示す優先度情報と、該スロットに対応する値が未入力か否かを示す入力情報とを示すリスト情報を記憶する記憶部と、
前記リスト情報の中に、前記決定部により決定された振る舞いに関するスロットが存在し、該スロットよりも優先度が高く、かつ、未入力のスロットを示す優先スロットが存在する場合は、前記決定部により決定された振る舞いを、前記優先スロットに関する振る舞いに修正する修正部と、を備える、
対話フロー制御装置。
【請求項２】
前記入力解釈部は、前記ユーザーの入力の解釈結果に対応する対話状態を推定し、
前記記憶部は、１以上の条件と１対１に対応する１以上の前記リスト情報を記憶し、
前記修正部は、前記入力解釈部により推定された前記対話状態に合致する条件に対応する前記リスト情報の中に、前記決定部により決定された振る舞いに関するスロットが存在し、かつ、前記優先スロットが存在する場合は、前記決定部により決定された振る舞いを、前記優先スロットに関する振る舞いに修正する、
請求項１に記載の対話フロー制御装置。
【請求項３】
前記修正部は、前記決定部により決定された振る舞いを前記優先スロットに関する振る舞いに修正した後、前記優先スロットに対応する前記入力情報を、入力済みであることを示す前記入力情報に変更する、
請求項１または２に記載の対話フロー制御装置。
【請求項４】
前記入力解釈部は、所定のルールまたは外部知識に基づいて、前記ユーザーの入力の解釈結果に対応する対話状態を推定する、
請求項２または３に記載の対話フロー制御装置。
【請求項５】
前記対話フロー制御装置は、部分観測マルコフモデルを利用した対話制御を行う、
請求項１乃至４のうちの何れか１項に記載の対話フロー制御装置。
【請求項６】
前記決定部は、前記入力解釈部による解釈結果と、機械学習の結果と、に基づいて、前記対話フロー制御装置の振る舞いを決定する、
請求項５に記載の対話フロー制御装置。
【請求項７】
ユーザーの入力に対する振る舞いを決定して対話制御を行う対話フロー制御装置による対話フロー制御方法であって、
前記ユーザーの入力を解釈する入力解釈ステップと、
前記入力解釈ステップによる解釈結果に基づいて前記対話フロー制御装置の振る舞いを決定する決定ステップと、
相互に依存関係の無い独立な事象を示す複数のスロットごとに、該スロットの優先度合いを示す優先度情報と、該スロットに対応する値が未入力か否かを示す入力情報とを示すリスト情報の中に、前記決定ステップにより決定された振る舞いに関するスロットが存在し、該スロットよりも優先度が高く、かつ、未入力のスロットを示す優先スロットが存在する場合は、前記決定ステップにより決定された振る舞いを、前記優先スロットに関する振る舞いに修正する修正ステップと、を含む、
対話フロー制御方法。
【請求項８】
コンピュータに、
前記ユーザーの入力を解釈する入力解釈ステップと、
前記入力解釈ステップによる解釈結果に基づいて対話フロー制御装置の振る舞いを決定する決定ステップと、
相互に依存関係の無い独立な事象を示す複数のスロットごとに、該スロットの優先度合いを示す優先度情報と、該スロットに対応する値が未入力か否かを示す入力情報とを示すリスト情報の中に、前記決定ステップにより決定された振る舞いに関するスロットが存在し、該スロットよりも優先度が高く、かつ、未入力のスロットを示す優先スロットが存在する場合は、前記決定ステップにより決定された振る舞いを、前記優先スロットに関する振る舞いに修正する修正ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、対話フロー制御装置、対話フロー制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ユーザーの入力に対して、予め用意されたシナリオやモデルに従ってシステムの振る舞いを決定して対話制御を行う対話システムが知られている。また、このような対話システムにおいて、開発者がルールを手作業で整備するのではなく、事例データから統計的にシステムの最適な振る舞いを学習する部分観測マルコフモデル(ＰＯＭＤＰ：Partially Observable Markov Decision Process)を利用した対話制御を行う対話システム（以下、「ＰＯＭＤＰ対話システム」と称する場合がある）が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４８９０５８５号公報
【非特許文献】
【０００４】
【非特許文献１】Jason D. Williams. Applying POMDPs to dialog systems in the troubleshooting domain, In Workshop on Bridging the Gap, pp. 1-8, Rochester, New York, 2007. Association for Computational Linguistics.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来技術のように、事例データからの学習に依存し過ぎると、人間にとって自然な対話制御ができない場合があるという問題があった。
【課題を解決するための手段】
【０００６】
実施形態の対話フロー制御装置は、ユーザーの入力に対する振る舞いを決定して対話制御を行う対話フロー制御装置であって、入力解釈部と決定部と記憶部と修正部とを備える。入力解釈部は、ユーザーの入力を解釈する。決定部は、入力解釈部による解釈結果に基づいて対話フロー制御装置の振る舞いを決定する。記憶部は、相互に依存関係の無い独立な事象を示す複数のスロットごとに、該スロットの優先度合いを示す優先度情報と、該スロットに対応する値が未入力か否かを示す入力情報とを示すリスト情報を記憶する。修正部は、リスト情報の中に、決定部により決定された振る舞いに関するスロットが存在し、該スロットよりも優先度が高く、かつ、未入力のスロットを示す優先スロットが存在する場合は、決定部により決定された振る舞いを、優先スロットに関する振る舞いに修正する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態の対話フロー制御装置のハードウェア構成を示す図。
【図２】第１の実施形態の対話フロー制御装置が有する機能を示す図。
【図３】第１の実施形態のリスト情報を示す図。
【図４】第１の実施形態の対話フロー制御装置の動作例を示すフローチャート。
【図５】第２の実施形態の対話状態の一例を示す図。
【図６】第２の実施形態の対話状態の一例を示す図。
【図７】第２の実施形態の対話フロー制御装置の動作例を示すフローチャート。
【図８】第３の実施形態の語彙ルールを示す図。
【図９】第３の実施形態の配送社情報を示す図。
【図１０】第３の実施形態の対話状態の一例を示す図。
【図１１】第３の実施形態のリスト情報を示す図。
【図１２】第３の実施形態の各配送社の特徴を示す図。
【図１３】第３の実施形態の対話フロー制御装置の動作例を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら、実施形態に係る対話フロー制御装置、対話フロー制御方法およびプログラムの実施形態を詳細に説明する。
【０００９】
（第１の実施形態）
まず、本実施形態の対話フロー制御装置１の構成について説明する。本実施形態の対話フロー制御装置１は、部分観測マルコフモデル(ＰＯＭＤＰ：Partially Observable Markov Decision Process)を利用した対話制御を行う対話システム（ＰＯＭＤＰ対話システム）である。ＰＯＭＤＰ対話システムとは、ユーザーの入力に対して、入力を解釈し、振る舞いを決定して対話制御を行うシステムである。また、本実施形態の対話フロー制御装置１は、商品購入を目的とした対話制御を行うが、その目的は任意に変更可能である。なお、この例では、対話フロー制御装置１は、ＰＯＭＤＰ対話システムであることを例に挙げて説明するが、これに限らず、それ以外の既存の対話システムであっても構わない。要するに、対話フロー制御装置１は、ユーザーの入力に対する振る舞いを決定して対話制御を行う装置であればよい。
【００１０】
ＰＯＭＤＰ対話システムでは、ユーザーの入力からユーザーの行動目的の集合に関する確率分布で表される対話状態を推定し、その対話状態に対して最適なシステムの振る舞い（以下「アクション」と称する場合がある）を決定する（例えば、前述の非特許文献１参照）。各対話状態に対してどのシステムの振る舞いが最適かは、各対話状態に対して様々な振る舞いを実行してみて、ユーザーの目的が達成できなければペナルティを与え、ユーザーの目的が達成できれば報酬を与え、またより早く目的に到達できれば大きな報酬を与えるという強化学習によって、最終的に得られる報酬が最大となる振る舞いを習得する。この方式を採用することにより、システム開発者の対話シナリオのルールを整備する負担を削減することができ、ルールを整備することが困難なほどの大規模な対話システムの実現も、対話の事例データを用意することで可能になる。
【００１１】
図１は、本実施形態の対話フロー制御装置１のハードウェア構成の一例を示す図である。ここでは、対話フロー制御装置１のハードウェア構成は、通常のコンピュータのハードウェア構成と同様である。図１に示すように、対話フロー制御装置１は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、記憶部１０４、表示部１０５、操作部１０６を備える。
【００１２】
ＣＰＵ１０１は、対話フロー制御装置１の動作を統括的に制御する。ＣＰＵ１０１は、ＲＡＭ１０３の所定の領域を作業領域として、ＲＯＭ１０２に記録された各種制御プログラムを実行して、対話フロー制御装置１が有する各種の機能を実現させる。対話フロー制御装置１が有する機能の具体的な内容については後述する。
【００１３】
ＲＯＭ１０２は、対話フロー制御装置１に関わるプログラムや各種設定情報などを記憶する不揮発性のメモリ（書き換え不可能なメモリ）である。
【００１４】
ＲＡＭ１０３は、例えばＳＤＲＡＭなどの記憶手段であって、ＣＰＵ１０１の作業エリアとして機能し、バッファなどの役割を果たす。
【００１５】
記憶部１０４は、磁気的または光学的に記憶可能な記憶媒体を有し、各種設定情報や処理結果などを記録する補助記憶装置としての役割を果たす。
【００１６】
表示部１０５は、対話フロー制御装置１に関する各種の情報を表示するデバイスであり、例えば液晶ディスプレイなどで構成される。
【００１７】
操作部１０６は、ユーザーの操作を受け付けるためのデバイスである。なお、表示部１０５と操作部１０６とが一体的に構成される（例えばタッチパネルとして構成される）形態であってもよい。
【００１８】
図２は、対話フロー制御装置１が有する機能の一例を示す図である。図２に示すように、対話フロー制御装置１は、入力解釈部１１０と、決定部１１１と、第１の記憶部１１２と、修正部１１３と、第２の記憶部１１４と、を有する。説明の便宜上、図２では、本実施形態に関する機能を主に例示しているが、対話フロー制御装置１が有する機能は、これらに限られるものではない。
【００１９】
入力解釈部１１０は、ユーザーの入力を解釈する。入力解釈部１１０は、第１の記憶部１１２に記憶された入力解釈モデル（ユーザーの入力の解釈に用いられるモデル）や、入力文のキーワードに着目する入力解釈ルールを用いて、ユーザーの入力を解釈する。例えばユーザーの入力として、「お米を３ｋｇ購入します」という発話を受け付けた場合、入力解釈部１１０は前述の入力解釈モデルを使って、ユーザーの発話内容（発話意図）は、商品名が「お米」で、個数が「３ｋｇ」であり、それぞれの確率が０．９であると推定する。ここでは、対話フロー制御装置１は入力に誤りが含まれていることも考慮しているため、上記のように確率が１．０にならない場合もある。また、入力解釈部１１０は、前述の入力解釈ルールを用いて、ユーザーの発話内容を推定することもできる。そして、入力解釈部１１０は、上記推定結果を、入力解釈部１１０による解釈結果として決定部１１１へ出力する。
【００２０】
なお、この例では、対話フロー制御装置１の目的は商品購入と決まっているため、ユーザーの行為の推定は省略されているが、複数の行為が選択可能な対話システムの場合には、入力解釈部１１０は、前述の入力解釈モデルや前述の入力解釈ルールを用いて、例えば購入、予約、返品などのユーザーの行為の推定を行ってもよい。入力解釈部１１０による解釈方法としては、公知の様々な技術を利用可能である。
【００２１】
決定部１１１は、入力解釈部１１０による解釈結果に基づいて、対話フロー制御装置１の振る舞いを決定する。この例では、決定部１１１は、入力解釈部１１０による解釈結果と、機械学習の結果と、に基づいて、対話フロー制御装置１の振る舞いを決定することができる。より具体的には、決定部１１１は、入力解釈部１１０から入力される解釈結果と、第１の記憶部１１２に記憶された振る舞い決定モデル（強化学習によって得られた、システムの振る舞いを決定するのに用いられるモデル）と、に基づいて、対話フロー制御装置１の振る舞いを決定することができる。この例では、ユーザーが商品を購入するための発話(入力)を行ったときに、システム（対話フロー制御装置１）が商品の配送先を確認する振る舞いを行ったときに報酬を与えるという強化学習が行われていることを前提とする。ＰＯＭＤＰを利用したシステムの振る舞いを決定する方法としては、公知の様々な技術を利用可能である。また、決定部１１１は、入力解釈部１１０による解釈結果と、システムの振る舞いを決定するための振る舞い決定ルールと、に基づいて、対話フロー制御装置１の振る舞いを決定することもできる。これは、後述の他の実施形態においても同様である。要するに、決定部１１１は、少なくとも入力解釈部１１０による解釈結果に基づいて、対話フロー制御装置１の振る舞いを決定することができる。
【００２２】
第１の記憶部１１２は、前述の入力解釈モデル／入力解釈ルールと、前述の振る舞い決定モデル／振る舞い決定ルールと、を記憶する。また、第２の記憶部１１４は、「記憶部」の一例であり、リスト情報を記憶する。リスト情報は、相互に依存関係の無い独立な事象を示す複数のスロットごとに、該スロットの優先度合いを示す優先度情報と、該スロットに対応する値が未入力か否かを示す入力情報とを示す情報である。図３は、リスト情報の一例である。図３の例では、リスト情報は、「氏名」、「住所」、「電話番号」という３つのスロットごとに、優先度情報と入力情報を示している。この例における優先度情報は、値が小さいほど優先度合いが高いことを表しているが、これに限らず、例えば値が大きいほど優先度合いが高いという態様であってもよい。
【００２３】
また、例えばリスト情報は、複数のスロットごとに優先度情報を対応付けた第１の対応情報と、複数のスロットごとに入力情報を対応付けた第２の対応情報とに分割されて第２の記憶部１１４に格納される形態であってもよいし、第１の対応情報と第２の対応情報とが別々のメモリに記憶される形態であっても構わない。この例では、第１の記憶部１１２や第２の記憶部１１４は、図１に示す記憶部１０４やＲＯＭ１０２等の記憶装置によって実現される。ここでは、第１の記憶部１１２と第２の記憶部１１４は別々の記憶装置によって実現されるが、これに限らず、例えば共通の記憶装置で実現されてもよい。
【００２４】
修正部１１３は、リスト情報の中に、決定部１１１により決定された振る舞いに関するスロットが存在し、該スロットよりも優先度が高く、かつ、未入力のスロットを示す優先スロットが存在する場合は、決定部１１１により決定された振る舞いを、優先スロットに関する振る舞いに修正する。
【００２５】
例えば決定部１１１により決定された振る舞いが、配送先を確認するために電話番号を質問するという振る舞いであり、リスト情報が図３の状態である場合を想定する。この場合、決定部１１１により決定された振る舞いに関するスロットは「電話番号」であり、このスロットは、図３に示すリスト情報の中に存在する。図３に示すリスト情報においては、「電話番号」に対応する優先度情報は「３」を示し、これよりも優先度が高く、かつ、未入力のスロットとして、「氏名」と「住所」が存在する。ここでは、リスト情報の中に、決定部１１１により決定された振る舞いに関するスロットよりも優先度が高く、かつ、未入力のスロットが複数存在する場合、修正部１１３は、その中で最も優先度が高いスロットを優先スロットとして選択する。したがって、修正部１１３は、「氏名」を示すスロットを優先スロットとして選択する。そして、修正部１１３は、決定部１１１により決定された振る舞いを、優先スロット「氏名」に関する振る舞いに修正する。この例では、修正部１１３は、「商品の届け先を確認します。電話番号をお願いします。」というメッセージを出力するアクション（電話番号を質問するという振る舞い）を、「商品の届け先を確認します。氏名をお願いします。」というメッセージを出力するアクション（氏名を質問するという振る舞い）に修正し、その修正した振る舞いを実行することになる。
【００２６】
また、修正部１１３は、決定部１１１により決定された振る舞いを優先スロットに関する振る舞いに修正した後、優先スロットに対応する入力情報を、入力済みであることを示す入力情報に変更する。上記の例では、修正部１１３は、「氏名」を示すスロットに対応する入力情報を、入力済みであることを示す入力情報に変更する。
【００２７】
図４は、本実施形態の対話フロー制御装置１の動作例を示すフローチャートである。各ステップの具体的な内容は前述したとおりであるので、詳細な説明は適宜に省略する。まず、入力解釈部１１０は、ユーザーの入力を解釈し（ステップＳ１）、その解釈結果を決定部１１１へ出力する。次に、決定部１１１は、ステップＳ１の解釈結果と、前述の振る舞い決定モデルとに基づいて、対話フロー制御装置１の振る舞いを決定する（ステップＳ２）。
【００２８】
次に、修正部１１３は、前述のリスト情報の中に、ステップＳ２で決定された振る舞いに関するスロットが含まれているか否かを確認する（ステップＳ３）。ステップＳ３の結果が否定の場合（ステップＳ３：Ｎｏ）、修正部１１３は、ステップＳ２で決定された振る舞いを実行する（ステップＳ１１）。ステップＳ３の結果が肯定の場合（ステップＳ３：Ｙｅｓ）、修正部１１３は、リスト情報の中に、ステップＳ２で決定された振る舞いに関するスロットよりも優先度が高く、かつ、未入力のスロットが存在するか否かを確認する（ステップＳ４）。
【００２９】
ステップＳ４の結果が否定の場合（ステップＳ４：Ｎｏ）、処理は前述のステップＳ１１に移行する。ステップＳ４の結果が肯定の場合（ステップＳ４：Ｙｅｓ）、修正部１１３は、ステップＳ２で決定された振る舞いに関するスロットよりも優先度が高く、かつ、未入力のスロットが複数存在するか否かを確認する（ステップＳ５）。ステップＳ５の結果が否定の場合（ステップＳ５：Ｎｏ）、修正部１１３は、ステップＳ４で抽出したスロットを優先スロットとして選択する（ステップＳ６）。ステップＳ５の結果が肯定の場合（ステップＳ５：Ｙｅｓ）、修正部１１３は、優先度が最も高いスロットを優先スロットとして選択する（ステップＳ７）。
【００３０】
前述のステップＳ６または前述のステップＳ７の後、修正部１１３は、ステップＳ２で決定された振る舞いを、優先スロットに関する振る舞いに修正する（ステップＳ８）。そして、修正部１１３は、優先スロットに対応する入力情報を、入力済みであることを示す入力情報に変換する（ステップＳ９）。そして、修正部１１３は、ステップＳ８で修正した振る舞いを実行する（ステップＳ１０）。なお、以上に説明した各ステップの順番は任意に変更可能である。
【００３１】
以上に説明したように、本実施形態では、複数のスロットごとに優先度情報と入力情報とを示す前述のリスト情報を予め用意（既存のＰＯＭＤＰ対話システムの外付けで用意）しておく。そして、前述のリスト情報の中に、既存のＰＯＭＤＰ対話システムで決定された振る舞い（前述の決定部１１１により決定された振る舞い）に関するスロットが存在し、該スロットよりも優先度が高く、かつ、未入力のスロットを示す優先スロットが存在する場合は、ＰＯＭＤＰ対話システムで決定された振る舞いを、優先スロットに関する振る舞いに修正する。これにより、事例データからの学習に依存し過ぎることなく、人間にとって自然な対話制御を実現できるという有利な効果を達成できる。
【００３２】
（第２の実施形態）
次に、第２の実施形態について説明する。前述の第１の実施形態と共通する部分については適宜に説明を省略する。本実施形態では、第２の記憶部１１４は、「非会員のユーザーが商品購入のための発話を行った」という条件を満たす場合に使用されるリスト情報（条件付きのリスト情報）を記憶している点で前述の第１の実施形態と相違する。この例におけるリスト情報は図３と同じ態様であるが、これに限らず、リスト情報は任意に設定可能である。また、本実施形態では、第２の記憶部１１４は、１つの条件に対応する１つのリスト情報のみを記憶しているが、これに限らず、後述の第３の実施形態のように、複数の条件と１対１に対応し、かつ、個別に設定される複数のリスト情報を記憶する形態であってもよい。なお、本実施形態の対話フロー制御装置１の基本構成は上述の第１の実施形態と同様である。
【００３３】
本実施形態の対話フロー制御装置１は、入力解釈部１１０が、ユーザーが商品を購入するための発話(例えば「お米を３ｋｇ購入します」といった発話)を行ったと解釈した場合、予め氏名、住所、電話番号等の配送先に関する情報が登録済みの会員であるか否かを確認するためのメッセージを出力(音声でも良いし画像でもよい)する。そして、入力解釈部１１０は、その後のユーザーの入力（会員であるか非会員であるかの回答）を解釈する。
【００３４】
この例における入力解釈部１１０は、ユーザーの入力の解釈結果に対応する対話状態を推定する。この例では、対話状態は、複数のスロットごとの値と確率とで表され、例えば「会員のユーザーが、お米を３ｋｇ購入するための発話を行った」という対話状態は図５のように表される。図５の例では、氏名、住所、電話番号の各々に対応する値と確率がブランクになっているが、ユーザー種類に対応する値が「会員」を示す場合、氏名、住所、電話番号の各々に対応する値は登録済みであるので、対話状態として記録する必要は無い。一方、例えば「非会員のユーザーが、お米を３ｋｇ購入するための発話を行った」という対話状態は図６のように表される。
【００３５】
決定部１１１は、入力解釈部１１０による解釈結果と、前述の振る舞い決定モデルとに基づいて、対話フロー制御装置１の振る舞いを決定する。ここでは、ユーザーが商品を購入するための発話を行ったと解釈された場合、対話フロー制御装置１の振る舞いとして、配送先を確認するという振る舞いが決定されるように学習されている。
【００３６】
修正部１１３は、入力解釈部１１０により推定された対話状態に合致する条件に対応するリスト情報の中に、決定部１１１により決定された振る舞いに関するスロットが存在し、かつ、前述の優先スロットが存在する場合は、決定部１１１により決定された振る舞いを、優先スロットに関する振る舞いに修正する。
【００３７】
例えば決定部１１１により決定された振る舞いが、配送先を確認するために電話番号を質問するという振る舞いであり、入力解釈部１１０により推定された対話状態が図６の状態である場合を想定する。前述したように、この例では、第２の記憶部１１４は、非会員のユーザーが商品購入のための発話を行ったという条件に対応するリスト情報を記憶しているので、入力解釈部１１０により推定された対話状態（図６の状態）に合致する条件に対応するリスト情報が第２の記憶部１１４に存在することになる。そして、この場合、決定部１１１により決定された振る舞いに関するスロットは「電話番号」であり、このスロットは、第２の記憶部１１４に記憶されたリスト情報（図３参照）の中に存在する。図３に示すリスト情報においては、「電話番号」に対応する優先度情報は「３」を示し、これよりも優先度が高く、かつ、未入力のスロットとして、「氏名」と「住所」が存在する。ここでは、リスト情報の中に、決定部１１１により決定された振る舞いに関するスロットよりも優先度が高く、かつ、未入力のスロットが複数存在する場合、修正部１１３は、その中で最も優先度が高いスロットを優先スロットとして選択する。したがって、修正部１１３は、「氏名」を示すスロットを優先スロットとして選択する。そして、修正部１１３は、決定部１１１により決定された振る舞いを、優先スロット「氏名」に関する振る舞いに修正し、その修正した振る舞いを実行することになる。
【００３８】
図７は、本実施形態の対話フロー制御装置１の動作例を示すフローチャートである。各ステップの具体的な内容は前述したとおりであるので、詳細な説明は適宜に省略する。まず、入力解釈部１１０は、ユーザーの入力を解釈し（ステップＳ１０１）、その解釈結果に対応する対話状態を推定する（ステップＳ１０２）。次に、決定部１１１は、ステップＳ１０１の解釈結果と、前述の振る舞い決定モデルとに基づいて、対話フロー制御装置１の振る舞いを決定する（ステップＳ１０３）。
【００３９】
次に、修正部１１３は、ステップＳ１０２で推定された対話状態に合致する条件に対応するリスト情報が存在するか否かを確認する（ステップＳ１０４）。前述したように、この例では、第２の記憶部１１４は、非会員のユーザーが商品購入のための発話を行ったという条件に対応するリスト情報を記憶しているので、ステップＳ１０２で推定された対話状態が、非会員のユーザーが商品購入のための発話を行った状態を表す場合、ステップＳ１０４の結果は肯定となる。
【００４０】
ステップＳ１０４の結果が肯定の場合（ステップＳ１０４：Ｙｅｓ）、修正部１１３は、ステップＳ１０２で推定された対話状態に合致する条件に対応するリスト情報の中に、ステップＳ１０３で決定された振る舞いに関するスロットが含まれているか否かを確認する（ステップＳ１０５）。この処理内容は、図４に示すステップＳ３の処理内容と同様であるので、詳細な説明は省略する。以降のステップＳ１０６〜ステップＳ１１３の処理内容は、図４に示すステップＳ４〜ステップＳ１１の処理内容と同様である。
【００４１】
以上に説明した本実施形態の構成であっても、上述の第１の実施形態と同様に、事例データからの学習に依存し過ぎることなく、人間にとって自然な対話制御を実現できる。また、本実施形態によれば、条件ごとにリスト情報を用意し、対話状態に応じてリスト情報を切り替えることにより、より自然な対話制御を実現できるという顕著な効果を達成できる。
【００４２】
（第３の実施形態）
次に、第３の実施形態について説明する。前述の第２の実施形態と共通する部分については適宜に説明を省略する。本実施形態では、第２の記憶部１１４は、「ユーザーが、配送社数が２以上である商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報と、「ユーザーが、配送社数が１つである商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報とを記憶している点で前述の第２の実施形態と相違する。要するに、本実施形態の第２の記憶部１１４（記憶部）は、複数の条件と１対１に対応し、かつ、個別に設定される複数のリスト情報を記憶する。なお、本実施形態の対話フロー制御装置１の基本構成は上述の第１の実施形態と同様である。
【００４３】
本実施形態の入力解釈部１１０は、所定のルールまたは外部知識に基づいて、ユーザーの入力の解釈結果に対応する対話状態を推定する。この例では、第１の記憶部１１２は、前述の所定のルールまたは外部知識として、図８に示すような、単語と商品カテゴリとの対応関係を示す語彙ルールと、図９に示すような、商品カテゴリと配送社との対応関係を示す配送社情報と、を記憶している。図９に示すように、商品カテゴリと配送社との間にはいくつかの関係が存在し、食料品やお菓子は複数の配送社のうちの何れかを選択可能であるが、日用品や本は１社しか配送社を選べない。なお、商品カテゴリと配送社との間の関係は、運用途中で動的に変更されても構わない。
【００４４】
この例では、入力解釈部１１０は、ユーザーの入力の解釈結果の中に、前述の語彙ルールに含まれる単語が存在するか否かを確認する。語彙ルールに含まれる単語が存在する場合、入力解釈部１１０は、該単語に対応する商品カテゴリを特定する。そして、前述の配送社情報を参照して、その特定した商品カテゴリに対応する配送社を特定する。
【００４５】
例えば入力解釈部１１０は、ユーザーが「野菜とお菓子を購入します」という発話を行ったと解釈した場合、その解釈結果の中に、図８に示す語彙ルールに含まれる「野菜」と「菓子」が存在することを確認することができるので、「野菜」に対応する商品カテゴリ「食料品」と、「菓子」に対応する商品カテゴリ「お菓子」を特定することができる。そして、図９に示す配送社情報を参照して、商品カテゴリ「食料品」に対応する配送社としてＡ社とＢ社を特定し、商品カテゴリ「お菓子」に対応する配送社としてＡ社とＢ社とを特定する。この場合、商品カテゴリ「食料品」に対応する配送社と、商品カテゴリ「お菓子」に対応する配送社とは共通するので、入力解釈部１１０は、配送社としてＡ社とＢ社とを特定する。
【００４６】
以上のようにして、入力解釈部１１０は、ユーザーが「野菜とお菓子を購入します」という発話を行ったと解釈した場合、図８の語彙ルールと、図９の配送社情報とに基づいて、該解釈結果に対応する対話状態として、図１０に示すような対話状態を推定することができる。つまり、「ユーザーは、配送社数が２以上の商品である野菜とお菓子を購入するための発話を行った」という対話状態を推定することができる。なお、対話状態に含まれる複数のスロットのうち、図８の語彙ルールおよび図９の配送社情報のような所定のルールまたは外部知識から導かれるスロット（図１０の例では配送社の数や種類）に対応する値は一意に導かれるため、対応する確率は常に「１．０」になる。
【００４７】
第２の記憶部１１４は、「ユーザーが、配送社数が２以上である商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報と、「ユーザーが、配送社数が１つである商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報とを記憶している。図１１の（Ａ）は、「ユーザーが、配送社数が２以上である商品を購入するための発話を行った」という条件に対応するリスト情報であり、図１１の（Ｂ）は、「ユーザーが、配送社数が１つである商品を購入するための発話を行った」という条件に対応するリスト情報である。
【００４８】
この例では、各配送社の特徴は図１２のように表され、配送社ごとに送料が無料になる金額や配送日時が異なっている。このような状況のため、例えば配送社が複数から選べる場合は、ます配送社を確認するように設定している。つまり、「配送社」というスロットに対応する優先度が最も高くなるように設定している（図１１（Ａ）参照）。この優先度の設定の意味は、例えば配送社ごとに異なる、送料が無料になる金額を早めに確認できるようにして、あと少しで送料が無料になることをユーザーが知れば追加の購入を促すことになることを狙いとしている。
【００４９】
決定部１１１は、入力解釈部１１０による解釈結果と、前述の振る舞い決定モデルと、に基づいて、対話フロー制御装置１の振る舞いを決定する。ここでは、ユーザーが商品を購入するための発話を行ったと解釈された場合、対話フロー制御装置１の振る舞いとして、配送先を確認するという振る舞いが決定されるように学習されている。
【００５０】
修正部１１３は、入力解釈部１１０により推定された対話状態に合致する条件に対応するリスト情報の中に、決定部１１１により決定された振る舞いに関するスロットが存在し、かつ、前述の優先スロットが存在する場合は、決定部１１１により決定された振る舞いを、優先スロットに関する振る舞いに修正する。
【００５１】
例えば決定部１１１により決定された振る舞いが、配送先を確認するために電話番号を質問するという振る舞いであり、入力解釈部１１０により推定された対話状態が図１０の状態である場合を想定する。前述したように、この例では、第２の記憶部１１４は、「ユーザーが、配送社数が２以上である商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報（図１１（Ａ））と、「ユーザーが、配送社数が１つである商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報（図１１（Ｂ））とを記憶している。したがって、上記の場合は、入力解釈部１１０により推定された対話状態（図１０の状態）に合致する条件に対応するリスト情報（図１１（Ａ））が第２の記憶部１１２に存在することになる。そして、この場合、決定部１１１により決定された振る舞いに関するスロットは「電話番号」であり、このスロットは、図１１（Ａ）に示すリスト情報の中に存在する。図１１（Ａ）に示すリスト情報においては、「電話番号」に対応する優先度情報は「５」を示し、これよりも優先度が高く、かつ、未入力のスロットとして、「氏名」、「住所」、「配送日」および「配送社」が存在する。ここでは、リスト情報の中に、決定部１１１により決定された振る舞いに関するスロットよりも優先度が高く、かつ、未入力のスロットが複数存在する場合、修正部１１３は、その中で最も優先度が高いスロットを優先スロットとして選択する。したがって、修正部１１３は、「配送社」を示すスロットを優先スロットとして選択する。そして、修正部１１３は、決定部１１１により決定された振る舞いを、優先スロット「配送社」に関する振る舞いに修正し、その修正した振る舞いを実行することになる。
【００５２】
図１３は、本実施形態の対話フロー制御装置１の動作例を示すフローチャートである。各ステップの具体的な内容は前述したとおりであるので、詳細な説明は適宜に省略する。まず、入力解釈部１１０は、ユーザーの入力を解釈し（ステップＳ２０１）、その解釈結果に対応する対話状態を推定する（ステップＳ２０２）。次に、決定部１１１は、ステップＳ２０１の解釈結果と、前述の振る舞い決定モデルとに基づいて、対話フロー制御装置１の振る舞いを決定する（ステップＳ２０３）。
【００５３】
次に、修正部１１３は、ステップＳ２０２で推定された対話状態に合致する条件に対応するリスト情報が存在するか否かを確認する（ステップＳ２０４）。前述したように、この例では、第２の記憶部１１４は、「ユーザーが、配送社数が２以上である商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報（図１１（Ａ））と、「ユーザーが、配送社数が１つである商品を購入するための発話を行った」という条件を満たす場合に使用されるリスト情報（図１１（Ｂ））とを記憶している。そのため、ステップＳ２０２で推定された対話状態が、「ユーザーが、配送社数が２以上である商品を購入するための発話を行った」状態を表す場合、または、「ユーザーが、配送社数が１つである商品を購入するための発話を行った」状態を表す場合、ステップＳ２０４の結果は肯定となる。
【００５４】
ステップＳ２０４の結果が肯定の場合（ステップＳ２０４：Ｙｅｓ）、修正部１１３は、ステップＳ２０２で推定された対話状態に合致する条件に対応するリスト情報の中に、ステップＳ２０３で決定された振る舞いに関するスロットが含まれているか否かを確認する（ステップＳ２０５）。この処理内容は、図４に示すステップＳ３の処理内容と同様であるので、詳細な説明は省略する。以降のステップＳ２０６〜ステップＳ２１３の処理内容は、図４に示すステップＳ４〜ステップＳ１１の処理内容と同様である。
【００５５】
以上に説明した本実施形態の構成であっても、上述の第１の実施形態と同様に、事例データからの学習に依存し過ぎることなく、人間にとって自然な対話制御を実現できる。また、本実施形態によれば、条件ごとにリスト情報を用意し、対話状態に応じてリスト情報を切り替えることにより、より自然な対話制御を実現できるという顕著な効果を達成できる。
【００５６】
なお、上述の第２の実施形態と第３の実施形態とを組み合わせることも可能である。つまり、ユーザーが会員であるか否かという条件と、配送社数の条件との組み合わせごとに、対応するリスト情報を設ける形態であってもよい。要するに、第２の記憶部１１４は、１以上の条件と１対１に対応する１以上のリスト情報を記憶する形態であればよい。そして、修正部１１３は、入力解釈部１１０により推定された対話状態に合致する条件に対応するリスト情報の中に、決定部１１１により決定された振る舞いに関するスロットが存在し、かつ、優先スロットが存在する場合は、決定部１１１により決定された振る舞いを、優先スロットに関する振る舞いに修正する形態であればよい。
【００５７】
また、特許文献１では、条件別のオントロジーを複数用意し、それらを組み合わせて新しいオントロジーを作成する手段が提案されている。特許文献１のオントロジーを前述のリスト情報、次元を前述のリスト情報の選択条件と置き換えると、以上の各実施形態に近い機能を提供していると見做せる可能性もあるが、特許文献１の次元はオントロジーに予め設定された静的な条件しか扱うことはできない。そのため、以上に説明したような対話制御において頻繁に発生する動的な条件の変化に対して対応することができない。
【００５８】
以上に説明した各実施形態は、統計ベースで学習する統計対話システムの一部の対話制御動作をシステム開発者が制御できるようにすることで、氏名、住所、電話番号のような独立な事象（スロット）ではあるが、対話する際に人間にとっては自然な順番があるようなケースでの対話システムの振る舞いの順番を制御して、人間にとって自然なやりとりができる対話システムを実現することができるとともに、対話システムの振る舞いの順番を制御する条件が動的に変化してもよい点が特徴である。
【００５９】
以上、本発明の実施形態を説明したが、前述の実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら新規な実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００６０】
また、前述の各対話フロー制御装置１で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、前述の各実施形態の対話フロー制御装置１で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、前述の各実施形態の対話フロー制御装置１で実行されるプログラムを、ＲＯＭ等の不揮発性の記録媒体に予め組み込んで提供するようにしてもよい。
【００６１】
さらに、前述の各実施形態は、任意に組み合わせることも可能である。
【符号の説明】
【００６２】
１      対話フロー制御装置
１１０  入力解釈部
１１１  決定部
１１２  第１の記憶部
１１３  修正部
１１４  第２の記憶部
【図１】
2018045381.tif 000003
【図２】
2018045381.tif 000004
【図３】
2018045381.tif 000005
【図４】
2018045381.tif 000006
【図５】
2018045381.tif 000007
【図６】
2018045381.tif 000008
【図７】
2018045381.tif 000009
【図８】
2018045381.tif 000010
【図９】
2018045381.tif 000011
【図１０】
2018045381.tif 000012
【図１１】
2018045381.tif 000013
【図１２】
2018045381.tif 000014
【図１３】
2018045381.tif 000015