ユーザから発生した音声信号またはテキスト信号に関するデータを受け取るための入力部と、
アクションによって指定された情報を出力するための出力部と、
1つまたは複数の状態追跡モデルを使用して入力データに基づいて1つまたは複数のシステム状態を更新することと、ここで、1つまたは複数のシステム状態は、複数のカテゴリの各々に関する複数の可能な値の各々に関連付けられた確率値を備え、カテゴリは、音声信号またはテキスト信号が関連し得る主題に対応し、値のセットからの1つまたは複数の値をとることができる、
アクション関数を決定し、システム状態を使用して生成された情報と記憶された情報のセットとをポリシーモデルに入力することによってアクション関数入力を決定することと、ここで、記憶された情報のセットは、複数のアクション関数を備える、
決定されたアクション関数および決定されたアクション関数入力によって指定された情報を出力部において出力することを行うように構成されたプロセッサと
を備える対話システムが提供される。
複数のカテゴリは、複数の異なるあらかじめ定義されたドメイン固有オントロジーからのものであり、あらかじめ定義されたドメインは、特定の対話話題に対応し、あらかじめ定義されたドメイン固有オントロジーは、特定の対話話題に関する複数のカテゴリを備え、複数のアクション関数は、ドメインに依存しない。
複数のアクション関数は、greet、goodbye、inform、confirm、select、request、request more、およびrepeatのうちの1つまたは複数を備えてもよい。
システム状態を使用して生成された入力される情報または記憶された情報のセットは、可能なアクション関数入力のセットを備える。アクション関数入力は、カテゴリを備えてもよい。各アクション関数入力は、カテゴリであってもよい。
任意で、アクション関数を決定し、アクション関数入力を決定することは、可能なアクション関数入力ごとに、値のベクトルを生成することを備え、ここで、各ベクトル内の各値は、アクション関数に対応し、アクション関数およびアクション関数入力が出力情報を生成するために使用される場合における対話性能の推定値であり、値は、記憶されたパラメータから生成され、決定されたアクション関数およびアクション関数入力は、ベクトルのすべてからの最高値に対応するアクション関数に対応する。
ポリシーモデルは、ニューラルネットワークを備えてもよい。任意に、アクション関数を決め、アクション関数入力を決めることは、同様にシステム状態とともに各可能なアクション関数入力をニューラルネットワークに入力することを含む。ニューラルネットワークは、入力ごとに、値のベクトルを生成するように構成され、各ベクトル内の各値は、アクション関数に対応し、アクション関数およびアクション関数入力が出力情報を生成するために使用される場合における対話性能の推定値である。ニューラルネットワークは、各ベクトルに関する最高値に対応するアクション関数を出力する。決定されたアクション関数およびアクション関数入力は、ベクトルのすべてからの最高値に対応するアクション関数に対応する。
ニューラルネットワークは、オントロジーに依存しないパラメータで動作するように構成されてもよく、
プロセッサは、
1つまたは複数のオントロジーに依存しないパラメータの第1のセットに関してシステム状態を使用して生成された情報をパラメータ化することと、
ニューラルネットワークに入力された各アクション関数入力をパラメータ化することと
を行うようにさらに構成される。
各アクション関数入力は、パラメータ化され、パラメータは、アクション関数入力に関する値のベクトルを生成するために使用され、値のベクトルの各々は、ドメイン固有アクション関数入力に対応する。
システム入力部は、音声信号を受け取るためのものであってもよく、出力部は、音声信号を出力するための出力部であり、
プロセッサは、
入力音声信号から、関連付けられた確率(associated probability)を有する自動音声認識仮説を生成すること、
アクションに基づいてテキストを生成することと、
テキストを、出力されることになる音声に変換することと
を行うようにさらに構成される。
アクション関数入力がカテゴリを備える場合、プロセッサは、
1つまたは複数の関連カテゴリを識別することと、
関連カテゴリの各々に関する複数の可能な値のうちの1つまたは複数に関連付けられた確率値を備える減少されたシステム状態(reduced system state)を生成することと、ここで、減少されたシステム状態の少なくとも一部は、モデルに入力される、
を行うようにさらに構成されてもよい。
アクション関数入力がカテゴリを備える場合、プロセッサは、
1つまたは複数の関連カテゴリを識別することと、
関連すると識別されないカテゴリを、システム状態およびニューラルネットワークに入力されるアクション関数入力から除外することと
を行うようにさらに構成されてもよい。
アクション関数入力が、記憶される情報のセットに備わっている場合、記憶される情報のセットは、関連しないカテゴリを除外する。
アクション関数入力が、更新されたシステム状態を使用して生成される情報に備わっている場合、アクション関数入力は、減少されたシステム状態から得られる。減少されたシステム状態はまた、ポリシーモデルに入力される。それは、入力される前にパラメータ化されてもよい。
1つまたは複数の関連カテゴリを識別することは、更新されたシステム状態情報の少なくとも一部を識別子モデルに入力することを備え、識別子モデルは、更新されたシステム状態に基づいて各カテゴリが関連する確率を求め、閾値よりも高い確率を有するカテゴリである関連カテゴリを識別し、関連カテゴリは、異なるあらかじめ定義されたドメイン固有オントロジーからのカテゴリを備え、減少されたシステム状態は、関連すると識別されなかったカテゴリのいずれかに関する複数の可能な値のいずれかに関連付けられた確率値を備えない。
1つまたは複数の関連カテゴリを識別することは、更新されたシステム状態情報の少なくとも一部を対話話題追跡モデルに入力することを備え、対話話題追跡モデルは、更新されたシステム状態に基づいて各対話話題が関連する確率を求め、最も関連する対話話題を識別し、関連カテゴリは、最も関連する対話話題に対応するあらかじめ定義されたドメイン固有オントロジーからのカテゴリを備え、減少されたシステム状態は、関連すると識別されなかったカテゴリのいずれかに関する複数の可能な値のいずれかに関連付けられた確率値を備えない。
カテゴリは、スロットであってもよい。
1つまたは複数のシステム状態を更新することは、複数の状態追跡モデルを使用して入力データに基づいて複数のシステム状態を更新することを備え、各システム状態は、あらかじめ定義されたドメインに関連付けられた複数のカテゴリの各々に関する複数の可能な値の各々に関連付けられた確率値を備える。
ユーザから発生した音声信号またはテキスト信号に関するデータを受け取ることと、
1つまたは複数の状態追跡モデルを使用して入力データに基づいて1つまたは複数のシステム状態を更新することと、ここで、1つまたは複数のシステム状態は、複数のカテゴリの各々に関する複数の可能な値の各々に関連付けられた確率値を備え、カテゴリは、音声信号またはテキスト信号が関連し得る主題に対応し、値のセットからの1つまたは複数の値をとることができる、
アクション関数を決定し、システム状態を使用して生成された情報と記憶された情報のセットとをポリシーモデルに入力することによってアクション関数入力を決定することと、ここで、記憶された情報のセットは、複数のアクション関数を備える、
決定されたアクション関数および決定されたアクション関数入力によって指定された情報を出力部において出力することと
を備える対話方法がさらに提供される。
人間またはシミュレートされた人間(simulated human)との対話を入力するために対話システムを繰り返し使用し、各対話に関する性能インジケータを提供することによって、対話システムを適合させる方法であって、
対話における音声信号またはテキスト信号に関するデータを受け取ることと、
状態追跡モデルを使用して入力データに基づいてシステム状態を更新することと、ここで、システム状態は、複数のカテゴリの各々に関する複数の可能な値の各々に関連付けられた確率値を備え、カテゴリは、音声信号またはテキスト信号が関連し得る主題に対応し、値のセットからの1つまたは複数の値をとることができる、
アクション関数を決定し、システム状態を使用して生成された情報と記憶された情報のセットとをポリシーモデルに入力することによってアクション関数入力を決定することと、ここで、記憶された情報のセットは、複数のアクション関数を備える、
決定されたアクション関数および決定されたアクション関数入力によって指定された情報を出力部において出力することと、
性能インジケータを増加させるようにポリシーモデルを適合させることと
を備える方法がさらに提供される。
システム状態を使用して生成された入力される情報または記憶された情報のセットは、可能なアクション関数入力のセットを備えてもよく、
アクション関数を決定し、アクション関数入力を決定することは、
可能なアクション関数入力ごとに、値のベクトルを生成することと、ここで、各ベクトル内の各値は、アクション関数に対応し、アクション関数およびアクション関数入力が出力情報を生成するために使用される場合における対話性能の推定値であり、値は、記憶されたパラメータから生成される、
ベクトルごとに、最も高い値に対応するアクション関数を識別することと
を備え、
決定されたアクション関数およびアクション関数入力は、ベクトルのすべてからの最高値に対応するアクション関数に対応し、
ポリシーモデルを適合させることは、性能インジケータに基づいて記憶されたパラメータを更新することを備える。
システム状態を使用して生成された入力される情報または記憶された情報のセットは、複数のアクション関数入力を備え、アクション関数入力は、カテゴリを備え、
方法は、1つまたは複数の関連カテゴリを識別することをさらに備え、
情報のセットは、関連すると識別されなかったカテゴリを除外し、
システム状態は、関連カテゴリの各々に関する複数の可能な値のうちの1つまたは複数に関連付けられた確率値を備える減少されたシステム状態である。
1つまたは複数の関連カテゴリは、識別子モデルを使用して入力システム状態情報の少なくとも一部に基づいて識別されてもよい。
方法は、対話内に存在するカテゴリごとに、達成された性能インジケータと最大可能性能インジケータの比の累積移動平均をカテゴリ重要性の推定値として決定することをさらに備えてもよく、重要性は、パラメータの第2のセットのうちの1つとして使用される。
方法は、対話内のカテゴリごとに、対話内の相対位置の累積移動平均をカテゴリ優先度の推定値として決定することをさらに備えてもよく、優先度が、パラメータの第2のセットのうちの1つとして使用される。
上記方法のいずれかをコンピュータに実行させるように構成されたコンピュータ可読コードを備える搬送媒体がさらに提供される。
実施形態によるいくつかの方法は、ソフトウェアによって実施可能であるので、いくつかの実施形態は、任意の適切な搬送媒体上に、汎用コンピュータに提供されるコンピュータコードを含む。搬送媒体は、フロッピー(登録商標)ディスク、CD−ROM、磁気デバイスもしくはプログラマブルメモリデバイスなどの記憶媒体、または、任意の信号、例えば、電気信号、光信号、もしくはマイクロ波信号などの任意の一時的媒体を備えることができる。搬送媒体は、非一時的なコンピュータ可読記憶媒体を備えてもよい。
多くのタスク指向型音声対話システムでは、オントロジーは、複数の可能な値のうちの1つ(または複数)で満たされるべき複数のスロットを指定する。次いで、ポリシーは、タスクを完了するために、スロットを値で満たすように会話の流れを制御するように構成される。例えば、部分観測マルコフ決定過程音声対話システム(POMDP−SDS)では、対話における各ターンにおいて、確信度スコアを有する自動音声認識(ASR)仮説のリスト(ASR n−bestリストと呼ばれる)が観測され、これは、意味表現(対話アクト)のn−bestリストを取得するために、音声言語理解(SLU)ユニットによって解析され得る。この後、信念状態(belief state)と呼ばれる、対話状態の分布表現(ユーザの目標と対話履歴とを備える)が、例えばSLU出力および前のシステムアクションに基づいて対話の各ターンにおいて信念を更新する対話状態追跡モデルによって維持される。ポリシーモデル18は、意味表現における次のシステムアクションを決定し、これは、次いで、自然言語生成(NLG)モジュールによって理解され、音声合成(TTS:Text-to-speech)部によってユーザに読み上げられる。ポリシーモデル18および1つまたは複数の他の構成要素は、例えば、ニューラルネットワークに接続されてもよいし、単一のニューラルネットワークによって置き換えられてもよい。
図1(a)は、そのようなSDS汎用アーキテクチャの一例の概要である。そのような音声対話システムは、例えば、人間ユーザ10からの音声をテキストに変換し(自動音声認識12)、意味情報を識別および照合し(自然言語処理部14)、システム状態を更新し(システム状態追跡部16)、出力アクションを生成し(ポリシーモデル18)、アクションによって指定される必要なテキストを生成し(自然言語生成部20)、音声を合成する(テキスト音声合成部22)ために、いくつかの構成要素を備えてもよい。代替として、ポリシーモデル18および1つまたは複数の他の構成要素は、例えば、単一のニューラルネットワークによって置き換えられてもよい。
図1(b)は、対話システム1の概略図である。対話システム1は、情報検索SDSであってもよい。システム1は、プロセッサ3を備え、人間発話の表現である入力を得る。これは、人間発話の意味表現であってもよいし、人間発話から抽出された情報を表すデータの集まりであってもよい。それは、音声信号またはテキスト信号であってもよい。システムはまた、意味表現、テキスト信号もしくは音声信号、または他の出力情報、例えば電話機に関する電話をつなぐための命令などの、デバイスに対する、タスクを実行するための命令を出力してもよい。処理部は、対話管理部であってもよく、システム1によって行われるべきアクションを決定するためにポリシーを実施してもよい。
コンピュータプログラム5は、不揮発性メモリに記憶される。不揮発性メモリはプロセッサ3によってアクセスされ、記憶されたコンピュータプログラムコードは、プロセッサ3によって読み出され、実行される。記憶部7は、プログラム5によって使用されるデータを記憶する。
システム1は、入力モジュール11をさらに備える。入力モジュール11は、音声信号またはテキスト信号に関するデータを受け取るための入力部15に接続される。入力部15は、ユーザがデータを直接に入力することを可能にするインターフェース、例えばマイクロホンまたはキーボードであってもよい。代替として、入力部15は、外部記憶媒体またはネットワークからデータを受け取るための受信器であってもよい。表現は、意味解読器(semantic decoder)から受け取られてもよい。
システム1は、出力モジュール13をさらに備えてもよい。出力モジュール13に接続されているのは、出力部17であってもよい。出力部17は、ユーザにデータを提供するインターフェース、例えば、スクリーン、ヘッドフォン、またはスピーカであってもよい。代替として、出力部17は、外部記憶媒体またはネットワークにデータを送信するための送信器であってもよい。代替として、出力部17は、別のデバイスまたはデバイスの一部に命令を提供してもよい。
使用に際して、システム1は、入力部15を通して音声信号またはテキスト信号を受け取る。プログラム5は、以下の図を参照して説明される様式で、プロセッサ3上で実行される。プログラム5は、出力部17においてテキスト信号または音声信号を出力し得る。
システム1は、以下の図を参照して説明される様式で構成および適合されてもよい。音声対話システムの例が説明され得るが、任意の対話システム、例えばテキストベースの対話システムが、同様に動作し、構成されてもよい。
図2は、対話システムによって実行される例示的な方法を示すフローチャートである。
システムは、記憶部7内にオントロジー情報を記憶する。オントロジー情報は、アクション関数と、カテゴリと、カテゴリに関する可能な値とを備える。
カテゴリは、音声信号またはテキスト信号が関連し得る主題に対応し、カテゴリに対応する可能な値のセットからの1つまたは複数の値をとる(take on)ことができる。カテゴリは、例えば、情報検索SDSにおけるスロットであってもよい。
アクション関数は、通信関数(communicative function)である。アクション関数は、アクション関数入力をとる。アクションは、アクション関数入力をアクション関数と組み合わせることによって生成される。フルシステムアクション(full system actions)の場合、アクション関数入力は、ヌルである(例えば、reqmore()、hello()、thankyou()、…などのアクションの場合)ことがあり、1つまたは複数のカテゴリを備える(例えば、request(food)、…などのアクションの場合)ことがあり、または、1つまたは複数のカテゴリと、各カテゴリに関する1つまたは複数の値とを備える(例えば、confirm(area=north)、select(food=Chinese,food=Japanese)、offer(name=“Peking Restaurant”,food=Chinese,area=centre)、…などのアクションの場合)ことがある。後で説明される要約アクションの場合、アクション関数入力は、ヌルであることがあり、または1つまたは複数のカテゴリを備えることがある。値は含まれない。例えば、アクション関数入力が1つのカテゴリである要約アクションのみが使用されることがある。この場合、各アクション関数入力は、単一のカテゴリである。
各カテゴリは、システムが、複数の異なるあらかじめ定義されたドメイン固有オントロジーからのオントロジー情報を記憶することができるように、1つまたは複数のあらかじめ定義されたドメイン固有オントロジーに対応する。あらかじめ定義されたドメインは、特定の対話話題に対応する。あらかじめ定義されたドメインは、例えば、特定の基準に合致するいくつかのレストランをユーザに提供すること、または購入者にとって適切なラップトップを識別することなど、対話のタイプおよび目的に固有であってもよい。あらかじめ定義されたドメインは、そのドメインに固有のエンティティのタイプと性質と相互関係とを備えるドメイン固有オントロジーを有してもよい。あらかじめ定義されたドメイン固有オントロジーは、特定の対話話題に関する複数のカテゴリを備えてもよい。
アクション関数は、あらかじめ定義されたドメインに依存しない。アクション関数から生成されるアクションは、アクション関数入力がヌルである場合は、あらかじめ定義されたドメインに依存しないが、アクション関数入力がカテゴリを備える場合は、ドメインに依存する。
いくつかのあらかじめ定義されたドメイン固有オントロジーからの情報は、本システム内に記憶され、単一のマルチ事前定義ドメインオントロジー(single, multi-pre-defined-domain ontology)であると見なすことができる。したがって、システムは、ドメインに依存しないアクション関数を備え、カテゴリと、複数のあらかじめ定義されたドメインD1〜DNの各々に関する可能な値のセットとをさらに備える、オントロジー情報を記憶する。ここで、Nは、あらかじめ定義されたドメインの総数を表すために使用される。1つまたは複数のあらかじめ定義されたドメインからのオントロジー情報は、いずれの段階においても、追加または除去可能である。
ドメインに依存しないパラメータを使用してカテゴリをパラメータ化することによって、カテゴリは、ドメインに依存しないようにされ得る。そのようなシステムでは、アクションは、アクション関数と、アクション関数入力としてパラメータ化されたカテゴリ(またはヌル)とを備える。これらのアクションは、この形式では、現在の対話ターンに関するパラメータ化されたシステム状態とともに、ポリシーモデルに入力される。したがって、パラメータ化されたアクション関数入力と組み合わされたアクション関数を備えるアクションのリストがポリシーモデルに入力され、ポリシーモデルは、パラメータ化された入力と組み合わされたアクション関数を備えるこれらのアクションのうちの1つを選択および出力する。したがって、ポリシーモデル出力から「真の」アクション−スロットペアへのいくつかの種類のマッピング、すなわち、アクション関数とアクション関数入力としてのドメインに依存したスロット(パラメータ化されていない)とを備えるアクションへのマッピングが必要である。パラメータ化によって、ポリシーは、各あらかじめ定義されたドメインの詳細から抽象することが可能である。しかしながら、そのようなシステムは、依然として、選択されたアクションを真のドメインに依存した空間に戻してマップするために、手動で作成されたルールを使用し得る。しかしながら、以下で説明される方法では、そのようなマッピングは自動化され得る、すなわち、ポリシーモデルは、ドメインに依存しないアクション関数と、別個の、ドメインに依存した入力(またはヌル入力)とを出力し得る。
以下で説明されるシステムおよび方法における対話ポリシーモデルは、各対話ターンにおいて2つの決定を行うように構成される。言い換えれば、各対話ターンにおいて1つの決定(どのアクションを出力するか)を行う代わりに、対話ポリシーモデルは、2つの決定、すなわち、1)どのドメインに依存しないアクション関数を行うか、2)どのアクション関数入力(例えばカテゴリ)を選択するか、を行う。ポリシーは、ドメイン固有アクション関数入力を決定し、それによって、アクション−スロットペアを自動的に生成するように構成され得る。これは、ドメインに依存したアクション関数入力ごとに値のベクトルを生成することによって行われる。各ベクトル内の各値は、アクション関数に対応し、アクション関数およびアクション関数入力が選択される(例えば、Q値)場合における対話性能の推定値である。値は、記憶されたパラメータから生成され、ベクトルに対応するアクション関数入力のパラメータ化された形式を使用して生成される。ベクトルごとに、最高値に対応するアクション関数が識別される。対話ターンに関して出力された決定されたアクション関数およびアクション関数入力は、ベクトルのすべてからの最高値に対応するアクション関数(および、この最高値が見出されたベクトルに対応するアクション関数入力)に対応する。この様式で2つの決定(どのアクション関数をとるか、およびどのドメイン依存入力(例えばスロット)を選択するか)を行うことによって、ポリシーモデルは、一般的なアクション−スロットペアをドメイン固有アクション−スロットペアに自動的に変換する。
ポリシーモデルへの入力は、設定された数のドメインに依存しないアクション関数を備えるので、アクションカーネルはあらかじめ定義されたドメインの数およびサイズに関して固定されるため、GP−SARSAなどのカーネル方法は、容易にスケーリングすることが可能であり得る。そのうえ、アクションの数が固定されるので、ニューラルネットワーク(NN)手法が使用されてもよい。ポリシーが決定することが必要であるアクション関数の数を制限することによって、後者は、アクションとスロットの両方に関して、任意の所与のあらかじめ定義されたドメインのサイズに依存しない。ドメイン非依存パラメータ化が使用されるとき、NNモデルは、アクション関数の数、および使用されるパラメータ特徴の数に依存する。より多くのスロットが追加される(すなわち、より多くのドメイン)場合であっても、それらは、依然として、同じサイズのDIPベクトルにマップされ、そのため、NNモデルは、固定されたサイズのままである。
カテゴリのドメイン非依存パラメータ化とともに使用されるとき、対話ポリシーは、ドメインに依存しないスロット−アクション空間内で動作することができ、これは、Q値が、アクション関数入力ごとのドメインに依存しないパラメータとドメインに依存しないアクション関数とを使用して生成されることを意味する。しかしながら、Q値は、ドメインに依存したスロットごとに一度に生成され、これは、出力がドメイン固有アクション関数入力を備えることを意味する。したがって、Q値を生成するために使用されるスロットは、ドメインに依存しないパラメータに関して定義され、アクションは、別個のドメインに依存しないアクション関数によって置き換えられる。アクションに対するドメイン独立性は、特定のドメインではなく対話の進捗に関連する一般的なアクション関数のセットを定義することによって達成される。そのようなアクションの例示的なセットは、[hello,bye,inform,confirm,select,request,request more,repeat]であってもよい。次いで、学習アルゴリズムは、現在の状態(スロットが、ドメインに依存しないパラメータに関して定義される)を入力としてとり、ドメインに依存しないアクション関数ならびにドメイン固有スロットを出力する。これは、各Q値が、ドメイン固有入力(スロット)に対応するが、入力に対応するドメインに依存しないパラメータを使用して生成される場合、Q値が生成されると、リアルタイムでスロットをパラメータ化することによって行われる。したがって、対話が進むと、ポリシーモデルは、ドメインに依存しないパラメータを使用して、ドメイン固有入力(スロット)のための確率分布を生成する。しかしながら、更新されたシステム状態は、ポリシーモデルに入力される前にパラメータ化される。
図2に関連して説明される方法は、一般的なケースに関する。図4は、ドメイン非依存パラメータ化が使用される方法を示す。
ステップS201では、人間発話の表現、例えば入力音声信号または入力テキスト信号が受け取られる。発話は、ユーザとの対話の一部である。
入力音声信号が受け取られる場合、システムは、入力音声からテキスト信号を生成するために、自動音声認識(ASR)モジュールを備えてもよい。
システムは、自然言語処理部モジュールをさらに備えてもよく、自然言語処理部モジュールは、入力テキスト信号、またはASRモジュールによって生成されるテキスト信号から、関連付けられた確率を有する言語理解仮説のn−bestリストを生成する。
S202では、システム状態は、状態追跡モデルを使用して入力に基づいて更新される。システム状態は、対話状態と呼ばれることもある。追跡モデルは、意図認識モデルであってもよい。テキストおよびS201において生成された関連付けられた確信度スコアが追跡モデルに入力され、追跡モデルは、更新されたシステム状態を出力する。例えば、S201から出力される仮説(例えば、関連付けられた最大の確率を有する仮説のみであってもよい)のn−bestリストは、状態追跡モデルに入力される。状態追跡モデルは、仮説を考慮して、スロット値に確率分布を使用し、これはメモリに記憶される。
システム状態は、複数のカテゴリの各々に対する複数の可能な値の各々に関連付けられた確率値を備える。
カテゴリは、例えばタスク指向型音声対話システムにおいて、スロットであってもよい。そのようなシステムでは、ポリシーは一般に、タスクを完了するために、スロットを値で満たすように会話の流れを制御するように構成される。各スロットは、2つ以上の値に関連付けられ、値は、対話管理部がスロットに関して認識することができる可能な妥当な応答である。例えば、あらかじめ定義されたドメイン「レストラン」では、スロットは「価格」であってもよく、可能な値は「低い」、「中間」、および「高い」であってもよい。
いくつかの場合、スロットは、可能な値「提供される」と「提供されない」とを持ち得る。例えば、ユーザが特定のレストランを名前で探しているケースでは、恣意的なレストラン名が変数に保存され、スロットは、2つの値、すなわち、「レストラン名が提供された」と「レストラン名が提供されていない」とをとる。変数は、レストランの実際の名前を記憶するために使用される。例えば、最初は、変数は空であり、スロットは値「名前が提供されていない」を有する。ユーザが「Wok−wokレストラン」を求める場合、変数はその名前を記憶し、スロットは、「名前が提供された」という値をとる。スロットおよび値のみが(その後のステップS206において)ポリシーモデルに入力されるが、実際のレストラン名は単に、システム状態の一部として記憶される。アクションが(その後のステップS206において)ポリシーモデルによって生成されると、変数がアクションに追加され、例えば、inform(name=‘Wok−wok’)である。
状態追跡モデルは、POMDPベースのモデルであってもよく、この場合のシステム状態は信念状態である。以下の例は、POMDPベースの信念状態追跡モデルを使用するシステムに関して説明されるが、他のシステム、例えばマルコフ決定過程音声対話システム(MDP−SDS)が使用されてもよいことが理解されるべきである。
信念状態は、対話系列内のシステムの観測のうちのいくつかまたはすべてを備えてもよいし、これを表してもよく、観測は、システムへの入力である。したがって、信念状態は、対話系列内でユーザによって行われたシステムへの先行する入力のすべてを追跡してもよいし、これらを備えてもよいし、これらによって決定されてもよい。したがって、信念状態は、完全な対話履歴と文脈とを提供し得る。
したがって、S202では、時間tにおいて発生する対話内の入力音声信号または入力テキスト信号に対して、信念状態が更新され、
を与える。時間tにおける信念状態
は、各スロットsに対する信念のベクトルbsを備える。スロットsに対する信念は、スロットが各可能な値を有する確率のセットであってもよい。例えば、スロット「価格」に対して、値および確率は、[empty(空):0.15,cheap(安価):0.35,moderate(中間):0.1,expensive(高価):0.4]であってもよい。これらの確率は、新しい入力発話に基づいて、各タイムスロットtにおいて追跡モデルによって更新される。信念追跡モデルは、入力発話をスロット値にマップし、それに応じて確率を更新する、記憶された学習されたモデルである。
信念状態は、スロットに依存しない信念、例えば、対話履歴に関連する信念も備えてもよい。信念状態は、複数のスロットの値、例えば、価格および所在地に対する確率分布である(ユーザが「安価なレストラン」と「町の中心部」の両方を言った確率)共同信念も備えてもよい。
任意で、複数の状態追跡モデルがS202において使用される。上記で説明されたように、システムは、複数の異なるあらかじめ定義されたドメイン固有オントロジーからのオントロジー情報を記憶する。システムは、複数のあらかじめ定義されたドメインに、またはあらかじめ定義されたドメインのうちの各々に対応する、複数の状態追跡モデルを備えてもよい。各状態追跡モデルは、特定のあらかじめ定義されたドメインに関連付けられた複数のスロットのうちの各々に対する複数の可能な値のうちの各々に関連付けられた確率値を備える、あらかじめ定義されたドメイン固有信念状態を更新する。したがって、時間tにおいて、複数の信念状態
が生成される。ここで、添字nは、あらかじめ定義されたドメインを識別するために使用される。各信念状態
は、別個の追跡モデルによって生成され、別個の追跡モデルは、特定のあらかじめ定義されたドメインのための実施の前に学習される、すなわち、別個の追跡モデルは、そのあらかじめ定義されたドメインに関するデータを使用して学習される。信念状態
は、ドメインDnからの各スロットsに対する信念のベクトルbsを備える。
次いで、単一の複合信念状態
は、N個の信念状態から形成され得る。複合信念状態は、あらかじめ定義されたドメインのすべてからの各一意のスロットに対する信念のベクトルbsを備える。一意のスロットのみが保たれる。言い換えれば、あらかじめ定義されたドメインは、(所在地、価格などについての信念などの)重複した特徴を有してもよいので、各重複した特徴は、複合信念状態内に1回のみ含まれる。スロットが多くのドメイン固有信念状態内に存在する場合、例えば、最高確率を有するスロットが選択され、複合信念状態に使用されてもよい。スロットが現在のターンで言及されていない場合、最新の確率が、そのスロットに使用される。
この複合信念状態は、特定のあらかじめ定義されたドメインに固有でないが、あらかじめ定義されたドメインのすべてに対する信念を含む。したがって、この場合、ステップS202は、2つのステップ、すなわち、あらかじめ定義されたドメインごとに信念状態を更新することと、複合信念状態を形成することとを備える。対話内で時間tに入力された入力音声信号または入力テキスト信号のためのS202の出力は、複数のあらかじめ定義されたドメインにわたる各一意のスロットに対する信念を備える信念状態
である。
代替として、単一の状態追跡モデルが使用される。この状態追跡モデルは、複数のあらかじめ定義されたドメインに関するデータに対する実施の前に学習される。この状態追跡モデルは、時間tにおける単一のグローバル信念状態
を出力し、このグローバル信念状態は、複数のあらかじめ定義されたドメインにわたる各一意のスロットに対する信念を備える。
代替として、複合信念状態を生成する代わりに、あらかじめ定義されたドメインごとに別個のシステム状態が維持される。
任意で、S203において、現在のシステム状態に関する関連カテゴリが識別される。以下で説明されるS203からS205は任意のものであり、代替として、あらかじめ定義されたドメインにわたる複合信念状態、またはあらかじめ定義されたドメインにわたる複数の信念状態が、あらかじめ定義されたドメイン全体からのオントロジー情報のセットとともに使用され、S206においてポリシーモデルに入力されることが理解されるべきである。カテゴリは、システム状態内に備えられるので、任意で、情報のセットは、アクション関数入力を含まないことがあり、これらは、システム状態から取り出されてもよい。この場合、情報のセットは単に、アクション関数を備える。
任意で、S203において、話題追跡モデルは、入力に最も密接に合致するあらかじめ定義されたドメインを識別するために使用されてもよい。この場合、S203は、あらかじめ定義されたドメインを識別し、次いで、あらかじめ定義されたドメインからカテゴリを決定論的に選択することを備える。対話中のターンごとの話題追跡モデルへの入力は、テキスト形式でのユーザの発話である。話題追跡部は、(文を利用可能なドメインのうちの1つに分類するように構成された)1つのモデル、または(例えば、最高スコアを有するドメインを見出すために)組み合わされた、(各々が、発話が特定のドメインに属する確信度スコアを与えるように構成された)複数のモデルのいずれかであってもよい。マルチドメインシステム状態は、依然として、最初は、ドメイン間での情報の共有を可能にするために(例えば、ユーザが中心部のホテルを予約し、次いで、ユーザが、近くにあるレストランを希望し得る場合)、(ドメインごとに1つの状態の代わりに)関連カテゴリが識別される前に生成され得る。代替として、複合信念状態を生成する代わりに、あらかじめ定義されたドメインごとに別個のシステム状態が維持される。
代替として、識別子モデルは、記憶されたオントロジー内の一意のカテゴリのすべてから、現在のシステム状態に関する関連カテゴリを識別する。識別された関連カテゴリのセットは、異なるあらかじめ定義されたドメイン固有オントロジーからのカテゴリを備え得る。したがって、1つまたは複数の関連カテゴリは、識別子モデルを使用して更新されたシステム状態情報の少なくとも一部に基づいて識別される。識別子モデルは、進捗する対話にどのカテゴリが関連するかを各対話ターンにおいて識別するように構成された記憶された学習されたモデルである。これによって、(その後のステップS204における)あらかじめ定義される必要のない、その場での「サブドメイン」の作成が可能になる。このオプションは、以下で図3に関連してさらに説明される。
S203の出力は、関連すると識別されているカテゴリのリストである。
システムは、ドメインに依存しないアクション関数とカテゴリと可能な値とを備える情報を記憶する。S204では、システムは、記憶された情報から情報のセットを定義し、記憶された情報は、複数のアクション関数と、あらかじめ定義されたドメイン全体からの複数のカテゴリとを備え、情報のセットは、S203において関連すると識別されなかったカテゴリを除外する。
あらかじめ定義されたドメインがS203において識別される場合、識別されたあらかじめ定義されたドメイン以外のドメインからのカテゴリは、このステップにおいて除外される。したがって、情報のセットは、ドメインに依存しないアクション関数と、識別されたあらかじめ定義されたドメインからのカテゴリとを備える。そうでない場合、カテゴリは、ドメイン全体からの関連すると識別されたカテゴリ(または、S203からS205が実行されない場合、あらかじめ定義されたドメイン全体からのすべてのカテゴリ)である。
カテゴリは、S203において関連すると識別され、それらのカテゴリとドメインに依存しないアクション関数とを備える情報のセットは、S204において決定論的に定義される。
全体的なシステムアクションaは、以下の形式、すなわち、fa()(例えば、reqmore()、hello()、thankyou()など)、fa(s)(例えば、request(food))、fa(s=v)(例えば、confirm(area=north))、fa(s=v1;s=v2)(例えば、select(food=Chinese,food=Japanese))、およびfa(s1=v1,s2=v2,…,sn=vn)(例えば、offer(name=“Peking Restaurant”,food=Chinese,area=centre))のうちの1つをとることができる。ここで、faは、ドメインに依存しないアクション関数、例えば、通信関数であり、sxおよびvxはそれぞれ、スロットおよび値を意味する。一般に、全体的なシステムアクションは、形式fa(ia)をとり、iaはアクション関数入力であり、ヌル、1つもしくは複数のカテゴリ、または複数のカテゴリおよびカテゴリごとの1つもしくは複数の値であってもよい。
全体的なシステムアクションの代わりに、要約アクションが使用されてもよい。要約アクションの場合、アクション関数入力iaは、ヌルまたは1つもしくは複数のカテゴリであってもよい。アクション関数入力が単一カテゴリである要約アクションが使用されてもよい。この場合、各アクション関数入力は、単一のカテゴリである。アクション関数入力は値を備えない。要約アクションは、現在の信念状態における最大値をスロットに代入することによって、全体的なシステムアクションに戻してマップ可能である。したがって、要約アクションを使用すると、最大値以外の値を有するすべての全体的なシステムアクションが除外される。以下は、各アクション関数入力がカテゴリである、要約アクションを使用するシステムについて説明されるが、全体的なシステムアクションは、同様に使用可能である。
したがって、記憶された情報は、ドメインに依存しないアクション関数の記憶されたセット(例えば、greet、inform、request、…)を備える。記憶された情報は、複数のあらかじめ定義されたドメインからのアクション関数入力、この場合はカテゴリ(例えば価格、所在地)も備える。S203において、関連するカテゴリが、現在のターンに関して識別され、S204において、アクション関数入力とアクション関数とを備える情報のセットが定義される。セットは、S203において識別された関連カテゴリのうちの1つでないカテゴリを含むそれらのアクション関数入力を除外することによって定義される。要約アクションが使用されるので、値は、アクション関数入力に含まれない。カテゴリは、信念状態に備わっているので、任意で、情報のセットがアクション関数入力を含まないことがあり、これらは、信念状態から取り出されてもよい。この場合、情報のセットは、各対話ターンに対して同じであり、単にアクション関数を備える。
S205では、減少されたシステム状態Brが、S202において生成された複合システム状態
から生成される。減少されたシステム状態は、S203において識別された関連カテゴリの各々に対する複数の可能な値のうちの1つまたは複数に関連付けられた確率値を備える。したがって、あらかじめ定義されたドメインのすべてからの各一意のスロットに対する信念のベクトルbsは、関連する信念のみのベクトルに減少される。減少されたシステム状態は、S203において関連すると識別されなかったカテゴリに関連付けられた確率値を備えない。
任意で、減少されたシステム状態は、スロットごとのn−best値のみ、例えば、カテゴリ(要約信念)ごとの最高確率に対応する値のみを含むように要約される。あらかじめ定義されたドメインがS203において識別される場合、信念状態は、そのあらかじめ定義されたドメインからのカテゴリを備え、他のものを含まない。共同信念は、すべての対応するスロットがS203において関連すると選択されている場合、減少された信念状態内に含まれ得る。上記で説明されたように、代替として、複合信念状態(やはり要約され得る)が使用されてもよい。
S206では、S205において生成された減少されたシステム状態およびS204において定義された情報のセットが、ポリシーモデルに入力される。システムは、単一のマルチドメイン対話ポリシーモデルを使用してもよい。
ポリシーモデルは、アクション関数faとアクション関数入力iaとを出力するために、実施の前に学習される。ポリシーモデルへの入力は、S205において生成された(例えば、カテゴリごとの関連カテゴリと最大値とを備える)減少されたシステム状態Brと、S204において定義された(例えば、アクション関数とアクション関数入力(この場合ではカテゴリ)とを備える)オントロジー情報の記憶されたセットである。
ポリシーは、アクション関数faに対する確率分布とアクション関数入力iaに対する確率分布とを定義することによって、これを行ってもよい。ポリシーモデルは、次に最大予想報酬(maximum expected reward)を有するアクションが実施中に各対話ターンにおいて選択されるように、システム状態Bにおいて実行されるシステムアクションaに対する予想長期報酬(expected long-term reward)を推定することによって、実施の前に最適化される。
具体的には、対話ポリシー最適化は、強化学習(RL)により解決可能であり、学習中の目標は、入力状態Bの場合に、アクション関数入力iaを有するアクション関数faに対応する、アクションaを実行するシステムの予想累積報酬(expected cumulative reward)を反映する、各B、fa、およびiaに対する量Q(B、fa、ia)を推定することである。これは、実施中の入力システム状態Bを考慮して、faとiaの各組み合わせに対してQ値を生成するために使用される記憶されたパラメータのセットを学習することによって行われる。次いで、最高Q値に対応するfaとiaの組み合わせが選択される。
ポリシーモデルは、記憶されたパラメータを備え、記憶されたパラメータは、入力システム状態Bを考えてQ値を生成することを可能にする。システム状態Bは、対話ターンに対して更新される。各アクション関数入力iaに対して、Q値のベクトルが、記憶されたパラメータを使用して生成され得る。Q値のベクトルは、Q(B,*,ia)に対応する。ベクトル内の各行は、アクション関数faに対応する。この場合、各ベクトルがカテゴリに対応するように、アクション関数入力はカテゴリである。各ベクトルに対して、最高Q値を有するエントリ(アクション関数に対応する)が得られ、記憶された最大アクション関数とアクション関数入力とを更新するために使用される。例えば、最初に生成されたベクトルに対して、ベクトルに対するアクション関数および最大Q値を有する入力は単に、最大アクション関数および入力として記憶される。その後に生成された各ベクトルに対して、ベクトルに対するアクション関数および最大Q値を有する入力(および、プロセスの終了時において比較されるすべての記憶されたQ値)も記憶されてもよいし、ベクトルに対するアクション関数および最大Q値を有する入力は、すでに記憶されているアクション関数および入力と比較され、Q値が記憶されたQ値よりも大きい場合、記憶されたアクション関数および入力と置き換えられてもよい。
モデルは、最大アクション関数とアクション関数入力とを更新するたびに、ベクトルのすべて(すなわち、すべてのアクション関数入力、この場合はカテゴリ)に対して反復する。Q値はリアルタイムに生成される。次いで、最高Q値に対応するアクション関数faおよび入力iaが選択される。Q値を生成するために使用されるパラメータは、実施の前に、学習ステージ中に生成された。
したがって、入力システム状態Bに対するQ値の単一ベクトルを生成する代わりに、ベクトル内の各行はアクションに対応し、ポリシーモデルは、faとiaの各組み合わせを入力システム状態のためにマップして、複数のQ値のベクトルを生成する。例えば、ニューラルネットワークベースのポリシーモデルは、パラメータを記憶し、入力(パラメータ化されたスロット)を考えて、Q値のベクトルを出力し得る。Bにおいてスロットに対して反復すること、および各々に対してネットワークの出力を観測することは、アクション関数およびアクション関数入力の選択を可能にする。ポリシーモデルは、アクション関数と、アクション関数入力とを出力する。Q値Q(B,a)を生成する代わりに、ポリシーモデルは、Q値Q(B,fa,ia)を生成する。
したがって、S205からの減少されたシステム状態Br出力およびS204からのオントロジー情報出力のセットは、S206においてポリシーモデルに入力され、Q値のベクトルが生成される。したがって、Q値の複数のベクトルがリアルタイムで生成され、入力システム状態Brに対応する。各ベクトルがアクション関数入力(スロット)に対応する場合、各ベクトル内の各行はアクション関数faに対応する。ベクトルからの最高Q値を有するエントリは、次のベクトルが生成される前に、記憶された最大アクション関数とアクション関数入力とを更新するために使用される。アクション関数入力のすべてに対するベクトルが生成されると、最高Q値に対応するアクション関数入力およびアクション関数が出力される。これは、学習中に決定される最高予想長期報酬を有するアクション関数とアクション関数入力の組み合わせに対応する。次いで、このエントリに対応するアクション関数faおよびアクション関数入力iaは、ポリシーモデルから出力される。
したがって、各アクション入力iaに対して、Q(B,*,ia)に対応するベクトルが生成される。(アクション関数に対応する)最大値を有する位置が記憶される。すべての可能なiaにわたって反復することは、本質的に、最大faと最大iaとを更新するたびに、Q行列を1行ずつ検索することである。Q値は3D行列であると考えられてもよく、対話ターンごとに、要素Q(B,*,*)が考えられるが、これは2D行列である。しかしながら、この2D行列の各列は順に生成される。その「座標」がfaおよびiaに対応する最大値の所在地が発見される。ポリシーモデルは、入力Bとfaとiaをとり、Q(B,fa,ia)を生じさせる記憶されたモデルである。
ニューラルネットワークは、入力ごとにQ値のベクトルを生成するために使用されてもよい。したがって、パラメータ化された信念状態Bおよびパラメータ化されたアクション関数入力はニューラルネットワークに入力され、ニューラルネットワークは、アクション関数faごとにQ値を生成し、最大Q値に対応するアクション関数を出力する。ポリシーモデルは、最大Q値に対応するアクション関数とアクション関数入力とを更新するために、これらの値を使用する。これは、それらを記憶されたリストに追加することによって、またはQ値を以前に記憶された値と比較し、新しい値の方が大きい場合、以前に記憶されたアクション関数と、入力と、Q値とを置き換えることによって、行われてもよい。ポリシーモデルは、最大Qを決定するためにすべての可能な入力(スロット)に対して反復し、この値に対応する入力とアクション関数の両方を出力する。
上記で説明されたように、要約アクションが使用される場合、アクション関数入力は単にカテゴリである。したがって、各アクション関数入力はカテゴリに対応する。ヌル入力をとるアクション関数の場合、ポリシーモデルは、依然として、アクション関数入力としてアクション関数とカテゴリとを出力する。ヌル入力を必要とするとアクション関数を認識し、カテゴリを破棄する規則が記憶されてもよい。代替として、「ヌル」は、アクション関数入力のうちの1つであってもよい。
したがって、ステップS206は、アクション関数入力ごとに値のベクトルを生成することを備え、各ベクトル内の各値は、アクション関数に対応し、アクション関数およびアクション関数入力が選択される場合における対話性能の推定値であり、値は、記憶されたパラメータから生成される。ベクトルごとに、最高値に対応するアクション関数が識別される。対話ターンに対するS206から出力された決定されたアクション関数およびアクション関数入力は、ベクトルのすべてからの最高値に対応するアクション関数に対応する。記憶されたパラメータは、学習されたパラメータである。対話性能の推定値は、対話に関する報酬関数の期待値である。
上記で説明されたように、入力されるシステム状態は、要約システム状態であってもよく、すなわち、最高確率を有する値のうちの1つまたは複数がカテゴリごとに含まれ、他の値のいずれもカテゴリに関して含まれない。
対話ポリシーは、現在のシステム状態(他の任意の特徴とともに、以前のシステムアクションを備えてもよい)を入力としてとり、次のドメインに依存しないシステムアクションと、入力(スロット)とを出力する。信念状態に含まれる他の特徴は、例えば、システムがすでにユーザに項目を示した場合、またはユーザが応じた(greeted)場合などであってもよい。入力システム状態Brに対して、Q値Q(Br,a)から最大値Q(これはサイズ|A|のベクトルであり、ここで、Brは与えられるので、Aはアクションセットである)を選択する代わりに、方法は、Q値Q(Br,ia,*)のベクトルを備えるQの一部をリアルタイムで作成する(ここで、各ベクトルはサイズ|Fa|であり、|Ia|個のベクトルがある。ここで、FaはS204において定義されるアクション関数セット、IaはS204において定義されるアクション関数入力セットである)。したがって、これらのベクトルからの最大Q値を有する、Ia内で入力iaと、Fa内でアクション関数faとを発見することによって、ポリシーモデルは、適切な入力(例えばスロット)と、次のアクション関数の両方を効果的に選択する。
S207では、決定されたアクション関数入力は、アクションを生じさせるために、決定されたアクション関数に入力される。アクションは、faとiaの組み合わせfa(ia)として生成される。アクション関数は関数であり、アクション関数入力(例えばスロット)は引数である。
このアクションによって指定される情報は、出力部において出力される。これは、例えば、テキスト信号であってもよいし、テキスト信号から生成された音声信号であってもよい。
上記で説明されたように、関連カテゴリは、S203において、話題追跡モデルを使用してあらかじめ定義されたドメインを識別することによって識別されてもよい。代替として、識別子モデルは、S203において関連カテゴリを識別するために使用されてもよい。これは、以下で図3に関連してさらに説明される。
S301では、信念状態追跡が実行される。これは、システム状態更新の一例であり、上記で説明されたS202に対応する。
S302では、1つまたは複数の関連カテゴリが、識別子モデルを使用して更新されたシステム状態情報の少なくとも一部に基づいて識別される。識別子モデルは、進捗する対話にどのカテゴリが関連するかを各対話ターンにおいて識別するように構成された記憶された学習されたモデルである。これは、(その後のステップS305における)あらかじめ定義される必要のない、その場での「サブドメイン」の作成を可能にする。
任意で、更新されたシステム状態の少なくとも一部は、スロットごとの上位信念(top belief)(例えば、スロット「価格」に対してexpensive=0.4)である。この場合のシステム状態は、カテゴリごとに最高確率を有するn個の値のみが含まれるように「要約され」、例えば、各カテゴリに対する最大値のみが含まれる。次いで、この「要約」システム状態が識別子モデルに入力され、各カテゴリに対する他の値は識別子モデルに入力されない。したがって、要約システム状態は、複数のあらかじめ定義されたドメインにわたってのカテゴリのすべてを備えるが、各スロットに対する限られた数の値および対応する確率値を備える。代替として、各カテゴリに対する可能な値のすべてが識別子モデルに入力されてもよい。
S302では、信念状態が抽出され、S303において識別子モデルに入力される。モデルは、S303において関連するスロットを識別し、これらをS304において出力する。ステップS302からS304は、上記で説明されたS203に相当する。
ステップS302は、S301において生成された更新されたシステム状態情報の少なくとも一部を識別子モデルに入力することを備える。識別子モデルは、入力システム状態をカテゴリ関連性にマップするように構成され、入力システム状態は、上記で説明された要約システム状態であってもよい。したがって、識別子は、すべてのあらかじめ定義されたドメイン間の各一意のスロットに関する関連性スコアを出力する。任意で、閾値スコアよりも大きいまたはこれに等しい関連性スコアを有するスロットが関連すると決定されるように、閾値スコアが定義されてもよい。
任意で、対話内の各新しい入力信号に関する更新されたシステム状態は、ある時間の期間にわたって記憶される。言い換えれば、対話履歴が記憶される。対話全体の間の以前のシステム状態が記憶されてもよく、次いで、対話が終了されると消去されてもよい。代替として、対話内の以前の状態のうちの1つまたは複数が順次に(on a rolling basis)記憶される。次いで、ステップS302は、以前の入力信号のうちの1つまたは複数に関する更新されたシステム状態情報の少なくとも一部を識別子モデルに入力することを備えてもよい。任意で、入力は、忘却係数によって乗算された、過去の信念状態の連結である。忘却係数は、例えば、0から1の間の数であってもよい。
任意で、サイズの窓wが定義可能であり、過去の信念状態の連結として生成された識別子モデルへの入力は、次のように示す。
は、2つのベクトルを連結する演算子を表す。窓wは、入力がどのくらい戻るかを制御する。例えば、wは3に等しくてもよい。tは離散時間指数であり、各時間tは入力発話に対応する。忘却係数は、より最近の信念がより大きい影響を有することを意味する。最初に、窓全体を満たすために十分でない過去の信念が対話に利用可能であるとき、対話ごとに、入力バッファはゼロで埋め込み可能である。最終的な信念状態「Bin」は、Btの特徴の数のw倍を有する。
次いで、S305において、関連するスロットが、記憶されたオントロジー(アクション関数とアクション関数入力とを備える)からサブドメインを生成するために使用される。これは、図2ではS204に相当する。情報のセットは、記憶された情報を使用して定義される。これは、S305において、新しいサブドメインとして出力される。このプロセスは、対話ターンごとに、すなわちユーザの発話の後に、繰り返される。
したがって、対話ターンごとに、スロット識別子モデルは、複数のあらかじめ定義されたドメインにわたる一意の特徴を備える信念状態を入力として受け取る。特徴は、例えば、スロットのための値の分布(例えば、price:[empty:0.15,cheap:0.35,moderate:0.1,expensive:0.4])とすることができる。簡略化するために、スロットごとの上位信念(例えば、price:[expensive:0.4])のみがとられてもよい。スロット識別子の出力は、現在の対話ターンに関連するスロットのセットである。これらのスロットは、実行時にサブドメインを作成し、それを現在の対話ターンに使用するために使用される。
任意で、識別子モデルはディープニューラルネットワーク(DNN)である。学習中に、DNNは、入力信念状態を関連するスロットにマップすることを学習する。代替として、異なるように学習された他の分類器/モデルが使用可能である。識別子の学習は、以下でさらに詳細に説明される。
任意で、実施中に、統計学的識別子モデルは学習せず(すなわち、統計学的識別子モデルはその内部重みを更新しない)、信念状態を関連するスロットにマップするのみである。次いで、これらのスロットは、現在の対話ターンに対する新しいサブドメインを生成するために使用される。代替として、識別子モデルは、実施中に更新し続けてもよい。
代替として、S203からS205は含まれず、あらかじめ定義されたドメインのすべてにわたってカテゴリを備える複合信念状態が、あらかじめ定義されたドメインのすべてからのオントロジー情報とともに使用される。
以下で説明されるように、ポリシーモデルに基づくドメイン非依存パラメータ化は、そのようなシステムにおいて使用されてもよい。
図4は、ドメイン非依存パラメータ化(DIP:domain independent parametrisation)を使用する、音声対話システムによって実行される例示的な方法を示すフローチャートである。本明細書では、DIPベースのポリシーが説明されるが、複数のあらかじめ定義されたドメイン上で学習される代替ポリシーが使用されてもよい。
S401からS403は、上記で説明されたS201からS203に相当する。
S404では、S204に関連して上記で説明されたように、アクション関数とアクション関数入力とを備える情報のセットが定義される。アクション関数入力のセットは、関連カテゴリを備える。次いで、アクション関数入力が、ドメインに依存しないパラメータに関して定義されるように、アクション関数入力がパラメータ化される。「オントロジーパラメータ化」と呼ばれるこのパラメータ化は、以下でより詳細に説明される。パラメータのうちのいくつか(すなわち、現在の対話ターンからの情報に依存しないパラメータ)は、カテゴリごとに記憶されてもよい。このステップは、ドメインが以前のスロットに対するものと同じ場合(例えば、同じあらかじめ定義されたドメインが、以前のターンに対するものとして選択されている場合)、実行されないことがある。カテゴリは、システム状態内に備えられるので、任意で、情報のセットは、アクション関数入力を含まないことがあり、これらは、システム状態から取り出されてもよい。この場合、情報のセットは単に、アクション関数を備える。
次いで、S405では、サブドメイン作成部403内の統計モデルによって関連すると識別されたスロットを備える減少された信念状態が生成される。これは、図2のS205に相当する。次いで、減少されたシステム状態が、ポリシーモデルに入力される前に、ドメイン非依存パラメータ化(DIP)によってパラメータ化される。やはり、これも以下でより詳細に説明される。
ポリシーモデルは、パラメータ化されたシステム状態入力およびパラメータ化されたオントロジーで動作するように構成される。
別個のステップである代わりに、オントロジー情報がポリシーモデルに入力される前にパラメータ化されるS404が、代替として、ポリシーモデルの動作中に実行される。言い換えれば、Qベクトルが決定される間、カテゴリは、リアルタイムでパラメータ化され得る。この場合、ポリシーモデルは、パラメータ化された入力システム状態をとるが、ドメインに依存したアクション関数入力(スロット)を出力する。例えば、ニューラルネットワークベースのポリシーモデルは、以下の様式で動作し得る。対話ターンごとに、Q値のベクトルが、パラメータ化された入力システム状態を考えて、各カテゴリに対して生成される。各ベクトル内の各行は、アクション関数に対応する。各Qベクトルを生成するために、ベクトルQに対応するカテゴリがパラメータ化され、カテゴリに対応するパラメータ値と行に対応するアクション関数のセットの各組み合わせに対するQ値が生成され、ベクトルに入力される。カテゴリは、行ごと、すなわちアクション関数ごとに異なるパラメータ化関数を使用してパラメータ化され得る。
したがって、ベクトルは、ドメインに依存したカテゴリに対応するが、Q値は、カテゴリに対応するドメインに依存しないパラメータを使用して生成される。このようにして、オントロジー情報は、ポリシーモデルによってリアルタイムでパラメータ化され、オントロジー情報の入力されたセット内のアクション関数入力(カテゴリ)ごとに、ポリシーモデルは、信念を考えてDIP特徴を計算し、Q値の推定値を生成する。Qベクトルは、ドメインに依存したスロットに対応する。以前に説明されたように、ベクトルごとに、最高Q値を有するアクション関数が、記憶された最大アクション関数と入力情報とを更新するために使用され、次いで、すべてのベクトルが生成されると、最終的な最大関数および入力が選択される。したがって、システム状態Bは、S405と同様に、ポリシーモデルに入力される前にパラメータ化される。アクション関数は、ドメインに依存せず、したがって、ポリシーモデルに入力される前にパラメータ化されない。アクション関数入力、この場合カテゴリは、ポリシーモデルの動作中にパラメータ化される。アクション関数入力は、代替として、入力される前に1つのステップにおいてパラメータ化されてもよく、各ベクトルが生成されると、パラメータが取り出されてもよい。
また、上記は、各アクション関数入力がスロットであるケースに関して説明してきたが、一般的なアクション関数入力のケースの場合でも、上記は同様に動作する。言い換えれば、要約アクションが使用されない場合、アクション関数入力はスロットの値を含むであろうが、これもパラメータ化可能である。ヌル入力を有するアクション関数の場合、ポリシーモデルが出力するスロットは無視されてもよい。
したがって、S404は、オントロジー情報のセットが入力される前に実行されてもよく、その場合、ポリシーモデルは、パラメータ化されたスロットをアクション関数入力として出力することができ、パラメータ化されたスロットは、次いで、元のスロットに変換される。または、S404は、ポリシーモデルの動作中に順にカテゴリごとに実行されてもよく、その場合、ポリシーモデルは、元のスロットをアクション関数入力として出力することができる。
オントロジーまたはドメインに依存しないパラメータによって、任意のあらかじめ定義されたドメインに関するいかなる情報にも依存しないパラメータが意味される。
S405においてシステム状態をパラメータ化することは、パラメータに関して各スロットを定義することを備え、これは、スロットをオントロジーに依存しないパラメータに変換することと、オントロジーに依存しないパラメータに関するスロットを表すこととを含み得る。このステップでは、信念状態における特定のスロットに対するパラメータのための適切な値が決定され、これは、ポリシーモデルに対して、入力として使用されてもよいし、入力の一部として使用されてもよい。信念状態−アクション空間は、いかなるドメイン情報にも依存しない特徴空間にマップされる。したがって、信念状態の代わりに、ポリシーは、単一の、または複数の、オントロジーに依存しないパラメータを受け取り、これとともに動作するように構成される。
S404においてオントロジー情報のセットをパラメータ化することは、パラメータに関して各スロットを定義することを含み、これは、スロットをオントロジーに依存しないパラメータに変換することと、オントロジーに依存しないパラメータに関してスロットを表すこととを含み得る。
使用されるポリシーモデルは、ドメインに依存しない。生成されるQ値は、ドメインに依存したカテゴリに対応するベクトルに対して生成され得るが、Q値を生成するために、カテゴリはパラメータ化される。したがって、ポリシーは、異なるオントロジーを有する複数の異なるドメインとともに効果的に働くことが可能である。ポリシー405は、Q値を生成するために、オントロジー固有スロットではなく、ドメインに依存しないパラメータを入力として使用するので、ポリシーは、ドメインに依存しない。これは、同じポリシー405が複数の異なるオントロジーとともに使用可能であることを意味する。したがって、ポリシーは、特に単一のあらかじめ定義されたドメインオントロジーに関して最適化される必要はない。言い換えれば、第1のオントロジーに関して最適化されたポリシーは、特に第2のオントロジーに対してポリシーを最適化しなければならないのではなく、第2のオントロジーとともに使用可能である。
一般に、オントロジーに依存しないパラメータは数値パラメータであり得る。パラメータは、数、ベクトル、または分布であってもよい。オントロジーに依存しないパラメータは、特定のオントロジーに依存しないパラメータを表す、級数、数列、または数の行列であってもよい。オントロジーに依存しないパラメータは、定義または式を備えてもよい。パラメータが、エンティティによって決定されると言われる場合、そのエンティティは、パラメータ化されたポリシーに入力として入力するためのパラメータ−量を決定するために、オペランド(被演算子)として使用されてもよい。パラメータがエンティティによって決定されると言われる場合、そのエンティティは、パラメータを決定するうえでの唯一のオペランドまたは影響因子でないことがあることが理解されるべきである。したがって、「によって決定される」は、もっぱら決定されることを必ずしも意味するとは限らない。パラメータがエンティティによって決定されると言われる場合、そのパラメータは、エンティティに依存してもよいし、これに比例してもよいし、これに反比例してもよいし、これに関連してもよい。
パラメータに関して定義されるカテゴリは、パラメータ−量または複数のパラメータ−量を備え得る。例えば、パラメータは、スロットがとることができる可能な値の数すなわちMによって決定されてもよい。パラメータは、Mをオペランドとして使用する式であってもよい。スロットに適用されるとき、Mは、値を生じさせるために使用される。この値はパラメータ−量であってもよく、パラメータ−量は、数、ベクトル、または分布であってもよい。パラメータ化されたポリシーは、パラメータ−量をその入力として用いて動作するように構成され得る。
オントロジーに依存しないパラメータは、オントロジーに依存しない空間を介して、1つのオントロジーのスロットが異なるオントロジーのスロットと効果的に比較されることを可能にするように定義され得る。オントロジーに依存しないパラメータは、複数の異なるオントロジーに属する複数の異なるスロットに関して測定、計算、決定、または推定可能であるスロットの性質であってもよい。
オントロジーに依存しないパラメータで動作するように構成されたポリシーは、それとともに機能しているオントロジーに固有でないまたは依存しない入力に基づいてSDSの挙動を定義することを可能にし得る。パラメータ化されたポリシーは、パラメータに対して動作するように構成されたポリシーであってもよい。パラメータ化されたポリシーは、Q値を生成するために、パラメータに関して定義されるスロットおよび/または信念状態の表現を入力として受け取るように構成され得る。したがって、特定のパラメータ値は、あるパラメータまたは各パラメータに対して(および、任意で、各スロットに対して)決定され得、パラメータ化されたポリシーは、これらの特定のパラメータ値で動作するように構成され得る。
パラメータ化されたポリシーは、オントロジーに依存しないパラメータを入力として用いて動作するように構成されるが、パラメータ化されたポリシーは、複数のパラメータを入力として用いて動作するように構成されてもよいことが理解されるべきである。オントロジーまたは信念状態のスロットはそれぞれ、複数のオントロジーに依存しないパラメータに関して定義され得る。
そのようなパラメータを使用することは、固定サイズのドメインに依存しない空間を許容し、この空間に対して学習されたポリシーは、任意のドメインに使用可能である。ポリシーモデルは、一般的な情報探索問題を効果的に解決する。これは、例えば、「inform(food)」というアクションを起こす代わりに、システムが、Q値を生成するために、「inform」というタイプのアクション関数と、「最大信念とXよりも大きい重要性とを有するスロット」(重要性は、後で説明され、エンドユーザオントロジーのスロットが、ユーザの要件を満たすためにパラメータ化されたポリシーに対して満たされなければならないという可能性がどれくらいかの尺度である)というタイプのアクション関数入力とをとることを意味する。Q値は、特定のスロットに対応するベクトルに対して生成され得る。代替として、システムは、各あらかじめ定義されたドメインに対するそれぞれのオントロジーを利用できるので、システムは、ドメインに依存しない空間からのその生成されたアクションを各ドメイン固有空間に戻してマップすることができる。
パラメータは、情報探索対話におけるスロットの一般的な特性であってもよく、例えば、
−スロットが値を有するときの検索結果に対する潜在的な影響(例えば、データベース内に、33%の安価なレストラン、33%の適度な価格のレストラン、および33%の高価なレストランがあり、「price」というスロットが特定の値(例えば、安価)を有する場合、効果的に、関連する項目の数が2/3減少される。他の値、例えば所在地または食物タイプは、より少ない弁別力を有してもよい。これは、例えば、どのスロットの値が対話においてより早く要求するべきかに影響を与え得る。)
−重要性:エンドユーザオントロジーのスロットが、ユーザの要件を満たすためにパラメータ化されたポリシーに対して満たされなければならないという可能性がどれくらいかの尺度。処理部は、この重要性を決定するように構成されてもよい。または、それは、ユーザによって定義されてもよく、連続的であってもよいし、2値(任意または必須)であってもよい。
−優先度:検索結果に対するユーザの知覚した潜在的な影響の尺度。処理部は、この優先度を決定するように構成されてもよい。または、それは、ユーザによって定義されてもよく、連続的であってもよいし、2値であってもよい。
−記述的特性(例えば、許容可能な値の数、データベース(DB)内のそれらの値の分布)
−対話について説明する特徴(例えば、前回のユーザアクト)
のうちの1つまたは複数であってもよい。
例えば、オントロジーに依存しないパラメータは、スロットがユーザによって要求または参照される、対話内の可能性のある位置によって決定されてもよい。オントロジーに依存しないパラメータは、それぞれのスロットに対する値分布のエントロピーに比例してもよいし、これに反比例してもよい。それぞれのスロットに対する値分布のエントロピーは、オントロジーに依存しないパラメータを決定するために、複数のエントロピー範囲ビンのうちの1つに割り当てられてもよい。オントロジーに依存しないパラメータは、各スロットが、基礎タスクを完了することにどのようにして関連するかによって決定されてもよいし、これに関連してもよい。オントロジーに依存しないパラメータが決定されるデータは、選択された場合に閾値数に等しいまたはこれを下回る結果の数をもたらすであろうスロットに関する値の割合であってもよい。
オントロジーに依存しないパラメータのいくつかのさらなるより具体例が以下で説明され、Vsは、スロットsがとることができる値のセットを示し、|Vs|はVsのサイズである。h=(s1=v1∧s2=v2…sn=vn)は、スロット−値ペアのセットからなるユーザ目標仮説である。DB(h)は、hを満たす記憶されたデータベース(DB)内の候補のセットを示す。DB内の候補は、システムがユーザに提示する特定の値(例えば、名前、食物タイプ、価格、所在地など)を有する、レストランなどの項目である。さらに、
は、xよりも小さいおよびxに等しい最大の整数と定義される。
以下の量のうちの1つまたは複数は、パラメータ化に使用可能である。
・値の数
○例えば、連続パラメータ1/|Vs|(ここで、正規化された量が、数値安定性の目的で、すべてのパラメータに類似の値範囲を持たせるために使用されてもよい)
○例えば、
によって示される、|Vs|をN個のビンにマップする離散パラメータ、例えば、|Vs|=8であるスロットが次のパラメータ:[0,0,1,0,0,0]を割り振られるように、min{int[log2(|Vs|)],6}に従う6つの2値ビンのうちの1つを割り振る。ここで、「int」は、最も近い整数を発見する関数を指す。これは、カテゴリ/ビンがとることができる値の数に従って、スロットをカテゴリ/ビンにグループ化する。
・重要性、例えば、対話においてスロットが生じる可能性がどのくらいであるか、生じない可能性がどのくらいであるかを表す2つのパラメータ
○例えば、タスクを完了するまたはユーザの基準を十分に満たすためにスロットが満たされなければならないかどうかの2値標識(0=いいえ、1=はい)
○例えば、エンドユーザオントロジーのスロットが、ユーザの要件を満たすためにパラメータ化されたポリシーに対して満たされなければならないという可能性がどれくらいかの連続的尺度。ここで、処理部は、この重要性を決定するように構成されてもよい。
・優先度
○例えば、スロットが、{[1,0,0],[0,1,0],[0,0,1]}にマップされる{1,2,3}のスケールとして対話内で扱われるべき第1の属性、第2の属性、およびこれらより後の属性である可能性がどれくらいかをそれぞれ示す3つのパラメータ
○例えば、検索結果に対するユーザの知覚した潜在的な影響の連続的尺度。ここで処理部は、この優先度を決定するように構成されてもよい。
・あらかじめ定義されたドメインのすべてからの値の記憶されたデータベースDB内の値分布
○例えば、DB(s=v)が、属性s=vを有するデータベース内のエンティティのセットを示し、|DB(s=v)|および|DB|がそれぞれ、上記のセットのサイズおよびデータベースのサイズを示す場合、値分布は、離散分布(正規化されたヒストグラム)を生じさせるためにスロットsの各可能な値vに対して|DB(s=v)|/|DB|を計算することによって計算されてもよく、次いで、エントロピーは、この正規化されたヒストグラムに対して算出されてもよい。
・例えば現在の上位ユーザ目標仮説h*とあらかじめ定義された閾値τを考えての、DB検索に対する潜在的な貢献
○充填(filling)sが、合致するDB結果の数をτよりも下に減少させる可能性がどれくらいか、すなわち、|{v:v∈Vs,|DB(h*∧s=v)|≦τ}|/|Vs|(スロットの値が、データベース内で取得された結果において閾値数よりも下になる割合)
○充填sが、合致するDBレコードの数をτよりも下に減少させない可能性がどれくらいか、すなわち、|{v:v∈Vs,|DB(h*∧s=v)|>τ}|/|Vs|(スロットの値が、データベース内で取得された結果において閾値数よりも上になる割合)
○充填sが、合致するレコードがDB内で発見されないという結果をもたらす可能性がどれくらいか、すなわち、|{v:v∈Vs,DB(h*∧s=v)=φ}|/|Vs|(スロットの値が、取得された結果において、データベース内でユーザの基準を満たす結果がないという結果を招く割合)
言い換えれば、システムが、それらのスロットに対する制約をまだ観測していないことを信じるとき、このパラメータは、信念における現在の上位仮説がヌルであるスロットに対して非ゼロであるにすぎないことに留意されたい。
ポリシーは、Qを生成するために、各スロットに対して複数のオントロジーに依存しないパラメータを受け取るように構成されてもよい。したがって、スロットは、複数のオントロジーに依存しないパラメータに関して定義され得る。スロットは、5、10、または11以上のオントロジーに依存しないパラメータに関して定義されてもよい。スロットは、上記のオントロジーに依存しないパラメータのすべてに関して定義されてもよい。
S404において定義される情報のセット内のカテゴリを定義するためのオントロジーに依存しないパラメータの第1のセットと、S405において生成された減少されたシステム状態においてカテゴリを定義するためのオントロジーに依存しないパラメータの第2のセットがある場合がある。第1のセットは、第2のセットと異なってもよいし、同じであってもよい。第1のセットと第2のセットは、相互に排他的であってもよい。
S405における減少されたシステム状態のパラメータ化は、以下でより詳細に説明される関数Ψ(b,s)によって説明され得る。
システム状態を定義するためのオントロジーに依存しないパラメータは、システム状態における最大確率(すなわち、上位仮説に対応する確率)によって決定され得る。システム状態を定義するためのオントロジーに依存しないパラメータは、分布のエントロピーによって決定され得る。システム状態を定義するためのオントロジーに依存しないパラメータは、上位2つの仮説間の確率差によって決定され得る(例示的な実装形態では、この値は、間隔サイズ0.2を有する5つのビンに離散化され得る)。システム状態を定義するためのオントロジーに依存しないパラメータは、非ゼロの率、例えば、非ゼロの確率を有するシステム状態内の要素の割合によって決定され得る。
POMDPベースのシステムにおいて信念状態をパラメータ化する具体的な例が、以下で説明される。
信念状態は一般に、ドメインに依存し、すなわち、S405において生成される信念状態は、各関連するスロットに対するマージナル(marginal)(すなわち、スロットごとの(slot−wise))信念を備える(この信念状態は、他のドメインに依存しない情報、例えば対話履歴も備えてもよい)。以前に説明されたように、フル信念状態bは、対話履歴、通信方法などのドメインに依存しない要因に関するものである3つの部分、すなわち、共同信念bjoint、スロットごとの信念のセット{bs}、および他の信念boにおいて表され得る。各bは、ここでは、離散分布(非負の正規化されたベクトル)である。さらに、各々はスロットがユーザによって要求されている確率を示す(例えば、ユーザ「このラップトップはいくらか?」の場合、「価格」というスロットが要求されている)(一次元の)値のセットがあり得る。brsは、スロットsが要求されていることに関する信念確率を示す。
boは、ドメインに依存せず、したがって、このステップではパラメータ化されない。
離散分布
を仮定すると、その次元に関係なく、少数の一般的なオントロジーに依存しないパラメータは、それを定義するために使用可能である。これらのパラメータは、任意の離散分布に適用可能である。以下は、例示的なパラメータである。
(1)
における最大確率(すなわち、上位仮説に対応する確率)
(2)分布のエントロピー
(3)上位2つの仮説間の確率差(一実装形態では、この値は、間隔サイズ0.2を有する5つのビンに離散化された)
(4)非ゼロ率:非ゼロ確率を有する、
における要素の割合
システム状態パラメータ化ステップは、上記のパラメータ化のリスト(1)から(4)のうちの1つまたは複数をbjointに適用し、共同信念に対するドメインに依存しないパラメータベクトルを提供する。
他のドメインに依存した構成要素は、bs(およびbrs)である。アクションaを実行するべきかどうかを決定するとき、システムは、他のスロットの場合はどうかに関係なく、グローバルパラメータ(共同信念パラメータおよび上記の他のパラメータ)とともに、aが依存するスロットs(sは、aから一意に導出可能である)を考慮しさえすればよい場合、あらゆるaは、その一意的に対応するbs(およびbrs)に対する依存のみを有する。次いで、上記のパラメータ化(1)から(4)のうちの1つまたは複数は、bsに適用可能である(brsは、その数がパラメータ化されなくても単に追加パラメータとして使用可能であるような、単なる数である)。
次いで、取得されるパラメータは、全体的な信念状態パラメータ化がオントロジーに依存しないように、共同信念パラメータおよび「他の」パラメータに連結可能である。これは、S406においてポリシーに対する入力として使用可能である。
含まれ得る「他の」パラメータとしては、
(1)4つの通信方法すなわち「byconstraint」、「byname」、「byalternatives」、「finished」に対する信念確率、および
(2)現在のターンにおいて観測されるユーザ通信関数に対するマージされた確信度スコア
のうちの1つまたは複数があり得る。
減少された信念状態における通知可能スロットsごとに、関数ψ(b,s)が、スロットをパラメータ化するために使用される。この関数は、例えば、上位マージナル仮説
の確率と、bsのエントロピーと、上位2つのマージナル仮説間の確率差(間隔サイズ0.2を有して5つのビンに離散化された)と、非ゼロ率(|{v:v∈Vs,bs(v)>0}|/|Vs|)とを抽出する。さらに、スロットが要求可能である場合、それがユーザによって要求されている確率は、臨時パラメータとして使用される。類似のパラメータ化手順(「要求される」確率を除く)は、共同信念にも適用され、取得されるパラメータは、すべての通信関数に使用される。基礎タスク(DB検索)の性質を得るために、2つの追加パラメータ、すなわち、インジケータ
と、前者が偽である場合は実数値パラメータ
が共同信念に対して定義される。ここで、τは、上記で紹介されたようにスロットパラメータ化に使用される同じあらかじめ定義された閾値である。関数ψ(b,s)、学習および実施中にシステム状態をパラメータ化するために使用される。
任意で、信念の異なる態様が異なるアクションにとって重要である場合があるので、アクションによって異なるψ関数が存在することがある。例えば、入力信念状態は、各々が異なるアクション関数に対応する複数の異なるパラメータ化関数を使用してパラメータ化されてもよい。各ベクトル内の各行に対するQ値は、その行に対応するアクション関数に対応するパラメータを使用して生成される。通信方法に対する信念と現在のターンにおけるユーザ対話アクトタイプ(通信関数)のマージナル確信度スコアとを含む、含まれるいくつかの他のスロットに依存しないパラメータもある。
任意で、パラメータのうちのいくつかはフル確率分布に関連することがあるので、パラメータ化は、フル信念状態に対して実行される。
信念要約部において用いられる方法とは異なり、信念パラメータ化部は、オントロジーに依存しないパラメータに関する信念状態を定義する。一致した(according)信念パラメータ化部はまた、フル信念状態を低次元形式に変換し、したがって、フル信念状態からの次元の数を減少させ得る。信念パラメータ化部の出力は、オントロジーおよびドメインに依存しない。次いで、オントロジーに依存しないパラメータに関して定義される信念状態は、S406において、ポリシーモデルのための入力として使用可能である。
オントロジーパラメータ化部は、ドメインに依存しないパラメータに関してS404において識別された情報のセット内のスロットを定義する(これは、ポリシーモデルの動作の前に実行されてもよいし、その間に実行されてもよい)。これは、システム状態のパラメータ化とは別に行われてもよい。これらのドメインに依存しないパラメータは、オントロジーに固有でない。オントロジー情報は、(ポリシーモデルの動作の前、またはその間のいずれかで)対話中の各ターンにおいてパラメータ化されてもよいし、または代替として、オントロジー情報のいくつかもしくはすべてがパラメータに関して記憶されてもよい。ドメインがターン間で変化しない場合、以前の生成されたオントロジー情報が使用されてもよい。
S404において定義されるオントロジー情報のセットは、アクション関数と、アクション関数入力とを備える。上記で説明されたように、アクション関数faは、例えば、inform、deny、confirmなどであってもよく、アクション関数入力は、ヌルであってもよいし、例えばスロット(例えば、食物、価格帯など)であってもよい。
アクション関数は、すでにドメインに依存せず、したがって、このステップではパラメータ化されない。しかしながら、アクション関数入力のうちのいくつかはドメインに依存しており、このステップにおいてパラメータ化される。
各アクション関数入力は、パラメータ化するための関数
を使用して、ドメイン汎用方策でパラメータ化可能である。ここで、パラメータ化されたアクション関数入力は、
によって与えられる。
また、カテゴリも、各々が異なるアクション関数に対応する複数の異なるパラメータ化関数を使用してパラメータ化されてもよい。次いで、各ベクトル内の各行に対するQ値は、その行に対応するアクション関数に対応するパラメータを使用して生成される。
記憶されたオントロジースロットをパラメータ化するための例示的な関数
が、以下で説明される。オントロジーに依存しない多数のパラメータが、オントロジーのスロットを定義するために使用可能であり、そのうちの以下が例である。
・値の数
○例えば、連続パラメータ1/|Vs|(ここで、正規化された量が、数値安定性の目的で、すべてのパラメータに類似の値範囲を持たせるために使用されてもよい)。
によって示される、|Vs|をN個のビンにマップする離散パラメータ、例えば、|Vs|=8であるスロットが次のパラメータ:[0,0,1,0,0,0]を割り振られるように、min{int[log2(|Vs|)],6}に従って6つの2値ビンのうちの1つを割り振る。
・重要性、例えば、対話においてスロットが生じる可能性がどのくらいであるか、生じない可能性がどのくらいであるかを表す2つのパラメータ
○例えば、タスクを完了するまたはユーザの基準を十分に満たすためにスロットが満たされなければならないかどうかの2値標識(0=いいえ、1=はい)
○例えば、エンドユーザオントロジーのスロットが、ユーザの要件を満たすためにパラメータ化されたポリシーに対して満たされなければならないという可能性がどれくらいかの連続的尺度。ここで、処理部は、この重要性を決定するように構成されてもよい。
・優先度
○例えば、スロットが、{[1,0,0],[0,1,0],[0,0,1]}にマップされる{1,2,3}のスケールとして対話内で扱われるべき第1の属性、第2の属性、およびこれらより後の属性である可能性がどれくらいかをそれぞれ示す3つのパラメータ
○例えば、検索結果に対するユーザの知覚した潜在的な影響の連続的尺度。ここで処理部は、この優先度を決定するように構成されてもよい。
・DB内の値分布
○例えば、DB(s=v)が、属性s=vを有するデータベース内のエンティティのセットを示し、|DB(s=v)|および|DB|がそれぞれ、上記のセットのサイズおよびデータベースのサイズを示す場合、値分布は、離散分布(正規化されたヒストグラム)を生じさせるためにスロットsの各可能な値vに対して|DB(s=v)|/|DB|を計算することによって計算されてもよく、次いで、エントロピーは、この正規化されたヒストグラムに対して算出されてもよい。
・例えば現在の上位ユーザ目標仮説h*とあらかじめ定義された閾値τを考えての、DB検索に対する潜在的な貢献
○充填sが、合致するDB結果の数をτよりも下に減少させる可能性がどれくらいか、すなわち、|{v:v∈Vs,|DB(h*∧s=v)|≦τ}|/|Vs|(スロットの値が、データベース内で取得された結果において、閾値数よりも下になる割合)
○充填sが、合致するDBレコードの数をτよりも下に減少させない可能性がどれくらいか、すなわち、|{v:v∈Vs,|DB(h*∧s=v)|>τ}|/|Vs|(スロットの値が、データベース内で取得された結果において、閾値数よりも上になる割合)
○充填sが、合致するレコードがDB内で発見されないという結果をもたらす可能性がどれくらいか、すなわち、|{v:v∈Vs,DB(h*∧s=v)=φ}|/|Vs|(スロットの値が、取得された結果において、データベース内でユーザの基準を満たす結果がないという結果を招く割合)
言い換えれば、システムが、それらのスロットに対する制約をまだ観測していないことを信じるとき、このパラメータは、信念における現在の上位仮説がヌルであるスロットに対して非ゼロであるにすぎないことに留意されたい。
例えば、上記のパラメータのうちの任意の1つまたは複数が使用されてもよいし、上記のパラメータのどれも使用されなくてもよい。
例えば、基礎タスクが、システムが適切な候補(例えば、会場、製品など)を発見するためにデータベース(DB)検索を実行できるように、各スロットに対するユーザの制約を取得することである場合、スロットパラメータは、スロットが満たされている場合、検索結果を改良する(適切な候補の数を減少させる)ためのこのスロットの可能性を表し得る。別の例では、タスクが、システムコマンド(例えば、リマインダの設定またはルートの立案)を実行するために必要な情報と任意の情報とを収集することである場合、各スロットの値の数は無制限が可能であれば、スロットパラメータは、スロットが必須かそれとも任意かを示し得る。さらに、スロットは、対話中に人々に異なるように対処させるいくつかの特定の特性を有してもよい。例えば、ラップトップを購入するとき、バッテリ定格よりも価格について最初に話す可能性が高い。したがって、各スロットの優先度を示すパラメータも、自然な対話をもたらすために必要である。パラメータの例示的なリストは、上記で提供されている。
S404において識別されたオントロジー情報のセットをパラメータ化するための方法は、以下の通りであってもよい。スロットは、オントロジーに依存しないパラメータに関して定義される。これは、問題のスロットに関する上記で列挙されたパラメータを計算することを備えてもよい。オントロジーに依存しないパラメータは、上記のリストによるものであってもよいし、他のオントロジーに依存しないパラメータであってもよい。このようにして、オントロジーのあらゆるスロットは、オントロジーに依存しないパラメータにおいて定義される。スロットのうちのいくつかは、上記のパラメータのリストにおいて説明されたように、値を計算することによって、オントロジーに依存しないパラメータに関して定義される。信念状態に関して説明されたように、各アクション関数に対応する異なるパラメータ化関数が使用されてもよい。
上記で説明された重要性パラメータおよび優先度パラメータは、2進値を手動で割り当てられてもよい。
代替として、一方または両方は、例えば、ドメイン内の人間対人間の例示的な対話(例えば、ウィザードオブオズ手法の実験から収集された)から、自動的に推定されてもよい。重要性および優先度の値は、学習段階中に学習可能であり、実施中に更新されてもよい。代替として、重要性および優先度の値は、実施中にパラメータ値から直接的に学習されてもよい。
したがって、重要性および/または優先度は、以下のように、サブドメインごとにオントロジー情報のスロットに対して決定されてもよい。
対話中にユーザによって言及された(および値を有する)スロットごとに、達成された報酬と可能な最大報酬との比の累積移動平均が、スロット重要性の推定値として決定される。したがって、カテゴリごとに、達成された性能インジケータと可能な最大性能インジケータとの比の累積移動平均が、カテゴリ重要性の推定値として決定される。
同じスロットの場合、スロット優先度は、スロットがユーザによって言及されたときの対話エピソード中の相対位置(すなわち、ターン番号)の累積移動平均を計算することによって決定される。
実施中に値を学習または更新するとき、システムは、時間が進むにつれて潜在的な変化に適合することが可能である。
具体的には、特徴は、次のように推定される。
ここで、IsおよびPsはそれぞれ、スロットsに関する重要性および優先度の推定値、rtは対話tにおける報酬、Rmax=max{R(s,a)}、Rmin=min{R(s,a)}、NはPまたはIが更新された回数、post sは対話t中にスロットがユーザによって言及されたターン番号である。Nは、複数の対話にわたってスロットの重要性(または優先度)が更新された合計回数を指す。R値は、手動で定義され得る報酬関数によって決定される。報酬関数は、ポリシーモデルを学習するために使用される報酬関数であってもよい。この関数は、対話中の各ターンにおける報酬rを提供する。RminおよびRmaxは、関数Rが割り当てできる可能な最小値/最大値である。実際には、全体的な報酬値は、対話に対して決定されてもよく、これは、次いで、対話中で言及されたスロットに関連し、各ターンに対する報酬を与える。最大値および最小値は、報酬関数または人間による格付けを通じて決定可能である。例えば、報酬関数は、100の値を成功に割り当て得る。そのとき、これは最大値であり、0は最小値である。代替として、人間が、5が最大で0が最小であるように、スケール0〜5で対話を格付けすることを求められることがある。
パラメータ化の後、次いで、S406において、減少されたシステム状態および情報のセットがポリシーモデルに入力され、ポリシーモデルは、アクション関数とアクション関数入力とを出力する。上記でS206に関して説明されたように、対話ポリシーは、現在のパラメータ化されたシステム状態を入力としてとり、次のドメインに依存しないシステムアクション関数と入力とを出力する。入力は、例えば、ドメインに依存してもよい。ポリシーモデルのサブセット(Qテーブル)がリアルタイムで選択され、Q値
を備える。これらのQ値は、各々がアクション関数入力に対応する一連のベクトルとして生成され得る(|Ia|個のベクトルがある場合、各ベクトルはサイズ|Fa|であり、ここで、Faは、入力信念状態に対してS404において定義されるアクション関数セット、Iaは、入力信念状態に対してS404において定義されるアクション関数入力セットである)。これは、次の入力とアクション関数
の両方を導出するために使用され、ここで、ia⊆Ia、fa⊆Faであり、Q値は、特定の入力信念状態Bに対するQ値である。
ポリシーモデルからの出力は、通信関数(例えば、「select」)とアクション関数入力であり、このアクション関数入力は、ドメインに依存したアクション関数入力であってもよい。これは、次いで、そのスロットに対応する値(例えば、日本語)を加えることによって要約アクションからフルアクションに変換される。
S407は、上記で説明されたS207に相当する。アクションは、テキストの形式であってもよい。システムは、出力されることになる音声にテキストを変換する自然言語生成部(NLG)を備えてもよい。
図5は、ポリシーモデルを学習する例示的な方法のフローチャートを示す。ポリシーモデルは、入力信念状態を出力アクションにマップするように学習される。ポリシーモデルは、記憶されたデータのコーパスを用いて学習されてもよいし、人間またはシミュレートされたユーザを用いて学習されてもよい。
例示的な方法が以下で説明され、DIPが使用される。DIPは、(信念)状態空間を、特定のドメインに依存しないサイズNの特徴空間にマップする方法
であり、ここで、Iaはスロットのセット、
は実数のセットである。したがって、ΦDIPは、現在の信念状態を考慮して、各スロットに対する特徴を抽出し、任意で、異なるアクションに対する異なるパラメータ化を可能にするためにFaに依存する。
これは、固定サイズのドメインに依存しない空間の定義を可能にし、この空間に対して学習されたポリシーは、さまざまなドメイン内で、例えば情報探索対話の文脈において、使用可能である。したがって、例えば情報探索対話に適用可能な、単一の、ドメインに依存しないポリシーモデルが学習され得る。リカレントニューラルネットワーク(RNN)は、以下で説明されるようにQ関数を近似するために使用可能である。
同じポリシーモデルおよび同じオントロジーパラメータ化が新しいオントロジーに使用されるならば、DIPベースのポリシーが、データ駆動型アプローチを使用してあらかじめ定義されたドメイン内で最適化されると、取得されるポリシー(すなわち、学習されたモデルパラメータ)は、異なるオントロジーを有する異なるドメイン内のポリシーに予備知識(または、数学的な事前分布)を提供する。したがって、ポリシーモデルは、例えば、単一のあらかじめ定義されたドメインに対して学習され得るが、次いで、複数のドメインからの情報を備える記憶されたオントロジーを有する上記で説明されたシステム内で使用され得る。
複数のドメインからの情報を備える記憶されたオントロジーは、エンドユーザオントロジーと呼ばれることがあり、エンドユーザオントロジーは、対話管理部が機能することが意図されるオントロジーであってもよい。しかしながら、パラメータ化されたポリシーは、第1のオントロジーを使用して最適化され得る。第1のオントロジーは、エンドユーザオントロジーと異なっていてもよく、例えば、単一のあらかじめ定義されたドメインであってもよい。パラメータ化されたポリシーは、エンドユーザオントロジーとともに使用される前に最適化され得る。ポリシーは、エンドユーザオントロジーを用いて実施または展開される前に最適化され得る。パラメータ化されたポリシーは、パラメータを入力として使用し、パラメータは、異なるオントロジーのスロットが客観的にマップまたは比較され得るパラメータ「空間」を定義するために使用され得る。したがって、それによって、第1のオントロジーに関して最適化されたポリシーは、エンドユーザオントロジーに関しても最適化され得る。エンドユーザオントロジーは、複数のあらかじめ定義されたドメインを備えるグローバルオントロジーまたは任意の単一のあらかじめ定義されたドメインオントロジーのいずれかであってもよい。任意で、識別子は、関連するスロットを識別し、使用されるドメインを、各ターンにおいてエンドユーザオントロジーとして定義するために使用可能である。
第1のオントロジーに関してポリシーを最適化するために、第1のオントロジーのスロットは、パラメータ化されたポリシーへの入力として使用されるのに適しているように、オントロジーに依存しないパラメータのうちの少なくとも1つに関して定義され得る。第1のオントロジーのスロットの各々は、オントロジーに依存しないパラメータのうちの少なくとも1つに関して定義され得る。これは、上記で実装形態に関して説明された様式と同じように行われてもよい。上記で説明されたように、オントロジー情報のうちのいくつかは、パラメータに関して記憶され得る。オントロジー情報のうちのいくつかまたはすべては、ポリシーモデルの動作の前またはその間のいずれかにおいて、各対話ターンに関してパラメータ化され得る。
最適化プロセスは、人間またはシミュレートされた人間との対話を入力するためにポリシーモデルを繰り返し使用することを備えてもよい。本物の人間またはシミュレートされた人間との対話と組み合わせて、またはこれに応答して、ポリシーは、性能インジケータを増加させるように適合され得る。対話ポリシー最適化は、最大予想報酬を有するアクションが各対話ターンにおいて選択可能であるように、システム状態または信念状態で実行されるシステムアクションに対する予想長期報酬を推定することが目指されてもよい。ポリシーモデルは、例えば、ディープニューラルネットワークベースのポリシーモデルであってもよい。対話ポリシー最適化は、ディープQネットワークを使用して実行されてもよい。
対話はテキスト信号を備えていてもよく、その場合、学習の方法は、データからシステム状態を抽出するステップを備える。システム状態は、記憶された、すでに学習された追跡モデルを使用して抽出され得る。この例における追跡モデルは、したがって、ポリシーモデルを学習するステップの前に学習され、学習された追跡モデルは、次いで、ポリシーモデルを学習する際に使用される。同様に、データが音声信号を備える場合、学習する方法は、あらかじめ学習された音声言語ユニットを使用してテキスト信号を抽出し、次いで、そのテキスト信号に対応するシステム状態を抽出することを備えてもよい。
したがって、S501において受け取られる各入力信号は、状態追跡モデルを使用してS502において受け取られるシステム状態を更新するために使用される。この例では、ポリシーモデルは、単一のあらかじめ定義されたドメインに対して学習されるので、システム状態は、あらかじめ定義されたドメインに対するカテゴリのみを備える。図2に関して説明された実装段階に関連して以前に説明されたように、前のシステム状態が含まれてもよい。同様に、システム状態は、図2における実装段階に関して以前に説明されたように要約されてもよい。
次いで、各入力システム状態がS503においてパラメータ化される、すなわち、各スロットが、パラメータ化されたポリシーへの入力として使用されるに適しているように、オントロジーに依存しないパラメータのうちの少なくとも1つに関して定義される。第1のオントロジーのスロットの各々は、オントロジーに依存しないパラメータのうちの少なくとも1つに関して定義され得る。これは、上記で図4において実施段階に関して説明された様式と同じように行われてもよい。記憶されたオントロジー情報は、各対話ターンにおいてパラメータ化されてもよいし、記憶されたオントロジー情報のいくつかもしくはすべてがパラメータに関して記憶されてもよい。
次いで、S504において、各抽出されたシステム状態が統計学的ポリシーモデルに入力され、統計学的ポリシーモデルは、図2において説明された実施段階に関して説明されたように、記憶されたQ値に基づいてアクション関数とアクション関数入力とを出力する。同じく以前に説明されたように、アクションが生成され、S505において出力される。
S506では、ポリシーモデルが適合される。これは、性能インジケータに基づいてQ値を決定するために使用される記憶されたパラメータを更新することを備える。任意で、ポリシーモデルパラメータは、10対話ごとに更新される。しかしながら、更新は、各対話ターンの後、各対話の後、または多くの対話の後であってもよい。複数の学習ステップまたは「エポック(epoch)」が、各更新時に実行されてもよい。任意で、ポリシーモデルパラメータは、1つのエポック(すなわち、これまで収集されたデータに対して1つの「パス(pass)」)に対して10対話ごとの後で更新される。
ポリシーを最適化することは、特定のドメインおよびオントロジーに対する特定の性能インジケータを最大化すること、または初期値に対して性能インジケータを増加させることを備えてもよい。ポリシーの最適化は、成功率または平均報酬を増加させるようにポリシーを適合させることを備えてもよい。最適化は、平均、または上記のインジケータの組み合わせが最大化されるようにポリシーを適合させることを備えてもよい。最適化プロセスは、関数近似手順であってもよい。
最適化プロセスの一例は、ディープQネットワーク(DQN)である。別の例は、ガウス過程時間差(GPTD:Gaussian Process Temporal Difference)である。
上記で説明されたように、SDSシステムにおけるアクションは、2つの部分、すなわち通信関数a(例えば、inform、deny、confirmなど)とアクション関数入力とを備えてもよく、アクション関数入力は、例えばスロット−値ペアs,vのリスト(例えば、food=Chinese、pricerange=expensiveなど)を備えてもよい。要約アクションが使用される場合、アクション関数入力はカテゴリのみであってもよい、すなわち、値はない。対話ポリシー最適化は、強化学習(RL)を介して解決可能であり、強化学習(RL)では、学習中の目標は、各B、fa、およびiaに対して、信念状態Bにおけるアクション関数faとアクション関数入力iaとを備えるアクションaを実行するシステムの予想累積報酬を反映して、量Q(B,fa,ia)を推定することである。報酬関数は、現在の状態と行われるアクションとを仮定して、報酬rを割り当てる。これは、(例えば、人間入力からの)各対話の終了時における報酬値Rを決定し、次いで、対話に対するこの最終的な値Rから対話の各ターンに対する(すなわち、そのターンにおける状態および行われるアクションに対応する)報酬rを決定することによって行われてもよいし、各ターンにおいて推定されてもよい。Qは、状態bとアクションaとを仮定して、将来の報酬の期待値(累積されたr)を推定する。Qの値は、Q学習更新規則を使用して、r値に基づいて更新されてもよい。
が仮定される場合、関数近似が使用されてもよく、ここで、θは学習するべきモデルパラメータ、φ(.)は上記で説明されたΦDIPと同じ、すなわち、(B,fa,ia)をパラメータベクトルにマップするパラメータ関数である。fは、パラメータθを有する関数である。例えば、f(φ(B,fa,ia))=θ*(φ(B,fa,ia))+z、ここで、θおよびzは、f(φ(B,fa,ia))=Q((B,fa,ia))であるように最適化するパラメータである。より一般的には、fは、φに重みθを乗じる関数である。
学習中に、Qは、各B,fa,iaの組み合わせに対して推定される。これらの値を生成するために使用されるパラメータは記憶される。学習中および実施中に、上記で説明されたように、Q値が生成され、同じく上記で説明されたように、入力状態Bに対して最高Qを有するアクション関数faおよびアクション関数入力iaが選択される。Qを生成するために使用されるパラメータは、実施中に更新され続けてもよい。
Q(B,fa,ia)を算出するために、カーネル方法が使用される場合、次元削減に要約信念を使用するか、フル信念を適用するか、のいずれかが可能である。どちらの場合も、アクションは、追跡可能な算出を達成するために、要約アクションであってもよい。要約アクションは、上記で説明されており、マスタアクションaを形成する意味表現を簡略化し、いくつかのあらかじめ定義された規則に基づいてマスタアクションにマップ可能である。この場合、アクション関数入力iaは、カテゴリのみを含み、値を含まない。
この場合、パラメータ化関数は、
と記述可能であり、ここで、δはクロネッカーのデルタであり、
はテンソル積である。Bは、{bjoint、bo}∪{bs}s∈Sと表される、個々の信念ベクトルのセットを備え、ここで、boは任意のスロットに依存しない信念状態の部分(例えば、通信方法に対する信念、対話履歴など)を示し、Sは、ドメインオントロジーにおいて定義された(通知可能)スロットのセットを表し、
であり、ここで、
は、2つのベクトルを連結する演算子を表す。そのオペランドbxをパラメータ化するための各ψxにおける機構は、ドメインに依存しなくてもよいので、結果として生じる全体的なパラメータベクトルはドメイン一般的(domain-general)である。信念状態をパラメータ化するための例示的な関数ψ(b,s)は、上記で説明されている。
入力アクションiaを備える記憶されたオントロジーにおける各スロットは、やはり上記で説明された
を使用してパラメータ化される。
任意で、パラメータ関数
およびψaは、異なるパラメータ化が各aに適用可能であるように、aとともに変化してもよい。
したがって、記憶されたオントロジーにおける各スロットは、
を使用してパラメータ化され、信念状態における各スロットは、ψaを使用してパラメータ化される。記憶されたオントロジー情報とシステム状態とをパラメータ化するための例示的な関数
およびψaは、上記で説明されている。
ポリシー学習、すなわち、ポリシーの最適化は、パラメータθ(例えば、線形モデルが当てはまる場合、重みベクトル)を割り当てる。パラメータの数は、入力における次元の数に1を足したものに等しくてもよい。この場合、次元の数は、システム状態ベクトルBのサイズに異なるfaおよびiaの数を足したものである。DIPを使用すると、次元の数は、DIPパラメータの数にアクション関数の数を足したものに等しい。学習中に学習されるモデルパラメータθの数は、この数に1を足したものに等しくてもよい。これは、あらかじめ定義されたドメインの数に対して固定される。
ニューラルネットワークベースのポリシーモデルが使用される場合、Qを近似するニューラルネットワーク(NN)は、学習中に各組み合わせにパラメータをどのようにして自動的に割り当てるかを決定する。NNは、1つの入力層(組み合わせB,f,iを受け取る)と、後に接続される複数の層と、最終出力層とを有する。各層は、いくつかの隠れ変数(ノード)を有し、これらの変数は、(連続する層内の)それらの間の接続を有する。各接続は重みを有する。これらの重みは、学習中に学習されるパラメータである。パラメータは、現在の層内の所定の隠れ変数が、次の層内の所定の隠れ変数にどれくらい影響するかを決定する。したがって、DQNベースの学習は、入力の次元よりも大きくてもよいパラメータのセットを決定する。この数は、あらかじめ定義されたドメインの数に対して固定される。
したがって、DIPを使用するポリシー最適化技法の出力は、異なるデータ構造(より少数のモデルパラメータ)を有する。重みが学習されると、同じパラメータ化関数
およびψaはそれぞれ、実施中にオントロジーおよび信念状態をパラメータ化するために使用される。
最適化中に、ポリシーモデルは、人間またはシミュレートされたユーザと対話し、重みθaの決定を可能にするフィードバックを受け取ってもよい。対話は、例えば、単一のあらかじめ定義されたドメインに関する対話を備えてもよい。システム状態追跡部は、入力発話をシステム状態にマップし、システム状態は、次いで、関数ψ(B)を使用して、オントロジーに依存しないパラメータに変換される。アクション関数とアクション関数入力とを備える記憶されたオントロジーも、関数
を使用して、オントロジーに依存しないパラメータに変換される。ポリシーモデルは、通信関数とアクション関数入力とを出力する。ポリシーモデルのサブセット(Qテーブル)がリアルタイムで選択され、Q値
を備える。これは、すなわち、最高のQ値を有する次の入力とアクション関数とを選択することによって、次の入力とアクション関数の両方を導出するために使用される。次いで、フルアクションが、現在の信念状態のためのスロットに関する上位信念をアクション関数入力に含めることによって生成可能である。対話の成功に関するフィードバックは、アクション関数に関連付けられた重みθaを更新するために使用され、Qを生成するために使用される。
したがって、アクション関数faを備える一般的なアクション空間Aが定義され、アクション関数faは、例えば情報探索問題に関するアクション関数のセットであってもよい。一般的なアクション空間は、以下のシステムアクション、すなわち、hello、bye、inform、confirm、select、request、request more、repeatを備えてもよい。
したがって、ポリシーは、信念−アクション空間ではなく、ΦDIP×A空間に対して動作する。ΦDIPは、スロットに対するドメイン独立性を達成する。A空間内で動作し、ポリシーに、どのアクションを次にとるべきか、ならびにアクションがどのスロットを参照するかを決定させることによって、アクションに関する独立性が達成される。
任意のドメインのアクションは、A×Iaという関数として表され、ここで、Iaはドメインのスロットである。
Q値を生成するために使用されるパラメータは、学習中に学習される。次いで、学習されたポリシーは、
のように、アクションとスロットの両方に対して最大化することによって、実施中にどのアクションをとるべきかを決定し、ここで、Btは時間tにおける信念状態であり、fa∈Aである。
Q関数を近似するために、例えば、各々64の隠れたLSTMセルを有する4つの積層されたRNNが使用される。入力層はDIP特徴ベクトルΦDIP(Bt,ia,fa)を受け取り、出力層はサイズAである。各出力次元は、Q[ΦDIP(B、ia、fa)、fa]と解釈することができる。
ここで、
はサイズ|A|のベクトルであり、Wmは、セルkに対する(合計でM個の層からの)m番目の層の重みであり、xm kはm番目の層の活性を保持し、ここで、x0=ΦDIP(Bt,ia,fa)であり、bmはm番目の層のバイアスである。任意で、M=4である。したがって、ニューラルネットワークは、所与のパラメータ化された入力iaおよびパラメータ化された信念状態Bに関する各アクション関数faに対する値を生成し、最大Q値に対応するアクション関数を出力する。ポリシーモデルは、最大Q値に対応するアクション関数とアクション関数入力とを更新するために、それらの値を使用し、全体的な最大Qに対応するアクション関数と入力とを決定するために、すべての可能な入力(スロット)にわたって反復して、この値に対応する入力とアクション関数の両方を出力する。要約システムアクションを生成するために、選択されたスロットとアクションが組み合わされる。モデルは、経験の再現を有するDQNで学習され、経時的に同じ分布に従うことを保証するために各ミニバッチの入力ベクトルを正規化してもよい。DQNは、強化学習の一種である。DQNの代わりに、他のポリシー学習アルゴリズムが使用可能である。
図6は、対話ポリシーを最適化する方法の概略図である。図6は、ニューラルネットワーク、例えばディープニューラルネットワークを使用するときの、例示的な対話ポリシー学習方法を示す。異なる層は、例示的な状態とアクション抽象化とを示す。方法は、自動的に実行される、信念状態と要約アクション状態との間の部分を重視する。
対話ポリシー学習アルゴリズムは、例えば以前のシステムアクションと他の任意の特徴とを備え得る現在の状態を入力として取得し、次のドメインに依存しないシステムアクション関数を出力する。しかしながら、Q(B,a)(これはサイズ|A|のベクトルであり、ここで、Bすなわち信念状態が与えられているので、Aはアクションセットである)を最大化にする代わりに、方法は、上記で説明されたように、Qの一部:Q(B,fa,ia)をリアルタイムで作成する。したがって、:Q(B,fa,ia)を最大化する入力とアクション関数とを発見することによって、方法は、適切な入力(例えばスロット)と次のアクションの両方を効果的に選択する。次いで、これらの組み合わせとして、出力アクションが生成される。
方法は、データからモデルを学習し、これは、システムが動作するドメインの数およびサイズに依存しない、言い換えれば、それは、1つのドメインに対して学習するが、次いで、マルチドメインシステムのために実施され得る。代替として、モデルは、人間またはシミュレートされたユーザとの対話を入力することによって学習し得る。同じポリシーモデルは、いかなる処理の必要なしに新しいドメインに適用可能である。さらに、モデルは、ドメインの数またはドメインのサイズが成長するにつれて成長せず、したがって、スケーラブルであり、大規模なマルチドメインシステムまたは単一ドメインシステムにおいて使用するのに効率的である。これは、次のアクションと、使用するスロットとを同時に選択することによって、達成される。
フル状態空間は、状態追跡モデルを使用して、現在のターンに対する状態にマップされる。次いで、信念状態は、パラメータ化された信念状態Φi[B(s)]を与えるために、DIPを使用してパラメータ化され、ここで、Φは、信念状態をパラメータ化するために使用されるパラメータ化関数である(例えば、上記で説明されたψ)。信念状態は、例えば示されるような、前のシステムアクションを含んでよい。これは、次いで、ポリシー学習アルゴリズムに入力され、ポリシー学習アルゴリズムは任意のポリシー学習アルゴリズムであってもよい。
フルアクション空間の代わりに、システムは、要約アクション空間に対して動作する。要約アクションは、以下の規則によって定義され得る。
(1)アクションがそのオペランドとして1つのスロット−値ペアのみをとる場合、実際の値は消去され、アクションは、a(s=<スロットsにおける現在/上位値仮説>)に要約される;および、
(2)アクションがそのオペランドとしてスロット値のリストをとる場合、それは、a(s1=<s1における現在/上位/共同スロット−値仮説>、s2=<s2における現在/上位/共同スロット−値仮説>、…)として要約される。
言い換えれば、現在のシステム状態(決定論的状態が使用される場合、すなわち、MDP−SDSにおいて)または上位信念(信念状態が使用される場合、すなわち、POMDP−SDSにおいて)仮説は、アクションごとに、<>へと置き換えられる。次いで、スロット情報はアクションから除去可能であり、これは、各アクションは、ドメインに依存しないアクション関数faと、ヌルであってもよいし1つまたは複数のカテゴリであってもよいアクション関数入力とを備えることを意味する。
次いで、要約アクションは、アクション関数faのみを備える、ドメインに依存しないアクション空間にマップされる。カテゴリは、システム状態内に備えられるので、この場合、情報のセットはカテゴリを含まず、これらは、入力システム状態から取り出される。
ポリシーモデルは、入力として、ドメインに依存しないアクション関数と、パラメータ化されたドメインに依存しない信念状態とをとる。ポリシーモデルは、ドメインに依存しない信念状態を、ドメインに依存しないアクション関数およびスロットにマップする。信念状態に対する最大Q値に対応するアクション関数およびスロットが、出力として選択される。これは、1つのスロットに対応するパラメータ値(アクション関数入力)および信念状態をニューラルネットワークに入力することによって行われ、これは、各アクション関数に対するQ値を生成し、
に従って、最大Q値に対応するアクション関数を出力する。
ポリシーモデルは、各スロットに対してニューラルネットワークを実行し、このようにして、最大Q値に対応するスロットとアクション関数の組み合わせを発見する。
Q値を生成するために使用されるニューラルネットワークパラメータは、性能インジケータに基づいて更新される。
図7は、システムアーキテクチャの概略図である。複数のあらかじめ定義されたドメインは、単一のマルチドメインシステム状態を生成するために組み合わされ、その関連する部分はポリシーに入力される。ポリシーの出力は、ドメインに依存しないアクション空間である。
図8は、不適合ポリシー(unadapted policy)に関する値に対する成功率または平均報酬のうちの少なくとも1つを増加させるために特定のオントロジーに対してパラメータ化されたポリシーを最適化するための例示的な方法を示す。非適合ポリシーは、最適化されていない(すなわち、最適化手順を通っていない)ポリシーである。代替として、ポリシーは、最大予想報酬を有するアクションが各対話ターンにおいて選択可能であるように最適化されてもよく、アクションは、特定の時点において何をするべきかに関して対話管理部によってなされる選択肢である。適合は通常、人間ユーザまたは人間ユーザをシミュレートするコンピュータのいずれかとのポリシーの反復的な使用に応答して、これと組み合わせて行われる。図8に関して説明される方法は、GP−SARSAとしても知られている、パラメータ化されたポリシーを最適化するためにガウス過程時間差(GPTD)学習を使用する。
図8のパラメータ化されたポリシーは、特定のオントロジーに関して最適化される。このオントロジーは、必ずしもポリシーが最終的にそれとともに使用されるオントロジーであるとは限らない。
ポリシーが最適化可能なオントロジーを、オントロジーに依存しないポリシーとともに使用するために、オントロジーの各スロットは、上記で説明されたように、オントロジーに依存しないパラメータに関して定義される。これは、各対話ターンにおいて行われてもよいし、情報のいくつかまたはすべてが、学習中に使用するためのパラメータに関して最初にパラメータ化され、記憶されてもよい。スロットが、オントロジーに依存しないパラメータに関して定義されると、オントロジーは、ポリシーを最適化するために、ポリシーとともに使用可能である。
ステップ90では、n個の異なるパラメータ化されたポリシーが最初に提供される。パラメータ化されたポリシーは、入力としてオントロジーに依存しないパラメータを受け取るように構成される。この段階におけるパラメータ化されたポリシーは、最適化されていない。
次いで、ステップ92では、パラメータ化されたポリシーの各々(1からn)が最適化される。ポリシーは、例えば、GP−SARSAを使用して最適化されてもよい。ポリシーはすべて、同じオントロジーを有する同じドメインによって最適化されてもよいし、同じオントロジーを有する同じドメインに対して最適化されてもよいし、異なるオントロジーを有する異なるドメインによって最適化されてもよい。ポリシーはドメインに依存しないので、ポリシーが使用されることとなるオントロジー(「エンドユーザ」オントロジー)が、ポリシーを最適化するためのオントロジーと異なるかどうかは、問題ではない。オントロジーに依存しないポリシーを最適化するために使用されるために、m個のオントロジーの各々は、最適化が着手されることができる前に、それらのスロットの各々を、オントロジーに依存しないパラメータに関して定義させなければならない。パラメータは、上記で論じられたパラメータであってもよい。
各オントロジーが、最適化されるべきそれぞれのポリシーとの使用に適するようになると、最適化されたポリシーの各々は、エンドユーザオントロジー(ポリシーが最終的に実施されることになるオントロジー)とともに使用される94。次いで、エンドユーザオントロジーに対する「最も最適な(most optimal)」ポリシーが決定される96。例えば、最も最適なポリシーは、ここでは、最も高い平均報酬を有するポリシーである。代替として、最も最適なポリシーは、最高タスク成功率または2つの値の平均を有するポリシーであってもよい。次いで、最も最適なポリシーが、エンドユーザオントロジーとともに使用されるために選択される98。エンドユーザオントロジーは、複数のあらかじめ定義されたドメインを備えるグローバルオントロジーまたは任意の単一のあらかじめ定義されたドメインオントロジーのいずれかであってもよい。任意で、識別子は、関連するスロットを識別し、使用されるドメインを、各ターンにおいてエンドユーザオントロジーとして定義するために使用可能である。
エンドユーザオントロジーとともにパラメータ化されたポリシーを使用するために、エンドユーザオントロジーがパラメータ化される100。これは、ターンごとに、または最初に、上記で説明されたように行われてもよい。エンドユーザオントロジーがパラメータ化されると、ポリシーがエンドユーザオントロジーに適用される102。任意で、次いで、104では、エンドユーザオントロジーに適用されるポリシーが改良される。図8において選択されたポリシーを改良するためのプロセスは、ポリシーを最適化するために使用されるプロセスと同じプロセスである。当然、選択されたポリシーを改良するために、選択されたポリシーは、さらなる、関連のないオントロジーではなく、エンドユーザオントロジーとともに繰り返し使用される。エンドユーザオントロジーに適用されるポリシーはすでに最適化されているので、改良プロセス104の開始時におけるポリシーは、最適化されたポリシーである。したがって、最適化プロセスのための適合と比較されると、比較的少量の適合が必要とされる。
図9は、第1のオントロジーを用いて第1のドメインにおいてポリシーを最適化し、そのポリシーを、エンドユーザオントロジーを用いてエンドユーザドメインに移すためのさらなる方法を概略的に示す。初期SDSが、オントロジーに依存しないポリシーとともに展開される110。このポリシーは、第1のオントロジーとともに第1のドメイン内で展開される。第1のオントロジーのスロットは、ポリシーとともに使用可能であるように、オントロジーに依存しないパラメータにおいて定義される。上記で論じられたように、例示的な対話が収集され112、ポリシーが最適化される114。次いで、最適化されたポリシーが、第1のオントロジーとともにドメイン内でSDSの一部として展開可能である116。展開されると、反復ループ130が、ポリシーをさらに最適化する114ために、さらなる例示的な対話を収集し得る112。
ポリシーが最適化されると、ポリシーは、1つまたは複数の「良好な」ポリシーのセットの一部として保持され得る118。次いで、1つまたは複数の良好なポリシーは、評価されるエンドユーザオントロジーおよびそれらの性能とともに新しいドメイン内で実施可能である120。複数の「良好な」ポリシーがある場合、エンドユーザオントロジーにとって最も最適なものが選択可能である。次いで、選択されたポリシー、すなわち唯一の「良好な」ポリシーが、エンドユーザオントロジーとともに展開される122。任意で、124において、さらなる例示的な対話が収集されてもよく、126では、ポリシーは、データ駆動型アプローチを使用してさらに改良されてもよい。
次いで、128では、改良されたSDSが展開される。
一般に、対話ポリシー最適化は、最大予想報酬を有するアクションが各対話ターンにおいて選択可能であるように、(MDP−SDSでは)システム状態または(POMDP−SDSでは)信念状態で実行されるシステムアクションに対する予想長期報酬を推定することが目指される。
ポリシーモデルが学習されると、ポリシーモデルは、学習された状態追跡モデル、識別子モデル、および必要とされる他の任意のさらなるモデル、例えば、音声合成(text to speech)モデル、自動音声認識モデル、自然言語生成モデルなどとともに、SDSにおいて実施可能である。
実施中に、例えば、関連カテゴリが、S203において識別される。以前に説明されたように、これは、話題追跡モデルを使用してあらかじめ定義されたドメインを識別することによって行われてもよい。代替として、ドメイン全体から関連カテゴリは、学習された識別子モデルを使用して識別されてもよい。識別子モデルは、以下で図10に関して説明されるように、学習されてもよい。
図10は、識別子モデルを学習する例示的な方法のフローチャートを示す。この方法では、識別子モデルは、ポリシーモデルとは別に学習される。
S1001では、システム状態が、複数の対話に関して取得される。この例で使用されるシステム状態は、信念状態である。
複数の対話を備える学習コーパスが、識別子モデルを学習するために使用される。このコーパスは、例えば、ラベルされた学習データコーパスである。モデルは、各対話からの各発話に対応するシステム状態を入力として順にとる。
このコーパスは、例えば、対話中の発話に対応する複数のシステム状態を備えてもよい。このコーパスは、例えば、ラベルされた学習データコーパスである。モデルは、各対話からの各発話に対応するシステム状態を入力として順にとる。
このコーパスは、例えば、対話中の発話に対応する複数のシステム状態を備えてもよい。
代替として、コーパスは、対話中の発話に対応するテキスト信号を備えてもよく、その場合、学習の方法は、データからシステム状態を抽出するステップを備える。システム状態は、1つまたは複数の、記憶された、すでに学習された追跡モデルを使用して抽出される。この例における追跡モデルは、したがって、識別子モデルを学習するステップの前に学習され、学習された追跡モデルは、次いで、識別子モデルを学習する際に使用される。追跡部は、特定のあらかじめ定義されたドメインごとに学習されてもよい。代替として、一般的な信念追跡部が学習されてもよい。これは、その後、あらかじめ定義されたドメインが追加または削除されるたびに再学習される必要があるであろう。使用され得る例示的な追跡モデルは、「Word−based dialog state tracking with recurrent neural networks」、Henderson、Thomson、Young、SIGDial 2014に記載されている。
同様に、コーパスが音声信号を備える場合、学習する方法は、あらかじめ学習された音声言語ユニットを使用してテキスト信号を抽出し、次いで、そのテキスト信号に対応するシステム状態を抽出することを備える。
ラベルは、対話中の発話ごとに、関連するあらかじめ定義されたドメインを識別し得る。しかしながら、モデルは、学習において使用されるあらかじめ定義されたドメインを越えて一般化することができる。識別子モデルは、あらかじめ定義されたドメインからの例のみを見るが、入力と関連するスロットとの相関を学習することによって、新しいドメインに一般化することができる。
各システム状態は、S1002において、統計モデルに順に入力される。以前に実施段階に関して説明されたように、前のシステム状態も識別子モデルへの各入力に含まれてもよい。同様に、以前に実施段階に関して説明されたように、各カテゴリに対する最高確率を有する値のみが入力システム状態に含まれてもよい。
次いで、モデルは、入力システム状態から複数の関連カテゴリを識別し、S1003において、関連するスロットが出力される。次いで、S1004において、これらのカテゴリに基づいて、サブドメインが生成される。これは、実施段階中に説明されたものと同じ様式で行われる。このプロセスは、対話ターンごとに繰り返される。
現在のドメインを示すラベルは、この識別の成功を決定するために使用され、モデルが学習することを可能にする。したがって、統計モデルは、入力としてバッファを、正解データ(ground truth)として、現在のあらかじめ定義されたドメインを受け取り、信念を関連するスロットにマップするために学習する。
したがって、データ駆動型方法は、この集合的知識のどの部分が、対話が進捗するのに関連するかを各対話ターンにおいて識別できるモデルを学習するために使用される。
上記の説明は、さまざまなモデルを別々に学習する方法に関する。しかしながら、他のモデルのうちの1つまたは複数とともにポリシーモデルを学習することも可能である。例えば、ポリシーモデルは、追跡モデル識別子モデルまたは話題とともに学習されてもよい。例えば、ディープニューラルネットポリシーモデルは、識別子モデルと共同で最適化可能である。この場合、ラベルされたデータを、識別子モデルを学習するために使用する代わりに、上記でポリシーモデルに関して説明されたいくつかの種類のフィードバックも、識別子モデルを学習するために使用される。例えば、システム状態追跡モデルも、ポリシーモデルとともに学習されてもよい。
任意で、これは、DNNを使用し、モデルを共同で最適化することによって行われる。これらのモデルを学習することは、成功率または平均報酬を増加させるようにモデルを適合させることを備えてもよく、例えば、上記のインジケータの平均または組み合わせが最大化されるようにモデルを適合させることを備えてもよい。モデルは、対話の品質についてのフィードバックを受け取り、それを、システム状態、関連するスロット、およびアクションの選択を査定するために使用する。時間がたつにつれて、モデルは、良好な予測を行うことを学習し、それは、フィードバック/品質尺度の向上につながる。
モデルは、データの記憶されたコーパスを用いて学習されてもよいし、人間またはシミュレートされたユーザを用いて学習されてもよい。
DQNポリシー学習アルゴリズムが使用されてもよい。このアルゴリズムはスケーラブルである。
拡張された特徴セットは、ポリシーモデルへの入力をパラメータ化するために使用可能であり、例えば、重要性および/または優先度は、上記で説明されたように、ポリシーモデルの学習中にリアルタイムで推定可能である。
図11(a)および図11(b)は、上記で図4に関して説明された方法のための複数のドメイン(20,000の学習エピソード)に対する評価結果を示す。複数のドメインに対して方法を適用すると、98.55の対話成功率が得られる。
システムはまた、シミュレートされたユーザを用いて学習され、小規模な人間ユーザトライアルに対してテストされた。DMは、4つのドメインすなわちケンブリッジのアトラクション(CA)、ケンブリッジの店舗(CS)、ケンブリッジのホテル(CH)、およびケンブリッジのレストラン(CR)、に対するシミュレーションにおいて学習された。意味論的誤り率を変化させる間、2,000の学習エピソードと、1,000の評価エピソードがあった。表1は、シミュレーションにおける実験の結果を示し、意味論的誤り率が変化させられ、10の学習/テスト実行にわたって平均された。単一ポリシーDQNベースの管理部が評価された。
上記で説明された方法は、ドメイン移送もサポートしながらスケーラブルな単一ドメインSDSまたはマルチドメインSDSの展開を可能にし、したがって、マルチドメインSDSを展開するための開発時間および労力ならびにそれを維持および拡張するために必要とされる時間および労力の削減を可能にし得る。
上記で説明された方法は、DNNを使用したマルチドメイン対話管理部の学習を可能にする。情報探索対話に適用できる、単一の、ドメインに依存しないポリシーネットワークが学習され得る。これは、DQNとともに学習されたDIPおよびDNNを通して達成され得る。
上記で説明された方法は、ドメイン固有アクションからの独立性を対話管理部に提供する。
マルチドメイン対話管理部は、複数の(潜在的に非常に異なる)あらかじめ定義されたドメインからのデータを使用して学習される。ポリシーのサイズは状態またはアクション空間のサイズに依存しないので、方法は、大規模ドメイン(単一または複数)にスケーラブルである。
方法は、複数のドメインの対話管理への深層学習アプローチであってもよい。複数の情報探索ドメインに適用可能な、単一のドメインに依存しないポリシーネットワークが学習される。ディープQネットワークアルゴリズムが、対話ポリシーを学習するために使用されてもよい。
特定の構成が説明されてきたが、これらの構成は、単に例として提示されたものであり、発明の範囲を限定することは意図していない。実際には、本明細書で説明される方法およびシステムは、その他の様々な形態で実施されることが可能である。そのうえ、本明細書で説明される方法および装置の形態において種々の省略、置き換え、および変更が行われてもよい。