Top Banner
Google検索システムにおける PageRank手法(2) M2 Jun HASHIMOTO 1
23

Google PageRank 0706

Jun 12, 2015

Download

Technology

manji 602

google page rank #2
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Google PageRank  0706

Google検索システムにおける PageRank手法(2)

M2 Jun HASHIMOTO

1

Page 2: Google PageRank  0706

参考文献について

• Google PageRankの数理

–共立出版,¥4725

• 今日は第6~10章の内容の説明です

2

Page 3: Google PageRank  0706

Agenda

• 前回の質問回答・復習

• PageRankの計算について – 固有値・計算速度

– 計算の高速化 • ぶら下がりノードの考慮・適応的ベキ乗法・凝集

• PageRankの更新について – リンク更新におけるPageRankの更新

※今日はスライドが黒いです(数式多め)

3

Page 4: Google PageRank  0706

内容得点と人気得点の比率

• おそらく企業秘密(探しても分からず…) – http://www.imaginary-design.net/blog/archives/266

4

“ランク付け自体は内容得点(コンテンツスコア)と人気得点(ポピュラリティスコア)の合計である合計得点(オーバーオールスコア)によって順位付けが導き出されるのですが、内容(内部)と人気(リンク)のそれぞれに対する配点は、その時々によって変化していきます。 今のgoogleの流れは確実に内容重視になってきているというだけで、良質なコンテンツを創っていくことも立派なSEOなわけです。”

Page 5: Google PageRank  0706

[復習]総和方程式の行列表現

• ハイパーリンク行列H(n*n)

– ノードi->jのリンクがあれば𝐻𝑖𝑗 =1

|𝑃𝑖|,それ以外0

• 𝑃𝑖 :ページ𝑃𝑖からの出リンクの個数

• PageRankベクトルπ(1*n)

• (2)式の行列表現:𝜋 𝑘+1 𝑇 = 𝜋 𝑘 𝑇𝐻

– Hは疎な行列

–平均的なwebページは出リンクが10個

• O(10n)の計算量

5

Page 6: Google PageRank  0706

[復習]基本モデルに対する調整

• ぶら下がり問題に対する解決策(確率的調整)

– 𝑆 = 𝐻 + 𝑎1

𝑛∗ 𝑒𝑇

– a:ぶら下がりノードベクトル

• ぶら下がりノードなら𝑎𝑖 = 1,そうでなければ0

– この調整により,Sは確率的(stochastic)となる

• 収束性の保証のための調整(原始的調整)

– 𝐺 = 𝛼𝑆 + 1 − 𝛼 ∗1

𝑛∗ 𝑒𝑒𝑇

– G:Google行列

– α:パラメータ(ハイパーリンクに従う時間の比率)

6

テレポーテーション行列E

Page 7: Google PageRank  0706

[復習]GoogleのPageRank調整手法

• 𝜋 𝑘+1 𝑇 = 𝜋 𝑘 𝑇𝐺,これだけ

• Gに適用したベキ乗法で計算できる

–最大の2つの固有値を𝜆1, 𝜆2とすると,漸近的な

収束の速さは,𝜆2

𝜆1

𝑘->0の速さ

– Google行列では𝜆1 = 1, 𝜆2 ≦ 𝛼であるため,𝛼𝑘がおおよその収束の目安となる

7

Page 8: Google PageRank  0706

𝜆1 = 1である理由

• Gの固有値に1が存在…成分が全て1のベクトルpを適用するとGp=pとなる

• 任意の行列Aに対し,絶対値が最大である固有値をrとすると,以下が成り立つ

– |𝑟| ≦ max𝑖

𝑎𝑖𝑗𝑗

• Gにおいて,任意の行に対し, 𝑎𝑖𝑗𝑗 = 1

• |𝑟| ≦ 1,r=1が存在するため,最大固有値は1

8

Page 9: Google PageRank  0706

𝜆2 ≒ 𝛼である理由

• Gの固有値:𝜎 𝐺 = (1, 𝜆2, 𝜆3, … 𝜆𝑛)

• Sの固有値:𝜎 𝑆 = (1, 𝜇2, 𝜇3, … 𝜇𝑛)

– k=2,3,…nに対し𝜆𝑘 = 𝛼𝜇𝑘が成立

• Webの世界におけるリンク構造から, 𝜇𝑘 ≒ 1

– これにより𝜆𝑘 ≒ 𝛼が示される

9

Page 10: Google PageRank  0706

正行列に対するペロンの定理

• 正行列A,Aの固有値で絶対値が最大のものをrとすると,以下が成り立つ

1. rは正

2. rは単根

3. 𝐴𝑝 = 𝑟𝑝, 𝑝 > 0かつ |𝑝𝑖| = 1𝑖 となるベクトル𝑝が唯一存在

10

Page 11: Google PageRank  0706

Google行列Gに対するペロンの定理

• 確率行列においてr=1(次回説明)

– 𝐴𝑝 = 𝑟𝑝に左から𝑝𝑇 ,右から𝑝𝑇を乗算:𝑝𝑇𝐴 = 𝑝𝑇

• Google行列を用いたPageRankの更新式

– 𝜋 𝑘+1 𝑇 = 𝜋 𝑘 𝑇𝐺

• 𝑝𝑇:定常ベクトル=PageRankベクトル

11

Page 12: Google PageRank  0706

ベキ乗法が優れている理由

• 1回のGの乗算->ほぼ𝑂(𝑛)

• 固有値計算のアルゴリズム:どんなに頑張っても𝑂(𝑛2)

12

𝜋𝑇 𝑘 + 1 = 𝜋𝑇 𝑘 𝐺 = 𝛼𝜋𝑇 𝑘 𝑆 + 1 − 𝛼 𝜋𝑇 𝑘 𝑒𝑣𝑇 = 𝛼𝜋𝑇 𝑘 𝐻 + (𝛼𝜋𝑇 𝑘 𝑎 + 1 − 𝛼)𝑣𝑇

Hは非常に疎(Sparse):1行あたり10個ほどの成分 ->O(10n)の計算量

O(n)の計算量

1

Page 13: Google PageRank  0706

PageRank計算の高速化(1)

• ぶら下がりノードの考慮

13

𝜋𝑇 𝑘 + 1 = 𝛼𝜋𝑇 𝑘 𝐻 + (𝛼𝜋𝑇 𝑘 𝑎 + 1 − 𝛼)𝑣𝑇

𝐻 = (𝐻11 𝐻12

𝑂 𝑂)

ND D

ND

D <-このように行列を入れ替えてやる ND(Not dangling):非ぶら下がりノード D(dangling):ぶら下がりノード

𝛼𝜋𝑇 𝑘 𝐻の計算量を削減可能

Page 14: Google PageRank  0706

PageRank計算の高速化(2)

• 適応型ベキ乗法

– Kamvar et al.[2003]:一部分の”頑固な”ページの

収束に時間がかかり,それ以外はより速く収束することを発見

– 𝜋𝑖𝑘 − 𝜋𝑖

𝑘−1 < 𝜀の際に要素iの計算を止める

–問題点:収束に関する証明がない

• 途中で計算を止めた要素が本当の収束値か不明

– とはいえベキ乗法によるPageRank計算の高速化に,現実的な貢献をしている

14

Page 15: Google PageRank  0706

[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の計算

Page 16: Google PageRank  0706

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ベクトルと呼ぶ

Page 17: Google PageRank  0706

PageRank計算の高速化(3)-3

• www.hoge.comのPageRankベクトル

17

[Site A]www.hoge.com

1

3 7

2

𝐻1 =

0 1 0 00 0 1 0

1/3 1/3 0 1/30 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)

Page 18: Google PageRank  0706

PageRank計算の高速化(3)-4

• www.huga.comのPageRankベクトル

18

[Site B]www.huga.com

6

5 4 𝐻1 =

0 1 00 0 11 0 0

𝑃4 𝑃5 𝑃6 𝑃4 𝑃5

𝑃6

α = 0.9, 𝑣𝑇 = (1/3 1/3 1/3)の時, PageRankベクトルは(1/3 1/3 1/3)

Page 19: Google PageRank  0706

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) 凝集が機能し,計算量を減らすことができる

Page 20: Google PageRank  0706

PageRankの更新-1

• PageRankはGoogleにより毎月更新(Google Danceと呼ばれる)

– Cho et al.[2000]:全ページの40%は一週間以内に変更される

• 更新における変更点 – i)ハイパーリンクの追加・削除(Hの要素のみ変更)

– ii)ページの追加・削除(Gの大きさそのものが変更)

20

Page 21: Google PageRank  0706

PageRankの更新-2

• リンク更新を扱う近似更新「近似凝集」

–更新前のPageRankベクトルを以下のように定義

–更新後のマルコフ連鎖状態空間Sを𝑆 = 𝐿 ∪ 𝐿 に分割

• 更新後のGoogle行列,PageRankベクトルを以下のように表す

21

𝜑𝑇 = (𝜑1, 𝜑2, … 𝜑𝑚)

𝐺 =𝐺11 𝐺12

𝐺21 𝐺22

𝐿 𝐿 𝐿

𝐿

𝐿:更新後に定常確率が一定の影響を受けるノード 𝐿 :更新後も定常確率が著しい影響を受けないノード

𝜋𝑇 = (𝜋1, 𝜋2, … 𝜋𝑙|𝜋𝑙+1, 𝜋𝑙+2, … 𝜋𝑛)

𝐿 𝐿

𝜑𝑇の中で,𝐿 に属するノードの PageRankを行ベクトル𝜔𝑇とする

Page 22: Google PageRank  0706

PageRankの更新-3

• 近似凝集を用いた近似更新

– 𝐶 :(l+1)*(l+1)行列

– 𝐶 に対する定常ベクトル𝜁 𝑇 = 𝜁 1, 𝜁 2, … 𝜁 𝑙+1

• 正確なPageRankベクトルに対する近似ベクトル𝜋 𝑇は以下のように表せる

22

𝐶 =𝐺11 𝐺12𝑒

𝑠 𝑇𝐺21 1 − 𝑠 𝑇𝐺21𝑒 𝑠 𝑇 =

𝜔𝑇

𝜔𝑇𝑒

𝜋 𝑇 = 𝜁 1, 𝜁 2, … 𝜁 𝑙|𝜔𝑇

Page 23: Google PageRank  0706

Thank you for Listening!!!

23