(57)【要約】【課題】複合対話ドメインにおいて対話システムとユーザとの間の効率的な対話を可能とする。【解決手段】対話装置は、自然言語理解部により所定フォーマットに変換されたユーザ発話を取得し、前記所定フォーマットのユーザ発話に基づいて、現在の対話状態を示す内部状態を更新し、第１ポリシモデルを使用して、前記更新した内部状態に基づいて、現在のサブドメインを決定し、前記現在のサブドメインに関連づけられた第２ポリシモデルを使用して、前記内部状態に基づき行動を決定する、対話管理部を含む。複雑性低減部は、データベースからサンプリングされた対話において、対話状態の複雑性を低減する。自律サブドメイン発見部は、前記複雑性が低減された対話状態から、前記対話装置の訓練データに含めるためのサブドメインを決定する。【選択図】図１
2019191517.tif 000002
【特許請求の範囲】
【請求項１】
対話システムであって、
対話におけるユーザ発話を、所定のフォーマットに変換する、自然言語理解部と、
前記自然言語理解部により所定フォーマットに変換されたユーザ発話を取得し、
前記所定フォーマットのユーザ発話に基づいて、現在の対話状態を示す内部状態を更新し、
第１ポリシモデルを使用して、前記更新した内部状態に基づいて、現在のサブドメインを決定し、
前記現在のサブドメインに関連づけられた第２ポリシモデルを使用して、前記内部状態に基づき行動を決定する、対話管理部と、
前記対話管理部の決定した行動をシステムによる発話に変換する自然言語生成部と、
を含む対話装置と、
対話ログを格納するデータベースと、
前記データベースからサンプリングされた対話において、対話状態の複雑性を低減する複雑性低減部と、
前記複雑性が低減された対話状態から、前記対話装置の訓練データに含めるためのサブドメインを決定する、自律サブドメイン発見部と、を含む、対話システム。
【請求項２】
請求項１に記載の対話システムであって、
前記対話装置は、ユーザとの対話において、前記現在のサブドメインのラベルを出力する、対話システム。
【請求項３】
請求項２に記載の対話システムであって、
サブドメインに含まれる発話を含む画像を表示し、
前記画像に含まれる前記発話を含む前記サブドメインに対するユーザによるラベルの入力を受け付ける、対話システム。
【請求項４】
請求項１に記載の対話システムであって、
前記複雑性低減部は、機械学習モデルを含む、対話システム。
【請求項５】
請求項４に記載の対話システムであって、
前記複雑性低減部は、入力された対話状態と前記複雑性低減部の出力とが一致し、さらに、前記入力された対話状態から次元が低減された状態の状態値が目標値と一致するように、学習する、対話システム。
【請求項６】
請求項１に記載の対話システムであって、
前記自律サブドメイン発見部により決定されるサブドメインは、前記複雑性が低減された対話状態のラプラシアン行列の固有値及び固有ベクトルの対で表わされるサブドメインを含む、対話システム。
【請求項７】
請求項６に記載の対話システムであって、
前記自律サブドメイン発見部は、前記ラプラシアン行列から得られない対話状態のサブドメインを、前記ラプラシアン行列から得られたサブドメインの間を補完することで決定する、対話システム。
【請求項８】
請求項１に記載の対話システムであって、
前記対話装置は、前記対話装置による対話の対話ログを前記データベースに追加する、対話システム。
【請求項９】
計算機システムが、対話装置の学習に使用するデータを生成する方法であって、
前記対話装置は、
対話におけるユーザ発話を、所定フォーマットに変換し、
前記所定フォーマットのユーザ発話に基づいて、現在の対話状態を示す内部状態を更新し、
第１ポリシモデルを使用して、前記更新した内部状態に基づいて、現在のサブドメインを決定し、
前記現在のサブドメインに関連づけられた第２ポリシモデルを使用して、前記内部状態に基づき行動を決定し、
前記決定した行動をシステムによる発話に変換し、
前記方法は
前記計算機システムが、対話ログを格納するデータベースからサンプリングされた対話において、対話状態の複雑性を低減し、
前記計算機システムが、前記複雑性が低減された対話状態から、前記対話装置の訓練データに含めるためのサブドメインを決定する、ことを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話システムに関する。
【背景技術】
【０００２】
対話システムの機能は、人間のユーザからの質問に対する応答又は回答を与える。問い合わせは、天気を尋ねたり、歌をリクエストしたりといった簡単なものから、ホテルの予約、レストランの予約、旅行の計画など、いくつかのサブタスクで構成される複雑なものまで様々である。以下、いくつかの固有のサブドメインからなる複雑な対話ドメインを複合ドメインと呼ぶ。
【０００３】
現在の一般的な対話システムは、簡単な対話を実現できる。しかし、複合対話ドメインを達成することは依然として課題となっている。そのような複合対話ドメインを解決するための対話システムを開発する上での主な課題は、大きな状態空間及び行動セット、長い軌道（すなわち、対話を達成するための多くの対話のターン（ｔｕｒｎ））、そして疎な報酬（ｓｐａｒｓｅ  ｒｅｗａｒｄｓ）である。これらの要因は、対話システムの学習プロセスを遅らせる。
【０００４】
複合対話の問題に取り組もうとするいくつかの研究が存在する。一つの研究（非特許文献１）は、手作業でドメインをいくつかのより単純なサブドメインに分解する。次に、サブドメインごとに有効な行動セットを手作業で指定する。同様の他のアプローチ（非特許文献２）は、一つの複合ドメインからいくつかのサブドメインを手作業で指定し、各サブドメインが終了するべき条件を定義する。
【０００５】
特許文献１及び特許文献２は、上記２つの研究と同様の技術を提案している。両特許文献は、人間の専門家に対話ドメインをいくつかのより単純なサブドメインに分解することを要求する。さらに、米国特許第６５０５１６２号は、対話ポリシを得るための学習技術を使用せず、主に人が作成したルールを対話ポリシとして使用する。これらのルールは、階層構造に接続された複数のサブドメインにグループ分けされる。これら先行技術は、人的な努力を必要としている。
【０００６】
サブドメインモデリングは、強化学習（ＲＬ）の分野におけるオプション発見技術に関する。この技術は、ＲＬエージェント（対話システム）がタスク（すなわち、対話ドメイン）をサブタスク（すなわち、サブドメイン）に自律的に分解することを可能にする。オプションの発見に関連する多くの研究があるが、これらの対話システムは大きな状態空間と疎な報酬を有する、つまり、学習に意味のある重要な報酬が稀であるため、複合ドメインを扱う対話システムに対して、ほとんど適用できていない。
【０００７】
他の研究（非特許文献３）は、対話状態遷移を調べるだけで、報酬情報を使わずに、サブドメインを自律的に発見する手法を示している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第６５０５１６２号
【特許文献２】米国特許第６５１０４１１号
【非特許文献】
【０００９】
【非特許文献１】Budzianowski et al. 2017. Sub-domain Modelling for Dialogue Management with Hierarchical Reinforcement Learning. In SIGDIAL
【非特許文献２】Peng et al. 2017. Composite Task-Completion Dialogue Policy.  Learning via Hierarchical Deep Reinforcement Learning, In EMNLP
【非特許文献３】Machado et al. 2017. A Laplacian Framework for Option Discovery in Reinforcement Learning
【発明の概要】
【発明が解決しようとする課題】
【００１０】
したがって、複合対話ドメインからサブドメインを自律的に特定し、その後対話システムがそれらサブドメインを使用できるようにする対話システムのフレームワークが望まれる。上記の従来技術は、この目的に直接適用することはできない。従来のいくつかの対話システムは、事前に準備されたサブドメインを利用することはできるが、これらのサブドメインを自律的に決定することはできない。
【００１１】
上記のサブドメインを自律的に発見する技術は、疎な報酬問題を軽減するが、大きな状態空間の問題が依然として残っている。この技術では、全ての可能な状態遷移を事前に収集することが理想的である。さらに、この技術は多数のサブドメインを生成することがあり、その多くは重複しているが、それらを取り除く手順が存在していない。つまり、多数のサブドメインを生成する可能性があり、有用なサブドメインを選択する方法が欠如している。このような状況は、大規模な行動セットとサブドメインセットにつながり、その結果、対話システムを訓練することが困難になる。
【課題を解決するための手段】
【００１２】
本開示の一態様は、対話システムであって、対話におけるユーザ発話を、所定のフォーマットに変換する、自然言語理解部と、前記自然言語理解部により所定フォーマットに変換されたユーザ発話を取得し、前記所定フォーマットのユーザ発話に基づいて、現在の対話状態を示す内部状態を更新し、第１ポリシモデルを使用して、前記更新した内部状態に基づいて、現在のサブドメインを決定し、前記現在のサブドメインに関連づけられた第２ポリシモデルを使用して、前記内部状態に基づき行動を決定する、対話管理部と、前記対話管理部の決定した行動をシステムによる発話に変換する自然言語生成部と、を含む対話装置と、対話ログを格納するデータベースと、前記データベースからサンプリングされた対話において、対話状態の複雑性を低減する複雑性低減部と、前記複雑性が低減された対話状態から、前記対話装置の訓練データに含めるためのサブドメインを決定する、自律サブドメイン発見部と、を含む。
【発明の効果】
【００１３】
本開示の一態様は、複合対話ドメインにおいて対話システムとユーザとの間の効率的な対話を可能とする。
【図面の簡単な説明】
【００１４】
【図１】例示的なシステムを示す。
【図２】対話装置の論理構成例を示す。
【図３】ユーザ対話行動及びシステム対話行動として使用される、対話行動セットの例を示す。
【図４】対話進行を追跡するための変数の例を示す。
【図５】対話管理部の内部状態の例を示す。
【図６】データベースに格納されている対話のフォーマット例を示す。
【図７】複雑性低減部における処理を示す。
【図８】複雑性低減部の訓練処理の図である。
【図９】入力された対話状態の次元を縮小するためのニューラルネットワークの使用を示す図である。
【図１０】自律サブドメイン発見部による処理を示す図である。
【図１１】自律サブドメイン発見部による処理から得られたサブドメインを利用する対話管理部の訓練処理（学習処理）のフローチャートである。
【図１２】サブドメインを使用する対話管理部の処理の例を示す。
【図１３】現在アクティブなサブドメインに関する情報を格納するデータベースの内容の例を示す。
【図１４】処理によって発見されたサブドメインをラベル付けする処理のフローを示す。
【図１５】複雑性低減部及びサブドメイン発見部の設定を決定するためにシステム設計者によって使用されるインタフェース（表示画像）の一例である。
【図１６】同一のサブドメインがアクティブである複数の対話ターンのサンプルを観察するために、人間の注釈者によって使用されるインタフェースの一例である。
【図１７】対話装置を利用するためにユーザによって使用されるインタフェース画像の一例である。
【図１８】対話装置、分析サーバ、又はこれらと通信可能な装置のハードウェア構成例を示す。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１６】
図１は、例示的なシステム１００を示す。システム１００は、サブドメインを自律的に発見し、そのメカニズムにおいてそれらを使用する対話システムを可能としている。ここで説明するように、システム１００において、ユーザは、対話装置１１１と対話する（ステップ１１０）。対話装置１１１は、ユーザと対話装置１１１との間の対話を記録し、対話ログをデータベース１３０に格納する（ステップ１２０）。これにより、データベース１３０に格納する対話ログを増加させることができる。図１の例において、データベース１３０は、分析サーバ１６０に含まれている。
【００１７】
分析サーバ１６０に実装されている複雑性低減部１４０は、対話状態の複雑性を低減する。複雑性低減部１４０は、例えば、特徴選択、主成分分析、線形判別分析又はニューラルネットワークのような、任意の種類の次元削減技術を使用して構成することができる。複雑性低減部１４０は、データベース１３０から取得した対話サンプルにおいて、対話状態の複雑性を低減する。
【００１８】
分析サーバ１６０に実装されている自律サブドメイン発見部１５０は、複雑性低減部１４０から、複雑性が低減された対話状態を含む対話サンプルを受信し、これらの対話サンプルからサブドメインを発見する。自律サブドメイン発見部１５０は、発見したサブドメインを、対話装置１１１に送る（ステップ１２６）。
【００１９】
対話装置１１１は、ユーザとの対話のため、より具体的にはユーザとの対話のためのモデルの学習に、これらのサブドメインを利用する。なお、複雑性低減部１４０及び自律サブドメイン発見部１５０は、異なるサーバに実装されていてもよい。なお、図１は対話システムの構成例を示すものであり、図１に示す機能要素がいずれの装置に実装されていてもよい。
【００２０】
図２は、対話装置１１１の論理構成例を示す。対話装置１１１は、ユーザからの発話を受け取る。自然言語理解部２１０は、ユーザの発話を対話管理部２２０が認識できる所定フォーマットに変換する。本体において、自然言語理解部２１０は、ユーザの発話をユーザ対話行動と呼ばれる抽象的な意味表現に変換する。
【００２１】
対話管理部２２０は、このユーザ対話行動を受け取り、受け取った対話行動に従って、対話状態とも呼ばれるその内部状態を、更新する。この内部状態の目的は、対話の進捗状況を追跡することである。そして、対話管理部２２０は、その内部状態に応じてシステム対話行動を決定する。自然言語生成部２３０は、システム対話行動を受け取り、それを発話に変換する。
【００２２】
以下に、複合対話ドメインを扱う対話システムの例として、ホテルルームを予約するシステムを示す。
【００２３】
図３において、表３１０は、ユーザ対話行動及びシステム対話行動として使用される、対話行動セットの例を示す。自然言語理解部２１０は、ユーザの発話をこれらの対話行動のうちの１つに変換し、自然言語生成部２３０は、これらのうちの１つを発話に変換する。自然言語理解部２１０及び自然言語生成部２３０は、この情報を保持している。
【００２４】
対話行動の例は、ｈｅｌｌｏ、ｒｅｑｕｅｓｔ＿ｋｉｎｄ、ｉｎｆｏｒｍ＿ｋｉｎｄ、ｒｅｑｕｅｓｔ＿ａｒｅａ、ｉｎｆｏｒｍ＿ａｒｅａ、ｒｅｑｕｅｓｔ＿ｐｅｏｐｌｅｎｏ、ｉｎｆｏｒｍ＿ｐｅｏｐｌｅｎｏ、ｒｅｑｕｅｓｔ＿ｃｈｅｃｋｉｎｔｉｍｅ、ｉｎｆｏｒｍ＿ｃｈｅｃｋｉｎｔｉｍｅ、ｂｏｏｋ、又はｔｈａｎｋｙｏｕのいずれかである。
【００２５】
例えば、ｈｅｌｌｏ行動は、通常、挨拶のために対話の冒頭で、ユーザ及び対話システムの発話によって示される。ｒｅｑｕｅｓｔ＿ｋｉｎｄ行動は、システムがユーザに好ましい宿泊施設の種類（例えば、ホテル又はゲストハウス）を問うために使用することができ、又は、ユーザが、システムに対して、推奨される宿泊施設の種類を問うために使用することができる。
【００２６】
ｉｎｆｏｒｍ＿ｋｉｎｄは、ユーザが、宿泊施設の好ましい種類についてシステムに通知するために使用することができる。ｒｅｑｕｅｓｔ＿ａｒｅａ行動とｉｎｆｏｒｍ＿ａｒｅａ行動とは、ｒｅｑｕｅｓｔ＿ｋｉｎｄとｉｎｆｏｒｍ＿ｋｉｎｄと同様の関係を持っているが、それらは宿泊施設のエリアに関するものである。ｒｅｑｕｅｓｔ＿ｐｅｏｐｌｅｎｏ行動とｉｎｆｏｒｍ＿ｐｅｏｐｌｅｎｏ行動とは、滞在する人数に関するものであり、ｒｅｑｕｅｓｔ＿ｐｅｏｐｌｅｎｏ行動は人数を問い合わせ、ｉｎｆｏｒｍ＿ｐｅｏｐｌｅｎｏ行動は人数を通知するために使用される。
【００２７】
ｒｅｑｕｅｓｔ＿ｃｈｅｃｋｉｎｔｉｍｅ行動とｉｎｆｏｒｍ＿ｃｈｅｃｋｉｎｔｉｍｅ行動とは、ユーザがチェックインする時刻に関するものである。ｒｅｑｕｅｓｔ＿ｃｈｅｃｋｉｎｔｉｍｅ行動はチェックイン時刻を問い合わせ、ｉｎｆｏｒｍ＿ｃｈｅｃｋｉｎｔｉｍｅ行動はチェックイン時刻を通知するために使用される。ｂｏｏｋ行動は、対話システムがユーザに要求された部屋を予約するために使用される。ｔｈａｎｋｙｏｕ行動は、最終的なユーザの発話を示し、対話を終了させる。
【００２８】
図４は、対話進行を追跡するための変数の例を示す。表４００は、変数名４０１及び変数値４０２の２つの列を含む。変数名４０１は、対話進行を追跡するための変数のセットを示す。変数値４０２は、変数名４０１の各変数に対して可能な値のリストを示す。例えば、ホテルルーム予約に関する対話の進行状況は、ｋｉｎｄ、ｎａｍｅ、ａｒｅａ、ｈａｓｐａｒｋｉｎｇ、ｐｅｏｐｌｅｎｏ、及びｃｈｅｃｋｉｎｔｉｍｅの変数によって捉えることができる。
【００２９】
ｋｉｎｄは宿泊の種類、ここでは、ホテル又はゲストハウスを表す。ｎａｍｅは、東京ホテルや品川ゲストハウスなど、宿泊希望の宿泊施設名を表す。ａｒｅａは、宿泊施設の好ましい場所、ここでは、中央、西、南、東、または北等を指定する。ｈａｓｐａｒｋｉｎｇは、宿泊施設に駐車場があるかどうかを示す。ｐｅｏｐｌｅｎｏは、宿泊部屋に滞在する予定の人数を指定する。ｃｈｅｃｋｉｎｔｉｍｅは、ユーザがいつチェックインするかを指定する。
【００３０】
図５は、対話管理部２２０の内部状態の例を示す。内部状態は、対話の状態（対話状態）を示す。内部状態は、ベクトル５００で表わされ、対話の進行を追跡するすべての変数名４０１からの情報を符号化する。ベクトル（内部状態）５００は、変数の可能な値をそれぞれ表すいくつかのベクトル要素を保持することによって、変数の値を追跡することを可能とする。内部状態５００において、例えば、最初の２つのベクトル要素は宿泊施設の種類を表し、次のいくつかの要素は宿泊施設の名を表し、次の５つの要素は宿泊エリアを表す。図５は、ｋｉｎｄ変数とａｒｅａ変数の値がそれぞれ、「ｈｏｔｅｌ」と「ｅａｓｔ」であることを示す。
【００３１】
図６は、データベース１３０に格納されている対話のフォーマット例を示す。表６００は、対話６０１、ターン６０２、アクティブサブドメイン６０３、現在の状態６０４、行動６０５、報酬６０６、次の状態６０７、システム発話６０８、及びユーザ発話６０９の、９つの列を含む。対話装置１１１（例えば対話管理部２２０）は、表６００に対話ログを格納する。
【００３２】
対話６０１は、データベースに格納された対話の識別子を格納する。ターン６０２は、対話内の対話ターンの識別子を格納する。一つの対話は、１以上のターンで構成されている。アクティブサブドメイン６０３は、ターンそれぞれに割り当てられ、ターンそれぞれにおいてアクティブなサブドメインを格納する。
【００３３】
ここで、図６に示すデータベース１３０は、サブドメインに関する情報をまだ有していない。このため、図６に示すように、アクティブサブドメイン６０３は、「Ｎ／Ａ」のみを格納する。これは、サブドメインに関する情報がないことを意味する。サブドメインに関する説明は、図１０を参照して後述する。後述する図１３は、カラム６０３が現在アクティブなサブドメインに関する情報を格納するデータベース１３０の内容の一例を示す。
【００３４】
現在の状態６０４は、対応するターンでの、現在の対話状態を格納する。行動６０５は、現在の対話状態６０４が与えられた対話装置１１１によって実行される行動を格納する。報酬６０６は、対話装置１１１が行動６０５を実行すると対話装置１１１によって受け取られる即時の報酬を格納する。報酬６０６の値は、次所の状態６０７に対して予め設定されている値である。
【００３５】
次の状態６０７は、システムが現在の状態６０４で行動６０５を実行した場合の、対話装置１１１の次の対話状態を示す。次の状態６０７のフォーマットは、表５００と同様である。システム発話６０８は、自然言語生成部２３０の出力、すなわちシステム行動６０５を表す発話を格納する。ユーザ発話６０９は、自然言語理解部２１０によって受信された発話を格納する。
【００３６】
図７は、複雑性低減部１４０における処理７００を示す。複雑性低減部１４０は、機械学習により訓練され、更新される。訓練された複雑性低減部１４０は、受信した対話状態の複雑性を低減し、対話状態の要求元、例えば、自律サブドメイン発見部１５０に渡す。
【００３７】
図７は、複雑性低減部１４０の訓練（学習）及び訓練された複雑性低減部１４０による低減処理を含む。ステップ７４１において、複数の対話状態遷移が、不図示の訓練部又は複雑性低減部１４０によって、データベース１３０からサンプリングされる。ステップ７４２において、複雑性低減部１４０は、サンプリングされた対話状態遷移を使用して、訓練される。複雑性低減部１４０の訓練の詳細は、図８を参照して後述する。
【００３８】
ステップ７２０において、複雑性低減部１４０は、例えば自律サブドメイン発見部１５０から、一つの対話状態を受信する。ステップ７３０において、複雑性低減部１４０は、対話状態の複雑さを低減する。具体的には、複雑性低減部１４０は、対話状態の次元を小さくする。ステップ７５０において、複雑性低減部１４０は、複雑さが低減された対話状態を、対話状態の送信元に返す。
【００３９】
図８は、複雑性低減部１４０の訓練処理８００の図である。複雑性低減部１４０は機械学習モデルを含み、学習によって最適化される。これにより、複雑性低減部１４０の性能を向上し、適切に動作する複雑性低減部１４０を得ることができる。
【００４０】
複雑性低減部１４０の目的は、対話状態の次元を縮小することである。まず、ステップ８１０において、複雑性低減部１４０は、複数の対話状態遷移を、データベース１３０からサンプリングする。一つの対話状態遷移は、３要素からなるタプル（ｓｉ、ｓｉ＋１、ｒｉ＋１）で表わされる。ｒｉ＋１は、状態ｓｉから状態ｓｉ＋１に進むときの報酬である。ｓｉ、ｓｉ＋１、およびｒｉ＋１のフォーマットの例は、それぞれ、図６のカラム６０４、６０７、及び６０６によって示されている。
【００４１】
ニューラルネットワーク８２０は、複雑性低減部１４０の１つの実装例である。一般に、ニューラルネットワーク８２０は、任意数の隠れ層及び任意数のニューロンを含むことができ、任意の量を予測するように訓練することができる。これらの数値及び予測される量は、環境特有の考察に基づいて選択することができる。
【００４２】
図８に示すように、一例のニューラルネットワーク８２０は、状態ｓｉを再構築し、与えられた対話状態遷移（ｓｉ、ｓｉ＋１、ｒｉ＋１）ごとに状態値Ｖ（ｓｉ）を予測するように、訓練される。状態値（ｓｉ）の目標値は、報酬６０６の値から計算することができる。例えば、モンテカルト法又は時間的差分学習（ＴＤ学習）を使用することができる。
【００４３】
ニューラルネットワーク８２０は、状態ｓｉを表すベクトル８２１を受け取り、次いで、数ステップにわたってｓｉの次元を縮小し、最後にベクトル８２３で表わされるｓｉを再構成する。ベクトル８２２は、次元縮小及び再構成プロセス中に生成されるベクトルの中で最小次元サイズを有するベクトルを示す。ニューラルネットワーク８２０は、また、ベクトル８２２を使用して状態値（報酬）Ｖ（ｓｉ）８２４を予測する。
【００４４】
したがって、このニューラルネットワーク８２０は、入力された対話状態８２１を再構成すると共に、さらに、状態値８２４を正確に予測できるように訓練される。このように、入力と状態値の結合を使用することで、より効果的にして訓練することで、より効果的ニューラルネットワーク８２０を訓練することができる。入力及び状態値の一方のみを使用した構成を使用することもできる。
【００４５】
図９は、入力された対話状態９１０の次元を縮小するためのニューラルネットワーク８２０の使用を示す図である。ニューラルネットワーク８２０は、入力対話状態９１０をベクトル８２１として受け取り、入力対話状態９１０に内部の複数層を通過させ、複雑性が減少された状態として、ベクトル８２２を返す。ベクトル８２２は、ニューラルネットワーク８２０の出力である。
【００４６】
図１０は、自律サブドメイン発見部１５０による処理１０００を示す図である。自律サブドメイン発見部１５０は、例えば、対話管理部２２０又は対話管理部２２０の訓練部からの指示により、本処理を実行する。ステップ１０２０において、自律サブドメイン発見部１５０は、複数の対話状態遷移をデータベース１３０からサンプリングし、複雑性低減部１４０に対話状態の複雑性を低減させる。複雑性の低減により、この後のステップにおいて効率的かつ適切にサブドメインを決定することができる。
【００４７】
ステップ１０３０において、自律サブドメイン発見部１５０は、隣接行列Ｗを、複雑性が低減された状態遷移サンプルから得られる対話状態のセットから、生成する。隣接行列Ｗの構築は、状態間の重みを計算する任意の関数を使用できる。三つの関数の例を下に示す。
【００４８】
【数１】
2019191517.tif 000003
【００４９】
ステップ１０４０において、自律サブドメイン発見部１５０は、隣接行列Ｗからラプラシアン行列Ｌを生成する。ラプラシアン行列Ｌの構築は、任意の関数を使用することができる。ラプラシアン行列Ｌを生成する二つの関数の例を以下に示す。
【００５０】
【数２】
2019191517.tif 000004
【００５１】
ステップ１０５０において、自律サブドメイン発見部１５０は、ラプラシアン行列Ｌに対して固有分解を行うことにより、固有値と固有ベクトルの複数の対を得る。ステップ１０６０で、自律サブドメイン発見部１５０は、固有値λｉと固有ベクトルｅｉの各対（λｉ、ｅｉ）を、サブドメインωｉと設定する。ステップ１０７０において、自律サブドメイン発見部１５０は、サブドメインのセットを返す。サブドメインのセットは、例えば、対話管理部２２０若しくはそれを訓練する訓練部に送信される、又は、データベース１３０に格納される。
【００５２】
上記方法により、自律サブドメイン発見部１５０は適切にサブドメインを決定することができる。なお、自律サブドメイン発見部１５０はラプラシアン行列を用いる方法とは異なる方法でサブドメインを決定してもよい。
【００５３】
図１１は、自律サブドメイン発見部１５０による処理１０００から得られたサブドメインを利用する対話管理部２２０の訓練処理（学習処理）１１００のフローチャートである。例えば不図示の訓練部又は対話管理部２２０自体が、訓練処理１１００を開始する。本処理は、例えば、データベース１３０に規定数の新規対話が追加されると実行される。
【００５４】
ステップ１１２０で、対話管理部２２０は、処理１０００から、複数のサブドメインを取得する。各サブドメインは、固有値λｉと固有ベクトルｅｉのペア（λｉ、ｅｉ）である。ステップ１１３０において、対話管理部２２０は、例えば、固有値の小さい順に、最小固有値から複数サブドメインのサブセットを選択する。
【００５５】
ステップ１１４０では、対話管理部２２０は、各サブドメインωｉのポリシπωｉを学習する。ポリシπωｉは、図３に示すようないずれの対話行動が、対話ターンｔにおける対話状態ｓｔのために、サブドメインωｉ内で対話装置によって取られるべきかを決定する。どのようなタイプのポリシ学習のアルゴリズムも、適切なポリシπωｉを得るために使用することができる。例えば、ＲＥＩＮＦＯＲＣＥ、ｄｅｅｐ−Ｑ−ｎｅｔｗｏｒｋ、及びａｃｔｏｒ−ｃｒｉｔｉｃなどを使用することができる。適用されるポリシ学習は、サブドメインωｉの各対話ターンｔにおける期待割引収益Ｇｔ、ωｉを最大化するようにπωｉを最適化する。
【００５６】
【数３】
2019191517.tif 000005
【００５７】
ここで、Ｅπωｉ［］はポリシπωｉを使用する場合の期待値、γ∈［０、１）は割引係数、Ｒｔ、ωｉは、サブドメインωｉの固有報酬を示す。固有報酬Ｒｔ、ωｉは、例えば、以下のように計算できる。
【００５８】
【数４】
2019191517.tif 000006
【００５９】
ここで、ｅｉ［ｓｔ］は、状態ｓｔでのサブドメインωｉの固有ベクトル値である。そのような値は、隣接行列Ｗを構成するために使用される状態ｓｔに対してのみ存在し、固有ベクトルｅｉのｔ番目の要素を選ぶことで得ることができる。自律サブドメイン発見部１５０は、隣接行列Ｗに使用されていない状態のｅｉ［ｓｔ］を、補完関数により得る。これにより、隣接行列Ｗに使用されていない状態のサブドメインを決定できる。一例において、新規状態（隣接行列Ｗに使用されていない状態）ｓｔのためにｅｉ［ｓｔ］の補間は、Ｎｙｓｔｒｏｍ拡張を使用して行うことができる。
【００６０】
【数５】
2019191517.tif 000007
【００６１】
ここで、ｓｔは新規な対話状態であり、ｄ（ｓｔ）はｓｔの次数、ｓ〜ｓｔはｓｔ近傍の複数の対話状態｛ｓ｝で近似できる。
【００６２】
ステップ１１５０において、対話管理部２２０は、上述のように得られた複数のサブドメインにわたり、ポリシπΩを学習する。ポリシπΩは、対話ターンｔにおいて、いずれのサブドメインを取るべきかを決定する。より具体的には、ポリシπΩは、入力されたターンの対話状態ｓｔに対して、取るべきサブドメインωｉを決定する。ポリシπΩの学習のため、任意のタイプのポリシ学習をここで使用することができる。例えば、セミマルコフ決定処理学習及びイントラオプションＱラーニングなどを使用することができる。
【００６３】
図１２は、サブドメインを使用する対話管理部２２０の処理１２００の例を示す。ステップ１２２０で、対話管理部２２０は、自然言語理解部２１０から、ユーザの最新の発話の意味表現を受け取る。この意味表現のフォーマットの例を図３に示す。ステップ１２３０において、対話管理部２２０は、この意味表現を使用することによって、対話状態（内部状態）ｓを更新する。対話管理部２２０は、現在の対話状態を示す値（ベクトル）を内部に保持している。この対話状態ｓを示す値のフォーマットの例は図５に示した通りである。
【００６４】
ステップ１２４０において、対話管理部２２０は、アクティブなサブドメインが存在するか否かを判定する。例えば、対話管理部２２０は、現在アクティブなサブドメインを示す内部変数を保持している。内部変数がアクティブなサブドメインを示している場合、アクティブなサブドメインが存在していると判定する。
【００６５】
アクティブなサブドメインが存在しない場合（１２４０：ＮＯ）、対話の始まりの場合であり、対話管理部２２０は、ステップ１２４１において、対話状態ｓに基づき、対話ポリシπΩを使用して、サブドメインωｉを決定する。ステップ１２４２において、対話管理部２２０は、この決定されたサブドメインωｉを、アクティブなサブドメインに設定する。そして、処理はステップ１２４０に戻る。
【００６６】
ステップ１２４０において、現在アクティブなサブドメインが存在する場合（１２４０：ＹＥＳ）、対話管理部２２０は、ステップ１２５１において、アクティブなサブドメインωｉのポリシπωｉを使用して、現在の対話状態ｓに対する対話行動ａを決定する。対話管理部２２０は、ステップ１２５２において、選択された対話行動ａが予め設定されている終了行動であるか判定する。
【００６７】
対話行動ａが終了行動である場合（１２５２：ＹＥＳ）、ステップ１２５３において、対話管理部２２０は、現在のアクティブなサブドメインωｉを非アクティブにし、プロセスはステップ１２４０に戻る。したがって、各対話ターンにおいて、一つのアクティブなサブドメインのみが存在する。一方、選択された対話行動ａが非終了行動である場合（１２５２：ＮＯ）、対話管理部２２０は、この行動を自然言語生成部２３０に渡す。自然言語生成部２３０は、行動を発話に変換し、ユーザに返す。
【００６８】
図１３は、現在アクティブなサブドメインに関する情報を格納するデータベース１３０の内容の例を示す。図１３は、対話管理部２２０が取るべき行動を決定するためにサブドメイン情報を利用した後のデータベース１３０の内容を示す。対話装置１１１は、データベース１３０に格納する対話ログにサブドメイン情報を含める。
【００６９】
図１３のテーブル６００のフォーマットは、図６のフォーマットと同様である。しかしながら、図１３に示すように、カラム６０３は、サブドメインの識別子を格納する。例えば、対話１では、サブドメインω１がターン１から４までアクティブであり、サブドメインω２は、ターン５から対話１の最後のターンであるターン７まで、アクティブである。
【００７０】
対話管理部２２０の訓練（学習）に使用されるデータは、システム設計者によって用意されていてもよい。データは、例えば、図１３に示すデータベース１３０と同様のフォーマットを有することができる。
【００７１】
図１４は、処理１０００によって発見されたサブドメインをラベル付けする処理１４００のフローを示す。本処理は、例えば、対話装置１１１、分析サーバ１６０、又は対話装置１１１と通信するクライアント装置（不図示）の入力装置及び出力装置を使用して実行される。本処理により、サブドメインに対して対話装置１１１のユーザにわかりやすいラベルを付けることができる。
【００７２】
ステップ１４２０で、対話装置１１１、分析サーバ１６０、又はクライアント装置で実行されている設定部は、対話管理部２２０によって使用されるサブドメインのセットをデータベース１３０から取得し、表示装置において表示する。ラベル付け処理の主なステップは、ステップ１４３０から１４３５までである。
【００７３】
ステップ１４３０において、人間の注釈者は、ラベル付けするために、入力装置を使用して、サブドメインωｉ∈｛ω０、．．．、ωｋ｝を選択する。ステップ１４３１において、設定部は、注釈者からの入力に応じて、サブドメインωｉを利用する複数の対話をデータベース１３０からサンプリングして、表示装置で表示する。
【００７４】
ステップ１４３２において、人間の注釈者は、サンプリングされた対話、特に、サブドメインωｉがアクティブである対話のターンを観察する。この観察により、ステップ１４３３において、人間の注釈者は、サブドメインωｉのラベルを決定する。ステップ１４３４において、人間の注釈者は、入力装置及び設定部を介して、対話装置１１１にこのラベルを通知する。対話管理部２２０は、それを内部に保持する。
【００７５】
ステップ１４３５において、人間の注釈者は、サブドメインラベル付け処理を続行するか否かを決定する。人間の注釈者が別のサブドメインにラベル付けしたい場合、プロセスはステップ１４３０に戻る。そうでない場合、処理１４００は終了する。
【００７６】
上述のように、ステップ１４３２及び１４３３は、人間の注釈者に依存する。人間の注釈者がとるラベル決定の例として、図１３に示された対話ターンのセットを考える。サブドメインω１がアクティブであるとき、対話装置１１１が一連の行動：ｈｅｌｌｏ、ｒｅｑｕｅｓｔ＿ｋｉｎｄ、ｒｅｑｕｅｓｔ＿ａｒｅａ、及びｉｎｆｏｒｍ＿ｎａｍｅを返すことを、人間の注釈者は観察する。
【００７７】
この観察において、さらに、対話装置１１１がｉｎｆｏｒｍ＿ｎａｍｅ行動を実行した後に、サブドメインω１は常に終了すると仮定する。このような観察から、人間の注釈者は、サブドメインω１がユーザの要求に合致する宿泊施設を検索するタスクに関係していると判定し、ω１に「宿泊施設を検索」というラベルを付けることができる。
【００７８】
同じ手順が、サブドメインω２にラベルを付けるために実行される。例えば、人間の注釈者は、サブドメインω２がアクティブであるときはいつでも、対話装置１１１は、ｒｅｑｕｅｓｔ＿ｄｕｒａｔｉｏｎ、ｒｅｑｕｅｓｔ＿ｃｈｅｃｋｉｎｔｉｍｅ、及び最後にｂｏｏｋの行動をとることを観察する。そのような観察が与えられると、注釈者は、サブドメインω２が宿泊部屋を予約するタスクに関係していると判定し、ω２に「部屋の予約」とラベルを付けることができる。
【００７９】
上記の例では、人間注釈者は、図１３に示すように、１つの対話から対話ターンを観察すると仮定している。しかし、実際には、注釈者はもっと多くの対話サンプルから対話ターンを観察することができる。したがって、上記の例と比較して、実際のラベルの決定は、より多くの対話サンプルに依存し得る。
【００８０】
図１５は、複雑性低減部１４０及びサブドメイン発見部１５０の設定を決定するためにシステム設計者によって使用されるインタフェース（表示画像）の一例１５００である。システム設計者は、例えば、対話装置１１１、分析サーバ１６０、又は対話装置１１１と通信するクライアント装置（不図示）の入力装置及び出力装置を使用する。対話装置１１１、分析サーバ１６０、又はクライアント装置で実行される設定部が、表示装置においてインタフェース画像を表示し、ユーザ入力を受け付ける。入力された情報は、対話装置１１１内に保持され、対話装置１１１により処理において参照される。
【００８１】
位置１５１１は、「Ｄｉａｌｏｇｕｅ  Ｄｏｍａｉｎ」のテキストを表示する。ボタン１５１２はプルダウンボタンであり、そこからシステム設計者はどの対話ドメインを設定するかを選択することができる。
【００８２】
パネル１５２０は、対話状態の次元サイズを設定するための制御を含む。位置１５２１は、対話状態の初期次元サイズに関する情報を表示する。場所１５２２は、「Ｄｉｍｅｎｓｉｏｎ  ｓｉｚｅ  ｏｆ  ｄｉａｌｏｇｕｅ  ｓｔａｔｅ（ｃｏｍｐｒｅｓｓｅｄ）」のテキストを表示する。システム設計者は、テキストボックス１５２３に対話状態の所望の次元サイズを入力する。 
【００８３】
パネル１５３０は、サブドメインの発見を設定するためのいくつかの制御を含む。場所１５３１は、「Ｎｕｍｂｅｒ  ｏｆ  ｓｕｂ−ｄｏｍａｉｎｓ  ｔｏ  ｂｅ  ｄｉｓｃｏｖｅｒｅｄ」のテキストを表示する。テキストボックス１５３２は、システム設計者が、選択された対話ドメインを分解すべきサブドメインの数を設定できる場所である。
【００８４】
ボタン１５４０は、システム設計者が設定データを確定するために使用される。この例では、システム設計者は「Ｈｏｔｅｌ  Ｒｅｓｅｒｖａｔｉｏｎ」ドメインを３つのサブドメインに分解することを計画する。さらに、設計者は、対話状態の次元サイズを５０に縮小したいと考えている。
【００８５】
図１６は、同一のサブドメインがアクティブである複数の対話ターンのサンプルを観察するために、人間の注釈者によって使用されるインタフェースの一例１６００である。このインタフェースを介して、人間の注釈者は、各サブドメインにラベルを付けることもできる。
【００８６】
場所１６０１は、テキスト「Ｄｉａｌｏｇｕｅ  Ｄｏｍａｉｎ」を表示する。ボタン１６０２は、プルダウンボタンであり、そこから注釈者が観察する対話ドメインを選択することができる。場所１６０３は、テキスト「Ｓｕｂ−ｄｏｍａｉｎ  ｔｏ  ｂｅ  ｂｒｏｗｓｅｄ」を表示する。
【００８７】
ボタン１６０４は、プルダウンボタンであり、注釈者は、閲覧及びラベル付けするためにサブドメインを選択することができる。ボタン１６０７は、指定された対話ドメインにおける指定されたアクティブなサブドメインから、注釈者が対話ターンサンプルを検索するために使用される。ボタン１６０７がクリックされると、パネル１６０９は、対話から検索基準を満足する一連の対話ターンを表示する。
【００８８】
表示されたサンプルは、ユーザ発話１６１１と交互に行われたシステム発話１６１０（システム行動１６１２と共に）のリストからなる。ボタン１６１３は、注釈者が別の対話からの対話ターンの次のサンプルを観察するために使用される。
【００８９】
位置１６０５は、テキスト「Ｓｕｂ−ｄｏｍａｉｎ  ｌａｂｅｌ」を表示する。注釈者が複数の対話ターンサンプルを閲覧すると、注釈者は指定されたサブドメインのラベルを決定する。注釈者は、ラベルをテキストボックス１６０６に書き込み、ボタン１６０８をクリックすることによってラベルを保存する。
【００９０】
図１７は、対話装置１１１を利用するためにユーザによって使用されるインタフェース（画像）の一例１７００である。インタフェース１７００は、対話装置１１１の表示装置又は対話装置１１１と通信可能な端末において表示される。対話進行は、システム発話を収容するボックス１７０２と、ユーザ発話を収容するボックス１７０３とによって示される。テキストボックス１７０４は、ユーザが応答を書くために使用される。
【００９１】
ボタン１７０５は、テキストボックス１７０４に書き込まれた応答を対話装置１１１に送るためにユーザによって使用される。位置１７０６は、現在アクティブなサブドメインのラベルをユーザに表示する。現在のサブドメインのラベルを表示することのメリットは、対話システムが、ユーザが慣れていないドメイン内の対話を完了する際にユーザを誘導できることである。
【００９２】
システム設計者、人間注釈者、及びユーザによって使用されるインタフェースは、図１５、１６、及び１７に示されたものに限定されない。サブドメインの発見、対話状態の複雑性の低減、及び対話ターンのサンプルについての設定を示すインタフェースの任意の変形が可能である。さらに、ユーザが対話履歴及び現在の対話進行を見ることができ、対話システムに応答を送信するインタフェースの任意の変形が可能である。
【００９３】
図１８は、対話装置１１１、分析サーバ１６０、又はこれらと通信可能な装置のハードウェア構成例を示す。これらは、計算機構成を有することができる。計算機１８００は、プロセッサ１８０１、メモリ１８０２、入力インタフェース１８０４、出力インタフェース１８０５、及び補助記憶装置１８０６を含む。これら要素は、システムバス１８０３を介して相互通信する。
【００９４】
メモリ１８０２はプロセッサ１８０１が使用するデータを格納する。プロセッサ１８０１は、メモリ１８０２に格納されているプログラムに従って動作することで所定の機能部として働く。例えば、対話装置１１１において、プロセッサ１８０１は、自然言語理解プログラム、対話管理プログラム、又は自然言語生成プログラムに従って動作して、自然言語理解部２１０、対話管理部２２０又は自然言語生成部２３０として機能する。
【００９５】
分析サーバ１６０において、プロセッサ１８０１は、複雑性低減プログラム又は自律サブドメイン発見プログラムに従って動作して、複雑性低減部１４０又は自律サブドメイン発見部１５０として機能する。補助記憶装置１８０６は、メモリ１８０２にロードされるデータを格納する。分析サーバ１６０において、補助記憶装置１８０６は、データベース１３０を格納する。
【００９６】
計算機１８００は、入力インタフェース１８０４を介して、ネットワーク又は入力装置からの入力を受信し、出力インタフェース１８０５を介して、ネットワーク又は出力装置に情報を出力する。
【００９７】
図１５、１６又は１７に示すインタフェース画像は、例えば、出力インタフェース１８０５に接続されている表示装置に表示される。また、インタフェース画像に対して、ネットワーク又は入力装置から入力された情報は、入力インタフェース１８０４を介して、メモリ１８０２又は補助記憶装置１８０６に格納される。
【００９８】
上述のように、本開示は、対話タスクにおいてサブドメインを自律的に発見し、次にこれら発見されたサブドメインを利用して対話ポリシを学習する体系的な方法を提案する。サブドメインを使用することにより、対話システムは対話ポリシをより迅速に学習することができる。適切に学習した対話システムは、複合対話ドメインにおいてユーザと効率的に対話することができ、ユーザがシステムとの対話を放棄するのを防ぐことができる。
【００９９】
さらに、各対話サブドメインに与えられたラベルは、ユーザが対話の現在の状態を追跡することを可能にする。したがって、対話システムは、ユーザが慣れていないドメイン内の対話を完了させる際に人間のユーザを誘導することができる。
【０１００】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１０１】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【０１０２】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１０３】
１００  対話システム、１１１  対話装置、１３０  データベース、１４０  複雑性低減部、１５０  自律サブドメイン発見部、１６０  分析サーバ、２１０  自然言語理解部、２２０  対話管理部、２３０  自然言語生成部、３１０  対話行動表、４００  変数表、５００  内部状態、６００  データベースフォーマット、７００  複雑性低減部の処理、８２０  ニューラルネットワーク、８２１  対話状態、８２２、８２３  ベクトル、８２４  状態値、９１０  対話状態、９１０  入力対話状態、１０００  自律サブドメイン発見部の処理、１１００  対話管理部の訓練処理、１２００  対話管理部対話処理、１４００  サブドメインのラベル設定処理、１５００  システム設定用画像、１６００  サブドメインラベル設定用画像、１７００  対話画像、１８００  計算機、１８０１  プロセッサ、１８０２  メモリ、１８０３  システムバス、１８０３  補助記憶装置、１８０４  入力インタフェース、１８０５  出力インタフェース、１８０６  補助記憶装置
【図１】
2019191517.tif 000008
【図２】
2019191517.tif 000009
【図３】
2019191517.tif 000010
【図４】
2019191517.tif 000011
【図５】
2019191517.tif 000012
【図６】
2019191517.tif 000013
【図７】
2019191517.tif 000014
【図８】
2019191517.tif 000015
【図９】
2019191517.tif 000016
【図１０】
2019191517.tif 000017
【図１１】
2019191517.tif 000018
【図１２】
2019191517.tif 000019
【図１３】
2019191517.tif 000020
【図１４】
2019191517.tif 000021
【図１５】
2019191517.tif 000022
【図１６】
2019191517.tif 000023
【図１７】
2019191517.tif 000024
【図１８】
2019191517.tif 000025