JP2006065855A - 行列インデックス操作および改良型キャッシングによるウェブページの効率的なランク付け - Google Patents
行列インデックス操作および改良型キャッシングによるウェブページの効率的なランク付け Download PDFInfo
- Publication number
- JP2006065855A JP2006065855A JP2005223308A JP2005223308A JP2006065855A JP 2006065855 A JP2006065855 A JP 2006065855A JP 2005223308 A JP2005223308 A JP 2005223308A JP 2005223308 A JP2005223308 A JP 2005223308A JP 2006065855 A JP2006065855 A JP 2006065855A
- Authority
- JP
- Japan
- Prior art keywords
- objects
- matrix
- computer
- page
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 65
- 239000013598 vector Substances 0.000 claims description 35
- 238000004891 communication Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 238000002372 labelling Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005295 random walk Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】ページランク付けをより効率的に計算するための方法およびシステムを提供すること。
【解決手段】ウェブページの相互接続を示す相互接続度行列を使用して、新しい行列が計算される。新しい行列を使用して、各ウェブページの隣接ウェブページに関連する値の平均値を計算する。この新しい行列の2次固有ベクトルが計算され、固有ベクトルに従って、ウェブページのインデックスが再ラベル付けされる。相互接続度の情報を保存するデータ構造もまた、好ましくは、その固有ベクトルに従って物理的にソートされる。ウェブページランク付け計算で使用される行列を再編成することによって、キャッシングがより効率的に実施され、より高速なページランク付け技術がもたらされる。リソース分配を効率的に割り当てるための方法についても説明される。
【選択図】図7
【解決手段】ウェブページの相互接続を示す相互接続度行列を使用して、新しい行列が計算される。新しい行列を使用して、各ウェブページの隣接ウェブページに関連する値の平均値を計算する。この新しい行列の2次固有ベクトルが計算され、固有ベクトルに従って、ウェブページのインデックスが再ラベル付けされる。相互接続度の情報を保存するデータ構造もまた、好ましくは、その固有ベクトルに従って物理的にソートされる。ウェブページランク付け計算で使用される行列を再編成することによって、キャッシングがより効率的に実施され、より高速なページランク付け技術がもたらされる。リソース分配を効率的に割り当てるための方法についても説明される。
【選択図】図7
Description
本発明は、一般には、インターネット検索の分野に関し、より詳細には、行列計算によるウェブページのランク付けに関する。
インターネットは現在、ハイパーリンクによって相互接続された何十億ものウェブページを含む。インターネットのユーザは一般に、ウェブブラウズアプリケーション(「ブラウザ」)を使用して、ハイパーリンクを選択しクリックすることによって、またはブラウザが特定のウェブページに直接にアクセスすることを可能にする「ユニフォームリソースロケータ(Uniform Resource Locator)」(「URL」)を手入力することによって、こうしたページ間を移動する。しかし、ユーザはしばしば、情報の特定のアイテムを含むページを求めてインターネットを検索することを望む。インターネットの規模のため、ユーザがインターネットを手作業でブラウズし、関連のページを検索することは非実用的である。そうではなく、ユーザは一般に、インターネット検索のために開発されたコンピュータアプリケーションである検索エンジンを呼び出す。検索エンジンは一般に、サーバコンピューティング装置内に常駐し、クライアントユーザからのクエリを受け付ける。検索エンジンは通常、ウェブページのインデックスに関連付けられており、ユーザのクエリに応答して、そのクエリを満たすページのリストを返す。
現代の検索エンジンによっては、より適切な結果をユーザに提供するために、ウェブページをランク付けする。多くの検索エンジンは行列によってウェブページの相互接続を表し、またページランク付けを見つけることは、行列の主固有ベクトルを見つけることに等しい。こうした検索エンジンについては、非特許文献1に記載されている。同文献全体を、それが教示するすべてのために、そのいかなる部分をも除外せずに、本明細書中で参考として援用する。一般に、反復では、ウェブページのランク付けを行い、相互接続行列に渡ってそれを伝播して、ページの更新されたランク付けを取得する。最終的に、すべてのページのランク付けは、主固有ベクトルのエントリである固定値に集束する。これは、マルコフ連鎖の定常分布を計算することに等しい。行列のサイズのために、固有ベクトル、したがってページランクの計算は、既存のシステムにおいて、計算集約型の(computationally intensive)タスクであり、すべてのページの値が固有ベクトルに集束する前に、行列操作の複数の反復を必要とする。ページランクをより効率的に計算するために、研究者は、ページランク付けをより迅速に計算し、またはその近似値を求める方法を見つけるため、相互接続行列の特定の数学的特性を利用しようと試みてきた。
いくつかの理由により、ページランク付けの計算は、計算集約型のタスクであり得る。1つの理由は、単に情報量の大きさであり、何十億ものウェブページがあると、高速のプロセッサ上でも、またすべてのデータをプロセッサが即時に使用可能であるとしても、必要な計算の実施には、多大な時間を要し得る。しかし、別の理由は、一般にすべてのデータをプロセッサが即時に使用できるとは限らず、RAMなどの記憶域、またはハードドライブなどの2次記憶装置からのデータ取出しを必要とすることである。RAMにアクセスするには一般に、アクセス当たり約100ナノ秒かかり、ハードドライブにアクセスするには一般に、アクセス当たり約5〜10ミリ秒かかる。これは、そうでなければ高速であるプロセッサにとってのボトルネックとなり、1秒に10億の操作を実施することができるプロセッサは、1秒当たり約1000万エントリ、すなわちその能力の約1パーセントの速度でデータを読み出すことに制限される。
さらに、既存のページランク付け技術によって実施される多くの行列操作は、ウェブページ用に任意のインデックスラベルを使用する。結果として、対応する相互接続度行列の行(または列)間には関係がない。例えば、ページ#1が、ページ#226、#4,250,221および#1,000,000,152とのリンクを含む場合、相互接続度行列の対応する行#1は、列のエントリ#226、#4,250,221および#1,000,000,152を含む。こうしたページを取り出すために、3つのアクセスが、見込みのある、3つの非常に離れたメモリ域から行われなければならない。
研究者は、キャッシングのシステムも同様に研究してきた。キャッシュは一般に、より低速の、より安価なメモリから取り出されるデータまたは命令を一時的に保持する高速メモリの小さい領域である。しばしば使用されるデータまたは命令をキャッシュ内に一時的に保存することによって、プロセッサは、こうしたデータまたは命令をより低速なメモリから取り出す必要がなくなる。したがって、キャッシュを効果的に使用すると、コンピューティング装置上で多くの操作が実施される速度が向上する。
Page et al., "The PageRank citation ranking: Bringing order to the web,"Stanford Digital Libraries Working Paper, January 1998
ページランク付けをより効率的に計算するための方法およびシステムが提供される。
ウェブページの相互接続を示す相互接続度行列を使用して、新しい行列が計算される。新しい行列を使用して、各ウェブページの隣接ウェブページに関連する値の平均値を計算する。この新しい行列の2次固有ベクトルが計算され、固有ベクトルに従って、ウェブページのインデックスが再ラベル付けされる。相互接続度の情報を保存するデータ構造も同様に、好ましくは、その固有ベクトルに従って物理的にソートされる。ウェブページランク付け計算で使用される行列を再編成することによって、キャッシングがより効率的に実施され、より高速なページランク付け技術がもたらされる。
ある態様では、オブジェクトの集合内のオブジェクトをランク付けする方法が提供され、集合内のオブジェクトのうちの1つまたは複数は、集合内の他のオブジェクトとのリンクを有し、この方法は、リンクに関する、集合内の他のオブジェクトとのその近接度に従ってオブジェクトを順序付けること、およびオブジェクトの順位付けに従って、オブジェクト間のリンクをメモリ内に保存することを備える。
別の態様では、オブジェクト集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体が提供され、オブジェクト集合内のオブジェクトのうちの1つまたは複数は、オブジェクト集合内の他のオブジェクトとのリンクを有し、該コンピュータ実行可能命令は、リンクに関する、集合内の他のオブジェクトとのその近接度に従って、オブジェクトを順序付けるステップ、およびオブジェクトの順位付けに従って、オブジェクト間のリンクをメモリ内に保存するステップを実施する。
別の態様では、相互接続されたオブジェクトの集合からのオブジェクトを順序付ける方法が提供され、オブジェクトの相互接続は第1の行列で表され、この方法は、第1行列に対して第2の行列を計算すること、第2行列の2次固有ベクトルの近似値を求めること、および2次固有ベクトルに近似する値に対してオブジェクトを順序付けることを備える。
別の態様では、相互接続されたオブジェクトの集合内のオブジェクトの順序付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体が提供され、オブジェクトの相互接続は第1の行列で表され、このコンピュータ実行可能命令は、第1行列に対して第2の行列を計算するステップ、第2行列の2次固有ベクトルの近似値を求めるステップ、および2次固有ベクトルに近似する値に対してオブジェクトを順序付けるステップを実施する。
別の態様では、相互接続されたオブジェクトの集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体が提供され、相互接続についての記述は、該オブジェクトの第1の順序付けに従ってメモリ内に保存され、このコンピュータ実行可能命令は、相互接続よる他のオブジェクトのその隣接度に対してオブジェクトを順序付けるステップを実施する。
添付の特許請求の範囲は本発明の特徴について具体的に述べているが、本発明およびその利点は、添付の図面と併せて考慮される以下の詳細な説明から最もよく理解される。
ページランク付けを効率的に計算するための方法およびシステムについて、好ましい実施形態に関して次に述べるが、しかし、本発明の方法およびシステムは、ウェブページのページランク付けを計算することに限定されない。さらに、本明細書で述べる方法およびシステムは例示的なものにすぎず、本発明の精神および範囲から逸脱せずに、変更が行われ得ることが当業者には容易に理解されよう。
本発明は、添付の図面と併せ読まれるべき以下の詳細な説明によって、より完全に理解される。この説明では、同じ番号は、本発明の様々な実施形態内の類似の要素に言及している。本発明は、適切なコンピューティング環境内で実施されるものとして示されている。必須ではないが、本発明について、パーソナルコンピュータによって実行されるプロシージャなどのコンピュータ実行可能命令の一般的な文脈で述べる。プロシージャは一般に、特定のタスクを実装し、または特定の抽象データ型を実装するプログラムモジュール、ルーチン、関数、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステム構成で実施され得ることが当業者には理解されよう。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境内で実施されることもできる。分散コンピューティング環境内では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置内に置かれ得る。用語コンピュータシステムは、例えば分散コンピューティング環境内で見ることができるコンピュータのシステムに言及するために使用され得る。
図1に、本発明が実施され得る適切なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定について示唆するためのものではない。またコンピューティング環境100は、例示的なオペレーティング環境100内に示す構成要素のいずれか1つまたは組合せに関する依存関係または要件を有するものと解釈されるべきでない。本発明のある実施形態は例示的なオペレーティング環境100内に示される各構成要素を含むが、本発明のより一般的な別の実施形態は、必須でない構成要素、例えば、ネットワーク通信で必要なもの以外の入出力装置を除外する。
図1を参照すると、本発明を実施するための例示的なシステムが、コンピュータ110の形の汎用コンピューティング装置を含んでいる。コンピュータ110の構成要素は、それだけに限らないが、処理装置120、システムメモリ130、ならびにシステムメモリを含めて様々なシステム構成要素を処理装置120に結合するシステムバス121を含み得る。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバス構造のいずれかを使用したローカルバスを含めて、複数タイプのバス構造のいずれかであり得る。限定するためではなく、例を挙げると、こうしたアーキテクチャには、ISA(Industry Standard Architecture)バス、マMCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニン(Mezzanine)バスとも呼ばれるPCI(Peripheral Component Interconnect)バスが含まれる。さらに、コンピュータ110の構成要素は、メモリキャッシュ122を含み得る。メモリキャッシュから、処理装置120は、システムメモリ130からよりもさらに高速にデータにアクセスすることができる。メモリキャッシュ122は一般に、システムメモリ130から最も最近にアクセスされた、または処理装置120によって最も最近に処理されたデータを保存する。処理装置120は、システムメモリ130からデータを取り出す前に、そのデータがメモリキャッシュ122内に現在保存されているかどうかチェックし得る。そうである場合、「キャッシュヒット」がもたらされ、そのデータは、一般により低速なシステムメモリ130からではなく、メモリキャッシュ122から取り出される。
コンピュータ110は一般に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ110からアクセスすることができる任意の使用可能な媒体とすることができ、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体を含む。限定するためではなく、例を挙げると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータなどの情報を保存するための任意の方法または技術で実装された揮発性と不揮発性、取外し可能と取外し不可能媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(digital versatile disk)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を保存するために使用することができ、またコンピュータ110によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は一般に、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または搬送波や他のトランスポート機構などの変調されたデータ信号内の他のデータを実施し、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号内の情報を符号化するなどのやり方でその特性の1つまたは複数が設定されまたは変更された信号を意味する。限定のためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、RF、赤外線などの無線媒体、および他の無線媒体が含まれる。上記内容のいずれかの組合せもまた、コンピュータ読取り可能媒体の範囲内に含まれるべきである。
システムメモリ130は、読出し専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム(BIOS)133は一般に、ROM131に保存される。RAM132は一般に、処理装置120によって即時にアクセス可能であり、かつ/またはそれによる操作を現在受けているデータおよび/またはプログラムモジュールを含む。限定するためではなく、例示するために、図1に、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137を示す。
コンピュータ110は、他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体をも含み得る。例示するためだけに、図1に、取外し不可能な不揮発性の磁気媒体から読み出しまたはそこに書き込むハードディスクドライブ141、取外し可能な不揮発性の磁気ディスク152から読み出しまたはそこに書き込む磁気ディスクドライブ151、およびCD−ROMや他の光媒体などの取外し可能な不揮発性の光ディスク156から読み出しまたはそこに書き込む光ディスクドライブ155を示す。例示的なオペレーティング環境内で使用され得る他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどが含まれる。ハードディスクドライブ141は一般に、インターフェース140などの取外し不可能メモリインターフェースによってシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インターフェース150などの取外し可能メモリインターフェースによってシステムバス121に接続される。
上記で論じ、また図1に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ110のために、コンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータを提供する。図1では、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147を保存するものとして示されている。こうした構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137と同じでも、それとは異なっていてもよいことに留意されたい。少なくともそれらがそれぞれ異なるコピーであることを示すために、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には異なる番号がここでは付与されている。ユーザは、タブレット又は電子デジタイザ、マイク、キーボード162、および一般にマウス、トラックボールまたはタッチパッドと称されるポインティング装置161などの入力装置を用いて、コンピュータ110にコマンドおよび情報を入力することができる。他の入力装置(図示せず)は、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどを含み得る。これらのおよび他の入力装置はしばしば、システムバスに結合されたユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポートまたはUSB(universal serial bus)などの他のインターフェースおよびバス構造によって接続されることもできる。モニタ191または他のタイプの表示装置もまた、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタ191は、タッチスクリーンパネルなどと一体化されることもできる。モニタおよび/またはタッチスクリーンパネルは、例えばタブレットタイプのパーソナルコンピュータ内など、コンピューティング装置110が組み込まれた筐体に物理的に結合され得ることに留意されたい。さらに、コンピューティング装置110などのコンピュータは、出力周辺インターフェース194などを介して接続され得るスピーカ197およびプリンタ196などの他の周辺出力装置をも含み得る。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、また図1にはメモリ記憶装置181だけが示されているが、コンピュータ110に関して上記で述べた要素の多くまたはすべてを一般に含む。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171、および広域ネットワーク(WAN)173を含むが、他のネットワークをも含み得る。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。例えば、本発明では、コンピュータ110は、データの移行元のソースマシンを含むことができ、リモートコンピュータ180は、宛先マシンを含み得る。しかし、ソースおよび宛先マシンは、ネットワークまたは他の任意の手段によって接続される必要はないが、その代わりに、データは、ソースプラットフォームによって書き込まれ、また宛先プラットフォームによって読み出されることができる任意の媒体を介して移行され得ることに留意されたい。
LANネットワーキング環境内で使用される場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境内で使用される場合、コンピュータ110は一般に、モデム172、またはインターネットなどのWAN173を介して通信を確立する他の手段を含む。内部にあることも、外部にあることもあるモデム172は、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続され得る。ネットワーク環境内では、コンピュータ110に関して示したプログラムモジュール、またはその一部は、リモートメモリ記憶装置内に保存され得る。限定のためではなく、例示するために、図1に、メモリ装置181内に常駐するリモートアプリケーションプログラム185を示す。図示するネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用され得ることが理解されよう。
図2に移ると、本発明が潜在的に利用されるコンピューティング環境の単純な例が示されている。この例示的な環境内では、コンピュータ200は、通信媒体を介した通信を容易にするネットワークインターフェースカード(具体的には図示せず)を含む。図2に示す具体的な例では、コンピュータ200は、物理接続を介してローカルエリアネットワーク206と通信する。代替方法として、コンピュータ200は、WWANまたはWLAN媒体を介して、あるいは他の通信媒体を介してローカルエリアネットワーク206と通信し得る。
コンピュータ200のユーザは、ネットワーク媒体がサポートされる結果として、インターネット202にアクセスすることができる。例えば、コンピュータ200は、LAN206との物理接続を介して直接に、LAN206上のリソースにアクセスする。図示された実施例内のLAN206は、コンピュータ200の適切に認証されたユーザがインターネット202のリソースにアクセスすることを可能にするネットワークアクセスおよびプロキシサーバを含むと見なされる。
インターネット202は、コンピュータ200のユーザに、ウェブページの形で提示される。ウェブページは、コンピュータ200内に常駐するウェブブラウザアプリケーション208によって処理され、表示されるコンテンツおよび命令を含む。あるいは、ウェブブラウザアプリケーション208は、ネットワーク化されたコンピュータ210内に常駐し、リモート表示プログラムによって、コンピュータ200上にグラフィカルに表示される。ウェブページは、他のウェブページとのハイパーリンクをも含み、ユーザが、提示されたハイパーリンクを選択することによって、表示されたページから関連のページに容易に移動できるようにする。このようにして、ページ上のハイパーリンクによって、相互接続されたページの「ウェブ」がもたらされ、それによって、ユーザは、一連のハイパーリンク選択によって、あるページから、何百万または何十億ものページに移動することができる。インターネット202を介してアクセス可能な、相互接続された数十億のウェブページがあり得るが、本発明の目的のために、ページを、1からnの番号が付けられた1組の順序付けされたページ212と見なし、ただし、nは、相互接続されたウェブページ網上でアクセス可能なページの総数とすることが有用である。ユーザが興味のあるウェブページを追跡する助けとなるように、ウェブブラウザアプリケーションは、「お気に入り」または「ブックマーク」機能214を含むことができ、それによって、ユーザは、頻繁にアクセスする可能性が高いウェブページのリストを保存することができ、将来こうしたページに容易に移動することを可能にする。
ユーザは単にハイパーリンクを選択することによってウェブページに移動することができるが、ユーザがウェブページ内に含まれる特定の情報を見つけるのに役立つ検索エンジンなどのツールが存在する。一般的なシナリオでは、検索エンジン220は、インターネット202に接続されたサーバ222内に収容され、またインターネット上のウェブページに関するインデックスおよび情報226を含むデータベース224にも接続される。一般的な検索エンジンでは、ユーザが通常検索語の形で検索パラメータを入力するウェブページが、ユーザに提示される。検索エンジン220は、そのデータベース224を使用して、ユーザ要求を処理し、次いでユーザに、ユーザ要求のパラメータを満たしている他のページへのリンクを含む新しいウェブページを提示する。
多数のページが検索パラメータを満たす場合、検索結果を整理されたやり方でユーザに提示することは問題となり得る。何千ものウェブページのリストが特定の順序に並べられていないと、ユーザは、関連するページを見つけるために、リスト全体を苦労して手作業でソートすることを余儀なくされる。したがって、現在の検索エンジンはしばしば、例えば組込み型のページランク付けエンジン228を使用することによって、ユーザとの推定される適合性に基づいて、ページを格付けし、または「ランク付け」する。次いで、検索を満たすウェブページは、最も関連する結果が結果リストの最上部でユーザに提示されるように、推定される適合性によってソートされ得る。
しかし、任意の特定のウェブページの適合性を判断することは、些細な作業ではない。適合性を判断するための1つの手法は、インターネット上のページ間の相互接続度の構造を見て、多くの他のウェブページがそのページにつながるハイパーリンクを含むという点で、どのページが「人気がある」かを見つける。相互接続度の構造は、検索エンジンに接続されたデータベース内に、「相互接続度行列」の形で保存されることができ、ただし、行列内のエントリ[i,j]は、ページjからページiへのハイパーリンクの存在を示す。本発明の一実施形態で使用されるもとのして、ウェブページ間の相互接続度について述べるために使用される結合性行列の一例について、図3を参照して次に説明する。図3の例のウェブページの領域は、例示するために、5つのウェブページだけで構成される。ページ1 301は、ページ2 302、ページ3 303およびページ4 304へのハイパーリンクを含む。ページ2 302は、ページ1 301およびページ4 304へのハイパーリンクを含む。ページ3 303は、ページ4 304への1つのハイパーリンクだけを含む。ページ4は、ページ1 301およびページ2 302へのハイパーリンクを含む。ページ5は、ページ3 303およびページ4 304へのハイパーリンクを含む。この例で、この相互接続度は、結合度行列によって表される。
ただし、ページjからページiへのリンクが存在する場合にだけ、行i、列jの要素は1である。ハイパーリンクがページから一様ランダムに選択される場合、ハイパーリンク選択時にページjからページiに行く対応する確率p(i,j)が存在する。対応するランダムウォーク遷移行列Aは以下の通りである。
行列Aの各列の合計は1に等しい。しかし、本発明は、ページ内で一様ランダムにハイパーリンクを選択することに限定されない。任意のいずれの確率分布もが、任意の特定のページ内のハイパーリンクを選択することに適用され得る。例えば、統計データが実際の使用パターンに関して知られている場合、その情報は、Aに含まれる確率の割当てに適用され得る。
インターネットは数十億ものページを現在含んでおり、またこうしたページの大部分がその間のハイパーリンクを含まないことを考慮すると、この例以外に実際に使用される行列Aは、大部分はゼロのエントリを含む疎行列(sparse matrix)である。疎の特性は、行列を効率的に保存するための圧縮技術を可能にするので、有用である。疎であることに加えて、別の重要な行列の概念は、行列の「ランク」、ウェブページの「ページランク」すなわち個々のウェブページの「ランク」とは無関係の数学用語である。行列のランクは、行列とは線形独立した列(または行)の数である。実用的には、低いランクの行列は、高いランクの行列より効率的に保存されることができ、すなわち、ランクkのnxn行列は、ランクnの行列によって潜在的に必要とされる約n2の記憶域ではなく、約knの記憶域を必要とする情報を含む。
あるいは、ページ間の連結度は、頂点および有向エッジを含むグラフの形であると見なされ得る。このやり方では、それぞれの頂点はウェブページを表し、それぞれの有向エッジは、ページ間のハイパーリンクを表す。エッジに重みを割り当てることによって、ページのハイパーリンク間の確率分布が表され得る。図3に示すウェブページの相互接続に対応するグラフの一例について、図4a〜4bに関して次に述べる。図4aに、ウェブページに対応する1組の頂点、および頂点を結合する1組のエッジを示す。例えば、有向エッジ402は、ページ1 404(図3のページ1 301に対応)からページ2 406(すなわち図3のページ2 302)へのリンクに対応する。図4aの有向グラフは、上記で示した相互連結度行列に一致する。本発明の一実施形態では、図4bに示す、無向エッジを含むグラフを考慮する。無向グラフでは、ページ1 404とページ2 406の間のエッジ410は、ページ1 301からページ2 302へのリンク、またはページ2 302からページ1 301へのリンク、あるいはその両方に対応する。無向グラフに対応する相互接続度行列は一般に、列j、行iのエントリが行j、列iのエントリに等しい対称行列である。図4bのグラフに対応する対称行列は以下の通りである。
図5に移って述べると、ある実施形態によれば、ユーザは、ステップ504で、検索語を入力し、ステップ506で、検索エンジンへのクエリを送信する。ページランク付けエンジンは、クエリを受信する前に、ステップ508で、インターネット上のウェブページの相互接続度(および可能な場合には他の統計データ)に基づいて、ページのページランクを計算している。クエリを受信した後に、ステップ510で、検索エンジンは、所与の検索語に基づいて検索を実施し、結果を取得する。次いで、ステップ512で、検索エンジンは、ページランクによって結果をソートする。ステップ514で、ソートされた結果が、ユーザに返される。
ウェブページをランク付けするためのいくつかの既存の方法は、インターネットのウェブページ間の理論的な「ランダムウォーク」の概念を用いる。ランダムウォークは一般に、あるウェブページkで開始し、次いで、ある確率A[j,k]で、ページjへのハイパーリンクを選択するものと見なされ得る。このウォークは、ある確率A[i,j]で別のページiへのハイパーリンクを選択することによって、または行き止まりを回避するため別のページへランダムに「テレポート」することによって、ページjから続く。理論的ランダムウォークは無限に続く。ランダムウォークの遷移行列A上で数学的操作を実施することによって、検索エンジンは、ランダムウォークのあるステップでページに到達する確率に基づいて、ページをランク付けすることができる。既存のページのランク付けアルゴリズムは、Aまたは関連の遷移行列によって表されるマルコフ連鎖の定常分布を計算することによって、ページのページランクを計算する。これは、遷移行列の主固有ベクトル(すなわち、対応する固有値が最大である固有ベクトル)を見つけることに対応し得る。このようにしてページランク付けを計算するための複数の技術が知られている。
既存のページランク付け方法では一般的であるように、本発明の実施形態は、ウェブページの相互接続度に関するデータを、特定のデータ構造でメモリ内に保存する。例示的なデータ構造について、図6を参照して述べる。配列602は、図4aに示すような対応するウェブグラフ内の各エッジ(すなわち結合度行列内のゼロ以外の各要素)について、1つのエントリを含む。それぞれの配列要素は同一の大きさであり、また配列602は、メモリの連続するブロックを占める。非エッジではなく、実際のエッジだけに関する情報を保存することによって、結合度行列の全体(すなわちゼロのエントリを含む)が保存される場合に、遥かに少ないメモリが必要とされる。配列要素は、ページiからページjへのリンクを表すエッジ記述(i,j)を含む。図6の例では、配列602内の要素は、リンクが出て行く元のウェブページを表す、その対の第1の値によってソートされる。例示的な配列602をソートするために使用されるインデックスは任意であり、ページの相対順序またはラベル付けにとって重要ではない。
一般に、ページランク付け方法は、図6の例などのデータ構造に順次アクセスし、要素を次々処理する。さらに、一般的なページランク付け方法は、ページに対応するページランク付け情報を維持するための追加のデータ構造を使用する。ページランク付け情報を維持するための一般的なデータ構造は、1ページ当たりに1つの配列要素をもつ1次元配列である。ページランク付け情報のこうした配列は一般に、特定の指定されたインデックスについての要素を取り出すことによって、ランダムアクセスでアクセスすることができる。
上述したように、ページランク付けを実施するのに必要な時間量の1つの要因は、プロセッサによって必要とされるメモリアクセスの数である。それぞれのメモリアクセスは、プロセッサ速度に対して非常に大きい時間量(約100ナノ秒)を加える。しかし、プロセッサキャッシュは、アクセスするのに大幅に少ない時間を必要とする。本発明の実施形態は、キャッシュ、および独立しているが、関連した2つの技術のいずれかまたは両方を使用して、メモリの必要なアクセス数を減少させる。第1に、最適化された順序に従って、ノード(ウェブページ)が再ラベル付けされる。エッジはメモリ内で物理的に再編成され得ないが、ページの関連ノードの識別子を変更することによって、ページランク付け情報の配列へのアクセスパターンを変更する。例えば、両方が他のページによって頻繁にリンクされる2つのページに対応するノードが近隣インデックスを有するように再ラベル付けされる場合、第2ページのページランク付け情報の配列要素への多くのアクセスより前に、第1ページの要素へのアクセスが行われる。キャッシュは、まとまった連続したメモリを保存する(また最近アクセスされたデータを保存する)ので、第1ページへのアクセスによって、両方のページに関連するランク付けデータがキャッシュ内に入れられ得る。再ラベル付けなしでは、2つのページへのアクセスは、メモリの別個の領域に対するものとなり、それぞれ非常に異なる時に発生することがあり、したがって、キャッシュは、第2のアクセスに、より効率的に応えることができないことがある。ノードを再ラベル付けすることによって、近隣ノードに対応するページランク付けデータがキャッシュ内に同時にある可能性がより高くなり、データをメモリから取り出さなければならない可能性が小さくなる。この利点は、ページランク付け情報を保存するデータ構造へのインデックス付きアクセスを実施する場合に特に見られる。
第2の技術では、ページリンクデータは、表された特定のウェブグラフに最適な順序で保存される。すなわち、メモリの第1のブロックが、第1のノード(ウェブページ)からの出エッジ(outgoing edge)に対応する配列要素を含む場合、配列内の要素の連続する第2のブロックは、第2のノードからの出エッジに対応し、また第1および第2ノードは、ウェブグラフ内で、互いに「近傍」にある。このようにしてノードの近接度によって配列要素を編成すると、図6に示すものなどのデータ構造からリンクを順次読み出す効率が高まり、またデータ構造全体を読み出し、ページjについての出エッジに遭遇する場合に、ページjについての情報が、それより前のページiについてのあるエッジ(i,j)に関して既に処理されている可能性が高まる。これは、結果的に、ページjについてのページランク付け情報が現在キャッシュに保存されている可能性を高め、ページランク計算の速度向上をもたらす。さらに、この技術によって、リンクの探索において、あるページから別のベージへとリンクに従う(すなわちエッジ情報の配列を非順次にトラバースする)場合に、メモリ内で次ページのリンクがあまり離れていない可能性が高まる。これは、エッジ情報を含む、大量のまとまった連続したメモリがキャッシュ内に一度に読み出される場合は、第2のまとまりがその後直ぐに読み出される必要がないので、利点をもたらす。一般に、上述した第1技術と同様に、ノードもまた再ラベル付けされ、こうした利点がさらに得られる。
図6に、上述の2つの技術を適用する結果が示されている。この例では、2つのウェブページの再ラベル付けは、置換
604に従ってラベルを置き換えることによって実施され、したがって、ページ1はページ4’と再ラベル付けされ、ページ2はページ5’と再ラベル付けされるなどである。配列606は、再ラベル付けされた要素を含む配列を示している。しかし、ある実施形態では、配列の要素自体は再ラベル付けされない。そうではなく、再ラベル付けは、配列要素の外部で実施され、再ラベル付けされた配列606によって表されるエッジはソートされず、その結果として、配列602の内容への物理的な変更が生じないことがある。これは、上記の第1技術に対応する。この例について続けると、上記の第2技術が適用されて、その再ラベル付けに従って配列要素がソートされる。この結果として、配列要素が例示的な配列608をもたらすように再編成される。配列要素の実際の内容は再ラベル付けされないが、配列608の要素は、再ラベル付けに従って、物理的にソートされる。再ソートされた配列608の要素610は、再ラベル付けされた値「(2,3)」ではなく、値「(1,4)」を実際には含み、したがって、再ソートされた配列608を利用するページランク付け方法は、好ましくは、オンザフライのエッジ再ラベル付けを実施し、再ラベル付けされたインデックスを使用して、ページについてのページランク付け情報の配列にアクセスする。
図7〜9に移ると、本発明の一実施形態で使用される、ウェブページの再順序付けを計算して、ページランク付けの計算速度を向上させるための方法について述べられている。この方法は一般に、ステップ702で、1組のウェブページについて、最初の順序付けを行い、ステップ704で、ページがその近隣に対してもち得る、重み付けされた影響を表す行列を作成し、ステップ706で、この行列の第2の固有ベクトル(すなわち対応する固有値が2番目に大きい固有ベクトル)を見つける。ステップ708で、ウェブページは、固有ベクトルの値に従って再ラベル付けされ、ソートされる。
より詳細に、図8に、本発明の一実施形態で使用される、ページがその近隣に対して有する、重み付けされた影響を表す行列を作成する方法を示す。この方法は、ステップ802で、ページ間のリンクのリストを読み出すことから開始する。ステップ804で、ページ間のリンクを表す第1の対称行列が作成される。あるいは対称行列は作成されず、この方法は、ページからの入リンクだけ、または出リンクだけを考慮する。次いで、ステップ806で、対角行列Dが作成され、ただし、対角エントリD[i,j]は、対応するページiに入り、またはそこから離れるリンクの数に設定される。図3および4の例示的な1組のウェブページでは、対称行列は、以下の通りである。
ステップ808で、第1の行列および対角行列Dの要素を平均することによって、新しい行列が作成される。本発明の実施形態は、このステップ808を実施して、2次固有ベクトルを計算するときに、様々な縮退条件(degenerate condition)が後に生じないようにする。この方法は、ステップ810で、ページ近隣の重み付けされた影響力(pull)を表す行列Wを計算するために、ページ近隣の対称行列Dの逆に新しい行列を掛けることによって継続する。図3および図4の例において、行列Wは、以下の通りである。
図9に移ると、本発明の一実施形態で使用される、ウェブページの再順序付けを計算する方法について、行列の2次固有ベクトルの計算に関して述べられている。この方法は、ステップ902で、入力として、図8の方法で計算された行列など、隣接ウェブページの重み付けされた影響を表す行列Wを得る。ステップ904で、値が最初に任意選択され、それぞれのウェブページに割り当てられて、初期ベクトルが形成される。例示的な初期ベクトルは、
である。ステップ906で、このベクトルに、Wが掛け合わされて、ページ近隣の値の近似平均を表す新しいベクトルがもたらされる。
ステップ908で、この新しいベクトルは、値の平均がゼロになるように、新しいベクトルの各値に十分な固定量を加算することによって中央に合わせられる。
次いで、ステップ910で、このベクトルは、新しいベクトルの大きさを一定に保つために、正規化される。
ステップ912で、終了条件がチェックされる。本発明の一実施形態では、終了条件は、新しいベクトルの値が、前の反復のベクトルの値と大きく異なっているかどうかである。別の実施形態では、終了条件は、ある回数の反復が実施されたかどうかである。別の実施形態では、終了条件は、ある反復から別の反復へのベクトル間の内積が1に近いかどうかである。さらに別の実施形態では、終了条件は、ある回数の反復について、ベクトルの値の相対順序付けが変化していないかどうかである。終了条件が満たされる場合、この方法は、ステップ914で、2次固有ベクトルとしてのベクトルを出力して、終了する。そうでない場合、新しいベクトルにWをかけあわせるステップ906に戻ることによって、別の反復が行われる。上記の例では、ベクトルは、約20反復した後に、
に落ち着く。このベクトルは、上記で与えられた行列Wのほぼその2次固有ベクトルである。
上述したものなどの方法によって2次固有ベクトルが計算されると、ウェブページは、その固有ベクトルに従って、物理メモリ内で再ラベル付けされ、かつ/またはソートされる。上記の例では、2次固有ベクトルの第5の値が最大であり、したがって、ページ5はページ1’と再ラベル付けされ、結合度行列のインデックスは、それに従って再ラベル付けされる。同様に、2次固有ベクトルの値の順序に従って、ページ3はページ2’と再ラベル付けされ、ページ4はページ3’と再ラベル付けされるなどである。次いで、ページランク付け技術を使用して、ページの新しいラベルを用いてウェブページをランク付けする。こうした再ラベル付けされたページを含む行列は、互いに近い行、および互いに近い列がウェブグラフ内で互いに近いウェブページを表すように、元の行列の行、および元の行列の列を効率的にシフトする。多くのページランク付け技術は、ラベル付けされた順序で行列の行および/または列を進むことによって行列操作を実施するので、本発明の実施形態によって実施される再ラベル付けによって、ページランク付け技術の効率の向上がもたらされる。したがって、ウェブページのインデックスを再ラベル付けし、ソートするための上述の方法は、任意の数のページランク付け技術に適用可能な前処理ステップとして実施され得る。
本発明の適用は、ウェブページのランク付けに限定されない。本発明は、相互接続を表すために行列が使用される、任意の1組の相互接続されたオブジェクトにも同様に適用することができる。例えば、本発明は、社会ネットワーク内の個人のランク付け、および送電網または通信網上の重要なリソースの識別に適用され得る。
さらに、本発明は、分散ネットワーク上のリソースの効率的な分配を見出すことに適用され得る。こうしたリソース分配の具体的な一例は、多くのユーザを含む仮想メッセージングサービスである。ユーザは一般に、サービスをホストする分散サーバのうちの1つにログオンし、前に設定された、1組の関連ユーザ(「友人」または「仲間」)リストのうちのどれが現在サーバに同様にログインしているかの通知を受ける。彼を自身のリストに含めている他のユーザも同様に、彼のログインについての通知を受ける。次いで、こうしたユーザは、互いの間の直接の通信セッションに従事し得る。こうしたシステムでは、それは、互いのリスト上にあるユーザが分散サーバのうちの同じサーバによるサービスを受けている場合に有用であり、したがって、分散ネットワーク上のサーバ間の通信コストが低減される。したがって、本発明をこうしたシステムに適用すると、互いに通信しているユーザが一般に同じサーバまたは近隣サーバによるサービスを受けるようにするのに役立つことによって、システムの全体的な通信コストが低減される。
本発明の原理が適用され得る多くの可能な実施形態に鑑みて、図面に関して本明細書で述べた諸実施形態は、例示的なものにすぎず、また本発明の範囲を限定するものと見なすべきでないことを理解されたい。例えば、例示された諸実施形態は、本発明の精神から逸脱せずに、構成および詳細が修正され得ることが当業者には理解されよう。本発明について、ソフトウェアモジュールまたはコンポーネントに関して述べたが、これはハードウェアコンポーネントで等価に置き換えられ得ることが当業者には理解されよう。したがって、本明細書で述べた本発明は、こうしたすべての実施形態が特許請求の範囲、およびその等価物の範囲内に含まれ得ることを企図している。
110 コンピュータ
120 処理装置
121 システムバス
122 メモリキャッシュ
130 システムメモリ
131 ROM
132 RAM
133 BIOS
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 取外し不可能な不揮発性メモリインターフェース
141 ハードディスクドライブ
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 取外し可能な不揮発性メモリインターフェース
151 磁気ディスクドライブ
152 磁気ディスク
155 光ディスクドライブ
156 光ディスク
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 広域ネットワーク
180 リモートコンピュータ
181 メモリ記憶装置
185 リモートアプリケーションプログラム
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
200 コンピュータ
202 インターネット
206 イーサネット(登録商標)
208 ウェブブラウザ
212 ページn、ページ1
214 v=お気に入りページ
220 検索エンジン
222 サーバ
224 データベース
226 インデックスおよび情報
228 ページランク付けエンジン
301 ページ1、ページ2へのリンク、ページ3へのリンク、ページ4へのリンク
302 ページ2、ページ1へのリンク、ページ4へのリンク
303 ページ3、ページ4へのリンク
304 ページ4、ページ1へのリンク、ページ2へのリンク
305 ページ5、ページ3へのリンク、ページ4へのリンク
404 ページ1
406 ページ2
410 エッジ
120 処理装置
121 システムバス
122 メモリキャッシュ
130 システムメモリ
131 ROM
132 RAM
133 BIOS
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 取外し不可能な不揮発性メモリインターフェース
141 ハードディスクドライブ
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 取外し可能な不揮発性メモリインターフェース
151 磁気ディスクドライブ
152 磁気ディスク
155 光ディスクドライブ
156 光ディスク
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 広域ネットワーク
180 リモートコンピュータ
181 メモリ記憶装置
185 リモートアプリケーションプログラム
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
200 コンピュータ
202 インターネット
206 イーサネット(登録商標)
208 ウェブブラウザ
212 ページn、ページ1
214 v=お気に入りページ
220 検索エンジン
222 サーバ
224 データベース
226 インデックスおよび情報
228 ページランク付けエンジン
301 ページ1、ページ2へのリンク、ページ3へのリンク、ページ4へのリンク
302 ページ2、ページ1へのリンク、ページ4へのリンク
303 ページ3、ページ4へのリンク
304 ページ4、ページ1へのリンク、ページ2へのリンク
305 ページ5、ページ3へのリンク、ページ4へのリンク
404 ページ1
406 ページ2
410 エッジ
Claims (26)
- オブジェクトの集合内のオブジェクトをランク付けする方法であって、前記集合内の前記オブジェクトのうちの1つまたは複数は、前記集合内の他のオブジェクトとのリンクを有し、
前記リンクに関する、前記集合内の他のオブジェクトとの近接度に従って、前記オブジェクトを順序付けるステップと、
前記オブジェクトの前記順序付けに従って、オブジェクト間の前記リンクをメモリ内に保存するステップとを備えることを特徴とする方法。 - 前記オブジェクト集合およびリンクは第1の行列によって表され、前記順序付けは、
前記第1行列に対して第2の行列を計算すること、
前記第2行列の2次固有ベクトルの近似値を求めること、および
前記2次固有ベクトルに近似する値に対して前記オブジェクトをラベル付けすることを備えることを特徴とする請求項1に記載の方法。 - 前記第2行列は、それぞれのオブジェクトについて、前記各オブジェクトにリンクされたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項2に記載の方法。
- 前記メモリ内に保存された前記リンクを使用して、前記オブジェクトのランク付けを計算することをさらに備えることを特徴とする請求項1に記載の方法。
- 前記計算は、前記メモリから最近アクセスされたリンクを一時的に保存するためにキャッシュを使用することを備えることを特徴とする請求項4に記載の方法。
- 前記オブジェクトはウェブページであることを特徴とする請求項1に記載の方法。
- オブジェクトの集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記集合内の前記オブジェクトのうちの1つまたは複数は、前記集合内の他のオブジェクトとのリンクを有し、前記コンピュータ実行可能命令は、
前記リンクに関する、前記集合内の他のオブジェクトとのその近接度に従って前記オブジェクトを順序付けるステップ、および
前記オブジェクトの前記順序付けに従って、オブジェクト間の前記リンクをメモリ内に保存するステップを実施することを特徴とするコンピュータ読取り可能媒体。 - 前記オブジェクト集合およびリンクは第1の行列によって表され、前記順序付けは、
前記第1行列に対して第2の行列を計算するステップ、
前記第2行列の2次固有ベクトルの近似値を求めるステップ、および
前記2次固有ベクトルに近似する値に対して前記オブジェクトをラベル付けするステップを含むことを特徴とする請求項7に記載のコンピュータ読取り可能媒体。 - 前記第2行列は、それぞれのオブジェクトについて、前記各オブジェクトにリンクされたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項8に記載のコンピュータ読取り可能媒体。
- 前記コンピュータ実行可能命令は、
前記メモリ内に保存された前記リンクを使用して、前記オブジェクトのランク付けを計算するステップをさらに実施することを特徴とする請求項7に記載のコンピュータ読取り可能媒体。 - 前記ランク付け計算は、前記メモリから最近アクセスされたリンクを一時的に保存するためにキャッシュを使用することを備えることを特徴とする請求項10に記載のコンピュータ読取り可能媒体。
- 相互接続されたオブジェクトの集合からのオブジェクトを順序付けする方法であって、前記オブジェクトの相互接続は第1の行列によって表され、
前記第1行列に対して第2の行列を計算すること、
前記第2行列の2次固有ベクトルの近似値を求めること、および
前記2次固有ベクトルに近似する値に対して前記オブジェクトを順序付けることを備えることを特徴とする方法。 - 前記オブジェクトはウェブページであることを特徴とする請求項12に記載の方法。
- 前記第2行列は、それぞれのオブジェクトについて、前記各オブジェクトに結合されたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項12に記載の方法。
- 2次固有ベクトルの近似値を求める方法であって、
第1ベクトルの初期値を選択するステップ、ならびに
前記第2行列に前記第1ベクトルを掛けて、第2のベクトルを取得するステップ、
前記第2ベクトルを中央に合わせせるステップ、および
前記第1ベクトルの値を前記第2ベクトルの値で置き換えるステップ
を終了条件が満たされるまで反復するステップ
を備えることを特徴とする請求項12に記載の方法。 - 前記第2ベクトルを中央に合わせる前記ステップは、前記第2ベクトルのエントリの平均値がゼロになるように、前記第2ベクトルの各エントリに固定量を加算することを備えることを特徴とする請求項15に記載の方法。
- 前記第2ベクトルを正規化するステップをさらに備えることを特徴とする請求項15に記載の方法。
- 相互接続されたオブジェクトの集合内のオブジェクトの順序付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記オブジェクトの相互接続は第1の行列によって表され、前記コンピュータ実行可能命令は、
前記第1行列に対して第2の行列を計算するステップ、
前記第2行列の2次固有ベクトルの近似値を求めるステップ、および
前記第2固有ベクトルに近似する値に対して前記オブジェクトを順序付けるステップを実施することを特徴とするコンピュータ読取り可能媒体。 - 前記オブジェクトはウェブページであることを特徴とする請求項18に記載のコンピュータ読取り可能媒体。
- 前記第2行列は、それぞれのオブジェクトについて、前記各オブジェクトに結合されたオブジェクトに関連する値の近似平均値を計算する関数を表すことを特徴とする請求項18に記載のコンピュータ読取り可能媒体。
- 2次固有ベクトルの近似値を求めることは、
第1ベクトルの初期値を選択すること、ならびに
前記第2行列に前記第1ベクトルを掛けて、第2のベクトルを取得すること、
前記第2ベクトルを中央に合わせること、および
前記第1ベクトルの値を前記第2ベクトルの値で置き換えるステップを終了条件が 満たされるまで反復することを備えることを特徴とする請求項18に記載のコンピュータ読取り可能媒体。 - 前記第2ベクトルを中央に合わせることは、前記第2ベクトルのエントリの平均値がゼロになるように、前記第2ベクトルの各エントリに固定量を加算することを備えることを特徴とする請求項21に記載のコンピュータ読取り可能媒体。
- 前記オブジェクトは、複数のサーバを含む分散コンピューティングシステム内のリソースであり、前記コンピュータ読取り可能媒体は、前記複数のサーバ間の相互接続された前記リソースのうちの1つまたは複数を割り当てることをさらに容易にし、
前記順序付けに従って、前記複数のサーバに前記リソースを割り当てることをさらに実施することを特徴とする請求項18に記載のコンピュータ読取り可能媒体。 - 相互接続されたオブジェクトの集合内のオブジェクトのランク付けを容易にするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記相互接続についての記述は、前記オブジェクトの第1の順序付けに従ってメモリ内に保存され、前記コンピュータ実行可能命令は、
前記相互接続よる他のオブジェクトとのその近接度に対して前記オブジェクトを再順序付けするステップを実施することを特徴とするコンピュータ読取り可能媒体。 - 前記コンピュータ実行可能命令は、
前記オブジェクトの前記再順序付けを使用することによって、前記オブジェクトのランク付けを計算するステップをさらに実施することを特徴とする請求項24に記載のコンピュータ読取り可能媒体。 - 前記計算は、前記メモリから最近アクセスされた相互接続記述情報を一時的に保存するためにキャッシュを使用することを備えることを特徴とする請求項25に記載のコンピュータ読取り可能媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/903,345 US7379947B2 (en) | 2004-07-30 | 2004-07-30 | Efficiently ranking web pages via matrix index manipulation and improved caching |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006065855A true JP2006065855A (ja) | 2006-03-09 |
Family
ID=34940328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005223308A Pending JP2006065855A (ja) | 2004-07-30 | 2005-08-01 | 行列インデックス操作および改良型キャッシングによるウェブページの効率的なランク付け |
Country Status (5)
Country | Link |
---|---|
US (1) | US7379947B2 (ja) |
EP (1) | EP1622047A3 (ja) |
JP (1) | JP2006065855A (ja) |
KR (1) | KR20060048940A (ja) |
CN (1) | CN1737803A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014228975A (ja) * | 2013-05-20 | 2014-12-08 | 日本電信電話株式会社 | 検索装置、検索方法および検索プログラム |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100913256B1 (ko) * | 2005-04-14 | 2009-08-24 | 에스케이커뮤니케이션즈 주식회사 | 다중 링크를 형성하는 정보 네트워크에서 링크 관계에 따른대상 평가 방법 |
US20070266025A1 (en) * | 2006-05-12 | 2007-11-15 | Microsoft Corporation | Implicit tokenized result ranking |
US8301728B2 (en) * | 2006-07-21 | 2012-10-30 | Yahoo! Inc. | Technique for providing a reliable trust indicator to a webpage |
CN101529865B (zh) * | 2006-09-11 | 2012-08-29 | 国际商业机器公司 | 用于推荐快捷方式以便使导航拓扑内的导航容易和加快的方法 |
US8510349B1 (en) * | 2006-12-06 | 2013-08-13 | Zillow, Inc. | Multi-faceted search |
US7877384B2 (en) * | 2007-03-01 | 2011-01-25 | Microsoft Corporation | Scoring relevance of a document based on image text |
US7840522B2 (en) * | 2007-03-07 | 2010-11-23 | Microsoft Corporation | Supervised rank aggregation based on rankings |
US20080228719A1 (en) * | 2007-03-13 | 2008-09-18 | Fatdoor, Inc. | People and business search result optimization |
US7788254B2 (en) * | 2007-05-04 | 2010-08-31 | Microsoft Corporation | Web page analysis using multiple graphs |
US8024285B2 (en) * | 2007-12-27 | 2011-09-20 | Microsoft Corporation | Determining quality of tier assignments |
US7818303B2 (en) * | 2008-01-29 | 2010-10-19 | Microsoft Corporation | Web graph compression through scalable pattern mining |
US20100036809A1 (en) * | 2008-08-06 | 2010-02-11 | Yahoo! Inc. | Tracking market-share trends based on user activity |
US8250069B2 (en) | 2008-10-14 | 2012-08-21 | University Of Washington | Green's function formulations for pagerank algorithm using helmholtz wave equation representations of internet interactions |
US8311792B1 (en) * | 2009-12-23 | 2012-11-13 | Intuit Inc. | System and method for ranking a posting |
US20120203592A1 (en) * | 2011-02-08 | 2012-08-09 | Balaji Ravindran | Methods, apparatus, and articles of manufacture to determine search engine market share |
US9405923B2 (en) * | 2011-09-29 | 2016-08-02 | Red Hat, Inc. | Establishing isolation between content hosting services executing on common support server |
US8799296B2 (en) * | 2012-02-23 | 2014-08-05 | Borislav Agapiev | Eigenvalue ranking of social offerings using social network information |
CN103399859A (zh) * | 2013-07-02 | 2013-11-20 | 北京奇虎科技有限公司 | 网页权威值的计算方法、装置及系统 |
CN106033465B (zh) * | 2015-03-19 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种信息推送方法和装置 |
US9898544B2 (en) * | 2016-02-18 | 2018-02-20 | Eshaa Alkhalifa | Guided web navigation tool |
US11023421B1 (en) * | 2017-12-07 | 2021-06-01 | Liberty Mutual Insurance Company | Method, apparatus, and computer program product for compression of a graph |
CN111538714B (zh) * | 2020-04-24 | 2023-10-17 | 咪咕文化科技有限公司 | 一种指令执行方法、装置、电子设备和存储介质 |
CN111796796B (zh) * | 2020-06-12 | 2022-11-11 | 杭州云象网络技术有限公司 | 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6285999B1 (en) * | 1997-01-10 | 2001-09-04 | The Board Of Trustees Of The Leland Stanford Junior University | Method for node ranking in a linked database |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2691559B1 (fr) | 1992-05-25 | 1997-01-03 | Cegelec | Systeme logiciel a objets repliques exploitant une messagerie dynamique, notamment pour installation de controle/commande a architecture redondante. |
US6198390B1 (en) | 1994-10-27 | 2001-03-06 | Dan Schlager | Self-locating remote monitoring systems |
JPH0927811A (ja) | 1995-07-13 | 1997-01-28 | Fujitsu Ltd | 輻輳監視制御装置 |
US6023612A (en) | 1996-07-05 | 2000-02-08 | Thomcast Communications, Inc. | Modular transmission system and method |
CA2219557C (en) | 1997-10-29 | 2002-12-10 | Ibm Canada Limited-Ibm Canada Limitee | Run-time instrumentation for object oriented programmed applications |
US6122628A (en) * | 1997-10-31 | 2000-09-19 | International Business Machines Corporation | Multidimensional data clustering and dimension reduction for indexing and searching |
US6324619B1 (en) | 1998-03-27 | 2001-11-27 | Sony Corporation Of Japan | Process and system for managing run-time adaptation for general purpose distributed adaptive applications |
US6216237B1 (en) | 1998-06-19 | 2001-04-10 | Lucent Technologies Inc. | Distributed indirect software instrumentation |
US6473791B1 (en) | 1998-08-17 | 2002-10-29 | Microsoft Corporation | Object load balancing |
US6295643B1 (en) | 1998-12-10 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for improving java virtual machine performance using persistent execution information |
US6631409B1 (en) | 1998-12-23 | 2003-10-07 | Worldcom, Inc. | Method and apparatus for monitoring a communications system |
US6466980B1 (en) | 1999-06-17 | 2002-10-15 | International Business Machines Corporation | System and method for capacity shaping in an internet environment |
US6560600B1 (en) * | 2000-10-25 | 2003-05-06 | Alta Vista Company | Method and apparatus for ranking Web page search results |
GB2368747B (en) * | 2000-10-31 | 2004-12-29 | Daniel Victor Pavin | Method and system for determining the popularity of a subject |
US7188106B2 (en) * | 2001-05-01 | 2007-03-06 | International Business Machines Corporation | System and method for aggregating ranking results from various sources to improve the results of web searching |
US7167910B2 (en) * | 2002-02-20 | 2007-01-23 | Microsoft Corporation | Social mapping of contacts from computer communication information |
US7177880B2 (en) * | 2002-12-19 | 2007-02-13 | International Business Machines Corporation | Method of creating and displaying relationship chains between users of a computerized network |
-
2004
- 2004-07-30 US US10/903,345 patent/US7379947B2/en not_active Expired - Fee Related
-
2005
- 2005-07-29 CN CNA2005101098563A patent/CN1737803A/zh active Pending
- 2005-07-29 KR KR1020050069559A patent/KR20060048940A/ko not_active Application Discontinuation
- 2005-07-29 EP EP05107029A patent/EP1622047A3/en not_active Withdrawn
- 2005-08-01 JP JP2005223308A patent/JP2006065855A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6285999B1 (en) * | 1997-01-10 | 2001-09-04 | The Board Of Trustees Of The Leland Stanford Junior University | Method for node ranking in a linked database |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014228975A (ja) * | 2013-05-20 | 2014-12-08 | 日本電信電話株式会社 | 検索装置、検索方法および検索プログラム |
Also Published As
Publication number | Publication date |
---|---|
US7379947B2 (en) | 2008-05-27 |
EP1622047A2 (en) | 2006-02-01 |
US20060026191A1 (en) | 2006-02-02 |
EP1622047A3 (en) | 2006-03-29 |
KR20060048940A (ko) | 2006-05-18 |
CN1737803A (zh) | 2006-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7379947B2 (en) | Efficiently ranking web pages via matrix index manipulation and improved caching | |
Zhang et al. | Towards personalized and semantic retrieval: An end-to-end solution for e-commerce search via embedding learning | |
US7464075B2 (en) | Personalization of web page search rankings | |
US10452691B2 (en) | Method and apparatus for generating search results using inverted index | |
US7519588B2 (en) | Keyword characterization and application | |
US8631004B2 (en) | Search suggestion clustering and presentation | |
US8745039B2 (en) | Method and system for user guided search navigation | |
US8762383B2 (en) | Search engine and method for image searching | |
US8280829B2 (en) | Efficient algorithm for pairwise preference learning | |
RU2387005C2 (ru) | Способ и система ранжирования объектов на основе отношений внутри типа и между типами | |
US20110179002A1 (en) | System and Method for a Vector-Space Search Engine | |
US8078642B1 (en) | Concurrent traversal of multiple binary trees | |
US20090299978A1 (en) | Systems and methods for keyword and dynamic url search engine optimization | |
US11361036B2 (en) | Using historical information to improve search across heterogeneous indices | |
US20080065602A1 (en) | Selecting advertisements for search results | |
JP7451747B2 (ja) | コンテンツを検索する方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 | |
US7765204B2 (en) | Method of finding candidate sub-queries from longer queries | |
CN111259220B (zh) | 一种基于大数据的数据采集方法和系统 | |
US20090083214A1 (en) | Keyword search over heavy-tailed data and multi-keyword queries | |
Li | [Retracted] Internet Tourism Resource Retrieval Using PageRank Search Ranking Algorithm | |
Xiao et al. | Browsing on small displays by transforming web pages into hierarchically structured subpages | |
US20060004811A1 (en) | Efficient computation of web page rankings | |
US7574420B2 (en) | Indexing pages based on associations with geographic regions | |
CN110110184B (zh) | 信息查询方法、系统、计算机系统及存储介质 | |
KR100754157B1 (ko) | 멀티미디어 콘텐츠를 위한 데이터베이스 구축 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080801 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110628 |