• 検索結果がありません。

LittleWeb: 類似ノード集約による Web グラフ圧縮手法

N/A
N/A
Protected

Academic year: 2022

シェア "LittleWeb: 類似ノード集約による Web グラフ圧縮手法"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)修 士 論 文 概 要 書 2010 年 専攻名 (専門分野). 情報理工学専攻. 氏 名. 研究指導名. 並列分散アーキテクチャ. 学籍番号. 研 究 題 目. 指 導 印. CD 5108B027-3. 教 員. LittleWeb: 類似ノード集約による Web グラフ圧縮手法. 1. あらまし Web をクローリングして得られるデータの一つに Web グラフ がある.Web 解析において Web グラフは,有用なデータの一つ であり,実際,グラフ理論や,ランキングアルゴリズム,Web コミュニティ抽出アルゴリズムなどの Web グラフを解析するた めの手法が存在する.こうした Web グラフの有用性を背景に, グラフ圧縮を利用した大規模な Web グラフの効率的な運用や解 析アルゴリズムの高効率化に関する研究が行われている.本稿 で提案する LittleWeb もそのような研究の一つであり,Web グラ フのデータサイズを削減し,またリンク解析アルゴリズムの高 速化を実現する手法である.LittleWeb では可逆圧縮を前提とし た既存研究に比較して,不可逆圧縮を用いることによりさらな る圧縮率の向上・解析アルゴリズム効率の向上を実現する. 2. 関連研究 著者らは以前に,Web グラフを不可逆に圧縮する手法として 縮小 Web を提案している[1].縮小 Web では Web グラフにおい て図 2 に示すようなノード A,B のように隣接していてなおか つリンク先のノード・被リンク元のノードが類似している複数 のノードを図 3 に示すように併合し,グラフを重み付きグラフ へ変換する.リンクデータとしてのノードに関する情報はノー ドの併合により得られたクラスタの数だけ増加するが,リンク 解析アルゴリズムの計算上ではクラスタにどのようなノードが 含まれているかを考慮せずに計算できる場合が多いため,計算 上ではノード数を削減できたことになる.また,エッジの数は 重みの情報を付加してもなお十分にリンデータのサイズを削減 するに足るだけ減尐させることが可能である.実際に,ノード 数を 16.4%,エッジ数を 69.8%削減し,さらに PageRank アルゴ リズムの計算において計算時間を 58%短縮することに成功して いる. LittleWeb は縮小 Web の考え方を引き継ぎ, 圧縮手法を改善し, また圧縮処理の並列分散実行を可能とした手法である. 2 A. AB. B 2. 2 C 2. 図 2 Web グラフ構造の例 図 3 ノードの併合の例 3. 提案手法:LittleWeb LittleWeb では縮小 Web 同様,ノードを類似度に基づいてクラ スタリングを行い,得られた類似度をもとにノードを併合し Web グラフを圧縮する.ノードのクラスタリングでは 3.1,3.2 で触れるノード間類似度およびクラスタの直径を用い階層的に ノードの併合を行う(3.3). 3.1. ノード類似度 ノード x, y の類似度を次式のように定義する.. simx, y  . 片瀬弘晶. 2 月提出. 1 T outx , out y   T inx , in y  2. out(x), in(x)はそれぞれノード x の順方向隣接リスト,逆方向隣接 リスト(本稿では隣接ノードの“集合”として扱う)を表し T(A,B) はタニモト係数と呼ばれる類似度関数である.タニモト係数は 次式で定義される. A B A B T  A, B    A  B  A B A B 3.2. クラスタの直径 3.1 に記したように,関数 sim はノードのもつ隣接リストを集. diam(Ci) 1: x, y   argsmax simx, y  x , yCi , x y. 2:. return sim(x,y) 図 1 クラスタの直径. 合とみなして距離を定義しているために,クラスタの重心を計 算することはできない.このため,クラスタ同士を併合する基 準としてクラスタ間の類似度を用いることが難しい.そこで, LittleWeb ではクラスタ間の類似度ではなく併合した場合のクラ スタが所持することになるノード集合を用いてクラスタの直径 を定義し,これをクラスタ間類似度の代わりとして用いる. クラスタの直径を求める関数 diam を図 1 に示す.図 1 の 1 行 目 argsmax ではクラスタ Ci に含まれるノードの中ら sim(x,y)を最 大にするような 2 つのノードを取得する.関数 diam はクラスタ Ci に含まれるノード全ての組み合わせに対してノード間類似度 を求め,その最大値を返す関数に等しい. 3.3. ノードのクラスタリング ノードのクラスタリングは,基本的には 3.1,3.2 で定義した ノード間類似度・クラスタの直径をもとに階層型クラスタリン グによって行う.ただし,クラスタリングの目的が Web グラフ の圧縮に必要なノードの併合であることから,あらかじめ与え られた閾値 TH 以下のクラスタを作成できなくなった時点で,ク ラスタリング処理は終了となる.疑似コードを図 4 に示す.図 4 において Clustering(V, TH)の引数 V は圧縮対象となるグラフの ノード集合となる. 3.4. Web グラフ圧縮 Web グラフの圧縮処理は 3.3 のクラスタリングの結果を用い て,図 4 に示す手順で行う.前提として,クラスタにはそれぞ れユニークな ID(クラスタ ID)が割り振られているとする.ま た図 4 において,4 行目の Map<cid, weight> newForwards はクラ スタ ID を key,後述のクラスタの出現回数を value とするマッ プデータ型,6 行目の adj.getForwards(n)はノード n のリンク先ノ ードの集合を返す関数,7 行目の getCid(n)はノード n が属するク ラスタ ID を返す関数とする. Compress(adj, C) 1: WeightedAdjlist newAdj 2: for each Ci ∈ C 3: clsuterWeight = |Ci| 4: Map<cid, weight> newForwards 5: for each n ∈ Ci 6: for each forward ∈ adj.getForwards(n) 7: newForwards [getCid(forward)] += 1 8: newAdj.add(Ci, clusterWeight, newForwards) 9: return newAdj 図 4 Web グラフの圧縮処理 4. 実験 LittleWeb の評価実験として,実際に Web クローリングして得 られた Web グラフを使用した圧縮を行い,圧縮にかかる時間や 圧縮率を求め検証を行う.また圧縮することによってリンク解 析アルゴリズムを実行する上でどのような影響が出ているかを 検証するため,PageRank を利用して圧縮グラフの検証を行う. 4.1. 実験データ 実験データには Laboratory for Web Algorithmics[2]が公開して い る ク ロ ー リ ン グ デ ー タ を 利 用 す る . Laboratory for Web Algorithmics は年度やクローリングターゲットのことなる複数 のリンクデータを公開しているが,実験ではそのうちの表 1 に.

(2) また,本実験では hadoop[3]を利用して LittleWeb を実装してい る.表 3 に使用した hadoop プロジェクトのフレームワークのバ ージョンを示す. 表 3 フレームワーク等のバージョン hadoop ver. 0.20.1 hbase ver. 0.20.2 4.3. 圧縮実験 表 2 に示す環境において Web グラフの圧縮実験を行った.結 果を示す.図 5 より閾値 TH=0.50 あたりまでは圧縮率が線形に 上 が っ て い る こ と が 分 か る . LittleWeb の 性 質 と し て 閾 値 TH=0.00 として圧縮を行った場合は,他の閾値の場合と異なり 可逆圧縮になる. 閾値 TH を大きくしていけば当然であるが圧縮率は上昇する. しかし,圧縮率の上昇に伴い圧縮グラフの構造が本来の WebGraph の構造から遠ざかるため,どの程度の閾値までなら圧 縮グラフとして有用であるかを検証する必要がある.そこで, 4.4 にて既存のリンク解析アルゴリズムを利用した検証実験の 結果を記す. 4.4. 圧縮グラフの評価実験 4.3 で LittleWeb を用いることで Web グラフを圧縮できること が確認できたが,LittleWeb は Web グラフの不可逆圧縮であるた め(閾値 TH=0.00 の場合だけ可逆変換) ,圧縮後の Web グラフ が解析アルゴリズムに対して実行速度・実行結果に与える影響 100.0%. 間も短くなることになるが,図 6 に示す通り実行時間とエッジ 800. 1,000,000,000 900,000,000. 700 実行時間 600. 800,000,000. エッジ数 700,000,000. 500. 600,000,000. 400. 500,000,000. エッジ数. 実行時間 [分]. 示すデータを利用する. 表 1 実験データ Data Set Nodes Edges uk2005 39,459,925 936,364,282 4.2. 実験環境 実験では表 2 に示す複数の実験環境を用いた. 表 2 実験環境 ノード数 26 台 CPU Core 2 Duo 6600 (2.66GHz x2) Memory 4GB Disk SATA 500GB. 400,000,000. 300. 300,000,000 200 200,000,000 100. 100,000,000. 0. 0 uk2005. 閾値0.00. 閾値0.20. 閾値0.40. 閾値0.60. 閾値0.80. データ. 図 6 PageRank の実行時間 数は連動して減尐していることが分かる.ただし,閾値 0.40 以 上の圧縮グラフにおいて実行時間の減尐率が下がってきている. これは PageRank アルゴリズムのイテレーション毎に発生する hadoop のオーバーヘッドなどによる影響と推測される. 4.4.2. PageRank 誤差 圧縮率と PageRank アルゴリズムの結果の誤差を比較するため に,4.4.1 で計算された圧縮グラフの PageRank と未圧縮の uk2005 の Web グラフから得られた PageRank の差を計算した.結果を 図 7 に示す.ここで示す誤差とは,圧縮グラフの PageRank と未 圧縮の Web グラフの PageRank に対して, ページごとに PageRank の差を計算し総和をとったものとなっている.また,ここで計 算に用いた PageRank は全ページの PageRank 値が 1.0 になるよ うに正規化されている. 図 7 に示す通り,閾値 0.00 で圧縮された Web グラフは可逆圧 縮となるため,PageRank の計算結果が未圧縮の Web グラフの場 合と同じになるという結果を得た(誤差 0.00) .また,閾値 0.20 の場合でも PageRank 総量 1.0 に対して誤差の総量が 0.02 に収ま っているため,大きな誤差が発生していないことが分かる.一 方,閾値 0.60 以上では 0.30 と大きな誤差が生じているため,解 析アルゴリズムの結果としては十分な精度が得られていないこ とが伺える.. 90.0% 0.70000. 100.00%. 0.60000. 60.0%. ノード圧縮率. 50.0%. エッジ圧縮率. 0.50000. 誤差. 40.0%. 誤差. 90.00%. ノード圧縮率. 80.00%. エッジ圧縮率. 70.00% 60.00%. 0.40000. 50.00%. 30.0%. 0.30000. 20.0%. 0.20000. 10.0%. 0.10000. 0.0%. 0.00000. 40.00% 30.00%. 1.00. 0.95. 0.90. 0.85. 0.80. 0.75. 0.70. 0.65. 0.60. 0.55. 0.50. 0.45. 0.40. 0.35. 0.30. 0.25. 0.20. 0.15. 0.10. 0.05. 20.00%. 0.00. 圧縮率. 70.0%. 圧縮率. 80.0%. 閾値TH. 図 5 閾値 TH と圧縮率 を検証する必要がある. 本節では,図 5 中の閾値 0.00, 0.20, 0.40, 0.60,0.80 で圧縮した Web グラフおよび未圧縮の uk2005 の Web グラフに対して PageRank アルゴリズムを実行し,その実行時間 と計算誤差について検証する. 4.4.1. PageRank 計算時間 LittleWeb によって圧縮された圧縮グラフの評価実験の一つと して,圧縮前後の Web グラフに対して PageRank を実行した場 合にかかる実行時間を比較する.この実験で用いる PageRank ア ルゴリズムは論文[1]の 4.3.2 で取り上げている重み付きグラフ に対する PageRank アルゴリズムを使い,さらに計算を hadoop によって並列分散化して実装している.結果は図 6 に示す通り である. 図 6 は,未圧縮の uk2005,閾値 0.00,0.20,0.40,0.60,0.80 で圧縮した圧縮グラフに対してそれぞれの PageRank の実行時間 を示している. PageRank の計算は Web グラフのエッジ数にほ ぼ比例するため,理論上ではエッジ数の減尐に合わせて計算時. 10.00% 0.00% 0.00. 0.20. 0.40. 0.60. 0.80. 1.00. 閾値. 図 7 圧縮率と PageRank 誤差の関係 5. おわりに 本稿では,隣接リストの類似度を用いたノードのクラスタリ ングによる Web グラフ圧縮手法である LittleWeb を提案した.結 果として閾値 0.20 で Web グラフを圧縮した場合に,ノードを 52.4%,エッジを 23.5%圧縮することに成功し,PageRank の計算 時間も 67%削減することに成功した.また,閾値 0.00 で圧縮し た可逆圧縮の場合でも,ノードを 67.3%,エッジを 56.3%圧縮 でき,PageRank の計算時間を 52%削減することに成功した. 参考文献 [1] 片瀬 弘晶¸ 松永 拓, 上田 高徳, 田代 崇, 平手 勇宇, 山 名 早人, “リンク構造解析アルゴリズム高速化のための縮 小 Web の構築”, 日本データベース学会論文誌 Vol.7 No.1, pp. 245-250, 2008. [2] Laboratory for Web Algorithmics, http://law.dsi.unimi.it/ [3] hadoop, http://hadoop.apache.org/.

(3)

参照

関連したドキュメント

Tunstall 符号と Range Coder の組み合わせでは約 18 ∼ 20%,STVF 符号と Range Coder の組み合わせでは約 7 ∼ 15%

小規模の回路では,ほぼ最小のテスト集合を得るア

Distance-Pagerank と被有人数/被友人数での計

Distance-Pagerank と被有人数/被友人数での計

圧縮照合処理の幕開け 実用的な圧縮照合法 Dence coding系データ圧縮 Re-Pair:超高圧縮 文法圧縮の幕開け 可変長 -固定長符号の始祖 Suffix treeを用いたVF符号

日 圧縮機,送風機,ポンプ特集号

Tunstall 符号と Range Coder の組み合わせでは約 18 ∼ 20%,STVF 符号と Range Coder の組み合わせでは約 7 ∼ 15%

5.2 圧縮率の比較 本論文ではまず先ほど提示した 3