SlideShare a Scribd company logo
1 of 16
Mining of Massive Datasets
Chapter 5: Link Analysis
Recruit Communications Co., Ltd.
Kenji Hayashida
Early Search Engine and
Term Spam
• Google以前の検索エンジンはクエリ内のtermを多く
含むページを重要視していた
• 背景色と同色で”映画”と1000回書いておくと、”映画
”に関する重要なページとみなされていた
• ページ間のリンク情報をもとに重要度を計算する
PageRankが誕生
Definition of PageRank
Random Surfer Model
- あるページからリンク先のページに同確率で遷移する
- より多く訪問したページほど重要なページとみなす
AからはB,C,Dにそれぞれ1/3の確率で遷移
無限回遷移を繰り返すと、どのページをどれくらい訪問する?
(“Mining of Massive Datasets”より引用)
Definition of PageRank
この問題はマルコフ過程であり、
1. グラフは強連結
2. 行き止まりがない
の条件を満たすとき、v = Mvを満たす分布vに収束する。
vはMの最大固有値に対応する固有ベクトルになっている
実用的には、50-75回程度
繰り返すとVは十分な誤差
範囲内に収束する。
Structure of the Web
現実世界のWebは、
強連結じゃないし、
行き止まりもある..
PageRankを正しく計算
するための工夫が必要。
(“Mining of Massive Datasets”より引用)
Avoiding Dead Ends
行き止まりがあると、いくつかのノードのPageRank
が0になってしまう。(Example 5.3参照)
• 行き止まりノードを削除した状態でPageRankを計
算する。
• 行き止まりノードを削除すると、別の行き止まりノ
ードが出来ることがあるので再帰的に削除。
• PageRankの計算は削除した順と逆順で計算。(
Example 5.4参照)
Spider Traps and Taxation
Spider Trap(外部にリンクしないノード集合)があ
ると、PageRankの得点がSpider Trap内で独占される
ことがある。(Example 5.5参照)
遷移計算式をSpider Trapから脱出できるように変更
。
βはハイパーパラメータ(0.8-0.9の値を使用)
eはすべて1のベクトルで、nはweb内のページ総数。
Efficient Computation of
PageRank
• PageRankが収束するまで、行列とベクトルの積を
50回程度計算する必要がある
• 遷移行列は疎行列なので、すべての要素を保持する
のは非効率
• MapタスクからReduceタスクに渡すデータ量を減
らしたい
Representing Transition
Matrices
• 遷移行列は非常にスパース(平均的なページの外部リンク数は10程度)
• 行列の非零要素は小数だが、同一列内の値は一定(1/出次数)
• 行列を非零要素だけのリスト形式で表現する
• 非零要素は1/出次数なのでdoubleではなくintで表現
• 空間計算量がO(n^2)からO(m)に削減。n:ノード数、m:リンク数
(“Mining of Massive Datasets”より引用)
PageRank Iteration Using
MapReduce
• を計算したい。
• 全データをメモリにロードするのは不可能なので、ブロックに分けて処
理
• k*kのブロックに行列を分割。各Mapタスクは1つのブロックを担当。
• 積を足し合わせる処理はすべてReduceで行わず、各Map内のCombinerで
可能な部分は足しておく。
(“Mining of Massive Datasets”より引用)
Representing Blocks of the
Transition Matrix
• グラフは行列形式ではなくリスト形式で保持したい
• ブロックごとに各列の出次数と非零成分を持つようにすればよい
M11 M12
M22M21
M11
M12
M21
M22
(“Mining of Massive Datasets”より引用)
Topic-Sensitive PageRank
• トピックごとにPageRankを重み付けするテクニック
• ”jaguar”という単語は車、動物、Mac OSのバージョン、ゲーム機器のど
れを指しているか分からない
• 車好きのユーザに対しては車の”jaguar”のページをランキング上位に出し
てたい
• トピックごとにPageRankを用意しておいて、ユーザの嗜好にマッチする
トピックのPageRankを使用する
: 対象トピックに属するページの集合
: に含まれるページは1、含まれないページは0にしたベクトル
Link Spam
• 意図的にPageRankをあげようと試みるスパムを”Link Spam”という
• Link Spamをグラフ構造から検知して、インデックスから削除することは
可能
• しかし新しいグラフ構造のLink Spamが開発されるというイタチごっこに
…
(“Mining of Massive Datasets”より引用)
TrustRank
Link Spamをグラフ構造から特定しなくても、SpamのPageRankが自動的に
下がるようにPageRankの計算を変更したい
TrustRank
トピック = “信頼できるページ”としたTopic-Sensitive PageRank
• 信頼できるページからSpamにリンクは張られない
• ユーザーがコメント投稿できるサイトは信頼できるページには入れない
• 今日の検索エンジンはTrustRankを使用している
• Spam Mass := (PageRank - TrustRank) / PageRankを計算することで、ペ
ージがspamである可能性を計算することも可能
HITS(Hyperlink-induced
topic search)
• ページの重要度を計算する別のアルゴリズム
• PageRankの少し後に提案された
• PageRankはあるページの重要度を1つの値で表したが、HITSは2つの値
で表す
authorities 重要な情報を提供するページ
hubs 重要な情報を提供するページに導いてくれるページ
authority そのページをauthoritiesとして見たときの重要度
hubbiness そのページをhubsとして見たときの重要度
ページの役割
2つの観点から見たページの重要度
HITS(Hyperlink-induced
topic search)
• authorityとhubbinessはPageRankと同様に行列乗算の繰返しで行う
• 良いauthoritiesにリンクするページは良いhubs
• 良いhubsからリンクされるページは良いauthorities
a: authority vector
h: hubbiness vector
L: グラフの隣接行列
• 上記の演算をa, hが収束するまで繰り返す
• a, hは更新ステップごとにスケーリングが必要

More Related Content

Viewers also liked

NIPS Paper Reading, Data Programing
NIPS Paper Reading, Data ProgramingNIPS Paper Reading, Data Programing
NIPS Paper Reading, Data ProgramingKotaro Tanahashi
 
Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...
Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...
Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...Nishanth Koganti
 
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKeisuke Hosaka
 
Binarized Neural Networks
Binarized Neural NetworksBinarized Neural Networks
Binarized Neural NetworksShotaro Sano
 

Viewers also liked (6)

NIPS Paper Reading, Data Programing
NIPS Paper Reading, Data ProgramingNIPS Paper Reading, Data Programing
NIPS Paper Reading, Data Programing
 
Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...
Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...
Bayesian Nonparametric Motor-skill Representations for Efficient Learning of ...
 
NIPS2016 Supervised Word Mover's Distance
NIPS2016 Supervised Word Mover's DistanceNIPS2016 Supervised Word Mover's Distance
NIPS2016 Supervised Word Mover's Distance
 
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKaggle boschコンペ振り返り
Kaggle boschコンペ振り返り
 
Dynamic filter networks
Dynamic filter networksDynamic filter networks
Dynamic filter networks
 
Binarized Neural Networks
Binarized Neural NetworksBinarized Neural Networks
Binarized Neural Networks
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (8)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Mining of Massive Datasets Chapter5: Link Analysis

  • 1. Mining of Massive Datasets Chapter 5: Link Analysis Recruit Communications Co., Ltd. Kenji Hayashida
  • 2. Early Search Engine and Term Spam • Google以前の検索エンジンはクエリ内のtermを多く 含むページを重要視していた • 背景色と同色で”映画”と1000回書いておくと、”映画 ”に関する重要なページとみなされていた • ページ間のリンク情報をもとに重要度を計算する PageRankが誕生
  • 3. Definition of PageRank Random Surfer Model - あるページからリンク先のページに同確率で遷移する - より多く訪問したページほど重要なページとみなす AからはB,C,Dにそれぞれ1/3の確率で遷移 無限回遷移を繰り返すと、どのページをどれくらい訪問する? (“Mining of Massive Datasets”より引用)
  • 4. Definition of PageRank この問題はマルコフ過程であり、 1. グラフは強連結 2. 行き止まりがない の条件を満たすとき、v = Mvを満たす分布vに収束する。 vはMの最大固有値に対応する固有ベクトルになっている 実用的には、50-75回程度 繰り返すとVは十分な誤差 範囲内に収束する。
  • 5. Structure of the Web 現実世界のWebは、 強連結じゃないし、 行き止まりもある.. PageRankを正しく計算 するための工夫が必要。 (“Mining of Massive Datasets”より引用)
  • 6. Avoiding Dead Ends 行き止まりがあると、いくつかのノードのPageRank が0になってしまう。(Example 5.3参照) • 行き止まりノードを削除した状態でPageRankを計 算する。 • 行き止まりノードを削除すると、別の行き止まりノ ードが出来ることがあるので再帰的に削除。 • PageRankの計算は削除した順と逆順で計算。( Example 5.4参照)
  • 7. Spider Traps and Taxation Spider Trap(外部にリンクしないノード集合)があ ると、PageRankの得点がSpider Trap内で独占される ことがある。(Example 5.5参照) 遷移計算式をSpider Trapから脱出できるように変更 。 βはハイパーパラメータ(0.8-0.9の値を使用) eはすべて1のベクトルで、nはweb内のページ総数。
  • 8. Efficient Computation of PageRank • PageRankが収束するまで、行列とベクトルの積を 50回程度計算する必要がある • 遷移行列は疎行列なので、すべての要素を保持する のは非効率 • MapタスクからReduceタスクに渡すデータ量を減 らしたい
  • 9. Representing Transition Matrices • 遷移行列は非常にスパース(平均的なページの外部リンク数は10程度) • 行列の非零要素は小数だが、同一列内の値は一定(1/出次数) • 行列を非零要素だけのリスト形式で表現する • 非零要素は1/出次数なのでdoubleではなくintで表現 • 空間計算量がO(n^2)からO(m)に削減。n:ノード数、m:リンク数 (“Mining of Massive Datasets”より引用)
  • 10. PageRank Iteration Using MapReduce • を計算したい。 • 全データをメモリにロードするのは不可能なので、ブロックに分けて処 理 • k*kのブロックに行列を分割。各Mapタスクは1つのブロックを担当。 • 積を足し合わせる処理はすべてReduceで行わず、各Map内のCombinerで 可能な部分は足しておく。 (“Mining of Massive Datasets”より引用)
  • 11. Representing Blocks of the Transition Matrix • グラフは行列形式ではなくリスト形式で保持したい • ブロックごとに各列の出次数と非零成分を持つようにすればよい M11 M12 M22M21 M11 M12 M21 M22 (“Mining of Massive Datasets”より引用)
  • 12. Topic-Sensitive PageRank • トピックごとにPageRankを重み付けするテクニック • ”jaguar”という単語は車、動物、Mac OSのバージョン、ゲーム機器のど れを指しているか分からない • 車好きのユーザに対しては車の”jaguar”のページをランキング上位に出し てたい • トピックごとにPageRankを用意しておいて、ユーザの嗜好にマッチする トピックのPageRankを使用する : 対象トピックに属するページの集合 : に含まれるページは1、含まれないページは0にしたベクトル
  • 13. Link Spam • 意図的にPageRankをあげようと試みるスパムを”Link Spam”という • Link Spamをグラフ構造から検知して、インデックスから削除することは 可能 • しかし新しいグラフ構造のLink Spamが開発されるというイタチごっこに … (“Mining of Massive Datasets”より引用)
  • 14. TrustRank Link Spamをグラフ構造から特定しなくても、SpamのPageRankが自動的に 下がるようにPageRankの計算を変更したい TrustRank トピック = “信頼できるページ”としたTopic-Sensitive PageRank • 信頼できるページからSpamにリンクは張られない • ユーザーがコメント投稿できるサイトは信頼できるページには入れない • 今日の検索エンジンはTrustRankを使用している • Spam Mass := (PageRank - TrustRank) / PageRankを計算することで、ペ ージがspamである可能性を計算することも可能
  • 15. HITS(Hyperlink-induced topic search) • ページの重要度を計算する別のアルゴリズム • PageRankの少し後に提案された • PageRankはあるページの重要度を1つの値で表したが、HITSは2つの値 で表す authorities 重要な情報を提供するページ hubs 重要な情報を提供するページに導いてくれるページ authority そのページをauthoritiesとして見たときの重要度 hubbiness そのページをhubsとして見たときの重要度 ページの役割 2つの観点から見たページの重要度
  • 16. HITS(Hyperlink-induced topic search) • authorityとhubbinessはPageRankと同様に行列乗算の繰返しで行う • 良いauthoritiesにリンクするページは良いhubs • 良いhubsからリンクされるページは良いauthorities a: authority vector h: hubbiness vector L: グラフの隣接行列 • 上記の演算をa, hが収束するまで繰り返す • a, hは更新ステップごとにスケーリングが必要