Google検索システムにおける PageRank手法(2) M2 Jun HASHIMOTO 1
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 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)
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)
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