データモデリング Web ページの検索とランキング

18
デデデデデデデデ Web デデデデデデデデデデデデ Google, Yahoo デデデデデデデデデデデ

description

データモデリング Web ページの検索とランキング. Google, Yahoo はこんなことをしている. 検索の精度を示す指標. 全文書内の 適合文書の数 (本当の解集合). 検索された 文書の数. 適合率 (Precision) 検索結果内の正解文書数 検索された文書の数 再現率 (Recall) 検索結果内の正解文書数 全文書内の適合文書の数 F 値 F =. P =. 2. 1 P. 1 R. +. R. P. R =. 全文書. 検索結果内の 正解文書数. 条件が厳しくなると P が上がり R が下がる - PowerPoint PPT Presentation

Transcript of データモデリング Web ページの検索とランキング

Page 1: データモデリング Web ページの検索とランキング

データモデリング

Web ページの検索とランキング

Google, Yahoo はこんなことをしている

Page 2: データモデリング Web ページの検索とランキング

検索の精度を示す指標適合率 (Precision)

検索結果内の正解文書数検索された文書の数

再現率 (Recall) 検索結果内の正解文書数全文書内の適合文書の数

F 値F = 1

R1P

+

2検索結果内の正解文書数

検索された文書の数

全文書内の適合文書の数

(本当の解集合)

全文書

条件が厳しくなると P が上がり R が下がる

条件が緩くなると P が下がり R が上がる

R P

P =

R =

Page 3: データモデリング Web ページの検索とランキング

キーワードらしさ  tf-idf• 文章中の特徴的な単語(キーワード)を抽出する

ためのアルゴリズム• 文書の集合 { D1, D2, …., Dn} 内の文書 Di を単語の

集合 { W1, W2, …, Wm} とみる• 個々の単語の評価

– tf ( Term Frequency )は単語の頻度• 繰り返される 単語は評価が高い• 文書 Dk での Wi の出現数 / Dk の単語数

– Idf(Inverse Document Frequency)• Wi は,特定の文書 Di にしか出現しない なら、評価が高い。

逆に Wi は,すべての文書に出現するなら、その 評価は低い• 文書の集合 { D1, D2, …., Dn} のなかで Wi が現れる比の逆数• そのままでは大きすぎるので log をとる

• 単語の評価 = 頻度・ log ( 総文書数 / 出現文書数 )

Page 4: データモデリング Web ページの検索とランキング

クローリング (Crawling)• リンクの自動航行

– クローラと呼ばれるプログラムが、インターネット上の Web ペー ジのリンクをたどりながら情報を収集

– クローラは スパイダ(蜘蛛) とも呼ばれる• クローラが収集するもの

– 各ページに含まれる各単語の tf-idf 値 を計算– ページごとに文書ベクトル化  文書ベクトル Dk

Dk = (W1 の tf-idf 値 , W2 の tf-idf 値 , …, Wn の tf-idf 値 )– 各ページのリンク先を記録( PageRank で利用)

• 一度、訪問したサイトはそこからのリンクを辿らない

• クローリングは 定期的 に実施される

Page 5: データモデリング Web ページの検索とランキング

空間ベクトル法ページの文書ベクトル Dk と問合せのベクトル Q の類似度で検索を実施

Dk = (W1 の tf-idf, W2 の tf-idf, …, Wn の tf-idf)

Q = (W1 の tf-idf, W2 の tf-idf, …, Wn の tf-idf)

2 つのベクトルのコサイン類似度  似ているときに1、逆方向の時に -1

•文書「空間ベクトル法」–類似度は 0.7, Web は 0.2, 検索は 1.4

•問合せ(類似度 Web 検索)–類似度 1, Web 1, 検索 1

•類似度が高いものを選択

類似度

Web

検索

文書

問合せ

Page 6: データモデリング Web ページの検索とランキング

PageRank Algorithm

• 多くの検索結果を順位づけて並べたい• Google 創始者の Larry Page と Sergey Brin が

米スタンフォード大学大学院在籍中に開発• 論文の評価にヒントを得て考え出された• PageRank とは– 「多くの良質なページからリンクされている

ページは、 やはり良質なページである」 という再帰的な関係をもとに、すべての Web ページの重要度を判定したもの

– PageRank 自体はユーザが検索式に与えた語句とはまったく無関係な、 すでに定まった量

Page 7: データモデリング Web ページの検索とランキング

Google の紹介ページより• ページAからページBへのリンクをページ A による

ページ B への支持投票と みなし、 Google はこの投票数によりそのページの重要性を判断します。

• しかし Google は単に票数、つまり リンク数を見るだけではなく、票を投じた ページについても分析します。「重要度」 の高いページによって投じられた票はより高く評価されて、それを受け取ったページ を「重要なもの」 にしていくのです。

• PageRank は ページの重要度を示す総合的な指標であり、各検索に影響 されるものではありません

Page 8: データモデリング Web ページの検索とランキング

PageRank の意味の図示

• あるページの PageRank を、そのページに存在する発リンク数で 割った数が、リンク先のページの PageRank に加算される

Page 9: データモデリング Web ページの検索とランキング

数式を使って表現• すべての Web ページの集合を V とし,それら

の間のリンクの集合を E とすると Web 空間はG = ( V , E )

 で表現できる• ページの総数を n とし,ページ i の PageRank

スコアを P(i) , ページ j からの外向けリン クの数を Oj とすると

ただし、 (j i) はページ j からページ i へのリンク

P(i) = Σ P(j) Oj (j i) ∈ E

(式1)

Page 10: データモデリング Web ページの検索とランキング

ベクトルと行列で表現• PageRank のスコアを値とする n 次元ベクトルを P, ページ間のリンクを表現する行列を A とすると、

  先の式は

  と表される

P =

P(1)P(2) :P(n)

Ai j =Oi

1(i j) ∈ E の場合

ページ i から j にリンクがあればリンク元ページ i の外向きリンク数の逆数

0 それ以外

P = AT P

(式 2 )

(式 3 )

(式 4 )

Page 11: データモデリング Web ページの検索とランキング

どうして A の転置行列  AT

なの?さきの ( 式 1) と A の定義 ( 式 3) をよく見比べると,リンクの出るペー

ジと入るページで i と j が入れ替わっている.

•ページ i ( 1≦ i ≦n )からページ j にリンクがある場合に,ページ j  のページランク P(j) は

P(j) = A11 P(1) + A21 P(2) +... +An1P(n) = (1/o1) P(1) + (1/o2) P(2) +... + (1/on) P(n)

となる. A の2つある添字のうち,さきにある添字が増える式になっている.ページランクの計算を,通常の行列とベクトルの積で表現するには

P(i) = A11 P(1) + A12 P(2) +... +A1nP(n)

となって, A の2つある添字のうち,後にある添字が増える式になって欲しい.どうすればよいか?

i と j をひっくり返せば良い.

つまり 転置した行列を用いれば良い.

Page 12: データモデリング Web ページの検索とランキング

図による例示

0 1/5 1/5 1/5 1/5 0 1/5 1 0 0 0 0 0 0 1/2 1/2 0 0 0 0 0 0 1/3 1/3 0 1/3 0 0 1/4 0 1/4 1/4 0 1/4 0 1/2 0 0 0 1/2 0 0 0 0 0 0 1 0 0

A =

この図を表現する行列 A は

A21 だから , ページ 2 から 1 へリンクがあるかどうか.

Page 13: データモデリング Web ページの検索とランキング

各ページの PageRank は不変な値• 不変なベクトル P は A をかけても P のまま

• これは、行列とベクトルの固有値問題

P ≠ 0 が存在するためには

これは λ の n 次方程式で、 λ の実数解は高々 n 個

• この場合 P は固有値 λ = 1 に対応する固有ベクトル• 固有値 λ = 1 の存在には特定条件の成立が必要• 成立すれば 、 n 元連立方程式 P = AT P より、べき

乗法で P も計算可能

P = AT P

λ P = M P ( M – λ E) P = 0

| M– λ E | = 0

Page 14: データモデリング Web ページの検索とランキング

Page と Brin はマルコフモデルに着目

• ユーザがリンクを無作為にたどるとすると、ページ遷移はマルコフ遷移モデル

• 次の条件が満たされると、固有値 λ = 1 が存在– A がマルコフ推移の遷移確率行列である

• 各行の値を総和すると 1• 外部にリンクを持たないページがない

– グラフが強連結である• どのページからも、どのページへも辿り着ける

– グラフが非周期的である• あるページからそこに戻るパスの長さが k (>1) の整数倍で

あれば周期的、そうでなければ非周期的 ( すなわち k = 1)

• このような A が見つかるということは、ユーザがリンクをクリックし続けると、ある特定のページに行き着く確率を計算できることを意味する

Page 15: データモデリング Web ページの検索とランキング

Page と Brin のアイデア遷移確率行列を修正①外部リンクが無いページからは、各ページに同じ確率で遷移

– このページに相当する A の行はすべて 1/n

②ユーザは確率 d でリンクを辿る( 1-d で新ページを検索)– 各ページからすべてのページへのリンク追加(確率は 1- d )

要素がすべて 1 のベクトルが e のとき、遷移確率は

Page と Brin の論文では d = 0.85(1 – d) e + d ATp = (1– d) + d p

11:1

A11 A21 ・・:1/n 1/n ・・:

Page 16: データモデリング Web ページの検索とランキング

[補助 ] Page と Brin は考えた!

• ①について,外部にリンクを持たないページからは n個あるページのどれにでも同じ確率( 1/n )で移動する.(これで A がマルコフ推移の遷移確率行列になった)

• ②について,あるページから出ているリンクをたどる確率は d で,リンクを辿らず無作為に新しいページに移る確率は (1-d) である.(これで,どのページへも辿り着けるようになった.また周期kが1となったので、周期グラフでもなくなった)

• 式の中で, (1-d)e  の項はリンクを辿らず無作為に新しいページに移行した時を表し, dATp  の項は現在のページからのリンクを辿った時を表す.

Page 17: データモデリング Web ページの検索とランキング

すべてのページの PageRank を計算

• 不変になるまで遷移確率行列を繰り返し適用

3 .22億個のリンクがある場合、 52回の繰り返しで収束

P0 = e / nk = 1do { Pk = (1 – d ) e + d AT Pk-1

k = k + 1} while( | Pk – Pk-1 | < ε )return Pk

Page 18: データモデリング Web ページの検索とランキング

検索エンジンの概要

• クローリングしてインデックスと 行列 A を作っておく。インデックスは、ページごとの文書ベクトル Dk

• Dk = (W1 の tf-idf 値 , W2 の tf-idf 値 , …, Wn の tf-idf 値 )

• PageRank  を計算しておく• ユーザが指定した検索式とインデックスか

ら、類似度を使って検索結果の集合を作成• 検索結果の集合の要素を PageRank で整列