(57)【要約】【課題】会話システムにおいて意図が不明確なクエリを処理する方法およびシステムを提供する。【解決手段】一実施形態に係るクエリ処理方法は、ユーザの発話に基づいたクエリおよび前記ユーザと関連のあるコンテキストの入力を受ける段階、前記クエリに対する自然言語理解（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）に基づいて前記クエリに対する前記ユーザの意図を分析する段階、および前記分析によってユーザの意図が決定されなかった場合、前記クエリおよび前記コンテキストを入力によって有するディープラーニング基盤の確率モデルを利用して前記ユーザの意図を予測する段階を含む。【選択図】図３
2020140210.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを含むコンピュータ装置のクエリ処理方法であって、
前記少なくとも１つのプロセッサにより、ユーザの発話に基づいたクエリおよび前記ユーザと関連のあるコンテキストの入力を受ける段階、
前記少なくとも１つのプロセッサにより、前記クエリに対する自然言語理解に基づいて前記クエリに対する前記ユーザの意図を分析する段階、および
前記分析によってユーザの意図が決定されなかった場合、前記少なくとも１つのプロセッサにより、前記クエリおよび前記コンテキストを入力によって有するディープラーニング基盤の確率モデルを利用して前記ユーザの意図を予測する段階を含む、
クエリ処理方法。
【請求項２】
前記コンテキストは、前記ユーザと関連のある会話ヒストリのうちの少なくとも一部、および前記ユーザの発話が入力された前記ユーザのデバイスの複数の項目別の状態に関する情報を含む、請求項１に記載のクエリ処理方法。
【請求項３】
前記ユーザの意図を予測する段階は、前記コンテキストに含まれる会話ヒストリから得られる会話状態の変化シーケンスを含む会話フロー表現、前記コンテキストにさらに含まれるデバイス状態に対する状態ベクトルを含むデバイス状態表現、および前記クエリに対するトークン化された入力文章を含む文章表現のうちの２つ以上を連結させて意図予測のための全体表現を生成し、前記ディープラーニング基盤の確率モデルを利用し、前記全体表現に対応して統計的確率に基づいて決定される意図を前記ユーザの意図として予測する、請求項１に記載のクエリ処理方法。
【請求項４】
前記会話フロー表現は、入力される会話の状態を決定するように学習されたニューラルネット基盤の分類モデルを利用して得られる前記会話ヒストリの状態変化シーケンスを含む、請求項３に記載のクエリ処理方法。
【請求項５】
前記デバイス状態表現は、特定項目の状態に関する情報に基づき、該当の項目に対して予め設定された状態のうちの１つを出力するように学習されたニューラルネット基盤の分類モデルを利用して得られる前記デバイス状態に対する前記状態ベクトルを含む、請求項３に記載のクエリ処理方法。
【請求項６】
前記文章表現は、入力文章をトークン化し、トークン化されたテキストのシーケンスを出力するように学習されたニューラルネット基盤の分類モデルを利用して得られる前記クエリに対するトークン化された入力文章を含む、請求項３に記載のクエリ処理方法。
【請求項７】
前記少なくとも１つのプロセッサにより、前記予測された意図に基づいて応答を提供する段階をさらに含む、請求項１に記載のクエリ処理方法。
【請求項８】
前記応答を提供する段階は、前記予測された意図に基づいて機能を特定し、前記特定された機能を実行するか否かの確証をユーザから得るための確証応答、または前記特定された機能の使用方法に関するガイドを提供するためのガイド応答を生成して伝達する、請求項７に記載のクエリ処理方法。
【請求項９】
前記応答を提供する段階は、前記クエリに対する自然言語理解に基づいて得られる部分分析結果にさらに基づいて応答を生成する、請求項７に記載のクエリ処理方法。
【請求項１０】
前記部分分析結果は、前記予測された意図に対するターゲットに関する情報を含む、請求項９に記載のクエリ処理方法。
【請求項１１】
前記ユーザの意図を分析する段階は、前記コンテキストに基づいた会話状態管理にさらに基づいて前記ユーザの意図を分析する、請求項１に記載のクエリ処理方法。
【請求項１２】
前記分析によってユーザの意図が決定された場合、前記少なくとも１つのプロセッサにより、前記決定された意図に基づいて応答を提供する段階をさらに含む、請求項１に記載のクエリ処理方法。
【請求項１３】
コンピュータ装置と結合して請求項１〜１２のうちのいずれか一項に記載の方法をコンピュータ装置に実行させる、コンピュータプログラム。
【請求項１４】
請求項１〜１２のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが格納されている、コンピュータ読み取り可能な記憶媒体。
【請求項１５】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、
前記少なくとも１つのプロセッサにより、
ユーザの発話に基づいたクエリおよび前記ユーザと関連のあるコンテキストの入力を受け、
前記クエリに対する自然言語理解に基づいて前記クエリに対する前記ユーザの意図を分析し、
前記分析によってユーザの意図が決定されなかった場合、前記クエリおよび前記コンテキストを入力によって有するディープラーニング基盤の確率モデルを利用して前記ユーザの意図を予測する、
コンピュータ装置。
【請求項１６】
前記コンテキストは、前記ユーザと関連のある会話ヒストリのうちの少なくとも一部、および前記ユーザの発話が入力された前記ユーザのデバイスの複数の項目別の状態に関する情報を含む、請求項１５に記載のコンピュータ装置。
【請求項１７】
前記少なくとも１つのプロセッサにより、
前記コンテキストに含まれる会話ヒストリから得られる会話状態の変化シーケンスを含む会話フロー表現、前記コンテキストにさらに含まれるデバイスの状態に対する状態ベクトルを含むデバイス状態表現、および前記クエリに対するトークン化された（ｔｏｋｅｎｉｚｅｄ）入力文章を含む文章表現のうちの２つ以上を連結させて意図予測のための全体表現を生成し、
前記ディープラーニング基盤の確率モデルを利用し、前記全体表現に対応して統計的確率に基づいて決定される意図を前記ユーザの意図として予測する、
請求項１６に記載のコンピュータ装置。
【請求項１８】
前記会話フロー表現は、入力される会話の状態を決定するように学習されたニューラルネット基盤の分類モデルを利用して得られる前記会話ヒストリの状態変化シーケンスを含む、請求項１７に記載のコンピュータ装置。
【請求項１９】
前記デバイス状態表現は、特定項目の状態に関する情報に基づき、該当の項目に対して予め設定された状態のうちの１つを出力するように学習されたニューラルネット基盤の分類モデルを利用して得られる前記デバイスの状態ベクトルを含む、
請求項１７に記載のコンピュータ装置。
【請求項２０】
前記文章表現は、入力文章をトークン化し、トークン化されたテキストのシーケンスを出力するように学習されたニューラルネット基盤の分類モデルを利用して得られる前記クエリに対するトークン化された入力文章を含む、請求項１７に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、会話システムにおいて意図が不明確なクエリを処理する方法およびシステムに関する。
【背景技術】
【０００２】
音声認識による会話システムが存在する。例えば、特許文献１は、会話システムおよび会話文章の生成方法に関し、音声認識に基づいて実際に使用された文章および単語の収集と相互連結によって会話文章を生成し、単語の定義修正および拡大過程を経ながら、自身の立場と会話相手の状況に適した文章を出力することができる会話システムを開示している。
【０００３】
しかし、このような会話システムでは応答することのできない、意図が不明確なクエリが存在する。ここで、意図が不明確なクエリとは、認識されたクエリの内容を人間が解釈不可能なクエリを意味してよく、より具体的には、認識されたクエリの内容からは質問者の意図を把握することができないクエリを意味してよい。例えば、ユーザの発話に対応する文章や単語が認識されない場合や、環境状況によってユーザ発話以外のノイズによる音声誤認識などの場合に、意図が不明確なクエリが発生したりする。
【０００４】
従来の会話システムに関する研究は、会話システムに備えられていない語彙を処理するためのソリューションを提示することに留まっており、音声の未認識や誤認識などに対応するためのソリューションは提供できておらず、これによって意図が不明確なクエリを処理することができないという問題を抱えている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】韓国登録特許第１０−０９１８６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
意図が不明確なクエリに対し、ディープラーニング基盤の確率モデルを利用して質問者の意図を予測することができる、クエリ処理方法およびシステムを提供する。
【０００７】
意図が不明確なクエリに対して予測された意図および自然言語理解（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）の部分分析結果を利用してガイドおよび確証（ｃｏｎｆｉｒｍａｔｉｏｎ）などの応答を提供することができる、クエリ処理方法およびシステムを提供する。
【課題を解決するための手段】
【０００８】
少なくとも１つのプロセッサを含むコンピュータ装置のクエリ処理方法であって、少なくとも１つのプロセッサにより、ユーザの発話に基づいたクエリおよびユーザと関連のあるコンテキストの入力を受ける段階、少なくとも１つのプロセッサにより、クエリに対する自然言語理解（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）に基づいてクエリに対するユーザの意図を分析する段階、および分析によってユーザの意図が決定されなかった場合、少なくとも１つのプロセッサにより、クエリおよびコンテキストを入力によって有するディープラーニング基盤の確率モデルを利用してユーザの意図を予測する段階を含む、クエリ処理方法を提供する。
【０００９】
コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記憶媒体に格納された、コンピュータプログラムを提供する。
【００１０】
前記方法をコンピュータ装置に実行させるためのプログラムが格納されている、コンピュータ読み取り可能な記憶媒体を提供する。
【００１１】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、少なくとも１つのプロセッサにより、ユーザの発話に基づいたクエリおよびユーザと関連のあるコンテキストの入力を受け、クエリに対する自然言語理解（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）に基づいてクエリに対するユーザの意図を分析し、分析によってユーザの意図が決定されなかった場合、クエリおよびコンテキストを入力によって有するディープラーニング基盤の確率モデルを利用してユーザの意図を予測する、コンピュータ装置を提供する。
【発明の効果】
【００１２】
意図が不明確なクエリに対し、ディープラーニング基盤の確率モデルを利用して質問者の意図を予測することができる。
【００１３】
意図が不明確なクエリに対して予測された意図および自然言語理解（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）の部分分析結果を利用してガイドおよび確証（ｃｏｎｆｉｒｍａｔｉｏｎ）などの応答を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。
【図３】本発明の一実施形態における、クエリ処理システムの例を示した図である。
【図４】本発明の一実施形態における、意図予測過程の例を説明するための図である。
【図５】本発明の一実施形態における、意図が不明確なクエリを処理する例を示した図である。
【図６】本発明の一実施形態における、クエリ処理方法の例を示したフローチャートである。
【図７】本発明の一実施形態における、クエリ意図分類器の代表モデルの例を示した図である。
【発明を実施するための形態】
【００１５】
以下、添付の図面を参照しながら、実施形態を詳細に説明する。
【００１６】
本発明の実施形態に係るクエリ処理システムは、以下で説明されるコンピュータ装置によって実現されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の実施形態に係るクエリ処理方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してクエリ処理方法をコンピュータに実行させるためにコンピュータ読み取り可能な記憶媒体に格納されてよい。一実施形態によると、クエリ処理システムは、２つ以上のコンピュータ装置の連係によって実現されてもよい。
【００１７】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。また、図１のネットワーク環境は、本実施形態に適用可能な環境のうちの１つの例を説明するものに過ぎず、本実施形態に適用可能な環境が図１のネットワーク環境に限定されることはない。
【００１８】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン、携帯電話、ナビゲーション、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、ノート型ＰＣ、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットなどがある。一例として、図１では、電子機器１（１１０）の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器１（１１０）は、実質的に無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信することのできる多様な物理的なコンピュータ装置のうちの１つを意味してよい。
【００１９】
通信方式が限定されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網）を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００２０】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する１つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ１５０は、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０にサービス（一例として、会話サービス、地図サービス、翻訳サービス、金融サービス、決済サービス、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービス、コンテンツ提供サービスなど）を提供するシステムであってよい。
【００２１】
図２は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器１１０、１２０、１３０、１４０のそれぞれやサーバ１５０、１６０のそれぞれは、図２に示したコンピュータ装置２００によって実現されてよい。
【００２２】
このようなコンピュータ装置２００は、図２に示すように、メモリ２１０、プロセッサ２２０、通信インタフェース２３０、および入力／出力インタフェース２４０を含んでよい。メモリ２１０は、コンピュータ読み取り可能な記憶媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブのような非一時的な大容量記憶装置を含んでよい。ここで、ＲＯＭやディスクドライブのような非一時的な大容量記憶装置は、メモリ２１０とは区分される別の非一時的な記憶装置としてコンピュータ装置２００に含まれてもよい。また、メモリ２１０には、オペレーティングシステムと、少なくとも１つのプログラムコードが格納されてよい。このようなソフトウェア構成要素は、メモリ２１０とは別のコンピュータ読み取り可能な記憶媒体からメモリ２１０にロードされてよい。このような別のコンピュータ読み取り可能な記憶媒体は、フロッピー（登録商標）ドライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータ読み取り可能な記憶媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記憶媒体ではない通信インタフェース２３０を通じてメモリ２１０にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク１７０を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置２００のメモリ２１０にロードされてよい。
【００２３】
プロセッサ２２０は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１０または通信インタフェース２３０によって、プロセッサ２２０に提供されてよい。例えば、プロセッサ２２０は、メモリ２１０のような記憶装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【００２４】
通信モジュール２３０は、ネットワーク１７０を介してコンピュータ装置２００が他の装置（一例として、上述した記憶装置）と互いに通信するための機能を提供してよい。一例として、コンピュータ装置２００のプロセッサ２２０がメモリ２１０のような記憶装置に格納されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース２３０の制御にしたがってネットワーク１７０を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データファイルなどが、ネットワーク１７０を経てコンピュータ装置２００の通信インタフェース２３０を通じてコンピュータ装置２００に受信されてよい。通信インタフェース２３０を通じて受信された信号や命令、データなどは、プロセッサ２２０やメモリ２１０に伝達されてよく、ファイルなどは、コンピュータ装置２００がさらに含むことのできる記憶媒体（上述した非一時的な記憶装置）に格納されてよい。
【００２５】
入力／出力インタフェース２４０は、入力／出力装置２５０とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイやスピーカのような装置を含んでよい。他の例として、入力／出力インタフェース２４０は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。入力／出力装置２５０は、コンピュータ装置２００と１つの装置で構成されてもよい。
【００２６】
また、他の実施形態において、コンピュータ装置２００は、図２の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置２００は、上述した入力／出力装置２５０のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
【００２７】
図３は、本発明の一実施形態における、クエリ処理システムの例を示した図である。本実施形態に係るクエリ処理システム３００は、会話管理者３１０、会話システム３２０、クエリ意図分類器３３０、および応答生成器３４０を備えてよい。ここで、会話管理者３１０、会話システム３２０、クエリ意図分類器３３０、および応答生成器３４０は、１つの物理的な装置で実現されても、２つ以上の物理的な装置に分散されて実現されてもよい。例えば、コンピュータ装置２００で実現されるユーザデバイス３５０として人工知能スピーカやスマートフォンに会話管理者３１０と応答生成器３４０が実現され、人工知能スピーカまたはスマートフォンとネットワーク１７０を介して通信するサーバ１５０に会話システム３２０およびクエリ意図分類器３３０が実現されてよい。他の例として、人工知能スピーカやスマートフォンに会話管理者３１０が実現され、会話システム３２０、クエリ意図分類器３３０、および応答生成器３４０はサーバ１５０に実現されてもよい。この場合、会話管理者３１０は、ユーザデバイス３５０を制御し、サーバ１５０に実現された会話システム３２０、クエリ意図分類器３３０、および応答生成器３４０それぞれとネットワークを介して通信してよい。物理的には、ユーザデバイス３５０とサーバ１５０との間に通信がなされてよい。
【００２８】
会話管理者３１０は、ユーザデバイス３５０とクエリ処理システム３００の他のモジュール（会話システム３２０、クエリ意図分類器３３０、および応答生成器３４０）との間に位置して入力／出力プロトコルを管理してよく、コンテキスト（ｃｏｎｔｅｘｔ）を管理してよい。ここで、コンテキストは、ユーザデバイス３５０の状態に関する情報と会話ヒストリに関する情報などを含むメタ情報を含んでよい。このような会話管理者３１０は、ユーザデバイス３５０から伝達されるクエリ（ｑｕｅｒｙ）を受信してよい。ここで、会話管理者３１０に伝達されるクエリは、ユーザデバイス３５０に備えられたマイクに入力されたユーザの発話に基づく音信号を含んでよい。一例として、会話管理者３１０がユーザデバイス３５０に実現される場合、会話管理者３１０は、ユーザデバイス３５０のマイクを管理するモジュールからマイクに入力された音信号を内部的に受信してよい。会話管理者３１０がユーザデバイス３５０とは異なる物理的な装置に実現される場合、会話管理者３１０は、ユーザデバイス３５０からネットワーク１７０を介して音信号を受信してよい。
【００２９】
音信号に対する音声認識は、会話管理者３１０または会話システム３２０のうちのいずれか１つで行われてよい。以下では、音声認識によって認識された文章や単語も「クエリ」として説明する。会話管理者３１０は、受信したクエリと管理中のコンテキストのうちの少なくとも一部（一例として、デバイスの現状に関する情報と、最近の一定期間の会話ヒストリに関する情報）を会話システム３２０に伝達してよい。会話管理者３１０と会話システム３２０が互いに異なる物理的な装置に実現される場合、クエリとコンテキストは、互いに異なる物理的な装置同士のネットワーク１７０通信を介して伝達されてよい。
【００３０】
会話システム３２０は、受信したクエリに対する自然言語理解（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）およびコンテキスト基盤の会話状態管理に基づいてユーザの意図を決定してよい。ここで、「意図（ｉｎｔｅｎｔ）」とは、クエリから分析されたユーザの意図を意味してよく、１つの意図は１つの応答機能にマッピングされてよい。また、スロット（ｓｌｏｔ）とは、クエリから意図とともに分析された情報であって、意図に対するターゲットのような情報を含んでよい。例えば、クエリ「午前７時にアラームをセットして」において、意図は「ｓｅｔ＿ａｌａｒｍ」のようにアラームの設定を求めるユーザの要求行為を含んでよく、スロットは｛ｔｉｍｅ：午前７時｝のように意図に対するターゲットを含んでよい。他の例として、クエリ「歌手Ａの歌Ｂをかけて」において、意図は「ｐｌａｙ＿ｍｕｓｉｃ」のように音楽の再生を求めるユーザの要求行為を含んでよく、スロットは｛ａｒｔｉｓｔ：歌手Ａ｝、｛ｔｒａｃｋ＿ｎａｍｅ：歌Ｂ｝のように意図に対するターゲットを含んでよい。会話システム３２０は、分析された意図とスロットを会話管理者３１０に伝達してよい。ここで、スロットは、付加的な情報であり、クエリからスロットが得られないこともある。例えば、クエリ「音楽をかけて」からは、ユーザの意図だけが分析され、ターゲットに関する情報は含まれない。
【００３１】
なお、上述したように、意図が不明確なクエリが存在することがある。このような意図が不明確なクエリの場合、会話システム３２０では意図を決定することができない。このような場合に備え、クエリ意図分類器３３０が活用されてよい。
【００３２】
クエリ意図分類器３３０は、会話システム３２０が応答することのできないクエリである、意図が不明確なクエリに対し、統計的、ニューラルネット基盤モデルを利用して意図を予測してよい。言い換えれば、会話システム３２０で自然言語理解によってユーザの意図を分析することができなかった、意図が不明確なクエリに対しては、クエリ意図分類器３３０において、ここ最近の会話状態、活性化されているデバイスの状態、およびトークン化された（ｔｏｋｅｎｉｚｅｄ）入力文章に基づく意図分類によって意図を予測してよい。このようなクエリ意図分類器３３０の意図予測については、以下でさらに詳しく説明する。クエリ意図分類器３３０は、予測された意図とスロットを会話管理者３１０に伝達してよい。
【００３３】
この場合、会話管理者３１０は、一般的なクエリだけでなく、意図が不明確なクエリの意図および／またはスロットも取得するようになり、取得した意図および／またはスロットを応答生成器３４０に伝達してクエリに対する応答を生成してよい。
【００３４】
応答生成器３４０は、会話システム３２０および／またはクエリ意図分類器３３０で決定および／または予測された意図および／またはスロットを会話管理者３１０から受信してマッチング機能を実行してよく、クエリに対する応答を生成して会話管理者３１０に伝達してよい。この場合、会話管理者３１０は、伝達された応答をユーザデバイス３５０に伝達してよい。応答生成器３４０によるマッチング機能の実行は、マッチング機能が実行されるようにするための命令を提供することを含んでよい。
【００３５】
このとき、応答生成器３４０は、会話システム３２０が決定した意図に対して対応機能を直ぐに実行してよい。一例として、クエリ「音楽をかけて」に対し、「音楽を再生します」という応答とともに音楽再生機能が直ぐに実行されてよい。この反面、応答生成器３４０は、クエリ意図分類器３３０が予測した意図に対して対応機能を直ぐに実行してもよいが、ガイド応答または確証（ｃｎｆｉｒｍａｔｉｏｎ）応答を生成して予測された意図が適切であるかの確証をユーザから得てもよい。ここで、ガイド応答とは、ユーザの予測された意図にしたがってユーザが実行させようとする機能を特定し、該当の機能の使用方法に関するガイドを提供するための応答を意味してよい。また、確証応答とは、ユーザの予測された意図にしたがってユーザが実行させようとする機能を特定し、特定された機能を実行するか否かの確証をユーザから得るための応答を意味してよい。例えば、会話システム３２０で意図を決定することのできなかった、意図が不明確なクエリに対し、クエリ意図分類器３３０が「ｐｌａｙ＿ｍｕｓｉｃ」という意図を予測した場合、応答生成器３４０は音楽再生機能を直ぐに実行させる前に、「音楽の再生ですね？」のようにユーザから確証を得るための応答や、「音楽を聞きたいときは「音楽をかけて」と言ってください」のように機能の使用方法に関するガイドをユーザに提供するためのガイド応答を生成して伝達してよい。
【００３６】
このように、従来の会話システムにおいて、意図が不明確なクエリに対してユーザに発話を再要求するのではなく、ディープラーニング基盤の確率モデルを活用することによって統計的に最もそうであると思われる（公算（ｌｉｋｅｌｉｈｏｏｄ）が高い）意図を予測し、予測された意図に関するガイドや確証を得るための応答を提供することにより、意図が不明確なクエリを処理することが可能となる。
【００３７】
図４は、本発明の一実施形態における、意図予測過程の例を説明するための図である。図３を参照しながら説明したクエリ意図分類器３３０は、図４に示すように、会話状態エンコーダ４１０、デバイス状態エンコーダ４２０、文章エンコーダ４３０、および意図分類器４４０を含んでよい。実施形態によると、クエリ意図分類器３３０は、意図分類器４４０を含み、会話状態エンコーダ４１０、デバイス状態エンコーダ４２０、および文章エンコーダ４３０のうちの少なくとも１つを含む形態で実現されてもよい。
【００３８】
会話状態エンコーダ４１０は、会話管理者３１０から伝達されたコンテキストに含まれる会話ヒストリを分析し、ここ最近の会話に対する状態変化シーケンスを含む会話フロー表現（Ｄｉａｌｏｇ  Ｆｌｏｗ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）を生成してよい。一例として、自然言語処理（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ：ＮＬＰ）に主に使用される人工神経網構造であるＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ）が、会話ヒストリの個々の会話それぞれの状態を決定するために活用されてよい。より具体的な例として、会話状態エンコーダ４１０は、入力された会話の状態を出力するために学習されたＲＮＮにここ最近の会話ヒストリを入力することで、ここ最近の会話の状態変化（ｔｒａｎｓｉｔｉｏｎ）シーケンスを含む会話フロー表現を取得してよい。発明の理解を助けるためにＲＮＮの活用例を説明しているが、他のニューラルネット（ｎｅｕｒａｌｎｅｔ）基盤の分類モデルが活用されてもよいことは、通常の技術者であれば容易に理解することができるであろう。
【００３９】
デバイス状態エンコーダ４２０は、会話管理者３１０から伝達されたコンテキストに含まれるデバイスの複数の項目別の状態に関する情報を利用し、状態ベクトルを含むデバイス状態表現（Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）を生成してよい。このようなデバイス状態表現も、任意のニューラルネット基盤の分類モデルに基づいて取得されてよい。例えば、デバイス状態エンコーダ４２０のためのニューラルネット基盤の分類モデルは、デバイスの特定項目の状態に関する情報に基づき、該当の項目に対して予め設定された状態のうちの１つを出力するように学習されてよい。このとき、多数の項目別の状態に対して出力された状態が連結されて１つの状態ベクトルが構成されてよい。
【００４０】
文章エンコーダ４３０は、任意のニューラルネット基盤の分類モデル（一例として、双方向ＲＮＮ（Ｂｉｄｉｒｅｃｔｉｏｎａｌ  ＲＮＮ））にクエリを入力し、トークン化された（ｔｏｋｅｎｉｚｅｄ）入力文章を含む文章表現（Ｓｅｎｔｅｎｃｅ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）を生成してよい。例えば、文章エンコーダ４３０のためのニューラルネット基盤の分類モデルは、入力されたクエリに含まれる入力文章をトークン化し、トークン化されたテキストのシーケンスを出力するように学習されてよい。
【００４１】
このとき、意図分類器４４０は、会話状態エンコーダ４１０、デバイス状態エンコーダ４２０、および文章エンコーダ４３０が生成した会話フロー表現、デバイス状態表現、および文章表現を連結して（ｃｏｎｃａｔｅｎａｔｅ）全体表現を生成してよい。このとき、意図分類器４４０は、連結する全体表現に対応する意図をディープラーニング基盤の確率モデルを利用して統計的確率に基づいて決定して出力するように実現されてよい。
【００４２】
言い換えれば、クエリ意図分類器３３０は、ここ最近の会話の流れと、デバイスの現状と、クエリそれぞれから得られる表現とを結合し、結合する表現に対応する意図を予測するためのディープラーニング基盤の確率モデルを活用してよく、このようなディープラーニング基盤の確率モデルにより、クエリ自体からは意図を分析することができない、意図が不明確なクエリに対応する意図を統計的に予測してよい。
【００４３】
なお、会話システム３２０では、意図が不明確なクエリに対し、自然言語理解によって意図の決定は不可能であったが、スロットの抽出が可能な場合は存在する。
【００４４】
図５は、本発明の一実施形態における、意図が不明確なクエリを処理する例を示した図である。図５では、「歌手Ａの歌をかけて」というユーザ発話に対し、音声認識によってクエリ「歌手Ａのうあをけて」が認識された状況の例を示している。会話システム３２０は、自然言語理解により、クエリからスロット｛ａｒｔｉｓｔ：歌手Ａ｝は認識できたものの、その意図は認識することができず、これによってクエリ意図分類器３３０が作動することにより、ディープラーニング基盤の確率モデルに基づき、クエリだけではなく、会話ヒストリやデバイス状態などを分析することで意図「ｉｎｔｅｎｔ：ｐｌａｙ＿ｍｕｓｉｃ」を予測してよい。この場合、応答生成器３４０は、会話管理者３１０を経て会話システム３２０とクエリ意図分類器３３０から受信した、予測された意図「ｉｎｔｅｎｔ：ｐｌａｙ＿ｍｕｓｉｃ」とスロット｛ａｒｔｉｓｔ：歌手Ａ｝を利用して確証応答「歌手Ａの歌をかけましょうか？」を生成して提供してよい。言い換えれば、クエリ「歌手Ａのうあをけて」に対し、ユーザにもう一度発話を要求して最初から発話を受信しようとするのではなく、認識されたスロット｛ａｒｔｉｓｔ：歌手Ａ｝に対して予測された意図「ｉｎｔｅｎｔ：ｐｌａｙ＿ｍｕｓｉｃ」をユーザに確証することにより、ユーザとの適切な会話を持続させることが可能となる。
【００４５】
他の例として、「電気を消して」というユーザ発話に対する音声認識によってクエリ「でき消して」が認識された状況において、会話システム３２０では、自然言語理解によってクエリから意図を認識できなかった場合が考えられる。このとき、クエリ意図分類器３３０は、ディープラーニング基盤の確率モデルに基づき、クエリ「でき消して」だけでなく、会話ヒストリやデバイス状態などを分析することで意図「ｉｎｔｅｎｔ：ｔｕｒｎ＿ｏｆｆ」を予測してよい。この場合、応答生成器３４０は、会話管理者３１０を経てクエリ意図分類器３３０から受信した、予測された意図「ｉｎｔｅｎｔ：ｔｕｒｎ＿ｏｆｆ」を利用して認証応答「電気を消しましょうか？」を生成して提供してよい。
【００４６】
図６は、本発明の一実施形態における、クエリ処理方法の例を示したフローチャートである。本実施形態に係るクエリ処理方法は、図２を参照しながら説明したコンピュータ装置２００によって実行されてよい。例えば、コンピュータ装置２００のプロセッサ２２０は、メモリ２１０が含むオペレーティングシステムのコードと、少なくとも１つのプログラムのコードとによる制御命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ２２０は、コンピュータ装置２００に格納されたコードが提供する制御命令にしたがってコンピュータ装置２００が図６の方法に含まれる段階６１０〜６６０を実行するようにコンピュータ装置２００を制御してよい。
【００４７】
段階６１０で、コンピュータ装置２００は、ユーザの発話に基づいたクエリおよびユーザと関連のあるコンテキストの入力を受けてよい。ここで、クエリは、ユーザの発話が入力されたユーザデバイスが伝達するクエリであってよく、コンテキストは、ユーザと関連のある会話ヒストリのうちの少なくとも一部、およびユーザの発話が入力されたユーザのデバイスの複数の項目別の状態に関する情報を含んでよい。一例として、クエリおよびコンテキストは、図３で説明した会話管理者３１０から伝達されるクエリおよびコンテキストに対応してよい。上述したように、会話管理者３１０は、ユーザデバイス３５０から提供されるクエリと会話管理者３１０が管理するコンテキストを提供してよい。一実施形態によると、コンピュータ装置２００は、会話システム３２０とクエリ意図分類器３３０が実現された物理的な装置であってよい。
【００４８】
段階６２０で、コンピュータ装置２００は、クエリに対する自然言語理解に基づいてクエリに対するユーザの意図を分析してよい。一実施形態によると、コンピュータ装置２００は、コンテキストに基づいた会話状態管理にさらに基づいてユーザの意図を分析してもよい。上述では、会話システム３２０でクエリとコンテキストの両方を活用してユーザの意図を分析および決定する実施形態が説明された。
【００４９】
段階６３０で、コンピュータ装置２００は、ユーザの意図が決定されたか否かを確認してよい。段階６２０の分析によってユーザの意図が決定された場合、コンピュータ装置２００は段階６４０を実行してよく、段階６２０の分析によってユーザの意図が決定されなかった場合、コンピュータ装置２００は段階６５０を実行してよい。
【００５０】
段階６４０で、コンピュータ装置２００は、決定された意図に基づいて応答を提供してよい。クエリに対する自然言語理解、あるいはコンテキストに基づいた会話状態管理にさらに基づいてユーザの意図が決定されると、コンピュータ装置２００は、決定された意図にしたがって応答を提供してよい。この場合、コンピュータ装置２００は、図３を参照しながら説明した応答生成器３４０をさらに備えてよい。コンピュータ装置２００が会話システム３２０とクエリ意図分類器３３０だけを備えるように実現された場合、コンピュータ装置２００は、決定された意図または以下で説明する予測された意図だけを提供するように実現されてよい。
【００５１】
段階６５０で、コンピュータ装置２００は、クエリおよびコンテキストを入力によって有するディープラーニング基盤の確率モデルを利用してユーザの意図を予測してよい。例えば、コンピュータ装置２００は、コンテキストに含まれる会話ヒストリから得られる会話の状態変化シーケンスを含む会話フロー表現、コンテキストにさらに含まれるデバイス状態に関する状態ベクトルを含むデバイス状態表現、およびクエリに対するトークン化された入力文章を含む文章表現のうちの２つ以上を連結させて意図予測のための全体表現を生成し、ディープラーニング基盤の確率モデルに基づき、全体表現に対応して統計的確率によって決定される意図をユーザの意図として予測してよい。一実施形態によると、会話フロー表現は、入力された会話の状態を決定するように学習されたニューラルネット基盤分類モデルによって得られる会話ヒストリの状態変化シーケンスを含んでよく、デバイス状態表現は、特定項目の状態に関する情報に基づき、該当の項目に対して予め設定された状態のうちの１つを出力するように学習されたニューラルネット基盤分類モデルを利用して得られるデバイスの状態ベクトルを含んでよい。また、文章表現は、入力文章をトークン化し、トークン化されたテキストのシーケンスを出力するように学習されたニューラルネット基盤分類モデルを利用して得られる、クエリに対するトークン化された（ｔｏｋｅｎｉｚｅｄ）入力文章を含んでよい。
【００５２】
段階６６０で、コンピュータ装置２００は、予測された意図に基づいて応答を提供してよい。例えば、コンピュータ装置２００は、予測された意図に基づいて機能を特定し、特定された機能を実行するか否かの確証をユーザから得るための確証応答、または特定された機能の使用方法に関するガイドを提供するためのガイド応答を生成して伝達してよい。このとき、一実施形態によると、コンピュータ装置２００は、クエリに対する自然言語理解によって得られる部分分析結果にさらに基づいて応答を生成してよい。一例として、部分分析結果は、予測された意図に対するターゲットに関する情報（一例として、上述したスロット）を含んでよい。
【００５３】
図７は、本発明の一実施形態における、クエリ意図分類器の代表モデルの例を示した図である。図７は、図３を参照しながら説明したクエリ意図分類器３３０として活用可能な代表モデルの例を示している。図７は、図４で説明した会話状態エンコーダ４１０、デバイス状態エンコーダ４２０、文章エンコーダ４３０、および意図分類器４４０を示している。このとき、図７において、会話状態エンコーダ４１０は、ニューラルネット基盤の分類モデルとしてＲＮＮを使用し、文章エンコーダ４３０は、ニューラルネット基盤の分類モデルとして双方向ＲＮＮ（Ｂｉｄｉｒｅｃｔｉｏｎａｌ  ＲＮＮ）を使用する例を示している。また、デバイス状態エンコーダ４２０は、ニューラルネット基盤の分類モデルの代わりに、状態に対する値の平均値を利用する例を示している。得られた表現（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ）は意図分類器４４０で連結されてよく、連結する全体表現によるディープラーニング基盤の確率モデルを利用した統計的確率に基づき、意図が不明確なクエリに対してもユーザの意図を予測することが可能となる。
【００５４】
このように、本発明の実施形態によると、意図が不明確なクエリに対してディープラーニング基盤の確率モデルを利用することで、質問者の意図を予測することが可能となる。また、意図が不明確なクエリに対して予測された意図および自然言語理解（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ：ＮＬＵ）の部分分析結果を利用することで、ガイドおよび確証（ｃｏｎｆｉｒｍａｔｉｏｎ）などの応答を提供することが可能となる。
【００５５】
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）およびＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【００５６】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記憶媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータ読み取り可能な記憶媒体に格納されてよい。
【００５７】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に格納されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して格納するものであっても、実行またはダウンロードのために一時格納するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記憶手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭおよびＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどを含み、プログラム命令が格納されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記憶媒体または格納媒体が挙げられる。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを使用してコンピュータによって実行されることのできる高級言語コードが含まれる。
【００５８】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００５９】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００６０】
３００：クエリ処理装置
３５０：ユーザデバイス
３１０：会話管理子
３２０：会話システム
３３０：クエリ意図分類器
３４０：応答生成器
【図１】
2020140210.tif 000003
【図２】
2020140210.tif 000004
【図３】
2020140210.tif 000005
【図４】
2020140210.tif 000006
【図５】
2020140210.tif 000007
【図６】
2020140210.tif 000008
【図７】
2020140210.tif 000009