(57)【要約】  本明細書では、ユーザヒストリデータを受信することと、検索可能なデジタルアイテムを階層化ストレージシステムに格納するのに使用される層割り当ての品質の指示を、上記ユーザヒストリデータのサブセットに少なくとも部分的に基づいて生成することとを含む方法を説明する。本明細書では、ユーザヒストリデータを受信する受信コンポーネントを含むシステムも説明する。該システムは、さらに、クエリによる取り出しが可能なるデジタルアイテムを格納するのに使用される層割り当ての品質の指示を決定する品質指示コンポーネントを含み、該品質指示コンポーネントは、ユーザヒストリデータのサブセットに少なくとも部分的に基づいて上記指示を生成し、上記層割り当ては、階層化ストレージシステム内においてデジタルアイテムを格納すべき場所を示す。
2011508340.tif 000002
【特許請求の範囲】
【請求項１】
ユーザヒストリデータを受信するステップと、
検索可能なデジタルアイテムを階層化ストレージシステムに格納するのに使用される層割り当ての品質の指示を生成するステップであって、前記指示は、前記ユーザヒストリアイテムに少なくとも部分的に基づいている、ステップと
を含むことを特徴とする方法。
【請求項２】
前記ユーザヒストリデータは、
検索エンジンに提供されたクエリと、
前記クエリに対して検索エンジンによって返された結果と、
１つまたは複数のユーザによって選択された検索結果内のデジタルアイテムと、
ユーザが前記クエリを提示したあとに該ユーザによってアクセスされたデジタルアイテムのシーケンスと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ユーザヒストリデータは、
データベース管理システムに入力されるクエリと、
前記クエリに応答して返される結果と、
ユーザが前記クエリを提示したあとに該ユーザによってアクセスされたアイテムのシーケンスと
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記階層化ストレージシステムは、検索エンジンインデックスであることを特徴とする請求項１に記載の方法。
【請求項５】
少なくとも部分的に前記ユーザヒストリデータに基づいて、改善された層割り当てを生成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記改善された層割り当てを生成するステップは、層割り当て品質メトリックスに関して最適化または実質的に最適化することを含むことを特徴とする請求項５に記載の方法。
【請求項７】
少なくとも部分的に前記改善された層割り当てに基づいて、デジタルアイテムを前記階層化ストレージシステムの層に割り当てるのに使用される階層化ポリシーを更新するステップをさらに含むことを特徴とする請求項５に記載の方法。
【請求項８】
機械学習技法を使用して前記階層化ポリシーをパラメータ化するステップをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記指示を生成するステップは、
クエリに割り当てる重みを決定するステップであって、前記重みは、前記クエリの発行頻度を示す、ステップと、
前記クエリに対するシステム負荷の背景を決定するステップと、
前記クエリを実行するのに使用される検索エンジンが前記システム負荷の下にあるとき、前記クエリを使用して検索する際に、ある特定の層が訪問される最下位の層となる確率を決定するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記指示を生成するステップは、
2011508340.tif 000013
【請求項１１】
ユーザヒストリデータ（１０４）を受信する、受信コンポーネント（１０６）と、
クエリを実行することによって取り出すことができるデジタルアイテムを格納するのに使用される層割り当ての品質の指示を決定する、品質指示コンポーネント（１０８）と
を備えたシステムであって、前記品質指示コンポーネント（１０８）は、少なくとも部分的に前記ユーザヒストリデータ（１０４）のサブセットに基づいて前記指示を生成し、前記層割り当ては、階層化ストレージシステム内においてデジタルアイテムを格納しべぉ場所を示すことを特徴とするシステム。
【請求項１２】
前記指示は、検索エンジンインデックスに対する層割り当ての品質を示すことを特徴とする請求項１１に記載のシステム。
【請求項１３】
少なくとも部分的に前記ユーザヒストリデータに基づいて、改善された層割り当てを生成する更新コンポーネントをさらに備えたことを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記更新コンポーネントは、複数の層割り当てを組み合わせて前記改善された層割り当てを生成することを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記更新コンポーネントは、少なくとも部分的に前記改善された層割り当てに基づいて、デジタルアイテムを前記階層化ストレージシステムの層に割り当てるのに使用される階層化ポリシーを更新することを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記更新コンポーネントは、機械学習技法を使用して前記階層化ポリシーを更新することを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記更新コンポーネントは、層品質メトリックスに関して層割り当てを最適化または実質的に最適化して前記改善された層割り当てを生成することを特徴とする請求項１３に記載のシステム。
【請求項１８】
前記品質指示コンポーネントは、
１つまたは複数のクエリに割り当てる重みであって、前記１つまたは複数のクエリの発行頻度を示す重みを決定する、重み決定コンポーネントと、
検索エンジンおけるシステム負荷を決定する負荷決定コンポーネントと、
前記検索エンジンが前記システム負荷の下にあるときに、前記１つまたは複数のクエリを使用する際に、ある特定の層が前記階層化ストレージシステムにおいて訪問される最下位の層となる確率を決定する、層決定コンポーネントと、
を備えたことを特徴とする請求項１１に記載のシステム。
【請求項１９】
特定の層で検索の取り出しが終了するときの検索品質の指標を決定する、ユーティリティ決定コンポーネントをさらに備えたことを特徴とする請求項１１に記載のシステム。
【請求項２０】
現在の階層化ポリシーを使用してデジタルアイテムを検索エンジンインデックスに割り当てる検索エンジンであって、前記現在の階層化ポリシーは、
ユーザヒストリデータを受信することと、
層割り当ての品質の指示を出力することと、
前記受信したユーザヒストリデータと前記層割り当ての品質の指示とに少なくとも部分的に基づいて、改善された層割り当てを決定することと、
デジタルアイテムを前記検索エンジンインデックスの層に割り当てるのに使用される階層化ポリシーを、前記改善された層割り当てに少なくとも部分的に基づいて更新して、前記現在の階層化ポリシーを作成すること
を含む複数の動作によって作成されることを特徴とする検索エンジン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、層割り当ての品質を決定することに関する。
【背景技術】
【０００２】
検索エンジン（search engine）は、ユーザがインターネットを利用して情報に素早くアクセスするのを可能にしている。具体的には、ユーザは、クエリを検索エンジンに提示（submit）し、該検索エンジンによって返されるランク付けされた結果（ranked result）を詳細に調べることができる。例えば、ユーザが「Ｓｐｉｄｅｒ」というクエリを検索エンジンに提供すると、該ユーザに、様々なクモ形類節足動物（arachnid）に関するＷｅｂページ、自動車に関するＷｅｂページ、映画に関するＷｅｂページ、Ｗｅｂクローラ（crawler）に関するＷｅｂページ、および他のＷｅｂページを提供することができる。検索エンジンを使用して、画像、学術論文、ビデオおよび他の情報をクエリの発行者に返すこともできる。
【０００３】
検索エンジンのオペレーションは、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ上で利用可能な大量の情報（例えば、Ｗｅｂページ）を探し出して、格納するＷｅｂクローラの利用も含むことがある。例えば、Ｗｅｂページまたは該Ｗｅｂページに関する情報を、検索エンジンインデックスに格納することができ、クエリを受信したときに該インデックスが（１つまたは複数の検索アルゴリズムとともに）使用される。
【０００４】
従来、検索エンジンインデックスは、異なる層が異なるレベルのパフォーマンスを提供する複数の層（tier）に格納される。検索エンジンインデックスの階層化は、コンピュータアーキテクチャで使用されるメモリ階層に類似しており、該インデックスの全体の記憶容量は、サイズ、スピード、待ち時間（latency）、およびコストにおいて異なる、様々なレベルに分割される。インデックスのより上位の層は典型的に、スピードは速いが、容量は少なくコストが高い。したがって、望ましいことは、検索エンジンの効率を最大にするようにＷｅｂページを慎重にインデックス化することである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Ｗｅｂページを階層化するための使用されている手法の１つは、Ｗｅｂページを配置するインデックスの層を、そのＷｅｂページの静的ランク（static rank）など特定のメトリックによって判断される、そのＷｅｂページの相対的な重要度（relative importance）の関数として選択することである。具体的には、あるＷｅｂページへのリンクの数を使用してそのＷｅｂページを配置するインデックスの層を選択することがある。しかしながら、ページの相対的な重要度は必ずしも、該ページが頻繁にアクセスされるかどうかを示すものではなく、したがって、ページの相対的な重要度は、検索エンジンインデックスにおいてＷｅｂページをインデックス化するのに最適ではないこともある。しかしながら、どのメトリックスが層に対するＷｅｂページの特定の割り振りの品質をキャプチャするかが明確でないため、層の割り当てを評価することは難しい問題である。
【課題を解決するための手段】
【０００６】
以下は、本明細書に詳細に記載されている主題を簡単に要約したものである。この要約は特許請求の範囲に関して限定することは意図されていない。
【０００７】
本明細書では、デジタルアイテム（Ｗｅｂページなど）の階層化に関する様々な技術を説明する。検索エンジン、データベース管理システムなどとのユーザ対話をモニタリングすることができ、そして該ユーザ対話に関するデータを収集することができる。例えば、ユーザによって提示されるクエリ、該クエリに対する応答として提供される検索結果（例えば、デジタルアイテム）、および該検索結果に対するユーザのアクションを、モニタリングして保持しておくことができる。１つの具体例として、ブラウザ上のツールバーを使用してユーザヒストリデータを収集することができる。少なくとも部分的に該ユーザヒストリデータに基づいて、検索可能デジタルアイテムに対する層割り当て（tier assignment）の品質の指示（indication）を生成することができ、ここで、層割り当ては、検索可能デジタルアイテムを複数の層のどの層に割り当てるかを示す。層の品質の指示は、本明細書で詳述される、定義済みの層割り当て品質メトリック（tier assignment quality metric）に合致する値とすることができる。
【０００８】
一例では、品質の指示を、いくつかのパラメータを確認することによって決定することができる。例えば、層割り当ての品質の指示は、観察されたクエリに割り当てられる重み（weight）に少なくとも部分的に基づくものとすることができる。一例では、重みは、クエリの相対的重要度を示すものとすることができ、またクエリの発行の頻度に少なくとも部分的に基づくものとすることもできる。別の例では、層割り当ての品質の指示は、特定のクエリおよび決定されたシステム負荷（system load）（例えば、クエリを受信したときにシステムがどの程度稼働していたか）に関して、デジタルアイテムの取り出しが特定の層で終わる確率に少なくとも部分的に基づくものとすることもできる。この確率は複数の層について決定されることもある。さらに別の例では、層割り当ての品質の指示は、取り出しが特定の層で終了したとき得られる検索結果の品質の指標（measure）に少なくとも部分的に基づくものとすることもできる。ＮＤＣＧ（Normalized Discounted Cumulative Gain）、ＭＡＰ（Mean Average Precision）、Ｑ−ｍｅａｓｕｒｅ、または情報の取り出しの損失もしくは検索結果品質を測定するための他の適切な機構を、層を階層化する指標の決定に関連して使用することができる。
【０００９】
さらに、層割り当ての品質の指示および/またはユーザヒストリデータに少なくとも部分的に基づいて、改善された層割り当て（improved tier assignment）を生成することができる。例えば、層割り当ての品質の指示が定義済み層割り当て品質メトリックに準拠していることがあり、改善された層割り当てを、該メトリックに対して最適化し、または実質的に最適化することがある。さらに、階層化ポリシーは、改善された層割り当てに少なくとも部分的に基づいて更新することができる。階層化ポリシーは、デジタルアイテムを層に割り当てるのに使用されるポリシーであり、デジタルアイテムに対応する様々な特徴、例えば該デジタルアイテムがユーザによってアクセスされた回数、該デジタルアイテムのサイズなどの特徴を考慮することができる。階層化ポリシーを、例えば、機械学習技法（machine learning technique）の使用を通して更新することができる。
【００１０】
本発明の他の態様は、添付図面および説明を読み、理解することにより認識されるであろう。
【図面の簡単な説明】
【００１１】
【図１】層割り当ての品質の指示の決定を容易にする例示システムを示す機能ブロック図である。
【図２】層割り当ての品質の指示を生成する例示システムを示す機能ブロック図である。
【図３】改善された層割り当ての生成を容易にする例示システムを示す機能ブロック図である。
【図４】改善された層割り当ての生成を容易にする例示システムを示す機能ブロック図である。
【図５】層割り当ての品質の指示を生成する例示方法を示すフロー図である。
【図６】層割り当ての品質の指示を生成する例示方法を示すフロー図である。
【図７】層割り当て品質メトリックに関して最適化または実質的に最適化された層割り当てを出力する例示方法を示すフロー図である。
【図８】階層化ポリシーを更新する例示方法を示すフロー図である。
【図９】例示コンピューティングシステムを示す図である。
【発明を実施するための形態】
【００１２】
層割り当ての品質を決定し、改善された層割り当てを生成し、階層化ポリシーを自動的に更新することに関する様々な技術を、図面を参照して説明するが、図面全体を通して同様の参照番号は同様の要素を表している。さらに、例示システムのいくつかの機能ブロックが説明目的のために図示され、説明されているが、当然に理解されるように、ある特定のシステムコンポーネントによって実施されるとして記載される機能は、複数のコンポーネントによって実行されることもある。同様に、例えば、複数のコンポーネントによって実行されるとして記載される機能を、単一のコンポーネントが実行するように構成されることもある。
【００１３】
図１を参照すると、図１には、層割り当ての品質の指示を階層化ストレージシステム（図示せず）に対して出力するのを容易にする例示システム１００が図示されている。一例によれば、階層化ストレージシステムは、複数の層を有する検索エンジンインデックスとすることができ、該複数の層において、第１の（最高の）層は、よりコストが高く記憶空間が比較的少量であり得るが、第１の層から取り出されるデジタルアイテムの取り出し時間は他の層（下位の層）から取り出されるデジタルアイテムの取り出し時間よりも短い。第２の層は、第１の層よりも比較的安価であり、記憶空間が第１の層よりも大きいが、取り出し時間は第１の層に対応する取り出し時間に比べてより多くかかる。別の例では、階層化ストレージシステムは、データベース管理システムに関連して使用されるストレージ層を含むことがある。例えば、データベース管理システムで使用されるサーバは、ハードドライブ、ランダムアクセスメモリ、および高速ランダムアクセスメモリを有することがあり、これらの各々を層とすることができる。
【００１４】
システム１００は、ユーザヒストリデータ１０４を含むデータストア１０２を備えている。ユーザヒストリデータ１０４は、例えば、ユーザによって発行されたクエリ、該クエリに応答してユーザに提供された検索結果、該検索結果が提供されたことに応答してユーザによって選択された検索結果、および/または他の適切な情報を含むことがある。一例では、検索エンジンとのユーザの対話をモニタリングすることによってユーザヒストリデータ１０４を累積することができる。例えば、ツールバープラグインをブラウザにインストールし、ブラウザに入力されたクエリ、ならびに該クエリに応答して返された検索結果、特定の検索結果のユーザ選択、およびクエリを提示したあとにユーザに表示されるページのシーケンスを、そのツールバープラグインによって収集することができる。
【００１５】
受信コンポーネント１０６は、ユーザヒストリデータ１０４のサブセットを受信する。品質指示（quality indicator）コンポーネント１０８は、受信コンポーネント１０６と通信して、該受信コンポーネント１０６からユーザヒストリデータ１０４のサブセットを受信する。品質指示コンポーネント１０８は、層割り当ての品質の指示（indication）１１０を生成することができ、該層割り当ては、デジタルアイテムが階層化ストレージシステム内のどこに割り当てられるべきかを示す。例えば、品質の指示は、以下で詳述される層割り当て品質メトリックに準拠することができる。さらに、品質指示コンポーネント１０８のオペレーションを、以下でさらに詳細に説明する。
【００１６】
次に図２を参照して説明すると、図２には品質指示コンポーネント１０８の例が図示されている。品質指示コンポーネント１０８は、重み決定コンポーネント２０２、負荷決定コンポーネント２０４、層決定コンポーネント２０６、およびユーティリティ決定コンポーネント２０８を含む。重み決定コンポーネント２０２は、品質指示コンポーネント１０８によって使用される各クエリに割り当てる重みを決定して、階層化ストレージシステムに対応する層割り当ての品質の指示を生成する。一例では、重み決定コンポーネント２０２によって決定される重みは、（例えば、クエリログから確認される）クエリの発行の頻度に少なくとも部分的に基づくものとすることができる。
【００１７】
負荷決定コンポーネント２０４は、特定のクエリが検索コンポーネント（例えば、検索エンジン、データベースシステムなど）によって実行されたとき観察されるシステム負荷を決定する。システム負荷は、特定のクエリが処理された間に検索コンポーネントによって処理されるクエリの数、特定のクエリが実行された間に検索結果を取り出すのに費やされた処理サイクルの数、または検索コンポーネントが一般にどの程度「稼働（busy）」していたかに少なくとも部分的に基づくものとすることができる。
【００１８】
層決定コンポーネント２０６は、ある特定の層が負荷決定コンポーネント２０４によって決定されたシステム負荷の下、（特定のクエリに関する）デジタルアイテムの検索に最後に検索される層となる確率を決定することができる。通常、あるクエリが検索コンポーネント（例えば、検索エンジン）に入力されると、まず、典型的に下位の層に比べて小さいがアクセス時間と取り出し時間が高速な上位の層において取り出しが実行される。上位の層で取得された結果の数および品質、ならびに現在のシステム負荷に応じて、取り出しが下位の層で実行されることもあり、実行されないこともある。したがって、上述したように、層決定コンポーネント２０６は、ある特定の層が（決定されたシステム負荷の下で特定のクエリに対する）デジタルアイテムの検索に最後に検索された層となる確率を決定することができる。この確率は階層化ストレージシステム内の層毎に決定することができる。
【００１９】
ユーティリティ決定コンポーネント２０８は、ある特定の層で取り出しが終了すると、（特定のクエリに対する）検索結果品質の指示を決定するが、任意の適切なメトリックを使用して該検索結果品質の指示を計算することができる。一例では、ＮＤＣＧ（Normalized Discounted Cumulative Gain）を使用して、検索結果品質の指示を決定することができる。別の例では、ＭＡＰ（Mean Average Precision）を使用して、検索結果品質の指示を決定することができる。さらに別の例では、Ｑ−ｍｅａｓｕｒｅを使用して検索結果品質の指示を決定することができる。したがって、ユーティリティ決定コンポーネント２０８は、任意の適切な機構/メトリックスを使用して、ある特定の層で取り出しが終了するときの特定のクエリに対する検索結果品質の指示を決定することができることがわかる。
【００２０】
重み決定コンポーネント２０２によって決定される重み、負荷決定コンポーネント２０４によって決定されるシステム負荷、層決定コンポーネント２０６によって決定される確率、およびユーティリティ決定コンポーネント２０８によって決定される検索結果品質の指示を、品質指示コンポーネント１０８が使用して、層割り当ての品質の指示を決定することができる。
【００２１】
一例によれば、以下の式を使用して、層割り当て品質メトリックを定義することができ、また以下の式は、品質指示コンポーネント１０８によって層割り当ての品質の指示を決定するのに使用される。
【００２２】
【数１】
2011508340.tif 000003
【００２３】
2011508340.tif 000004
【００２４】
しかしながら、全ての可能なクエリの数は無限であることが理解されよう。したがって、観察されたクエリＱ’のセットは、品質指示コンポーネント１０８によって、全ての可能なクエリの分布の概算値として使用される。一例では、これらの観察されたクエリＱ’を、複数の観察されたクエリを含むデータリポジトリ（例えば、ユーザヒストリデータ）からランダムに選択することができ、この場合、任意のクエリを選択する確率ｑ∈Ｑ’を、検索コンポーネント（例えば、検索エンジン、データベース管理システムなど）によって受信されるランダムクエリを選択する可能性として計算することができる。別の例では、観察されるクエリＱ’のセットは、該観察されるクエリＱ’が全ての可能なクエリを表すように選択されることもある。例えば、クエリＱ’は、ある特定の長さ（ワード数、文字数などを指標とする）を有するクエリの数が閾値を超えないように選択されることがある。さらに、異なる主題に向けられたクエリを選択することができる。さらに別の例では、クエリＱ’は、そのようなクエリに関連付けられたユーザデータの量に基づいて選択されることがある。例えば、クエリＱ’は、クエリに対する応答として提供される１つまたは複数の検索結果および/または広告にユーザがクリックすることなど、クエリに関連付けられたシーケンシャルのユーザデータを有するクエリに制限されることもある。観察されたクエリのサブセットの選択に適切な任意の手法が、添付の特許請求の範囲の範囲内に含まれるように考慮され、意図されていることを理解されたい。
【００２５】
2011508340.tif 000005
【００２６】
クエリＱ’および対応する結果のセットを用いて、以下のアルゴリズムにより層割り当て品質のメトリックを定義することができ、また、以下のアルゴリズムは、品質指示コンポーネント１０８によって層割り当ての品質の指示を決定するのに使用される。
【００２７】
【数２】
2011508340.tif 000006
【００２８】
2011508340.tif 000007
【００２９】
2011508340.tif 000008
【００３０】
特定の例では、ユーティリティ決定コンポーネント２０８は、以下のアルゴリズムを利用して、ｔ番目の層で取り出しが終了するときの検索結果品質の指標を決定することができる。このアルゴリズムはＮＤＣＧの変更（modification）である。
【００３１】
【数３】
2011508340.tif 000009
【００３２】
上記（３）において、Ｎは、正規化係数であり、Ｒt（ｑ）は、層１から層ｔに格納されたＲ（ｑ）内のデジタルアイテムの順序付けされたサブセットであり、ｒｅｌ（ｄ）は、デジタルアイテムｄの関連スコア（relevance score）であり、ｒａｎｋ（ｄ）は、デジタルアイテムのＲt（ｑ）内のランク位置である。なお、ｒａｎｋ（ｄ）は、より多くの関連デジタルアイテムがより下位（より深い）層に存在するとき、ｔに応じて異なることがあり、取り出しが層ｔを超えていないときは、それらのデジタルアイテムが取り出されないこともある。上述したように、ＮＤＣＧの変更を使用することは、現在の層割り当てが与えられた特定のクエリに対する検索結果品質の１つの可能な指標にすぎず、取り出される関連結果の比率（proportion）などの他の指標を利用することもできる。
【００３３】
2011508340.tif 000010
【００３４】
次に図３を参照して説明すると、図３には、階層化ストレージシステムに対する層割り当てを自動的に更新するのを容易にする例示システム３００が図示されている。システム３００は、複数の層を含むことができる階層化ストレージシステム３０２を備え、その複数の層の各々を、Ｗｅｂページ、イメージ、ドキュメント、および／または同様のものなど、１つまたは複数のデジタルアイテムを格納するのに使用することができる。検索コンポーネント３０４は、受信したクエリに少なくとも部分的に基づいて、階層化ストレージシステム３０２に格納されたデジタルアイテムの検索を実行する。例えば、検索コンポーネント３０４は、クエリを受信したことに応答して階層化検索インデックスを通して検索するように構成された検索エンジンとすることができる。別の例では、検索コンポーネント３０４は、クエリの受信に応答してストレージ（例えば、メモリ、ハードドライブ）の階層を検索するのに使用されるデータベース管理システムの一部とすることもできる。さらに別の例では、検索エンジン３０４は、コンピュータ上のアイテムを検索するのに使用されるデスクトップ検索モジュールとすることもできる。他の検索コンポーネントも意図されている。
【００３５】
データストア１０２は、検索コンポーネント３０４から受信することができるユーザヒストリデータ１０４を保持する。例えば、検索コンポーネント３０４に提供されたクエリ、検索結果が提供されたあとのユーザアクション、およびクエリに応答してユーザに提供された検索結果のセットを、ユーザヒストリデータ１０４に格納することができる。受信コンポーネント１０６は、ユーザヒストリデータ１０４のサブセットを受信する。上述したように、品質指示コンポーネント１０８は、層割り当ての品質の指示１１０を生成することができる。一例では、指示１１０は、品質指示コンポーネント１０８によって生成されると、コンピュータ読取可能媒体に格納することもできる。
【００３６】
更新コンポーネント３０６は、指示１００を受信し、該指示１１０に少なくとも部分的に基づいて、改善された層割り当てを出力することができる。例えば、更新コンポーネント３０６は、他の可能な層割り当ておよび対応する品質の指示を受信し、最高品質の指示に対応する層割り当てを選択することができる。例えば、更新コンポーネント３０６は、ヒューリスティック（heuristic）を使用して、（定義された層割り当て品質メトリックに対して）最適な割り当て、または実質的に最適な層割り当てを決定することができる。別の例では、以下で詳述される機械学習技法を、更新コンポーネント３０６が利用して、改善された層割り当てを出力することができる。次いで、デジタルアイテム３１０を、改善された層割り当て３０８に少なくとも部分的に基づいて、階層化ストレージシステム３０２に割り当てることができる。
【００３７】
2011508340.tif 000011
【００３８】
【数４】
2011508340.tif 000012
【００３９】
可能な層割り当てのセットＴを、静的なランク付けスキームのパラメータなど、なんらかの変数によってパラメータ化される代替割り当てのセットまたは割り当てのグループとして定義することができる。次いで、更新コンポーネント３０６は、機械学習技法を使用して代替割り当てのセットを検索し、当該割り当てのうちの１つを最適または実質的に最適であるとして識別することができる。例えば、更新コンポーネント３０６は、ニューラルネットワーク、回帰ツリー（regression tree）、ベイジアン（Bayesian）ネットワーク、または任意の他の適切な機械学習技法を使用して、指示１１０を最適化または実質的に最適化する階層化割り当てを決定することができる。
【００４０】
さらに、更新コンポーネント３０６は、デジタルアイテム３１０を階層化ストレージシステム３０２内の特定の層に割り当てるのに使用される階層ポリシーを、改善された層割り当て３０８および／またはユーザヒストリデータ１０４のサブセットに少なくとも部分的に基づいて決定することができる。階層化ポリシーを使用して、デジタルアイテムを格納するときに階層化ストレージシステム３０２のどの層を使用するかを決定することができる。例えば、階層化ポリシー３１２は、１つまたは複数のクエリに応答して返されることのある検索可能アイテムの様々な特徴を考慮に入れることができる。このような特徴には、リンク構造から得られる静的ランキング（例えば、デジタルアイテムのページランク）、そのデジタルアイテムを含むドメインのランク、検索エンジン結果の中におけるそのデジタルアイテムの人気（popularity）、あるデジタルアイテムの中の単語の数、あるデジタルアイテムの中のイメージの色のスペクトルなどが含まれ得る。これらの特徴の各々は、更新コンポーネント３０６によってパラメータ化され得る。言い換えれば、これらの特徴に、対応するデジタルアイテムを階層化ストレージシステム３０２の層に割り当てるのに階層化ポリシーによって使用される重みを、割り当てることができる。更新コンポーネント３０６は、機械学習手法を使用して特徴に割り当てるべき重みを学習することができ、階層化ポリシーは、デジタルアイテムを階層化ストレージシステム３０２の層に割り当てるのに使用されることもある。
【００４１】
次に図４を参照して説明すると、図４には、複数の可能な層割り当てに基づいて層割り当ての更新を容易にする例示システム４００が図示されている。システム４００は、層割り当ての品質の指示を生成することができる品質指示コンポーネント１０８を含む。より具体的には、品質指示コンポーネント１０８は、第１の層割り当てからＮ番目の層割り当てまでの品質の指示を、少なくとも部分的にユーザヒストリデータ１０４に基づいて生成することができる。更新コンポーネント３０６は、（定義された層割り当て品質メトリックに対応する値とすることができる）品質の指示を受信し、結果として得られる改善された層割り当てがいずれの個々の層割り当てよりも高い品質（品質指示コンポーネント１０８よって決定される）を有するように、複数の異なる層割り当てを組み合わせることができる。更新コンポーネント３０６は、層割り当て４０２〜４０４に対応する品質の指示および／またはユーザヒストリデータ１０４のサブセットに少なくとも部分的に基づいて、異なる層割り当てを組み合わせることができる。
【００４２】
より詳細には、層割り当てを組み合わせることは、アルゴリズム（４）の特定のインスタンス化とすることができ、この場合、可能な割り当てのセットＴは、個々の層割り当ての可能な組み合わせのセットとすることができる。可能な組み合わせのセットを、静的ランキングスキーマのパラメータなどの何らかの変数によってパラメータ化することができる。更新コンポーネント３０６は、機械学習手法を使用して、定義された層割り当て品質メトリックに対して最適または実質的に最適である個々の層割り当ての組み合わせを決定することができる。さらに、上述したように、更新コンポーネント３０８は、デジタルアイテムを階層化ストレージシステムの層に割り当てるのに使用される階層化ポリシーを、改善された層割り当て４０６に少なくとも部分的に基づいて生成し、または更新することができる。
【００４３】
次に図５〜図８を参照して説明すると、様々な例示方法が図示され、記載されている。これらの方法は、順次実行される一連のアクトであるように記載されているが、当然に理解されるように、これらの方法はその順序には制限されない。例えば、一部のアクトが本明細書に記載されているものとは異なる順序で起こることもある。さらに、あるアクトが別のアクトと同時に起こることもある。さらに、一部の例では、本明細書に記載される方法を実装するのにすべてのアクトが必要とされるとは限らない。
【００４４】
さらに、本明細書に記載されているアクトは、１つまたは複数のプロセッサによって実装すること、および／またはコンピュータ読取可能媒体に格納することができるコンピュータ実行可能命令とすることができる。コンピュータ実行可能命令は、ルーチン、サブルーチン、プログラム、実行スレッドなどを含むことがある。さらに、検索エンジンおよび／またはデータベース管理システムにおける層割り当ては、少なくとも部分的に本明細書に記載の方法に基づいて決定することができる。さらに、方法のアクトの結果を、コンピュータ読取可能媒体に格納することができ、および／またはディスプレイデバイス上に表示することなどもできる。
【００４５】
図５を参照して具体的に説明すると、図５には、層割り当ての品質の指示を決定するための例示方法５００が図示されている。この方法５００は５０２で開始し、５０４でユーザヒストリデータを受信する。例えば、ユーザヒストリデータは、ユーザによって発行されたクエリ、クエリに応答してユーザに提供される検索結果、検索結果のユーザ選択、およびクエリを発行したあとにユーザによって参照されたページのシーケンスを含むことができる。ユーザヒストリデータは、ラベル付きデータ（labeled data）を含むこともあり、この場合、クエリに対する検索結果の関連性は、ユーザによって明示的に定義されている。
【００４６】
５０６において、層割り当ての品質の指示は、ユーザヒストリデータのサブセットに少なくとも部分的に基づいて生成される。方法５００は５０８で完了する。
【００４７】
次に図６を参照して説明すると、図６には、階層化ストレージシステムに対する層割り当ての品質の指示を決定するのを容易にする方法６００が図示されている。方法６００は６０２で開始し、６０４においてクエリに割り当てる重みが決定される。例えば、重みはクエリの発行頻度に応じたものとすることができる。別の例では、１または複数のユーザは明示的に、クエリの相対的重要度を示すようにクエリに重みを割り当てることができる。
【００４８】
６０６において、クエリに対するシステム負荷の背景（background）が決定される。上述したように、システム負荷は、クエリが処理される時点における、検索エンジンまたはデータベース管理システムなどの検索コンポーネントによって処理されるクエリの数に関連することがある。
【００４９】
６０８において、検索エンジンが上記システム負荷の下にあるときに、ある特定の層が訪問される最下位の層となる確率が決定される。例えば、この確率は、検索可能デジタルアイテムを格納するのに使用される各層について決定することができる。
【００５０】
６１０において、クエリに対応するデジタルアイテムを階層化ストレージシステムに格納するのに使用される層割り当てについて、該層割り当ての品質の指示が決定される。品質の指示は、上記重み、上記システム負荷、および上記決定された層の確率に少なくとも部分的に基づいて決定される。一例では、決定された品質の指示を、少なくとも一時的に、コンピュータ読取可能媒体に格納することができる。方法６００は６１２で終了する。
【００５１】
次に図７を参照して説明すると、図７には、（例えば、定義された層割り当て品質メトリックに対して最適化または実質的に最適化される）最適または実質的に最適な層割り当てを決定するための方法７００が図示されている。方法７００は、７０２で開始し、７０４において複数の異なる層割り当てを受信する。７０６において、ユーザヒストリデータを受信する。上述したように、ユーザヒストリデータは、クエリ、クエリに応答して提供された検索結果、および／またはクエリに応答して提供された検索結果に対するユーザ選択を含むことができる。
【００５２】
７０８において、複数の異なる層割り当てのサブセットに対する品質の指示を決定する。７１０において、層割り当ては、結果として得られる組み合わせが全ての個々の層割り当てよりも高い品質の指示を有するように、組み合わされる。方法７００は７１２で終了する。
【００５３】
次に図８を参照して説明すると、図８には、階層化ポリシーの更新を容易にする方法８００が図示されている。一例では、階層化ポリシーを使用してデジタルアイテムを検索エンジンインデックスの層に割り当てる検索エンジンが、方法８００のアクトを使用して階層化ポリシーを更新することができる。方法８００は８０２で開始し、８０４においてユーザヒストリデータを受信する。８０６において、層割り当ての品質の指示を決定する。８０８において、改善された層割り当てが、ユーザヒストリデータおよび／または８０６で決定された品質の指示に少なくとも部分的に基づいて決定される。８１０において、階層化ポリシーが、ユーザヒストリデータおよび改善された層割り当てに少なくとも部分的に基づいて更新される。例えば、改善された層割り当ては、ユーザヒストリデータに関連するデジタルデータを意図していることがあり、階層化ポリシーを使用して、改善された層割り当てでは意図されていなかったデジタルアイテムを特定の層に割り当てることがある。方法８００はステップ８１２で終了する。
【００５４】
次に図９を参照して説明すると、図９には、本明細書に開示されるシステムおよび方法にしたがって使用することができる例示コンピューティングデバイス９００のハイレベルの図が示されている。例えば、コンピューティングデバイス９００は、検索エンジンシステムにおいて使用されることもある。別の例では、コンピューティングデバイス９００は、データベース管理システムにおいて使用されることがある。コンピューティングデバイス９００はサーバとすることもあり、または、パーソナルコンピュータ、パーソナルデジタルアシスタントなど、従来からクライアントデバイスと考えられるデバイスとして使用されることもある。コンピューティングデバイス９００は、メモリ９０４に格納された命令を実行する少なくとも１つのプロセッサを含む。命令は、例えば、上述した１つまたは複数のコンポーネントによって実行されるものと記載された機能を実装するための命令とすることができ、あるいは上述の方法の１つまたは複数を実装するための命令とすることもできる。プロセッサ９０２は、システムバス９０６を通してメモリにアクセスすることができる。メモリ９０４は、実行可能命令を格納することに加え、デジタルアイテム、少なくとも層割り当ての一部、１つまたは複数の層割り当ての品質の指示などを格納することもできる。
【００５５】
コンピューティングデバイス９００は、さらに、システムバス９０６を通してプロセッサ９０２によってアクセス可能なデータストア９０８を備える。データストア９０８は、実行可能命令、１つまたは複数の層割り当て、層割り当ての品質の指示、ユーザヒストリデータ、ラベル付けされたデータなどを含むことができる。コンピューティングデバイス９００は、外部デバイスがコンピューティングデバイス９００と通信できるようにする入力インタフェース９１０も備える。例えば、入力インタフェース９１０を使用して、ネットワークを通してユーザからクエリを受信することができる。コンピューティングデバイス９００は、コンピューティングデバイス９００と１つまたは複数の外部デバイスとのインタフェースをとる出力インタフェースも備える。例えば、コンピューティングデバイス９００は、出力インタフェース９１２を通して検索結果を表示することができる。
【００５６】
さらに、コンピューティングデバイス９００は単一のシステムとして図示されているが、当然に理解されるように、コンピューティングシステム９００を分散システムとすることができる。したがって、例えば、複数のデバイスがネットワーク接続を通して通信することができ、コンピューティングデバイス９００によって実行されるものと記載されているタスクを集約的に実行することもある。
【００５７】
本明細書で使用される「コンポーネント」および「システム」という用語は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせを含むように意図されている。したがって、例えば、システムまたはコンポーネントは、プロセス、プロセッサ上で実行されるプロセス、またはプロセッサとすることができる。さらに、コンポーネントまたはシステムを、単一のデバイス上に配置することも、複数のデバイスにわたって分散することもできる。
【００５８】
複数の例は説明の目的のために提供されたものであることに留意されたい。これらの例は、特許請求の範囲の記載を限定するものと解されるものではない。さらに、以上から認識されるように、本明細書に提供された例の順序を変えたとしても、これらの例は依然として特許請求の範囲の範囲内に属するものである。
【図１】
2011508340.tif 000014
【図２】
2011508340.tif 000015
【図３】
2011508340.tif 000016
【図４】
2011508340.tif 000017
【図５】
2011508340.tif 000018
【図６】
2011508340.tif 000019
【図７】
2011508340.tif 000020
【図８】
2011508340.tif 000021
【図９】
2011508340.tif 000022
【国際調査報告】
2011508340.tif 000023
2011508340.tif 000024