SlideShare a Scribd company logo
1 of 13
Download to read offline
2 Architecture of a Search Engine

        SUHARA YOSHIHIKO
         (id:sleepy_yoshi)
本章で学ぶこと
• 検索エンジンの構造
 – インデクシング処理に必要な要素
 – 検索処理に必要な要素


• 各構成要素について一言ずつ

• 検索エンジンに必要なイメージをつける




                       2
インデクシング処理


                文書データストア




   1 テキスト取得     3 インデクス構築


                            インデクス

          2 テキスト変換



                               3
検索処理


                      文書データストア




      4 ユーザ
                       5 ランキング
    インタラクション

                                 インデクス

               6 評価

  ログデータ
                                    4
1 テキストの取得
• クローラ (Crawler)
   – ウェブクローラ
      • ウェブ検索エンジン用.新鮮な情報を取得
   – 特別なページを重点的にクロールすることもある
      • バーティカル(トピック)検索用途

• フィード (Feeds)
   – RSSによって最新情報を取得する方法のひとつ

• 変換 (Conversion)
   – ファイル形式の変換
      • HTML, XML, PDF, WORD, EXCEL, ...
   – 文字コードの変換

• 文書データストア (Document data store)
   – 元文書やリンク情報等のメタデータを格納
   – RDBやkey-value storeが利用される
                                           5
2 テキスト変換
• パーサ (Parser)
  – テキストをトークン化
  – HTMLやXMLを解析

• ストップワードの除去 (Stopping)
  – the, of, to, forなどの機能語を除去
  – ストップワードリストを利用
  – 過剰な除去は精度低下につながる

• ステミング (Stemming)
  – 単語を語幹 (stem) にまとめる
    • 例)fish, fishes, fishing => “fish”
  – 過剰なステミングは精度低下につながる
  – 語形変化が著しい言語や,ない言語がある


                                          6
2 テキスト変換(2)
• リンク抽出と分析 (Link extraction and analysis)
  – パーサによって抽出されたリンク情報を解析することで文書の
    重要度,人気度などを計算
     • 例:PageRank, HITSなど
  – 同様にアンカーテキスト情報も検索に効果的

• 情報抽出 (Information extraction)
  – 構文解析などを用いた高度な情報抽出によって索引語を決定
     • 例:品詞付与,固有表現抽出

• 分類器 (Classifier)
  – 文書や文書内のコンテンツを分類
     • 例:スパム分類,文書内の広告部分の判別など
  – クラスタリングによって文書をグループ化


                                            7
3 インデクス構築
• 文書の統計値 (Document statistics)
   – 単語や文書に関する統計情報をあらかじめ計算し,lookup tableに格納

• 重み付け (Weighting)
   – 単語の重みをlookup tableに格納.重み付け方法はランキングモデルに
     よって異なる
      • 例:TF-IDFなど

• 転置 (inversion)
   – 入力された文書-単語情報を単語-文書情報に変換

• インデクス分散 (Index distribution)
   – 文書分散 (document distribution)
      • 並列にクエリ処理が可能
   – 単語分散 (term distribution)
   – レプリケーション


                                          8
4 ユーザインタラクション
• クエリ入力 (Query input)
  – 入力されたクエリをクエリ言語に変換
  – クエリ言語
     • ブーリアン検索: AND, OR, NOTなどの演算子
     • SQL: エンドユーザ向けではない

• クエリ変換 (Query transformation)
  – クエリログを利用した機能
     • スペルチェック
     • クエリサジェスション
     • クエリ拡張
  – 適合性フィードバック (relevance feedback)
     • ユーザが検索結果に対してフィードバック

• 結果の出力 (Result output)
  – スニペットの生成
  – 重要語,重要文の強調

                                      9
5 ランキング
• スコアリング (Scoring)
   – ランキングアルゴリズムによってスコアを付与
      • 例:TF-IDF, BM25,クエリ尤度モデルなど
   – 高速に計算される必要性

• パフォーマンス最適化 (Performance optimization)
   – レスポンスタイムの高速化とクエリスループットの向上
   – スコアの計算方法
      • 単語毎に計算 (term-at-a-time)
      • 文書毎に計算 (document-at-a-time)
   – top-kの高速な取得
      • 安全な最適化 (safe optimization):スコアを保証(通常計算と同様)
      • 安全でない最適化 (unsafe optimization):スコアが保証されない


• 分散処理 (Distribution)
   – クエリブローカ (query broker) によってランキング処理を分散
   – キャッシュ (chache)
      • クエリに対するランキング結果をメモリに保存



                                                     10
6 評価
• 検索ログ (Logging)
   – ログは検索エンジンの改善に価値のある情報源
   – クエリログ
      • スペルチェック,クエリキャッシュなどに活用
   – クリック履歴 (clickthrough log)
      • ランキングアルゴリズムの評価や訓練

• ランキングの評価 (Ranking analysis)
   – ログデータ,または明示的な適合性評価が必要
   – 様々な評価指標
      • 検索結果上位を強調するようなものが適切

• 性能評価 (Performance analysis)
   – レスポンスタイム,スループットなどを計測
   – 分散アプリケーションの場合,ネットワーク速度も測定
   – 実測の代わりにシミュレーションすることも


                                 11
実際どのように動くのか?
• 検索エンジンの基本構造を学んだ
• 次章以降で詳しく解説する
• 後でGalagoのソースコードを眺めてみよう




                           12
文献情報
• データベースの教科書
 – Elmastri and Navathe (2006):
   • Fundamentals of database systems (5th ed.)


• 古典的なウェブ検索エンジン構造について
 – Brin and Page (1998): 初期のGoogle
 – Callan et al. (1992): Inquery


• Luceneの構造について
 – Hatcher and Gospodnetic:
   • Lucene in Action                     第2版近日発売!

                                                  13

More Related Content

What's hot

ルーティングを使って シンプルなアプリケーション開発を
ルーティングを使ってシンプルなアプリケーション開発をルーティングを使ってシンプルなアプリケーション開発を
ルーティングを使って シンプルなアプリケーション開発をKousuke Ebihara
 
Force.com_Multitenancy_WP_101508_JP
Force.com_Multitenancy_WP_101508_JPForce.com_Multitenancy_WP_101508_JP
Force.com_Multitenancy_WP_101508_JPHiroshi Ono
 
もっと仕事で使うRuby
もっと仕事で使うRubyもっと仕事で使うRuby
もっと仕事で使うRubyKentaro Goto
 
12-E-3 カードゲームでプロマネ疑似体験
12-E-3 カードゲームでプロマネ疑似体験12-E-3 カードゲームでプロマネ疑似体験
12-E-3 カードゲームでプロマネ疑似体験Yasui Tsutomu
 
仕事で使うRuby
仕事で使うRuby仕事で使うRuby
仕事で使うRubyKentaro Goto
 
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Yusuke Kawasaki
 
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴opengroove
 
Kotatsu-Model in Openthology
Kotatsu-Model in OpenthologyKotatsu-Model in Openthology
Kotatsu-Model in OpenthologyKent Ishizawa
 
洋書(英語情報源)に見るDXの定義
洋書(英語情報源)に見るDXの定義洋書(英語情報源)に見るDXの定義
洋書(英語情報源)に見るDXの定義Tomohiko (TOMO) Hayashi
 
An untold story of the Mangamura controversy 2018
An untold story of the Mangamura controversy 2018An untold story of the Mangamura controversy 2018
An untold story of the Mangamura controversy 2018Tomohiko (TOMO) Hayashi
 
A lecture on e-book at Tokyo University of Science 20141008
A lecture on e-book at Tokyo University of Science 20141008 A lecture on e-book at Tokyo University of Science 20141008
A lecture on e-book at Tokyo University of Science 20141008 Tomohiko (TOMO) Hayashi
 
GIGAPOD OFFICEHARD
GIGAPOD OFFICEHARDGIGAPOD OFFICEHARD
GIGAPOD OFFICEHARDtripodworks
 
Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)kurikiyo
 
夜までラボ☆テレビ7月24日開催分
夜までラボ☆テレビ7月24日開催分夜までラボ☆テレビ7月24日開催分
夜までラボ☆テレビ7月24日開催分ikiikilab
 
Perlで圧縮
Perlで圧縮Perlで圧縮
Perlで圧縮Naoya Ito
 

What's hot (20)

PFI会社案内
PFI会社案内PFI会社案内
PFI会社案内
 
地域サイト運営にあたって
地域サイト運営にあたって地域サイト運営にあたって
地域サイト運営にあたって
 
ルーティングを使って シンプルなアプリケーション開発を
ルーティングを使ってシンプルなアプリケーション開発をルーティングを使ってシンプルなアプリケーション開発を
ルーティングを使って シンプルなアプリケーション開発を
 
Force.com_Multitenancy_WP_101508_JP
Force.com_Multitenancy_WP_101508_JPForce.com_Multitenancy_WP_101508_JP
Force.com_Multitenancy_WP_101508_JP
 
もっと仕事で使うRuby
もっと仕事で使うRubyもっと仕事で使うRuby
もっと仕事で使うRuby
 
12-E-3 カードゲームでプロマネ疑似体験
12-E-3 カードゲームでプロマネ疑似体験12-E-3 カードゲームでプロマネ疑似体験
12-E-3 カードゲームでプロマネ疑似体験
 
仕事で使うRuby
仕事で使うRuby仕事で使うRuby
仕事で使うRuby
 
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
 
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
 
Kotatsu-Model in Openthology
Kotatsu-Model in OpenthologyKotatsu-Model in Openthology
Kotatsu-Model in Openthology
 
洋書(英語情報源)に見るDXの定義
洋書(英語情報源)に見るDXの定義洋書(英語情報源)に見るDXの定義
洋書(英語情報源)に見るDXの定義
 
An untold story of the Mangamura controversy 2018
An untold story of the Mangamura controversy 2018An untold story of the Mangamura controversy 2018
An untold story of the Mangamura controversy 2018
 
A lecture on e-book at Tokyo University of Science 20141008
A lecture on e-book at Tokyo University of Science 20141008 A lecture on e-book at Tokyo University of Science 20141008
A lecture on e-book at Tokyo University of Science 20141008
 
EclipSky200712
EclipSky200712EclipSky200712
EclipSky200712
 
GIGAPOD OFFICEHARD
GIGAPOD OFFICEHARDGIGAPOD OFFICEHARD
GIGAPOD OFFICEHARD
 
Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)
 
夜までラボ☆テレビ7月24日開催分
夜までラボ☆テレビ7月24日開催分夜までラボ☆テレビ7月24日開催分
夜までラボ☆テレビ7月24日開催分
 
114th
114th114th
114th
 
090601-dotplot
090601-dotplot090601-dotplot
090601-dotplot
 
Perlで圧縮
Perlで圧縮Perlで圧縮
Perlで圧縮
 

Viewers also liked

Viewers also liked (9)

Antroido 2012-ies asorey
Antroido 2012-ies asoreyAntroido 2012-ies asorey
Antroido 2012-ies asorey
 
A menta
A mentaA menta
A menta
 
Early stage in concept development
Early stage in concept developmentEarly stage in concept development
Early stage in concept development
 
As rías galegas, ies asorey
As rías galegas, ies asoreyAs rías galegas, ies asorey
As rías galegas, ies asorey
 
Obradoiro química asorey-2011
Obradoiro química asorey-2011Obradoiro química asorey-2011
Obradoiro química asorey-2011
 
Nubes ies asorey
Nubes ies asoreyNubes ies asorey
Nubes ies asorey
 
CT Strategic Direction 2013
CT Strategic Direction 2013CT Strategic Direction 2013
CT Strategic Direction 2013
 
Using Web Map Services for Historical Maps Mash-Ups
Using Web Map Services for Historical Maps Mash-UpsUsing Web Map Services for Historical Maps Mash-Ups
Using Web Map Services for Historical Maps Mash-Ups
 
Update on the activities of the Europeana Network
Update on the activities of the Europeana NetworkUpdate on the activities of the Europeana Network
Update on the activities of the Europeana Network
 

More from sleepy_yoshi

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twittersleepy_yoshi
 
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking MeasuresKDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measuressleepy_yoshi
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじPRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじPRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじPRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじsleepy_yoshi
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelssleepy_yoshi
 
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendationsleepy_yoshi
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-sleepy_yoshi
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじsleepy_yoshi
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するsleepy_yoshi
 
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5sleepy_yoshi
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1sleepy_yoshi
 
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじPRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじsleepy_yoshi
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Ranksleepy_yoshi
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5sleepy_yoshi
 
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...sleepy_yoshi
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5sleepy_yoshi
 

More from sleepy_yoshi (20)

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
 
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking MeasuresKDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measures
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ
 
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじPRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじ
 
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじPRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじ
 
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじPRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじ
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
 
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじ
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじ
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじPRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Rank
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
 
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 

Search Engines Chapter 2 Summary

  • 1. 2 Architecture of a Search Engine SUHARA YOSHIHIKO (id:sleepy_yoshi)
  • 2. 本章で学ぶこと • 検索エンジンの構造 – インデクシング処理に必要な要素 – 検索処理に必要な要素 • 各構成要素について一言ずつ • 検索エンジンに必要なイメージをつける 2
  • 3. インデクシング処理 文書データストア 1 テキスト取得 3 インデクス構築 インデクス 2 テキスト変換 3
  • 4. 検索処理 文書データストア 4 ユーザ 5 ランキング インタラクション インデクス 6 評価 ログデータ 4
  • 5. 1 テキストの取得 • クローラ (Crawler) – ウェブクローラ • ウェブ検索エンジン用.新鮮な情報を取得 – 特別なページを重点的にクロールすることもある • バーティカル(トピック)検索用途 • フィード (Feeds) – RSSによって最新情報を取得する方法のひとつ • 変換 (Conversion) – ファイル形式の変換 • HTML, XML, PDF, WORD, EXCEL, ... – 文字コードの変換 • 文書データストア (Document data store) – 元文書やリンク情報等のメタデータを格納 – RDBやkey-value storeが利用される 5
  • 6. 2 テキスト変換 • パーサ (Parser) – テキストをトークン化 – HTMLやXMLを解析 • ストップワードの除去 (Stopping) – the, of, to, forなどの機能語を除去 – ストップワードリストを利用 – 過剰な除去は精度低下につながる • ステミング (Stemming) – 単語を語幹 (stem) にまとめる • 例)fish, fishes, fishing => “fish” – 過剰なステミングは精度低下につながる – 語形変化が著しい言語や,ない言語がある 6
  • 7. 2 テキスト変換(2) • リンク抽出と分析 (Link extraction and analysis) – パーサによって抽出されたリンク情報を解析することで文書の 重要度,人気度などを計算 • 例:PageRank, HITSなど – 同様にアンカーテキスト情報も検索に効果的 • 情報抽出 (Information extraction) – 構文解析などを用いた高度な情報抽出によって索引語を決定 • 例:品詞付与,固有表現抽出 • 分類器 (Classifier) – 文書や文書内のコンテンツを分類 • 例:スパム分類,文書内の広告部分の判別など – クラスタリングによって文書をグループ化 7
  • 8. 3 インデクス構築 • 文書の統計値 (Document statistics) – 単語や文書に関する統計情報をあらかじめ計算し,lookup tableに格納 • 重み付け (Weighting) – 単語の重みをlookup tableに格納.重み付け方法はランキングモデルに よって異なる • 例:TF-IDFなど • 転置 (inversion) – 入力された文書-単語情報を単語-文書情報に変換 • インデクス分散 (Index distribution) – 文書分散 (document distribution) • 並列にクエリ処理が可能 – 単語分散 (term distribution) – レプリケーション 8
  • 9. 4 ユーザインタラクション • クエリ入力 (Query input) – 入力されたクエリをクエリ言語に変換 – クエリ言語 • ブーリアン検索: AND, OR, NOTなどの演算子 • SQL: エンドユーザ向けではない • クエリ変換 (Query transformation) – クエリログを利用した機能 • スペルチェック • クエリサジェスション • クエリ拡張 – 適合性フィードバック (relevance feedback) • ユーザが検索結果に対してフィードバック • 結果の出力 (Result output) – スニペットの生成 – 重要語,重要文の強調 9
  • 10. 5 ランキング • スコアリング (Scoring) – ランキングアルゴリズムによってスコアを付与 • 例:TF-IDF, BM25,クエリ尤度モデルなど – 高速に計算される必要性 • パフォーマンス最適化 (Performance optimization) – レスポンスタイムの高速化とクエリスループットの向上 – スコアの計算方法 • 単語毎に計算 (term-at-a-time) • 文書毎に計算 (document-at-a-time) – top-kの高速な取得 • 安全な最適化 (safe optimization):スコアを保証(通常計算と同様) • 安全でない最適化 (unsafe optimization):スコアが保証されない • 分散処理 (Distribution) – クエリブローカ (query broker) によってランキング処理を分散 – キャッシュ (chache) • クエリに対するランキング結果をメモリに保存 10
  • 11. 6 評価 • 検索ログ (Logging) – ログは検索エンジンの改善に価値のある情報源 – クエリログ • スペルチェック,クエリキャッシュなどに活用 – クリック履歴 (clickthrough log) • ランキングアルゴリズムの評価や訓練 • ランキングの評価 (Ranking analysis) – ログデータ,または明示的な適合性評価が必要 – 様々な評価指標 • 検索結果上位を強調するようなものが適切 • 性能評価 (Performance analysis) – レスポンスタイム,スループットなどを計測 – 分散アプリケーションの場合,ネットワーク速度も測定 – 実測の代わりにシミュレーションすることも 11
  • 13. 文献情報 • データベースの教科書 – Elmastri and Navathe (2006): • Fundamentals of database systems (5th ed.) • 古典的なウェブ検索エンジン構造について – Brin and Page (1998): 初期のGoogle – Callan et al. (1992): Inquery • Luceneの構造について – Hatcher and Gospodnetic: • Lucene in Action 第2版近日発売! 13