(57)【要約】      （修正有）【課題】対話状態の履歴をより適切に処理できる対話システムを提供する。【解決手段】対話システムは、取得部及び処理部を含む。取得部は、第１文章を取得する。処理部は、第１対話状態の第１スロットに関する第１特徴量と、第１文章に係わる第１重みと、に基づく第１重み付け量を参照する。処理部は、第１文章に含まれる第１意図の第１スロットに関する第１意図量と、第１重みと異なり、第１文章に係わる第２重みと、に基づく第２重み付け量を参照する。処理部は、第１重み付け量および第２重み付け量を用いて、第１対話状態の後の第２対話状態の第１スロットに関する第２特徴量を出力する。【選択図】図５
2019106054.tif 000002
【特許請求の範囲】
【請求項１】
第１文章を取得する取得部と、
第１対話状態の第１スロットに関する第１特徴量と、前記第１文章に係わる第１重みと、に基づく第１重み付け量を参照し、
前記第１文章に含まれる第１意図の前記第１スロットに関する第１意図量と、前記第１重みと異なり、前記第１文章に係わる第２重みと、に基づく第２重み付け量を参照し、
前記第１重み付け量および前記第２重み付け量を用いて、前記第１対話状態の後の第２対話状態の前記第１スロットに関する第２特徴量を出力する、
処理部と、
を備えた対話システム。
【請求項２】
前記第１重みは、前記第１文章における前記第１スロットへの言及の第１度合いに係わる請求項１記載の対話システム。
【請求項３】
前記第１度合いが第１状態のとき、前記第１重みは前記第２重みよりも大きく、
前記第１度合いが第２状態のとき、前記第２重みは前記第１重みよりも大きく、
前記第１状態における前記第１度合いは、前記第２状態における前記第１度合いよりも小さい請求項２記載の対話システム。
【請求項４】
前記第１スロットは、複数の第１スロットパラメータを含み、
前記処理部は、前記第１文章に対応する第１ベクトルと、前記複数の第１スロットパラメータのそれぞれのベクトルと、の類似度に基づいて前記第１意図量を算出する請求項１〜３のいずれか１つに記載の対話システム。
【請求項５】
前記第１重み付け量は、前記第１特徴量と前記第１重みとの積に基づき
前記第２重み付け量は、前記第１意図量と前記第２重みとの積に基づく請求項１〜４のいずれか１つに記載の対話システム。
【請求項６】
前記第２特徴量は、前記第１重み付け量と前記第２重み付け量との和に基づく請求項１〜５のいずれか１つに記載の対話システム。
【請求項７】
前記処理部は、さらに、
前記第１対話状態の第２スロットに関する第３特徴量と、前記第１文章に係わる第３重みと、に基づく第３重み付け量を参照し、
前記第１意図の前記第２スロットに関する第２意図量と、前記第３重みと異なり、前記第１文章に係わる第４重みと、に基づく第４重み付け量を参照し、
前記第３重み付け量および前記第４重み付け量を用いて、前記第２対話状態の前記第２スロットに関する第４特徴量を出力する、
請求項１〜６のいずれか１つに記載の対話システム。
【請求項８】
前記取得部は、前記第１文章の取得の後に第２文章をさらに取得し、
前記処理部は、さらに、
前記第２特徴量と、前記第２文章に係わる第５重みと、に基づく第５重み付け量を参照し、
前記第２文章に含まれる第２意図の前記第１スロットに関する第２意図量と、前記第５重みと異なり、前記第２文章に係わる第６重みと、に基づく第６重み付け量を参照し、
前記第５重み付け量および前記第６重み付け量を用いて、前記第２対話状態の後の第３対話状態の前記第１スロットに関する第５特徴量を出力する、
請求項１〜７のいずれか１つに記載の対話システム。
【請求項９】
前記処理部は、
前記第１特徴量と、前記第５重みおよび前記第６重みと異なり、前記第２文章に拘わる第７重みと、に基づく第７重み付け量をさらに参照し、
前記第５重み付け量、前記第６重み付け量、及び第７重み付け量を用いて前記第５特徴量を出力する、
請求項８記載の対話システム。
【請求項１０】
第１対象及び第２対象を希望する第１文章を取得すると、前記第１対象に対応する第１スロットパラメータの第１優先度及び前記第２対象に対応する第２スロットパラメータの第２優先度を高め、
前記第１文章の取得の後に前記第２対象を否定する第２文章を取得すると、前記第１優先度を前記第２優先度よりも高める、
処理部を備えた対話システム。
【請求項１１】
前記処理部は、前記第１文章を取得すると、前記第１優先度及び前記第２優先度を、第３対象に対応する第３スロットパラメータの第３優先度よりも高める請求項１０記載の対話システム。
【請求項１２】
第１対象を希望する第１文章を取得すると、前記第１対象に対応する第１スロットパラメータの第１優先度を、第２対象に対応する第２スロットパラメータの第２優先度よりも高め、
前記第１文章の取得の後に前記第２対象を希望する第２文章を取得すると、前記第２優先度を前記第１優先度よりも高める、
処理部を備えた対話システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、対話システムに関する。
【背景技術】
【０００２】
ユーザに情報を提供する１つの方法として、例えば、ユーザの音声を認識し、応答文を生成する対話システムがある。さらに、ユーザが入力した文字情報からユーザが望むサービスを提供する方法もある。対話システムは、ユーザによって音声または文字情報で入力された文章に基づき、ユーザＵＳの希望を推定する。推定されたユーザＵＳの希望は、対話状態と呼ばれる。対話システムは、現在の対話状態を推定する際に、過去の対話状態の履歴をより適切に処理できることが望ましい。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Matthew Henderson, Blaise Thomson, and Steve Young, "Robust Dialog State Tracking using Delexicalised Recurrent Neural  Networks and Unsupervised Adaptation", IEEE Spoken Language Technology Workshop (SLT), 2014
【非特許文献２】Youngsoo Jang, Jiyeon Ham, Byung-Jun Lee, Youngjae Chang,  Kee-Eung Kim, "Neural Dialog State Tracker for Large Ontologies by  Attention Mechanism", IEEE Spoken Language Technology Workshop (SLT), 2016
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、対話状態の履歴をより適切に処理できる対話システムを提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る対話システムは、取得部及び処理部を含む。前記取得部は、第１文章を取得する。前記処理部は、第１対話状態の第１スロットに関する第１特徴量と、前記第１文章に係わる第１重みと、に基づく第１重み付け量を参照する。前記処理部は、前記第１文章に含まれる第１意図の前記第１スロットに関する第１意図量と、前記第１重みと異なり、前記第１文章に係わる第２重みと、に基づく第２重み付け量を参照する。前記処理部は、前記第１重み付け量および前記第２重み付け量を用いて、前記第１対話状態の後の第２対話状態の前記第１スロットに関する第２特徴量を出力する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係る対話システムを例示する模式図である。
【図２】第１実施形態に係る対話システムの動作を例示する模式図である。
【図３】スロットパラメータ（バリュー）及びスロットを例示する図である。
【図４】第１実施形態に係る対話システムの動作を例示するフローチャートである。
【図５】第１実施形態に係る対話システムの動作を例示するフローチャートである。
【図６】第１実施形態に係る対話システムの動作を例示するフローチャートである。
【図７】第１実施形態に係る対話システムの動作を例示するフローチャートである。
【図８】第１実施形態に係る対話システムの動作を例示する模式図である。
【図９】第１実施形態に係る対話システムの別の動作を例示するフローチャートである。
【図１０】第１実施形態に係る対話システムの動作を例示する模式図である。
【図１１】第１実施形態に係る対話システムの動作を例示するフローチャートである。
【図１２】第１実施形態の変形例に係る対話システムを例示する模式図である。
【図１３】第１実施形態の変形例に係る対話システムを例示するフローチャートである。
【図１４】第１実施形態の変形例に係る対話システムの動作を例示する模式図である。
【図１５】第２実施形態に係る対話システム２１０を例示する模式図である。
【図１６】第２実施形態に係る対話システムの動作を例示するフローチャートである。
【図１７】実施形態に係る対話装置の構成を例示する模式図である。
【発明を実施するための形態】
【０００７】
以下に、本発明の各実施形態について図面を参照しつつ説明する。
本願明細書と各図において、既に説明したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
【０００８】
図１は、第１実施形態に係る対話システムを例示する模式図である。
図１に示すように、対話システム１１０は、取得部１０及び処理部２０を含む。取得部１０は、情報を取得する。処理部２０は、その情報の処理を行う。
【０００９】
以下、まず、対話システムの例について説明する。
図２は、第１実施形態に係る対話システムの動作を例示する模式図である。  
【００１０】
対話システム１１０は、ユーザＵＳが発した音声を認識し、応答文を生成する。対話システム１１０は、音声の認識及び応答文の生成により、ユーザＵＳと対話することで、ユーザＵＳの意図を推定する。対話システム１１０は、例えば、ユーザＵＳとの文字情報の授受により、ユーザＵＳの意図を推定しても良い。推定されたユーザＵＳの意図に応じて、対話システム１１０は、サービス（ユーザＵＳが望む情報など）を、ユーザＵＳに提供する。
【００１１】
例えば、対話システム１１０は、携帯電話（スマートフォン）で使用される。携帯電話の操作者であるユーザＵＳが、対話システム１１０に例えば音声で、種々の質問を行う。その質問に応じたサービス（情報）が、対話システム１１０からユーザＵＳに提供される。
【００１２】
図２は、ユーザＵＳが食事を望む場合の１つの例を示す。
文章ＴＸ１において、対話システム１１０は、ユーザＵＳの希望を尋ねる。この質問に対して、ユーザＵＳは、文章ＴＸ２において、希望する料理の種類を発声する。文章ＴＸ１及びＴＸ２による情報の授受により、対話システム１１０は、料理の種類に関するユーザＵＳの意図を理解する。文章ＴＸ１及びＴＸ２のように、対話システム１１０及びユーザＵＳの一方から他方に向けて情報が提供され、対話システム１１０及びユーザＵＳの他方から一方に向けて情報が提供される一連の流れを「ターン」と言う。
【００１３】
対話システム１１０は、例えば、その後の文章ＴＸ３において、場所の希望を尋ねる。この質問に対して、ユーザＵＳは、文章ＴＸ４において、希望する場所を発声する。２ターン目における情報の授受により、対話システム１１０は、場所に関するユーザＵＳの意図を理解する。
【００１４】
対話システム１１０は、ユーザＵＳの意図に適合する情報があるか検索する。具体的には、対話システム１１０は、川崎駅の中にある中華料理のレストランを検索する。例えば、川崎駅の中に中華料理のレストランが無い場合、対話システム１１０は、文章ＴＸ５においてそのことをユーザＵＳに伝える。この情報を受けて、ユーザＵＳは、例えば、文章ＴＸ６において、希望する料理の種類を取り消す。
この意図を受けて、対話システム１１０は、川崎駅の中にあるレストランを検索する。例えば、複数のレストランが見つかった場合、対話システム１１０は、文章ＴＸ７において、１つレストランの名前をユーザＵＳに伝える（提案する）。例えば、ユーザＵＳは、文章ＴＸ８において、この提案を受け入れることを対話システム１１０に伝える。
【００１５】
このように、対話システム１１０とユーザＵＳとの間の情報の授受により、対話システム１１０はユーザＵＳの意図を理解し、ユーザＵＳに対してサービス（情報）を提供する。ユーザＵＳの意図により適合したサービスを提供するためには、対話システム１１０が、ユーザＵＳの意図をより適切に理解できることが望ましい。対話システム１１０おいて適切な意図理解が可能なように、例えば、対話システム１１０には、情報を格納できる複数の「分類」が設けられる。例えば、複数の分類の１つが「料理の種類」に割り当てられる。複数の「分類」の別の１つが「場所」に割り当てられる。
【００１６】
複数の「分類」の１つ（料理の種類）に、複数の「言葉」（和食、中華料理、及びイタリア料理など）が格納可能である。例えば、「分類」に、「和食」の「言葉」が格納される場合には、ユーザＵＳが、「和食が食べたい」などの発声をすると、そのユーザＵＳの意図が適切に推定され、和食に関するレストランの情報が提供できる。「分類」に格納される複数の「言葉」を適切に設定することで、ユーザＵＳの意図を正確に推定することができる。「分類」に格納される複数の「言葉」は、例えば、対話システム１１０の設計時に設けられる。対話システム１１０とユーザＵＳとの「対話」の結果に応じて、経時的に学習が行われても良い。
【００１７】
ユーザＵＳの意図をより適切に理解するためには、レストランの増減に応じて、「言葉」が追加及び削除されることが好ましい。例えば、川崎駅の中に今までは中華料理のレストランが無く、新しく中華料理のレストランが開店するときには、「中華料理」に対応する「言葉」を、「料理の種類」の「分類」に追加することが望ましい。例えば、川崎駅の中にある和食のレストランが別の場所に移転し、川崎駅の中に和食のレストランが無くなる場合は、「和食」に対応する「言葉」を、「料理の種類」の「分類」から削除することが望ましい。
【００１８】
さらに、対話システム１１０は、ユーザＵＳの意図を、より正確に追跡できることが望ましい。例えば、文章ＴＸ２の取得により、対話システム１１０は、ユーザＵＳが中華料理のレストランを希望していると推定している。すなわち、対話状態の「料理の種類」に関する部分については、「中華料理（を希望）」である。文章ＴＸ４では、ユーザＵＳは、希望する料理の種類について言及していない。しかし、１ターン目の対話からユーザＵＳが中華料理を希望していることが分かる。このため、文章ＴＸ４の取得後も、対話状態の「料理の種類」に関する部分については、「中華料理」を維持することが望ましい。さらに、文章ＴＸ４の取得後は、対話状態の「場所」に関する部分については、「川崎駅の中（を希望）」となる。
一方、文章ＴＸ６では、「料理の種類」に関する希望が取り消される。このため、文章ＴＸ６を取得した後では、対話状態の「料理の種類」に関する部分については、「Ｎｏｎｅ（希望なし）」となり、対話状態の「場所」に関する部分については、「川崎駅の中」を維持することが望ましい。
【００１９】
上述したように、対話システム１１０については、「分類」に含まれる「言葉」の増減に対応しながら、対話状態の履歴をより適切に処理できることが望ましい。
【００２０】
図３は、スロットパラメータ（バリュー）及びスロットを例示する図である。
対話システム１１０は、推定の際に、予め設定された「分類」と、その「分類」に含まれる「言葉」を参照する。この「分類」は、スロットと呼ばれる。この「言葉」は、スロットパラメータまたはバリューと呼ばれる。図３は、レストランに関する複数のスロットＳ１〜Ｓｍを例示する。それぞれのスロットには、複数のバリューが設定される。例えば、料理の種類に関するスロットＳ１は、和食のバリューＶ１１、中華料理のバリューＶ１２、イタリア料理のバリューＶ１３などを含む。場所に関するスロットＳ２は、川崎駅のバリューＶ２１、東京駅のバリューＶ２２、新宿駅のバリューＶ２３などを含む。それぞれのバリューには、特徴量が設定されている。対話システム１１０は、複数のスロットＳ１〜Ｓｍを参照し、ユーザＵＳが意図しているバリューを推定して、そのバリューに関する応答文を生成する。
【００２１】
図４は、第１実施形態に係る対話システムの動作を例示するフローチャートである。
取得部１０は、ユーザＵＳによって入力された文章を取得する（ステップＳｔ１）。文章は、例えば、ユーザＵＳによって入力される。文章は、例えば、音情報（音声情報）及び文字情報の少なくともいずれかで表される。音声が入力され、その音声情報から導出された文字情報が、取得部１０により取得されても良い。文章は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）部品へのタッチなどの操作情報に基づいても良い。取得部１０は、例えば、キーボード、マイクロフォン、及びタッチパネルの少なくともいずれかを含む。
【００２２】
処理部２０は、例えば、ＣＰＵ（例えば、コンピュータなど）を含む。処理部２０は、メモリを含んでも良い。処理部２０は、取得部１０によって取得された文章を解析する（ステップＳｔ２）。これにより、文章に含まれるユーザＵＳの意図が推定される。処理部２０は、取得された文章を解析し、重みパラメータを抽出する（ステップＳｔ３）。処理部２０は、抽出された重みパラメータに基づき重みを決定する（ステップＳｔ４）。処理部２０は、過去の対話状態を参照する（ステップＳｔ５）。
【００２３】
処理部２０は、文章に含まれるユーザＵＳの意図と、過去の対話状態と、重みと、を用いて現在の対話状態を推定する（ステップＳｔ６）。処理部２０は、推定された現在の対話状態を記憶する（ステップＳｔ７）。処理部２０は、対話が終了したか判定する（ステップＳｔ８）。対話が終了していない場合、ステップＳ１に戻る。対話が終了した場合は、動作を終了する。
【００２４】
以下で、対話システム１１０のより具体的な一例を説明する。
対話システム１１０は、例えば、第１記憶部３１、第２記憶部３２、第３記憶部３３、第４記憶部３４、第１モデル記憶部４１、及び第２モデル記憶部４２をさらに含む。
【００２５】
第１記憶部３１は、過去に推定された対話状態を記憶する。第１記憶部３１は、さらに、対話状態の推定に用いられる情報を記憶する。この情報は、後述する、重み付け量及び特徴量などを含む。
第２記憶部３２は、複数のスロットと、それぞれのスロットに含まれる複数のスロットパラメータと、を記憶する。
【００２６】
第３記憶部３３は、単語をベクトルに変換するときに参照される。第３記憶部３３は、例えば、ｗｏｒｄ２ｖｅｃまたはＧｌｏＶｅを用いて学習されたモデルを記憶する。または、第３記憶部３３は、複数の単語と複数のベクトルのそれぞれの対応を記憶する。例えば、それぞれの単語には、１−ｏｆ−Ｋ表現で表されるベクトルが割り当てられる。１−ｏｆ−Ｋ表現で表されるベクトルの次元数は、第３記憶部３３に記憶される単語の総数と同じである。このベクトルは、対応する単語の次元だけ「１」であり、他の次元は全て「０」である。
【００２７】
第４記憶部３４は、重みパラメータの抽出に用いられるルール及びＲＮＮの少なくともいずれかを記憶する。
【００２８】
第１モデル記憶部４１は、単語分割モデルを記憶する。単語分割モデルは、形態素解析により文章を複数の単語に分割するときに参照される。単語分割モデルは、例えば、ｍｅｃａｂまたはｃｈａｓｅｎなどのモデルで表される。
【００２９】
第２モデル記憶部４２は、特徴量変換モデルを記憶する。特徴量変換モデルには、第３記憶部３３を参照して生成された文章に基づくベクトルが入力される。特徴量変換モデルから、特徴量ベクトルが出力される。この特徴量ベクトルは、文章の文字数に依存しない、特定の次元数で表される。
【００３０】
例えば、特徴量変換モデルは、事前に学習されたＲｅｃｃｕｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＲＮＮ）である。ＲＮＮの入力層に取得した文章に基づくベクトルが入力される。中間層に含まれる複数のノードの少なくとも一部は、例えばＬｏｎｇ  Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ（ＬＳＴＭ）構造である。
【００３１】
各スロットパラメータも、特徴量ベクトルに変換される。スロットパラメータを特徴量ベクトルへ変換する際、第３記憶部３３に記憶された特徴量変換モデルが参照されても良いし、別のモデルが参照されても良い。または、各スロットパラメータが予め特徴量ベクトルに変換され、それらの特徴量ベクトルが第３記憶部３３または別の記憶部に記憶されていても良い。
【００３２】
例えば、ＲＮＮは、教師付き学習によって事前に作成され得る。この教師付き学習では、ラベルが付与された発話文が用いられる。ラベルは、発話文に含まれる対話状態を示す。類似度（距離）計算の結果、確率が高いと推定されたスロットパラメータが正解のスロットパラメータ（ラベルに記されたスロットパラメータ）と異なる場合、その差を小さくするようにＲＮＮのパラメータを修正する。これを繰り返し行うことで、ＲＮＮを学習する。
【００３３】
処理部２０は、例えば、入力部２１、解析部２２、抽出部２３、推定部２４、及び決定部２５を含む。
【００３４】
入力部２１は、取得部１０で取得した文章が入力される。入力部２１は、この文章を解析部２２及び抽出部２３に送る。解析部２２は、文章を解析し、この文章に含まれるユーザＵＳの意図を推定する。抽出部２３は、第４記憶部３４を参照し、取得した文章から重みパラメータを抽出する。
【００３５】
具体的には、解析部２２は、第３記憶部３３及び第１モデル記憶部４１を参照し、入力部２１に入力された文章をベクトルに変換する。解析部２２は、第２モデル記憶部４２を参照し、このベクトルを特徴量変換モデルに入力する。これにより、解析部２２は、特徴量ベクトルを取得する。解析部２２は、さらに、第２記憶部３２を参照し、各スロットパラメータを特徴量ベクトルに変換する。解析部２２は、文章に基づく特徴量ベクトルと、各スロットパラメータの特徴量ベクトルと、の類似度を計算する。類似度は、例えば、コサイン距離またはユークリッド距離で表される。解析部２２は、例えば、類似度が高いスロットパラメータの確率が高くなるように正規化し、確率分布を生成する。解析部２２は、解析結果を推定部２４に送る。
【００３６】
重みパラメータは、文章におけるスロットへの言及の度合いに基づく。例えば、文章においてスロットへの言及が合ったときは、重みパラメータは「１」に設定される。言及がなかったときは、重みパラメータは「０」に設定される。または、重みパラメータは、文章におけるスロットへの言及の度合に応じて、０以上１以下の実数値が設定されても良い。抽出部２３は、抽出した重みパラメータを決定部２５へ送る。
【００３７】
重みパラメータの抽出には、例えばルール及びＲＮＮの少なくともいずれかが用いられる。
【００３８】
例えば、重みパラメータは、ルールによって抽出される。この場合、「料理の種類」のスロットに関して、「○○を食べたい」という文があれば、重みパラメータを１にする。この文がなければ、重みパラメータを０にする。
【００３９】
ルールは、特定のスロットパラメータに依存しないように、言い回しを用いて作成される。これにより、スロットパラメータが追加または削除された場合であっても、重みパラメータを適切に抽出できる。
好ましくない一例として、［文章に「和食」が含まれていたら「料理の種類」のスロットに関する重みパラメータを１にする］というルールが設定される。この場合、「トルコ料理」などの他のスロットパラメータが文章に含まれている場合に、「料理の種類」のスロットに関する重みパラメータを１にできない。一方で、［「○○を食べたい」があったら「料理の種類」のスロットに関する重みパラメータを１にする］というルールでは、○○が和食またはトルコ料理であれば重みパラメータを１にできる。
【００４０】
ＲＮＮを用いて重みパラメータを抽出する場合、入力された文章を特徴量ベクトルに変換する。ＲＮＮは、この特徴量ベクトルが入力されると、１次元の実数値を出力する。ＲＮＮには、例えば、事前に教師付き学習が実施される。この教師付き学習では、スロットについて言及があったかを示すラベルが付与された文章が用いられる。
または、対話状態の推定までを一つのＲＮＮとして構築しても良い。この場合、対話状態を示すラベルが付与された文章を用いた教師付き学習が事前に実施される。
【００４１】
決定部２５は、抽出部２３から重みパラメータを受け取る。決定部２５は、重みパラメータに基づき、重みを決定する。換言すると、重みは、処理部２０に入力された文章に係わる値である。重みは、推定部２４が受け取った文章の意図と、過去の対話状態とを重み付けして統合するために用いられる。重みは、例えば０以上１以下の実数である。決定部２５は、例えば、重みパラメータを、そのまま重みとする。重みパラメータが、０未満または１を超える値でありうる場合、重みパラメータが０以上１以下になるように、重みパラメータを正規化しても良い。決定部２５は、正規化された重みパラメータを、重みとする。決定部２５は、シグモイド関数を用いて重みパラメータを正規化しても良い。
【００４２】
推定部２４は、第１記憶部３１にアクセスし、第１記憶部３１に記憶されている過去の対話状態の推定結果を参照する。決定部２５は、重みパラメータに基づいて重みを決定する。決定部２５は、重みを推定部２４に送る。推定部２４は、文章の解析結果と過去の対話状態とを重み付け統合し、現在の対話状態を決定する。
【００４３】
対話状態は各スロットパラメータへの確率分布であるので、例えばこの推定部２４は発話文に含まれる対話状態と過去の対話状態とを重み付け和により、対話状態を推定する。
【００４４】
推定部２４は、推定した対話状態を第１記憶部３１に送る。第１記憶部３１は、送られた対話状態を記憶する。推定部２４は、推定した対話状態を出力する。
【００４５】
スロットパラメータが追加または削除された場合、解析部２２は、類似度を計算する際に、追加または削除されたスロットパラメータの処理を追加または削除することで対応できる。スロットパラメータをベクトルに変換する処理では、共通のモデルが使用されるため、スロットパラメータの増減の影響を受けない。類似度は、コサイン距離またはユークリッド距離に基づくため、スロットパラメータに依存しない。文章に含まれる意図と過去の対話状態とを統合する際も、追加されたスロットパラメータについては過去の確率を０とする。これにより、削除されたスロットパラメータの確率を、対話状態から取り除くことができる。
【００４６】
過去にユーザＵＳが言及したスロットパラメータの確率は、スロットに言及されていないときに重みを小さくすることで記憶できる。図２に示す例では、ユーザＵＳは、１ターン目の発話で中華料理を希望し、２ターン目の発話で川崎駅を希望している。このとき、１ターン目の対話状態を推定する場合に、発話に基づく文章とスロットパラメータの「中華料理」との類似度が高くなる。その結果、１ターン目では、料理の種類に関する意図への重みが大きくなり、料理の種類は和食を希望していると推定できる。一方、２ターン目の対話状態を推定するとき、発話に基づく文章と料理の種類に含まれる全スロットパラメータとの類似度が低くなる。その結果、料理の種類に関する意図への重みが小さくなり、１ターン目での推定結果が保持される。このように、実施形態に係る対話システム１１０は、過去の履歴を保持しつつ、言及された場合には対話状態を更新できる。
【００４７】
図５は、第１実施形態に係る対話システムの動作を例示するフローチャートである。
上述した対話システム１１０によれば、以下の処理を実行可能である。
【００４８】
処理部２０は、第１対話状態の第１スロットに関する第１特徴量を算出する（ステップＳｔ１１）。第１スロットは、例えば、「料理の種類」である。第１特徴量は、例えば、第１対話状態の「料理の種類」に関するユーザＵＳの希望を表す。
【００４９】
処理部２０は、第１特徴量と、第１重みと、に基づいて第１重み付け量を算出する（ステップＳｔ１２）。第１重みは、第１文章に係わる。第１重み付け量は、例えば、第１特徴量と第１重みとの積である。または、第１重み付け量は、第１特徴量と第１重みとの積に基づく値である。処理部２０は、第１重み付け量を第１記憶部３１に記憶する（ステップＳｔ１３）。
【００５０】
処理部２０は、第１意図量を算出する（ステップＳｔ１４）。第１意図量は、第１文章に含まれるユーザＵＳの第１意図の第１スロットに関する。例えば、第１意図量は、第１文章における「料理の種類」についてのユーザＵＳの希望を表す。
【００５１】
処理部２０は、第１意図量と、第１文章に係わる第２重みと、に基づいて第２重み付け量を算出する（ステップＳｔ１５）。第２重みは、例えば第１重みと異なる。第２重み付け量は、例えば、第１意図量と第２重みとの積である。または、第２重み付け量は、第１意図量と第２重みとの積に基づく値である。処理部２０は、第２重み付け量を第１記憶部３１に記憶する（ステップＳｔ１６）。
【００５２】
処理部２０は、第１記憶部３１にアクセスし、第１記憶部３１に記憶された第１重み付け量及び第２重み付け量を参照する（ステップＳｔ１７）。処理部２０は、第１重み付け量及び第２重み付け量を用いて、第２特徴量を出力（算出）する（ステップＳｔ１８）。第２特徴量は、例えば、第１対話状態の後の第２対話状態の「料理の種類」に関するユーザＵＳの希望を表す。処理部２０は、第２特徴量を第１記憶部３１に記憶する（ステップＳｔ１９）。
【００５３】
対話システム１１０によれば、重み付けされた第１特徴量及び重み付けされた第１意図量に基づいて第２対話状態の第２特徴量が出力される。これにより、対話状態の第１スロットに関する履歴をより適切に処理できる。
【００５４】
図５に示したフローチャートについて、第１重み付け量及び第２重み付け量は、別のシステムで算出されて第１記憶部３１に記憶されても良い。この場合、ステップＳｔ１１〜Ｓｔ１７は、省略可能である。
【００５５】
対話システム１１０は、以下の処理を実行しても良い。
図６は、第１実施形態に係る対話システムの動作を例示するフローチャートである。
【００５６】
処理部２０は、第１対話状態の第１スロットに関する第１特徴量と、第１対話状態の第２スロットに関する第３特徴量と、を算出する（ステップＳｔ２１）。例えば、第２スロットは「場所」である。第３特徴量は、「場所」に関するユーザＵＳの希望を表す。
【００５７】
処理部２０は、第１重み付け量及び第３重み付け量を算出する（ステップＳｔ２２）。第１重み付け量は、第１特徴量及び第１重みに基づいて算出される。第３重み付け量は、第３特徴量及び第３重みに基づいて算出される。第１重み及び第３重みは、取得部１０から入力された第１文章に係わる。第３重みは、第１重みと同じでも良いし、第１重みと異なっていても良い。第３重み付け量は、例えば、第３特徴量と第３重みとの積に基づく値である。処理部２０は、第１重み付け量及び第３重み付け量を、第１記憶部３１に記憶する（ステップＳｔ２３）。
【００５８】
処理部２０は、第１意図量及び第２意図量を算出する（ステップＳｔ２４）。第１意図量は、第１文章に含まれるユーザＵＳの第１意図の第１スロットに関する。第２意図量は、第１意図の第２スロットに関する。例えば、第２意図量は、第１意図の「場所」についてのユーザＵＳの希望を表す。
【００５９】
処理部２０は、第２重み付け量及び第４重み付け量を算出する（ステップＳｔ２５）。
第２重み付け量は、第１意図量と、第１文章に係わる第２重みと、に基づいて算出される。第４重み付け量は、第２意図量と、第１文章に係わる第４重みと、に基づいて算出される。第４重みは、例えば、第３重みと異なる。第４重み付け量は、例えば、第２意図量と第４重みとの積に基づく値である。処理部２０は、第２重み付け量及び第４重み付け量を、第１記憶部３１に記憶する（ステップＳｔ２６）。
【００６０】
処理部２０は、第１記憶部３１にアクセスし、第１重み付け量、第２重み付け量、第３重み付け量、及び第４重み付け量を参照する（ステップＳｔ２７）。処理部２０は、第２特徴量及び第４特徴量を出力（算出）する（ステップＳｔ２８）。第４特徴量は、第３重み付け量及び第４重み付け量を用いて出力される。第４特徴量は、例えば、第２対話状態の「場所」に関するユーザＵＳの希望を表す。処理部２０は、第２特徴量及び第４特徴量を第１記憶部３１に記憶する（ステップＳｔ２９）。
【００６１】
この処理によれば、対話状態の第１スロットに関する履歴及び第２スロットに関する履歴を、それぞれより適切に処理できる。
【００６２】
対話システム１１０は、図５のフローチャートで表される処理の後に、さらに以下の処理を実行しても良い。
図７は、第１実施形態に係る対話システムの動作を例示するフローチャートである。
【００６３】
処理部２０は、第１記憶部３１にアクセスし、第２特徴量を参照する（ステップＳｔ３１）。処理部２０は、第５重み付け量を算出する（ステップＳｔ３２）。第５重み付け量は、第２特徴量及び第５重みに基づいて算出される。第５重みは、第１文章の後に、取得部１０で取得した第２文章に係わる。第５重み付け量は、例えば、第２特徴量と第５重みとの積に基づく値である。処理部２０は、第５重み付け量を、第１記憶部３１に記憶する（ステップＳｔ３３）。
【００６４】
処理部２０は、第３意図量を算出する（ステップＳｔ３４）。第３意図量は、第２文章に含まれるユーザＵＳの第２意図の第１スロットに関する。例えば、第３意図量は、第２文章における「料理の種類」についてのユーザＵＳの希望を表す。
【００６５】
処理部２０は、第３意図量と、第２文章に係わる第６重みと、に基づいて第６重み付け量を算出する（ステップＳｔ３５）。第６重みは、例えば第５重みと異なる。第６重み付け量は、例えば、第３意図量と第６重みとの積である。または、第６重み付け量は、第３意図量と第６重みとの積に基づく値である。処理部２０は、第６重み付け量を第１記憶部３１に記憶する（ステップＳｔ３６）。
【００６６】
処理部２０は、第１記憶部３１にアクセスし、第１記憶部３１に記憶された第５重み付け量及び第６重み付け量を参照する（ステップＳｔ３７）。処理部２０は、第５重み付け量及び第６重み付け量を用いて、第５特徴量を出力（算出）する（ステップＳｔ３８）。第５特徴量は、例えば、第２対話状態の後の第３対話状態の「料理の種類」に関するユーザＵＳの希望を表す。処理部２０は、第５特徴量を第１記憶部３１に記憶する（ステップＳｔ３９）。
【００６７】
図８は、第１実施形態に係る対話システムの動作を例示する模式図である。
図８は、ユーザＵＳが食事を望む場合の１つの例を示す。第１実施形態に係る対話システム１１０によれば、図８に示す例をより適切に処理できる。
【００６８】
図８に示す例において、ユーザＵＳは、文章ＴＸ１１の質問に対して、文章ＴＸ１２において、和食（第１対象）及び中華料理（第２対象）の２つの対象を希望している。その後、文章ＴＸ１５において、対話システム１１０は、中華料理のレストランが見つからず、和食のレストランが見つかったことをユーザＵＳに伝える。文章ＴＸ１５に対して、ユーザＵＳは、文章ＴＸ１６において中華料理を否定している。
【００６９】
文章ＴＸ１６は、中華料理の否定の意図のみを含む。しかし、文章ＴＸ１６以前の対話から、ユーザＵＳは、和食を希望していることが明らかである。第１実施形態に係る対話システム１１０によれば、文章ＴＸ１７において、和食のレストランが見つかったことをユーザＵＳに伝えることができる。
【００７０】
具体的には、対話システム１１０では、文章ＴＸ１２を取得したときに、和食に対応する第１スロットパラメータの第１優先度と、中華料理に対応する第２スロットパラメータの第２優先度と、が、それより以前の状態に比べて高くなる。このとき、例えば、第１優先度及び第２優先度は、イタリア料理に対応する第３スロットパラメータの第３優先度よりも高くなる。第１優先度、第２優先度、及び第３優先度のそれぞれは、例えば、確率で表される。第１優先度及び第２優先度の向上は、それぞれ、第１スロットパラメータを希望する確率及び第２スロットパラメータを希望する確率の増大に対応する。
【００７１】
一方、文章ＴＸ１６を取得すると、第２優先度が低下し、第１優先度が第２優先度よりも高くなる。これは、文章ＴＸ１６から重みパラメータが抽出され、この重みパラメータに基づいて重みが決定されることによる。
例えば、文章ＴＸ１４では、「料理の種類」のスロットパラメータへの言及は無い。従って、文章ＴＸ１４に対応するベクトルと、「料理の種類」に含まれる各スロットパラメータのベクトルと、の間の類似度は小さくなる。文章ＴＸ１６では、「料理の種類」の「中華料理」のスロットパラメータを否定している。従って、文章ＴＸ１６に対応するベクトルと「中華料理」のスロットパラメータのベクトルとの間の類似度は高くなる。しかし、文章ＴＸ１６は、中華料理を否定しているため、類似度は低い。例えば、言及が無い場合と否定の場合に応じて、重みパラメータを変化させることで、文章ＴＸ１４を取得したときに第２優先度を低下させず、文章ＴＸ１６を取得したときに第２優先度を大きく低下させることができる。この結果、対話システム１１０は、ユーザＵＳが、和食を希望していることを適切に推定できる。
【００７２】
上述した例では、第１記憶部３１は、１ターン前の状態の対話状態を記憶している。第１記憶部３１は、さらに過去の対話状態を記憶していても良い。例えば、第１記憶部３１は、対話状態の第１履歴〜第Ｎ履歴（Ｎは、２以上の実数）を記憶している。第Ｍ履歴（Ｍは、１以上Ｎ以下の実数）は、Ｍターン前の対話状態の履歴である。推定部２４は、第１記憶部３１にアクセスし、第１履歴〜第Ｎ履歴の少なくとも１つを参照する。
【００７３】
決定部２５は、入力された文章に含まれる意図と、対話状態の履歴と、に基づいて、それぞれの重みを決定する。例えば、第１記憶部３１から推定部２４に、第１履歴〜第Ｎ履歴が送られる場合、決定部２５は、文章に含まれる意図及び第１履歴〜第Ｎ履歴のそれぞれに対する重みを決定する。
【００７４】
推定部２４は、解析部２２から文章の解析結果を受け取る。推定部２４は、決定部２５から複数の重みを受け取る。推定部２４は、解析部２２による文章の解析結果と、複数の重みと、１ターン前からＮターン前までの対話状態と、に基づいて対話状態を推定する。
【００７５】
図９は、第１実施形態に係る対話システムの別の動作を例示するフローチャートである。
ステップＳｔ４０及びＳｔ４１は、図４に示したフローチャートのステップＳｔ１及びＳｔ２と同様に実行される。抽出部２３は、入力された文章から複数の重みパラメータを抽出する（ステップＳｔ４２）。複数の重みパラメータは、それぞれ、過去の複数の対話状態にどの程度注目すべきかを表す。例えば、推定部２４による対話状態の推定に第１履歴〜第Ｎ履歴が用いられる場合、Ｎ個の重みパラメータが抽出される。複数の重みパラメータのそれぞれは、例えば、「１」または「０」で表わされる。例えば、「１」は、その履歴に注目すべきことを表し、「０」は、その履歴に注目しないことを表す。複数の重みパラメータのそれぞれは、注目すべき度合いを表す０以上１以下の実数値であっても良い。または、複数の重みパラメータのそれぞれは、注目すべき度合いを表すベクトルであっても良い。
【００７６】
具体的な重みパラメータの抽出には、例えばニューラルネットワークの一種であるアテンションメカニズムが用いられる。第１履歴〜第Ｎ履歴及び単語ベクトルの系列として表された文章をＲＮＮに入力することで、Ｎ個の重みパラメータが出力される。この場合、複数の重みパラメータのそれぞれは、実数でも良く、複数次元のベクトルでも良い。
【００７７】
このＲＮＮは、何ターン前の発話に注目すべきかの正解ラベルが付与された学習データを用いて事前に学習される。正解ラベルに対して抽出されるべき重みが異なる場合、その差を縮めるようにＲＮＮのパラメータが学習される。または、対話状態の正解ラベルが付与された学習データを用いてＲＮＮを学習することもできる。
【００７８】
決定部２５は、Ｎ個の重みパラメータに基づいてＮ個の重みを決定する（ステップＳｔ４３）。Ｎ個の重みパラメータが、それぞれ、そのままＮ個の重みとして決定されても良い。ニューラルネットワークを用いて、Ｎ個の重みパラメータをＮ個の重みに変換しても良い。Ｎ個の重みパラメータを正規化してＮ個の重みが決定されても良い。
【００７９】
決定部２５は、第１記憶部３１を参照し、複数の過去の対話状態を参照する（ステップＳｔ４４）。決定部２５は、文章に含まれるユーザＵＳの意図と、複数の過去の対話状態と、複数の重みと、を用いて現在の対話状態を推定する（ステップＳｔ４５）。決定部２５は、第１記憶部３１に記憶された過去の対話状態がＬ個以上か判定する（ステップＳｔ４６）。記憶された対話状態がＬ個より少ない場合、決定部２５は、最新の対話状態を第１記憶部３１に記憶し（ステップＳｔ４７）、ステップＳｔ４８に進む。記憶した対話状態がＬ個以上の場合、第１記憶部３１は、記憶しているＬ個の対話状態のうち最も古いものを最新の対話状態により上書きする（ステップＳｔ４９）。ステップＳｔ４８は、図４に示したフローチャートのステップＳｔ８と同様に実施される。
【００８０】
この方法によれば、対話状態の履歴をより適切に処理できる。例えば、話題が転換した後に以前の話題に戻る場合でも、対話状態をより高精度に推定できる。
【００８１】
図１０は、第１実施形態に係る対話システムの動作を例示する模式図である。
図１０に示す例では、４ターン目の文章ＴＸ２８で、話題（ユーザＵＳの希望）が転換し、以前の話題に戻っている。すなわち、ユーザＵＳは、文章ＴＸ２８で、話題を１ターン目の文章ＴＸ２２で言及した中華料理に戻している。
【００８２】
例えば、対話システム１１０が用いられる場合、３ターン目の文章ＴＸ２６が入力された結果、対話状態の「料理の種類」については、「和食」の確率が１となる。一方、文章ＴＸ２８では、「料理の種類」に関する言及が無い。この結果、文章ＴＸ２６が入力された時点の対話状態と、文章ＴＸ２８と、に基づいて、ユーザＵＳが中華料理を希望していると推定することが容易ではない。
【００８３】
上述した方法によれば、少なくとも２ターン以上前の履歴を用いて現在の対話状態が推定される。例えば、抽出部２３は、文章ＴＸ２８に基づいて、１ターン前の対話状態ではなく、より過去の対話状態に注目すべきとする重みパラメータを抽出する。４ターン目の推定を行う際に１ターン目にかかる重みが大きく、３ターン目にかかる重みが小さくなる。すなわち、対話状態の「料理の種類」について、「和食」の確率を下げ、「中華料理」の確率を高めることができる。
【００８４】
この対話システム１１０によれば、図５のフローチャートで表される処理の後に、さらに以下の処理を実行可能である。
図１１は、第１実施形態に係る対話システムの動作を例示するフローチャートである。
【００８５】
ステップＳｔ５１〜Ｓｔ５６は、それぞれ、図７に示したフローチャートのステップＳｔ３１〜Ｓｔ３６と同様に実行される。処理部２０は、第１記憶部３１にアクセスし、第１特徴量を参照する（ステップＳｔ５７）。処理部２０は、第７重み付け量を算出する（ステップＳｔ５８）。第７重み付け量は、第１特徴量及び第７重みに基づいて算出される。第７重みは、第２文章に係わる。第７重みは、例えば、第５重みおよび第６重みのそれぞれと異なる。第７重み付け量は、例えば、第１特徴量と第７重みとの積に基づく値である。処理部２０は、第７重み付け量を、第１記憶部３１に記憶する（ステップＳｔ５９）。
【００８６】
処理部２０は、第１記憶部３１にアクセスし、第１記憶部３１に記憶された第５重み付け量、第６重み付け量、及び第７重み付け量を参照する（ステップＳｔ６０）。処理部２０は、第５重み付け量、第６重み付け量、及び第７重み付け量を用いて、第５特徴量を出力（算出）する（ステップＳｔ６１）。処理部２０は、第５特徴量を第１記憶部３１に記憶する（ステップＳｔ６２）。
【００８７】
この対話システム１１０によれば、第２対話状態の第５特徴量が、重み付けされた第２特徴量、重み付けされた第３意図量、及び重み付けされた第１特徴量に基づいて出力される。これにより、対話状態の第１スロットに関する履歴をさらに適切に処理できる。
【００８８】
図１２は、第１実施形態の変形例に係る対話システムを例示する模式図である。
図１２に示した対話システム１２０は、抽出部２３を含んでいない。この場合、重みは、例えば、取得された文章におけるスロットへの言及の有無または言及の度合いに基づいて決定される。
【００８９】
決定部２５は、例えば、重みを決定する際に、人手により作成されたルールを参照する。または、重みを推定するモデルが予め作成されても良い。決定部２５は、重みを決定する際に、このモデルを参照する。重みは、推定部２４が解析部２２から受け取った発話文に含まれる対話状態に基づいて決定されても良い。例えば、発話文に含まれる対話状態のうち最も確率が高いものに基づき重みを決めても良い。また、発話文に含まれる対話状態のうち、全てのスロットパラメータの確率の合計や平均値に基づき重みを決めても良い。さらに、発話文に含まれる対話状態からニューラルネットワークにより重みを決めても良い。このネットワークは、入力として各スロットパラメータの確率を受け取り、重みを出力する。このネットワークは事前に発話文に含まれる対話状態を示すラベルが付与された発話文を用いた教師付き学習によって作成され得る。
【００９０】
図１３は、第１実施形態の変形例に係る対話システムを例示するフローチャートである。
取得部１０は、ユーザによって入力された文章を取得する（ステップＳｔ７１）。処理部２０は、取得部１０によって取得された文章を解析する（ステップＳｔ７２）。これにより、文章に含まれるユーザの意図が推定される。処理部２０は、文章に基づいて重みを決定する（ステップＳｔ７３）。さらに、処理部２０は、過去の対話状態を参照する（ステップＳｔ７４）。
【００９１】
処理部２０は、文章に含まれるユーザの意図と、過去の対話状態と、重みと、を用いて現在の対話状態を推定する（ステップＳｔ７５）。処理部２０は、推定された現在の対話状態を記憶する（ステップＳｔ７６）。処理部２０は、対話が終了したか判定する（ステップＳｔ７７）。対話が終了していない場合、ステップＳ７１に戻る。対話が終了した場合は、動作を終了する。
【００９２】
図１４は、第１実施形態の変形例に係る対話システムの動作を例示する模式図である。
図１４に示す例では、文章ＴＸ３１〜ＴＸ３４を含む１ターン目および２ターン目の対話により、例えば、「料理の種類」については、「中華料理」の確率が１となる。「場所」については、「川崎駅」の確率が１となる。その後の文章ＴＸ３５において、ユーザＵＳは、和食を希望している。より具体的には、この文章ＴＸ３５は、ユーザＵＳが中華料理では無く和食を希望する意図を含む。対話システム１２０によれば、文章ＴＸ３５の取得に基づき、「和食」の確率を「中華料理」の確率よりも高めることができる。この結果、対話システム１２０は、川崎駅の中の和食のレストランを検索し、その検索結果を文章ＴＸ３６においてユーザＵＳに伝える。
【００９３】
図１４に示す例のように、対話システム１２０は、第１対象を希望する第１文章を取得すると、第１対象に対応する第１スロットパラメータの第１優先度を、第２対象に対応する第２スロットパラメータの第２優先度よりも高める。そして、対話システム１２０は、第１文章の取得の後に第２対象を希望する第２文章を取得すると、第２優先度を第１優先度よりも高める。
【００９４】
対話システム１２０の上述した処理は、第１文章に基づく対話状態および第２文章に含まれる意図のそれぞれに対して、重みが決定されることで可能となる。重みが用いられない場合、文章ＴＸ３６に基づく対話状態は、例えば、「和食」および「中華料理」のそれぞれの確率が０．５に設定される。重みが用いられることで、「和食」の優先度（確率）を「中華料理」の優先度よりも高くできる。従って、対話システム１２０によれば、対話システム１１０と同様に、対話状態の履歴をより適切に処理できる。
【００９５】
図１５は、第２実施形態に係る対話システム２１０を例示する模式図である。
対話システム２１０は、ユーザによって入力された文章だけでなく、直前に対話システム２１０が提供した情報（質問）も用いて処理を行う。
【００９６】
対話システム２１０は、例えば、第５記憶部３５、第６記憶部３６、第７記憶部３７、第３モデル記憶部４３、及び出力部５０をさらに含む。処理部２０は、システム応答取得部２６及び対話制御部２７をさらに含む。
【００９７】
第５記憶部３５は、システム応答ベクトル辞書を記憶する。この辞書は、対話システム１１０が出力する質問をベクトルに変換するときに参照される。システム応答ベクトル辞書は、例えば、抽象的な複数のタグと複数の数値とのそれぞれの対応、複数のスロットと複数の数値とのそれぞれの対応、及び複数のスロットパラメータと複数の数値とのそれぞれの対応を記憶する。
【００９８】
タグは、文章の意図を抽象的に表現する。例えば、複数のタグは、「質問」及び「確認」などのタグを含む。文章が質問に関する場合は、「質問」のタグが付される。文章が確認に関する場合は、「確認」のタグが付される。
【００９９】
それぞれのタグには、対応する数値が割り当てられる。例えば、「質問」のタグには、１が割り当てられる。「確認」のタグには、２が割り当てられる。同様に、それぞれのスロット及びスロットパラメータには、対応する数値が割り当てられる。例えば、「料理の種類」のスロットには、１が割り当てられる。「場所」のスロットには、２が割り当てられる。「和食」のスロットパラメータには、１が割り当てられる。「中華料理」のスロットパラメータには、２が割り当てられる。
【０１００】
第６記憶部３６は、対話コンテンツを記憶する。対話コンテンツは、対話システム２１０の出力において紹介されるコンテンツを含む。コンテンツは、例えば、料理の種類、店舗の名前、場所、価格帯などである。
【０１０１】
第７記憶部３７は、シナリオを記憶する。シナリオは、推定された対話状態に基づき、システム応答を決めるために用いられる。例えば、シナリオは、ルールで表される。例えば、ルールの１つは、「和食の確率が０．９以上である場合、質問（場所）を出力する」である。ルールの別の１つは、「和食の確率が０．２以上０．９以下の場合、料理の種類が和食か確認を出力する」である。
【０１０２】
シナリオは、事前に学習されたモデルで表されても良い。このモデルは、例えば、各スロットパラメータの確率に基づき、システム応答を選択する。
【０１０３】
第３モデル記憶部４３は、応答生成モデルを記憶する。応答生成モデルは、抽象的なタグ、スロット、およびスロットパラメータに基づき、システム応答を生成するために用いられる。応答生成モデルは、例えば、ブランクを含むテンプレートを保持する。例えば、抽象的なタグは「質問（〇〇）」であり、テンプレートは「〇〇にご希望はありますか？」である。別の例では、抽象的なタグは「確認（〇〇＝△△）」であり、テンプレートは「〇〇は△△ということでよろしいですか？」である。
【０１０４】
システム応答取得部２６は、対話状態推定に直前のシステム応答を反映させるため、システム応答を受け取る。システム応答は、対話システム２１０からユーザに対して出力される文章である。システム応答取得部２６は、対話制御部２７からシステム応答を受け取る。システム応答取得部２６は、解析部２２に受け取ったシステム応答を送る。
【０１０５】
解析部２２は、入力部２１から文章を受け取る。解析部２２は、システム応答取得部２６からシステム応答を受け取る。解析部２２は、ユーザによって入力された文章とシステム応答とから、文章に含まれるユーザの意図を推定する。解析部２２は、推定した意図（文章の解析結果）を推定部２４に送る。抽出部２３は、ユーザによって入力された文章及びシステム応答から、重みパラメータを抽出する。抽出部２３は、抽出した重みパラメータを決定部２５に送る。
【０１０６】
決定部２５は、重みパラメータ及び過去の対話状態に基づき、重みを決定し、推定部２４に送る。推定部２４は、文章の解析結果と過去の対話状態とを重み付け統合し、現在の対話状態を決定する。推定部２４は、推定された対話状態を、対話制御部２７に送る。対話制御部２７は、推定された対話状態に基づく文章（システム応答）を、システム応答取得部２６及び出力部５０に送る。
【０１０７】
出力部５０は、システム応答を受け取ると、システム応答を出力する。例えば、出力部５０は、モニタである。この場合、出力部５０は、システム応答を表示する。出力部５０は、スピーカであり、システム応答を音声で出力しても良い。出力部５０は、プリンタであり、システム応答を印刷して表示しても良い。
【０１０８】
システム応答は、例えば、テキスト、音声信号、及び抽象化されたタグの少なくともいずれかを用いて表される。例えば、「料理の種類にご希望はありますか」という質問文は、抽象化したタグでは、「質問（料理の種類）」で表される。「希望の料理の種類は和食ということでよろしいですか？」という質問文は、抽象化したタグでは、「確認（料理の種類＝和食）」で表される。「レストランＡはいかがでしょうか？」という質問文は、抽象化したタグでは、「提案（名前＝レストランＡ）」で表される。「場所は川崎で、電話番号は１２３４−５６７８です」という回答文は、抽象化したタグでは、「回答（場所＝川崎、電話番号＝１２３４−５６７８）」で表される。このように、タグは、スロットとスロットパラメータの組で表される。
【０１０９】
ユーザにより入力された文章に注目すべき度合は、システム応答に注目すべき度合いと同じとは限らない。例えば、システム応答が「手続きＡに関するお問い合わせということでよろしいでしょうか？」と質問する。ユーザがその質問に対して「はい」と答える。この場合、手続きＡに対応するスロットパラメータに注目すべきである。対話状態を推定するための文章の重要性は低い。システム応答へ注目すれば、対話状態を適切に推定できる。
【０１１０】
図１６は、第２実施形態に係る対話システムの動作を例示するフローチャートである。
対話制御部２７は、システム応答を決定し（ステップＳｔ８０）、システム応答をシステム応答取得部２６及び出力部５０に送る。例えば、対話が開始した直後は、「いらっしゃいませ。ご用件をお伺いします」がシステム応答である。その後は、対話状態に基づきシステム応答が決定される。この応答制御には、例えば、事前に作成されたルールまたは事前に学習されたモデルが用いられる。
【０１１１】
システム応答取得部２６は、システム応答を取得する（ステップＳｔ８１）。解析部２２は、ユーザにより入力された文章とシステム応答を解析し（ステップＳｔ８２および８３）、ユーザの意図を推定する。文章については、対話システム１１０と同様にして意図を推定する。システム応答については、例えばシステム応答のタグの中に該当するスロットパラメータが含まれているか否かを判定する。例えば、タグの中に該当するスロットパラメータが含まれている場合は「１」で表される。タグの中に該当するスロットパラメータが含まれていない場合は「０」で表される。
【０１１２】
抽出部２３は、ユーザにより入力された文章とシステム応答に基づき、重みパラメータを抽出する（ステップＳｔ８４）。ステップＳｔ８５〜Ｓｔ８９は、それぞれ、図４に示したフローチャートのステップＳｔ４〜Ｓｔ８と同様に実行される。
【０１１３】
対話システム２１０によれば、対話状態をより適切に推定できる。例えば、対話システム２１０がユーザに対して質問し、対話システム２１０がその質問に対する回答を取得したときに、ユーザの意図をより適切に推定できる。
【０１１４】
一例として、対話システムがユーザに対し「料理ジャンルは和食ということでよろしいでしょうか？」と質問する。この質問に対して、ユーザは、「そう」と答える。この場合、ユーザにより入力された「そう」の文章だけからユーザが和食を希望していると推定することは容易ではない。
対話システム２１０によれば、システム応答取得部２６が、システム応答を取得する。これにより、重みパラメータを抽出する際に、「そう」が肯定を表していることが分かり、システム応答への重みを大きくできる。この結果、ユーザが和食を希望していると適切に推定できる。
【０１１５】
図１７は、実施形態に係る対話装置の構成を例示する模式図である。
上述した各実施形態に係る対話システムは、例えば、図１５に示した対話装置３１０により実現される。対話装置３１０は、一例として、一般のコンピュータ（情報処理装置）と同様のハードウェア構成により実現される。対話装置３１０は、ＣＰＵ（Central  Processing  Unit）３１１と、取得部３１２と、出力部３１３と、ＲＯＭ（Read  Only  Memory）３１４と、ＲＡＭ（Random  Access  Memory）３１５と、記憶部３１６と、通信装置３１７と、バス３１８とを含む。各部は、バス３１８により接続される。
【０１１６】
ＣＰＵ３１１は、ＲＯＭ３１４または記憶部３１６に予め記憶された各種プログラムと協働して各種処理を実行し、対話装置３１０を構成する各部の動作を統括的に制御する。ＣＰＵ３１１は、処理において、ＲＡＭ３１５の所定領域を作業領域として用いる。ＣＰＵ３１１は、ＲＯＭ３１４または記憶部３１６に予め記憶されたプログラムと協働して、取得部３１２、出力部３１３、及び通信装置３１７等を実現させる。
【０１１７】
取得部３１２は、例えば、キーボード、マイクロフォン、及びタッチパネルの少なくともいずれかを含む。取得部３１２は、ユーザから入力された情報を指示信号として受け付け、その指示信号をＣＰＵ３１１に出力する。出力部３１３は、例えば、モニタ、スピーカ、及びモニタの少なくともいずれかを含む。出力部３１３は、ＣＰＵ３１１から出力された信号に基づいて、各種情報を出力する。
【０１１８】
ＲＯＭ３１４は、対話装置３１０の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。ＲＡＭ３１５は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等の揮発性の記憶媒体である。ＲＡＭ３１５は、ＣＰＵ３１１の作業領域として機能する。具体的には、対話装置３１０が用いる各種変数およびパラメータ等を一時記憶するバッファ等として機能する。
【０１１９】
記憶部３１６は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶部３１６は、対話装置３１０の制御に用いられるプログラムおよび各種設定情報等を記憶する。記憶部３１６は、第１記憶部３１〜第７記憶部３７及び第１モデル記憶部４１〜第３モデル記憶部４３が記憶する情報を記憶する。通信装置３１７は、外部の機器と通信して情報の送受信を行うために用いられる。
【０１２０】
以上で説明した各実施形態によれば、対話状態の履歴をより適切に処理できる対話システム及び対話状態推定方法を提供できる。以上で説明した各実施形態をシステムに実行させるためのプログラム及びそのプログラムを記憶した記憶媒体を用いることで、対話状態の履歴をより適切に処理できる。
【０１２１】
以上、具体例を参照しつつ、本発明の実施の形態について説明した。しかし、本発明の実施形態は、これらの具体例に限定されるものではない。例えば、取得部、処理部、記憶部、モデル記憶部、出力部などの各要素の具体的な構成に関しては、当業者が公知の範囲から適宜選択することにより本発明を同様に実施し、同様の効果を得ることができる限り、本発明の範囲に包含される。
【０１２２】
また、各具体例のいずれか２つ以上の要素を技術的に可能な範囲で組み合わせたものも、本発明の要旨を包含する限り本発明の範囲に含まれる。
【０１２３】
その他、本発明の実施の形態として上述した対話システムを基にして、当業者が適宜設計変更して実施し得る全ての対話システムも、本発明の要旨を包含する限り、本発明の範囲に属する。
【０１２４】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【０１２５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２６】
１０ 取得部、  ２０ 処理部、  ２１ 入力部、  ２２ 解析部、  ２３ 抽出部、  ２４ 推定部、  ２５ 決定部、  ２６ システム応答取得部、  ２７ 対話制御部、  ３１ 第１記憶部、  ３２ 第２記憶部、  ３３ 第３記憶部、  ３４ 第４記憶部、  ３５ 第５記憶部、  ３６ 第６記憶部、  ３７ 第７記憶部、  ４１ 第１モデル記憶部、  ４２ 第２モデル記憶部、  ４３ 第３モデル記憶部、  ５０ 出力部、  １１０、１２０、２１０ 対話システム、  ３１０ 対話装置、  ３１１ ＣＰＵ、  ３１２ 取得部、  ３１３ 出力部、  ３１４ ＲＯＭ、  ３１５ ＲＡＭ、  ３１６ 記憶部、  ３１７ 通信装置、  ３１８ バス、  Ｓ１〜Ｓｍ スロット、  Ｓｔ１〜Ｓｔ８、Ｓｔ１１〜Ｓｔ１９、Ｓｔ２１〜Ｓｔ２９、Ｓｔ３１〜Ｓｔ３９、Ｓｔ４０〜Ｓｔ４９、Ｓｔ５１〜Ｓｔ６２、Ｓｔ７１〜７７、Ｓｔ８０〜８９ ステップ、  ＴＸ１〜ＴＸ８、ＴＸ１１〜ＴＸ１８、ＴＸ２１〜ＴＸ２９、ＴＸ３１〜ＴＸ３８ 文章、  ＵＳ ユーザ、  Ｖ１１〜Ｖ１３、Ｖ２１〜Ｖ２３、Ｖｍ１〜Ｖｍｎ バリュー
【図１】
2019106054.tif 000003
【図２】
2019106054.tif 000004
【図３】
2019106054.tif 000005
【図４】
2019106054.tif 000006
【図５】
2019106054.tif 000007
【図６】
2019106054.tif 000008
【図７】
2019106054.tif 000009
【図８】
2019106054.tif 000010
【図９】
2019106054.tif 000011
【図１０】
2019106054.tif 000012
【図１１】
2019106054.tif 000013
【図１２】
2019106054.tif 000014
【図１３】
2019106054.tif 000015
【図１４】
2019106054.tif 000016
【図１５】
2019106054.tif 000017
【図１６】
2019106054.tif 000018
【図１７】
2019106054.tif 000019