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

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

Upload: aglaia

Post on 06-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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 で整列