google pagerank 0622
DESCRIPTION
TRANSCRIPT
Google検索システムにおける PageRank手法(1)
M2 Jun HASHIMOTO
1
参考文献について
• Google PageRankの数理
–共立出版,¥4725
• 今日は第1~5章の内容の説明です
2
Agenda
• Webの情報検索の特徴・構成
• 検索ランキングの生成法
–内容得点について(ざっくり)
–人気得点について(じっくり)
• PageRankの起源
• PageRankベクトルの確率的調整
• PageRankモデルのパラメータ
3
Webの情報検索
• 巨大 – 2008年7月時点で1兆ページを超える
• 動的 – “.com”ページの23%は毎日更新
• 自己組織化
–データはつかの間.更新,リンクの破壊,ページの消失
• ハイパーリンク付き – リンク構造から得られる情報を検索に役立てる
4
Query-dependent Query-independent
検索エンジンの要素
WWW Crawler Module
Page Repository
Indexing Module
Index
User
Query Module
Ranking Module
Input Query
Output Result
Structure Index
Content Index
Special-purpose Index
クエリー独立:検索語と無関係 クエリー従属:検索語に依存
collect stock
extract
compress
5
インデックス(Index)
• 構造インデックス(Structure Index) –ページ間のリンク情報
• 内容インデックス(Content Index) – WebのKeyword,Subject,Key Sentenceを蓄積
• 特殊用途インデックス(Special-purpose Index) –画像・pdfファイル等の特別なQuery処理に利用
Index
Structure Index
Content Index
Special-purpose Index
6
内容インデックス(Content Index) • 内容インデックス
– タイトル
– メタタグの記述文
• Ex:<meta name=“description” content=“hogehuga”/>
–アンカーテキスト(太字,大きなフォント,リンク)
• これらの内容を転置ファイル(inverted file)へ格納
<Example> ・Word1(aardvark) - 3,117,3961 … ・Word10(aztec) - 3,15,19,101,673,1199 ・Word11(baby) - 3,31,56,94,673,909,11114,253791 … ・Word m(zymurgy) - 1159223
Page No.
7
さて
8
ざっくり言うと
検索ランキング(Query Ranking)=
内容得点(Content score)
+
人気得点(Popularity score)
9
内容得点(Content score) • 転置ファイルを以下のような3次元ベクトルで表現 <Simple Example> ・Word10(aztec) - 3[1,1,27],94[1,0,7],673[0,0,3] ・Word11(baby) - 3[1,1,10],94[0,0,5],673[1,1,14]
タイトルタグに現れた(1 or 0)
metaタグに現れた(1 or 0)
本文中に現れた回数
aztec baby
[Content score] Page3=(1+1+27)*(1+1+10)=348 Page94=(1+0+7)*(0+0+5)=40 Page673=(0+0+3)*(1+1+14)=48
1st 3rd 2nd
※内容得点は検索語に依存->クエリー依存(Query dependent) 10
人気得点(Popularity score)
• 大きく分けて2つのやり方がある
– PageRank[Google]
• ハイパーリンクはリンク先への“推薦”
– HITS(Hypertext Induced Topic Search)[Ask.com etc]
• 入リンク,出リンク共に考える
• 今日はPageRankについて紹介
11
PageRankの起源
• ブリンとページにより発明
• ページ𝑃𝑖のPageRank:𝑟(𝑃𝑖)
– 𝑟 𝑃𝑖 = 𝑟(𝑃𝑗)
|𝑃𝑗|𝑃𝑗∈𝐵𝑃𝑖
-(1)[総和方程式]
• 𝐵𝑃𝑖: 𝑃𝑖を指すページの集合
• 𝑃𝑗 :ページ𝑃𝑗からの出リンクの個数
• 問題点:𝑟(𝑃𝑖)が未知 –初期値を一様(1/n)とし,反復法を利用して算出
– 𝑟𝑘+1 𝑃𝑖 = 𝑟𝑘(𝑃𝑗)
|𝑃𝑗|𝑃𝑗∈𝐵𝑃𝑖
-(2)
12
反復法の例
• 初期値1/6,反復法を利用
• 𝑟𝑘+1 𝑃𝑖 = 𝑟𝑘(𝑃𝑗)
|𝑃𝑗|𝑃𝑗∈𝐵𝑃𝑖
1 2
3
4
5 6 0回目 1回目 2回目
𝑟0 𝑃1 = 1/6 𝑟1 𝑃1 = 1/18 𝑟2 𝑃1 = 1/36
𝑟0 𝑃2 = 1/6 𝑟1 𝑃2 = 5/36 𝑟2 𝑃2 = 1/18
𝑟0 𝑃3 = 1/6 𝑟1 𝑃3 = 1/12 𝑟2 𝑃3 = 1/36
𝑟0 𝑃4 = 1/6 𝑟1 𝑃4 = 1/4 𝑟2 𝑃4 = 17/72
𝑟0 𝑃5 = 1/6 𝑟1 𝑃5 = 5/36 𝑟2 𝑃5 = 11/72
𝑟0 𝑃6 = 1/6 𝑟1 𝑃6 = 1/6 𝑟2 𝑃6 = 14/72
13
総和方程式の行列表現
• ハイパーリンク行列H(n*n)
– ノードi->jのリンクがあれば𝐻𝑖𝑗 =1
|𝑃𝑖|,それ以外0
• PageRankベクトルπ(1*n)
• (2)式の行列表現:𝜋 𝑘+1 𝑇 = 𝜋 𝑘 𝑇𝐻
– Hは疎な行列
–平均的なwebページは出リンクが10個
• O(10n)の計算量
14
初期の反復法の問題点
• ランクシンク問題(閉じ込め問題)
–ぶら下がりノードにPageRankが集中
• 収束性の問題
–初期値に依存するのか?収束までの反復回数は?
• ブリンとページは基本モデルに調整を行った
15
基本モデルに対する調整①
• ぶら下がり問題に対する解決策(確率的調整)
– “ランダムサーファー(random surfer)”モデルの導入
• ぶら下がりノードに入った後はランダムに全ページに飛ぶ
• この調整により,以下の行列が得られる
– 𝑆 = 𝐻 + 𝑎1
𝑛∗ 𝑒𝑇
– S:確率行列
– a:ぶら下がりノードベクトル
• ぶら下がりノードなら𝑎𝑖 = 1,そうでなければ0
• この調整により,Sは確率的(stochastic)となる
– マルコフ連鎖の推移確率行列 16
基本モデルに対する調整②
• 収束性の保証のための調整(原始的調整)
– ランダムサーファーの議論の拡張
–全く新しいアドレスへの“テレポート”の可能性
• この調整により,以下の行列が得られる
– 𝐺 = 𝛼𝑆 + 1 − 𝛼 ∗1
𝑛∗ 𝑒𝑒𝑇
– G:Google行列
– α:パラメータ(ハイパーリンクに従う時間の比率) テレポーテーション行列E
17
原始的調整による効果
• Google行列Gには,以下の性質がある
–確率的(stochastic):確率的行列SとEの合成
• 各行の全成分を足し込むと1になる
–既約(irreducible):全ての𝐺𝑖𝑗成分が非零
• 任意の状態から,任意の状態へと遷移可能
–非周期的(aperiodic):全ての対角成分が正
–原始的(primitive):Gの全ての成分が正
• 原始性に対する必要十分条件:𝐴𝑚 > 𝑂を満たすm>0が存在(m=1で成立している)
18
→Gはマルコフ連鎖の推移確率行列
正行列に対するペロンの定理
• 正行列A,Aの固有値で絶対値が最大のものをrとすると,以下が成り立つ
1. rは正
2. rは単根
3. 𝐴𝑝 = 𝑟𝑝, 𝑝 > 0かつ |𝑝𝑖| = 1𝑖 となるベクトル𝑝が唯一存在
19
Google行列Gに対するペロンの定理
• 確率行列においてr=1(次回説明)
– 𝐴𝑝 = 𝑟𝑝に左から𝑝𝑇 ,右から𝑝𝑇を乗算:𝑝𝑇𝐴 = 𝑝𝑇
• Google行列を用いたPageRankの更新式
– 𝜋 𝑘+1 𝑇 = 𝜋 𝑘 𝑇𝐺
• 𝑝𝑇:定常ベクトル=PageRankベクトル
20
GoogleのPageRank調整手法
• 𝜋 𝑘+1 𝑇 = 𝜋 𝑘 𝑇𝐺,これだけ
• Gに適用したベキ乗法で計算できる
–最大の2つの固有値を𝜆1, 𝜆2とすると,漸近的な
収束の速さは,𝜆2
𝜆1
𝑘->0の速さ
– Google行列では𝜆1 = 1, 𝜆2 ≦ 𝛼である(次回説明)ため,𝛼𝑘がおおよその収束の目安となる
21
PageRankモデルのパラメータ”α”
• ブリンとページによる初期の論文:α=0.85
–結論から言うと,エンジニアリングセンス
• α小:計算時間減尐,しかしランダム要素増大
• α大:ランダム要素減尐,しかし計算時間増大
• 数学的考察は次回以降紹介
α 収束までの繰り返し数
0.5 34
0.85 142
0.99 2292
22
PageRankモデルのパラメータ”E”
• E=1
𝑛∗ 𝑒𝑒𝑇を𝑒𝑣𝑇へ(パーソナル化)
– 𝑣𝑇:テレポーテーションベクトル
• 𝑣𝑇で与えられる個人的な嗜好に基づき,次のページへテレポートする
• 現実的な問題として,全てのユーザに対して𝑣𝑇を計算することは不可能
– 1つの𝑣𝑇ベクトルに対してでさえ,数日以上かかる
23