WWW上の効率的な ハブ探索法の提案と実装

WWW上の効率的な
ハブ探索法の提案と実装
北陸先端科学技術大学院大学
知識科学研究科
○松久保 潤,林 幸雄
概要
有益なページを優先して収集
未探索かつ最大のIn-degreeをもつ
ページを優先して収集
クローラによる探索実験
Webコミュニティ内の重要なページを
経由しながら探索しているように動作
背景
Webページの総数は急激に増加
Lawrence’99では約8億
山名’03では約70億
Googleの推定カバー率は約40%
すべてのページをカバーするのは困難
できるだけ有益なページを優先
目的
A
オーソリティ
H
ハブ
高いIn-degreeをもつページは
多くの興味・関心を集めている
多くの興味・関心を集めているページを
できるだけ多く収集する
従来法(1/2)
Cho, et al ’98
更新されたページの再探索を効率化するため
高い重要度をもつページを優先して探索
ページの内容とIn-degreeやOut-degree
及びPageRankなどを組み合わせて評価
Web全体のリンク構造を使用
従来法(2/2)
Adamic, et al ’00
無向グラフ上で任意の二頂点間の経路長が
できるだけ短くなるように探索する
高い次数をもつ頂点を経由すると
任意の二頂点間の経路長が比較的短くなる
最大の次数をもつ最近傍を優先する
最近傍の正確な次数が既知である
提案手法
適宜,最大のIn-degreeをもつ
未探索ページを優先的に探索
発見された未探索ページが全て探索候補
In-degreeの更新によって
探索の優先順位は適応的に変化
以下,本提案手法を入次数優先探索
(In-degree First Search; IFS)と表記
クローラの動作
① 探索URL pに探索開始URLを格納
② pのソースのダウンロード・構文解析を行い
URLを抽出
③
探索キューW内のURLと重複しない場合
Wに格納
重複する場合
そのURLの優先順位を更新
④ W内の最大のIn-degreeをもつURLをpに格納
⑤ ②に戻る
探索実験
入次数優先探索(In-degree First Search;
IFS)
と幅優先探索(Breadth First Search; BFS)
の比較
比較項目
 オーソリティの累積獲得数
 低い次数をもつページの累積獲得数
A及びHの累積獲得数
IFS
BFS
図3 オーソリティの累積獲得数
IFS
BFS
図4 ハブの累積獲得数
IFSで収集したページがもつ次数の
上位0.1%に含まれる最小の次数
オーソリティだけでなくハブも効率的に収集
次数の低いページの累積獲得数
IFS
BFS
図5 低いIn-degreeをもつページの
累積獲得数
IFS
BFS
図6 低いOut-degreeをもつページの
累積獲得数
次数が低い頂点の累積獲得数が少ない
次数に対するページ数の分布
IFS
BFS
IFS
BFS
図1 In-degreeに対するページ数
図2 Out-degreeに対するページ数
Pennock’02
特定のトピックを扱うページの分布が
対数正規分布に従う
最近傍の結合相関
k
IFS
nn
<kin >
BFS
コミュニティ間の移動の様子
BFS
IFS
IFSを用いた場合,A及びHが含まれるドメイン内の頁が
重点的に収集されている.
考察
Newman, et al ’03, Vázquez ’02
社会的ネットワークでは高い次数をもつ
頂点同士の結合頻度が高い
A
A
H
H
A
H
コミュニティの核となるオーソリティやハブを
経由しながらWeb上を探索している
まとめ
探索中に適宜,最大のIn-degreeをもつ未探索ページを
優先して探索する手法を提案し,クローラを実装した
実験結果
幅優先探索を用いた場合よりも効率的に
オーソリティを収集できた
収集したページのリンク構造上で高い次数をもつ
ページ同士の結合頻度が高くなっていた
コミュニティの核となるオーソリティやハブを
経由しながらWeb上のページを収集
最近傍の結合相関(Out-degree)
IFS
BFS
入次数優先探索を用いた場合の方が
平均出次数が全体的に高くなっている
結果6:次数に対する最近傍の
平均次数(無向グラフ)
IFS
図11 入次数優先探索を用いた場合
BFS
図12 幅優先探索を用いた場合
• どちらの場合も高い入次数をもつページに対する最
近傍の平均出次数が低くなる傾向がある
• 幅優先探索を用いた場合の方が上述の傾向が強い
クローラの実装
• <A>のHREF属性, <META>の転送を
他のページへのリンクとして扱う
• <FRAME SRC>で参照されるページ内の
リンクは元のページからのリンクとして扱う
• 拡張子htm, html, asp, jsp, php, cfmをもつ
ページへのURLをリンクとする
• 全てのcgi,及びhttp,https以外のプロトコル
を用いるURLはリンクとして扱わない
クローラの実装
① 探索URL pに探索開始URLを格納する
② pを探索済みリストSに追加する
③ pのソースをダウンロードする
④ 構文解析を行ってS内のURLと重複しないように
URLを抽出する
⑤ 抽出されたURLが探索キューW内のURLと
重複する場合にそのURLの入次数を1だけ増やす
⑥ 重複しない場合にはWに格納する
⑦ Wから最大の入次数をもつURLを取り出し
pに格納する
⑧ ②に戻る