pdf6

サーチ(検索)エンジン
検索の仕組み
検索結果の表示順位
「Googleの人気の秘密 (http://www.google.co.jp/intl/ja/why_use.html)」
• PageRankについて
PageRankは、ウェブの膨大なリンク構造を用いて、その特性を生かしま
す。ページAからページBへのリンクをページAによるページBへの支持
投票とみなし、Googleはこの投票数によりそのページの重要性を判断し
ます。しかしGoogleは単に票数、つまりリンク数を見るだけではなく、票
を投じたページについても分析します。「重要度」 の高いページによって
投じられた票はより高く評価されて、それを受け取ったページ を「重要な
もの」にしていくのです。
こうした分析によって高評価を得た重要なページには高いPageRank
(ページ順位)が与えられ、検索結果内の順位も高くなります。
PageRankは Googleにおけるページの重要度を示す総合的な指標であ
り、各検索に影響されるものではありません。むしろ、PageRankは複雑
なアルゴリズムにしたがったリンク構造の分析にもとづく、各ウェブページ
そのものの特性です。 もちろん、重要度が高いページでも検索語句に関
連がなければ意味がありません。 そのためにGoogleは洗練されたテキ
ストマッチ技術を使って、検索に対し重要でなおかつ、的確なページを探
し出します。
PageRank
多くの良質なページからリンクされている
ページは、やはり良質なページである
A
B
A
B
1.被リンク数(単純人気度)
1つのWebページからリンクされているA
よりも、2つのWebページからリンクされて
いるBの方がPageRank値が高い
SPAMページ、内輪推薦に対応できない
C
A
D
B
2.リンク元の被リンク数
1つのWebページからリンクされている
Cより2つのWebページからリンクされて
いるDの方が信用できる。よって、Cから
リンクされているAよりも、Dからリンクされ
ているBの方がPageRank値は高い
3.リンク元ページでのリンク数
Aのリンク元はリンクが2つあるが、Bのリンク元は
リンクが一つであり、より厳選された推薦であるので、
AよりBの方がPageRank値は高い
PageRank値の計算方法
1.リンク構造を隣接行列で表現する。
aij =
1 if (ページ i からページ j へのリンクが「ある」場合)
0 if (ページ i からページ j へのリンクが「ない」場合)
2. PageRank は「どれだけリンクしているか」ではなく「どれだ
けリンクされているか」を重視しているので、 転置行列を作
成し(行と列を入れ替えること)、さらにそれぞれの列
(column)ベクトルの総和が 1 (全確率)になるようにそれぞれ
のリンク数(すなわち、非零要素数)で割る(推移確率行列)。
3.推移確率行列の最大固有値に属する固有ベクトルを求め、
これがPageRank値になる。
PageRankの計算例題
左図グラフのようなWebがあるとする.
問1 どのWebサイトが評判が高いか
を直感で示せ.
問2 下記の手順でPageRank値を
求め,問1と比較せよ
1.隣接行列
2.転置行列
3.推移確率行列
4.方程式を立てる
5.固有値,
固有ベクトル,
正規化(=ページランク)
PageRankの計算過程(1)
2.転置行列
1.隣接行列
X=
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
t
X =
Aがどのノードと連結しているか?
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
Aがどのノードから連結されているか
3.推移確率行列
M=
0
1/3
1/3
1/3
0
0
0
1/2
0
1/2
0
1/2
0
0
1/2
0
0
1/2
0
1/2
1
0
0
0
0
Aノードから他ノードへ推移する
確率を求めるために,列単位で
正規化を行う
PageRankの計算過程(2)
4.推移確率行列の最大固有ベクトルをRとすると
MP=λR
0
1/3
1/3
1/3
0
0
0
1/2
0
1/2
0
1/2
0
0
1/2
0
0
1/2
0
1/2
1
0
0
0
0
rA
rB
rC
rD
rE
5.Rを正規化する
(要素の総和(=4)で各要素を割る)
R= (1/4, 7/36, 2/9, 1/12, 1/4)
= λ
rA
rB
rC
rD
rE
グラフが強連結(グラフ上の任意
の2点間に有向路が存在する)
の時は,λ=1となるので,
MP=Rを解けばよい
rA
rB
rC
rD
rE
=
1
7/9
8/9
1/3
1
PageRankの計算例題1
(各自やってみること)
システム構成
キーワード検索と全文検索
• キーワード検索:
Webページに登録されたキーワードが検索対象。
○検索が高速。
○検索結果にゴミが少ない。
×キーワード登録が手間。
×検索漏れが多い(デジカメ≠デジタルカメラ)
• 全文検索:
Webページ内のすべての文字が検索対象。
ほとんどのサーチエンジンが採用
逐次検索方式:Webページの先頭から順番に文字列照合
インデックス方式:事前にWebページを分析し索引情報(語
句、Webページ)を作成して利用する
インデックス検索方式に基づく
全文検索(フルテキストサーチ)
Webページ群
データ収集部
(ロボット,スパイダー,クローラ)
文字コードの統一,タグの除去
文書フィルタ部
イン
デックス
ファイル
Webデータを収集
インデクサ部
インデックス(索引)の作成
検索サーバー部
検索語句とインデックス
ファイルとの照合
検索語句
結果表示
フロントエンド部、ユーザ
12000台(2004?)のサーチエンジンサーバー
80CPU×150ラック
空調
PC
ラック前面に20台
裏面に20台
2x44port Fast
Ethernet Switch
PC
ラック前面に20台
裏面に20台
• 19inchラック(210cmH
x 60cmW x 75cmD)に
1UのPC80台を設置。
(Rackable Systemsの
技術:ラックの全面と背
面の両方に奥行半分の
PCを設置)
• 2 Fast Ethernet Switch
/ 筐体
• 4筐体をGigaEtherにて
接続し1クラスタを構成。
サーバー台数と収集されたWebページ数の推移
20億
10000
2001.4 @Niftyと提携
9000
18億
2000.12 Biglobe
と提携
8000
16億
14億
7000
2000.6 Yahoo!と提携
P 6000
C
5000
台
数
4000
2001.3 8000台
12億
10億
平均33台/日で増加
8億
1998.8 30台
3000
6億
4億
2000
1000
2億
1999.6 Netscapeと提携
Feb-02
Aug-01
Feb-01
Aug-00
Feb-00
Aug-99
Feb-99
Aug-98
0
収
集
W
e
b
ペ
ー
ジ
数
(Web巡回)ロボット
(クローラー,スパイダー)の仕組み
①手作業により収集すべきWebページ(URL)を登録
(URL: Uniform Resource Locator→インターネット上に存在
する情報資源(文書や画像など)の場所を指し示す記述方式)
②登録されているURLにアクセスしWebページを収集
③そのWebページに記載されているリンクを辿って
Webページを収集
④リンクを辿る深さを制限してデータ収集
1サーバーに100以上のロボット
100x12000=120万以上のロボットが巡回
ロボットの巡回頻度
• 情報の鮮度⇒サーチエンジンの生命線
• 更新頻度に応じて巡回間隔を変える
日々更新されるWebサイト:ニュースメディアなど少数
→「いかに効率よく新鮮な情報のみ収集していくか」
→頻繁に更新され,かつユーザに有用なWebページを
選別し,そのサイトの巡回頻度を上げる
5週目に巡回
WebサイトA:更新無し
WebサイトB:更新あり
更新間隔
WebサイトA→6週
WebサイトB→5週
全文検索からのインデックス生成の困難さ
英語:区切り記号として空白がある
→インデックス生成容易
日本語:区切り記号としての空白がない
漢字仮名交じり文
→インデックス生成困難
さとうとしお→漢字変換すると
さとう としお(佐藤敏夫)
さとう と しお(砂糖と塩)
日本語形態素解析
形態素(意味を持つ最小の文字列)
大きな地震が来ないことを祈ります。
大きな 地震 が 来 な い こと を 祈 り ます 。
連体詞 名詞 格助詞 動詞語幹 助動詞 活用語尾 形式名詞 格助詞
動詞語幹 活用語尾 助動詞 句読点
基本的アルゴリズム
①入力文の先頭文字列と最長一致する辞書項目=先頭候補
②先頭候補に続きく部分と最長一致辞書項目=2番目候補
③先頭候補と2番目候補との接続可否を検査。接続可なら3番目候補へ
(×あります・です,○ありません・でしょうか)
④接続不可の時、2番目候補をより短い別の候補に置換して再度接続検査
⑤2番目候補がなくなれば、先頭候補に後戻りしてより短い候補に置換して同様の処理を続ける
○索引ファイルサイズが小さく検索時間は速い
○辞書で照合しており,検索ノイズが少ない
×事前に辞書の構築が必要.
代表的な日本語形態素解析ツール
茶筌システム
• 奈良先端科学技術大学院大学情報科学研究科
自然言語処理学講座(松本研究室) で開発
• http://chasen.naist.jp/hiki/ChaSen/から
自由にダウンロードして使用可能
• 実行してみましょう!
「大きな地震が来ないことを祈ります。」を
Chasen に入力すると?
Nグラム方式
• Gram(グラム):ギリシャ語で[書かれたもの] Nグラム:N文字
先頭からN文字の文字列を1単位とし,1文字ずつずらしてN文字列を索
引とし,その出現位置情報ともに登録する方式
•
N=2として「文字列の検索処理」にNグラム方式を適用すると
「(1)文字」「(2)字列」「(3)列の」「(4)の検」
「(5)検索」「(6)索処」「(7)処理」「(8)理」と分解し,
インデックスファイルに登録する(数字は出現位置).
「検索」を入力すると→(5)で見つかる
「検索処理」を入力すると→「検索」と「処理」の両方が含まれ、
かつその出現位置が2ずれているもの→(5)と(7)でみつかる
○形態素解析では辞書が必要.Nグラムでは機械的に処理が可能
○検索漏れが少ない
×索引ファイルサイズが大きくなり,検索時間が遅くなる
×検索ノイズが多い(入社式は4月1日本社で行われた→2グラム?で検索される)