トップページmath
87コメント20KB

【Google】PageRankの計算の仕方

■ このスレッドは過去ログ倉庫に格納されています
0001132人目の素数さんNGNG
http://www.kusastro.kyoto-u.ac.jp/~baba/wais/pagerank.html
ここにGoogleで使われているPageRankのアルゴリズムが
書かれています。
そこで、一億×一億の正方行列を作り計算しようと思いましたが
PCのメモリ2GではOctaveを使って計算するにも
メモリ上にも載せれません。
別の公式かなにかはないのでしょうか?
0002132人目の素数さんNGNG
だれも答えられないね
0003132人目の素数さんNGNG
仮想メモリじゃダメなの?
0004132人目の素数さんNGNG

   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < なんだって?
.  ノ/  /     \_____
  ノ ̄ゝ
0005132人目の素数さんNGNG
64bit環境にすれば?
0006132人目の素数さんNGNG
32bitでしたいのれす
0007132人目の素数さんNGNG
無理
0008132人目の素数さんNGNG
一億×一億のデータがそもそも入りきんないだろ。
0009132人目の素数さんNGNG
行列の固有ベクトルに関連して。
リーグ戦で
  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の実力の比率はこんなもんだろうと分かる。
0010132人目の素数さんNGNG
>>9
友達が卒論で、こういうスポーツのリーグ戦などの最終的な順位付けについて
グラフ構造にもっていって順位付けの方法を公理化するなんてことをやっていて、
勝ち2, 引き分け1, 負け0のときの公理だかなんだかを
卒論提出の二週間前にやりはじめて、最終的に4つぐらいの公理におさまったらしいのだが、
証明などが膨大な量になってしまって、指導教官がチェックを投げ出してしまった。

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

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

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

2ちゃねらーで導けば、すごいよね 笑
0016132人目の素数さんNGNG
http://www.yale.edu/leitner/pdf/2002-03.pdf
これは 関係ないよね 笑
0017132人目の素数さんNGNG
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の躍進でリンクが脚光を浴びてきたことは大変望ましい状況です。
0018132人目の素数さんNGNG
http://dbpubs.stanford.edu:8090/pub/showDoc.Fulltext?lang=en&doc=2002-6&format=pdf&compression=

これは関係ないよね?
0019132人目の素数さんNGNG
http://www.rakuten.co.jp/elblanco/img1005177827.jpeg
これはもっと関係ないよね
0020132人目の素数さんNGNG
>>19
ワラタ
0021132人目の素数さんNGNG
ちゃねらー 期待あげ
0022132人目の素数さんNGNG
ふ〜ん…今日はじめて数学板のぞいたけど面白いね
これ、俺わかるよ。加速方法もなんとなく予想できる。
>収束が遅いというのは、ベタな言葉で言えば、いつまで経っても計算が
>終らないということである。 対して、収束を速めるための 適当な加速法も
>いくつか存在することは存在するが、 それらを適用するためには数値計算
>技法に対する十二分な理解が必要と なるため、 数値計算の専門家でない限
>りは導入は易しいものではない。

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

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

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

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

 1億サイトのランキングを計算する意味って何よ? >>1
00371NGNG
>>36
当方、ただいま約一億サイトの収集を完了したので。
0038132人目の素数さんNGNG
よく読んでからスレ立てろ。

仮に 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 で済み、
規模からいって無理のない数字に納めることができる。
0039132人目の素数さんNGNG
>>38
そこはわかったから、それ以外の加速法を聞いているわけで
004014NGNG
>>31
先日卒研発表があって、友達の発表を聞いたら、
Rubinsteinさんの論文では
1. 匿名性
2. 正の反応性
3. 無関係対象からの独立性
を満たすランキング方法は、勝ち数でランク付けする以外ないとのことでした。
0041132人目の素数さんNGNG
>>40
厨房でもわかりやすくお願いします
0042132人目の素数さんNGNG
age
0043132人目の素数さんNGNG
age
0044132人目の素数さんNGNG
やっぱり ちゃねらーでは
難しいみたいだね
0045132人目の素数さんNGNG
レスもろくに読んでない癖に何を言ってるのやら
0046132人目の素数さんNGNG
google
0047山崎渉NGNG
(^^)
0048132人目の素数さんNGNG
0049d ◆GJenck4cmw NGNG
saですよ
0050132人目の素数さんNGNG
agだす
0051132人目の素数さんNGNG
>>9
そのときの固有値は3.79067になりましたがこれに意味はあるんでしょうか?
0052132人目の素数さんNGNG
このテーマを修論にして誰かまとめれ。
0053132人目の素数さんNGNG
>>52
2ちゃんアカデミーとか?
0054132人目の素数さんNGNG
いいえ、トリニティアカデミーです。
0055山崎渉NGNG
(^^)
0056山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0057132人目の素数さんNGNG
ぐぐれ!
の語源なの?
0058動画直リンNGNG
http://homepage.mac.com/hitomi18/
0059132人目の素数さんNGNG
1億ページの集合が有ったとしても、1億×1億の領域を確保する必要は無いのです。
Googleだと17%はリンクさしてないサイトに等分にして配分。
83%をリンクしているサイトに配分するので。

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

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

0060132人目の素数さんNGNG
って、計算式とは関係なかったですね。。。
0061山崎渉NGNG
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0062山崎渉NGNG
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0063山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0064132人目の素数さんNGNG
12
0065132人目の素数さんNGNG
すんません、門外漢ですが、>>1のリンクによると
「PageRank をマルコフ過程の用語で言い直すならば、
PageRank は、ランダムにリンクをたどって動くユーザが一定の時間のうちに
それぞれのページを訪問する定常分布であるとも言える。」
ちゅうことなんで、モンテカルロ法じゃだめ?
かえって時間かかるかなあ?
0066132人目の素数さんNGNG
10
0067132人目の素数さんNGNG
6
0068ぼるじょあ ◆yBEncckFOU NGNG
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
0069132人目の素数さんNGNG
14
0070132人目の素数さんNGNG
1
0071132人目の素数さんNGNG
18
0072132人目の素数さんNGNG
21
0073132人目の素数さんNGNG
20
0074132人目の素数さんNGNG
37
0075132人目の素数さんNGNG
17
0076132人目の素数さんNGNG
14
0077132人目の素数さんNGNG
22
0078132人目の素数さんNGNG
438
0079132人目の素数さんNGNG
620
0080132人目の素数さんNGNG
22
0081132人目の素数さんNGNG
172
0082132人目の素数さんNGNG
435
0083132人目の素数さんNGNG
345
0084132人目の素数さんNGNG
http://www.npr.org/programs/morning/features/2004/apr/google/
ここみるとgoogleつくってる人たちのただもので無さが伝わってくる・・・
ぐーぐる、ぐーぐる簡単に言ってるけど実はけっこうすごいものなんだなぁと・・・
まあ、ジュリア集合の時点でちょっとそんな気してたけど・・・
0085132人目の素数さんNGNG
おまえらなんのために数学勉強してんだよ・・・
こんなの楽勝だろーが。
0086132人目の素数さんNGNG
221
0087132人目の素数さんNGNG
267
■ このスレッドは過去ログ倉庫に格納されています