ネットサービス

初代Googleのアルゴリズム解説


いまやネットの世界を左右する強力な検索エンジンとなったGoogle。日本ではまだYahoo!の方がはるかに利用者が多いのでさほどではないですが、アルゴリズムの基本的な考えが似ているため、同じような結果が出てきます。つまり、既存の検索エンジンのその基礎となった一番最初のGoogleの検索アルゴリズムを理解すれば、検索エンジン対策にも役立つはず。

ということで、初代Googleのアルゴリズムをできるだけわかりやすく解説してみます。既存の他サイトの解説とは違い、きちんとした最初のGoogleの数式に基づいています。

詳細は以下から。The Anatomy of a Search Engine
http://www-db.stanford.edu/~backrub/google.html

Googleの画期的なランク付けの方法が数式による全自動のページランクというのは聞いたことがあると思いますが、その数式が最初は一体どのようなものだったのか?というのはおそらく見たことも聞いたこともないはずなので、解説。


まず以下がGoogleのページランク算出数式です。すべての根源となる数式です。

PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

PRというのはページランクのこと。左側のPR(A)というのが、Aというページのページランクを表します。Googleは回収した全ページをインデックス化、すなわち整理して互いのリンク関係を洗い出して並べ直してからこの数式に入れて、どのページがどれぐらいのページランクであるかを決めるというわけ。このページランクが高ければ高いほど、上位に表示されるわけです。

次、(1-d)という中にあるdは、場合によって決められた数値で、最終的なページランクを算出する際にその数値を弱める、あるいは減少させるために使われます。この数値は0から1までの間の数値になっており、今回はこの数値を「0.85」としておきます。この数値の根拠はまた後ほど。

次、T1及びTnというのは、ページAの内容を引用しているページの数。すなわち、ページAを指し示しているページの数と言うことになります。ページAの内容を引用し、なおかつページAに向かってリンクしているページということです。

最後、C(A)というのは、ページAから出て行っているリンクの数。上記数式ではこのAにT1及びTnまでの各ページが入ります。

つまり、ページAから別のページXにリンクしており、なおかつそのページXがページAの内容を引用してリンクもしていれば、ページランクが上昇します。ページAからページXへリンクしているが、ページXからのリンクがない場合はページAのページランクは少ししか上がりませんが、逆にページXは上昇します。また、ページAにリンクされる数が多ければ多いほどページランクは上昇し、逆にページAから一方的にリンクを張れば張るほどページランクの上昇率は落ちていきます。

要するに、ページランクというのは単なる相互リンクではなく、引用されているページの文字列もある程度考慮に入れることでただの機械的相互リンクではカウントしないようになっているわけです。だから、ブログのように引用先の内容に触れつつ、トラックバックでリンクを戻していると、ページランクが上昇していき、検索結果のトップに出てくるというわけ。

では、先ほど述べたこのページランクを減少させるdというのは何かというと、行き止まりのページの場合や似たようなページ群になっている場合に適用されるものです。リンクをたどっていくと最終的にはドコまでもドコまでも行けるはずなのですが、一度通ったページには戻らないというルールでページをランダムに巡回していくと、最終的に「行き止まり」になるページが出てきます。つまり、どこにもリンクしていないページです。どこにもリンクしていないということはページランクのシステムから言えば「はずれた」ページであり、別のページに影響を何も与え無いどころか、どこへも行くことができないので「価値がない」と考えます。そのため、dの数値が大きくなり、ページランクが下がるというわけです。例えば、メインページからしかリンクされていない孤立したページであれば、上記数式により導き出される答えはページランクゼロに近いものになるはずです。こうすることで、Googleのクローラー、Googleボットが回収したページから価値のないページを外していくわけです。これを「直観的調整」と呼びます。

さらにGoogle独自のアルゴリズムが、ページのリンク文字列、つまりアンカーテキストの扱いです。ページからページへのリンクの際のリンク文字列に何が書いてあるのかを重要視します。ページAへリンクする文字列はおそらく「ページAへのリンク」とか、ページAがリンゴに関するページならば「リンゴのページへ」などというように、指し示すページの特徴をかなり的確に捉えているはずです。そのため、Googleではリンクの中でも特にアンカーテキストを保持するリンク文字列に注目し、ページランク算出の基礎として重要視しています。

ほかにもページランクとは関係のない別の独立したGoogle独自のアルゴリズム要素として、以下の3つがあります。

1.地理的情報
ページの存在するサーバのIPアドレスから考えて、地理的に近いページ同士をまとめていきます。こうすることで、関係のあるページ同士はきっと地理的にも同じ言語圏であるに違いないというようにしています。日本から検索すれば、日本に割り当てられているIPアドレス圏内のページへのランクを上昇させておくという感じです。単純に日本語や英語だけで分けていない理由は、日本語圏であっても英語を使うことがあり、英語圏であってもローマ字表記で日本語を書いたりするため、単純に文字コードや文字の種類だけで判別すると正確な結果が出ないためだと思われます。

2.ビジュアル要素
Googleは人間がそのページを見てドコに注目するのか、つまりビジュアル要素を重視しています。例えば、大きな文字であればそれはより目立っていることから、他の文字列よりも重要であるというように捉えます。要するにフォントサイズですね。ブログの場合、自動的に題名のフォントサイズを大きくしたりするので効果があるというわけです。同様にして、ページの上の方に位置するものであるほど重要であるというように位置的解釈も加えているようです。

3.キャッシュ
Google最大の特徴であるキャッシュ機能は、こうやって算出したページランクを計算するために使われており、それをそのまま提供することで、検索結果で出てきたページランク時の内容を表示するためのものです。例えば最新のページの内容ではページランクが100だが、以前にGoogleで巡回した際はページランク1万だったとします。そうすると、検索結果にはページランク1万の際のデータを元にして最上位に出てきますが、最新はページランク100ほどの内容なので、検索結果と内容が合致しないことになります。そのため、キャッシュを見ることで正しいページランク時のページ内容を見ることができる…というわけです。決して、炎上して削除されたブログをもう一度さらし者にする機能ではないのです(苦笑)

ほかにも、検索されたフレーズとクリックされたページからランキングを補正したり、リアルタイムで回収した新しいページに従って再帰的に再計算してみたり、その更新タイミングをどうするか、回収したページをどうやって保存して再利用するのか、などなど、様々な要素が絡み合っているわけ。

これだけ分かれば、いわゆる検索エンジン対策というのが、どういう理屈に基づいているのかが容易に推測できると思います。要するに、人気のあるページのフリをするページを作ればGoogleのページランクはだませるわけです。そのため、最新のGoogleのアルゴリズムはページランク以外の要素の持つ比重を時と場合に応じて調整することで、検索エンジン対策を成立させないようにしているとされています。

つまり、みんなからリンクされるような価値あるページを作ればいい、ということですね。

最後にオマケ、これが初代Googleです。

Google!
http://web.archive.org/web/19981202230410/http://www.google.com/

この記事のタイトルとURLをコピーする

・関連記事
Googleのオフィスはいかにして作られたのか - GIGAZINE

Googleが日本の法律に従うならば、Googleは確実に違法 - GIGAZINE

Googleのありとあらゆる検索結果に「このサイトはコンピュータに損害を与える可能性があります」と表示される事態が発生 - GIGAZINE

Googleの面接試験、一体どのような質問をされるのか? - GIGAZINE

Googleによると、ハードディスクは温度や使用頻度に関係なく故障する - GIGAZINE

Google世代にとって暗記は時間の無駄 - GIGAZINE

in メモ,   ネットサービス, Posted by darkhorse_log

You can read the machine translated English article here.