Information Retrieval and Web Search まとめ(21): リンク解析
前回はランク学習手法について説明した。今回は、リンク解析について扱う。
この記事は Information Retrieval and Web Search Advent Calendar 2020 の21日目の記事です。
リンク解析の概要
ハイパーテキストとリンク
- 文書のコンテンツ以外のものもスコアリングに取り入れる
- まずそれらのハイパーリンクに注目
- リンクは権威 (authority) をページに与えることを意味するのか?ランキングに役立てることはできるか?
- CERN のホームページからリンクされたページは高エネルギー物理に関するページ?
- 応用範囲
- Web
- SNS
リンク解析と情報検索
- スコアリングとランキング
- リンクベースでのクラスタリング
- トピックによる文書分類
- リンクを分類の特徴量として使う
- 同じ文書を指している文書たちは同じようなテーマである可能性が高い
- クローリング
- 次回扱う
有向グラフとしての Web
- Web はページ内にアンカー (anchor) をもつ
- ハイパーリンク (hyperlink) と呼ばれる別のページへの有向のリンク
- Web はページを頂点、ハイパーリンクを辺とする有向グラフとみなせる
PageRank
引用解析
- 論文などの学術文献の引用関係を解析
- 同じ文献を引用している文献同士は関連している
- PageRank の基礎となった
学術文献と Web との違い
- Web は数百万の書き手がいて、それぞれが違う興味を持っている
- スパムが多い
- 検索エンジンがリンクをランキングに使い始めると、リンクスパムが増える
- お互いにリンクを張り合うリンクファーム (link farm) も存在する
PageRank スコアの基本的な考え方
- ユーザはページ間をランダムウォークすると仮定する
- ランダムなページから開始
- 各ステップで、ユーザはページから出ているリンクの中から等確率で1つ選んで遷移する
- 長い時間のあと、各ページはある一定の訪問率 (vist rate) に落ち着く
- これをそのページのスコアとする
テレポート
- しかし、この方法には問題がある
- dead-end (リンクを持たない Web ページ)がたくさんある
- ランダムウォークを継続できない(スタック (stuck) する)
- 訪問率が意味を持たなくなる
- dead-end に行き当たったら、次はランダムなページに遷移する
- スタックしなくなる
- また、dead-end でないページでも、ある確率(たとえば 10%)の確率でランダムなページに遷移する
- この確率は PageRank のパラメータであり、テレポート確率 (teleportation probability) と呼ぶ
- Web のユーザがどこか他のページに行く挙動をシミュレートしている
- すべてのページに訪問率が存在するようになる
- この訪問率をどうやって計算するか?
マルコフ連鎖
- マルコフ連鎖 (Markov chain) は n 個の状態 (state) と、 n×n の遷移確率行列 (transition probability matrix) P からなる
- 各ステップで、状態のうちのどれか1つの中にいる
- は、状態 i から状態 j へ遷移する確率を表す
- も認められる
- すべての i に対して
マルコフ連鎖の例
エルゴード的マルコフ連鎖
- エルゴード的マルコフ連鎖 (ergodic Markov chain) は、各状態での長期的な訪問率がユニーク(一意)である
- エルゴード的:周期的なパターンがない
- テレポートによりエルゴード性が満たされる
- 長期的には、この訪問率に比例して各状態に遷移する
- どこから開始するかには依存しない
確率ベクトル
- 確率(行)ベクトル は、どの状態にいるかを示す
(0, 0, ..., 0, 1, 0, ..., 0)
(i 番目の要素だけ 1)のとき、状態 i にいる- より一般には、確率ベクトル は、状態 i にいる確率 を意味する
- このステップでの確率ベクトルが だったとき、次のステップはどうなるか?
- 行列 P が、状態 i からの遷移確率を示していることを思い出すと、次の状態は と表せる
- その次は 、更にその次は ...
- これは収束するか?
- これを計算して調べるのがべき乗法 (power method, power iteration)
- 初歩的な方法
- 訪問頻度が一定の閾値以下に「落ち着く」までシミュレートを繰り返す
- 確率行ベクトルの定常状態を と書くことにする
- これは定常状態なので、
- この方程式を解くと a を求めることができる
Web グラフの例
- dead-end (sink) となるページ(状態 2)からは、ランダムなページに遷移するように修正する
- テレポートの効果を入れる
- べき乗法によるイテレーションを行う