(57)【特許請求の範囲】
【請求項１】
ランキング関数(ranking function)のオフライン評価のためのシステムであって、プロセッサを備え、当該プロセッサが、
プロダクションログデータ(production log data)を受信し、前記プロダクションログデータを前処理(pre-process)して、シミュレートされたランダム化されたデータ収集に基づいて探索(exploration)データセットを生成し、当該シミュレートされたランダム化されたデータ収集が、クエリ履歴の結果多様性(result diversity)及びランキング関数の振る舞いの結果多様性に基づいて生成され、当該ランキング関数の振る舞いが、ランキング関数の更新を含み、
前記探索データセットを使用してランキング関数のためのオンラインメトリック(metrics)のオフライン推定(estimation)を実行し、提案されたランキング関数が、オンラインでユーザによってテストされる前に、受信されて、オフラインでテストされ、
前記推定されたオンラインメトリックを、ベースラインランキング関数のベースライン(baseline)メトリックのセットと比較し、前記提案されたランキング関数の前記推定されたオンラインメトリックが、前記ベースラインメトリックの所定の範囲を超過しているか、それ未満か、また
はその範囲内にあることを検出することによって、前記提案された(proposed)ランキング関数を評価し、
前記推定されたオンラインメトリックの、前記ベースラインランキング関数の前記ベースラインメトリックとの比較に基づいて、前記提案されたランキング関数が、前記ベースラインランキング関数に比して、より高い検出されたメトリックスコアを有する優先ランキング関数であることを検出し、
前記優先ランキング関数の品質が、閾値を超えることを検出することに応じて、優先ランキング関数に基づいて、情報検索についてアクションを実行し、
前記情報検索システムから生成された結果を表示する、
システム。
【請求項２】
前記プロセッサが、ランキングの近似(approximate)アクションマッチングを使用してオンラインメトリックを推定するようにさらに構成された、請求項１に記載のシステム。
【請求項３】
近似アクションマッチングが、それぞれのランキング関数によって生成された各アクションに対して、所定数の上位ランク(higher-ranked)の結果を比較することを含む、請求項２に記載のシステム。
【請求項４】
ランキング関数性能のオフライン評価のための方法であって、
プロダクションログデータを受信するステップと、
シミュレートされたランダム化されたデータ収集に基づいて、前記プロダクションログデータを前処理して探索データセットを生成するステップであって、当該シミュレートされたランダム化されたデータ収集が、クエリ履歴の結果多様性及びランキング関数の振る舞いの結果多様性に基づいて生成され、当該ランキング関数の振る舞いが、ランキング関数の更新を含む、ものと、
複数のランキング関数に対する探索データセットを使用してオンラインメトリックのオフライン推定を実行するステップであって、提案されたランキング関数が、オンラインでユーザによってテストされる前に、受信されて、オフラインでテストされものと、
前記推定されたオンラインメトリックに基づいて前記複数のランキング関数を比較して比較結果を生成するステップと、
前記比較結果に基づいて１つまたは複数の優先ランキング関数を識別するステップであって、当該１つまたは複数の優先ランキング関数が、ベースラインランキング関数に比して、より高い検出されたメトリックスコアを有するものと、
テストプロセス中に前記優先ランキング関数を使用してクエリ結果を生成するステップと、
前記生成されたクエリ結果を表示するステップと、
を含む方法。
【請求項５】
前記探索データセット内のアクションを近似的にマッチングするステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記複数のランキング関数からの第１のランキング関数が、第２のランキング関数の関連性スコアの所定の範囲内にあるか、前記所定の範囲よりも高いか、または前記所定の範囲よりも低い、前記関連性スコアを有するか否かを検出するステップをさらに含む、請求項４に記載の方法。
【請求項７】
前記比較結果の確実性のレベルを示す信頼度スコアを計算し、関連する比較結果と共に前記信頼度スコアを表示するステップをさらに含む、請求項４に記載の方法。
【請求項８】
前記オンラインメトリックが、クリックスルー率(click-through rate)（ＣＴＲ）、検索エンジン結果ページ(search engine results page)（ＳＥＲＰ）上のクリック時間、およびクリック位置の平均逆数(mean reciprocal)のうちの少なくとも１つを含む、請求項１に記載のシステム
【請求項９】
前記優先ランキング関数が、前記テスト中に、前記優先(preferred)ランキング関数の品質が閾値を超えることの検出に応答して、情報検索システム上でアクションを実行するために使用される、請求項１に記載のシステム。
【請求項１０】
前記アクションが、クエリに応答して検索エンジン結果ページ（ＳＥＲＰ）を表示することを含む、請求項９に記載のシステム。
【請求項１１】
前記プロセッサが、
クエリ結果を、前記提案されたランキング関数を用いて、前記提案されたランキング関数のテストとして生成し、
前記生成されたクエリ結果を表示する、
請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、ランキング関数のオフライン評価に関する。
【背景技術】
【０００２】
[0001]情報検索（ＩＲ）システムは、ランカーとしても知られるランキング関数を使用して、ユーザーからのクエリに応答して検索結果をソートする。ランキング関数は、購入するアイテムの注文リストを推奨する際にも使用することができる。ランキング関数の、Ａ／Ｂフライトまたは単にフライティングとしても知られる、オンラインＡ／Ｂテストを使用して、オンライン関連メトリックを測定し、２つ以上のランキング関数を比較することができる。Ａ／Ｂは、比較される２つのランキング関数ＡおよびＢを参照し、２つ以上のランキング関数を同様の方法で比較することもできる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]以下は、本明細書に記載されるいくつかの態様の基本的な理解を提供するために、技術革新の簡略化された概要を提示する。この要約は、特許請求される主題の広範な概要ではない。特許請求された主題の重要な要素を特定することも、特許請求された主題の範囲を描写することも意図されていない。その唯一の目的は、特許請求された主題のいくつかの概念を、後で提示されるより詳細な説明の前置きとして簡略化した形で提示することである。
【課題を解決するための手段】
【０００４】
[0003]１つの実装は、ランキング関数のオフライン評価のためのシステムを提供する。このシステムは、プロセッサと、プロセッサに指示を与えるためのコードを含むシステムメモリとを含む。このコードが実行されると、プロセッサはプロダクションログデータを受け取ることができ、プロセッサはプロダクションログデータを前処理して探索データセットを生成することができる。このコードは、探索データセットを使用してランキング関数のオンラインメトリックのオフライン推定をプロセッサに実行させることもできる。コードはまた、推定されたオンラインメトリックを、ベースラインランキング関数のベースラインメトリックのセットと比較し、提案されたランキング関数の推定オンラインメトリックが、ベースラインメトリックの所定の範囲を超えるか、それよりも低いか、または範囲内にあるかを検出することによって、提案されたランキング関数をプロセッサに評価させることができる。
【０００５】
[0004]別の実装は、ランキング関数の性能をオフラインで評価する方法を提供する。この方法は、プロダクションログデータを受信することを含むことができる。この方法は、プロダクションログデータを前処理して探索データセットを生成することも含むことができる。本方法は、複数のランキング関数についての探索データセットを使用してオンラインメトリックのオフライン推定を実行することをさらに含むことができる。この方法はまた、推定されたオンラインメトリックに基づいて複数のランキング関数を比較して比較結果を生成することを含むことができる。この方法はまた、比較結果に基づいて１つまたは複数の優先ランキング関数を識別することを含むことができる。本方法はまた、テストプロセスの間に優先ランキング関数を用いてクエリ結果を生成することをさらに含むことができる。
【０００６】
[0005]別の実装は、１つまたは複数の処理装置によって実行されると、ランキング関数性能のオフライン評価を命令するコンピューター可読命令を記憶するための１つまたは複数のコンピューター可読記憶媒体を提供する。コンピューター可読媒体は、プロダクションログデータを受信するための命令を含む。コンピューター可読媒体はまた、プロダクションログデータを前処理して探索データセットを生成するための命令を含む。このコンピューター可読媒体は、探索データセットおよび近似的なアクションマッチングプロセスに少なくとも部分的に基づいてランキング関数のオンラインメトリックのオフライン推定を実行する命令を含む。さらに、コンピューター可読媒体は、推定されたオンラインメトリックとベースラインランキング関数メトリックとの比較に基づいて、ランキング関数が優先ランキング関数であることを検出する命令を含む。また、コンピューター可読媒体は、テストプロセス中に優先ランキング関数の品質が閾値を超えることの検出に応答して、優先ランキング関数に基づいて情報検索システムに対してアクションを実行する命令をさらに含む。
【０００７】
[0006]以下の説明および添付の図面は、特許請求の範囲に記載の主題の特定の説明的な態様を詳細に説明する。しかしながら、これらの態様は、本発明の革新の原理を使用することができる様々な方法のうちのいくつかを示しており、特許請求されている主題は、そのような態様およびそれらの等価物のすべてを含むことが意図されている。特許請求の範囲に記載の主題の他の利点および新規な特徴は、図面と併せて考慮すると、以下の発明の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】[0007]本明細書に記載の技術の様々な態様を実施するように構成された例示的な動作環境のブロック図である。
【図２】[0008]情報検索ランキング関数をオフラインで評価する方法のプロセスフロー図である。
【図３】[0009]情報検索ランキング関数のオフライン評価のための例示的なシステムのブロック図である。
【図４】[0010]ランキング関数をオフラインで評価するために使用することができる例示的なコンピューター可読記憶媒体のブロック図である。
【発明を実施するための形態】
【０００９】
[0011]ランキング関数は、様々な技術を使用して評価することができる。上述のように、ランキング関数を使用して、情報検索システムにおけるクエリの結果をランキングすることができる。情報検索システムは、情報資源の集合から情報ニーズに関連する情報資源を取得する。例えば、情報資源は、検索エンジンの結果または製品の推奨とすることができる。いくつかの実施例では、ランキング関数は、ランダム化されたデータ収集フライトを使用して、オフラインで関連性の正確性を評価することができる。本明細書で使用されるフライトとは、ランカーを実行してある期間にわたってユーザーにサービスを提供し、その後、この期間における関連性の品質メトリックを測定するオンライン実験を指す。ＩＲシステムをユーザー上で実行することなく評価するために（この文書では「オフライン評価」と呼ばれる）、既存のアプローチでは、ユーザーが発行したクエリに対して、結果の可能性のある順列の数を計算し、順列のうち１つをランダムに選択して、それをユーザーに提示し、関連性スコア（知覚順列に対するユーザーの反応に依存する）を測定する、という方法で、ランダム化されたデータを収集する。しかし、あまりに多くの順列があり、上記のランダム化されたデータ収集手順はコストがかかる。
【００１０】
[0012]本開示は、高価なランダム化データ収集ステップなしに、履歴ログデータを使用してランキング関数の平均メトリック値を予測することによってランキング関数を評価する技術を説明する。いくつかの実施例では、１つまたは複数の検索エンジンからのプロダクションログデータなどの履歴ログデータは、検索エンジン結果ページ（ＳＥＲＰ）のような複数のクエリおよびクエリ結果またはアクションを含むことができる。本明細書で使用されるアクションとは、クエリに応答して特定の方法でデータを編成および表示することを指す。例えば、アクションは、他の応答の中でもとりわけ、ＳＥＲＰまたは推奨リストを含むことができる。本明細書で使用されるメトリック値は、性能特性に基づいてランキング関数に割り当てられる値を指す。いくつかの実施例では、様々な目標に基づいて性能特性を定義することができる。例えば、性能特性は、ランキング関数によって返される結果に関する肯定的なユーザーフィードバック、およびランキング関数によって返される結果の品質を表すことができる。メトリック値は、ランキング関数の性能または品質を、与えられた性能特性に対する比率として示すことができる。実施例では、これらの性能特性のうちの１つまたは複数を使用してランキング関数を評価することができる。
【００１１】
[0013]いくつかの実施形態では、メトリック値を予測するために使用される履歴ログデータは、結果の多様性および因果推論技術を利用することによって、プロダクションログデータからシミュレートされたランダム化データ収集とすることができ、より詳細に以下で議論される。いくつかの実施例では、本技術は、ランキング関数のほぼ不偏のオフライン評価も提供する。本技術は、オンラインでテストされるランキング関数の総数を減らすことができるように、ライブテストのランキング関数を識別するために使用することができる。したがって、ランキング関数は、ユーザー上でランキング関数をテストする前に評価することができる。したがって、この技術は、ユーザーが情報または製品を見つけるためにより多くの時間を費やし、したがってより多くのリソースを費やす可能性を低減する。この技術はまた、より効率的なランキング関数を識別するためにユーザーが必要とする対話の数を減らす。さらに、ランキング関数の効率の向上は、ユーザーがより少ないリソースを使用して製品または情報を見つけることを可能にすることによって、コンピューター資源をさらに節約することができる。さらに、オンラインでテストするランキング関数の数を減らすことによって、ネットワーク帯域幅を節約する。これらの技術については、以下でより詳細に説明する。
【００１２】
[0014]前置きとして、図のいくつかは、機能、モジュール、特徴、要素などと様々に呼ばれる１つまたは複数の構造的コンポーネントの文脈における概念を記述する。図面に示された様々なコンポーネントは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせなど、任意の方法で実装することができる。いくつかの場合には、図に示された様々なコンポーネントは、実際の実装における対応するコンポーネントの使用を反映することができる。他の場合には、図に示された任意の単一のコンポーネントは、多数の実際のコンポーネントによって実施されてもよい。図面中の任意の２つ以上の別個のコンポーネントの描写は、単一の実際のコンポーネントによって実行される異なる機能を反映することができる。以下に説明する図１は、図に示された機能を実施するために使用され得る１つのシステムに関する詳細を提供する。
【００１３】
[0015]他の図は、フローチャート形式で概念を説明している。この形式では、特定の操作は、特定の順序で実行される個別のブロックを構成するものとして記述されている。このような実装は例示的であり、限定的ではない。本明細書に記載される特定のブロックは、一緒にグループ化され、単一の動作で実行され、あるブロックは複数のコンポーネントブロックに分解され、あるブロックは、そのブロックを実行する並列的な方法を含めて、本明細書に示されるものとは異なる順序で実行され得る。フローチャートに示されるブロックは、ソフトウェア、ハードウェア、ファームウェア、手動処理などによって実現することができる。本明細書で使用される場合、ハードウェアは、コンピューターシステム、特定用途向け集積回路（ＡＳＩＣ）などの個別論理コンポーネントを含むことができる。
【００１４】
[0016]用語に関して、「構成される」という語句は、識別された操作を実行するために任意の種類の機能が構築され得る任意の方法を包含する。この機能は、例えば、ソフトウェア、ハードウェア、ファームウェアなどを使用して動作を実行するように構成することができる。用語「論理」は、タスクを実行するための任意の機能を包含する。例えば、フローチャートに示される各動作は、その動作を実行するための論理に対応する。操作は、ソフトウェア、ハードウェア、ファームウェアなどを用いて行うことができる。「コンポーネント」、「システム」などの用語は、コンピューター関連エンティティ、ハードウェア、およびソフトウェアの実行、ファームウェア、またはそれらの組み合わせを指すことがある。コンポーネントは、プロセッサ、オブジェクト、実行可能ファイル、プログラム、関数、サブルーチン、コンピューター、またはソフトウェアとハードウェアの組み合わせで実行されるプロセスである。「プロセッサ」という用語は、コンピューターシステムの処理装置などのハードウェアコンポーネントを指すことができる。
【００１５】
[0017]さらに、特許請求される主題は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成して、開示された主題を実施するためにコンピューティングデバイスを制御する標準的なプログラミングおよびエンジニアリング技術を使用する方法、装置、または製造品として実施され得る。本明細書で使用される「製造品」という用語は、任意のコンピューター可読記憶デバイスまたは媒体からアクセス可能なコンピュータープログラムを包含するように意図されている。コンピューター可読記憶媒体は、とりわけ、ハードディスク、フロッピーディスク、磁気ストリップ、光ディスク、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、スマートカード、フラッシュメモリデバイスなどの磁気記憶デバイスを含む。さらに、コンピューター可読記憶媒体は、無線信号用の伝送媒体などの通信媒体を含まない。対照的に、コンピューター可読媒体、すなわち記憶媒体ではないものは、無線信号用の伝送媒体などの通信媒体を含むことができる。
【００１６】
[0018]図１は、本明細書に記載の様々な技術を実装することができるコンピューティング環境の簡潔で一般的な説明を提供することを意図している。例えば、図２および３に記載されたランキング関数のオフライン評価のための方法およびシステムは、そのようなコンピューティング環境で実施することができる。特許請求される主題は、ローカルコンピューターまたはリモートコンピューター上で実行されるコンピュータープログラムのコンピューター実行可能命令の一般的な文脈で以下に説明されるが、特許請求される主題は、他のプログラムモジュールと組み合わせて実装されてもよい。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。
【００１７】
[0019]図１は、本明細書に記載の技術の様々な態様を実施するように構成されている、例示的な動作環境のブロック図である。例示的な動作環境１００は、コンピューター１０２を含む。コンピューター１０２は、処理ユニット１０４、システムメモリ１０６、およびシステムバス１０８を含む。
【００１８】
[0020]システムバス１０８は、システムメモリ１０６を含むがこれに限定されないシステムコンポーネントを、処理ユニット１０４に結合する。処理ユニット１０４は、様々な利用可能なプロセッサのうちのいずれかとすることができる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも処理ユニット１０４として使用することができる。
【００１９】
[0021]システムバス１０８は、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および当業者に知られている任意の様々な利用可能なバスアーキテクチャを使用するローカルバスを含む、いくつかのタイプのバス構造のいずれかとすることができる。システムメモリ１０６は、揮発性メモリ１１０および不揮発性メモリ１１２を含むコンピューター可読記憶媒体を含む。
【００２０】
[0022]始動中などにコンピューター１０２内の要素間で情報を転送する基本ルーチンを含む、基本入出力システム（ＢＩＯＳ）は、不揮発性メモリ１１２に記憶される。限定ではなく例として、不揮発性メモリ１１２は、読出し専用メモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、電気的プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリを含むことができる。
【００２１】
[0023]揮発性メモリ１１０は、外部キャッシュメモリとして動作するランダムアクセスメモリ（ＲＡＭ）を含む。限定ではなく例として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、ＳｙｎｃｈＬｉｎｋ（商標）ＤＲＡＭ（ＳＬＤＲＡＭ）、Ｒａｍｂｕｓ（登録商標）ダイレクトＲＡＭ（ＲＤＲＡＭ）、ダイレクトＲａｍｂｕｓ（登録商標）ダイナミックＲＡＭ（ＤＲＤＲＡＭ）、Ｒａｍｂｕｓ（登録商標）ダイナミックＲＡＭ（ＲＤＲＡＭ）などの多くの形態で利用可能である。
【００２２】
[0024]コンピューター１０２は、取外し可能／取外し不可能、揮発性／不揮発性コンピューター記憶媒体などの他のコンピューター可読媒体も含む。図１は、例えばディスクストレージ１１４を示す。ディスクストレージ１１４は、磁気ディスクドライブ、フロッピーディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−２１０ドライブ、フラッシュメモリカード、またはメモリスティックなどのデバイスを含むが、これらに限定されない。
【００２３】
[0025]さらに、ディスクストレージ１１４は、限定するものではないが、コンパクトディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、ＣＤ記録可能ドライブ（ＣＤ−Ｒドライブ）、ＣＤ再書込み可能ドライブ（ＣＤ−ＲＷドライブ）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光学ディスクドライブを含む他の記憶媒体と別個に、またはそれらと組み合わせて記憶媒体を含むことができる。ディスクストレージデバイス１１４のシステムバス１０８への接続を容易にするために、インターフェイス１１６などの取外し可能または取外し不可能なインターフェイスが一般的に使用される。
【００２４】
[0026]図１は、ユーザーと、適切な動作環境１００に記載された基本コンピューター資源との間の仲介役として働くソフトウェアを記述することが理解されるであろう。このようなソフトウェアは、オペレーティングシステム１１８を含む。ディスクストレージ１１４に記憶することができるオペレーティングシステム１１８は、コンピューター１０２のリソースを制御し、割り当てるように動作を制御する。
【００２５】
[0027]システムアプリケーション１２０は、システムメモリ１０６またはディスクストレージ１１４のいずれかに記憶されたプログラムモジュール１２２およびプログラムデータ１２４を介して、オペレーティングシステム１１８による資源の管理を利用する。特許請求された主題は、様々な動作システムまたはオペレーティングシステムの組み合わせで実施できることが認識されるはずである。
【００２６】
[0028]ユーザーは、入力デバイス１３２を介してコンピューター１０２にコマンドまたは情報を入力する。入力デバイス１３２は、限定するものではないが、マウス、トラックボール、スタイラスなどのポインティングデバイス、キーボード、マイクロフォン、ジョイスティック、衛星放送受信アンテナ、スキャナ、テレビチューナーカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどを含む。入力デバイス１３２は、インターフェイスポート１３４を介してシステムバス１０８を通して処理ユニット６０４に接続する。インターフェイスポート１３４は、例えば、シリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス（ＵＳＢ）を含む。
【００２７】
[0029]出力デバイス１３６は、入力デバイス１３２と同じタイプのポートのいくつかを使用する。したがって、例えば、ＵＳＢポートを使用してコンピューター１０２に入力を提供し、コンピューター１０２から出力デバイス１３６に情報を出力することができる。
【００２８】
[0030]出力アダプタ１３８は、アダプタを介してアクセス可能な他の出力デバイス１３６の中に、モニター、スピーカー、およびプリンターのようないくつかの出力デバイス１３０があることを示すために提供される。出力アダプタ１３８は、出力デバイス１３６とシステムバス１０８との間の接続手段を提供するビデオカードおよびサウンドカードを例示であって限定することなく含む。他のデバイスおよびデバイスのシステムは、リモートコンピューター１４０のような入出力機能を有することが留意されよう。
【００２９】
[0031]コンピューター１０２は、リモートコンピューター１３４などの１つまたは複数のリモートコンピューターへの論理接続を使用してネットワーク環境内の様々なソフトウェアアプリケーションをホストするサーバーであってもよい。リモートコンピューター１３４は、ウェブブラウザ、ＰＣアプリケーション、携帯電話アプリケーションなどで構成されたクライアントシステムであってもよい。リモートコンピューター１３４は、パーソナルコンピューター、サーバー、ルーター、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの装置、携帯電話、ピアデバイスまたは他の共通ネットワークノードなどであり、通常、コンピューター１０２に関して説明された要素の多くまたはすべてを含む。
【００３０】
[0032]リモートコンピューター１３４は、ネットワークインターフェイス１３６を介してコンピューター１０２に論理的に接続され、次に、無線であってもよい通信接続１３８を介して接続される。ネットワークインターフェイス１３６は、ローカルエリアネットワーク（ＬＡＮ）およびワイドエリアネットワーク（ＷＡＮ）などのワイヤレス通信ネットワークを包含する。ＬＡＮ技術には、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、ＣＤＤＩ（Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、イーサネット（登録商標）、トークンリングなどがある。ＷＡＮ技術には、ポイントツーポイントリンク、ＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋｓ）およびその変形、パケット交換ネットワーク、デジタル加入者回線（ＤＳＬ）などの回線交換ネットワークが含まれるが、これらに限定されない。
【００３１】
[0033]通信接続１３８は、ネットワークインターフェイス１３６をバス１０８に接続するために使用されるハードウェア／ソフトウェアを指す。通信接続１３８は、コンピューター１０２内部の説明を明瞭にするために示されているが、コンピューター１０２の外部にあってもよい。ネットワークインターフェイス１３６への接続は、例示的目的のために、携帯電話スイッチ、通常の電話グレードのモデム、ケーブルモデムおよびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびイーサネットカードなどの内部および外部技術を含むことができる。
【００３２】
[0034]サーバー用の例示的な処理ユニット１０４は、コンピューティングクラスターであってもよい。さらに、ディスクストレージ１１４は、ランキング関数を評価するために使用される様々なタイプのデータ１２４を記憶することができる。例えば、ディスクストレージ１１４は、インプレッションなどのデータ１２４を例えば記憶するエンタープライズデータストレージシステムを備えることができる。本明細書で使用されるインプレッションとは、ユーザーからの特定のクエリに応答して、特定のランキング関数によるアクションのインスタンスを指す。例えば、アクションは、検索エンジンへのクエリに応答するＳＥＲＰであり得る。インプレッションを使用して、以下に図３で詳細に説明するように、提案されたランキング関数のオンラインメトリックを推定することができる。データ１２４はまた、例えば、検索エンジンクエリおよび検索エンジン結果ページ（ＳＥＲＰ）から得られた情報から取得または構築することができる１つまたは複数のプロダクションログを含むことができる。いくつかの実施例では、プロダクションログデータ１２４は、１つまたは複数の検索エンジンから得ることができる。
【００３３】
[0035]ランキング関数のオフライン評価を実行するように、１つまたは複数のモジュール１２２を構成することができる。例えば、ランキング関数は、最終的にオンラインでテストされ、潜在的に検索エンジンまたは推奨サービスの既存のランキング関数を置き換えるための一連の提案ランキング関数であってもよい。提案されたランキング関数は、開発者によって提供されてもよいし、機械によって生成されてもよい。実装において、プリプロセッサモジュール１４０は、プロダクションログデータから探索データを生成することができる。探索データは、提案されたランキング関数のオフライン評価に対する既存のアプローチによって使用されるランダム化されたデータをシミュレートするために使用されるデータである。プロダクションログデータは、相当量の多様性を示し、すなわち、異なるインプレッションで同じユーザーによって発行された同じクエリの場合、ＩＲシステムは、システムの一定の更新またはシステムが取る他のストリーミング情報のために、異なるアクションを取る可能性がある。同じユーザークエリ対に対するそのような多様化されたアクションは、ランダム化されたものとして扱われる。いくつかの実施例では、プリプロセッサモジュール１４０は、探索データセットを生成するときにランダム化されたデータ収集をシミュレートするために、ランキング関数の振る舞いにおいて多様性を使用することができる。いくつかの実施例では、プリプロセッサモジュール１４０は、クエリによって、アクションによって、アクションの確率によって、および報酬値によってプロダクションログデータを集計することができる。実装では、推定量モジュール１４２は、探索データセットを使用してランキング関数のためのオンラインメトリックのオフライン推定を実行することができる。いくつかの実施例では、推定量モジュール１４２は、オンラインメトリックを推定するために、ランキングの近似アクションマッチングを使用することができる。オンラインメトリックには、クリックスルー率（ＣＴＲ）、検索エンジン結果ページ（ＳＥＲＰ）のクリック時間、およびクリック位置の平均逆数など、システムアクションに対するユーザーの応答から導き出された報酬信号が含まれている。実装において、評価量モジュール１４４は、推定されたオンラインメトリックを、ベースラインランキング関数のベースラインメトリックのセットと比較することによって、提案されたランキング関数を評価することができる。本明細書で使用されるベースラインランキング関数は、現在使用されているＩＲシステム、および一般に、テストされるＩＲシステムの代替として機能することができる任意のＩＲシステムであり得るランキング関数を指す。いくつかの実施例では、評価量モジュール１４４は、提案されたランキング関数の推定オンラインメトリックがベースラインメトリックの所定の範囲を超えているか、より低いか、またはその範囲内にあることを検出することができる。次に、テストモジュール１４６は、提案されたランキング関数を用いて、提案されたランキング関数のテストとしてクエリ結果を生成することができる。いくつかの実施例では、テストモジュール１４６は、次に、実際のユーザーについて提案されたランキング関数をオンラインでテストする。いくつかの実施例では、優先ランキング関数を使用して、優先ランキング関数の品質がテストプロセス中に閾値を超えることの検出に応答して、情報検索システム上でアクションを実行することができる。例えば、アクションは、クエリに応答してＳＥＲＰを表示することを含むことができる。表示モジュール１４８は、生成されたクエリ結果を表示することができる。
【００３４】
[0036]図１のブロック図は、コンピューティングシステム１００が図１に示すコンポーネントのすべてを含む、ということを示す意図ではない、ということが理解されるべきである。むしろ、コンピューティングシステム１００は、図１に示されていない、より少ないまたは追加のコンポーネント（例えば、追加のアプリケーション、追加のモジュール、追加のメモリデバイス、追加のネットワークインターフェイスなど）を含むことができる。さらに、プリプロセッサモジュール１４０、推定量モジュール１４２、推定量モジュール１４４、およびテストモジュール１４６の機能のいずれも、ハードウェアおよび／またはプロセッサで部分的または全体的に実装されてもよい。例えば、機能は、特定用途向け集積回路、プロセッサに実装されたロジック、または他の任意のデバイスで実施することができる。例えば、限定するものではないが、使用可能な例示的なタイプのハードウェア論理コンポーネントには、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラム特定集積回路（ＡＳＩＣ）、プログラム特定標準製品（ＡＳＳＰ）、システムオンチップシステム（ＳＯＣ）、復号プログラマブル論理デバイス（ＣＰＬＤ）などを含む。
【００３５】
[0037]図２は、ランキング関数をオフラインで評価する方法のプロセスフロー図を示す。この方法は、参照番号２００によって全般に参照され、例示的システム１００を参照して論じられる。ブロック２０２において、プリプロセッサモジュール１４０は、プロダクションログデータを受け取る。例えば、プロダクションログデータは、他のサービスの中で、１つまたは複数の検索エンジンおよび／または推奨エンジンの動作中に記録された履歴データであってもよい。プロダクションログデータは、例えば、ユーザークリック数、ユーザークリック間の時間、ＳＥＲＰ、ならびに異なるフライト中、および／または異なる期間にわたる同様のクエリのランキング関数の振る舞いを含むことができる。
【００３６】
[0038]ブロック２０４において、プリプロセッサモジュール１４０は、プロダクションログデータを前処理して探索データセットを生成する。探索データセットは、オンラインフライトをシミュレートするために使用される処理済みデータセットである。いくつかの実施例では、プロダクションログデータの前処理には、クエリによって、アクションによって、ユーザーによって、アクションの確率によって、および報酬値によってプロダクションログデータを集計することが含まれる。例えば、クエリは、１つまたは複数のキーワードを使用して情報の要求を行うことができる。アクションには、ＳＥＲＰやランキング関数によって注文された他のリストなど、クエリへの応答を含めることができる。報酬値は、上述の任意の形式のオンラインメトリックによって測定することができる。いくつかの実施例では、プロダクションログデータを前処理することは、結果の多様性を使用して無作為化されたデータ収集をシミュレートすることを含む。プリプロセッサモジュール１４０は、無作為サンプリングを使用して探索データセットとして使用されるクエリのセットを作成するのではなく、ランダム化データ収集をシミュレートするためにプロダクションログデータの多様性を使用することができる。例えば、結果多様性は、とりわけ、検索エンジン操作または推奨サービス操作の結果であり得る。
【００３７】
[0039]ブロック２０６において、推定量モジュール１４２は、探索データセットを使用してランキング関数のためのオンラインメトリックのオフライン推定を実行する。例えば、提案されたランキング関数のセットを開発者から受信し、ユーザーについてオンラインでテストする前にオフラインでテストすることができる。ランキング関数は、クエリまたは購入などの入力に基づいて情報をランキングするために検索エンジンまたは推奨サービスによって使用されるいくつかのランキング関数のうちの１つであってもよい。いくつかの実施例では、提案されたランキング関数は、本技術を使用して機械生成され、自動的にテストされてもよい。ランキング関数は、プロダクションログデータから生成された探索データセットでシミュレートされたフライトを持つことができる。特定のランキング関数と探索データセットが与えられれば、オンラインメトリックは、探索データセットにおいて近似的にアクションをマッチングすることによって推定することができる。上述したように、アクションは、クエリに応答して任意の整理された情報リストを含むことができる。上述のように、オンラインメトリックは、クリックスルー率（ＣＴＲ）、検索エンジン結果ページ（ＳＥＲＰ）上のクリック時間、およびクリック位置の平均逆数のうちの少なくとも１つを含むことができる。いくつかの実施例では、ＳＥＲＰの近似マッチングは、各アクションに対して所定の数の上位の結果の比較を使用して実行することができる。例えば、ランキング関数によって整理されたＳＥＲＰの上位３つの結果は、各ＳＥＲＰの最上部で同じ３つの順序付けられた結果を有する２つ以上のＳＥＲＰとマッチングするために使用することができる。ＳＥＲＰなどの類似のアクション間のオンラインメトリックは、ユーザーが同様の方法で応答する場合とほぼ同じでなければならないという前提がある。いくつかの実施例では、ｒａｎｋＤｉｆｆ技術を使用して、２つ以上のＳＥＲＰをマッチングすることができる。例えば、２つのアクションａとｂの類似性を測定する関数ｓｉｍ（ａ、ｂ）＝１−ＲａｎｋＤｉｆｆ（ａ、ｂ）を考えると、ｒａｎｋＤｉｆｆの例は、以下の図３の式を使用して計算することができる。これらの技術は、以下に図３を参照してより詳細に論じられる。
【００３８】
[0040]ブロック２０８において、評価量モジュール１４４は、推定されたオンラインメトリックに基づいて複数のランキング関数を比較して、比較結果を生成する。例えば、比較結果は、いくつかのランキング関数が他のものよりも高いオンラインメトリックスコアを有すること、または２つ以上のランキング関数が特定のランキング関数に対して所定の閾値範囲内にオンラインメトリックスコアを有することを示すことがあり得る。いくつかの実施例では、ランキング関数の１つは、比較のためのベースラインランキング関数であってもよい。例えば、ベースラインランキング関数は、検索エンジンまたは推奨サービスによって現在使用されているランキング関数などであってもよい。
【００３９】
[0041]ブロック２１０において、評価量モジュール１４４は、比較結果に基づいて優先ランキング関数を識別する。いくつかの実施例では、第１のランキング関数は、第２のランキング関数と比較して、より高い検出された関連性スコアを有することができる。第１のランキング関数は、優先ランキング関数として識別することができる。いくつかの実施例では、第２のランキング関数は、ベースラインランキング関数であってもよい。例えば、ベースラインランキング関数は、残りの提案されたランキング関数と比較するために使用されてもよい。ベースライン関数よりも優れた性能を示す推定オンラインメトリックを有する提案された関数は、優先ランキング関数として識別されてもよい。いくつかの実施例では、評価量モジュール１４４は、提案されたランキング関数の推定オンラインメトリックがベースラインメトリックの所定の範囲を超えるか、それよりも低いか、またはその範囲内であることを検出する。したがって、提案されたランキング関数は、さらにテストされるべき優先関数として識別することができる。いくつかの実施例では、閾値信頼度スコアを使用して、オンラインでテストされる優先ランキング関数からランキング関数を除外することもできる。
【００４０】
[0042]ブロック２１２において、テストモジュール１４６は、テストプロセス中に優先ランキング関数を用いてクエリ結果を生成する。例えば、テストモジュール１４６は、優先ランキング関数をオンラインでテストする。いくつかの実施例では、評価量モジュール１４４は、優先ランキング関数をオンラインテストのためにサーバーに送信する。例えば、優先ランキング関数を使用してサーバー上でオンラインＡ／Ｂテストを実行できる。いくつかの実施例では、ランキング関数の品質が閾値を超える確実性のレベルを示す信頼度スコアも計算することができる。
【００４１】
[0043]このプロセスフロー図は、方法２００のブロックが任意の特定の順序で実行されることを示すこと、またはすべてのブロックがあらゆる場合に含まれることを示すことを意図するものではない。さらに、特定の実装の詳細に応じて、図示されていない任意の数の追加ブロックを方法２００内に含めることができる。
【００４２】
[0044]図３は、情報検索ランキング関数のオフライン評価のための例示的なシステム３００のブロック図である。例示的なシステム３００は、コンピューター１０２を使用して実施することができ、図２のプロセスフロー図を参照して説明する。例示的なシステム３００は、ランキング関数のオフライン評価３０４のための入力３０６として使用することができる、プロダクションログデータ３０２を含むことができる。例示的なシステム３００はまた、ランキング関数のオフライン評価３０４のための入力３１０としても使用することができる複数のランキング関数３０８を含むことができる。ランキング関数のオフライン評価３０４は、本明細書に記載の技術を使用して、優先ランキング関数３１２を３１４に出力することができる。
【００４３】
[0045]図３の例では、プロダクションログデータ３０２は、検索エンジンまたは推奨エンジンなどの履歴データの任意のソースから受信することができる（２０２）。履歴データには、クエリまたは購入に応答してランキング関数のアクションおよびオンラインメトリックを含めることができる。例えば、プロダクションログデータ３０２は、検索エンジン、推奨エンジンなどによって使用されるランキング関数の動作中に作成されたログから取得することができる。プロダクションログデータ３０２は、異なるフライト、および／または異なる期間にわたっての、同様のクエリに対するランキング関数の振る舞いを含むことができる。ランキング関数の振る舞いは、ランキング関数の連続的な更新、クエリ文書対の特徴の変更、およびエンジンのインデックスの更新などを含むことができる。いくつかの実施例では、ランキングの振る舞いおよびクエリ履歴からの結果の多様性を使用して、探索データセットを生成するときにランダム化されたデータ収集をシミュレートすることができる。いくつかの実施例では、プロダクションログデータは、クエリによって、アクションによって、アクションの確率によって、および報酬値によって集計される。本明細書で使用されるアクションとは、とりわけ、ＳＥＲＰ、推奨リストなど、ユーザーに一般的に役立つランキング関数またはオンラインシステムの製品を指す。
【００４４】
[0046]いくつかの実施例では、ランキング関数のオフライン評価のために、文脈的バンディットモデルを使用することができる。文脈的バンディットモデルでは、独立して同一分布の文脈情報（ＩＩＤ）が繰り返し観察される。例えば、文脈情報は、別個のクエリＱのセットとすることができる。セットＱの任意のｑについて、Ａｑはクエリｑの可能なアクションのセットであってもよい。例えば、セットＡｑ内のアクションａは、クエリｑの可能なＳＥＲＰであってもよい。いくつかの実施例では、文脈的バンディットモデルを用いて、探索データセットを生成するためにログデータを前処理２０４することができる。
【００４５】
[0047]例示的なシステム３００は、ランキング関数３０８も含むことができる。ランキング関数３０８は、オンラインユーザー上で潜在的にテストされる提案されたランキング関数のセットであってもよい。文脈的バンディットモデルに関して、文脈的バンディットの文脈において「π」と呼ばれるランキング関数３０８は、セットＡｑからＳＥＲＰ  ａを選択することができる。各観測について、例示的なシステム３００は、アクションを取ってランダム化された報酬を受け取ることができる。例えば、報酬は、ユーザーのクリックから測定されたバイナリのクリック信号または非表示信号とすることができる。いくつかの実施例では、受け取った報酬は選択されたアクションに依存し、他のアクションに対する報酬は観察されない。オンラインの文脈的バンディットモデルでは、ランキング関数とユーザーとの間の仮定上の対話は、次のようにラウンドごとに進められ、ラウンドｔの場合、ユーザーは検索エンジンを訪れ、可能性のあるユーザークエリのいくつかの未知の分布Ｄから描かれるＩＩＤである、Ｑからのクエリｑを発行する。ランキング関数は、アクションａを選択し、アクションａをユーザーに表示する。例えば、アクションは、とりわけＳＥＲＰとすることができる。次に、ユーザーはＳＥＲＰを見て、ユーザーのフィードバックに基づいて、報酬Ｒのセットからの数値的報酬ｒを計算することができる。しかしながら、ユーザーとのオンライン対話は高価であり、したがって、代わりにオンラインメトリックのオフライン推定２０６を実行することができる。例えば、推定されるメトリックは、
【００４６】
【数１】
0006678666.tif 000002
【００４７】
の形式を取ることができ、ここでメトリックｖ（π）は、検索エンジンが遭遇したクエリｑに対してランキング関数πを実行することによって得られる平均報酬ｒである。ランキング関数πが決定論的である場合、推定されるオンラインメトリックは、以下の形式を取ることができる。
【００４８】
【数２】
0006678666.tif 000003
【００４９】
[0048]様々なタイプのオンラインメトリックを使用できる。いくつかの実施例では、適切な報酬を定義することによってオンラインメトリックを得ることができる。例えば、ＳＥＲＰにクリックがある場合はｒを１に、そうでない場合は０に定義すると、ｖ（π）はランキング関数のインプレッションあたりのクリックスルーレート（ＣＴＲ）になる。本明細書で使用されるインプレッションとは、クエリｑ、ランキング関数πによって取られたアクションａ＝π（ｑ）、およびユーザーのクリックから得られる報酬からなるユーザーとＩＲシステムとの間の単一の対話を指す。例えば、アクションは、他のアクションの中でも、ＳＥＲＰ、推奨リストであってもよい。いくつかの実施例では、特定の望ましい条件を満たすクリックに対してオンラインメトリックを定義したり、収益を測定するために金銭情報を組み込んだりすることができる。オンラインメトリックの別のタイプは、ユーザーが求める情報をどれだけ早く見つけるかを定量化しようと試みることができる。例えば、オンラインメトリックでは、ユーザーがクエリを送信した後にハイパーリンクを選択するのにかかる時間を数値で表すことができる。いくつかの実施例では、任意の事前定義されたユーザーアクションは、クエリの発行に関連してタイムアウトすることもできる。実装では、オンラインメトリックは、ユーザーのフィードバックに依存するランキング関数の成功した検索アクティビティの一部である可能性がある。成功した検索アクティビティは、顧客の特定の目標に従って構成することができる。
【００５０】
[0049]さらに図３を参照すると、実装においては、探索データセットを使用して、提案されたランキング関数３０８のオンラインメトリックのオフライン推定が実行される（２０６）。例えば、探索データセットは、セットＤ＝｛＜ｑｉ、ａｉ、ｐｉ、ｒｉ＞｝１≦ｉ≦ｎとして定義することができ、ここでｉは異なるインプレッションをインデックス化し、ｑｉはそのインプレッションにおけるユーザーによって発行されたクエリであり、ａｉはランキングのリストであり、傾向スコアｐｉは、データ収集フライト中にｑｉに対してａｉを表示する確率であり、ｒｉは結果として生じるクリックベースのメトリックである。たとえ個々のランキングが各インプレッションで決定論的に計算されたとしても、推定量は、様々なフライトで、および／または異なる期間に、同じクエリに対してランキング関数の振る舞いを多様化することができる。例えば、そのような多様性は、ランキング関数の連続的な更新、クエリ文書対の特徴の変更、エンジンのインデックスの絶え間ない更新などの要因によって引き起こされる可能性がある。ランキング関数の振る舞いの多様性は、システムの見かけ上のランダムな振る舞いにつながる。いくつかの実施例では、探索データにおいて観測されるクエリｑおよびクエリランキングの組（ｑ，ａ）のカウントは、以下の方程式によって定義することができる。
【００５１】
【数３】
0006678666.tif 000004
【００５２】
【数４】
0006678666.tif 000005
【００５３】
ここで、
【００５４】
【数５】
0006678666.tif 000006
【００５５】
は、条件Ｃが真であれば１と評価し、そうでなければ０になる指標設定関数である。この場合、疑似ランダム化確率は以下の形で表すことができる。
【００５６】
【数６】
0006678666.tif 000007
【００５７】
式１の不偏推定量は、次のように表すことができる。
【００５８】
【数７】
0006678666.tif 000008
【００５９】
ここで、
【００６０】
【数８】
0006678666.tif 000009
【００６１】
は、データセットＤにおけるｑの相対頻度であり、
【００６２】
【数９】
0006678666.tif 000010
【００６３】
は、（ｑ，ａ）に対する平均報酬
【００６４】
【数１０】
0006678666.tif 000011
【００６５】
である。
[0050]いくつかの実施例では、ランキングの近似アクションマッチングを使用して、各提案されたランキング関数３０８のオンラインメトリックを推定することができる。例えば、ＳＥＲＰの場合、近似マッチングは、ランキングページの上位３つまたは５つの検索結果とのマッチングの形を取り得る。したがって、上位５つの結果がマッチした場合、２つのランキングＡとＢが同一とみなされ得る。いくつかの実施例では、マッチングする結果の数は、予め決定され、および／または構成可能であり得る。例えば、マッチングすべき結果の閾値の数は、処理すべきアクション総数と、近似から生じる偏りの量に基づいて調整することができる。いくつかの実施例では、二項関係「〜」によるマッチングを行うランキング関数近似アクションを含む報酬推定量は、
【００６６】
【数１１】
0006678666.tif 000012
【００６７】
と表現することができる。
いくつかの実施例では、ランキング関数は決定論的であり得る。ランキング関数が決定論的である場合、推定量は以下のように単純化することができる。
【００６８】
【数１２】
0006678666.tif 000013
【００６９】
ここで、π（ｑ）は、決定論的ランキング関数πがクエリｑに対して選択するアクションを表す。いくつかの実施例では、ｒａｎｋＤｉｆｆ技術を使用して近似アクションマッチングを実行することができる。例えば、２つのアクションａとｂの類似性を測定する関数ｓｉｍ（ａ，ｂ）＝１−ＲａｎｋＤｉｆｆ（ａ，ｂ）は、次の式を使用してアクションを近似的にマッチングすることができる。
【００７０】
【数１３】
0006678666.tif 000014
【００７１】
さらに、分散推定値は、２つのランキング関数の推定値間の差が統計的に有意であるかどうかを評価するために使用できる。いくつかの実施例では、これらの分散推定値は、
【００７２】
【数１４】
0006678666.tif 000015
【００７３】
【数１５】
0006678666.tif 000016
【００７４】
によって計算することができ、式１０は、一般的なケースの分散推定量であり、式１１は、πが決定論的な場合の分散推定量である。
[0051]さらに図３を参照する。図３に示すように、提案されたランキング関数は、推定されたオンラインメトリックを他のランキング関数３０８のメトリックのセットと比較することによって評価することができる（３０４）。例えば、ベースラインランキング関数３０８は、特定の検索エンジンまたは推奨サービスによって現在使用されているランキング関数であってもよい。提案されたランキング関数３０８に対する推定されたオンラインメトリックは、ベースラインランキング関数３０８と比較することができる。いくつかの実施例では、提案されたランキング関数３０８がベースラインランキング関数よりも高いメトリックスコアを有する場合、提案されたランキング関数３０８は優先ランキング関数３１２として２１０で識別することができる。優先ランキング関数３１２は、次に、実際のユーザーのグループについてさらなるオンラインテストを受けることができる。例えば、従来のＡ／Ｂテストは、優先ランキング関数３１２を使用して実行することができる。したがって、本技術は、本技術がなければライブユーザーの不出来のオンラインランキング関数のオンラインテストに費やされたであろうプロセッサ電力および帯域幅などのリソースを節約する。さらに、本技術は、ユーザーのグループにマイナスのオンライン体験を提示することによって、顧客を困らせるリスクを低減する。
【００７５】
[0052]図４は、ランキング関数をオフラインで評価するために使用できる有形のコンピューター可読記憶媒体を示すブロック図である。有形のコンピューター可読記憶媒体４００は、コンピューターバス４０４を介してプロセッサ４０２によってアクセスすることができる。さらに、有形のコンピューター可読記憶媒体４００は、現在の方法を実行させるプロセッサ４０２に指示を与えるためのコードを含むことができる。例えば、方法３００は、プロセッサ４０２によって実行することができる。
【００７６】
[0053]本明細書で論じる様々なソフトウェアコンポーネントは、図４に示すように、有形のコンピューター可読記憶媒体４００に記憶することができる。例えば、有形のコンピューター可読記憶媒体４００は、前処理モジュール４０６、推定量モジュール４０８、および評価量モジュール４１０を含むことができる。いくつかの実装では、前処理モジュール４０６は、プロダクションログデータを受け取るコードを含む。例えば、プロダクションログデータは、ランキング関数の連続的な更新、クエリ文書対の特徴の変更、およびエンジンのインデックスの更新などを含むことができる。プリプロセッサモジュール４０６は、プロダクションログデータを前処理して探索データセットを生成するコードを含む。いくつかの実装では、前処理モジュール４０６は、ランダム化されたデータ収集をシミュレートするために検索エンジン結果多様性を使用することを含むログデータを前処理するコードを含む。いくつかの実装では、プリプロセッサモジュール４０６は、クエリによって、アクションによって、アクションの確率によって、および報酬値によって探索データを集計するためのコードを含む。いくつかの実施例では、推定量モジュール４０８は、探索データセットを使用してオンラインメトリックのオフライン推定を実行するためのコードを含む。いくつかの実施例では、推定量モジュールは、各アクションに対して所定の数の上位の結果を使用して探索データセット内のアクションに近似的にマッチングするコードを含む。
【００７７】
[0054]いくつかの実施例では、評価量モジュール４１０は、第１のランカーと第２のランカーとの間のデルタメトリックスコアを計算するためのコードを含む。いくつかの実装では、評価量モジュール４１０は、デルタメトリックスコアの信頼度水準を示すコードを含む。実装において、評価量モジュール４１０は、ランキング関数が、オンラインメトリックのベースラインランキング関数との比較に基づく優先ランキング関数である、ということを検出するためのコードを含む。テストモジュール４１２は、オンラインでユーザーの優先ランキング関数をテストするためのコードを含む。例えば、優先ランキング関数は、他のタイプのオンライン評価の中でも、Ａ／Ｂテストを通じてオンラインでテストすることができる。いくつかの実施例では、情報検索システムは、テストプロセス中に優先ランキング関数の品質が閾値を超えることの検出に応答して、優先ランキング関数に基づいてアクションを実行することができる。いくつかの実施例では、表示モジュール４１４は、生成されたクエリ結果を表示することを含むことができる。
【００７８】
[0055]特定のアプリケーションに応じて、有形のコンピューター可読記憶媒体４００内には、図４には示されていない任意の数の追加のソフトウェアコンポーネントが含まれてもよいことが理解されるであろう。本発明の主題は、構造的特徴および／または方法に特有の言語で記載されているが、添付の特許請求の範囲に定義される主題は、必ずしも上記の特定の構造的特徴または方法に限定されないことが理解されるであろう。むしろ、上記の特定の構造的特徴および方法は、請求項を実施する例示的な形態として開示される。
【実施例１】
【００７９】
[0056]この実施例は、ランキング関数のオフライン評価のための例示的なシステムを提供する。例示的なシステムは、プロセッサと、プロセッサを指示するためのコードを含むシステムメモリとを含む。このコードが実行されると、プロセッサはプロダクションログデータを受け取ることができ、プロセッサはプロダクションログデータを前処理して探索データセットを生成することができる。このコードは、探索データセットを使用してランキング関数のオンラインメトリックのオフライン推定をプロセッサに実行させることもできる。コードはまた、推定されたオンラインメトリックを、ベースラインランキング関数のベースラインメトリックのセットと比較し、提案されたランキング関数の推定オンラインメトリックが、ベースラインメトリックの所定の範囲を超えるか、それよりも低いか、またはその範囲内にあるかを検出することによって、プロセッサに提案されたランキング関数を評価させることができるこれに代えて、または加えて、コードは、プロセッサに、提案されたランキング関数を用いて、提案されたランキング関数のテストとしてクエリ結果を生成させるようにさらにすることができる。これに代えて、または加えて、コードは、プロセッサに、生成されたクエリ結果をさらに表示させることができる。これに代えて、または加えて、コードは、探索データセットを生成するときに、結果の多様性に基づいてランダム化されたデータ収集をシミュレートすることによって、プロセッサにプロダクションログデータを前処理させることができる。これに代えて、または加えて、コードは、プロダクションログデータを、クエリによって、アクションによって、アクションの確率によっておよび報酬値によって集計することによって、プロダクションログデータを前処理することができる。これに代えて、または加えて、コードは、プロセッサに、オンラインメトリックを推定するために、ランキングの近似アクションマッチングを使用させることができる。これに代えて、または加えて、コードは、プロセッサに、それぞれのランキング関数によって生成された各アクションに対して、所定数の上位ランクの結果を比較させることができる。これに代えて、または加えて、オンラインメトリックは、クリックスルー率（ＣＴＲ）、検索エンジン結果ページ（ＳＥＲＰ）のクリック時間、およびクリック位置の平均逆数の少なくとも１つを含むことができる。これに代えて、または加えて、オンラインメトリックは、クリックスルー率（ＣＴＲ）、検索エンジン結果ページ（ＳＥＲＰ）のクリック時間、およびクリック位置の平均逆数の少なくとも１つを含むことができる。これに代えて、または加えて、優先ランキング関数は、テスト中に、優先ランキング関数の品質が閾値を超えることの検出に応答して、情報検索システム上でアクションを実行するために使用することができる。これに代えて、または加えて、アクションは、クエリに応答して検索エンジン結果ページ（ＳＥＲＰ）を表示することを含むことができる。
【実施例２】
【００８０】
[0057]この実施例では、ランキング関数のパフォーマンスをオフラインで評価する方法の実施例を示す。例示的な方法は、プロダクションログデータを受信することを含むことができる。例示的な方法は、探索データセットを生成するためにプロダクションログデータを前処理することを含むこともできる。例示的な方法は、複数のランキング関数についての探索データセットを使用してオンラインメトリックのオフライン推定を実行することをさらに含むことができる。例示的な方法はまた、推定されたオンラインメトリックに基づいて複数のランキング関数を比較して比較結果を生成することを含むことができる。例示的な方法はまた、比較結果に基づいて１つまたは複数の優先ランキング関数を識別することを含むことができる。例示的な方法はまた、テストプロセスの間に優先ランキング関数を用いてクエリ結果を生成することをさらに含むことができる。これに代えて、または加えて、例示的な方法は、探索データセット内のアクションを近似的にマッチングすることを含むことができる。これに代えて、または加えて、例示的な方法は、各アクションに対して所定数の上位の結果をマッチングすることによって、探索データセット内のアクションを近似的にマッチングすることを含むことができる。これに代えて、または加えて、例示的な方法は、複数のランキング関数からの第１のランキング関数が、第２のランキング関数の関連性スコアの所定の範囲内にあるか、所定の範囲より高いか、または所定の範囲より低い、関連性スコアを有するか否かを検出することを含むことができる。これに代えて、または加えて、例示的な方法は、比較結果の確実性のレベルを示す信頼度スコアを計算し、関連する比較結果と共に信頼度スコアを表示することを含むことができる。これに代えて、または加えて、例示的な方法は、結果多様性を使用して、ランダム化されたデータ収集をシミュレートすることをさらに含む、プロダクションログデータの前処理を含むことができる。これに代えて、または加えて、例示的な方法は、プロダクションログデータを、クエリによって、アクションによって、アクションの確率によって、および報酬値によって集計することをさらに含む、プロダクションログデータの前処理を含むことができる。これに代えて、または加えて、例示的な方法は、テストプロセス中に優先ランキング関数をサーバーに送信することを含むことができる。これに代えて、または加えて、例示的な方法は、テストプロセス中にサーバーを介してユーザーに優先ランキング関数をテストすることを含むことができる。これに代えて、または加えて、例示的な方法は、比較結果を表示することを含むことができる。これに代えて、または加えて、例示的な方法は、比較結果を記憶することを含むことができる。これに代えて、または加えて、例示的な方法は、比較結果を更新することを含むことができる。
【実施例３】
【００８１】
[0058]この実施例は、１つまたは複数の処理装置によって実行されると、ランキング関数性能のオフライン評価を命令するコンピューター可読命令を記憶するための１つまたは複数のコンピューター可読記憶媒体を提供する。コンピューター可読媒体は、プロダクションログデータを受信するための命令を含む。コンピューター可読媒体はまた、プロダクションログデータを前処理して探索データセットを生成するための命令を含む。このコンピューター可読媒体は、探索データセットおよび近似アクションマッチングプロセスに少なくとも部分的に基づいてランキング関数のオンラインメトリックのオフライン推定を実行する命令を含む。さらに、コンピューター可読媒体は、推定されたオンラインメトリックとベースラインランキング関数メトリックとの比較に基づいて、ランキング関数が優先ランキング関数であることを検出する命令を含む。また、コンピューター可読媒体は、テストプロセス中に優先ランキング関数の品質が閾値を超えることの検出に応答して、優先ランキング関数に基づいて情報検索システムに対してアクションを実行する命令をさらに含む。これに代えて、または加えて、コンピューター可読媒体は、優先ランキング関数とベースラインランキング関数との間のデルタメトリックスコアを計算するための命令を含むことができる。これに代えて、または加えて、コンピューター可読媒体は、デルタメトリックスコアが、優先ランキング関数がベースラインランキング関数のオンラインメトリックよりも高い推定オンラインメトリックを有することを示す命令を含むことができる。これに代えて、または加えて、コンピューター可読媒体は、クエリによって、アクションによって、アクションの確率によって、および報酬値によって探索データを集計するための命令を含むことができる。これに代えて、または加えて、コンピューター可読媒体は、情報検索システムにアクションの実行結果を表示するための命令を含むことができる。これに代えて、または加えて、コンピューター可読媒体は、別の優先ランキング関数に基づいて結果を更新するための命令を含むことができる。これに代えて、または加えて、コンピューター可読媒体は、アクションの実行の結果を情報検索システムに記憶するための命令を含むことができる。
【００８２】
[0059]上述のことは、特許請求された主題の実施例を含む。特許請求された主題を説明する目的でコンポーネントまたは方法論の考えられるすべての組み合わせを説明することはもちろん不可能であるが、当業者であれば、特許請求された主題の多くのさらなる組み合わせおよび置換が可能であることを認識することができる。したがって、特許請求された主題は、添付の特許請求の範囲の精神および範囲内に入るそのような変更、修正、および変形をすべて包含することが意図されている。
【００８３】
[0060]特に、上述のコンポーネント、デバイス、回路、システムなどによって実行される様々な機能に関して、そのようなコンポーネントを説明するために使用される用語（「手段」への言及を含む）は、別段に示されていない限り、特許請求された主題の本明細書に説明された例示的な態様において機能を果たす、開示された構造と構造的に同等ではないが、説明されたコンポーネントの特定の機能を実行する任意のコンポーネント、例えば機能的な等価物に対応することが意図されている。これに関して、本発明は、特許請求された主題の様々な方法の行為および事象を実行するためのコンピューター実行可能命令を有するコンピューター可読記憶媒体だけでなく、システムも含むことも認識されるであろう。
【００８４】
[0061]アプリケーションおよびサービスが本明細書に記載された技術を使用することを可能にする、特許請求された主題、例えば、適切なＡＰＩ、ツールキット、ドライバコード、オペレーティングシステム、制御、スタンドアロンまたはダウンロード可能ソフトウェアオブジェクトなどを実装する複数の方法がある。特許請求された主題は、ＡＰＩ（または他のソフトウェアオブジェクト）の観点から、ならびに本明細書に記載の技術に従って動作するソフトウェアまたはハードウェアオブジェクトからの使用を意図している。したがって、本明細書で説明される特許請求された主題の様々な実装は、ハードウェア全体、部分的にハードウェア、および部分的にソフトウェアならびにソフトウェアである態様を有することができる。
【００８５】
[0062]上述のシステムは、いくつかのコンポーネント間の対話に関して説明されている。そのようなシステムおよびコンポーネントは、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントのいくつか、および追加のコンポーネントを含むことができ、前述の様々な順列および組み合わせに従うことができる。サブコンポーネントは、親コンポーネント内に（階層的に）含まれるのではなく、他のコンポーネントに通信可能に結合されたコンポーネントとして実装することもできる。
【００８６】
[0063]さらに、１つまたは複数のコンポーネントを、集計機能を提供する単一のコンポーネントに結合したり、いくつかの別個のサブコンポーネントに分割したりすることができ、管理レイヤなどの１つまたは複数の中間レイヤを提供して、統合された機能性を提供するためにそのようなサブコンポーネントに提供し、通信可能に結合することができる。本明細書に記載される任意のコンポーネントはまた、本明細書に具体的に記載されていないが当業者に一般的に知られている１つまたは複数の他のコンポーネントと対話することができる。
【００８７】
[0064]さらに、特許請求された主題の特定の特徴は、いくつかの実装のうちの１つに関して開示されているかもしれないが、そのような特徴は、所望されかつ、任意の与えられた、または特定のアプリケーションに対して有利であるような、その他の実装の１つまたは複数の他の特徴と組み合わせることができる。さらに、用語「含む」、「含んで」、「有する」、「包含する」、その変形、および他の同様の単語が、詳細な説明または特許請求の範囲のいずれかで使用される限り、これらの用語は、任意の追加の要素または他の要素を除外することなく、オープントランジションワードとしての「含む」という用語と同様の意味で包含的であることが意図されている。
【図１】
0006678666.tif 000017
【図２】
0006678666.tif 000018
【図３】
0006678666.tif 000019
【図４】
0006678666.tif 000020