インクリメンタル PageRank による重要 Web ページの効率的な収集戦略
東京大学山田 雅信 田浦 健次朗 近山 隆
背景 インターネットの爆発的な普及と情報の
氾濫 サーチエンジンによる情報検索の普及
サーチエンジンのお仕事1. クローラによる Web ページの自動収集2. 高速検索のための索引付け3. 利便性向上のための検索結果のランク付け4. ユーザインターフェースの提供
Overview クローラにおける問題点 問題解決のための先行研究とその手法
PageRankクローラ 更なる改善を目指して・・・
PageRankクローラの考察とインクリメンタル PageRankクローラの提案
実装と実験 まとめ
従来の多くのクローラに見られる問題点
Web ページの重要度に基づくランク付けアルゴリズムの研究が盛んに行われている- 近年のサーチエンジンにおける検索精度の向上と
いう事実 一方、クローラによる Web ページの収集段
階ではそのようなことはあまり考慮されていない どの Web ページも等しく扱い、等しく収集 e.g. 幅優先探索
クローラを取り巻く環境 時間的制限
定められた収集期間(約一ヶ月) 物理的制限
ネットワーク ディスク
それらを浪費しつつ 一生懸命ゴミ集め
- せっかく収集しても検索に利用される可能性が低いページが存在
一方で重要な Web ページの見落としも・・・- 収集されないため検索対象にすらならない。誰にも気づいても
らえない
問題点により生じる不利益
クローラの収集戦略が重要
全 Web ページの30% 程度のカバー率
PageRank を利用した収集戦略 Efficient Crawling Through URL Ordering [J.Cho et al. 1998] 収集段階で Web ページの重要度を計算、
重要度の高いものから優先的に収集 重要度の計算に PageRank を利用
実験内容:- それらを従来手法と比較、評価- 収集における精度を重視
PageRank 大規模リンク構造の利用
リンク = 重みのある支持投票 投票結果の集計 = PageRank 計算
ブラウジングモデルの導入 ユーザが Web ページ閲覧の際の行動パターンを数
値化- 多くの場合はリンクを辿ってページを閲覧- 時にはそれ以外の方法で閲覧
PageRank ≒ Web における客観的人気度e.g. google
収集手法 (1) - Web ページの収集優先度 -
現段階で計算は完了しているとす
る
優先度の高いものから順に収集する
:収集済み
:未収集
ID-List
Priority-List
その計算結果に基づき収集優先度を決定
step0
step1
step2
収集手法 (2) - Web ページの収集 -
ID-List
Priority-List
:収集済み
:未収集
収集したページからリンクを抽出するそのページが未知のものだったら新たに ID-List に追加する
追加
リンク構造を拡張
収集step2
step3
step4
収集手法 (3) - PageRank における収集優先度の再計算 -
ID-List
:収集済み
:未収集
新たにページを収集したことによりリンク構造が拡張
される
step4
PageRank を再計算
step5
ID-List 内の全ての要素に対して計算を施行、それを必
要に応じ複数回施行
step6
:再計算中
:たった今収集
考察 - PageRank 収集戦略の利点と問題点 -
利点 幅優先探索や BackLink Count といった古典的手法に比べ、重要な Web ページを優先的に収集することができる
問題点 収集優先度計算のためのオーバヘッドが極
めて大きい- PageRank 計算はインクリメンタルなデータ
に向かない⇒実用的でないより低コストの計算方式が必要
インクリメンタル PageRankへの導入 収集過程におけるリンク構造の拡張の大部分は、す
でに保持しているリンク構造に比してごく小規模なものe.g. 1億ページからなるリンク構造に新たに1000ページ
が追加された リンク構造拡張にともなう PageRank の変化は全体
からみれば微々たるもの (それにも関わらず)全てのページで再計算を行う
のは、あまりにも非効率PageRank 収集戦略の利点を保ったまま計算コストを削減したい
インクリメンタル PageRank を提案
インクリメンタル PageRank のポリシー ポリシー
リンク構造拡張にともなう PageRank の変化が比較的大きい部分のみ再計算を施行
- 当然そのことにより収集順序に誤差が生じるが、そのデメリットよりも計算コストの削減によるメリットのほうが大きい場合が多い
重要なページを“ First” に収集するのではなく“ Fast” に収集
- 収集順序の誤差により収集が10分遅れたなどというのはあまり問題とはならない。
- 一番恐ろしいのは重要なページが収集されずに収集期間を終えること
インクリメンタル PageRankにおける収集優先度の再計算
ID-List
:収集済み
:未収集
新たにページを収集したことによりリンク構造が拡張
される
step4
拡張された周辺のみ PageRank を再
計算
step6
リンク構造を拡張する際には
どのように拡張されたかをチェックする
step5
:再計算中
:たった今収集
実験 - 擬似クローリング - あらかじめ収集しておいたデータを利用 リンクをもつページをランダムに選び出
し、それをクローリングの起点として登録
各収集戦略によりクローリング- Priority-Listのソートは 5000 ページ毎- Priority-Listが空になるか、あらかじめ指定
したページ数を収集したら終了- クローリングのログと結果を出力
収集戦略 PageRank (PR) Incremental PageRank (IPR)
- Overall Sort (OS)- Partial Sort (PS)
- Value Ratio (VR)- Link Depth (LD)- Page Number (PN)
Back Link Count (BLC)- Overall Sort (OS)- Partial Sort (PS)
Breadth First Search (BFS)
収集優先度の計算速度比較
0
200000
400000
600000
800000
1000000
1200000
1400000
1600000
1800000
0 100000 200000 300000 400000 500000
収集ページ数
(ms)
処理
時間
BFS
BLC_OS
IPR_OS
PR_5
PageRank クローラに比べ圧倒的に低コスト !ページ収集におけるアイドル時間も有効利用 !!
インクリメンタル PageRank におけるもうひとつの選択 - Partial Sort - Overall Sort
- ある程度ページを収集した段階で Priority-Listをソートする
- Priority-Listが膨大だとソートに時間がかかる Partial Sort
- インクリメンタル PageRankや Back Link Countにおいては新たにページを収集 (リンク構造を拡張 )したことにより収集優先度が上がるページが特定できる
- Overall Sortに比べ Priority-Listのサイズによる影響が小さい
そのようなページのみ Priority-List をソートする
ソート手法の速度比較
0
100000
200000
300000
400000
500000
600000
700000
800000
900000
1 10 100 1000 10000 100000 1000000
収集ページ数
(ms)
処理
時間 IPR_OS
IPR_PS
Partial Sort は頻繁に Priority-List が更新されるとき性能が悪
化ハイブリッド型の検討
重要ページの収集率
0
5
10
15
20
25
0 100000 200000 300000 400000 500000
収集ページ数
10%
(%)
上位
の収
集率
BFSBLC_OSIPR_PS
インクリメンタル PageRank が圧倒的に優れているOverall Sort と Partial Sort では Partial Sort の方が若干優
れている
精度とコストのトレードオフ - 計算の打ち切り - Value Ratio (VR)
- 新たに forwardする PageRankとforwardされる側のページの PageRankの比がある閾値以下
Link Depth (LD)- 起点からのリンクの深さがある閾値以上
Page Number (PN)- 更新されたページ数がある閾値以上
になったら計算を打ち切る
各計算打ち切り手法の精度比較
0
5
10
15
20
25
0 100000 200000 300000 400000 500000
収集ページ数
10%
(%)
上位
の収
集率
IPR_PS(LD1)IPR_PS_LD3IPR_PS_LD5IPR_PS_PN10IPR_PS_PN100IPR_PS_PN1000IPR_PS_VR1IPR_PS_VR001
収集段階によっては精度に約 1~2% 程度の違いが見られる
まとめと今後の課題 まとめ
インクリメンタル PageRankは幅優先探索よりも賢く、 PageRankよりも高速な収集戦略
現実のように全Webページのうち数十パーセントしかクローリングできないよな状況で特に有効
課題 更なる効率化 実際のWWW空間での実験と実用化