(57)【要約】【課題】ページランク付けをより効率的に計算するための方法およびシステムを提供すること。【解決手段】ウェブページの相互接続を示す相互接続度行列を使用して、新しい行列が計算される。新しい行列を使用して、各ウェブページの隣接ウェブページに関連する値の平均値を計算する。この新しい行列の２次固有ベクトルが計算され、固有ベクトルに従って、ウェブページのインデックスが再ラベル付けされる。相互接続度の情報を保存するデータ構造もまた、好ましくは、その固有ベクトルに従って物理的にソートされる。ウェブページランク付け計算で使用される行列を再編成することによって、キャッシングがより効率的に実施され、より高速なページランク付け技術がもたらされる。リソース分配を効率的に割り当てるための方法についても説明される。【選択図】図７
2006065855.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトの集合内のオブジェクトをランク付けする方法であって、前記集合内の前記オブジェクトのうちの１つまたは複数は、前記集合内の他のオブジェクトとのリンクを有し、
前記リンクに関する、前記集合内の他のオブジェクトとの近接度に従って、前記オブジェクトを順序付けるステップと、
前記オブジェクトの前記順序付けに従って、オブジェクト間の前記リンクをメモリ内に保存するステップとを備えることを特徴とする方法。
【請求項２】
前記オブジェクト集合およびリンクは第１の行列によって表され、前記順序付けは、
前記第１行列に対して第２の行列を計算すること、
前記第２行列の２次固有ベクトルの近似値を求めること、および
前記２次固有ベクトルに近似する値に対して前記オブジェクトをラベル付けすることを備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記第２行列は、それぞれのオブジェクトについて、前記各オブジェクトにリンクされたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項２に記載の方法。
【請求項４】
前記メモリ内に保存された前記リンクを使用して、前記オブジェクトのランク付けを計算することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記計算は、前記メモリから最近アクセスされたリンクを一時的に保存するためにキャッシュを使用することを備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記オブジェクトはウェブページであることを特徴とする請求項１に記載の方法。
【請求項７】
オブジェクトの集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記集合内の前記オブジェクトのうちの１つまたは複数は、前記集合内の他のオブジェクトとのリンクを有し、前記コンピュータ実行可能命令は、
前記リンクに関する、前記集合内の他のオブジェクトとのその近接度に従って前記オブジェクトを順序付けるステップ、および
前記オブジェクトの前記順序付けに従って、オブジェクト間の前記リンクをメモリ内に保存するステップを実施することを特徴とするコンピュータ読取り可能媒体。
【請求項８】
前記オブジェクト集合およびリンクは第１の行列によって表され、前記順序付けは、
前記第１行列に対して第２の行列を計算するステップ、
前記第２行列の２次固有ベクトルの近似値を求めるステップ、および
前記２次固有ベクトルに近似する値に対して前記オブジェクトをラベル付けするステップを含むことを特徴とする請求項７に記載のコンピュータ読取り可能媒体。
【請求項９】
前記第２行列は、それぞれのオブジェクトについて、前記各オブジェクトにリンクされたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項８に記載のコンピュータ読取り可能媒体。
【請求項１０】
前記コンピュータ実行可能命令は、
前記メモリ内に保存された前記リンクを使用して、前記オブジェクトのランク付けを計算するステップをさらに実施することを特徴とする請求項７に記載のコンピュータ読取り可能媒体。
【請求項１１】
前記ランク付け計算は、前記メモリから最近アクセスされたリンクを一時的に保存するためにキャッシュを使用することを備えることを特徴とする請求項１０に記載のコンピュータ読取り可能媒体。
【請求項１２】
相互接続されたオブジェクトの集合からのオブジェクトを順序付けする方法であって、前記オブジェクトの相互接続は第１の行列によって表され、
前記第１行列に対して第２の行列を計算すること、
前記第２行列の２次固有ベクトルの近似値を求めること、および
前記２次固有ベクトルに近似する値に対して前記オブジェクトを順序付けることを備えることを特徴とする方法。
【請求項１３】
前記オブジェクトはウェブページであることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記第２行列は、それぞれのオブジェクトについて、前記各オブジェクトに結合されたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項１２に記載の方法。
【請求項１５】
２次固有ベクトルの近似値を求める方法であって、
第１ベクトルの初期値を選択するステップ、ならびに
前記第２行列に前記第１ベクトルを掛けて、第２のベクトルを取得するステップ、
前記第２ベクトルを中央に合わせせるステップ、および
前記第１ベクトルの値を前記第２ベクトルの値で置き換えるステップ
を終了条件が満たされるまで反復するステップ
を備えることを特徴とする請求項１２に記載の方法。
【請求項１６】
前記第２ベクトルを中央に合わせる前記ステップは、前記第２ベクトルのエントリの平均値がゼロになるように、前記第２ベクトルの各エントリに固定量を加算することを備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記第２ベクトルを正規化するステップをさらに備えることを特徴とする請求項１５に記載の方法。
【請求項１８】
相互接続されたオブジェクトの集合内のオブジェクトの順序付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記オブジェクトの相互接続は第１の行列によって表され、前記コンピュータ実行可能命令は、
前記第１行列に対して第２の行列を計算するステップ、
前記第２行列の２次固有ベクトルの近似値を求めるステップ、および
前記第２固有ベクトルに近似する値に対して前記オブジェクトを順序付けるステップを実施することを特徴とするコンピュータ読取り可能媒体。
【請求項１９】
前記オブジェクトはウェブページであることを特徴とする請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２０】
前記第２行列は、それぞれのオブジェクトについて、前記各オブジェクトに結合されたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２１】
２次固有ベクトルの近似値を求めることは、
第１ベクトルの初期値を選択すること、ならびに
前記第２行列に前記第１ベクトルを掛けて、第２のベクトルを取得すること、
前記第２ベクトルを中央に合わせること、および
前記第１ベクトルの値を前記第２ベクトルの値で置き換えるステップを終了条件が  満たされるまで反復することを備えることを特徴とする請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２２】
前記第２ベクトルを中央に合わせることは、前記第２ベクトルのエントリの平均値がゼロになるように、前記第２ベクトルの各エントリに固定量を加算することを備えることを特徴とする請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２３】
前記オブジェクトは、複数のサーバを含む分散コンピューティングシステム内のリソースであり、前記コンピュータ読取り可能媒体は、前記複数のサーバ間の相互接続された前記リソースのうちの１つまたは複数を割り当てることをさらに容易にし、
前記順序付けに従って、前記複数のサーバに前記リソースを割り当てることをさらに実施することを特徴とする請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２４】
相互接続されたオブジェクトの集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記相互接続についての記述は、前記オブジェクトの第１の順序付けに従ってメモリ内に保存され、前記コンピュータ実行可能命令は、
前記相互接続よる他のオブジェクトとのその近接度に対して前記オブジェクトを再順序付けするステップを実施することを特徴とするコンピュータ読取り可能媒体。
【請求項２５】
前記コンピュータ実行可能命令は、
前記オブジェクトの前記再順序付けを使用することによって、前記オブジェクトのランク付けを計算するステップをさらに実施することを特徴とする請求項２４に記載のコンピュータ読取り可能媒体。
【請求項２６】
前記計算は、前記メモリから最近アクセスされた相互接続記述情報を一時的に保存するためにキャッシュを使用することを備えることを特徴とする請求項２５に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、インターネット検索の分野に関し、より詳細には、行列計算によるウェブページのランク付けに関する。
【背景技術】
【０００２】
インターネットは現在、ハイパーリンクによって相互接続された何十億ものウェブページを含む。インターネットのユーザは一般に、ウェブブラウズアプリケーション（「ブラウザ」）を使用して、ハイパーリンクを選択しクリックすることによって、またはブラウザが特定のウェブページに直接にアクセスすることを可能にする「ユニフォームリソースロケータ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）」（「ＵＲＬ」）を手入力することによって、こうしたページ間を移動する。しかし、ユーザはしばしば、情報の特定のアイテムを含むページを求めてインターネットを検索することを望む。インターネットの規模のため、ユーザがインターネットを手作業でブラウズし、関連のページを検索することは非実用的である。そうではなく、ユーザは一般に、インターネット検索のために開発されたコンピュータアプリケーションである検索エンジンを呼び出す。検索エンジンは一般に、サーバコンピューティング装置内に常駐し、クライアントユーザからのクエリを受け付ける。検索エンジンは通常、ウェブページのインデックスに関連付けられており、ユーザのクエリに応答して、そのクエリを満たすページのリストを返す。
【０００３】
現代の検索エンジンによっては、より適切な結果をユーザに提供するために、ウェブページをランク付けする。多くの検索エンジンは行列によってウェブページの相互接続を表し、またページランク付けを見つけることは、行列の主固有ベクトルを見つけることに等しい。こうした検索エンジンについては、非特許文献１に記載されている。同文献全体を、それが教示するすべてのために、そのいかなる部分をも除外せずに、本明細書中で参考として援用する。一般に、反復では、ウェブページのランク付けを行い、相互接続行列に渡ってそれを伝播して、ページの更新されたランク付けを取得する。最終的に、すべてのページのランク付けは、主固有ベクトルのエントリである固定値に集束する。これは、マルコフ連鎖の定常分布を計算することに等しい。行列のサイズのために、固有ベクトル、したがってページランクの計算は、既存のシステムにおいて、計算集約型の（ｃｏｍｐｕｔａｔｉｏｎａｌｌｙ  ｉｎｔｅｎｓｉｖｅ）タスクであり、すべてのページの値が固有ベクトルに集束する前に、行列操作の複数の反復を必要とする。ページランクをより効率的に計算するために、研究者は、ページランク付けをより迅速に計算し、またはその近似値を求める方法を見つけるため、相互接続行列の特定の数学的特性を利用しようと試みてきた。
【０００４】
いくつかの理由により、ページランク付けの計算は、計算集約型のタスクであり得る。１つの理由は、単に情報量の大きさであり、何十億ものウェブページがあると、高速のプロセッサ上でも、またすべてのデータをプロセッサが即時に使用可能であるとしても、必要な計算の実施には、多大な時間を要し得る。しかし、別の理由は、一般にすべてのデータをプロセッサが即時に使用できるとは限らず、ＲＡＭなどの記憶域、またはハードドライブなどの２次記憶装置からのデータ取出しを必要とすることである。ＲＡＭにアクセスするには一般に、アクセス当たり約１００ナノ秒かかり、ハードドライブにアクセスするには一般に、アクセス当たり約５〜１０ミリ秒かかる。これは、そうでなければ高速であるプロセッサにとってのボトルネックとなり、１秒に１０億の操作を実施することができるプロセッサは、１秒当たり約１０００万エントリ、すなわちその能力の約１パーセントの速度でデータを読み出すことに制限される。
【０００５】
さらに、既存のページランク付け技術によって実施される多くの行列操作は、ウェブページ用に任意のインデックスラベルを使用する。結果として、対応する相互接続度行列の行（または列）間には関係がない。例えば、ページ＃１が、ページ＃２２６、＃４，２５０，２２１および＃１，０００，０００，１５２とのリンクを含む場合、相互接続度行列の対応する行＃１は、列のエントリ＃２２６、＃４，２５０，２２１および＃１，０００，０００，１５２を含む。こうしたページを取り出すために、３つのアクセスが、見込みのある、３つの非常に離れたメモリ域から行われなければならない。
【０００６】
研究者は、キャッシングのシステムも同様に研究してきた。キャッシュは一般に、より低速の、より安価なメモリから取り出されるデータまたは命令を一時的に保持する高速メモリの小さい領域である。しばしば使用されるデータまたは命令をキャッシュ内に一時的に保存することによって、プロセッサは、こうしたデータまたは命令をより低速なメモリから取り出す必要がなくなる。したがって、キャッシュを効果的に使用すると、コンピューティング装置上で多くの操作が実施される速度が向上する。
【０００７】
【非特許文献１】Ｐａｇｅ  ｅｔ  ａｌ．，  “Ｔｈｅ  ＰａｇｅＲａｎｋ  ｃｉｔａｔｉｏｎ  ｒａｎｋｉｎｇ：  Ｂｒｉｎｇｉｎｇ  ｏｒｄｅｒ  ｔｏ  ｔｈｅ  ｗｅｂ，”Ｓｔａｎｆｏｒｄ  Ｄｉｇｉｔａｌ  Ｌｉｂｒａｒｉｅｓ  Ｗｏｒｋｉｎｇ  Ｐａｐｅｒ，  Ｊａｎｕａｒｙ  １９９８
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ページランク付けをより効率的に計算するための方法およびシステムが提供される。
【課題を解決するための手段】
【０００９】
ウェブページの相互接続を示す相互接続度行列を使用して、新しい行列が計算される。新しい行列を使用して、各ウェブページの隣接ウェブページに関連する値の平均値を計算する。この新しい行列の２次固有ベクトルが計算され、固有ベクトルに従って、ウェブページのインデックスが再ラベル付けされる。相互接続度の情報を保存するデータ構造も同様に、好ましくは、その固有ベクトルに従って物理的にソートされる。ウェブページランク付け計算で使用される行列を再編成することによって、キャッシングがより効率的に実施され、より高速なページランク付け技術がもたらされる。
【００１０】
ある態様では、オブジェクトの集合内のオブジェクトをランク付けする方法が提供され、集合内のオブジェクトのうちの１つまたは複数は、集合内の他のオブジェクトとのリンクを有し、この方法は、リンクに関する、集合内の他のオブジェクトとのその近接度に従ってオブジェクトを順序付けること、およびオブジェクトの順位付けに従って、オブジェクト間のリンクをメモリ内に保存することを備える。
【００１１】
別の態様では、オブジェクト集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体が提供され、オブジェクト集合内のオブジェクトのうちの１つまたは複数は、オブジェクト集合内の他のオブジェクトとのリンクを有し、該コンピュータ実行可能命令は、リンクに関する、集合内の他のオブジェクトとのその近接度に従って、オブジェクトを順序付けるステップ、およびオブジェクトの順位付けに従って、オブジェクト間のリンクをメモリ内に保存するステップを実施する。
【００１２】
別の態様では、相互接続されたオブジェクトの集合からのオブジェクトを順序付ける方法が提供され、オブジェクトの相互接続は第１の行列で表され、この方法は、第１行列に対して第２の行列を計算すること、第２行列の２次固有ベクトルの近似値を求めること、および２次固有ベクトルに近似する値に対してオブジェクトを順序付けることを備える。
【００１３】
別の態様では、相互接続されたオブジェクトの集合内のオブジェクトの順序付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体が提供され、オブジェクトの相互接続は第１の行列で表され、このコンピュータ実行可能命令は、第１行列に対して第２の行列を計算するステップ、第２行列の２次固有ベクトルの近似値を求めるステップ、および２次固有ベクトルに近似する値に対してオブジェクトを順序付けるステップを実施する。
【００１４】
別の態様では、相互接続されたオブジェクトの集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体が提供され、相互接続についての記述は、該オブジェクトの第１の順序付けに従ってメモリ内に保存され、このコンピュータ実行可能命令は、相互接続よる他のオブジェクトのその隣接度に対してオブジェクトを順序付けるステップを実施する。
【００１５】
添付の特許請求の範囲は本発明の特徴について具体的に述べているが、本発明およびその利点は、添付の図面と併せて考慮される以下の詳細な説明から最もよく理解される。
【発明を実施するための最良の形態】
【００１６】
ページランク付けを効率的に計算するための方法およびシステムについて、好ましい実施形態に関して次に述べるが、しかし、本発明の方法およびシステムは、ウェブページのページランク付けを計算することに限定されない。さらに、本明細書で述べる方法およびシステムは例示的なものにすぎず、本発明の精神および範囲から逸脱せずに、変更が行われ得ることが当業者には容易に理解されよう。
【００１７】
本発明は、添付の図面と併せ読まれるべき以下の詳細な説明によって、より完全に理解される。この説明では、同じ番号は、本発明の様々な実施形態内の類似の要素に言及している。本発明は、適切なコンピューティング環境内で実施されるものとして示されている。必須ではないが、本発明について、パーソナルコンピュータによって実行されるプロシージャなどのコンピュータ実行可能命令の一般的な文脈で述べる。プロシージャは一般に、特定のタスクを実装し、または特定の抽象データ型を実装するプログラムモジュール、ルーチン、関数、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステム構成で実施され得ることが当業者には理解されよう。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境内で実施されることもできる。分散コンピューティング環境内では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置内に置かれ得る。用語コンピュータシステムは、例えば分散コンピューティング環境内で見ることができるコンピュータのシステムに言及するために使用され得る。
【００１８】
図１に、本発明が実施され得る適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定について示唆するためのものではない。またコンピューティング環境１００は、例示的なオペレーティング環境１００内に示す構成要素のいずれか１つまたは組合せに関する依存関係または要件を有するものと解釈されるべきでない。本発明のある実施形態は例示的なオペレーティング環境１００内に示される各構成要素を含むが、本発明のより一般的な別の実施形態は、必須でない構成要素、例えば、ネットワーク通信で必要なもの以外の入出力装置を除外する。
【００１９】
図１を参照すると、本発明を実施するための例示的なシステムが、コンピュータ１１０の形の汎用コンピューティング装置を含んでいる。コンピュータ１１０の構成要素は、それだけに限らないが、処理装置１２０、システムメモリ１３０、ならびにシステムメモリを含めて様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１を含み得る。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバス構造のいずれかを使用したローカルバスを含めて、複数タイプのバス構造のいずれかであり得る。限定するためではなく、例を挙げると、こうしたアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとも呼ばれるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。さらに、コンピュータ１１０の構成要素は、メモリキャッシュ１２２を含み得る。メモリキャッシュから、処理装置１２０は、システムメモリ１３０からよりもさらに高速にデータにアクセスすることができる。メモリキャッシュ１２２は一般に、システムメモリ１３０から最も最近にアクセスされた、または処理装置１２０によって最も最近に処理されたデータを保存する。処理装置１２０は、システムメモリ１３０からデータを取り出す前に、そのデータがメモリキャッシュ１２２内に現在保存されているかどうかチェックし得る。そうである場合、「キャッシュヒット」がもたらされ、そのデータは、一般により低速なシステムメモリ１３０からではなく、メモリキャッシュ１２２から取り出される。
【００２０】
コンピュータ１１０は一般に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ１１０からアクセスすることができる任意の使用可能な媒体とすることができ、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体を含む。限定するためではなく、例を挙げると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータなどの情報を保存するための任意の方法または技術で実装された揮発性と不揮発性、取外し可能と取外し不可能媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を保存するために使用することができ、またコンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は一般に、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または搬送波や他のトランスポート機構などの変調されたデータ信号内の他のデータを実施し、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号内の情報を符号化するなどのやり方でその特性の１つまたは複数が設定されまたは変更された信号を意味する。限定のためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線などの無線媒体、および他の無線媒体が含まれる。上記内容のいずれかの組合せもまた、コンピュータ読取り可能媒体の範囲内に含まれるべきである。
【００２１】
システムメモリ１３０は、読出し専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３は一般に、ＲＯＭ１３１に保存される。ＲＡＭ１３２は一般に、処理装置１２０によって即時にアクセス可能であり、かつ／またはそれによる操作を現在受けているデータおよび／またはプログラムモジュールを含む。限定するためではなく、例示するために、図１に、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６およびプログラムデータ１３７を示す。
【００２２】
コンピュータ１１０は、他の取外し可能／取外し不可能、揮発性／不揮発性のコンピュータ記憶媒体をも含み得る。例示するためだけに、図１に、取外し不可能な不揮発性の磁気媒体から読み出しまたはそこに書き込むハードディスクドライブ１４１、取外し可能な不揮発性の磁気ディスク１５２から読み出しまたはそこに書き込む磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体などの取外し可能な不揮発性の光ディスク１５６から読み出しまたはそこに書き込む光ディスクドライブ１５５を示す。例示的なオペレーティング環境内で使用され得る他の取外し可能／取外し不可能、揮発性／不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は一般に、インターフェース１４０などの取外し不可能メモリインターフェースによってシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は一般に、インターフェース１５０などの取外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００２３】
上記で論じ、また図１に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ１１０のために、コンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータを提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６およびプログラムデータ１４７を保存するものとして示されている。こうした構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６およびプログラムデータ１３７と同じでも、それとは異なっていてもよいことに留意されたい。少なくともそれらがそれぞれ異なるコピーであることを示すために、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には異なる番号がここでは付与されている。ユーザは、タブレット又は電子デジタイザ、マイク、キーボード１６２、および一般にマウス、トラックボールまたはタッチパッドと称されるポインティング装置１６１などの入力装置を用いて、コンピュータ１１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどを含み得る。これらのおよび他の入力装置はしばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポートまたはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）などの他のインターフェースおよびバス構造によって接続されることもできる。モニタ１９１または他のタイプの表示装置もまた、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタ１９１は、タッチスクリーンパネルなどと一体化されることもできる。モニタおよび／またはタッチスクリーンパネルは、例えばタブレットタイプのパーソナルコンピュータ内など、コンピューティング装置１１０が組み込まれた筐体に物理的に結合され得ることに留意されたい。さらに、コンピューティング装置１１０などのコンピュータは、出力周辺インターフェース１９４などを介して接続され得るスピーカ１９７およびプリンタ１９６などの他の周辺出力装置をも含み得る。
【００２４】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、また図１にはメモリ記憶装置１８１だけが示されているが、コンピュータ１１０に関して上記で述べた要素の多くまたはすべてを一般に含む。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１、および広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークをも含み得る。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。例えば、本発明では、コンピュータ１１０は、データの移行元のソースマシンを含むことができ、リモートコンピュータ１８０は、宛先マシンを含み得る。しかし、ソースおよび宛先マシンは、ネットワークまたは他の任意の手段によって接続される必要はないが、その代わりに、データは、ソースプラットフォームによって書き込まれ、また宛先プラットフォームによって読み出されることができる任意の媒体を介して移行され得ることに留意されたい。
【００２５】
ＬＡＮネットワーキング環境内で使用される場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境内で使用される場合、コンピュータ１１０は一般に、モデム１７２、またはインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。内部にあることも、外部にあることもあるモデム１７２は、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続され得る。ネットワーク環境内では、コンピュータ１１０に関して示したプログラムモジュール、またはその一部は、リモートメモリ記憶装置内に保存され得る。限定のためではなく、例示するために、図１に、メモリ装置１８１内に常駐するリモートアプリケーションプログラム１８５を示す。図示するネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用され得ることが理解されよう。
【００２６】
図２に移ると、本発明が潜在的に利用されるコンピューティング環境の単純な例が示されている。この例示的な環境内では、コンピュータ２００は、通信媒体を介した通信を容易にするネットワークインターフェースカード（具体的には図示せず）を含む。図２に示す具体的な例では、コンピュータ２００は、物理接続を介してローカルエリアネットワーク２０６と通信する。代替方法として、コンピュータ２００は、ＷＷＡＮまたはＷＬＡＮ媒体を介して、あるいは他の通信媒体を介してローカルエリアネットワーク２０６と通信し得る。
【００２７】
コンピュータ２００のユーザは、ネットワーク媒体がサポートされる結果として、インターネット２０２にアクセスすることができる。例えば、コンピュータ２００は、ＬＡＮ２０６との物理接続を介して直接に、ＬＡＮ２０６上のリソースにアクセスする。図示された実施例内のＬＡＮ２０６は、コンピュータ２００の適切に認証されたユーザがインターネット２０２のリソースにアクセスすることを可能にするネットワークアクセスおよびプロキシサーバを含むと見なされる。
【００２８】
インターネット２０２は、コンピュータ２００のユーザに、ウェブページの形で提示される。ウェブページは、コンピュータ２００内に常駐するウェブブラウザアプリケーション２０８によって処理され、表示されるコンテンツおよび命令を含む。あるいは、ウェブブラウザアプリケーション２０８は、ネットワーク化されたコンピュータ２１０内に常駐し、リモート表示プログラムによって、コンピュータ２００上にグラフィカルに表示される。ウェブページは、他のウェブページとのハイパーリンクをも含み、ユーザが、提示されたハイパーリンクを選択することによって、表示されたページから関連のページに容易に移動できるようにする。このようにして、ページ上のハイパーリンクによって、相互接続されたページの「ウェブ」がもたらされ、それによって、ユーザは、一連のハイパーリンク選択によって、あるページから、何百万または何十億ものページに移動することができる。インターネット２０２を介してアクセス可能な、相互接続された数十億のウェブページがあり得るが、本発明の目的のために、ページを、１からｎの番号が付けられた１組の順序付けされたページ２１２と見なし、ただし、ｎは、相互接続されたウェブページ網上でアクセス可能なページの総数とすることが有用である。ユーザが興味のあるウェブページを追跡する助けとなるように、ウェブブラウザアプリケーションは、「お気に入り」または「ブックマーク」機能２１４を含むことができ、それによって、ユーザは、頻繁にアクセスする可能性が高いウェブページのリストを保存することができ、将来こうしたページに容易に移動することを可能にする。
【００２９】
ユーザは単にハイパーリンクを選択することによってウェブページに移動することができるが、ユーザがウェブページ内に含まれる特定の情報を見つけるのに役立つ検索エンジンなどのツールが存在する。一般的なシナリオでは、検索エンジン２２０は、インターネット２０２に接続されたサーバ２２２内に収容され、またインターネット上のウェブページに関するインデックスおよび情報２２６を含むデータベース２２４にも接続される。一般的な検索エンジンでは、ユーザが通常検索語の形で検索パラメータを入力するウェブページが、ユーザに提示される。検索エンジン２２０は、そのデータベース２２４を使用して、ユーザ要求を処理し、次いでユーザに、ユーザ要求のパラメータを満たしている他のページへのリンクを含む新しいウェブページを提示する。
【００３０】
多数のページが検索パラメータを満たす場合、検索結果を整理されたやり方でユーザに提示することは問題となり得る。何千ものウェブページのリストが特定の順序に並べられていないと、ユーザは、関連するページを見つけるために、リスト全体を苦労して手作業でソートすることを余儀なくされる。したがって、現在の検索エンジンはしばしば、例えば組込み型のページランク付けエンジン２２８を使用することによって、ユーザとの推定される適合性に基づいて、ページを格付けし、または「ランク付け」する。次いで、検索を満たすウェブページは、最も関連する結果が結果リストの最上部でユーザに提示されるように、推定される適合性によってソートされ得る。
【００３１】
しかし、任意の特定のウェブページの適合性を判断することは、些細な作業ではない。適合性を判断するための１つの手法は、インターネット上のページ間の相互接続度の構造を見て、多くの他のウェブページがそのページにつながるハイパーリンクを含むという点で、どのページが「人気がある」かを見つける。相互接続度の構造は、検索エンジンに接続されたデータベース内に、「相互接続度行列」の形で保存されることができ、ただし、行列内のエントリ［ｉ，ｊ］は、ページｊからページｉへのハイパーリンクの存在を示す。本発明の一実施形態で使用されるもとのして、ウェブページ間の相互接続度について述べるために使用される結合性行列の一例について、図３を参照して次に説明する。図３の例のウェブページの領域は、例示するために、５つのウェブページだけで構成される。ページ１  ３０１は、ページ２  ３０２、ページ３  ３０３およびページ４  ３０４へのハイパーリンクを含む。ページ２  ３０２は、ページ１  ３０１およびページ４  ３０４へのハイパーリンクを含む。ページ３  ３０３は、ページ４  ３０４への１つのハイパーリンクだけを含む。ページ４は、ページ１  ３０１およびページ２  ３０２へのハイパーリンクを含む。ページ５は、ページ３  ３０３およびページ４  ３０４へのハイパーリンクを含む。この例で、この相互接続度は、結合度行列によって表される。
【００３２】
【数１】
2006065855.tif 000003
【００３３】
ただし、ページｊからページｉへのリンクが存在する場合にだけ、行ｉ、列ｊの要素は１である。ハイパーリンクがページから一様ランダムに選択される場合、ハイパーリンク選択時にページｊからページｉに行く対応する確率ｐ（ｉ，ｊ）が存在する。対応するランダムウォーク遷移行列Ａは以下の通りである。
【００３４】
【数２】
2006065855.tif 000004
【００３５】
行列Ａの各列の合計は１に等しい。しかし、本発明は、ページ内で一様ランダムにハイパーリンクを選択することに限定されない。任意のいずれの確率分布もが、任意の特定のページ内のハイパーリンクを選択することに適用され得る。例えば、統計データが実際の使用パターンに関して知られている場合、その情報は、Ａに含まれる確率の割当てに適用され得る。
【００３６】
インターネットは数十億ものページを現在含んでおり、またこうしたページの大部分がその間のハイパーリンクを含まないことを考慮すると、この例以外に実際に使用される行列Ａは、大部分はゼロのエントリを含む疎行列（ｓｐａｒｓｅ  ｍａｔｒｉｘ）である。疎の特性は、行列を効率的に保存するための圧縮技術を可能にするので、有用である。疎であることに加えて、別の重要な行列の概念は、行列の「ランク」、ウェブページの「ページランク」すなわち個々のウェブページの「ランク」とは無関係の数学用語である。行列のランクは、行列とは線形独立した列（または行）の数である。実用的には、低いランクの行列は、高いランクの行列より効率的に保存されることができ、すなわち、ランクｋのｎｘｎ行列は、ランクｎの行列によって潜在的に必要とされる約ｎ２の記憶域ではなく、約ｋｎの記憶域を必要とする情報を含む。
【００３７】
あるいは、ページ間の連結度は、頂点および有向エッジを含むグラフの形であると見なされ得る。このやり方では、それぞれの頂点はウェブページを表し、それぞれの有向エッジは、ページ間のハイパーリンクを表す。エッジに重みを割り当てることによって、ページのハイパーリンク間の確率分布が表され得る。図３に示すウェブページの相互接続に対応するグラフの一例について、図４ａ〜４ｂに関して次に述べる。図４ａに、ウェブページに対応する１組の頂点、および頂点を結合する１組のエッジを示す。例えば、有向エッジ４０２は、ページ１  ４０４（図３のページ１  ３０１に対応）からページ２  ４０６（すなわち図３のページ２  ３０２）へのリンクに対応する。図４ａの有向グラフは、上記で示した相互連結度行列に一致する。本発明の一実施形態では、図４ｂに示す、無向エッジを含むグラフを考慮する。無向グラフでは、ページ１  ４０４とページ２  ４０６の間のエッジ４１０は、ページ１  ３０１からページ２  ３０２へのリンク、またはページ２  ３０２からページ１  ３０１へのリンク、あるいはその両方に対応する。無向グラフに対応する相互接続度行列は一般に、列ｊ、行ｉのエントリが行ｊ、列ｉのエントリに等しい対称行列である。図４ｂのグラフに対応する対称行列は以下の通りである。
【００３８】
【数３】
2006065855.tif 000005
【００３９】
図５に移って述べると、ある実施形態によれば、ユーザは、ステップ５０４で、検索語を入力し、ステップ５０６で、検索エンジンへのクエリを送信する。ページランク付けエンジンは、クエリを受信する前に、ステップ５０８で、インターネット上のウェブページの相互接続度（および可能な場合には他の統計データ）に基づいて、ページのページランクを計算している。クエリを受信した後に、ステップ５１０で、検索エンジンは、所与の検索語に基づいて検索を実施し、結果を取得する。次いで、ステップ５１２で、検索エンジンは、ページランクによって結果をソートする。ステップ５１４で、ソートされた結果が、ユーザに返される。
【００４０】
ウェブページをランク付けするためのいくつかの既存の方法は、インターネットのウェブページ間の理論的な「ランダムウォーク」の概念を用いる。ランダムウォークは一般に、あるウェブページｋで開始し、次いで、ある確率Ａ［ｊ，ｋ］で、ページｊへのハイパーリンクを選択するものと見なされ得る。このウォークは、ある確率Ａ［ｉ，ｊ］で別のページｉへのハイパーリンクを選択することによって、または行き止まりを回避するため別のページへランダムに「テレポート」することによって、ページｊから続く。理論的ランダムウォークは無限に続く。ランダムウォークの遷移行列Ａ上で数学的操作を実施することによって、検索エンジンは、ランダムウォークのあるステップでページに到達する確率に基づいて、ページをランク付けすることができる。既存のページのランク付けアルゴリズムは、Ａまたは関連の遷移行列によって表されるマルコフ連鎖の定常分布を計算することによって、ページのページランクを計算する。これは、遷移行列の主固有ベクトル（すなわち、対応する固有値が最大である固有ベクトル）を見つけることに対応し得る。このようにしてページランク付けを計算するための複数の技術が知られている。
【００４１】
既存のページランク付け方法では一般的であるように、本発明の実施形態は、ウェブページの相互接続度に関するデータを、特定のデータ構造でメモリ内に保存する。例示的なデータ構造について、図６を参照して述べる。配列６０２は、図４ａに示すような対応するウェブグラフ内の各エッジ（すなわち結合度行列内のゼロ以外の各要素）について、１つのエントリを含む。それぞれの配列要素は同一の大きさであり、また配列６０２は、メモリの連続するブロックを占める。非エッジではなく、実際のエッジだけに関する情報を保存することによって、結合度行列の全体（すなわちゼロのエントリを含む）が保存される場合に、遥かに少ないメモリが必要とされる。配列要素は、ページｉからページｊへのリンクを表すエッジ記述（ｉ，ｊ）を含む。図６の例では、配列６０２内の要素は、リンクが出て行く元のウェブページを表す、その対の第１の値によってソートされる。例示的な配列６０２をソートするために使用されるインデックスは任意であり、ページの相対順序またはラベル付けにとって重要ではない。
【００４２】
一般に、ページランク付け方法は、図６の例などのデータ構造に順次アクセスし、要素を次々処理する。さらに、一般的なページランク付け方法は、ページに対応するページランク付け情報を維持するための追加のデータ構造を使用する。ページランク付け情報を維持するための一般的なデータ構造は、１ページ当たりに１つの配列要素をもつ１次元配列である。ページランク付け情報のこうした配列は一般に、特定の指定されたインデックスについての要素を取り出すことによって、ランダムアクセスでアクセスすることができる。
【００４３】
上述したように、ページランク付けを実施するのに必要な時間量の１つの要因は、プロセッサによって必要とされるメモリアクセスの数である。それぞれのメモリアクセスは、プロセッサ速度に対して非常に大きい時間量（約１００ナノ秒）を加える。しかし、プロセッサキャッシュは、アクセスするのに大幅に少ない時間を必要とする。本発明の実施形態は、キャッシュ、および独立しているが、関連した２つの技術のいずれかまたは両方を使用して、メモリの必要なアクセス数を減少させる。第１に、最適化された順序に従って、ノード（ウェブページ）が再ラベル付けされる。エッジはメモリ内で物理的に再編成され得ないが、ページの関連ノードの識別子を変更することによって、ページランク付け情報の配列へのアクセスパターンを変更する。例えば、両方が他のページによって頻繁にリンクされる２つのページに対応するノードが近隣インデックスを有するように再ラベル付けされる場合、第２ページのページランク付け情報の配列要素への多くのアクセスより前に、第１ページの要素へのアクセスが行われる。キャッシュは、まとまった連続したメモリを保存する（また最近アクセスされたデータを保存する）ので、第１ページへのアクセスによって、両方のページに関連するランク付けデータがキャッシュ内に入れられ得る。再ラベル付けなしでは、２つのページへのアクセスは、メモリの別個の領域に対するものとなり、それぞれ非常に異なる時に発生することがあり、したがって、キャッシュは、第２のアクセスに、より効率的に応えることができないことがある。ノードを再ラベル付けすることによって、近隣ノードに対応するページランク付けデータがキャッシュ内に同時にある可能性がより高くなり、データをメモリから取り出さなければならない可能性が小さくなる。この利点は、ページランク付け情報を保存するデータ構造へのインデックス付きアクセスを実施する場合に特に見られる。
【００４４】
第２の技術では、ページリンクデータは、表された特定のウェブグラフに最適な順序で保存される。すなわち、メモリの第１のブロックが、第１のノード（ウェブページ）からの出エッジ（ｏｕｔｇｏｉｎｇ  ｅｄｇｅ）に対応する配列要素を含む場合、配列内の要素の連続する第２のブロックは、第２のノードからの出エッジに対応し、また第１および第２ノードは、ウェブグラフ内で、互いに「近傍」にある。このようにしてノードの近接度によって配列要素を編成すると、図６に示すものなどのデータ構造からリンクを順次読み出す効率が高まり、またデータ構造全体を読み出し、ページｊについての出エッジに遭遇する場合に、ページｊについての情報が、それより前のページｉについてのあるエッジ（ｉ，ｊ）に関して既に処理されている可能性が高まる。これは、結果的に、ページｊについてのページランク付け情報が現在キャッシュに保存されている可能性を高め、ページランク計算の速度向上をもたらす。さらに、この技術によって、リンクの探索において、あるページから別のベージへとリンクに従う（すなわちエッジ情報の配列を非順次にトラバースする）場合に、メモリ内で次ページのリンクがあまり離れていない可能性が高まる。これは、エッジ情報を含む、大量のまとまった連続したメモリがキャッシュ内に一度に読み出される場合は、第２のまとまりがその後直ぐに読み出される必要がないので、利点をもたらす。一般に、上述した第１技術と同様に、ノードもまた再ラベル付けされ、こうした利点がさらに得られる。
【００４５】
図６に、上述の２つの技術を適用する結果が示されている。この例では、２つのウェブページの再ラベル付けは、置換
【００４６】
【数４】
2006065855.tif 000006
【００４７】
６０４に従ってラベルを置き換えることによって実施され、したがって、ページ１はページ４’と再ラベル付けされ、ページ２はページ５’と再ラベル付けされるなどである。配列６０６は、再ラベル付けされた要素を含む配列を示している。しかし、ある実施形態では、配列の要素自体は再ラベル付けされない。そうではなく、再ラベル付けは、配列要素の外部で実施され、再ラベル付けされた配列６０６によって表されるエッジはソートされず、その結果として、配列６０２の内容への物理的な変更が生じないことがある。これは、上記の第１技術に対応する。この例について続けると、上記の第２技術が適用されて、その再ラベル付けに従って配列要素がソートされる。この結果として、配列要素が例示的な配列６０８をもたらすように再編成される。配列要素の実際の内容は再ラベル付けされないが、配列６０８の要素は、再ラベル付けに従って、物理的にソートされる。再ソートされた配列６０８の要素６１０は、再ラベル付けされた値「（２，３）」ではなく、値「（１，４）」を実際には含み、したがって、再ソートされた配列６０８を利用するページランク付け方法は、好ましくは、オンザフライのエッジ再ラベル付けを実施し、再ラベル付けされたインデックスを使用して、ページについてのページランク付け情報の配列にアクセスする。
【００４８】
図７〜９に移ると、本発明の一実施形態で使用される、ウェブページの再順序付けを計算して、ページランク付けの計算速度を向上させるための方法について述べられている。この方法は一般に、ステップ７０２で、１組のウェブページについて、最初の順序付けを行い、ステップ７０４で、ページがその近隣に対してもち得る、重み付けされた影響を表す行列を作成し、ステップ７０６で、この行列の第２の固有ベクトル（すなわち対応する固有値が２番目に大きい固有ベクトル）を見つける。ステップ７０８で、ウェブページは、固有ベクトルの値に従って再ラベル付けされ、ソートされる。
【００４９】
より詳細に、図８に、本発明の一実施形態で使用される、ページがその近隣に対して有する、重み付けされた影響を表す行列を作成する方法を示す。この方法は、ステップ８０２で、ページ間のリンクのリストを読み出すことから開始する。ステップ８０４で、ページ間のリンクを表す第１の対称行列が作成される。あるいは対称行列は作成されず、この方法は、ページからの入リンクだけ、または出リンクだけを考慮する。次いで、ステップ８０６で、対角行列Ｄが作成され、ただし、対角エントリＤ［ｉ，ｊ］は、対応するページｉに入り、またはそこから離れるリンクの数に設定される。図３および４の例示的な１組のウェブページでは、対称行列は、以下の通りである。
【００５０】
【数５】
2006065855.tif 000007
【００５１】
ステップ８０８で、第１の行列および対角行列Ｄの要素を平均することによって、新しい行列が作成される。本発明の実施形態は、このステップ８０８を実施して、２次固有ベクトルを計算するときに、様々な縮退条件（ｄｅｇｅｎｅｒａｔｅ  ｃｏｎｄｉｔｉｏｎ）が後に生じないようにする。この方法は、ステップ８１０で、ページ近隣の重み付けされた影響力（ｐｕｌｌ）を表す行列Ｗを計算するために、ページ近隣の対称行列Ｄの逆に新しい行列を掛けることによって継続する。図３および図４の例において、行列Ｗは、以下の通りである。
【００５２】
【数６】
2006065855.tif 000008
【００５３】
図９に移ると、本発明の一実施形態で使用される、ウェブページの再順序付けを計算する方法について、行列の２次固有ベクトルの計算に関して述べられている。この方法は、ステップ９０２で、入力として、図８の方法で計算された行列など、隣接ウェブページの重み付けされた影響を表す行列Ｗを得る。ステップ９０４で、値が最初に任意選択され、それぞれのウェブページに割り当てられて、初期ベクトルが形成される。例示的な初期ベクトルは、
【００５４】
【数７】
2006065855.tif 000009
【００５５】
である。ステップ９０６で、このベクトルに、Ｗが掛け合わされて、ページ近隣の値の近似平均を表す新しいベクトルがもたらされる。
【００５６】
【数８】
2006065855.tif 000010
【００５７】
ステップ９０８で、この新しいベクトルは、値の平均がゼロになるように、新しいベクトルの各値に十分な固定量を加算することによって中央に合わせられる。
【００５８】
【数９】
2006065855.tif 000011
【００５９】
次いで、ステップ９１０で、このベクトルは、新しいベクトルの大きさを一定に保つために、正規化される。
【００６０】
【数１０】
2006065855.tif 000012
【００６１】
ステップ９１２で、終了条件がチェックされる。本発明の一実施形態では、終了条件は、新しいベクトルの値が、前の反復のベクトルの値と大きく異なっているかどうかである。別の実施形態では、終了条件は、ある回数の反復が実施されたかどうかである。別の実施形態では、終了条件は、ある反復から別の反復へのベクトル間の内積が１に近いかどうかである。さらに別の実施形態では、終了条件は、ある回数の反復について、ベクトルの値の相対順序付けが変化していないかどうかである。終了条件が満たされる場合、この方法は、ステップ９１４で、２次固有ベクトルとしてのベクトルを出力して、終了する。そうでない場合、新しいベクトルにＷをかけあわせるステップ９０６に戻ることによって、別の反復が行われる。上記の例では、ベクトルは、約２０反復した後に、
【００６２】
【数１１】
2006065855.tif 000013
【００６３】
に落ち着く。このベクトルは、上記で与えられた行列Ｗのほぼその２次固有ベクトルである。
【００６４】
上述したものなどの方法によって２次固有ベクトルが計算されると、ウェブページは、その固有ベクトルに従って、物理メモリ内で再ラベル付けされ、かつ／またはソートされる。上記の例では、２次固有ベクトルの第５の値が最大であり、したがって、ページ５はページ１’と再ラベル付けされ、結合度行列のインデックスは、それに従って再ラベル付けされる。同様に、２次固有ベクトルの値の順序に従って、ページ３はページ２’と再ラベル付けされ、ページ４はページ３’と再ラベル付けされるなどである。次いで、ページランク付け技術を使用して、ページの新しいラベルを用いてウェブページをランク付けする。こうした再ラベル付けされたページを含む行列は、互いに近い行、および互いに近い列がウェブグラフ内で互いに近いウェブページを表すように、元の行列の行、および元の行列の列を効率的にシフトする。多くのページランク付け技術は、ラベル付けされた順序で行列の行および／または列を進むことによって行列操作を実施するので、本発明の実施形態によって実施される再ラベル付けによって、ページランク付け技術の効率の向上がもたらされる。したがって、ウェブページのインデックスを再ラベル付けし、ソートするための上述の方法は、任意の数のページランク付け技術に適用可能な前処理ステップとして実施され得る。
【００６５】
本発明の適用は、ウェブページのランク付けに限定されない。本発明は、相互接続を表すために行列が使用される、任意の１組の相互接続されたオブジェクトにも同様に適用することができる。例えば、本発明は、社会ネットワーク内の個人のランク付け、および送電網または通信網上の重要なリソースの識別に適用され得る。
【００６６】
さらに、本発明は、分散ネットワーク上のリソースの効率的な分配を見出すことに適用され得る。こうしたリソース分配の具体的な一例は、多くのユーザを含む仮想メッセージングサービスである。ユーザは一般に、サービスをホストする分散サーバのうちの１つにログオンし、前に設定された、１組の関連ユーザ（「友人」または「仲間」）リストのうちのどれが現在サーバに同様にログインしているかの通知を受ける。彼を自身のリストに含めている他のユーザも同様に、彼のログインについての通知を受ける。次いで、こうしたユーザは、互いの間の直接の通信セッションに従事し得る。こうしたシステムでは、それは、互いのリスト上にあるユーザが分散サーバのうちの同じサーバによるサービスを受けている場合に有用であり、したがって、分散ネットワーク上のサーバ間の通信コストが低減される。したがって、本発明をこうしたシステムに適用すると、互いに通信しているユーザが一般に同じサーバまたは近隣サーバによるサービスを受けるようにするのに役立つことによって、システムの全体的な通信コストが低減される。
【００６７】
本発明の原理が適用され得る多くの可能な実施形態に鑑みて、図面に関して本明細書で述べた諸実施形態は、例示的なものにすぎず、また本発明の範囲を限定するものと見なすべきでないことを理解されたい。例えば、例示された諸実施形態は、本発明の精神から逸脱せずに、構成および詳細が修正され得ることが当業者には理解されよう。本発明について、ソフトウェアモジュールまたはコンポーネントに関して述べたが、これはハードウェアコンポーネントで等価に置き換えられ得ることが当業者には理解されよう。したがって、本明細書で述べた本発明は、こうしたすべての実施形態が特許請求の範囲、およびその等価物の範囲内に含まれ得ることを企図している。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施形態による、ウェブページランク付けおよび検索を実施するためのコンピューティング装置の例示的なアーキテクチャを示す簡略化された概略図である。
【図２】本発明の一実施形態による、ウェブページランク付けおよび検索を実施するための、インターネットに接続されたコンピューティング装置の構成を示す図である。
【図３】本発明の一実施形態による、ウェブページの集合を例示する図である。
【図４ａ】本発明の一実施形態による、ウェブページの相互接続に対応するノードおよびエッジのグラフを示す図である。
【図４ｂ】本発明の一実施形態による、ウェブページの相互接続に対応するノードおよびエッジのグラフを示す図である。
【図５】本発明の一実施形態による、ウェブページの集合間の検索を実施する方法を示すフロー図である。
【図６】本発明の一実施形態による、ウェブページリンクの配列の再ラベル付けおよびソートを示す概略図である。
【図７】本発明の一実施形態による、ウェブページの再順序付けを計算するための一般的な方法を示すフロー図である。
【図８】本発明の一実施形態による、隣接ウェブページの影響を表す行列を計算するための方法を示すフロー図である。
【図９】本発明の一実施形態による、２次固有ベクトルを計算する方法を示すフロー図である。
【符号の説明】
【００６９】
１１０  コンピュータ
１２０  処理装置
１２１  システムバス
１２２  メモリキャッシュ
１３０  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１３３  ＢＩＯＳ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  取外し不可能な不揮発性メモリインターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取外し可能な不揮発性メモリインターフェース
１５１  磁気ディスクドライブ
１５２  磁気ディスク
１５５  光ディスクドライブ
１５６  光ディスク
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  リモートコンピュータ
１８１  メモリ記憶装置
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
２００  コンピュータ
２０２  インターネット
２０６  イーサネット（登録商標）
２０８  ウェブブラウザ
２１２  ページｎ、ページ１
２１４  ｖ＝お気に入りページ
２２０  検索エンジン
２２２  サーバ
２２４  データベース
２２６  インデックスおよび情報
２２８  ページランク付けエンジン
３０１  ページ１、ページ２へのリンク、ページ３へのリンク、ページ４へのリンク
３０２  ページ２、ページ１へのリンク、ページ４へのリンク
３０３  ページ３、ページ４へのリンク
３０４  ページ４、ページ１へのリンク、ページ２へのリンク
３０５  ページ５、ページ３へのリンク、ページ４へのリンク
４０４  ページ１
４０６  ページ２
４１０  エッジ
【図１】
2006065855.tif 000014
【図２】
2006065855.tif 000015
【図３】
2006065855.tif 000016
【図４ａ】
2006065855.tif 000017
【図４ｂ】
2006065855.tif 000018
【図５】
2006065855.tif 000019
【図６】
2006065855.tif 000020
【図７】
2006065855.tif 000021
【図８】
2006065855.tif 000022
【図９】
2006065855.tif 000023
【外国語明細書】
2006065855000001.pdf