16
Mining of Massive Datasets Chapter 5: Link Analysis Recruit Communications Co., Ltd. Kenji Hayashida

Mining of Massive Datasets Chapter5: Link Analysis

Embed Size (px)

Citation preview

Page 1: Mining of Massive Datasets Chapter5: Link Analysis

Mining of Massive DatasetsChapter 5: Link Analysis

Recruit Communications Co., Ltd.Kenji Hayashida

Page 2: Mining of Massive Datasets Chapter5: Link Analysis

Early Search Engine and Term Spam

• Google 以前の検索エンジンはクエリ内の term を多く含むページを重要視していた• 背景色と同色で”映画”と 1000 回書いておくと、”映画”に関する重要なページとみなされていた• ページ間のリンク情報をもとに重要度を計算する

PageRank が誕生

Page 3: Mining of Massive Datasets Chapter5: Link Analysis

Definition of PageRank

Random Surfer Model- あるページからリンク先のページに同確率で遷移する- より多く訪問したページほど重要なページとみなす

A からは B,C,D にそれぞれ 1/3 の確率で遷移

無限回遷移を繰り返すと、どのページをどれくらい訪問する?

(“Mining of Massive Datasets” より引用 )

Page 4: Mining of Massive Datasets Chapter5: Link Analysis

Definition of PageRank

この問題はマルコフ過程であり、1. グラフは強連結2. 行き止まりがないの条件を満たすとき、 v = Mv を満たす分布 v に収束する。v は M の最大固有値に対応する固有ベクトルになっている

実用的には、 50-75 回程度繰り返すと V は十分な誤差範囲内に収束する。

Page 5: Mining of Massive Datasets Chapter5: Link Analysis

Structure of the Web

現実世界の Web は、強連結じゃないし、行き止まりもある ..

PageRank を正しく計算するための工夫が必要。

(“Mining of Massive Datasets” より引用 )

Page 6: Mining of Massive Datasets Chapter5: Link Analysis

Avoiding Dead Ends行き止まりがあると、いくつかのノードの PageRankが 0 になってしまう。( Example 5.3 参照)

• 行き止まりノードを削除した状態で PageRank を計算する。• 行き止まりノードを削除すると、別の行き止まりノードが出来ることがあるので再帰的に削除。• PageRank の計算は削除した順と逆順で計算。( Example 5.4 参照)

Page 7: Mining of Massive Datasets Chapter5: Link Analysis

Spider Traps and TaxationSpider Trap (外部にリンクしないノード集合)があると、 PageRank の得点が Spider Trap 内で独占されることがある。( Example 5.5 参照)

遷移計算式を Spider Trap から脱出できるように変更。

β はハイパーパラメータ( 0.8-0.9 の値を使用)e はすべて 1 のベクトルで、 n は web 内のページ総数。

Page 8: Mining of Massive Datasets Chapter5: Link Analysis

Efficient Computation of PageRank

• PageRank が収束するまで、行列とベクトルの積を50 回程度計算する必要がある

• 遷移行列は疎行列なので、すべての要素を保持するのは非効率• Map タスクから Reduce タスクに渡すデータ量を減らしたい

Page 9: Mining of Massive Datasets Chapter5: Link Analysis

Representing Transition Matrices

• 遷移行列は非常にスパース(平均的なページの外部リンク数は 10 程度)• 行列の非零要素は小数だが、同一列内の値は一定( 1/ 出次数)

• 行列を非零要素だけのリスト形式で表現する• 非零要素は 1/ 出次数なので double ではなく int で表現• 空間計算量が O(n^2) から O(m) に削減。 n: ノード数、 m: リンク数

(“Mining of Massive Datasets” より引用 )

Page 10: Mining of Massive Datasets Chapter5: Link Analysis

PageRank Iteration Using MapReduce

•             を計算したい。• 全データをメモリにロードするのは不可能なので、ブロックに分けて処理• k*k のブロックに行列を分割。各 Map タスクは 1 つのブロックを担当。• 積を足し合わせる処理はすべて Reduce で行わず、各 Map 内の

Combiner で可能な部分は足しておく。

(“Mining of Massive Datasets” より引用 )

Page 11: Mining of Massive Datasets Chapter5: Link Analysis

Representing Blocks of the Transition Matrix

• グラフは行列形式ではなくリスト形式で保持したい• ブロックごとに各列の出次数と非零成分を持つようにすればよい

M11 M12

M22M21

M11

M12

M21

M22

(“Mining of Massive Datasets” より引用 )

Page 12: Mining of Massive Datasets Chapter5: Link Analysis

Topic-Sensitive PageRank• トピックごとに PageRank を重み付けするテクニック• ”jaguar” という単語は車、動物、 Mac OS のバージョン、ゲーム機器のどれを指しているか分からない• 車好きのユーザに対しては車の” jaguar” のページをランキング上位に出してたい• トピックごとに PageRank を用意しておいて、ユーザの嗜好にマッチするトピックの PageRank を使用する

: 対象トピックに属するページの集合 : に含まれるページは 1 、含まれないページは 0 にしたベクトル

Page 13: Mining of Massive Datasets Chapter5: Link Analysis

Link Spam• 意図的に PageRank をあげようと試みるスパムを” Link Spam” という• Link Spam をグラフ構造から検知して、インデックスから削除することは可能• しかし新しいグラフ構造の Link Spam が開発されるというイタチごっこに…

(“Mining of Massive Datasets” より引用 )

Page 14: Mining of Massive Datasets Chapter5: Link Analysis

TrustRankLink Spam をグラフ構造から特定しなくても、 Spam の PageRank が自動的に下がるように PageRank の計算を変更したい

TrustRankトピック = “信頼できるページ”とした Topic-Sensitive PageRank

• 信頼できるページから Spam にリンクは張られない• ユーザーがコメント投稿できるサイトは信頼できるページには入れない• 今日の検索エンジンは TrustRank を使用している• Spam Mass := (PageRank - TrustRank) / PageRank を計算することで、ページが spam である可能性を計算することも可能

Page 15: Mining of Massive Datasets Chapter5: Link Analysis

HITS ( Hyperlink-induced topic search )

• ページの重要度を計算する別のアルゴリズム• PageRank の少し後に提案された• PageRank はあるページの重要度を1つの値で表したが、 HITS は 2 つの値で表す

authorities  重要な情報を提供するページhubs  重要な情報を提供するページに導いてくれるページ

authority  そのページを authorities として見たときの重要度hubbiness  そのページを hubs として見たときの重要度

ページの役割

2 つの観点から見たページの重要度

Page 16: Mining of Massive Datasets Chapter5: Link Analysis

HITS ( Hyperlink-induced topic search )

• authority と hubbiness は PageRank と同様に行列乗算の繰返しで行う• 良い authorities にリンクするページは良い hubs• 良い hubs からリンクされるページは良い authorities

a: authority vectorh: hubbiness vectorL: グラフの隣接行列

• 上記の演算を a, h が収束するまで繰り返す• a, h は更新ステップごとにスケーリングが必要