(57)【要約】  シンクの改善策として、リンク及びノードを含む元のグラフからのメタグラフの形成するステップと、メタグラフ内のリンクの反転とメタグラフ内のソースのポンピングの一方を行うステップとを含み、リンク解析を用いて文書をランク付けする方法、装置、及び、コンピュータプログラムである。
2008510256.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいてリンク解析を使用して文書をランク付けする方法であって、
各ノードが１個の文書を表現し、各リンクが１個の文書内での１個の別の文書への参照を表現する元のグラフ内で、すべての強接続コンポーネント（ＳＣＣ）を特定するステップと、
各ＳＣＣをメタノードで置き換えることによりメタグラフを形成するステップと、
リンクされたＳＣＣのペアが強接続になるように、前記メタグラフ内のリンクされたＳＣＣのペア毎に前記元のグラフ内で少なくとも１本のリンクを追加することにより前記元のグラフを修正するステップと、前記メタグラフ内のソースと対応する１個以上のＳＣＣをポンピングするステップとのうちの一方のステップと、
リンク解析ノード重みを決定するステップと、
前記文書のランキングを決定するときに前記リンク解析ノード重みを使用するステップと、
を含む方法。
【請求項２】
メタグラフを形成するステップが、
第１のＳＣＣ内のノードから第２のＳＣＣ内のノードへの有向リンクが第１のメタノードから第２のメタノードへのリンクになるように、前記第１のＳＣＣと前記第２のＳＣＣとの間でリンクを維持するステップを含む、
請求項１に記載の方法。
【請求項３】
前記メタグラフに対応するコラプス型グラフを特定するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記元のグラフ内で少なくとも１本のリンクを追加するステップが、
始点及び終点を含むＳＣＣ間リンクを特定するステップと、
前記ＳＣＣ間リンクの反転リンクを追加するステップと、
を含む、請求項１に記載の方法。
【請求項５】
重みεを前記追加された反転リンクに割り当てるステップをさらに含む、請求項４に記載の方法。
【請求項６】
対応するＳＣＣ間リンクの計算された重みより小さい重みεを前記追加された反転リンクに割り当てるステップをさらに含む、請求項５に記載の方法。
【請求項７】
テキスト関連性ノード重みを決定するステップと、
前記文書のランキングを決定するときに、前記テキスト関連性ノード重みを前記リンク解析ノード重みと一緒に使用するステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記リンク解析ノード重みを決定するステップが、
正規化オペレータと非正規化オペレータのうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記ＳＣＣに対する隣接行列を決定するステップを含む、
請求項１に記載の方法。
【請求項９】
１個以上のＳＣＣをポンピングするステップが、
前記コラプス型グラフ内でアウトリンクを保有する１個以上のメタノードだけを決定するため前記コラプス型グラフを使用するステップと、
前記１個以上のＳＣＣとして、前記１個以上のメタノードと対応する前記ＳＣＣを選択するステップと、
をさらに含む、
請求項２に記載の方法。
【請求項１０】
１個以上のＳＣＳをポンピングするステップが、
前記１個以上のＳＣＣの範囲内で各ＳＣＣ内リンクを特定するステップと、
正規化演算子と非正規化演算子のうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記１個以上のＳＣＣのそれぞれに対して隣接行列を決定するステップと、
前記隣接行列に基づいて前記１個以上のＳＣＣのそれぞれの主固有値を計算することにより、前記１個以上のＳＣＣのそれぞれに対し利得を決定するステップと、
（ｉ）前記１個以上のＳＣＣのそれぞれが同じ利得を保有する、（ｉｉ）１個以上のＳＣＣのそれぞれの共通利得が非ソースＳＣＣの利得を上回る、及び、（ｉｉｉ）前記１個以上のＳＣＣの前記共通利得がソースＳＣＣの利得を上回るという３個の条件が満たされるまで、前記１個以上のＳＣＣのそれぞれの前記利得を増加させるステップと、
をさらに含む、
請求項１に記載の方法。
【請求項１１】
前記１個以上のＳＣＣのうちのいずれかが単一のノードを保有し、ＳＣＣ内リンクを保有しないかどうかを判定するステップと、
各ＳＣＣ内リンクを特定するステップの前に、単一のノードを保有し、ＳＣＣ内リンクを保有しないことが判定されたいずれかの１個以上のＳＣＣに対し、前記単一のノードからそのノード自体を指し示す自己リンクを追加するステップと、
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記１個以上のＳＣＣのそれぞれの利得を増加させるステップが、
Ｇが１個以上の各ＳＣＣの希望の共通利得を表し、ｇが前記ＳＣＣの前記元の利得を表し、前記ＳＣＣ内のすべての元のＳＣＣ内リンクに係数Ｇ／ｇを乗算するステップを含む、
請求項１０に記載の方法。
【請求項１３】
指示元ノードと指示先ノードの少なくとも一方に対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアに従って、前記指示元ノードから指し示す、又は、前記指示先ノードを指し示す少なくとも１本のリンクの上記重みを調整するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１４】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
計算されたパーソナル関心スコアをパーソナル化された補完ベクトルに組み立てるステップと、
前記リンク解析ノード重みを決定するため、ノード重み計算プロセスの繰り返し毎に、前記パーソナル化された補完ベクトルを計算されたノード重みベクトルに加算するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１５】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアを前記決定されたリンク解析ノード重みに加算するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１６】
前記元のグラフが前記文書に関する情報を収集するクローラを用いて特定される、請求項１に記載の方法。
【請求項１７】
前記クローラがウェブクローラであり、前記文書がワールドワイドウェブ上のウェブページである、請求項１６に記載の方法。
【請求項１８】
リンク解析を用いて文書をランク付けするように構成されたコンピュータシステムであって、
各ノードが１個の文書を表現し、各リンクが１個の文書内での１個の別の文書への参照を表現する元のグラフ内で、すべての強接続コンポーネント（ＳＣＣ）を特定するステップと、
各ＳＣＣをメタノードで置き換えることによりメタグラフを形成するステップと、
リンクされたＳＣＣのペアが強接続になるように、前記メタグラフ内のリンクされたＳＣＣのペア毎に前記元のグラフ内で少なくとも１本のリンクを追加することにより前記元のグラフを修正するステップと、前記メタグラフ内のソースと対応する１個以上のＳＣＣをポンピングするステップとのうちの一方のステップと、
リンク解析ノード重みを決定するステップと、
前記文書のランキングを決定するときに前記リンク解析ノード重みを使用するステップと、
を実行するため、命令を格納するメモリと前記命令を実行するプロセッサとを備えるコンピュータシステム。
【請求項１９】
メタグラフを形成するステップが、
第１のＳＣＣ内のノードから第２のＳＣＣ内のノードへの有向リンクが第１のメタノードから第２のメタノードへのリンクになるように、前記第１のＳＣＣと前記第２のＳＣＣとの間でリンクを維持するステップを含む、
請求項１８に記載のシステム。
【請求項２０】
前記メタグラフに対応するコラプス型グラフを特定するステップを実行するようにさらに構成されている、請求項１９に記載のシステム。
【請求項２１】
前記元のグラフ内で少なくとも１本のリンクを追加するステップが、
始点及び終点を含むＳＣＣ間リンクを特定するステップと、
前記ＳＣＣ間リンクの反転リンクを追加するステップと、
を含む、請求項１８に記載のシステム。
【請求項２２】
重みεを前記追加された反転リンクに割り当てるステップを実行するようにさらに構成されている、請求項２１に記載のシステム。
【請求項２３】
対応するＳＣＣ間リンクの計算された重みより小さい重みεを前記追加された反転リンクに割り当てるステップを実行するようにさらに構成されている、請求項２２に記載のシステム。
【請求項２４】
テキスト関連性ノード重みを決定するステップと、
前記文書のランキングを決定するときに、前記テキスト関連性ノード重みを前記リンク解析ノード重みと一緒に使用するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項２５】
前記リンク解析ノード重みを決定するステップが、
正規化オペレータと非正規化オペレータのうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記ＳＣＣに対する隣接行列を決定するステップを含む、
請求項１８に記載のシステム。
【請求項２６】
１個以上のＳＣＣをポンピングするステップが、
前記コラプス型グラフ内でアウトリンクを保有する１個以上のメタノードだけを決定するため前記コラプス型グラフを使用するステップと、
前記１個以上のＳＣＣとして、前記１個以上のメタノードと対応する前記ＳＣＣを選択するステップと、
をさらに含む、
請求項１９に記載のシステム。
【請求項２７】
１個以上のＳＣＳをポンピングするステップが、
前記１個以上のＳＣＣの範囲内で各ＳＣＣ内リンクを特定するステップと、
正規化演算子と非正規化演算子のうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記１個以上のＳＣＣのそれぞれに対して隣接行列を決定するステップと、
前記隣接行列に基づいて前記１個以上のＳＣＣのそれぞれの主固有値を計算することにより、前記１個以上のＳＣＣのそれぞれに対し利得を決定するステップと、
（ｉ）前記１個以上のＳＣＣのそれぞれが同じ利得を保有する、（ｉｉ）１個以上のＳＣＣのそれぞれの共通利得が非ソースＳＣＣの利得を上回る、及び、（ｉｉｉ）前記１個以上のＳＣＣの上記共通利得がソースＳＣＣの利得を上回るという３個の条件が満たされるまで、前記１個以上のＳＣＣのそれぞれの前記利得を増加させるステップと、
をさらに含む、
請求項１８に記載のシステム。
【請求項２８】
前記１個以上のＳＣＣのうちのいずれかが単一のノードを保有し、ＳＣＣ内リンクを保有しないかどうかを判定するステップと、
各ＳＣＣ内リンクを特定するステップの前に、単一のノードを保有し、ＳＣＣ内リンクを保有しないことが判定されたいずれかの１個以上のＳＣＣに対し、前記単一のノードからそのノード自体を指し示す自己リンクを追加するステップと、
を実行するようにさらに構成されている、請求項２７に記載のシステム。
【請求項２９】
前記１個以上のＳＣＣのそれぞれの利得を増加させるステップが、
Ｇが１個以上の各ＳＣＣの希望の共通利得を表し、ｇが前記ＳＣＣの前記元の利得を表し、前記ＳＣＣ内のすべての元のＳＣＣ内リンクに係数Ｇ／ｇを乗算するステップを含む、
請求項２７に記載のシステム。
【請求項３０】
指示元ノードと指示先ノードの少なくとも一方に対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアに従って、前記指示元ノードから指し示す、又は、前記指示先ノードを指し示す少なくとも１本のリンクの上記重みを調整するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項３１】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
計算されたパーソナル関心スコアをパーソナル化された補完ベクトルに組み立てるステップと、
前記リンク解析ノード重みを決定するため、ノード重み計算プロセスの繰り返し毎に、前記パーソナル化された補完ベクトルを計算されたノード重みベクトルに加算するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項３２】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアを前記決定されたリンク解析ノード重みに加算するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項３３】
前記文書に関する情報を収集することができ、前記元のグラフを構築するクローラをさらに備える、請求項１８に記載のシステム。
【請求項３４】
前記クローラがウェブクローラであり、前記文書がワールドワイドウェブ上のウェブページである、請求項３３に記載のシステム。
【請求項３５】
コンピュータ機器に請求項１乃至１７のいずれか一項に記載されたステップを実行させるように構成された命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２００４年８月１６日に出願され、全内容が参照によって本明細書に組み込まれた、米国出願第１０／９１８，７１３号の優先権を主張する。本願は、２００３年１０月２９日に出願され、全内容が参照によって本明細書に組み込まれた、米国特許出願第１０／６８７，６０２号に関連した主題も含む。
【技術分野】
【０００２】
本発明は、ハイパーテキストリンクを用いて分散ネットワーク内で見つけられた情報源をランク付けする方法、システム、及び、コンピュータプログラムを含む。特に、本発明は、分散ネットワーク環境内の検索からのヒットのリンク解析ベースのランク付けに関係する。方法のソフトウェア／ファームウェア実施は、分散ネットワーク環境内の検索からのヒットのリンク解析ベースのランキングの目的で分散情報システムを検索するシステムの一つのコンポーネントを構成する。方法は、文書又はその他のファイルがインターネットのようなリンクによって関連付けられる環境に適用可能である。
【背景技術】
【０００３】
図１は、ワールドワイドウェブ（ＷＷＷ）向けの検索エンジンを構築するために一般的に使用される部品を示す、インターネットの基本的な説明図である。クローラ１は、ＷＷＷ２に公開されたウェブページに関する情報を収集する。該当する全テキスト情報は、反転インデックス３に供給され、WWWのクロールされた部分で利用可能な情報のオフラインスナップショットとして使用される。リンク構造に関する情報、すなわち、各ページが他のどちらのウェブページを指し示しているかがリンクデータベース４に保存される。ユーザが検索を実行するとき、ユーザは検索クエリ５を発行し、検索クエリが反転インデックス３へ送られる。反転インデックスの走査の結果として、優先順位付きのヒットのリストが生じる。このヒットリストは、次に、テキスト関連性６及びリンク構造７に従ってランク付けされる。２個のランキング指標は次に、１個の優先順位付きの、ランク付けされたリスト８に統合され、リスト８が検索クエリを発したユーザへ優先順位付き検索結果９として戻される。
【０００４】
クエリ結果が反転インデックスから取得されるとき、クエリ結果は、一般に、インターネット上の異なるＷＷＷドメインに属するヒット／文書を含む。文書相互の相互参照（指示）を作成する方法は、暗黙的に有向グラフを構築する。この有向グラフは、ノードとしての文書と、有向エッジとしてのハイパーテキストとにより構成され、この有向グラフがリンクベースのランキングで使用される。リンクベースのランキングは、次に、ヒット（文書）の内容ではなく、ヒット（文書）が大規模なネットワーク（有向グラフ）内でどのように位置するかに基づいて、ヒット（文書）の「重み」すなわち「重要度」を評価する。
【０００５】
リンク解析ベースのランキングは、ランク付けされるべき文書が、ある文書から別の文書を指し示す有向リンクによって関連付けられ、リンクがレコメンデーションの形式として解釈されるいかなる状況においても有用である。すなわち、文書ｕから文書ｖを指し示すリンクは、文書ｕに関心のあるユーザが文書ｖにも関心があることを示唆する。リンク解析は、役に立つ形で、すべてのこのような「リコメンデーション」（リンク）に含まれる情報を結合することを可能にするので、大域的な意味で文書をランク付けすることが可能である。この種のアプローチの顕著な一例は、ワールドワイドウェブと称されるリンク付き文書の集合へのグーグルのＰａｇｅＲａｎｋ法の適用である。
【０００６】
リンクベースのランキングを行い、文書の「重み」を見つけるいくつかの代替的な方式がある。すべての方法は、様々に変形された、グラフの隣接行列Ａの（最大固有値に関連した固有ベクトル）主固有ベクトルの検出に基づいている。（前述の）グーグルのＰａｇｅＲａｎｋ法は、列が単位元に正規化された転置隣接行列の主固有ベクトルを計算することにより、文書のそれぞれのランキングを取得する。ＨＩＴＳ法では、（後述の）Ｋｌｅｉｎｂｅｒｇに起因して、２個のランキングが取得され、１）ハブスコアは、隣接行列の転置行列を用いて作られた隣接行列の主固有ベクトルを計算することにより取得され、２）オーソリティスコアは、隣接行列自体を用いて作られた転置隣接行列の主固有ベクトルを取得することにより計算される。しかし、（単独で使用される）修正されていない隣接行列及び（同様に単独で使用される）その転置から生じるランキングを取り扱うことは実施されていない。
【０００７】
リンク解析のための種々の方法は、２個の簡単な演算子、すなわち、Ｆ（フォワード）及びＢ（バックワード）と、それらのそれぞれの正規化バージョンであるｆ及びｂとを定義することによって、最も容易に説明される。ランダムウォークの精神で、有向グラフ上の各ノードに関連付けられたある重み（正数）を仮定することが可能である。Ｆ演算子は、各ノードｕにおける重みｗ（ｕ）を取得し、その重みを前方へ、すなわち、ノードｕによって指し示されたすべてのノードへ送る。Ｂ演算子は、矢印と逆向きに、すなわち、ノードｕを指し示す各ノードへｗ（ｕ）を送る。Ｂは隣接行列Ａであり、Ｆはその転置である。ｆはＦの行正規化バージョンであり、ｆはノードｕにおける重みｗ（ｕ）を取得し、ノードｕの出次数ｋｏｕｔ，ｕによって重みを割り、その結果ｗ（ｕ）／ｋｏｕｔ，ｕをノードｕによって指し示された各ノードへ送る。同様に、ｂはバックワード演算子Ｂの正規化バージョンである。
【０００８】
ＰａｇｅＲａｎｋは、（後述の）「ランダムサーファー」演算子によって補完されたｆ（正規化フォワード）演算子を使用する。ＨＩＴＳ法は、オーソリティスコアを取得するため複合演算子ＦＢを使用し、ハブスコアを取得するためＢＦを使用する。本発明は、シンクの問題に影響されるいかなる演算子とも、特に、基本演算子Ｆ、Ｂ、ｆ又はｂの何れとも共に使用される。
【０００９】
すべてのリンクベースのランキングスキームが取り扱わなければならない一つの問題は、有向リンクグラフ構造中の「シンク」の状況である。「シンク」は、自分自身を指し示すリンクだけを有し、シンクノードの集合からシンクノードの集合の外側にある他のノードへ向かうリンクが存在しない、ノード、又は、ノードの集合である。典型的に、シンクは、１個のノードではなく、ノードの集合で構成され、このような集合は「シンク領域」と呼ばれる。同様に、シンク領域内のあらゆるノードは「シンクノード」と呼ばれる。
【００１０】
有向グラフ上のランダムウォークに伴う問題は、ランダムウォークが容易にシンク内に、すなわち、中に入る経路はあるが、外へ出る経路はないグラフの領域内に閉じ込められることである。ＰａｇｅＲａｎｋは、ある特定の確率で（リンクとは独立した）完全にランダムなホップを追加することによりシンクを訂正し、一方、ＷｉｓｅＮｕｔは、グラフ内のあらゆる他のノードへ双方向接続された仮ノードである「ページウェイトリザーバ」を利用することによりシンクを訂正する。シンクは、一般に、ハイパーテキストシステムに存在するので、有向グラフ上のランダムウォークを必要とするあらゆる方法は、何とかしてこの問題を取り扱わなければならない。
【００１１】
異なるアプローチが、ＩＢＭのＣＬＥＶＥＲプロジェクトに関してなされた研究に基づいて、コーネル大学のＪｏｎ  Ｋｌｅｉｎｂｅｒｇによって特許を取得されている（米国特許第６，１１２，２０２号明細書、その内容は参照によって本明細書に組み込まれている）。そのアルゴリズムはしばしばＨＩＴＳ（「ハイパーテキスト・インデュースド・トピック・セレクション」）と呼ばれる。
【００１２】
ＨＩＴＳアプローチでは、ＨＩＴＳ演算子ＢＦ又はＦＢの何れかを適用する際に、矢印（有向アーク）に沿う動きと矢印に逆行する動きとを交互にするので、シンクに伴う問題は知られていない。このアプローチと、このアプローチの変形は、いくつかの特許において扱われている（参照によって内容が本明細書に組み込まれた、たとえば、米国特許第６，１１，２０３号明細書、第６，３２１，２２０号明細書、第６，３５６，８９９号明細書、及び第６，５６０，６００号明細書）。
【００１３】
１３個のノード（文書）を伴う簡単なグラフが図２に示されている。図２では、２個のシンク領域があり、一方のシンク領域はノード（６，７，８）の集合により構成され、もう一方のシンク領域はノード（１０，１１，１２，１３）の集合により構成される。矢印方向だけへの動きは、その動きがシンク領域の何れかに初めて到達すると、これらのシンク領域の何れかに閉じ込められる。
【００１４】
シンクの存在は、リンク解析による重要度ランキングの重大な実際的な問題を提起する。問題は、あるアプローチでは、シンクノード又はシンク領域は重みすべてを累積し、一方、その他の非シンクノード（文書）はゼロ重みを獲得することである。このように、有向グラフ全体に亘って、重みの安定した、非ゼロの、正分布を獲得する可能性はない。このような重み分布がなければ、重要な文書のランキングは不可能になる。すなわち、文書は、典型的に、リンク解析を用いて、隣接行列の選択された修正の主固有ベクトルから獲得された、正の、非ゼロの「重要度重み」をノード毎に計算し、次に、文書のランキングを与える全体的な重みを計算するため、この「リンク解析重要度重み」を（テキストのクエリへの関連性などのような）その他の重要度の指標と共に使用することによりランク付けされる。シンクが存在するとき、主固有ベクトルは、グラフの大部分に亘ってゼロ重みを有する傾向がある。この固有ベクトルに基づく重要度ランキングは有用ではない。
【００１５】
数学的に、グラフがシンクを有するということは、グラフが強接続されていないということと等価である。有向強接続グラフは、グラフ内のノードの任意のペアｕ及びｖに対し、ｕからｖへの少なくとも１個の有向パスと、ｖからｕへの少なくとも１個の有向パスが存在するようなグラフである。これらのパスは、必ずしもグラフノードの同じ集合を通り抜けなくてもよい。より平易には、強接続されたグラフの中を移動する際に、有向リンクを辿って、任意の開始場所から任意のノードに到達し得る。シンクノード、又は、シンク領域の存在は、この条件に違反し、シンク内で動けなくなり、決して外へ出られない。したがって、シンクをもつグラフは強接続されず、シンク問題の改善策はリンクグラフ全体を強接続させることである。
【００１６】
グーグルのＰａｇｅＲａｎｋアルゴリズムは、各ノードから他のノードへのリンクを追加することによりシンク問題を改善する。すなわち、グラフ内のノード毎に、あらゆる他のノードに対して、小さな重みが与えられたアウトリンクが追加される。この修正は、任意のページ（ノード）からランダムに任意の他のページへホップすることが可能であるウェブサーファーの効果を模倣するので、「ランダムサーファー」演算子と呼ばれる。
【００１７】
概念的には、ランダムサーファー演算子が使用されるとき、元のリンクグラフは、完全グラフ構造によって乱される。完全グラフとは、グラフ内の任意のノードから任意の他のノードへの有向リンクを有するグラフである。完全グラフによるリンクグラフの乱れによって、同様に完全である新しいグラフが得られる。シンク問題は、新しいグラフが強接続されているので、かくして解決され、すべてのノードの大域的なランキングが保証される。しかし、このことは、代償を伴わずには起こり得ない。支払われる代償は、リンクグラフの疎構造が犠牲にされ、新たに乱された、密なグラフによって置き換えられることである。これは、１）ランキングを計算するため使用されるアルゴリズムは、行列が密であるとき、通常は時間がかかるようになる、２）リンクグラフの構造が変更される、という二つの可能性のあるタイプの問題を引き起こす。
【００１８】
第１の問題はＰａｇｅＲａｎｋ法の場合には起こらない。ランダムサーファー演算子の特殊な（完全かつ対称な）構造のため、その影響が非常に容易に計算され得る。したがって、ＰａｇｅＲａｎｋアルゴリズムの計算時間は、完全グラフ構造の追加によって著しく増大されることがない。
【００１９】
第２の問題はそのまま残る。勿論、強接続されていないグラフを、何とかしてその構造を変えることなく、強接続グラフに変える可能性はない。しかし、ＰａｇｅＲａｎｋ修正が「膨大」であることの本当の意味がある。すなわち、元のグラフが大きいと仮定、すなわち、元のグラフが１００万個のノードを有すると仮定する。（ワールドワイドウェブ内の文書の個数は何十億である。）したがって、グラフが「疎」であるということは、グラフ内のリンクの総数がノードの個数におおよそ比例する、この場合には、１００万の数倍であるということである。しかし、ＰａｇｅＲａｎｋ修正を実行した後、リンクの本数は、百万の約百万倍、すなわち、約１兆本である。
【００２０】
図３は、図２のグラフ上でのランダムサーファー演算子の効果を説明する。ここでは、ノード１に追加されたアウトリンクだけが示される。すなわち、ランダムサーファーリンクの追加後、ノード１は、２本ではなく、１２本のアウトリンクを有する。グラフ内のあらゆる他のノードも１２本のアウトリンクを有するであろう。図２におけるすべての他のランダムサーファーリンクは、単に視覚的な混乱を回避するために描かれていない（このグラフの場合、全部で１３５本のランダムサーファーリンクが存在する）。
【００２１】
要約すると、ＰａｇｅＲａｎｋシンク改善策は、潜在的に膨大な本数の新しいリンクを元のグラフに追加する。この変更は、ある意味で大きいが、すべての追加リンクに等しい重みを与えることにより、少なくとも偏らない方式で行われる。しかし、やがて開示される方法は、小規模の本数のリンクだけを元のグラフに追加することにより、偏らない方式で、グラフを強接続することを目指す。
【００２２】
ＷｉｓｅＮｕｔ検索エンジンによって使用される別のアルゴリズム（米国特許出願第２００２−０１２９０１４号明細書）は、ＰａｇｅＲａｎｋにやや類似している。ＷｉｓｅＮｕｔ法（ＷｉｓｅＲａｎｋと呼ばれる）もまた、あらゆるノードを双方向に「ページウェイトリザーバ」（Ｒで表される）へ接続する多数のリンクを追加する。このことは、あらゆるノードがあらゆる他のノードへ到達することを可能にさせ、実際には、アルゴリズムでは、２回のホップｕ→Ｒ→ｖが１回に畳まれる。したがって、トポロジー的には、これはＰａｇｅＲａｎｋと同じである。しかし、Ｒを通るホップを使用する確率はＷｉｓｅＮｕｔルールでは異なり、少ない出次数を有するノードほどＲを使用する確率が高い。それにもかかわらず、特許出願から、得られるＷｉｓｅＮｕｔ行列の疎でない性質は、ＰａｇｅＲａｎｋ行列で見出された方式と同じ方式で管理可能である。よって、ＰａｇｅＲａｎｋに関して説明したのと同じ利点及び不利点がＷｉｓｅＮｕｔにも存在する。
【００２３】
リンク解析への第３のアプローチは、ＩＢＭのＣＬＥＶＥＲプロジェクトに関してなされた研究に基づく、コーネル大学（米国）のＪｏｎ  Ｋｌｅｉｎｂｅｒｇ（参照によって内容が本明細書に組み込まれた、米国特許第６，１１２，２０２号明細書）による。アルゴリズムは、しばしばＨＩＴＳ（「ハイパーテキスト・インデュースド・トピック・セレクション」）と呼ばれる。ＨＩＴＳアルゴリズムは、隣接行列をそのまま使用するのではなく、その代わりに、シンクを保有しないように構成された複合行列を使用する。したがって、ＨＩＴＳ法は、シンク問題を回避する方法を含む、と言われることがある。しかし、複合行列にはその固有の問題がある。一例としては、複合行列は、元のグラフ内でリンクされたノード間に接続がない「効率的なグラフ」を与える。ある種のケースでは、これは、接続された元のグラフが切断された効率的なグラフを生じる原因になる。切断されたグラフの重要な大域的な重要度関数を取得する方式はないので、このようなケースでは、さらなる仮定又は修正が必要とされる。
【００２４】
複合行列は、元のグラフでは接続されていないノードの多数のペアも接続する。したがって、複合行列には、元の隣接行列中に存在するより遙かに多数の非ゼロエントリーが存在する。しかし、実証的研究は、これらの複合行列が依然として疎であることを示唆し、一実施例では、元の隣接行列内でノード毎に平均約８本のリンクが存在する場合に、ノード毎に効果的なグラフ内に約４３本のリンクがあることがわかった。したがって、ＨＩＴＳ法は管理可能な数値計算をまた与えることがわかる。
【００２５】
最後に、複合行列の使用は、殆ど又は全く商業使用されていないが、非複合的なＰａｇｅＲａｎｋアプローチは大いに成功している。出願人自身のテストでは（未発表）、ＨＩＴＳ法はかなり芳しくない結果を与えるが、ＰａｇｅＲａｎｋと米国特許出願１０／６８７，６０２号明細書の両方は優れた結果を与えた。（これらのテストにおいて、「優れた結果」は最良ノードに高いランキングを与えることを意味する。）よって、ＨＩＴＳ及び関連した方法は、数学的にはエレガントであるが、ランキングの点では優れた性能を与えない。本発明者によって発見されたような望ましい一つの特徴は、複合行列の使用に頼らないアプローチである。
【発明の開示】
【発明が解決しようとする課題】
【００２６】
ハイパーテキストリンク解析のため現在利用可能なスキームの上記欠点に鑑みて、本発明の一つの目的は、ハイパーリンク化されたネットワーク内で文書にランク付けするルールベースの方法と、対応するシステム及びコンピュータベースのプロダクトを提供することである。
【００２７】
前述のように、一般的な有向グラフ構造は強接続されていない。特に、一般的な有向グラフ構造は、リンク解析を実行する際に問題を引き起こすシンクノード及び／又はシンク領域を有する。しかし、典型的な有向グラフは強接続コンポーネント（ＳＣＣ）を有する。強接続コンポーネントは、ｕとｖが同じＳＣＣにある限り、任意のノードｕから任意の他のノードｖへのパスが常に存在するノードの集合（通常はグラフ全体ではない）にすぎない。
【００２８】
異なるＳＣＣの間にもリンクが存在する。しかし、これらのリンクは、必ず一方向である。その原因は、ＳＣＣ＿１とＳＣＣ＿２との間で両方向に有向リンクが存在するならば、２個のＳＣＣは実際にはただ一つであるということにある。
【課題を解決するための手段】
【００２９】
本発明は、リンク解析ベースのランキングを実行しようとするときに起きる技術的問題、すなわち、シンクの問題を解決する二つの新しい方式を提供する。特に、本発明は、シンク問題を解決する二つの新しいアプローチを提案する。これらの二つのアプローチはそれぞれに次の二つの望ましい特長を有する。
・これらのアプローチは任意のタイプ（フォワード、バックワード、正規化、非正規化）の非複合行列と共に使用するのに適している。
・これらのアプローチは元の疎グラフを密グラフに変更しない。その代わりに、これらのアプローチはグラフを疎の状態にしたままグラフを修正する。
・方法１は少数のリンクを元のグラフに追加し、方法２は新しいリンクを追加しない。
【００３０】
発明のより完全な認識と、発明の多数の付随する利点は、添付図面と共に考慮されるときに以下の詳細な説明を参照することによってより十分に理解されるので、容易に得られるであろう。
【発明を実施するための最良の形態】
【００３１】
本発明は、各ノードｕのノードリンク解析重みＬＡ（ｕ）を計算するためリンク解析を使用する。ランキングの目的のため、各ノードのテキスト関連性ノード重みＴＲ（ｕ）も計算することが一般に行われている。最終的なノード重みＷ（ｕ）は、したがって、これらの２個の重み付き和：
Ｗ（ｕ）＝ａ・ＴＲ（ｕ）＋ｂ・ＬＡ（ｕ）
として取得される。重みＷ（ｕ）は純粋にランキングのために使用され、比ａ／ｂだけがランキングに影響を与え、２個のパラメータａとｂのうちの一方だけが独立したチューニングパラメータである。
【００３２】
本発明において記載されたリンク解析を含むリンク解析の任意の方法の開始点は、ノードが情報文書であり、リンクが一方のノードから別のノードへのポインタである有向グラフである。このグラフは、典型的に、リンクされた文書の集合の間でリンクをクロールすることにより、又は、さもなければ、リンクを測定することにより取得される。このグラフを「測定グラフ」と呼ぶ。
【００３３】
多くの場合に、品質管理と関係している種々の規準に従って、測定グラフを編集することが役に立つ。たとえば、多数のリンクが１個以上の文書のランキングを人為的に上昇させる目的で作られたと判定されるならば、これらのリンクはより正確かつ公正なランキングを与えるために除去される。同様に、ノードが除去される。たとえば、数個のノードが殆ど同一の内容を有し、文書システムの同じエリアにあり、それらが原則的に互いのコピーであるとみなされるならば、このようなノードのうち一つを除いて全部が除去される。勿論、ノードが取り除かれるとき、これらのノードを接続するリンクも除去されるべきである。
【００３４】
このような編集は、得られるハイパーリンク化されたグラフがリンクされた文書の集合の真の構造を正確に表現する能力を高めるため、必ず刈り込み、すなわち、ノード及び／又はリンクの除去の形をとる。測定グラフがこのように刈り込まれるとき、得られるグラフを「刈り込みグラフ」と呼ぶ。
【００３５】
刈り込みは、リンク解析の任意の段階で行われる。リンク解析を開始する前に、グラフを検査し刈り込むことは常に可能である。しかし、リンク解析のプロセス自体が、さらなる刈り込みの動機を与えるノード及び／又はリンクに関する品質情報を明らかにするということも起こる。したがって、リンク解析中の任意の段階における刈り込みもまた可能であり、多くの場合に望ましい。これらの理由のため、本発明は、リンク解析前又はリンク解析中のどちらでも刈り込みを許可する。
【００３６】
用語を簡単にするため、かつ、区別が重要でないケースでは、「元のグラフ」という用語がしばしば測定グラフ又は刈り込みグラフのどちらを参照するためにも使用される。ここでの要点は、本発明がシンクの問題を解決するために元のグラフを修正することを伴うことである。元のグラフは、その場合、本発明の方法によって修正されたまさにそのグラフである。測定グラフと刈り込みグラフの両方は、対応する隣接行列によって表現される。ここでは、「隣接行列Ａ」は元のグラフの隣接行列を参照するという決まりを使用する。本発明の各方法はこの行列を修正する。表記を簡単にするため、どちらの方法に対しても、修正された行列をＭＳＲとして表す（ここで、「ＳＲ」は「シンク改善策」の略語である）。
【００３７】
本発明は、シンクを取り扱う新しい手法を見つけるために「メタグラフ」の考え方を使用する。任意の所与の有向グラフに対し、メタグラフは、以下の通り元のグラフから形成される。
・すべてのＳＣＣを見つける。
・各ＳＣＣを単一の「メタノード」で置き換える。
・ＳＣＣ内のリンクはこのようにして無視される。
・ＳＣＣ間のリンクは変更されずにそのまま維持される。すなわち、ＳＣＣ＿ａ内のあるノードからＳＣＣ＿ｂ内のある他のノードへの有向リンクはメタノードａからメタノードｂへのリンクになる。
【００３８】
結果として生じるメタグラフには循環がなく、すなわち（ここで、有向リンクは有向フローを意味する）、メタグラフは、ソースからシンクへの一方向のフローだけにより構成される。このようなグラフは「有向非巡回グラフ」（ＤＡＧ）と呼ばれる。
【００３９】
図２のサンプルグラフから取得されたメタグラフは図４に示されている。ここで、任意のフローは、「ソース領域」（１，２）から、中間領域を介して、シンク領域（６，７，８）及び（１０，１１，１２，１３）へ一方向に動くことが明らかである。
【００４０】
「コラプス型グラフ」と呼ばれる密接に関連しているグラフは、標準的な文献において知られている。コラプス型グラフは、すべてのＳＣＣ間リンクに関する情報を与えるとは限らない点を除いて、メタグラフと同じである。その代わりに、コラプス型グラフは、単に（もし存在するならば）ＳＣＣの各ペアの間のすべてのリンクの方向を与える。したがって、コラプス型グラフは、メタグラフと同じＤＡＧであるが、ＳＣＣの各ペアの間のすべての並列リンクが単一リンクによって置き換えられている。メタグラフとコラプス型グラフとの間のこの差異は以下の説明で役に立つ。図２に対するコラプス型グラフは図５に示されている。
【００４１】
本発明は、シンクの技術的問題を解決する二つの新しい方式を組み込む。これらの新しい方法はどちらもそれらの開始点としてコラプス型グラフを採用する。したがって、新しい解決策を以下の３ステップで提示する。
・コラプス型グラフの検出
・方法１（リンクの反転）
・方法２（ソースのポンピング）
【００４２】
コラプス型グラフの検出
有向グラフのＳＣＣの検出は、利用可能な標準的なアルゴリズムを用いて解決された問題である。この解決策の重要な態様は、「オーダーＮ」、又は、より簡潔にＯ（Ｎ）であるとも言われるが、「グラフのサイズに線形」である点である。ここで、「グラフのサイズ」は、ノード（文書）の個数、すなわち、Ｎであると解釈される。このことは、グラフが大きくなるとき、この問題を解決するために必要とされる時間の量がグラフのサイズ（ノードの個数、すなわち、Ｎ）と共に線形にしか増加しないことを意味する。このグラフサイズと一体となるＳＣＣアルゴリズムの緩やかな増加は、今開示されている方法の大きなグラフへの適用に極めて重大である。多数の文書システムは、膨大な数の文書を有し、たとえば、ワールドワイドウェブのサイズは現在のところ約４０億の文書であると推定される。したがって、大きなグラフに適用されるべき方法は、グラフサイズＮと一緒に非常に急速に増加する計算又は記憶領域を要求すべきでなく、線形的なＯ（Ｎ）の増加は、現在の、許容可能な最新技術である。
【００４３】
疎行列を必要とする方法によるノード重みの計算は、少なくともグラフのサイズと共に線形に増加する計算時間を必要とする。すなわち、ノード重さ計算は、隣接行列による繰り返し乗算を必要とする。隣接行列が疎であるならば、隣接行列中の非ゼロエントリーの個数はＯ（Ｎ）であり、すなわち、グラフ内のノードの個数と比例するので、各乗算はＮと共に線形に増加する時間を必要とする。次に、反復（乗算）の回数がグラフのサイズと共に全く増加しないならば、総計算時間もＮと共に増加するであろう。ＰａｇｅＲａｎｋ計算は、たとえ、増加するとしても、グラフのサイズと共に僅かしか増加しないという証拠がある（参照によって全内容が本明細書に組み込まれた、Ｔ．  Ｈ．  Ｈａｖｅｌｉｗａｌａ，  Ｅｆｆｉｃｉｅｎｔ  Ｃｏｍｐｕｔａｔｉｏｎ  ｏｆ  ＰａｇｅＲａｎｋ，  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ，  １９９９を参照せよ）。したがって、ＰａｇｅＲａｎｋ計算と、おそらく米国特許出願１０／６８７，６０２号明細書に開示された方法のような類似した技術は、グラフのサイズと共に線形に増加するだけである。
【００４４】
要約すると、ノード重み計算のため必要とされる時間は、ノードの個数（グラフサイズ）Ｎと共に線形に（又は、おそらく線形より多少速く）増加する。したがって、Ｎと共に線形に増加するだけであることが知られているＳＣＣを検出するため必要とされる付加的な計算時間は、十分に許容可能である。
【００４５】
ＳＣＣ検出アルゴリズムの必要記憶領域もまた許容可能である。たとえば、Ｔａｒｊａｎのアルゴリズムは、すべてのノードの記憶領域を必要とするので、Ｏ（Ｎ）の記憶領域を必要とする（参照によって全内容が本明細書に組み込まれた、Ｒｏｂｅｒｔ  Ｅ．  Ｔａｒｊａｎ、Ｄｅｐｔｈ−ｆｉｒｓｔ  Ｓｅａｒｃｈ  ａｎｄ  Ｌｉｎｅａｒ  Ｇｒａｐｈ  Ａｌｇｏｒｉｔｈｍｓ，  ＳＩＡＭ  Ｊｏｕｒｎａｌ  ｏｎ  Ｃｏｍｐｕｔｉｎｇ，  １（２）：１４６−１６０，  １９７２を参照せよ）。Ｔａｒｊａｎのアルゴリズムの改良バージョンが必要とする記憶容量はさらに少ない（参照によって全内容が本明細書に組み込まれた、Ｅｓｋｏ  Ｎｕｕｔｉｌａ  ａｎｄ  Ｅｌｊａｓ  Ｓｏｉｓａｌｏｎ−Ｓｏｉｎｉｎｅｎ，  Ｏｎ  Ｆｉｎｄｉｎｇ  ｔｈｅ  Ｓｔｒｏｎｇｌｙ  Ｃｏｎｎｅｃｔｅｄ  Ｃｏｍｐｏｎｅｎｔｓ  ｉｎ  ａ  Ｄｉｒｅｃｔｅｄ  Ｇｒａｐｈ，  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｌｅｔｔｅｒｓ  ４９（１９９３）９−１４を参照せよ）。
【００４６】
メタグラフは、全ＳＣＣに関する情報を組み込むだけでなく、全ＳＣＣ間リンクも含む。このさらなる情報は、標準的なアルゴリズムからは典型的に入手できない。それらは、代わりに、（メタグラフと同じように）全ＳＣＣをメタノードとして保有する「コラプス型グラフ」を与える。（完全なメタグラフを示す図４と、コラプス型グラフを示す図５を比較せよ。）コラプス型グラフは、かくして、任意の２個のリンクされたＳＣＣ間のフローの方向を示すが、本発明の方法のための十分な情報を与えない。二つの開示された方法は、（コラプス型グラフを越えて）異なる種類の付加的な情報を必要とするので、各方法が別々に説明される。
【００４７】
方法１
方法１は完全なメタグラフを必要とし、（図２の完全グラフから取得可能な）それらの始点及び終点を含むすべてのＳＣＣ間リンク（図４のサンプルグラフにおいてわかる）を知ることが必要である。
【００４８】
典型的に、疎有向グラフの隣接行列は、順序付きペアのリストとして蓄積される。たとえば、リンクｕ→ｖがグラフ中に存在するならば、リスト中にｕ  ｖの形式のラインが存在するであろう。
【００４９】
ＳＣＣ＿１とＳＣＣ＿２の２個のＳＣＣが存在すると仮定し、（標準的なアルゴリズムから取得された）コラプス型グラフから、２個のＳＣＣがリンクされていることがわかっていると仮定する。最後に、リンクは、ＳＣＣ＿１→ＳＣＣ＿２であると仮定する。このとき、これらの２個のＳＣＣ間の全リンクは、ＳＣＣ＿１で始まり、ＳＣＣ＿２で終わることがわかる。（同様に標準的なアルゴリズムから）どのノードがＳＣＣ＿１にあり、どのノードがＳＣＣ＿２にあるかがさらにわかる。したがって、順序付きペアのリスト（すなわち、疎隣接行列）を走査可能であり、ＳＣＣ＿１内のノードで始まり、ＳＣＣ＿２内のノードで終わる全エントリーを検出する。最悪の状況では、これは、リンクの個数と等しい時間を要し、疎行列の場合、この時間はノードの個数に比例し、したがって、Ｏ（Ｎ）である。隣接行列がソートされ（典型的である）、所与のノードｕで始まる全エントリーが一つにグループ分けされるならば、一般にリスト全体を検索する必要はないが、所要時間は如何なる場合もＯ（Ｎ）である。
【００５０】
したがって、全ＳＣＣ間リンク、故に、完全なメタグラフを検出するＯ（Ｎ）の時間を使用する簡単なアルゴリズムが存在する。完全なメタグラフを仮定すると、あらゆるＳＣＣ間リンクの反転を追加することに関連する問題はない。
【００５１】
たとえば、ＳＣＣ＿１とＳＣＣ＿２がそれらを結合する以下のリンク：
ｕ１→ｖｘ
ｕ２→ｖｙ
ｕ３→ｖｚ
を保有すると仮定する。
【００５２】
すなわち、各ｕノードはＳＣＣ＿１にあり、各ｖノードはＳＣＣ＿２にある。（これらの２個のＳＣＣの間の全リンクは、ＳＣＣ＿１とＳＣＣ＿２が２個の別個のＳＣＣ＿２が２個であるという仮定と呼応して、同じ方向に進むことに注意すべきである。）
【００５３】
ここに開示されている方法は、次に、以下のリンク：
ｕ１←ｖｘ
ｕ２←ｖｙ
ｕ３←ｖｚ
を追加することにより、これらの２個のＳＣＣの間を単一のＳＣＣにすることを提案する。
【００５４】
したがって、本発明の一実施形態では、あらゆるＳＣＣ間リンク（すなわち、メタグラフ中のあらゆるリンク）は、反転リンクで補完される。ここで、メタグラフは、刈り込まれているかもしれない元のグラフから形成されることを想起する。したがって、メタグラフ中のＳＣＣ間リンクは、すべてが「良い」リンクとしてみなされる可能性があるので、偏らないアプローチはＳＣＣ間リンクのすべてを反転することである。
【００５５】
代替的な実施形態では、ＳＣＣ間リンクの部分集合だけが反転リンクで補完される。すなわち、シンクの問題は、少なくとも１個のＳＣＣ間リンクがリンクされたＳＣＣの各ペアに対し反転される限り解決され、あるケースでは、さらに少数のＳＣＣ間リンクを反転し、それでもなおグラフ全体を強接続させることが可能である。ＳＣＣ間リンクの部分集合を反転させるだけで、このフレキシビリティを有利に活用できる場合が生じる。
【００５６】
さらに、これらのシンク改善リンクに、最良性能を生じさせるために調整可能な重みεを与えることが可能である。一実施形態では、εの値は、元のリンクのεの値（典型的に１）より下に保持される。このように、元のグラフを非常に強く摂動させることを回避することが可能である。
【００５７】
再度、簡単なグラフ上での方法１の効果を示す図２及び図６を参照すると、各ＳＣＣ間リンクは、反転パートナーが与えられ、その他の新しいリンクは必要とされない。
【００５８】
最後に、グラフが方法１によって強接続させられると、ノード重み、したがって、ノードランキングを検出するため、隣接行列の任意の非複合形式（フォワード又はバックワード、正規化又は非正規化）を使用可能である。
【００５９】
図２のサンプルグラフ上での方法１の効果は図６に示されている。追加されたリンクは破線で描かれている。図７は、修正されていない形式が図４に示されている対応するメタグラフ上での方法１の効果を示す。図７は、方法１がＳＣＣ間リンク毎に１本の新しいリンクしか必要としないことをより明瞭に示す。すなわち、この簡単なグラフの場合、方法１は６本の新しいリンクを追加し、一方、ＰａｇｅＲａｎｋのランダムサーファー演算子は１３５本の新しいリンクを追加する。二つの方法の間のこの差異は、非常に大きなグラフでは非常に大きくなる。
【００６０】
方法２
方法２は、方法１によって使用された情報とは僅かに異なる情報を必要とする。方法１と同様に、方法２はコラプス型グラフから始まる。あらゆるこのようなグラフは有向非巡回グラフ、すなわち、ＤＡＧである。このようなグラフは、常に少なくとも１個のソースと少なくも１個のシンクとを有する。重みがソース（メタノード）に置かれ、メタグラフ中の矢印の方向に沿って動かされるならば、これらの重みはソースからシンクへ流れ、シンクメタノード以外の任意のメタノードに一般にゼロ重みを残す。
【００６１】
しかし、グラフ隣接行列の作用下で、重みは所与の倍率によって増幅される。ＰａｇｅＲａｎｋのような正規化された方法では、この倍率は１以下であり、米国特許出願１０／６８７，６０２号明細書に開示されたＣａｎｒｉｇｈｔとＥｎｇｏ−Ｎｏｎｓｅｎの方法のような正規化されていない方法では、この増幅倍率は一般的に１より大きい。何れの場合でも、他のすべてから分離して考慮された、（すなわち、全ＳＣＣ間リンクを無視する）各ＳＣＣは、所与の増幅倍率、すなわち、「利得」を有する。
【００６２】
メタグラフ中の全ソースＳＣＣの「利得」が（ｉ）等しい、かつ、（ｉｉ）任意の他のＳＣＣの利得より大きいならば、重みのフローは、グラフ中のあらゆるノードに正の重みがある状態で、平衡分布に到達する。換言すると、これらの２個の条件が成り立つとき、隣接行列の主固有ベクトルはどこでも正である。この記述の証明は、全内容が参照によって本明細書に組み込まれた、出願人の発表予定の論文：２００４年５月２日にＪＡＣＭへ投稿された、Ｉｍｐｏｒｔａｎｃｅ  Ｆｕｎｃｔｉｏｎｓ  ｆｏｒ  Ｄｉｒｅｃｔｅｄ  Ｇｒａｐｈｓで見つけられる。
【００６３】
一般に、条件（ｉ）も条件（ｉｉ）も成立しない。方法２は、ソースＳＣＣの範囲内にある全リンクについての重みを調整することにより、強制的に両方の条件を成立させる。その際、両方の条件（ｉ）及び（ｉｉ）が満たされるまで、ソースＳＣＣの利得を調整する。
【００６４】
方法２は、そのとき、以下のステップにより構成される。
【００６５】
最初に、メタグラフ中の各ＳＣＣを取り込み、このＳＣＣを他のＳＣＣへ接続する全リンクを無視する。すなわち、各ＳＣＣは、他のＳＣＣから孤立しているとみなされる。この方法は、次に、ＳＣＣ毎に、全ＳＣＣ内リンク、すなわち、ＳＣＣ内部の全リンクを必要とする。それらは、ＳＣＣ間リンクを検出するため方法１において使用されたプロシージャと本質的に同じであるＯ（Ｎ）のプロシージャによって検出される。このプロシージャは、次に、孤立したＳＣＣ毎に完全な隣接行列を与える。
【００６６】
次に、各（孤立）ＳＣＣの利得（主固有ベクトル）を計算するため、希望の形式の隣接行列（フォワード又はバックワード、正規化又は非正規化）を使用する。このステップにおいて使用すべき行列の選択は、重要度固有ベクトルを計算する際にグラフ全体のため使用されるべき行列によって決定される（後述を参照せよ）。すなわち、同じ行列タイプが各ステップで使用されるべきである。
【００６７】
次に、どのＳＣＣがソースＳＣＣであるかを決定する。この情報は、Ｏ（Ｎ）より短い（典型的に遙かに短い）時間でコラプス型グラフから容易に取得され、ソースＳＣＣはコラスプ型グラフ中でアウトリンクだけを有するメタノードである。
【００６８】
一般的なケースのように、２個以上のソースＳＣＣが存在し、これらのソースＳＣＣが等しくない利得を有し、少なくとも１個のソースＳＣＣがある他のＳＣＣの利得より小さい利得を有すると仮定する。目的は、次に、以下の二つの条件：（ｉ）全ソースＳＣＣは同じ利得を保有しなければならない、かつ、（ｉｉ）ソースＳＣＣの共通利得倍率は任意の他のＳＣＣの利得倍率を上回らなければならない、という条件が満たされるまで、全ソースＳＣＣの利得を増加させることである。
【００６９】
特に、所与のソースＳＣＣが利得ｇを有し、その利得をＧ＞ｇまで増加させたい場合を想定する。本実施形態では、そのようにする以下の偏らない方式が存在する。所与のソースＳＣＣ内の（再び、典型的に１である）すべての元の内部リンク重みに係数Ｇ／ｇを乗算する。この簡単な変更は希望の効果をもたらす。ソースＳＣＣが単一のノードにより構成され、よって、内部リンクを保有しない特殊なケースでは、ノードからそのノード自体を指し示す「自己リンク」を追加し、そのリンクに利得Ｇを与えることが可能である。
【００７０】
Ｇが任意の他の（非ソース）ＳＣＣの利得を越えることを保証すると共に、すべてのソースＳＣＣに同じ利得Ｇを選択することにより、条件（ｉ）及び（ｉｉ）が満たされる。次に、（後で引用される）３人の発明者による前刷りに示されているように、完全な修正グラフの主固有ベクトル（ここに詳述されるように、唯一の修正はすべてのソースＳＣＣ中の内部リンク重みの調整である）は、グラフ上のどこにおいても正である。したがって、このような固有ベクトルはノードの重要度指標として使用される。
【００７１】
元のグラフに対する摂動は、この方法では、Ｇをすべての非ソースＳＣＣの間で見つけられた最大利得ｇ＿ｍａｘより僅かに大きくするだけで、できる限り小さく保たれる。
【００７２】
ここで繰り返されるべき点は、全グラフの重要度指標を見つけるため、完全な修正グラフに使用される行列は、孤立した各ＳＣＣの利得を見つけるため使用された行列と同じ行列タイプ（フォワード又はバックワード、正規化又は非正規化）でなければならない。
【００７３】
本発明の代替的な実施形態では、利得はソースＳＣＣの部分集合だけに対し調整（増加）される。一般的なルールは依然として成り立つが、ポンピングされたソースＳＣＣの共通利得Ｇは、ソースであるか否かを問わず、任意のポンピングされていないＳＣＣの未修正利得を上回るように選択されるべきである。そのようにすることの効果は、上記発明者による前刷りに示されているように、ポンピングされていないソースＳＣＣ内の全ノードにゼロ重みを与えることである。さらに、重みのフローに関してポンピングされていないソースＳＣＣに排他的に（直接又は間接に）依存する任意のＳＣＣは、同様にゼロ重みを取得する。それにもかかわらず、一部のソースＳＣＣに対し、これを行うことが望ましい。例えば、ソースＳＣＣが１個以上のＳＣＣを指し示す単一のノードにより構成され、それらの１個以上のＳＣＣが他のソースＳＣＣから重みを取得できると仮定する。この単一のソースノードは、よって、グラフ（文書の集合）の残りの部分を指し示すが、このノードを指し示す文書はない。したがって、このノード（文書）は、リンクされた文書の完全集合に関して、非常に重要度が低いと判断される。この１個のノードに利得Ｇを与えることは、この小さなソースＳＣＣが、他のソースＳＣＣが行うのと同じように大きな重みをグラフに注入することを許容する。このような小さな、殆ど孤立したＳＣＣがそのように大きな重みを注入することを許容することは、最良の結果を与えるものではないと判断される。したがって、方法２の代替的な実施形態では、一部のソースＳＣＣをポンピングしないことを選択し、よって、得られるリンク解析にゼロ重みを与えることが可能である。多数のこのような小さな、殆ど孤立したソースＳＣＣを伴うグラフでは、方法２を使用するのではなく、本発明の方法１を使用する方が有利である。
【００７４】
前述のように、ソースＳＣＣをポンピングしないように選択することは、そのソースＳＣＣ中のノードにゼロ重みを与えるという結果をもたらす。このことは、今度は、このＳＣＣがグラフの残りの部分に重みを注入しないことを意味する。したがって、ポンピングされないソースＳＣＣは、グラフからポンピングされたとしてみなされる。さらに、未修正利得ｇ＿ｘがグラフ内の任意の他のＳＣＣを上回るソースＳＣＣ  Ｃ＿ｘをポンピングしないことが望ましい（おそらく起こりそうもない）ケースでは、一つではなく、二つの選択肢に直面する。すなわち、すべての他のソースＳＣＣを利得Ｇ＞ｇ＿ｘまでポンピングできるか、又は、グラフからＳＣＣ  Ｃ＿ｘを単に刈り込むことができる。後者の選択肢は、残りのソースＳＣＣをより低い利得までポンピングすること、よって、元のグラフのより小さな修正を与えることを可能にする。これらの選択肢はどちらも、ゼロ重みをポンピングされていないＳＣＣ  Ｃ＿ｘ内のノードに与える効果を有する。
【００７５】
ポンピングされていないＳＣＣの「下流」であり、さらにポンピングされていないソースＳＣＣに重みが排他的に依存する１個以上のＳＣＣにゼロ重みを与えないことが望ましいこともある。たとえば、図３のソースＳＣＣ（１，２）が重要ではないと判断され、そのソースＳＣＣをポンピングしないことが選択されるならば、下流のＳＣＣ（３，４，５）（この場合には、実際はすべての他のＳＣＣ）は、ゼロ重みを取得する。この場合、ソースＳＣＣ（１，２）をポンピングしないことは、ＳＣＣ（３，４，５）を「効果的なソース」にする。より厳密に言うと、ＳＣＣが効果的なソースであるのは、（ｉ）ＳＣＣが重みについてポンピングされていないソースＳＣＣに排他的に依存し、かつ、（ｉｉ）ポンピングされていないソースがメタグラフから刈り込まれるならばソースＳＣＣになる場合である。この定義は、任意の効果的なソースをポンピングすることを選択し、任意の他のソースのため使用された規準と同じ規準に従ってその効果的なソースに利得Ｇを与えることが可能である方法２の別の実施形態を示唆するので有用である。すなわち、図３において、ＳＣＣ（１，２）をポンピングしないことを選択するならば、ＳＣＣ（３，４，５）をポンピングするオプションが得られる。
【００７６】
一つのさらなる点が方法２に関して明らかにされるべきである。すなわち、ＰａｇｅＲａｎｋアプローチのような一部のアプローチは、ノード重みを計算するため、（前述のように完全行列によって修正された）正規化行列を使用する。グラフの隣接行列の正規化は、シンクであるすべてのＳＣＣが１の利得を保有し、（ソースＳＣＣを含む）すべての他のＳＣＣが１より小さい利得を保有するという効果がある。したがって、方法２は、厳密な正規化特性を失うことを犠牲にして、このようなケースに限り適用されるが、その理由は、方法２の場合、ソースＳＣＣの利得は１より大きいある値Ｇに設定されなければならないからである。しかし、利得Ｇは、１より僅かに大きいだけでよいので、厳密な正規化からの変化は小さいと考えられる。その意味では、方法２は正規化行列にも非正規化行列にも適用可能である。
【００７７】
図８は、図２のサンプルグラフ上での方法２の効果を示す。新しいリンクは追加されていないことに注意すべきである。その代わりに、単一のソース領域（１，２）の「利得」が、その領域の大きな斜線付きの円によって表されているように、増加している。多数のソース領域をもつ一般的なグラフの場合、方法２の適用後に、すべてが同じ増加した利得を保有する。
【００７８】
パーソナル化
現在、「パーソナル化」する検索が非常に興味を持たれている。すなわち、あらゆるユーザの同じ質問に同じ回答を与えないが、むしろ、ある程度役立つように各ユーザの関心に合わせた検索サービスが求められている。より簡潔には、パーソナル化検索のため、質問に対する回答は質問と質問者の両方に依存すべきである。
【００７９】
現在、検索をパーソナル化する優れた方式を見つける競争に明確なリーダーは存在しない。さらに、多種多様のアプローチがある。ここでは、本発明のシンク改善策が類似したタイプのパーソナル化にも容易に役立つことを指摘するため、ＰａｇｅＲａｎｋ及びＷｉｓｅＲａｎｋのシンク改善方法から自然かつ容易に続くアプローチに重点を置く。
【００８０】
前述のように、ＰａｇｅＲａｎｋとＷｉｓｅＲａｎｋの両方は、所与の隣接行列が密になるように、実際には、所与の隣接行列が全ノードから全ノードへのリンクを保有するように、隣接行列を修正する。しかし、追加されたリンクは、それらの効果が重みのリスト（ベクトル）を元の未修正隣接行列による乗算の結果に単に加算するという形で表現されるように、重み付けられる。
【００８１】
すなわち、Ｍが隣接行列の望ましい形式であり、Ｍ’が追加されたリンクから形成された行列であるので、修正行列の最終的な形式がＭ＋Ｍ’であると仮定する。各ノードの重みの検出は、次に、修正行列による繰り返し乗算を使用して達成される。すなわち、重みｘの試行ベクトルは、重みベクトルが安定パターンに収束するまで、行列Ｍ＋Ｍ’によって繰り返し乗算される。
【００８２】
ＰａｇｅＲａｎｋとＷｉｓｅＲａｎｋの両方に対し、追加されたリンク行列Ｍ’は、乗算の殆ど又は全部がオフラインで実行されるような形式である。
（Ｍ＋Ｍ’）ｘ＝Ｍｘ＋ｓ
【００８３】
すなわち、重みｓの補完ベクトルは、密行列Ｍ’との行列乗算を行うこと無しに計算される。
【００８４】
ＰａｇｅＲａｎｋとＷｉｓｅＲａｎｋの正規化バージョンでは、補完ベクトルｓは、同じ重みを各ノード（文書）に加算し、その主な効果は、前述のように、重みがシンク領域に閉じ込められることを防ぐことである。しかし、簡単なパーソナル化の方法が出現し、補完ベクトルｓにバイアスをかけ、検索毎にカスタマイズされた方式でそのようにすることが可能である。例えば、検索者が、キーワード毎に重みをもつ、（例えば）キーワードのリストとして表現された、関心プロファイルＰを保有するならば、各文書ｕは（知られているテキスト関連性方法を使用して）スコアＰ（ｕ）が与えられる。このスコアは、どの程度十分に文書がユーザのプロファイルに適合するかを表現し、ユーザ毎及び文書毎に１回だけ計算されればよい。これらのスコアは、次に、パーソナル化された補完ベクトルを形成するために使用され、補完ベクトルのｕ番目のベクトルに対し、単にスコアＰ（ｕ）を使用することが可能である。このようなパーソナル化された補完ベクトルの使用は、最終的な（収束型）重み付けにおいて、より高いスコアＰ（ｕ）を保有するページに与えられるより大きな重みをもたらす。
【００８５】
よって、ＰａｇｅＲａｎｋ法とＷｉｓｅＲａｎｋ法の両方に現れる補完ベクトルｓはパーソナル化してもよく、その結果、パーソナル化検索を提供する。
【００８６】
しかし、シンク問題を改善する本発明の前述の方法は、それ自体では、このような補完ベクトルを生じない。実際には、元のグラフに追加されるリンクは、殆ど無い（方法１）又は全く無い（方法２）。それにもかかわらず、今開示されている方法は、隣接行列自体の中でリンク上の重みをパーソナル化することが可能であるという事実を利用することにより、Ｐ（ｕ）の形式のスコアの使用も可能にする。たとえば、（スコアＰ（ｕ）を含む）文書ｕから（スコアＰ（ｖ）を含む）文書ｖへのリンクがあると仮定する。リンク解析ベースのランキングでは、各リンクはある種のリコメンデーションとしてみなされる。したがって、パーソナル化されたランキングでは、どの程度十分に「リコメンダ」（ｕ）がユーザの関心に一致するかに応じて、リコメンデーション（リンク）を重み付けすることが自然である。したがって、スコープＰ（ｕ）によって簡単にリンクに重みを付けることが可能である。
【００８７】
別の可能性は、ノードのスコアに関して利用可能なすべての情報を利用することである。すなわち、指示元ノードｕのパーソナル関心スコアだけでなく、指示先ノードｖのパーソナル関心スコアによってもリンクに重みを付ける。これを行う簡単な方式は、和（Ｐ（ｕ）＋Ｐ（ｖ））によって各リンクｕ→ｖに重みを付けることである。
【００８８】
その他の変形も可能である。最も一般的に、Ｐ（ｕ）及びＰ（ｖ）の任意の単調増加関数ｆ（Ｐ（ｕ），Ｐ（ｖ））を選択可能である。関数ｆ（ｘ，ｙ）は、ｘ又はｙの何れか（或いは両方）の増加が関数ｆも増加するという結果を与えるならば、ｘとｙに関して単調増加する。したがって、最も一般的な形式では、本発明は、リンクを、Ｐ（ｕ）及びＰ（ｖ）の単調増加関数ｆ（Ｐ（ｕ），Ｐ（ｖ））で重み付けすることにより、リンク解析のパーソナル化を可能にする。このようなパーソナル化の計算の負担は、スコア自体を計算するために必要とされる負担だけである。この負担は、このようなスコアを使用する任意の方法に対して同じである。
【００８９】
以上を要約すると、各ノード（文書）ｕは、文書が個々のユーザの関心にどの程度十分に一致するかを表現するために、パーソナル関心スコアＰ（ｕ）が与えられる。パーソナル関心スコアは、次に、ｕからｖへ指示するリンクの重みにバイアスをかけるために使用される。あらゆるリンクｕ→ｖは、重みＰ（ｕ）が与えられ、又は、代替的に、あらゆるリンクｕ→ｖは、重みＰ（ｕ）＋Ｐ（ｖ）が与えられる。リンクが高パーソナル関心スコアをもつノードから、及び／又は、ノードを指し示すならば、そのリンクはより大きな重みを取得するという一般的なルールを反映するその他のルールも可能である。リンク上のパーソナル化重みをもつ結果として得られるパーソナル化された隣接行列Ａ＊は、したがって、リンク解析の開始点として、（１と０とにより構成された）標準的な隣接行列Ａを置き換える。すなわち、パーソナル化された隣接行列Ａ＊自体は、パーソナル化されたバックワード行列Ｂ＊であり、その転置はパーソナル化されたフォワード行列Ｆ＊であり、これらの列正規化バージョンは、それぞれ、パーソナル化された正規化行列ｂ＊及びｆ＊である。本発明の方法１又は方法２は、いずれもこれらのパーソナル化された行列に適用される。
【００９０】
要約すると、ノードのパーソナル関心スコアは、グラフのリンクに重みを付け直すために使用される。方法１又は方法２を使用するリンク解析は、その後に、（主固有ベクトルを介して）ノードをランク付けするため使用されるノード重みＬＡ（ｕ）を与える。ノードのパーソナル関心スコアＰ（ｕ）はパーソナル化された開始点であり、リンク解析から取得される最終的なノード重みと混同されるべきでない。
【００９１】
パーソナル化のその他の形式は本発明と組み合わされる。本発明の代替的な実施形態では、適切に重み付けされたパーソナル関心スコアＰ（ｕ）は、パーソナル化補完ベクトルｓに集められる。すなわち、αがチューニングパラメータであるとして、ｓ（ｕ）＝αＰ（ｕ）を設定する。このベクトルは、乗算プロセスの反復毎に、ノード重みベクトルｘに加算される。
ｘｎｅｗ＝ＭＳＲｘｏｌｄ＋ｓ
ここで、ＭＳＲは元の行列（フォワード又はバックワード、正規化又は非正規化形式）であり、方法１又は方法２によって指定されるようなシンク改善策によって修正されている。この式は、次に、ノード重みｘが収束するまで繰り返され、結果はその後にリンク解析重みＬＡ（ｕ）を与える。
【００９２】
このアプローチは、完全グラフを修正された元のグラフに追加することと等価である。この事実によって、この形式のパーソナル化を使用するとき、実際には、方法１又は方法２の改善策を使用しないように選択可能であり、その代わりに、修正されていない元のグラフＭと、前の段落において定義されたような補完ベクトルとを使用して、
ｘｎｅｗ＝Ｍｘｏｌｄ＋ｓ
を繰り返す。本発明の実施形態は、非正規化演算子を使用する点でＰａｇｅＲａｎｋと異なり、Ｍ行列は列正規化されず、補完ベクトルｓはそのエントリーの和に関して定数を保有しない。したがって、このアプローチは、米国特許出願１０／６８７，６０２号明細書に開示された、ＣａｎｒｉｇｈｔとＥｎｇｏ−Ｍｏｎｓｅｎの方法に記載されているように、Ｆ又はＢ演算子に基づくリンク解析をパーソナル化するため使用される。
【００９３】
列正規化の制約が無くなると、他の形式の補完ベクトルが可能である。特に、
【数１】
2008510256.tif 000003
とすると、別の可能性のある選択肢は
【数２】
2008510256.tif 000004
である。これらの選択肢のすべては、すべてがリンク上の正の重みをもつ完全グラフを表現するので、重みの正集合に収束する。特に、重みの前向き伝搬が行われるように、Ｍ＝Ｆであると仮定するならば、選択肢ｓ（ｕ）＝αＰ（ｕ）は、ｕに向かって指し示す全リンク上に重みαＰ（ｕ）をもつ完全グラフを表現し、選択肢
【数３】
2008510256.tif 000005
は、ｕから指し示す全リンク上に重みαＰ（ｕ）をもつ完全グラフを表現し、選択肢
【数４】
2008510256.tif 000006
は、ｕとｖとの間の全リンク上に重みαＰ（ｕ）Ｐ（ｖ）をもつ完全グラフを表現する。これらの３個の選択肢はどれでも任意の非正規化形式の元の行列Ｍ、又は、修正行列ＭＳＲと共に使用される。（最初とは異なる）後の２個の選択肢は、ＰａｇｅＲａｎｋのような正規化（重み保存）法と共に使用できない。この理由は、（正規化アプローチのため必要とされる）ｓのすべてのエントリーの和が定数であるという必要条件が、補完ベクトルｓ中のｘｏｌｄのエントリーの重み付き和を伴うこれら２個の選択肢の場合には可能性がないからである。
【００９４】
本発明の別の代替的な実施形態では、パーソナル関心スコアＰ（ｕ）は、リンク解析プロシージャにおいて全く使用されない。その代わりに、パーソナル関心スコアは、単に、テキスト関連性のためのノード重みＴＲ（ｕ）と、リンク解析からのＬＡ（ｕ）とに加算され、各ノードの最終的なノード重みＷ（ｕ）：
Ｗ（ｕ）＝ａ・ＴＲ（ｕ）＋ｂ・ＬＡ（ｕ）＋ｃ・Ｐ（ｕ）
を与える。ここで、係数ａ、ｂ、及びｃはチューニングパラメータであるが、重みＷ（ｕ）はランキングのため使用されるので、３個のうちの２個だけが独立したチューニングパラメータである。
【００９５】
図９は、本発明の実施形態が実施されるコンピュータシステム１２０１を示す。コンピュータ設計は、参照によって内容全体が本明細書に組み込まれた、ＳＴＡＬＬＩＮＧＳ，  Ｗ．，  Ｃｏｍｐｕｔｅｒ  Ｏｒｇａｎｉｚａｔｉｏｎ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ，  ４ｔｈ  ｅｄ．，  Ｕｐｐｅｒ  Ｓａｄｄｌｅ  Ｒｉｖｅｒ，  ＮＪ，  Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ，  １９９６に詳述されている。コンピュータシステム１２０１は、情報を通信するバス１２０２又はその他の通信メカニズムと、バス１２０２と結合され、情報を処理するプロセッサ１２０３とを含む。コンピュータシステム１２０１は、バス１２０２に結合され、情報及びプロセッサ１２０３によって実行されるべき命令を記憶するランダムアクセスメモリ（ＲＡＭ）又はその他のダイナミックストレージデバイス（たとえば、ダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、及び、シンクロナスＤＲＡＭ（ＳＤＲＡＭ））のようなメインメモリ１２０４をさらに含む。その上、メインメモリ１２０４は、プロセッサ１２０３による命令の実行中に、一時変数又はその他の中間情報を記憶するため使用される。コンピュータシステム１２０１は、バス１２０２に結合され、プロセッサ１２０３のための静的情報及び命令を記憶するリードオンリーメモリ（ＲＯＭ）１２０５又はその他のスタティックストレージデバイス（たとえば、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、及び、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ））をさらに含む。
【００９６】
コンピュータシステム１２０１は、磁気ハードディスク１２０７及びリムーバブルメディアドライブ１２０８（たとえば、フレキシブルディスクドライブ、リードオンリーコンパクトディスクドライブ、リード／ライトコンパクトディスクドライブ、コンパクトディスクジュークボックス、テープドライブ、及び、リムーバブル光磁気ドライブ）のような、情報及び命令を記憶する１台以上のストレージデバイスを制御するため、バス１２０２に結合されたディスクコントローラ１２０６をさらに含む。ストレージデバイスは、適切なデバイスインターフェイス（たとえば、スモールコンピュータシステムインターフェイス（ＳＣＳＩ）、インテグレイティッドデバイスエレクトロニクス（ＩＤＥ）、エンハンスドＩＤＥ（Ｅ−ＩＤＥ）、ダイレクトメモリアクセス（ＤＭＡ）、又は、ウルトラＤＭＡ）を使用して、コンピュータシステム１２０１に付加されることがある。
【００９７】
コンピュータシステム１２０１は、特定目的ロジックデバイス（たとえば、特定用途向け集積回路（ＡＳＩＣ））、又は、再構成可能なロジックデバイス（たとえば、シンプルプログラマブルロジックデバイス（ＳＰＬＤ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）、及び、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））をさらに含む。
【００９８】
コンピュータシステム１２０１は、陰極線管（ＣＲＴ）のような、情報をコンピュータユーザに表示するディスプレイ１２１０を制御するためバス１２０２に結合されたディスプレイコントローラ１２０９をさらに含む。コンピュータシステムは、キーボード１２１１及びポインティングデバイス１２１２のような、コンピュータユーザと相互作用し、情報をプロセッサ１２０３に供給する入力デバイスを含む。ポインティングデバイス１２１２は、たとえば、方向情報及びコマンド選択をプロセッサ１２０３へ通信し、ディスプレイ１２１０上のカードル移動を制御するマウス、トラックボール、又は、ポインティングスティックでもよい。その上、プリンタは、コンピュータシステム１２０１によって蓄積及び／又は生成されたデータの印刷されたリストを提供する。
【００９９】
コンピュータシステム１２０１は、メインメモリ１２０４のようなメモリに格納された１個以上の命令の１個以上のシーケンスを実行するプロセッサ１２０３に応じて、本発明のプロセシングステップの一部又は全部を実行する。このような命令は、ハードディスク１２０７又はリムーバブルメディアドライブ１２０８のような別のコンピュータ読み取り可能な媒体からメインメモリ１２０４に読み込まれる。マルチプロセシング配置内の１台以上のプロセッサが、メインメモリ１２０４に格納された命令のシーケンスを実行するため利用されることもある。代替的な実施形態では、ハードワイヤード回路がソフトウェア命令に代えて、又は、組み合わせて使用される。このように、実施形態はハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【０１００】
前述のように、コンピュータシステム１２０１は、本発明の教示に従ってプログラムされた命令を保持し、データ構造、テーブル、レコード、又は、本明細書に記載されたその他のデータを格納する少なくとも１台のコンピュータ読み取り可能な媒体又はメモリを含む。コンピュータ読み取り可能な媒体の例は、コンパクトディスク、ハードディスク、フレキシブルディスク、テープ、光磁気ディスク、ＰＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＥＰＲＯＭ）、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ、又は、その他の磁気媒体、コンパクトディスク（たとえば、ＣＤ−ＲＯＭ）、又は、その他の光媒体、パンチカード、紙テープ、又は、孔のパターンをもつその他の物理的媒体、（後述される）搬送波、又は、コンピュータが読むことができるその他の媒体である。
【０１０１】
本発明は、コンピュータシステム１２０１を制御し、発明を実施する１台又は複数台のデバイスを駆動し、コンピュータシステム１２０１がヒューマンユーザ（たとえば、印刷物製作作業員）と相互作用することを可能にする、コンピュータ読み取り可能な媒体のうちの何れか一つ又は組み合わせに蓄積された、ソフトウェアを含む。このようなソフトウェアは、デバイスドライバ、オペレーティングシステム、開発ツール、及び、アプリケーションソフトウェアを含むが、それらに限定されない。このようなコンピュータ読み取り可能な媒体は、発明を実施する際に実行されるプロセシングの全部又は（プロセシングが分散されているならば）一部を実行する本発明のコンピュータプログラムプロダクトをさらに含む。
【０１０２】
本発明のコンピュータコードデバイスは、スクリプト、翻訳可能なプログラム、ダイナミックリンクライブラリ（ＤＬＬ）、Ｊａｖａクラス、及び、完全な実行可能プログラムを含むが、それらに限定されない翻訳可能な、又は、実行可能なコードメカニズムでもよい。その上、本発明のプロセシングの一部は、より良い性能、信頼性、及び／又は、コストのため分散型でもよい。
【０１０３】
本明細書中で使用されるような用語「コンピュータ読み取り可能な媒体」は、命令を実行のためプロセッサ１２０３へ供給することに関わるあらゆる媒体を指す。コンピュータ読み取り可能な媒体は、不揮発性メディア、揮発性メディア、及び、伝送メディアを含むが、それらに限定されない様々な形をとる。不揮発性メディアは、たとえば、ハードディスク１２０７又はリムーバブルメディアドライブ１２０８のような光ディスク、磁気ディスク、及び、光磁気ディスクを含む。揮発性メディアは、メインメモリ１２０４のようなダイナミックメモリを含む。伝送メディアは、バス１２０２を構築するワイヤを始めとして、同軸ケーブル、銅線、及び、光ファイバーを含む。伝送メディアは、電波及び赤外線データ通信中に発生されるような音波又は光波の形をとることもある。
【０１０４】
種々の形のコンピュータ読み取り可能な媒体は、実行のためのプロセッサ１２０３への１個以上の命令の１個以上のシーケンスを実行する際に必要とされる。たとえば、命令は、最初に、リモートコンピュータの磁気ディスク上で搬送される。リモートコンピュータは、本発明の全部又は一部を実施する命令をダイナミックメモリへ遠隔的にロードし、モデムを使用して電話回線によって命令を送信する。コンピュータシステム１２０１に局部的であるモデムは、電話回線上のデータを受信し、データを赤外線信号に変換するため赤外線トランスミッタを使用する。バス１２０２に結合された赤外線検出器は、赤外線信号で搬送されるデータを受信し、データをバス１２０２に収めることが可能である。バス１２０２はデータをメインメモリ１２０４へ搬送し、メインメモリから、プロセッサ１２０３は命令を受け取り、実行する。メインメモリ１２０４によって受け取られた命令は、オプションとして、プロセッサ１２０３による実行の前又は後に、ストレージデバイス１２０７又は１２０８に蓄積される。
【０１０５】
コンピュータシステム１２０１は、バス１２０２に結合された通信インターフェイス１２１３をさらに含む。通信インターフェイス１２１３は、たとえば、ローカルエリアネットワーク（ＬＡＮ）１２１５、又は、インターネットのような別の通信ネットワーク１２１６に接続されたネットワークリンク１２１４への双方向データ通信カップリングを提供する。たとえば、通信インターフェイス１２１３は、パケット交換ＬＡＮに取り付けるためのネットワークインターフェイスカードでもよい。別の例として、通信インターフェイス１２１３は、データ通信コネクションを対応するタイプの通信回線に提供するために、非対称デジタル加入者回線（ＡＤＳＬ）カード、統合サービスデジタルネットワーク（ＩＳＤＮ）カード、又は、モデムでもよい。ワイヤレスリンクが実施されることもある。どのような実施においても、通信インターフェイス１２１３は、種々のタイプのデータを表現するデジタルデータストリームを搬送する電気信号、電磁信号、又は、光信号を送受信する。
【０１０６】
ネットワークリンク１２１４は、典型的に、他のデータ装置へ一つ以上のネットワークを介してデータ通信を提供する。例えば、ネットワークリンク１２１４は、ローカルネットワーク１２１５（例えば、ＬＡＮ）を介して、又は、通信ネットワーク１２１６を通る通信サービスを提供するサービスプロバイダによって運用される設備を介して、別のコンピュータにコネクションを提供する。ローカルネットワーク１２１４及び通信ネットワーク１２１６は、たとえば、デジタルデータストリームを搬送する電気信号、電磁信号、又は、光信号と、関連した物理レイヤ（例えば、ＣＡＴ５ケーブル、同軸ケーブル、光ファイバーなど）を使用する。コンピュータシステム１２０１との間でデジタルデータを搬送する種々のネットワークを通る信号、及び、ネットワークリンク１２１４上と、通信インターフェイス１２１３を通る信号は、ベースバンド信号で実施してもよく、又は、搬送波ベースの信号で実施してもよい。ベースバンド信号は、デジタルデータビットのストリームを記述する非変調電気パルスとしてデジタルデータを運び、ここで、用語「ビット」はシンボルを意味するように広く解釈されるべきであり、各シンボルが少なくとも１個以上の情報ビットを搬送する。デジタルデータは、たとえば、導電性媒体を介して伝搬させられた、又は、伝搬媒体を介して電磁波として伝送された、振幅、位相、及び／又は、周波数偏移信号などで搬送波を変調するためにも使用される。よって、デジタルデータは、搬送波を変調することにより、「有線」通信チャンネルを介して非変調ベースバンドデータとして送信され、及び／又は、ベースバンドとは異なる所定の周波数バンド内で送信される。コンピュータシステム１２０１は、（複数の）ネットワーク１２１５及び１２１６と、ネットワークリンク１２１４と、通信インターフェイス１２１３とを介して、プログラムコードを含むデータを送受信することが可能である。その上、ネットワークリンク１２１４は、ＬＡＮ１２１５を通るコネクションを、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、又は、携帯電話機のようなモバイル機器１２１７に提供する。
【０１０７】
集中型ウェブ検索エンジンにおけるヒットをランク付けするための本発明の実施は、複数の他のコンポーネント、すなわち、テキストランキングシステム、インデクシングシステム、クローラ、及び、ユーザインターフェイスとの統合を必要とする。実施において、本発明は、完全な現用検索エンジンの一部を表し、このようなシステムの他のコンポーネントから分離して実施できない。
【０１０８】
本発明は、単一ＰＣに保持されたコンテンツの上で動作する検索エンジンの一部として実施してもよい。この実施は、ＰＣ（すなわち、「プライベートウェブ」）に蓄積された全文書（メール、テキスト、プレゼンテーションなど）の間にハイパーリンクの導入を必要とする。このアイデア（単一ＰＣ上の文書間のハイパーリンク）は、現在のオペレーティングシステムでは、非常に限定された範囲で実現されているに過ぎない。したがって、「プライベートウェブ」の一部として本発明を実施することは、ＰＣ内の多数のファイルハンドリングアプリケーションの修正を必要とするであろう。その上、インデクシングシステム、ユーザインターフェイス、及び、（おそらく）テキスト関連性に基づくランキングシステムが必要とされるであろう。
【０１０９】
本発明の多数の変更及び変形が上記の教示を考慮して可能である。したがって、請求項に記載された範囲内で、発明は本明細書中で特に断らない限り別の態様で実施されることが理解されるべきである。
【図面の簡単な説明】
【０１１０】
【図１】一般的な検索環境を示す図である。
【図２】シンク領域を含むサンプルグラフを示す図である。
【図３】図２のグラフ上でのランダムサーファー演算子の効果を示す図である。
【図４】図２のサンプルグラフに対応する完全なメタグラフを示す図である。
【図５】図２のサンプルグラフに対応する畳まれたグラフを示す図である。
【図６】図２のサンプルグラフ上での方法１の効果を示す図である。
【図７】図４に示されたメタグラフ上での方法１の効果を示す図である。
【図８】図４に示されたメタグラフ上での方法２の効果を示す図である。
【図９】本発明と関連するコンピュータシステムのブロック図である。
【図１】
2008510256.tif 000007
【図２】
2008510256.tif 000008
【図３】
2008510256.tif 000009
【図４】
2008510256.tif 000010
【図５】
2008510256.tif 000011
【図６】
2008510256.tif 000012
【図７】
2008510256.tif 000013
【図８】
2008510256.tif 000014
【図９】
2008510256.tif 000015
【手続補正書】
【提出日】平成19年4月19日(2007.4.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいてリンク解析を使用して文書をランク付けする方法であって、
各ノードが１個の文書を表現し、各リンクが１個の文書内での１個の別の文書への参照を表現する元のグラフ内で、すべての強接続コンポーネント（ＳＣＣ）を特定するステップと、
各ＳＣＣをメタノードで置き換えることによりメタグラフを形成するステップと、
リンクされたＳＣＣのペアが強接続になるように、前記メタグラフ内のリンクされたＳＣＣのペア毎に前記元のグラフ内で少なくとも１本のリンクを追加することにより前記元のグラフを修正するステップと、前記メタグラフ内のソースと対応する１個以上のＳＣＣをポンピングするステップとのうちの一方のステップと、
リンク解析ノード重みを決定するステップと、
前記文書のランキングを決定するときに前記リンク解析ノード重みを使用するステップと、
を含む方法。
【請求項２】
メタグラフを形成するステップが、
第１のＳＣＣ内のノードから第２のＳＣＣ内のノードへの有向リンクが第１のメタノードから第２のメタノードへのリンクになるように、前記第１のＳＣＣと前記第２のＳＣＣとの間でリンクを維持するステップを含む、
請求項１に記載の方法。
【請求項３】
前記メタグラフに対応するコラプス型グラフを特定するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記元のグラフ内で少なくとも１本のリンクを追加するステップが、
始点及び終点を含むＳＣＣ間リンクを特定するステップと、
前記ＳＣＣ間リンクの反転リンクを追加するステップと、
を含む、請求項１に記載の方法。
【請求項５】
重みεを前記追加された反転リンクに割り当てるステップをさらに含む、請求項４に記載の方法。
【請求項６】
対応するＳＣＣ間リンクの計算された重みより小さい重みεを前記追加された反転リンクに割り当てるステップをさらに含む、請求項５に記載の方法。
【請求項７】
テキスト関連性ノード重みを決定するステップと、
前記文書のランキングを決定するときに、前記テキスト関連性ノード重みを前記リンク解析ノード重みと一緒に使用するステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記リンク解析ノード重みを決定するステップが、
正規化オペレータと非正規化オペレータのうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記ＳＣＣに対する隣接行列を決定するステップと、
前記隣接行列の主固有値から前記リンク解析ノード重みを得るステップと、
を含む、請求項１に記載の方法。
【請求項９】
１個以上のＳＣＣをポンピングするステップが、
前記メタグラフ内でアウトリンクを保有する１個以上のメタノードだけを決定するため前記メタグラフを使用するステップと、
前記１個以上のＳＣＣとして、前記１個以上のメタノードと対応する前記ＳＣＣを選択するステップと、
をさらに含む、
請求項２に記載の方法。
【請求項１０】
１個以上のＳＣＳをポンピングするステップが、
前記１個以上のＳＣＣの範囲内で各ＳＣＣ内リンクを特定するステップと、
正規化演算子と非正規化演算子のうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記１個以上のＳＣＣのそれぞれに対して隣接行列を決定するステップと、
前記隣接行列に基づいて前記１個以上のＳＣＣのそれぞれの主固有値を計算することにより、前記１個以上のＳＣＣのそれぞれに対し利得を決定するステップと、
（ｉ）前記１個以上のＳＣＣのそれぞれが同じ利得を保有する、（ｉｉ）１個以上のＳＣＣのそれぞれの共通利得が非ソースＳＣＣの利得を上回る、及び、（ｉｉｉ）前記１個以上のＳＣＣの前記共通利得がソースＳＣＣの利得を上回るという３個の条件が満たされるまで、前記１個以上のＳＣＣのそれぞれの前記利得を増加させるステップと、
をさらに含む、
請求項１に記載の方法。
【請求項１１】
前記１個以上のＳＣＣのうちのいずれかが単一のノードを保有し、ＳＣＣ内リンクを保有しないかどうかを判定するステップと、
各ＳＣＣ内リンクを特定するステップの前に、単一のノードを保有し、ＳＣＣ内リンクを保有しないことが判定されたいずれかの１個以上のＳＣＣに対し、前記単一のノードからそのノード自体を指し示す自己リンクを追加するステップと、
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記１個以上のＳＣＣのそれぞれの利得を増加させるステップが、
Ｇが１個以上の各ＳＣＣの希望の共通利得を表し、ｇが前記ＳＣＣの前記元の利得を表し、前記ＳＣＣ内のすべての元のＳＣＣ内リンクに係数Ｇ／ｇを乗算するステップを含む、
請求項１０に記載の方法。
【請求項１３】
指示元ノードと指示先ノードの少なくとも一方に対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアに従って、前記指示元ノードから指し示す、又は、前記指示先ノードを指し示す少なくとも１本のリンクの上記重みを調整するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１４】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
計算されたパーソナル関心スコアをパーソナル化された補完ベクトルに組み立てるステップと、
前記リンク解析ノード重みを決定するため、ノード重み計算プロセスの繰り返し毎に、前記パーソナル化された補完ベクトルを計算されたノード重みベクトルに加算するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１５】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアを前記決定されたリンク解析ノード重みに加算するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１６】
前記元のグラフが前記文書に関する情報を収集するクローラを用いて特定される、請求項１に記載の方法。
【請求項１７】
前記クローラがウェブクローラであり、前記文書がワールドワイドウェブ上のウェブページである、請求項１６に記載の方法。
【請求項１８】
リンク解析を用いて文書をランク付けするように構成されたコンピュータシステムであって、
各ノードが１個の文書を表現し、各リンクが１個の文書内での１個の別の文書への参照を表現する元のグラフ内で、すべての強接続コンポーネント（ＳＣＣ）を特定するステップと、
各ＳＣＣをメタノードで置き換えることによりメタグラフを形成するステップと、
リンクされたＳＣＣのペアが強接続になるように、前記メタグラフ内のリンクされたＳＣＣのペア毎に前記元のグラフ内で少なくとも１本のリンクを追加することにより前記元のグラフを修正するステップと、前記メタグラフ内のソースと対応する１個以上のＳＣＣをポンピングするステップとのうちの一方のステップと、
リンク解析ノード重みを決定するステップと、
前記文書のランキングを決定するときに前記リンク解析ノード重みを使用するステップと、
を実行するため、命令を格納するメモリと前記命令を実行するプロセッサとを備えるコンピュータシステム。
【請求項１９】
メタグラフを形成するステップが、
第１のＳＣＣ内のノードから第２のＳＣＣ内のノードへの有向リンクが第１のメタノードから第２のメタノードへのリンクになるように、前記第１のＳＣＣと前記第２のＳＣＣとの間でリンクを維持するステップを含む、
請求項１８に記載のシステム。
【請求項２０】
前記メタグラフに対応するコラプス型グラフを特定するステップを実行するようにさらに構成されている、請求項１９に記載のシステム。
【請求項２１】
前記元のグラフ内で少なくとも１本のリンクを追加するステップが、
始点及び終点を含むＳＣＣ間リンクを特定するステップと、
前記ＳＣＣ間リンクの反転リンクを追加するステップと、
を含む、請求項１８に記載のシステム。
【請求項２２】
重みεを前記追加された反転リンクに割り当てるステップを実行するようにさらに構成されている、請求項２１に記載のシステム。
【請求項２３】
対応するＳＣＣ間リンクの計算された重みより小さい重みεを前記追加された反転リンクに割り当てるステップを実行するようにさらに構成されている、請求項２２に記載のシステム。
【請求項２４】
テキスト関連性ノード重みを決定するステップと、
前記文書のランキングを決定するときに、前記テキスト関連性ノード重みを前記リンク解析ノード重みと一緒に使用するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項２５】
前記リンク解析ノード重みを決定するステップが、
正規化オペレータと非正規化オペレータのうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記ＳＣＣに対する隣接行列を決定するステップと、
前記隣接行列の主固有値から前記リンク解析ノード重みを得るステップと、
を含む、請求項１８に記載のシステム。
【請求項２６】
１個以上のＳＣＣをポンピングするステップが、
前記コラプス型グラフ内でアウトリンクを保有する１個以上のメタノードだけを決定するため前記コラプス型グラフを使用するステップと、
前記１個以上のＳＣＣとして、前記１個以上のメタノードと対応する前記ＳＣＣを選択するステップと、
をさらに含む、
請求項１９に記載のシステム。
【請求項２７】
１個以上のＳＣＳをポンピングするステップが、
前記１個以上のＳＣＣの範囲内で各ＳＣＣ内リンクを特定するステップと、
正規化演算子と非正規化演算子のうちの一方である、フォワード演算子とバックワード演算子のうちの一方を適用し、前記１個以上のＳＣＣのそれぞれに対して隣接行列を決定するステップと、
前記隣接行列に基づいて前記１個以上のＳＣＣのそれぞれの主固有値を計算することにより、前記１個以上のＳＣＣのそれぞれに対し利得を決定するステップと、
（ｉ）前記１個以上のＳＣＣのそれぞれが同じ利得を保有する、（ｉｉ）１個以上のＳＣＣのそれぞれの共通利得が非ソースＳＣＣの利得を上回る、及び、（ｉｉｉ）前記１個以上のＳＣＣの上記共通利得がソースＳＣＣの利得を上回るという３個の条件が満たされるまで、前記１個以上のＳＣＣのそれぞれの前記利得を増加させるステップと、
をさらに含む、
請求項１８に記載のシステム。
【請求項２８】
前記１個以上のＳＣＣのうちのいずれかが単一のノードを保有し、ＳＣＣ内リンクを保有しないかどうかを判定するステップと、
各ＳＣＣ内リンクを特定するステップの前に、単一のノードを保有し、ＳＣＣ内リンクを保有しないことが判定されたいずれかの１個以上のＳＣＣに対し、前記単一のノードからそのノード自体を指し示す自己リンクを追加するステップと、
を実行するようにさらに構成されている、請求項２７に記載のシステム。
【請求項２９】
前記１個以上のＳＣＣのそれぞれの利得を増加させるステップが、
Ｇが１個以上の各ＳＣＣの希望の共通利得を表し、ｇが前記ＳＣＣの前記元の利得を表し、前記ＳＣＣ内のすべての元のＳＣＣ内リンクに係数Ｇ／ｇを乗算するステップを含む、
請求項２７に記載のシステム。
【請求項３０】
指示元ノードと指示先ノードの少なくとも一方に対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアに従って、前記指示元ノードから指し示す、又は、前記指示先ノードを指し示す少なくとも１本のリンクの上記重みを調整するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項３１】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
計算されたパーソナル関心スコアをパーソナル化された補完ベクトルに組み立てるステップと、
前記リンク解析ノード重みを決定するため、ノード重み計算プロセスの繰り返し毎に、前記パーソナル化された補完ベクトルを計算されたノード重みベクトルに加算するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項３２】
少なくとも１個のノードに対するパーソナル関心スコアを計算するステップと、
前記パーソナル関心スコアを前記決定されたリンク解析ノード重みに加算するステップと、
を実行するようにさらに構成されている、請求項１８に記載のシステム。
【請求項３３】
前記文書に関する情報を収集することができ、前記元のグラフを構築するクローラをさらに備える、請求項１８に記載のシステム。
【請求項３４】
前記クローラがウェブクローラであり、前記文書がワールドワイドウェブ上のウェブページである、請求項３３に記載のシステム。
【請求項３５】
コンピュータ機器に請求項１乃至１７のいずれか一項に記載されたステップを実行させるように構成された命令を含む、コンピュータプログラム。
【国際調査報告】
2008510256.tif 000016
2008510256.tif 000017
2008510256.tif 000018