検索エンジンの仕組み...2001.4 @niftyと提携 (web巡回)ロボット...

34
検索エンジンの仕組み

Upload: others

Post on 20-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

検索エンジンの仕組み

Page 2: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

検索結果の表示順位

「Googleの人気の秘密 (http://www.google.co.jp/intl/ja/why_use.html)」 • PageRankについて

PageRankは、ウェブの膨大なリンク構造を用いて、その特性を生かします。ページAからページBへのリンクをページAによるページBへの支持投票とみなし、Googleはこの投票数によりそのページの重要性を判断します。しかしGoogleは単に票数、つまりリンク数を見るだけではなく、票を投じたページについても分析します。「重要度」 の高いページによって投じられた票はより高く評価されて、それを受け取ったページ を「重要なもの」にしていくのです。 こうした分析によって高評価を得た重要なページには高いPageRank(ページ順位)が与えられ、検索結果内の順位も高くなります。PageRankは Googleにおけるページの重要度を示す総合的な指標であり、各検索に影響されるものではありません。むしろ、PageRankは複雑なアルゴリズムにしたがったリンク構造の分析にもとづく、各ウェブページそのものの特性です。 もちろん、重要度が高いページでも検索語句に関連がなければ意味がありません。 そのためにGoogleは洗練されたテキストマッチ技術を使って、検索に対し重要でなおかつ、的確なページを探し出します。

Page 3: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

PageRank

多くの良質なページからリンクされている

ページは、やはり良質なページである

Page 4: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

B

A 1.被リンク数(単純人気度)

1つのWebページからリンクされているA

よりも、2つのWebページからリンクされて

いるBの方がPageRank値が高い

SPAMページ、内輪推薦に対応できない

D

C

B

A

2.リンク元の被リンク数

1つのWebページからリンクされている

Cより2つのWebページからリンクされて

いるDの方が信用できる。よって、Cから

リンクされているAよりも、Dからリンクされ

ているBの方がPageRank値は高い

B

A 3.リンク元ページでのリンク数

Aのリンク元はリンクが2つあるが、Bのリンク元は

リンクが一つであり、より厳選された推薦であるので、

AよりBの方がPageRank値は高い

Page 5: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

PageRank値の計算方法

1.リンク構造を隣接行列で表現する。

aij =

1 if (ページ i からページ j へのリンクが「ある」場合)

0 if (ページ i からページ j へのリンクが「ない」場合)

2. PageRank は「どれだけリンクしているか」ではなく「どれだけリンクされているか」を重視しているので、 転置行列を作成し(行と列を入れ替えること)、さらにそれぞれの列(column)ベクトルの総和が 1 (全確率)になるようにそれぞれのリンク数(すなわち、非零要素数)で割る(推移確率行列)。

3.推移確率行列の最大固有値に属する固有ベクトルを求め、

これがPageRank値になる。

Page 6: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

PageRankの計算例題

左図グラフのようなWebがあるとする.

問1 どのWebサイトが評判が高いか

を直感で示せ.

問2 下記の手順でPageRank値を

求め,問1と比較せよ

1.隣接行列

2.転置行列

3.推移確率行列

4.方程式を立てる

5.固有値,

固有ベクトル,

正規化(=ページランク)

Page 7: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

1.隣接行列

X =

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

2.転置行列

X

t=

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

Aがどのノードと連結しているか? Aがどのノードから連結されているか

3.推移確率行列

M =

0 0 0 0 1

1/3 0 1/2 0 0

1/3 1/2 0 1/2 0

1/3 0 0 0 0

0 1/2 1/2 1/2 0

Aノードから他ノードへ推移する

確率を求めるために,列単位で

正規化を行う

PageRankの計算過程(1)

Page 8: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

4.推移確率行列の最大固有ベクトルをRとすると

MP=λR

PageRankの計算過程(2)

0 0 0 0 1

1/3 0 1/2 0 0

1/3 1/2 0 1/2 0

1/3 0 0 0 0

0 1/2 1/2 1/2 0

rA

rB

rC

rD

rE

= λ

rA

rB

rC

rD

rE

グラフが強連結(グラフ上の任意

の2点間に有向路が存在する)

の時は,λ=1となるので,

MP=Rを解けばよい rA

rB

rC

rD

rE

1

7/9

8/9

1/3

1

=

5.Rを正規化する

(要素の総和(=4)で各要素を割る)

R= (1/4, 7/36, 2/9, 1/12, 1/4)

Page 9: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

PageRankの計算例題1

(各自やってみること)

Page 10: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

検索エンジン

のシステム構成

Page 11: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

キーワード検索と全文検索

• キーワード検索: Webページに登録されたキーワードが検索対象。 ○検索が高速。 ○検索結果にゴミが少ない。 ×キーワード登録が手間。 ×検索漏れが多い(デジカメ≠デジタルカメラ)

• 全文検索: Webページ内のすべての文字が検索対象。 ほとんどのサーチエンジンが採用 逐次検索方式:Webページの先頭から順番に文字列照合

インデックス方式:事前にWebページを分析し索引情報(語句、Webページ)を作成して利用する

Page 12: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

インデックス検索方式に基づく

全文検索(フルテキストサーチ)

データ収集部

(ロボット,スパイダー,クローラ)

文書フィルタ部

インデクサ部

検索サーバー部

フロントエンド部、ユーザ

検索語句 結果表示

Webページ群

文字コードの統一,タグの除去

インデックス(索引)の作成 イン

デックス

ファイル

検索語句とインデックス

ファイルとの照合

Webデータを収集

Page 13: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

• 19inchラック(210cmH x 60cmW x 75cmD)に1UのPC80台を設置。(Rackable Systemsの技術:ラックの全面と背面の両方に奥行半分のPCを設置)

• 2 Fast Ethernet Switch / 筐体

• 4筐体をGigaEtherにて接続し1クラスタを構成。

空調

2x44port Fast

Ethernet Switch

PC

ラック前面に20台裏面に20台

PC

ラック前面に20台裏面に20台

空調

2x44port Fast

Ethernet Switch

PC

ラック前面に20台裏面に20台

PC

ラック前面に20台裏面に20台

12000台(2004?)のサーチエンジンサーバー

80CPU×150ラック

Page 14: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

サーバー台数と収集されたWebページ数の推移

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000A

ug-9

8

Feb

-99

Aug

-99

Feb

-00

Aug

-00

Feb

-01

Aug

-01

Feb

-02

2001.3 8000台

2000.12 Biglobe      と提携

1998.8 30台

1999.6 Netscapeと提携

2000.6 Yahoo!と提携

平均33台/日で増加

2億

4億

6億

8億

10億

12億

14億収集Webペー

ジ数

PC台数

16億

18億

20億

2001.4 @Niftyと提携

Page 15: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

(Web巡回)ロボット

(クローラー,スパイダー)の仕組み

①手作業により収集すべきWebページ(URL)を登録(URL: Uniform Resource Locator→インターネット上に存在する情報資源(文書や画像など)の場所を指し示す記述方式)

②登録されているURLにアクセスしWebページを収集

③そのWebページに記載されているリンクを辿ってWebページを収集

④リンクを辿る深さを制限してデータ収集

1サーバーに100以上のロボット

100x12000=120万以上のロボットが巡回

Page 16: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

全文検索からのインデックス生成の困難さ

英語:区切り記号として空白がある

→インデックス生成容易

日本語:区切り記号としての空白がない

漢字仮名交じり文

→インデックス生成困難

さとうとしお→漢字変換すると

さとう としお(佐藤敏夫)

さとう と しお(砂糖と塩)

Page 17: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

日本語形態素解析

形態素(意味を持つ最小の文字列)

大きな地震が来ないことを祈ります。

基本的アルゴリズム

①入力文の先頭文字列と最長一致する辞書項目=先頭候補

②先頭候補に続きく部分と最長一致辞書項目=2番目候補

③先頭候補と2番目候補との接続可否を検査。接続可なら3番目候補へ

(×あります・です,○ありません・でしょうか)

④接続不可の時、2番目候補をより短い別の候補に置換して再度接続検査

⑤2番目候補がなくなれば、先頭候補に後戻りしてより短い候補に置換して同様の処理を続ける

○索引ファイルサイズが小さく検索時間は速い

○辞書で照合しており,検索ノイズが少ない

×事前に辞書の構築が必要.

大きな 地震 が 来 な い こと を 祈 り ます 。

連体詞 名詞 格助詞 動詞語幹 助動詞 活用語尾 形式名詞 格助詞

動詞語幹 活用語尾 助動詞 句読点

Page 18: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

代表的な日本語形態素解析ツール

茶筌システム

• 奈良先端科学技術大学院大学情報科学研究科

自然言語処理学講座(松本研究室) で開発

• http://chasen.naist.jp/hiki/ChaSen/から

自由にダウンロードして使用可能

• 実行してみましょう!

「大きな地震が来ないことを祈ります。」を

Chasen に入力すると?

Page 19: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

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グラム?で検索される)

Page 20: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

検索エンジンによる

Webページの評価方法の変化

Page 21: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

On-page factors + Off-page factors

• Webページの評価(検索順位をあげる)

→ On-page factors(ページ内要因)

+ Off-page factors(ページ外要因)

• ページ内要因:Webページ内の情報(キーワード出現回数,キーワードの配置,<title>タグ, <h1>-<h6>タグ,

サイト内リンクなど)を評価

• ページ外要因:リンク分析(数,質,関連性,時間,信頼性)+アンカーテキストによりページを評価

Page 22: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

On-page factors (テキスト要素の最適化1)

テキストの論理構造,コンテンツを明確化

→クローラに好まれるWebサイトの制作

→本来のHTMLの利用

①スタイルシート(CSS)やJavaScriptは外部ファイルにする (論理構造と視覚情報は分離する)

②キーワード抽出箇所:タイトル,見出し,第1段落,最終段落,各段落の最初と最後(<meta>タグは,90年代,評価対象であったが,スパムに多用されたため,現在は無視される)

③ <title>タグ:ページ遷移に沿ってキーワードを具体化 (海外旅行→欧州旅行→パリ3日間). 全ページに同じキーワードは駄目(共通キーワードは可) 偏ったキーワード(ecサイトで,商品名orショップ名だけを キーワードとする)は駄目. キーワードの個数は1-2個(ネット利用者調査より) 不必要に類似キーワードを繰り返さない→スパム行為

Page 23: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

テキスト要素の最適化2

④見出しタグ<hx>:文章論理構造

(h1:標題,h2:部,h3:章,h4:節,h5:項,h6:小見出し).

クローラは<h1>重視→<h1>を多用するとスパムと判断される

⑤画像タグ<img>:クローラは画像理解できないので,

alt属性に画像を説明する適切なキーワードを記載

(例)グーグルバナーの表示

<a href="http://www.google.co.jp/">

<img src = http://www.google.com/logos/Logo_40wht.gif

border="0" alt="Google" align="middle" width="128" height="53">

</a>

Page 24: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

Off-page factors (リンクの評価1:重要度)

• リンク分析:数,質,関連性,信頼性,時間の総合評価

(ページランクアルゴリズムはリンク分析の一部にしかすぎない)

• ページランクアルゴリズム:被リンクの数と質の評価

+アンカーテキスト(10年前. miserable failure)

重要度に課題:Web全体からみた重要度であって,

特定話題(検索クエリー)からみた重要度ではない.

信頼度に課題:スパムに弱い.

• 関連性:relevance(A,B)>relevance(A,C)

(Teoma(Subject Specific Popularity), WiseNut(Context Sensitive

Link Analysis) 等のGoogleキラーと呼ばれた新興検索エンジンが提唱

(その後衰退).Googleは関連性を後日導入.

http://internet.watch.impress.co.jp/www/article/2002/0403/teoma.htm

※新重要度=数×質×関連性

Cコンビニ

Bホテル A旅行

Page 25: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

リンクの評価2:信頼性

• 重要度だけでは,大量のWebサイトを巧妙に開設し,そこからリンクを張りページランクをあげる事は依然可能.

• 信頼性:友達の友達は信用.その友達の友達は?その友達の友達は??という考え方.審査により予め信頼できるWeb

サイト群を決め,そこから信頼値を割り当てる.

信頼度

• 時間:開設期間が長い程,信頼性は高い.

急激なリンク数の増加は不自然であり信頼性を低くする.

優良? スパム?

新規? マニア?

Yahoo研究者のTrustRank:

http://www.vldb.org/conf/2004/RS15P3.PDF

Googleは2005年にTrustRankを商標化したが、

現在は使用中止?(別のアルゴリズム採用?)

Page 26: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

検索連動型広告

Page 27: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

Web上の広告

• バナー広告 元来「垂れ幕」の意

帯状の広告画像が宣伝用の垂れ幕

を連想

• キーワード広告 検索キーワードに関連す

るWebサイトを提示

クリック回数で広告効果が計れる

Page 28: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

キーワード広告(1)

• 1999年Altavistaによって試みられる

• 広告枠をオークションで売り、クリックされた分だけ広告料を課金

• ユーザのニーズに合った広告が期待できる

• 現在は数十億ドル規模のビジネスに

Page 29: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

キーワード広告(2)

• オーバーチュア スポンサードサーチ http://www.jp.overture.com/

• Googleアドワーズhttps://adwords.google.co.jp/select/

• キーワードへの入札(クリック単価) – 「W杯」¥51~¥9 「ワールドカップ」¥71~¥9

– 「就職活動」¥425~¥35

– 「キャッシング」¥2146~¥35 「融資」¥1282~¥35

– 「慶応」¥32~¥9

Page 30: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

キーワード広告(3)

• オーバーチュア:入札金額で表示順位が決まる

– 順位付け:クリック単価上限の高い順

– 実際のクリック単価:一つ下位のクリック単価+1円

• Google:広告のクリック率も加味した表示順位

– 順位付け:クリック単価上限×クリック率の高い順

– 実際のクリック単価:一つ下位のクリック単価上限×クリック率÷自広告のクリック率+1円

Page 31: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

GOOGLE アドワーズ広告1 • ビジネスモデル:他のサイトが検索サイトから総合サイトにモデルチェンジする中、GOOGLEは検索一筋。

売上高の99%=インターネット広告

• バナー広告→検索連動型広告=アドワーズ広告(売上高50%)+アドセンス広告(売上高49%)

アドワーズ(Adwords:Ad=広告+words=キーワード)広告 検索キーワードに関連する広告を検索結果表示ページの上側と右側に テキスト表示(上1枠+右8枠=最大9枠。それ以降の広告は次ページ以降).

(ユーザへの配慮) ・テキスト表示:検索速度が遅くなってはいけない ・広告表示場所は上側と右側に定め、検索結果閲覧を邪魔しない ・ポップアップ広告はユーザが不快になる恐れがあるので禁止。

・クリック単価(CPC: cost per click)×クリック率(CTR: click through rate) で表示順位決定。CPCだけで決める広告主主導になりすぎるため。 ・さらにCTRが0.5%を下回ると広告が抑制され,そのまま改善しない場合はステータスが「無効」になり取り下げられてしまいます。

(広告主への配慮)

クリック課金型広告(PPC (pay per click)広告) →クリックされた場合のみ広告料金が発生 クリック単価(7円~1万円)を設定しクリック数に応じて支払う 1日当たりの上限金額設定可能。

Page 32: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

CPCは常に変動

クリック単価(CPC)=

次ランクの(CPC上限×CTR)÷自分のCTR + 1

→次ランクと同等になるためのCPC+1円

→次ランクに勝つための最低価格

負けた時のCPCは最低価格7円

(例題)

ワイン会社 A社 CPC上限 200円

B社 CPC上限 100円

問1:(A社CTR,B社CTR)=(3%,3%)の時のA社とB社のCPCは?

問2:(3%,5%)の時のA社とB社のCPCは?

問3:(3%,8%)の時のA社とB社のCPCは?

GOOGLE アドワーズ広告2

Page 33: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

例題回答 表示順位:評価値=クリック単価×クリック率

問1 (A社CTR,B社CTR)=(3%,3%)

各社最大評価値比較 A社 200 X 3% > B社 100 X 3% A社が1位,B社が2位

1位 A社 (100x3%[B社のCTR])÷3%[A社のCTR]+1=100+1=101円

2位 B社 7円(最低クリック単価)

問2(A社CTR,B社CTR)=(3%,5%)

各社最大評価値比較 A社 200 X 3% > B社 100 X 5% A社が1位,B社が2位

1位 A社 (100x5%[B社のCTR])÷3%[A社のCTR]+1=167+1=168円

2位 B社 7円(最低クリック単価)

問3(A社CTR,B社CTR)=(3%,8%)

各社最大評価値比較 A社 200 X 3% < B社 100 X 8% B社が1位,A社が2位

1位 B社 (200x3%[A社のCTR])÷8%[B社のCTR]+1=75+1=76円

2位 A社 7円(最低クリック単価)

Page 34: 検索エンジンの仕組み...2001.4 @Niftyと提携 (Web巡回)ロボット (クローラー,スパイダー)の仕組み ①手作業により収集すべきWebページ(URL)を登録

アドワーズ広告 練習問題1

CPC(円) CTR(%)

A社 300 2.0

B社 210 5.0

C社 200 2.0

D社 200 4.0

E社 190 4.0

1.掲載順位,各社のCPCを求めよ.

2.A社が一位になるには,CPCをいくらに設定すべきか?