PageRank の基本概念
PageRank の基本概念
PageRank は、 「多くの良質なページからリンクされているページは、やはり良質なページである」 という再帰的な関係をもとに、全てのページの重要度を判定したものである。 以下に長々と続く説明では、部分的に専門用語も多く現れるから理解に苦しむ部分があるかも知れない。この章では定性的な解説に絞って平易に解説したつもりであるが、それでもどうしてもわからなかった時は、 「多くの良質なページからリンクされているページは、やはり良質なページである」 というアイデアだけでも理解してもらえればありがたい。いくつかあるポイントの中でも、これが一番重要な考え方だからだ。 さて、Google 自身による紹介ページ Googleの人気の秘密では、以下のような解説がなされている。
PageRankについて
PageRankについて
PageRankは、ウェブの膨大なリンク構造を用いて、その特性を生かします。ページAからページBへのリンクをページAによるページBへの支持投票とみなし、Googleはこの投票数によりそのページの重要性を判断します。しかしGoogleは単に票数、つまりリンク数を見るだけではなく、票を投じたページについても分析します。「重要度」 の高いページによって投じられた票はより高く評価されて、それを受け取ったページ を「重要なもの」にしていくのです。
こうした分析によって高評価を得た重要なページには高いPageRank(ページ順位)が与えられ、検索結果内の順位も高くなります。PageRankは Googleにおけるページの重要度を示す総合的な指標であり、各検索に影響されるものではありません。むしろ、PageRankは複雑なアルゴリズムにしたがったリンク構造の分析にもとづく、各ウェブページそのものの特性です。
もちろん、重要度が高いページでも検索語句に関連がなければ意味がありません。 そのためにGoogleは洗練されたテキストマッチ技術を使って、検索に対し重要でなおかつ、的確なページを探し出します。
▲ ページトップへ
アルゴリズム
このアルゴリズムを具体的に見ると図のようになる。あるページの PageRank を、そのページに存在する発リンク数で割った数が、それぞれ被リンク先の PageRank に加算されるという関係になっている。

詳しく見てみよう。 PageRank を高くするためのポイントは、大きく分けて3つある。
被リンク数 (単純な意味での人気度の指標)
お勧め度の高いページからのリンクかどうか (裏付けのある人気かどうかの指標)
リンク元ページでのリンク数 (選び抜かれた人気かどうかの指標)
まず基本的に、多くのページからリンクが張られていればお勧め度は高くなる。「(たくさんリンクされるような)人気のあるページは、きっと良いページであるに違いない」ということだ。
被リンク数を人気度の指標の一つと見ることは自然な考え方だろう。リンクを張るという行為は、「このページを見るといい/このページは役に立つ」という推薦行為を行っていることとみなせるからだ。だが、PageRankの考え方はそれだけにはとどまっていないところがミソだ。
すなわち、単に被リンク数の多寡だけではなくお勧め度の高いページからのリンクは高く評価する。また同時に、総リンク数が少ないページからのリンクは高く評価し、総リンク数が多いページからのリンクは低く評価する。言い換えれば「(多くの推薦を集めるような)良いページが推薦するページは、同じく良いページであるに違いない」という判断と、「やたらリンクを乱発するインフレ気味なリンクに比べて、選び抜かれたリンクは良質なリンクであるに違いない」という判断を同時に行っている。 きちんと人手の入った高い水準のページからの厳選されたリンクは明確に重視する一方で、あれもこれもと関連のないところにリンクを張りまくっているだけの単なるブックマーク的ページからのリンクは、「(全然リンクされないよりはまだマシだが)ほとんど価値がない」として軽視するわけである。
したがって、Yahoo! のような PageRankがとても高いサイトからリンクされれば、それだけで PageRank はグンと上がることになるが、逆に、いくら被リンク数ばかりが多くても、無意味なつまらないページからのリンクばかりでは PageRankはいつまで経っても上がらない。 Yahoo! でなくともその分野での権威(あるいは定番)とも言えるページからリンクされていれば良いわけだが、自分達だけで相対リンクしまくっているだけの低価値なページ同士のリンクは、いわば「単なる内輪びいき」として価値のあるものとは見なされにくい仕組みになっているということでもある。世界中のWebページ全体というグローバルな視点から見て、真に価値があるかどうかを判定していることになる。
こうした指標を総合的に分析した結果、最終的な評価の高かったページは検索の時に上位に表示される仕組みになっている。
従来は、ページの重要度としてそのページの被リンク数だけを単純に用いることがあったが、PageRank方式だと機械的に生成されたリンクの影響を受けにくいという利点がある。つまり、PageRankを上げるためには良質なページからリンクされる必要がある。たとえば Yahoo! に登録依頼を出して通ればイッキに上がる。だがそのためには内容の充実に努めなければならない。このように、PageRankを上げるための近道 (あるいは裏道)は基本的に無いことになるのである。 PageRankに限らない(Clever や HITS などでも同じことだ)が、リンク構造を利用したランキングシステムには、従来の単純な SPAM 手法は通用しない。これは大きな利点であり、 Google の使い勝手を良くしている最大の理由になっている。 (最大の理由ではあるが、唯一の理由でないことには注意したい。)
ここで、 PageRank自体はユーザが与えた検索式に与えた語句とは全く無関係な、すでに定まった量であることに注意しよう。後に述べるように、PageRank自体の計算式には検索語句は現れない。どのような検索語句を与えても一定の、文書固有のスコア量である。
PageRankの定性的な説明はこのようなものでだいたい尽きる。だが、実際にランキングを計算して順位を比較するためにはもっと定量的な議論が必要である。次章以下で詳しく説明しよう。
どうやって PageRank を求めるか
我々が興味があるのは、ハイパーリンク構造のような相互参照関係があるときに、どのページがもっとも「重要」であるかを定量的に知りたいということだ。これは「どのページから読み始めるべきか」の指標を厳密に計算する、と大胆に言い換えてみても大きくは違わないだろう。誰も見ないようなマイナーページから読みはじめてもしょうがないからだ。
さて、一般的に言って、Web のようなハイパーリンク構造をランキングに反映させるためには、ハイパーリンク構造を計算機上でモデル化し数値化してやる必要がある。どのようにモデル化するかは実装者の方針によるので一概に言えないが、ハイパーリンク構造をグラフ理論の応用と見た場合、それは線形代数の考え方に帰着されることが多い。
PageRank
も同様である。
計算方法の原理
もっとも基本的な考え方として、リンク関係を行列の形で表わしてみよう。あるページ i から別のページ j へリンクが張られている場合にはその成分を 1 とし、そうでない場合を 0 とする。すなわち、行列 A の成分 aij は、
aij = 1 if (ページ i からページ j へのリンクが「ある」場合)
0 if (ページ i からページ j へのリンクが「ない」場合)
で表わされるとしよう。 文書数を N とするとこの行列は N×N のN次正方行列になる。 これは、グラフ理論で「隣接行列」と呼ばれるものに相当する。すなわち、Web のリンク関係を有向グラフ S と見なし、その隣接関係を取ったものである。要するに、リンクが張られていれば隣接関係があるわけである。
現実に適用する際の問題
PageRank
の基本的な考え方自体は難しいものではない。実用的な効果が絶大な割には複雑怪奇なアルゴリズムでもなんでもなく、簡単な線形変換を行うだけであり、むしろ簡明で直感的に理解しやすい部類に属するだろう。 だが、実際の Web ハイパーリンク構造を使って
PageRank
を計算するとなると、さすがに口で言うほどには易しいものではない。その困難は主に二つある。一つには、純粋に仮想的な数値モデルと現実世界との相違に由来するものであり、もう一つは、実際に数値計算する上での(もっぱら技術的な)困難である。
Personalized PageRank の基本的な性質
MHonArc や latex2html あるいは PowerPoint のようなツールを用いて HTML に変型することは良く行われることであるが、このような人工的に作ったHTMLリンク群に対して PageRank を求めると、ほとんどすべてのページのスコアが同じ(~1/N)になる。 隣接行列を考えればほとんど全ての成分が 1 であるか対角成分付近が全て 1 である。このような推移確率行列の固有ベクトルは (1,1,…,1) になるからである。
あるいは、sitemap.html のようにツリー状になっている場合は、 sitemap.html にスコアが集中する。全体の9割を占めることも珍しくない。
これらから言えることは、意味のある PageRank を計算するためには、機械的に生成したリンク関係はできるだけ排除してやる必要があるということである。これはリンク関係を推薦関係と見なせば容易に是認できるだろう。
▲ ページトップへ

HOME
前のページへ
