(57)【特許請求の範囲】
【請求項１】
検索コンポーネントを訓練するための訓練データを更新するためにユーザがクエリと該クエリに関連付けられたタスクとのマッピングを実施するのを支援するための注釈付けシステムであって、
以前に検索エンジンに提示されたクエリを表す複数のクエリエントリを含むクエリログと、
クエリに対する結果として返されるべき複数のタスクを含むタスクリストと、
前記クエリログ中の各クエリエントリによって表される各クエリと、前記タスクリスト中の前記複数のタスクのうち該クエリに関連付けられたタスクとのマッピングを示す訓練データを含む、訓練データストアと、
前記訓練データに応じて、前記クエリログ中の前記複数のクエリエントリのそれぞれについて、前記タスクリスト中の前記複数のタスクから各クエリエントリに対して最良推測タスクとして提案すべきタスクを決定する、機械学習コンポーネントと、
前記クエリログ中の前記複数のクエリエントリを表示するグラフィカルユーザインターフェース生成コンポーネントであって、前記複数のクエリエントリのそれぞれを、各クエリエントリに対して決定された最良推測タスクおよび該最良推測タスクの正確性を示す最良推測確率と対応付けて表示する、グラフィカルユーザインターフェース生成コンポーネントと
を備え、
前記グラフィカルユーザインターフェース生成コンポーネントは、前記ユーザから、表示された前記複数のクエリエントリのうち特定のクエリエントリによって表されるクエリを、表示された前記最良推測タスクのうち前記特定のクエリエントリに対応付けられた特定の最良推測タスクにマッピングすることを要求する第１タイプの入力を受け取るようにさらに構成され、
前記機械学習コンポーネントは、前記グラフィカルユーザインターフェース生成コンポーネントを介して前記第１タイプの入力を受け取ると、前記特定のクエリエントリによって表されるクエリが前記特定の最良推測タスクにマッピングされるように前記訓練データを更新し、前記検索コンポーネントの訓練に使用するために、該更新された訓練データを前記訓練データストアに記憶することを特徴とする注釈付けシステム。
【請求項２】
前記グラフィカルユーザインターフェース生成コンポーネントはさらに、前記ユーザから、前記特定のクエリエントリに対する次の最良推測タスクのリストの表示を要求する第２タイプの入力を受け取るように構成されたことを特徴とする請求項１に記載の注釈付けシステム。
【請求項３】
前記機械学習コンポーネントはさらに、前記グラフィカルユーザインターフェース生成コンポーネントを介して前記第２タイプの入力を受け取ると、前記訓練データに応じて前記タスクリスト中の前記複数のタスクから前記特定のクエリエントリに対する１つまたは複数のタスクを決定するように構成され、
前記グラフィカルユーザインターフェース生成コンポーネントはさらに、前記決定された１つまたは複数のタスクを次の最良推測タスクのリストとして表示するように構成されることを特徴とする請求項２に記載の注釈付けシステム。
【請求項４】
前記クエリログ中の前記複数のクエリエントリのそれぞれはクエリバンドルであり、各クエリバンドルは、共にバンドルされた複数のクエリを表すことを特徴とする請求項１に記載の注釈付けシステム。
【請求項５】
前記第１タイプの入力は、前記複数のクエリバンドルうち特定のクエリバンドルによって表される複数のクエリを、表示された前記最良推測タスクのうち前記特定のクエリバンドルに対応付けられた特定の最良推測タスクにマッピングすることを要求し、前記第１タイプの入力が前記グラフィカルユーザインターフェース生成コンポーネントを介して受け取られると、前記機械学習コンポーネントは、前記特定のクエリバンドルによって表される前記複数のクエリのそれぞれが前記特定の最良推測タスクにマッピングされるように前記訓練データを更新することを特徴とする請求項４に記載の注釈付けシステム。
【請求項６】
各クエリバンドルに対する最良推測タスクとして提案すべきタスクは、各クエリバンドルによって表される前記複数のクエリのそれぞれに対する最良推測タスクの加重平均によって決定されることを特徴とする請求項４に記載の注釈付けシステム。
【請求項７】
前記グラフィカルユーザインターフェース生成コンポーネントはさらに、前記ユーザから、前記複数のクエリバンドルのうち特定のクエリバンドルによって表される複数のクエリのリストの表示を要求する第２タイプの入力を受け取るように構成され、前記第２タイプの入力を受け取るのに応答して、前記特定のクエリバンドルによって表される前記複数のクエリのリストを表示するように構成されたことを特徴とする請求項４に記載の注釈付けシステム。
【請求項８】
前記グラフィカルユーザインターフェース生成コンポーネントはさらに、前記タスクリストを表示するように構成されたことを特徴とする請求項１に記載の注釈付けシステム。
【請求項９】
前記グラフィカルユーザインターフェース生成コンポーネントはさらに、前記ユーザから、前記特定のクエリエントリを、表示された前記最良推測タスクのうち前記特定のクエリエントリに対応付けられた前記特定の最良推測タスクとは異なるタスクであって、表示された前記タスクリストから選択されたタスクにマッピングしたいことを示す第２タイプの入力を受け取るように構成され、前記第２タイプの入力が前記グラフィカルユーザインターフェース生成コンポーネントを介して受け取られると、前記機械学習コンポーネントは、前記特定のクエリエントリが前記選択されたタスクにマッピングされるように前記訓練データを更新するように構成されたことを特徴とする請求項８に記載の注釈付けシステム。
【請求項１０】
前記特定のクエリエントリが前記特定の最良推測タスクにマッピングされるように前記訓練データを更新すると、前記機械学習コンポーネントは、該更新された訓練データに応じて、前記複数のクエリエントリのうちの残りの各クエリエントリに対して各々決定された前記最良推測タスクを自動的に更新するように構成されたことを特徴とする請求項１に記載の注釈付けシステム。
【請求項１１】
前記機械学習コンポーネントはナイーブベイズ分類器であることを特徴とする請求項１０に記載の注釈付けシステム。
【請求項１２】
前記機械学習コンポーネントは、前記タスクリスト中の各タスクについて、前記訓練データに応じて、前記クエリログ中の前記複数のクエリエントリのうち各タスクに対して提案すべきクエリエントリのリストを各タスクに一致する可能性に従って決定するように構成され、前記グラフィカルユーザインターフェース生成コンポーネントは、決定されたリスト内のクエリエントリが各タスクに一致する可能性の高い順に表示されるように、各タスクに対して決定されたリストを表示するように構成されることを特徴とする請求項１に記載の注釈付けシステム。
【請求項１３】
検索コンポーネントを訓練するための更新された訓練データを得るためにユーザがクエリと該クエリに関連付けられたタスクとのマッピングを実施するのを支援するために、機械学習コンポーネントを有するコンピュータによって実行される方法であって、
以前に検索エンジンに提示されたクエリを表す複数のクエリエントリを含むクエリログを得るステップと、
クエリに対する結果として返されるべき複数のタスクを含むタスクリストを得るステップと、
前記クエリログ中の前記複数のクエリエントリのそれぞれについて、前記機械学習コンポーネントを使用して訓練データに応じて、前記タスクリスト内の前記複数のタスクから各クエリエントリに対する最良推測タスクとして提案すべきタスクを決定するステップであって、前記訓練データは、前記コンピュータのメモリに記憶されており、および前記クエリログ中の各クエリエントリによって表される各クエリと、前記タスクリスト中の前記複数のタスクのうち該クエリに関連付けられたタスクとのマッピングを示す、決定するステップと、
前記クエリログ中の前記複数のクエリエントリを表示するステップであって、前記複数のクエリエントリはそれぞれ、各クエリエントリに対して決定された最良推測タスクおよび該最良推測タスクの正確性を示す最良推測確率に対応付けて表示されるステップと、
前記ユーザから、表示された前記複数のクエリエントリのうち特定のクエリエントリによって表されるクエリを、表示された前記最良推測タスクのうち前記特定のクエリエントリに対応付けられた特定の最良推測タスクにマッピングすることを要求することを示す第１タイプの入力を受け取るステップと、
前記第１タイプの入力を受け取ると、前記機械学習コンポーネントを使用して、前記特定のクエリエントリによって表されるクエリが前記特定の最良推測タスクにマッピングされるように前記訓練データを更新するステップと、
該更新された訓練データを前記検索コンポーネントの訓練に使用するために前記メモリに格納するステップと
を含むことを特徴とする方法。
【請求項１４】
前記ユーザから、前記特定のクエリエントリに対する次の最良推測タスクのリストの表示を要求することを示す第２タイプの入力を受け取るステップと、
前記機械学習コンポーネントを使用して前記タスクリスト中の前記複数のタスクから前記訓練データに応じて決定された前記特定のクエリエントリに対する１つまたは複数のタスクを含む、次の最良推測タスクのリストを表示するステップと
をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記クエリログ中の前記複数のクエリエントリのそれぞれはクエリバンドルであり、各クエリバンドルは、前記クエリログ中の共にバンドルされた複数のクエリを表すことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記第１タイプの入力は、前記複数のクエリバンドルうち特定のクエリバンドルによって表される複数のクエリを、表示された前記最良推測タスクのうち前記特定のクエリバンドルに対応付けられた特定の最良推測タスクにマッピングすることを要求することを示し、該第１タイプの入力を受け取ると、
前記機械学習コンポーネントを使用して、前記特定のクエリバンドルによって表される前記複数のクエリのそれぞれが前記特定の最良推測タスクにマッピングされるように前記訓練データを更新するステップをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記ユーザから、前記複数のクエリバンドルうち特定のクエリバンドルによって表される複数のクエリのリストの表示を要求することを示す第２タイプの入力を受け取るステップと、
前記第２タイプの入力を受け取るのに応答して、前記特定のクエリバンドルによって表される前記複数のクエリのリストを表示するステップと
をさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記タスクリストを表示するステップをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１９】
前記特定のクエリエントリを、表示された前記最良推測タスクのうち前記特定のクエリエントリに対応付けられた前記特定の最良推測タスクとは異なるタスクであって、前記表示されたタスクリストから選択されたタスクにマッピングしたいことを示す第２タイプの入力を前記ユーザから受け取るステップと、
前記第２タイプの入力を受け取ると、前記機械学習コンポーネントを使用して、前記特定のクエリエントリが前記選択されたタスクにマッピングされるように前記訓練データを更新するステップと
をさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記特定のクエリエントリが前記特定の最良推測タスクにマッピングされるように前記訓練データを更新すると、前記機械学習コンポーネントを使用して、該更新された訓練データに応じて、前記複数のクエリエントリのうちの残りの各クエリエントリに対して各々決定された前記最良推測タスクを、自動的に更新するステップをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項２１】
前記機械学習コンポーネントはナイーブベイズ分類器であることを特徴とする請求項２０に記載の方法。
【請求項２２】
前記タスクリスト中の各タスクについて、前記機械学習コンポーネントを使用して、前記訓練データに応じて前記クエリログ中の前記複数のクエリエントリのうち各タスクに対して提案すべきクエリエントリのリストを決定して表示するステップであって、該リスト内のクエリエントリは、各タスクに一致する可能性の高い順に表示されることを特徴とする請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインターフェースの機械学習コンポーネントを訓練することに関する。より詳細には、本発明は、クエリをタスクにマッピングすることによって訓練データを得ることに関する。
【背景技術】
【０００２】
自然ユーザインターフェース（ｎａｔｕｒａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）は、自然言語クエリを受け入れ、それに応答して、意図されたクエリ主題に対応する可能性の最も高い結果のリストを返す。結果は通常、クエリに答えるものと期待されるタスク、文書、ファイル、ｅメール、またはその他の項目（本明細書ではすべてタスクと総称する）を含む。クエリに対する結果を生み出すための有望な技術の１つは、機械学習技術である。機械学習アルゴリズムは、統計データを使用して、特定のクエリに対する所望の結果を予測する。機械学習アルゴリズムを使用すると、最初の訓練の後、ユーザからさらに受け取ったクエリの結果に基づいて、統計データを常にまたは頻繁に更新することができる。
【０００３】
任意の機械学習アルゴリズムが意味のある結果をもたらすと予想される場合に、これを自然ユーザインターフェースでの使用に提供することができるようになる前には、このアルゴリズムを正確な注釈付きデータ（ａｎｎｏｔａｔｅｄ  ｄａｔａ）で「訓練」しなければならない。言い換えれば、アルゴリズムは、クエリ−タスクマッピング（ｑｕｅｒｙ−ｔｏ−ｔａｓｋ  ｍａｐｐｉｎｇ）の大きなリストからの統計を示す訓練データを必要とする。自然ユーザインターフェースおよび対応する機械学習アルゴリズムが顧客に対して展開されるときは、機械学習アルゴリズムをその展開前に正確な注釈付きデータで訓練することがより一層重要である。例えば、機械学習アルゴリズムの出力タイプの１つが「プリンタのインストール」や「プリンタのトラブルシューティング」などのタスクのリストである場合、機械学習アルゴリズムは、これらのタスクが所望の結果となるような自然言語クエリの例を表すデータを必要とする。
【０００４】
自然ユーザインターフェースの機械学習アルゴリズムの精度を高めるために、訓練データは、クエリ−タスクマッピングの例の非常に大きなリストを表すものでなければならない。従来、多くのクエリ−タスクマッピングは、検索エンジンにサブミットされた膨大な数の実際のクエリを含むクエリログを得ることによって生み出されてきた。例えば、クエリログは通常、約１万個またはそれ以上のクエリを含む。次いで、ユーザまたは作成者は、これらのクエリを１つずつ調べて、これらに手作業で注釈を付ける（これらを特定のタスクと関連付ける）。
【０００５】
クエリをタスクに注釈付けするための一般的な方法の１つは、各クエリをスプレッドシートデータベースの１列目に表し、これらに対応する意図されるタスクをスプレッドシートの２列目の同じ行に表すことである。したがってこのプロセスは、非常に労働集約的で時間がかかる。さらに、潜在的タスクの非常に大きなリストがあり、その中からタスクを選択する場合、どのタスクを特定のクエリで注釈付けするかを選択するのは、より一層厄介になる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、訓練データを得るためのより高速かつ正確なクエリ−タスクマッピングを促進するのに使用することのできるシステムおよび方法が、当技術分野における大きな改善になるであろう。
【課題を解決するための手段】
【０００７】
検索コンポーネントを訓練するための訓練データを得るためにユーザが多数のクエリをタスクにマッピングするのを、注釈付けシステムが支援する。注釈付けシステムは、以前に検索エンジンにサブミットされた多数のクエリを含むクエリログを備える。複数の可能なタスクを含むタスクリストが記憶される。機械学習コンポーネントが、クエリログデータおよびタスクリストデータを処理する。クエリログに対応する複数のクエリエントリのそれぞれにつき、機械学習コンポーネントは、訓練データに応じて、潜在的なクエリ−タスクマッピングのための最良推測タスクを提案する。グラフィカルユーザインターフェース生成コンポーネントが、クエリログ中の複数のクエリエントリのそれぞれを、それに対応する提案される最良推測タスクと関連付けるようにして表示するように構成される。
【発明を実施するための最良の形態】
【０００８】
本発明は、検索コンポーネントを訓練するための訓練データを得るためにユーザがクエリログからのクエリとタスクとのバルクマッピングを実施するのを支援するための、注釈付けシステムに関して述べる。本発明はまた、訓練データを獲得および／または更新するためにユーザが多数のクエリを対応タスクにマッピングするのを支援する方法、およびこれらの方法を組み入れたコンピュータ可読媒体も含む。
【０００９】
図１に、本発明を実施することのできる適したコンピューティングシステム環境の例１００を示す。コンピューティングシステム環境１００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどんな制限も意味しない。またコンピューティング環境１００は、この例示的な動作環境１００に示すコンポーネントのいずれか１つまたは組合せに関してどんな依存や要件を有するものとも解釈すべきではない。
【００１０】
本発明は、その他の多くの汎用または専用コンピューティングシステム環境または構成でも動作する。本発明で使用するのに適するであろう周知のコンピューティングシステム、環境、および／または構成の例には、限定しないがパーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００１１】
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで述べることができる。一般にプログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含めたローカルとリモートの両方のコンピュータ記憶媒体に位置することができる。
【００１２】
図１を参照すると、本発明を実施するための例示的なシステムは、コンピュータ１１０の形の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、限定しないが処理ユニット１２０と、システムメモリ１３０と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含めることができる。システムバス１２１は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（メザニンバスとも呼ばれる）が含まれる。
【００１３】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ１１０からアクセスできる任意の利用可能な媒体とすることができ、揮発性と不揮発性の媒体、取外し可能と取外し不可能の媒体の両方が含まれる。限定ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体が含まれる。コンピュータ記憶媒体には、限定しないがＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータ１１０からアクセスできるその他の任意の媒体が含まれる。通信媒体は通常、搬送波や他のトランスポート機構などの変調されたデータ信号中に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを組み入れたものであり、任意の情報送達媒体が含まれる。「変調されたデータ信号」という語は、情報が信号中に符号化される形で１つまたは複数の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体と、音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体とが含まれる。以上の任意の組合せもコンピュータ可読媒体の範囲に含めるべきである。
【００１４】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。ＲＯＭ１３１には通常、起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）１３３が記憶されている。ＲＡＭ１３２は通常、処理ユニット１２０がすぐにアクセス可能な、かつ／または処理ユニット１２０が現在作用している、データおよび／またはプログラムモジュールを含む。限定ではなく例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、プログラムデータ１３７を示す。
【００１５】
コンピュータ１１０は、その他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが図１には、取外し不可能な不揮発性の磁気媒体に対して読み書きするハードディスクドライブ１４１と、取外し可能な不揮発性の磁気ディスク１５２に対して読み書きする磁気ディスクドライブ１５１と、ＣＤ  ＲＯＭや他の光媒体など取外し可能な不揮発性の光ディスク１５６に対して読み書きする光ディスクドライブ１５５を示す。この例示的な動作環境で使用できるその他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体には、限定しないが磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は通常、インターフェース１４０などの取外し不可能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取外し可能メモリインターフェースでシステムバス１２１に接続される。
【００１６】
以上に論じ図１に示した各ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータの記憶域をコンピュータ１１０に提供する。例えば図１には、ハードディスクドライブ１４１がオペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、プログラムデータ１４７を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、プログラムデータ１３７と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、プログラムデータ１４７が少なくとも異なるコピーであることを示すために、異なる番号を付けてある。
【００１７】
ユーザは、キーボード１６２、マイクロホン１６３、マウスやトラックボールやタッチパッド等のポインティングデバイス１６１などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（「ＵＳＢ」）など、他のインターフェースおよびバス構造で接続されてもよい。モニタ１９１または他のタイプの表示デバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは通常、スピーカ１９７やプリンタ１９６など他の周辺出力デバイスも備えることができ、これらは出力周辺インターフェース１９５を介して接続することができる。
【００１８】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、通常はコンピュータ１１０に関して上述した要素の多くまたはすべてを備える。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、インターネットでよくみられる。
【００１９】
ＬＡＮネットワーキング環境で使用されるときは、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用されるときは、コンピュータ１１０は通常、インターネットなどのＷＡＮ１７３を介した通信を確立するためのモデム１７２または他の手段を備える。モデム１７２は内蔵でも外付けでもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図１には、リモートアプリケーションプログラム１８５がリモートコンピュータ１８０上にあるものとして示す。図示のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立するための他の手段を使用することもできることは理解されるであろう。
【００２０】
図２に、図１に示したような処理環境で実施することのできる、本発明による注釈付けシステム２００を示す。注釈付けシステム２００は、検索コンポーネントを訓練するための訓練データを得るためにユーザがクエリとタスクのバルクマッピングを実施するのを支援する。システム２００は、以前に検索エンジンにサブミットされたクエリを表すデータを含むクエリログ２０５を備えているか、または他の実施形態ではこれを得る。通常、クエリログは、多数のクエリ、例えば１万個以上のクエリを表すデータを含むことになる。ただし、より小さいクエリログを使用してもよい。多数の可能なタスクを表すデータを含むタスクリスト２１０が備わる。訓練データ２２０を得てこれを常に更新するために、システム２００は、ユーザがクエリログ２０５中の各クエリをタスクリスト２１０中のタスクにマッピングするのを支援する。
【００２１】
機械学習コンポーネントまたは分類器２１５が、クエリログ２０５からクエリエントリを取り出し、タスクリスト２１０からタスクのリストを取り出す。本明細書の定義では、クエリエントリは、例えばクエリログからの個々のクエリとすることができる。あるいはクエリエントリは、クエリログ２０５中の共にバンドルされた複数のクエリを表すクエリバンドルとすることもできる。クエリバンドルは、生のクエリログのクエリログクラスタリングによって生み出される。クエリバンドルの例は、クエリ中の様々な単語の小さなスペルミスを含めた類似する一連のクエリである。個々のクエリを１つずつタスクにマッピングするのではなく、クエリバンドルをタスクにマッピングすることにより、時間が大幅に節約される。
【００２２】
クエリログに対応する複数のクエリエントリのそれぞれにつき、機械学習コンポーネントは、訓練データ２２０を使用して、潜在的なクエリ−タスクマッピングのための最良推測タスクを提案する。推測は、機械学習コンポーネントによって、以前にマッピングされたクエリからの統計情報に基づいて生み出される。最初は、訓練データ２２０中には統計的に重要なデータがほとんどないので、最良推測は、望まれるほど正確ではない。しかし、より多くのクエリがマッピングされるにつれて、推測の精度は向上する。後でより詳細に述べるが、ユーザまたは作成者は常に、システムからの推測をオーバーライドする選択肢を有する。
【００２３】
実質的に、作成者は、推測を受け入れるたびに、どのようにクエリをタスクにマッピングするかをシステムに「教える」。特定のクエリエントリをタスクにマッピングすることによって訓練データを更新すると、機械学習コンポーネント２１５は、更新された訓練データ２２０に応じて、残りのクエリエントリのそれぞれに対する最良推測タスクを自動的に更新するように構成されている。十分なデータに注釈が付けられると、これを使用して、自然ユーザインターフェースプラットフォームの検索コンポーネント中に展開するために機械学習アルゴリズムを訓練することができる。このようにしてその最良推測を継続的に更新することのできる機械学習コンポーネントまたは分類器のタイプの例は、ナイーブベイズ分類器（Ｎａｉｖｅ  Ｂａｙｅｓ  ｃｌａｓｓｉｆｉｅｒ）である。
【００２４】
システム２００には、機械学習コンポーネント２１５とユーザとの間を表示装置（モニタ１９１など）および入力デバイス（デバイス１６１、１６２など）を介してインターフェースするためのグラフィカルユーザインターフェース（ＧＵＩ）生成コンポーネント２２５が備わる。コンポーネント２２５は、クエリログ中の複数のクエリエントリのそれぞれを、それに対応する提案される最良推測タスクと関連付けるようにして表示するように構成されている。コンポーネント２２５はまた、マッピングプロセスを進めるための様々なタイプの入力をユーザから受け取るようにも構成されている。図３〜７に、例示的な一実施形態によりコンポーネント２２５によって生成されるＧＵＩを示す。
【００２５】
ここで図３を参照すると、本発明のいくつかの実施形態によりモニタ１９１上に表示することのできるＧＵＩ３００が示されている。ＧＵＩ３００は、タスクリスト３０２と、クエリエントリリスト（クエリバンドルリストとして図示する）３０４と、各クエリバンドル中のクエリの数を示す列３０６と、クエリの発生頻度を示す列３０８と、機械学習コンポーネント２１５によって生成された、各クエリエントリについての最良推測３１０と、提案される最良推測が正確である確率を示す列３１２とを含む。タスクリスト３０２は、クエリ−タスクマッピングのための最良推測タスクが作成者によって選択されない場合に、クエリエントリのマッピング先とすることのできるタスクのリストである。また、クエリエントリ３０４がクエリバンドルであるときは、各クエリバンドルについての提案される最良推測タスク３１０は、そのクエリバンドルで表される複数のクエリのそれぞれに対する最良推測の加重平均とすることができる。
【００２６】
次に図４を参照すると、ＧＵＩ生成コンポーネント２２５はさらに、ユーザが特定のクエリエントリをそれに対応する提案される最良推測タスクにマッピングしたいときに、ユーザから第１タイプの入力を受け取るように構成されている。図４に示す例では、ユーザは、クエリバンドル「パスワード」で表されるすべてのクエリを、機械学習コンポーネントによって生成された最良推測タスク「パスワードの変更」にマッピングする。このマッピングが続行されるよう命令するのに使用される第１タイプの入力は、例えば、カーソル３４０をこのクエリエントリ上に置いた状態で、マウスタイプのポインティングデバイスを右クリックすることとすることができる。線３５０は、このクエリエントリと、関連する統計および最良推測タスクとが選択または強調表示されているのを表している。ＧＵＩ３００を介して第１タイプの入力を受け取ると、機械学習コンポーネント２１５は、この特定のクエリエントリを提案される最良推測タスクにマッピングすることによって訓練データを更新する。先に論じたように、次いで、残りのクエリエントリについての最良推測タスクも、更新された訓練データに基づいて更新する。
【００２７】
次に図５を参照すると、ユーザが、クエリエントリを提案される最良推測タスクにマッピングするのではなく、統計的に決定された次の最良推測タスクのリストを検討したい場合は、適切な入力を提供することによってこれを達成することができる。例えば一実施形態では、提案される最良推測「パスワードの変更」タスクの上にカーソル３４０を置いた状態でマウスクリックすると、次の最良推測のリストを含むドロップダウンメニュー３６０が表示される。次いでユーザは、メニュー３６０中の所望のタスクをクリックすることによって、当該のクエリエントリを次の最良推測タスクのいずれかにマッピングすることができる。
【００２８】
次に図６を参照すると、望むならユーザは、クエリバンドルタイプのクエリエントリで表される個々のクエリを見ることができる。例えばいくつかの実施形態では、ＧＵＩ生成コンポーネント２２５は、ユーザが特定のクエリバンドルで表されるクエリのリストを含むドロップダウンメニュー３７０を見たいときに、ユーザから第２タイプの入力を受け取るように構成されている。この入力に応答して、ＧＵＩ生成コンポーネントはメニュー３７０を表示する。第２タイプの入力の例は、カーソルを「パスワード」クエリバンドルの上に置いた状態でのダブルクリックとすることができる。望むなら、メニュー３７０中にリストされた個々のクエリを、次いで１つずつタスクにマッピングすることができる。
【００２９】
次に図７を参照すると、提案される最良推測タスクがどれもクエリエントリへのマッピングに適さない場合は、ユーザは、適切な入力を提供することによって、クエリエントリをタスクリスト３０２からのタスクにマッピングすることができる。例として一実施形態では、適切な入力には、クエリエントリ（例えば線３８０で選択されているのが示されている「ｃｄ」）を選択してから、リスト３０２からのタスクをクリックすることが含まれる。
【００３０】
次に図８〜１２を参照すると、本発明の方法のいくつかの実施形態の様々なステップを示す流れ図４００、４５０、５００、５５０、６００が示されている。これらの流れ図は、図１〜７に関して上述した本発明のいくつかの態様を要約したものである。図８の流れ図４００に示すように、検索コンポーネントを訓練するための訓練データを得るためにユーザがクエリとタスクのバルクマッピングを実施するのを支援する方法は、以前に検索エンジンにサブミットされたクエリのクエリログを得ることを含む。これをブロック４０２に示す。ブロック４０４に示すように、この方法はまた、可能なタスクのタスクリストを得ることも含む。ブロック４０６で、図示の方法は、クエリログに対応する複数のクエリエントリのそれぞれにつき、潜在的なクエリ−タスクマッピングのための最良推測タスクを決定することを含む。最良推測タスクを、機械学習コンポーネントを使用して訓練データに応じて決定する。ブロック４０８で、図示の方法は、クエリログ中の複数のクエリエントリのそれぞれを、それに対応する提案される最良推測タスクと関連付けるようにして表示することを含む。
【００３１】
次に図９を参照すると、この方法はまた、ブロック４５２に示すように、ユーザが特定のクエリエントリをそれに対応する提案される最良推測タスクにマッピングしたいときに、ユーザから第１タイプの入力を受け取るステップと、ブロック４５４に示すように、機械学習コンポーネントを使用して訓練データを更新するステップも含むことができる。
【００３２】
次に図１０を参照すると、いくつかの実施形態では、本発明の方法はさらにブロック５０２に示すステップも含み、このステップでは、ユーザが潜在的なマッピングのために特定のクエリエントリに対する次の最良推測タスクのリストを見たいときに、ユーザから第２タイプの入力を受け取る。これらの実施形態では、次いでこの方法はブロック５０４に示すステップを含み、このステップでは、機械学習コンポーネントを使用して訓練データに応じて決定された、特定のクエリエントリに対する次の最良推測タスクのリストを表示する。
【００３３】
いくつかの実施形態では、本発明の方法は、図１１の流れ図５５０に示す追加のステップを含む。ブロック５５２に示すように、これらの実施形態では、この方法はさらに、ユーザが特定のクエリバンドルで表されるクエリのリストを見たいときに、ユーザから第２タイプの入力を受け取ることも含む。ブロック５５４に示すように、次いで、第２タイプの入力を受け取るのに応答して、クエリバンドルで表されるクエリのリストを表示する。
【００３４】
次に図１２を参照すると、ユーザが特定のクエリエントリをタスクリスト３０２からのタスクにマッピングできるようにするためにいくつかの実施形態に含めることのできる、この方法の追加のステップが示されている。例えば、流れ図６００のブロック６０２に示すように、この方法は、ユーザが特定のクエリエントリを、表示されたタスクリストからのタスク（提案される最良推測タスクとは異なるタスク）にマッピングしたいときに、ユーザから第２タイプの入力を受け取る追加のステップを含むことができる。ブロック６０４のステップに示すように、次いで、機械学習コンポーネントを使用して、特定のクエリエントリを表示されたタスクリストからのタスクにマッピングすることによって、訓練データを更新する。
【００３５】
図３〜７に示したＧＵＩ実施形態では、本発明の方法を「クエリ中心（ｑｕｅｒｙ−ｃｅｎｔｒｉｃ）」の操作として実施する。言い換えれば、これらの実施形態では、ユーザは、複数のクエリのそれぞれに最良推測タスクを割り当てる。しかし、本発明は「タスク中心（ｔａｓｋ−ｃｅｎｔｒｉｃ）」の操作として実施することもでき、その場合は、特定のタスクに最良推測クエリを割り当てる。
【００３６】
例えば図１３を参照すると、本発明のいくつかの実施形態によりモニタ１９１上に表示することのできるＧＵＩ７００が示されている。ＧＵＩ７００は、階層型タスクリスト７０２を含む。クエリ−タスクマッピングを実施するユーザまたは作成者は、階層型タスクリスト７０２からタスクを選択して、このタスクにマッピングするための提案されるクエリのリスト７０４を見る。これを図１４に示す。
【００３７】
ＧＵＩ生成コンポーネント２２５は、ユーザがタスクリスト７０２からの特定のタスクを、対応する提案される最良推測クエリのうちの１つまたは複数にマッピングしたいときに、ユーザから第１タイプの入力を受け取るように構成されている。例えば、カーソル７４０と共にマウスタイプのポインティングデバイスのクリックを用いて、このような入力を提供することができる。線７５０は、このタスクが選択または強調表示されているのを表している。この入力に応答して、次いでこのシステムまたはツールは、機械学習コンポーネントによって提案されるクエリのリスト７０４を表示する。クエリは、選択されたタスクとマッチする可能性の高い順に表示される。このプロセスにより、ユーザは、クエリから公算の高いタスクへのマッピングとは反対に、タスクから公算の高いクエリへのマッピングができる。時間の経過に伴って結果的な推測が向上することを含めて他の点では、このプロセスは、先に論じた「クエリ中心」の操作と同じ挙動を有する。
【００３８】
本発明の実施形態では、クエリ−タスクマッピングシステムを使用して、複数のユーザがクエリをタスクにマッピングすることができる。例えば、図１５に示すコンピューティング環境８００を考えてみる。コンピューティング環境８００は、中央サーバ８０２と、複数のユーザコンピュータ８１０（コンピュータ８１０−１、８１０−２、８１０−３が示されている）を含む。中央サーバコンピュータは、分類器モデル８０６を確立するのに使用される訓練データを記憶する訓練データストア８０４を備える。図示のシステムまたは処理環境８００では、ユーザに推測を提供するために機械学習コンポーネントによって使用される分類器モデル８０６の生成は、すべてのユーザによってコミットされたマッピングのセットで訓練される。マッピングは、中央データベース訓練データストア８０４に記憶される。分類器モデル８０６は、これらのマッピングを使用して定期的に訓練される。訓練データストア８０４と分類器モデル８０６の両方が中央サーバ８０２に記憶されているように示してあるが、他の実施形態では、分類器モデル８０６は他の場所に記憶され、その場合、分類器モデル８０６を中央サーバ８０２に保存することができ、ユーザは、マッピングセッションの間に更新済みモデルを中央サーバ８０２からダウンロードすることができる。
【００３９】
ダウンロードされたモデルのコピー（ローカル分類器モデル８１４−１から８１４−３として示す）は、各ユーザのコンピュータ上にローカルに保存される。次いでユーザは、すべてのユーザから収集されたマッピングデータで少なくとも定期的に訓練されたモデルを使用することができる。特定のユーザがマッピング作業を継続するにつれて、モデルのローカルコピー８１４はその個別ユーザのマッピングに適合される。これを、各ユーザコンピュータ上にローカルマッピングデータストア８１２−１から８１２−３が備わることによって示す。したがって、ローカル分類器モデルはそれらの一番最近のマッピングを考慮に入れるので、ユーザの利益となる。これにより、推測の精度は、元々保存されたモデル８０６よりも向上する。さらに、ユーザは、推測を最近のマッピングにカスタマイズする程度を調整することができる。ローカルユーザコンピュータで実施されたマッピングに対応するマッピングデータ８１２−１から８１２−３は、分類器モデル８０６を後で更新するために、定期的に中央サーバ８０２上の訓練データストア８０４に提供される。
【００４０】
図１６に示す流れ図８５０にも、本発明の複数ユーザコンピュータの態様を示す。図１６は、中央サーバとローカルコンピュータの両方を使用してクエリとタスクのバルクマッピングを実施するための全体的な方法を記述したものである。図１６のブロック８５２に示すように、この方法は、分類器モデルのコピーを中央サーバからユーザコンピュータにダウンロードすることを含む。ブロック８５４で、図示の方法は、ユーザコンピュータにおいて、ダウンロードされた分類器モデルを使用して生成された推測に基づいてクエリ−タスクマッピングを実施するステップを含む。ブロック８５６で、図示の方法は、ローカルマッピングに基づいてローカル訓練データストアを生成または更新するステップを含む。言い換えれば、ローカルマッピングを使用して、ユーザのコンピュータに記憶された分類器モデルのローカルバージョンを更新する。最後に、ブロック８５８に示すように、この方法は、中央サーバにある訓練データストアをローカルマッピングデータで更新することを含む。したがって、中央サーバに記憶またはダウンロードされた分類器モデル８０６を、個々のユーザコンピュータで実施されたマッピングを含む訓練データストア８０４を使用して更新する。
【００４１】
利用可能なクエリ−タスクマッピングデータが少ないときは、分類器モデル８０６は、他の情報源を使用して事前訓練することができる。例えば、この事前訓練は、マッピングプロセスの初期段階で頻繁に用いられることになる。次いで、すべてのユーザによってローカルコンピュータからコミットされたマッピングのセットを使用してモデルを訓練することができる。これらの各情報源の相対的な影響を調整することができる。この事前訓練を、任意の時点でモデル生成プロセスに適用することができる。
【００４２】
標準的な事前訓練技法の１つは、タスクに関連するデータから特徴のセットを抽出することである。次いで、特徴とタスクの関連性についてモデルを訓練することができる。この効果は、クエリをタスクにマッピングすることによって生み出される効果と同様である。この事前訓練の最も単純な形では、タスク名が、タスクへのマッピングが導入されるクエリとして働く（ただしこのクエリは明示的に保存されない）。事前訓練はまた、別のソースからのテキストマッピングを用いて達成することもできる。これらのマッピングは、訓練データストア中で露出または保存する必要はない。
【００４３】
ローカルコンピュータ８１０−１から８１０−３のうちの１つにおけるユーザセッション中に、モデルの推測は、それらが生成される時の影響を受けるものとすることもできる。例えば、クエリは、すでにタスクにマッピングされている場合には推測として現れない。これにより、複数のユーザによって重複マッピングが行われるのを防止することができる。ユーザはまた、フィルタを明示的に適用して、提示される推測を制約することもできる。
【００４４】
本発明を特定の実施形態に関して述べたが、本発明の趣旨および範囲を逸脱することなく形式および詳細に変更を加えることもできることは、当業者なら理解するであろう。
【図面の簡単な説明】
【００４５】
【図１】本発明を使用することのできる例示的な一環境のブロック図である。
【図２】本発明による注釈付けシステムの例示的な一実施形態を示すブロック図である。
【図３】ユーザが効率的にクエリ−タスクマッピングを実施するのを支援するために、図２に示したシステムを使用して生成することのできるグラフィカルユーザインターフェースの概略図である。
【図４】ユーザが効率的にクエリ−タスクマッピングを実施するのを支援するために、図２に示したシステムを使用して生成することのできるグラフィカルユーザインターフェースの概略図である。
【図５】ユーザが効率的にクエリ−タスクマッピングを実施するのを支援するために、図２に示したシステムを使用して生成することのできるグラフィカルユーザインターフェースの概略図である。
【図６】ユーザが効率的にクエリ−タスクマッピングを実施するのを支援するために、図２に示したシステムを使用して生成することのできるグラフィカルユーザインターフェースの概略図である。
【図７】ユーザが効率的にクエリ−タスクマッピングを実施するのを支援するために、図２に示したシステムを使用して生成することのできるグラフィカルユーザインターフェースの概略図である。
【図８】本発明の方法の実施形態を示す流れ図である。
【図９】本発明の方法の実施形態を示す流れ図である。
【図１０】本発明の方法の実施形態を示す流れ図である。
【図１１】本発明の方法の実施形態を示す流れ図である。
【図１２】本発明の方法の実施形態を示す流れ図である。
【図１３】図３〜７に示したクエリ中心操作とは反対にタスク中心操作としてユーザがクエリ−タスクマッピングを効率的に実施するのを支援するために、図２に示したシステムを使用して生成することのできるグラフィカルユーザインターフェースを示す概略図である。
【図１４】図３〜７に示したクエリ中心操作とは反対にタスク中心操作としてユーザがクエリ−タスクマッピングを効率的に実施するのを支援するために、図２に示したシステムを使用して生成することのできるグラフィカルユーザインターフェースを示す概略図である。
【図１５】本発明を使用することのできる例示的な一環境を示すブロック図である。
【図１６】本発明の方法の一実施形態を示す流れ図である。
【符号の説明】
【００４６】
１６１  入力デバイス
１６２  入力デバイス
１９１  モニタ
２０５  クエリログ
２１０  タスクリスト
２１５  機械学習コンポーネント
２２０  訓練データストア
２２５  グラフィカルユーザインターフェース生成器
８０２  中央サーバ
８０４  訓練データストア
８０６  分類器モデル
８１０−１  ユーザコンピュータ
８１０−２  ユーザコンピュータ
８１０−３  ユーザコンピュータ
８１２−１  マッピングデータ
８１２−２  マッピングデータ
８１２−３  マッピングデータ
８１４−１  ローカル分類器モデル
８１４−２  ローカル分類器モデル
８１４−３  ローカル分類器モデル
【図１】
0004634105.tif 000002
【図２】
0004634105.tif 000003
【図３】
0004634105.tif 000004
【図４】
0004634105.tif 000005
【図５】
0004634105.tif 000006
【図６】
0004634105.tif 000007
【図７】
0004634105.tif 000008
【図８】
0004634105.tif 000009
【図９】
0004634105.tif 000010
【図１０】
0004634105.tif 000011
【図１１】
0004634105.tif 000012
【図１２】
0004634105.tif 000013
【図１３】
0004634105.tif 000014
【図１４】
0004634105.tif 000015
【図１５】
0004634105.tif 000016
【図１６】
0004634105.tif 000017