Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google PageRank勉強会#2 / Google PageRank 2011-07-06
Search
Jun Hashimoto
July 06, 2011
Technology
0
260
Google PageRank勉強会#2 / Google PageRank 2011-07-06
Google PageRankの数理 第6章〜第10章の輪講スライドです。
Jun Hashimoto
July 06, 2011
Tweet
Share
More Decks by Jun Hashimoto
See All by Jun Hashimoto
月1万件のデータ移行を 自動化するための3つの秘訣 / 3 tips for automating customer data transfer
hashijun
0
270
CSスタッフの能力を最大限に引き出すための3つの工夫 / 3 approaches for improving cs staff creativity
hashijun
2
580
一人ひとりに寄り添ったCRMツールによるカスタマーサポートの新しい形 / New kindly approach of customer support with CRM tool
hashijun
0
2.3k
モンストのお問い合わせフォームを支える技術 / Dive into mixi night 2018-08-22
hashijun
1
1.7k
Google PageRank勉強会#1 / Google PageRank 2011-06-22
hashijun
0
200
Other Decks in Technology
See All in Technology
強いチームと開発生産性
onk
PRO
29
9.2k
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
인디 앱 개발자와 Flutter
tinyjin
0
160
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
1
1.3k
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.7k
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
120
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
280
ドメイン名の終活について - JPAAWG 7th -
mikit
32
19k
第23回Ques_タイミーにおけるQAチームの在り方 / QA Team in Timee
takeyaqa
0
270
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
380
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
190
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
510
Featured
See All Featured
BBQ
matthewcrist
85
9.3k
GitHub's CSS Performance
jonrohan
1030
460k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Documentation Writing (for coders)
carmenintech
65
4.4k
The Invisible Side of Design
smashingmag
297
50k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Automating Front-end Workflow
addyosmani
1366
200k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
A designer walks into a library…
pauljervisheath
202
24k
What's new in Ruby 2.0
geeforr
343
31k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Bash Introduction
62gerente
608
210k
Transcript
Google検索システムにおける PageRank手法(2) M2 Jun HASHIMOTO 1
参考文献について • Google PageRankの数理 – 共立出版,¥4725 • 今日は第6~10章の内容 の説明です 2
Agenda • 前回の質問回答・復習 • PageRankの計算について – 固有値・計算速度 – 計算の高速化 •
ぶら下がりノードの考慮・適応的ベキ乗法・凝集 • PageRankの更新について – リンク更新におけるPageRankの更新 ※今日はスライドが黒いです(数式多め) 3
内容得点と人気得点の比率 • おそらく企業秘密(探しても分からず…) – http://www.imaginary-design.net/blog/archives/266 4 “ランク付け自体は内容得点(コンテンツスコア)と人気得点(ポピュラリ ティスコア)の合計である合計得点(オーバーオールスコア)によって順 位付けが導き出されるのですが、内容(内部)と人気(リンク)のそれぞ れに対する配点は、その時々によって変化していきます。
今のgoogleの流れは確実に内容重視になってきているというだけで、良 質なコンテンツを創っていくことも立派なSEOなわけです。”
[復習]総和方程式の行列表現 • ハイパーリンク行列H(n*n) – ノードi->jのリンクがあれば = 1 || ,それ以外0 •
:ページ からの出リンクの個数 • PageRankベクトルπ(1*n) • (2)式の行列表現: +1 = – Hは疎な行列 – 平均的なwebページは出リンクが10個 • O(10n)の計算量 5
[復習]基本モデルに対する調整 • ぶら下がり問題に対する解決策(確率的調整) – = + 1 ∗ – a:ぶら下がりノードベクトル
• ぶら下がりノードなら = 1,そうでなければ0 – この調整により,Sは確率的(stochastic)となる • 収束性の保証のための調整(原始的調整) – = + 1 − ∗ 1 ∗ – G:Google行列 – α:パラメータ(ハイパーリンクに従う時間の比率) 6 テレポーテーション行列E
[復習]GoogleのPageRank調整手法 • +1 = ,これだけ • Gに適用したベキ乗法で計算できる – 最大の2つの固有値を1 ,
2 とすると,漸近的な 収束の速さは, 2 1 ->0の速さ – Google行列では1 = 1, 2 ≦ であるため,が おおよその収束の目安となる 7
1 = 1である理由 • Gの固有値に1が存在…成分が全て1のベクト ルpを適用するとGp=pとなる • 任意の行列Aに対し,絶対値が最大である固 有値をrとすると,以下が成り立つ –
|| ≦ max • Gにおいて,任意の行に対し, = 1 • || ≦ 1,r=1が存在するため,最大固有値は1 8
2 ≒ である理由 • Gの固有値: = (1, 2 , 3
, … ) • Sの固有値: = (1, 2 , 3 , … ) – k=2,3,…nに対し = が成立 • Webの世界におけるリンク構造から, ≒ 1 – これにより ≒ が示される 9
正行列に対するペロンの定理 • 正行列A,Aの固有値で絶対値が最大のもの をrとすると,以下が成り立つ 1. rは正 2. rは単根 3. =
, > 0かつ | | = 1 となるベクトル が唯一存在 10
Google行列Gに対するペロンの定理 • 確率行列においてr=1(次回説明) – = に左から, 右からを乗算: = • Google行列を用いたPageRankの更新式
– +1 = • :定常ベクトル=PageRankベクトル 11
ベキ乗法が優れている理由 • 1回のGの乗算->ほぼ() • 固有値計算のアルゴリズム:どんなに頑張って も(2) 12 + 1 =
= + 1 − = + ( + 1 − ) Hは非常に疎(Sparse):1行あたり10個ほどの成分 ->O(10n)の計算量 O(n)の計算量 1
PageRank計算の高速化(1) • ぶら下がりノードの考慮 13 + 1 = + ( +
1 − ) = ( 11 12 ) ND D ND D <-このように行列を入れ替えてやる ND(Not dangling):非ぶら下がりノード D(dangling):ぶら下がりノード の計算量を削減可能
PageRank計算の高速化(2) • 適応型ベキ乗法 – Kamvar et al.[2003]:一部分の”頑固な”ページの 収束に時間がかかり,それ以外はより速く収束す ることを発見 –
− −1 < の際に要素iの計算を止める – 問題点:収束に関する証明がない • 途中で計算を止めた要素が本当の収束値か不明 – とはいえベキ乗法によるPageRank計算の高速化 に,現実的な貢献をしている 14
[Site B]www.huga.com [Site A]www.hoge.com PageRank計算の高速化(3)-1 • 凝集 – WebPageのリンク構造を階層的に考える –
例: 15 1 2 3 6 5 4 7 www.hoge.com www.huga.com ページ1~7までの PageRankの計算 hoge.comとhuga.com 間のPageRankの計算 + 各サイト内の PageRankの計算
PageRank計算の高速化(3)-2 • 7つのノードを2つのノード(各サイト)へと凝集 • ノード間での遷移確率を以下のように仮定 16 www.hoge.com www.huga.com 0.96 0.04
1 ( 0.96 0.04 0 1 ) 1 2 1 2 α = 0.9, = (0.5 0.5)の時, 定常ベクトルは(0.3676 0.6324) HostRankベクトルと呼ぶ
PageRank計算の高速化(3)-3 • www.hoge.comのPageRankベクトル 17 [Site A]www.hoge.com 1 3 7 2
1 = 0 1 0 0 0 0 1 0 1/3 1/3 0 1/3 0 0 0 0 1 2 3 7 1 2 3 7 α = 0.9, = (0.25 0.25 0.25 0.25)の時, PageRankベクトルは(0.1671 0.3175 0.3483 0.1671)
PageRank計算の高速化(3)-4 • www.huga.comのPageRankベクトル 18 [Site B]www.huga.com 6 5 4 1
= 0 1 0 0 0 1 1 0 0 4 5 6 4 5 6 α = 0.9, = (1/3 1/3 1/3)の時, PageRankベクトルは(1/3 1/3 1/3)
PageRank計算の高速化(3)-5 • 3つの定常ベクトルから近似のPageRankベクトル を算出 19 www.hoge.com www.huga.com 1 3 7
2 6 5 4 (0.3676 0.6324) (0.1671 0.3175 0.3483 0.1671) (1/3 1/3 1/3) = (0.3676 0.1671 0.3175 0.3483 0.1671 0.6324(1/3 1/3 1/3 )) = (0.0614 0.1167 0.1280 0.0614 0.2108 0.2108 0.2108) = (0.0538 0.1022 0.1132 0.0538 0.2271 0.2256 0.2242) 凝集が機能し,計算量を減らすことができる
PageRankの更新-1 • PageRankはGoogleにより毎月更新(Google Danceと呼ばれる) – Cho et al.[2000]:全ページの40%は一週間以内に 変更される •
更新における変更点 – i)ハイパーリンクの追加・削除(Hの要素のみ変更) – ii)ページの追加・削除(Gの大きさそのものが変更) 20
PageRankの更新-2 • リンク更新を扱う近似更新「近似凝集」 – 更新前のPageRankベクトルを以下のように定義 – 更新後のマルコフ連鎖状態空間Sを = ∪ に分割
• 更新後のGoogle行列,PageRankベクトルを以下のように 表す 21 = (1 , 2 , … ) = 11 12 21 22 :更新後に定常確率が一定の影響を受けるノード :更新後も定常確率が著しい影響を受けないノード = (1 , 2 , … |+1 , +2 , … ) の中で, に属するノードの PageRankを行ベクトルとする
PageRankの更新-3 • 近似凝集を用いた近似更新 – :(l+1)*(l+1)行列 – に対する定常ベクトル = 1 ,
2 , … +1 • 正確なPageRankベクトルに対する近似ベクトル は以下のように表せる 22 = 11 12 21 1 − 21 = = 1 , 2 , … |
Thank you for Listening!!! 23