【Google】PageRankの計算の仕方

このエントリーをはてなブックマークに追加
1132人目の素数さん
http://www.kusastro.kyoto-u.ac.jp/~baba/wais/pagerank.html
ここにGoogleで使われているPageRankのアルゴリズムが
書かれています。
そこで、一億×一億の正方行列を作り計算しようと思いましたが
PCのメモリ2GではOctaveを使って計算するにも
メモリ上にも載せれません。
別の公式かなにかはないのでしょうか?
2132人目の素数さん:03/02/01 09:17
だれも答えられないね
3132人目の素数さん:03/02/01 09:46
仮想メモリじゃダメなの?
4132人目の素数さん:03/02/01 10:11

   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < なんだって?
.  ノ/  /     \_____
  ノ ̄ゝ
5132人目の素数さん:03/02/01 10:38
64bit環境にすれば?
6132人目の素数さん:03/02/01 16:43
32bitでしたいのれす
7132人目の素数さん:03/02/01 16:46
無理
8132人目の素数さん:03/02/01 20:44
一億×一億のデータがそもそも入りきんないだろ。
9132人目の素数さん:03/02/01 20:49
行列の固有ベクトルに関連して。
リーグ戦で
  A B C D
A \○○×
B ×\○○
C ××\○
D ○××\
っつう結果だったら、
1 2 2 0
0 1 2 2
0 0 1 2
2 0 0 1ていう行列の固有ベクトルを求めて、すべての成分が皮膚の物を探すと、
{0.62563, 0.551628, 0.321336, 0.448372}
てのがあるから、A〜Dの実力の比率はこんなもんだろうと分かる。
10132人目の素数さん:03/02/01 23:57
>>9
友達が卒論で、こういうスポーツのリーグ戦などの最終的な順位付けについて
グラフ構造にもっていって順位付けの方法を公理化するなんてことをやっていて、
勝ち2, 引き分け1, 負け0のときの公理だかなんだかを
卒論提出の二週間前にやりはじめて、最終的に4つぐらいの公理におさまったらしいのだが、
証明などが膨大な量になってしまって、指導教官がチェックを投げ出してしまった。

引き分けがない状態では、勝ち数のみで順位を決定する方式が
非常にシンプルな公理で表されているみたいです。
11132人目の素数さん:03/02/01 23:58
>>8
そこを考えてほしいなりけり
12132人目の素数さん:03/02/02 00:00
>>10
Googleは、PCサーバーでこれを実現しているよね。
googleだと0と1だからどうなの?

公理キボンヌ
13132人目の素数さん:03/02/02 00:11
2chの数学板でもこのあたりに詳しい人はいないのね
14132人目の素数さん:03/02/02 00:18
>>12
引き分けがない状態での公理は、
Ranking the Participants in a Tournament,
Journal of the Society of Industrial and Applied Mathematics 38 (1980), 108-111.
に書いてあるんだけど、論文捨てちゃった(作者は経済の人みたい)。
覚えているのは、「公理I: Anonimity」だけ・・・
15132人目の素数さん:03/02/02 00:22
馬場氏のページには、
"Google での実際の PageRank 計算に要する時間は、7500万のURLに対して約5時間だったそうである。
(2001年2月現在でどうなっているかは不明)。
このことからすると、
より効率的な加速法を検討する余地が十分に残されていることは言えるだろう。 "

らしいから、何か方法があるのかな?

2ちゃねらーで導けば、すごいよね 笑
16132人目の素数さん:03/02/02 00:43
http://www.yale.edu/leitner/pdf/2002-03.pdf
これは 関係ないよね 笑
17132人目の素数さん:03/02/02 00:50
http://www.searchdesk.com/survey/svy2002.htm

2月7日のWeb記事に"Understanding and Building Google PageRank"という英文の解説記事があります。
ページランクはInternal Linking と External Linking を使っているとのことです。私が十数年前に
リファレーション(Referations = References + Document + Citations)を使った文献検索技術を研究していましたが、
まだDocumentの部分が含んでないように思います。いろいろな測度を計算するのに、データ数が多く、しかもSparse行列を
解くのは不可能です。この難解な測度を非常に簡単なアルゴリズムで求める方法を十数年前に開発しています。
それにしてもGoogleの躍進でリンクが脚光を浴びてきたことは大変望ましい状況です。
18132人目の素数さん:03/02/02 01:06
19132人目の素数さん:03/02/02 01:11
http://www.rakuten.co.jp/elblanco/img1005177827.jpeg
これはもっと関係ないよね
>>19
ワラタ
21132人目の素数さん:03/02/03 00:15
ちゃねらー 期待あげ
ふ〜ん…今日はじめて数学板のぞいたけど面白いね
これ、俺わかるよ。加速方法もなんとなく予想できる。
>収束が遅いというのは、ベタな言葉で言えば、いつまで経っても計算が
>終らないということである。 対して、収束を速めるための 適当な加速法も
>いくつか存在することは存在するが、 それらを適用するためには数値計算
>技法に対する十二分な理解が必要と なるため、 数値計算の専門家でない限
>りは導入は易しいものではない。

って勉強すればいいじゃん。Googleのやつは勉強ぎらいなのか?
2322:03/02/03 02:24
あら、最後にこんなこと書いてあったわ。
>あまり軽々しく考えてはいけない。

スマソ。じゃあもっと深く考えてみるか。
もういちど貼ってみよう
http://www.rakuten.co.jp/elblanco/img1005177827.jpeg
やっぱりこれはすんごい関係ないよね
2622:03/02/03 19:40
ちょっとかんがえてみたけど結局こういうことなのかな?
http://www.denkinomise.com/_sys/images/product/333.1.jpg
関係なかったらごめん
>>26
悪いけどそれはびっくりするほど関係ないね
28132人目の素数さん:03/02/03 20:41
数学板の人はね、物事の元の元から考えるんですね。
だいたい今のPCってのはよくわからないものをオブジェクト、つまり一個の者として扱ってるんですね、
それを「2進数だよね?」とかいって考えるのが数学板の人なんだよね。
それが数それが数学板の人なんだよねれそれが数それが数学それが数学板の人なんだよね。板の人なんだよね。なんだよね。なんだよね。
29132人目の素数さん:03/02/04 03:10
>>22
ここでご披露願いたいものです。
こういうスレはシミュレーション板じゃないのかなあ
31132人目の素数さん:03/02/04 09:20
>>14
調べてみると著者はAriel Rubinsteinでした。
ゲーム理論の大御所。今はテルアビブとプリンストンにいるはず。
32132人目の素数さん:03/02/04 11:47
要するに
2 c h の 有 名 な ス レ に 書 き こ め ば P a g e R a n k が 上 が る
有名なスレ≒伸びが速い

クローラが訪問するころにはとっくに次スレ移行してそのスレはdat落ちしてますが。
人間と違ってpartXXなどのシリーズモノかどうかの判別はできない。
34132人目の素数さん:03/02/04 13:08
おまえらな、難しく考えすぎですよ。もっと素直に考えろよ。
近似固有値を計算したいだけだろ?  ミロ↓
http://www.rakuten.co.jp/elblanco/img1005180869.jpeg
35それは、ミルじゃ。:03/02/04 15:21
>>1
実際のところ1億×1億の全ての要素が埋まっているわけではなく
むしろそのほとんどが0なわけだから、そこらへんを上手く扱うと
メモリに収まるのかもしれない。
(これは1のリンク先にも書いてあるけど)

 ただ数学でもシミュでも共通して言えることだが
いきなり1億なんてやらずに、ある程度閉じた環境でローカルの
ランキングとか計るとかしてみたほうがいいのではないかと思う。

 1億サイトのランキングを計算する意味って何よ? >>1
371:03/02/04 20:50
>>36
当方、ただいま約一億サイトの収集を完了したので。
38132人目の素数さん:03/02/05 00:27
よく読んでからスレ立てろ。

仮に N が 10^4 のオーダだったとしよう。
通常は数値計算プログラムの内部では行列やベクトルは倍精度で格納されるから、
N次正方行列 A の記憶領域は
sizeof(double) * N * N = 8 * 104 * 104 = 800MB となる。
さすがに、800MB の主記憶領域はなかなか持てるものではないだろうが、
とはいえ不可能な数字と言うわけでもない。
だが、N が 10^5 や 10^6 になると、それぞれ 80GB, 8TB となる。
こうなるとメモリどころかハードディスクでももうムリである。
Google では 10億以上のページを扱っているから(2001年時点)、
まともなやり方ではまったくダメであることがわかる。

もっとも、A は疎(sparse)な行列である。
リンクを張りまくっているページが一部にあったとしても、
Web全体に張っているものはないし、
あったとしてもそれは極めてまれな存在であるからだ。
平均的には、1ページあたり10-20リンク程度ではないだろうか
(IBM Almaden 研究所による 'Graph structure in the web'によれば、
平均すると 16.1 程度だそうである)。
だから、A は適切な圧縮方法を用いて圧縮できる。
N が 10^6 であっても平均リンク数を10とすれば 80MB で済み、
規模からいって無理のない数字に納めることができる。
39132人目の素数さん:03/02/05 01:02
>>38
そこはわかったから、それ以外の加速法を聞いているわけで
4014:03/02/05 02:12
>>31
先日卒研発表があって、友達の発表を聞いたら、
Rubinsteinさんの論文では
1. 匿名性
2. 正の反応性
3. 無関係対象からの独立性
を満たすランキング方法は、勝ち数でランク付けする以外ないとのことでした。
41132人目の素数さん:03/02/05 03:20
>>40
厨房でもわかりやすくお願いします
42132人目の素数さん:03/02/06 14:41
age
43132人目の素数さん:03/02/07 00:50
age
44132人目の素数さん:03/02/07 16:19
やっぱり ちゃねらーでは
難しいみたいだね
レスもろくに読んでない癖に何を言ってるのやら
46132人目の素数さん:03/02/21 02:00
google
47山崎渉:03/03/13 13:31
(^^)
49d ◆GJenck4cmw :03/04/07 23:19
saですよ
50132人目の素数さん:03/04/07 23:21
agだす
>>9
そのときの固有値は3.79067になりましたがこれに意味はあるんでしょうか?
52132人目の素数さん:03/04/12 11:41
このテーマを修論にして誰かまとめれ。
53132人目の素数さん:03/04/13 23:30
>>52
2ちゃんアカデミーとか?
54132人目の素数さん:03/04/14 00:34
いいえ、トリニティアカデミーです。
55山崎渉:03/04/17 09:14
(^^)
56山崎渉:03/04/20 04:28
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
57132人目の素数さん:03/05/11 22:23
ぐぐれ!
の語源なの?
58動画直リン:03/05/11 22:23
59132人目の素数さん:03/05/19 23:27
1億ページの集合が有ったとしても、1億×1億の領域を確保する必要は無いのです。
Googleだと17%はリンクさしてないサイトに等分にして配分。
83%をリンクしているサイトに配分するので。

1億ページ中のリンク構造モデルを用意しておいて。
1億ページ分のページランク領域を2つだけ確保すれば良いのです。
計算量も、くそマジメに計算するよりかなり減るです。

ちなみに自前検索エンジンで、キーワードに引っかかったサイト一覧の中の
リンク構造を元にページランクを動的に計算しているのですが、ページランクを
計算することによる負荷は殆ど発生してないです。

って、計算式とは関係なかったですね。。。
61山崎渉:03/05/21 22:06
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
62山崎渉:03/05/22 00:01
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
63山崎渉:03/05/28 15:10
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
64132人目の素数さん:03/06/09 11:50
12
すんません、門外漢ですが、>>1のリンクによると
「PageRank をマルコフ過程の用語で言い直すならば、
PageRank は、ランダムにリンクをたどって動くユーザが一定の時間のうちに
それぞれのページを訪問する定常分布であるとも言える。」
ちゅうことなんで、モンテカルロ法じゃだめ?
かえって時間かかるかなあ?
66132人目の素数さん:03/07/06 05:02
10
67132人目の素数さん:03/07/22 07:48
6
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
69132人目の素数さん:03/08/16 06:15
14
70132人目の素数さん:03/09/29 05:17
1
71132人目の素数さん:03/10/22 04:22
18
72132人目の素数さん:03/11/07 02:37
21
73132人目の素数さん:03/12/01 07:22
20
37
75132人目の素数さん:03/12/18 06:02
17
76132人目の素数さん:04/01/05 06:50
14
77132人目の素数さん:04/01/13 07:32
22
438
620
80132人目の素数さん:04/02/20 07:02
22
172
82132人目の素数さん:04/03/31 07:04
435
83132人目の素数さん:04/04/06 10:06
345
84132人目の素数さん:04/04/15 01:42
http://www.npr.org/programs/morning/features/2004/apr/google/
ここみるとgoogleつくってる人たちのただもので無さが伝わってくる・・・
ぐーぐる、ぐーぐる簡単に言ってるけど実はけっこうすごいものなんだなぁと・・・
まあ、ジュリア集合の時点でちょっとそんな気してたけど・・・
85132人目の素数さん:04/04/15 01:53
おまえらなんのために数学勉強してんだよ・・・
こんなの楽勝だろーが。
221
267