Transcript 仕組み
ACE KG発表
検索
~仕組みから学ぼう~
発表者 u_ma, suzuk
検索を学ぶことで何ができるのか
あのエロ画像、
どこに保存した
んだっけ??
皆さんこんな事を思ったこと、
ありませんか?
次のような皆様は、お聞きください
ケースその1
GoogleなどのWeb検索サービスで
自分のWebページを検索の上位にヒットするようにしたい
Web検索の仕組みを
聞いてください
Webページ 上位にヒット
ケースその2
大量のデータやファイルを扱うソフトウェア
目的のデータをすばやく見つけるにはどうするの?
ローカル検索の仕組み
をお聞きください
もっと柔軟な検索の仕組み
をおききください
大量 データ ファイル ソフトウェア
ケースその3
画像ファイルなどのメディアデータも扱える検
索システムが欲しい・作りたい
もっと柔軟な検索の仕組み
をお聞きください
メディアデータ 検索システム
発表の流れ
検索って何?
人生です
Web検索の仕組み
アルゴリズム
ローカル検索の仕組み
ファイル検索
もっと柔軟な検索の仕組み
メタデータの説明
メタデータを使った検索
デモ
GoogleDesktopプラグイン
まとめ
人はなぜ検索をするのか
・ 結婚相談所では
→結婚相手を見つけるため
・ 図書館では
→不足した知識を補うため
・ Ctrl+Fでは
→膨大な数のデータから目的のデータの場所を
見つけるため
→結局、検索って
問題解決をするためなんです
問題解決
→三輪真樹子著「情報検索のスキル」では
検索とは人生だ!!!
約 11,400件中 1-50件のイケメンがあなたをお待ちしております(0.42秒)
WEB検索の大まかな仕組み
検索システムの種類
ディレクトリ型・・・“サーファー”や、“エディター”と呼ばれる人
達が審査、ランク付けする。載せて欲しい人は登録が必要。
この型のみを使っているエンジンほぼない。
ロボット型・・・“クローラー”“スパイダー”と呼ばれるWEB徘
徊プログラムが、ページを自動的に登録(インデックス)。
Yahoo!JAPAN・・・ディレクトリ型が主。ページ検索はロボッ
トで行っている。
google・・・ロボット検索。Googlebotと言えば有名なロボッ
ト。
ここでちょっと、歴史
世界初の検索ツールは「archie」(McGill大学のAlan Ematage発明)
1994年1月、初期ディレクトリ検索エンジン「Galaxy」誕生、同4月、WEBク
ローラーが作られる
1994年4月、Yahoo!誕生
以後Lycos , infoseek , Exite , AltaVista・・・etcが誕生
日本のインターネット普及初期からいた検索エンジン
ロボット型
千里眼 (サービス終了)
ODiN (サービス終了)
OCN Navi (TITAN) (サービス終了)
ディレクトリ型
NTT DIRECTORY (サービス終了)
Yahoo!
Yahho (サービス終了)
JOY
歴史
Yahoo!の台頭~
1996年サービス開始
簡素な画面構成、質の高いディレクトリで人気
↓
wwwの爆発的普及
1997年頃から、infoseekやgooのロボット検索が人気に。Yahooもロ
ボット検索にgooを使用
これらのサイトは、オークションサービス等、検索以外のサービスを次々搭
載・・・ポータルサイト化
1998年、google登場
独創的な検索技術に力を入れた
2000年、Yahoo!のロボット検索に採用、現在ではWEB検索のTOPへ・・・登
録サイト数は80億を越す!!
現在、Yahoo!やgoogleに匹敵すると言われているロボット“Teoma”を
率いるAsk Jeevesが日本上陸、Ask.jpとしてサービス開始
・・・CM知ってますよね?
アルゴリズムと検索(1)
ロボットはページの中身を独自のアルゴリズム
を使ってindex、評価する
<>新技術</>
<h1>(見出し)に“技
術”の文字・・・評価
<>当社“技術”
html
ソース
の最新“技術”を “技術”の文字使いす
使用した“技術
ぎ・・・ワードスパムと
的”に全く新しい してペナルティ
新“技術”。<>/
スパイダー
スパイダー
アルゴリズムと検索(2)
前述の方法だけだと、人間の思うようには検索できな
い・・・検索エンジン各社は独自のアルゴリズムを生み出している
googleの使うアルゴリズムは100以上!!
例:
htmlソースを見る、<meta>タグに書いてある情報で
判断する、そのページに張られている重要なページの
リンク数で判断する
リンクで判断・・・PageRank(googleが行っている検索ア
ル
ゴリズムのこと)
PageRank って何?
「多くの良質なページからリンクされているページは同じ
く良質である」
google独自のアルゴリズム
評価対象のページの被リンク数をみる
クローラーによって付けられるPageRank値によって重要度を
ランク付け。最高で10まである。
(ちなみに)新規ページもグーグルツールバーをつけているとクロー
ラーにインデックスされたときの“推定”PageRank値を付けられる。
元の考え方はノーベル生物学賞を誰が取るかを予測する手法として使っていたらしい
リンクを張っているページの評価も考慮
Yahoo!など評価の高いページからのリンクは点数が高い
リンクをばんばん他のページに張っているようなページのリンクは点数
が低い
PageRank の仕組み
あるページのPageaRank値
をリンクの数で割ったポイント
が、リンク先のPageRank値に
加算される
やたらとリンクを貼りあうリンク集のサ
イトや、個人が趣味で作ったサイトな
どは順位が低くなる
(Page et al. (1998) Figure 2 'Simplified Page Calculation' より引用)
HITS algorithm
HITS(Hyperlink-Induced Topic Search )とは?
PageRankとの違いはhubと、authorityの概念があること
hub(情報連絡網)
あるトピックについて、関連するページへ多くリンクを発しているページ
authority
上記のような数多くのハブページからリンクされているページ
ローカル環境では?
素早く目的の情報をみつけたい
Web同様、検索するのが一番早い
どのような仕組みで検索しているのか?
情報量
キャー
キャー
キャー
ローカルファイル検索の仕組み
ファイル検索
find
locate
本屋さんで本を検索する
順番に見て探していく
線形検索
本の数が多いと探すのも
一苦労
本の数nに比例
平均時間は n/2
findとは
UNIXにおけるファイル検索コマンド
例
% find somewhere –name some -print
result
…..
…
find の仕組み
ファイルを1つ1つ見ていく
本屋さんでの本探しの時と同じ
入力された検索対象以下を再帰的に検索
find の実装
与えられた検索対象のディレクトリ以下を再帰
的に探索
すべての階層を探索し終わると終了
再帰関数になっている
ファイルの情報を1つ1つ取り上げて調べる
一度に複数のファイルの情報を格納しない
デバイスへのアクセスが減るため高速化になる
find の実装2
ディレクトリを再帰的に探索する部分が処理上の最も
重要な部分である
inode番号とデバイス番号の配列を持つ
元の階層に戻る時に使用
1度来た道であれば、これ以上進まない
32個ずつ配列を確保するが足りないときにreallocする
リスト型の構造体の中に関数ポインタを持ち引数に
よって、使う関数を変える
名前や時間による検索など様々な検索方法をサポート
検索対象のファイル名はファイル名を検索するための関数
だけが持ち、find全体では知らない
図書館で本を検索する
図書館で本を検索する
本は管理番号と対応する場所に置かれている
547.483@HT1@62-2ed
本のタイトルと管理番号(本の所蔵場所)との
「対応表」から検索できる
情報のインデックス化
findもいいけれど
findの問題点
検索対象が多いと膨大な時間がかかる
同じ場所を検索するときも最初からやり直しで無駄
が多い
locateとは
UNIXにおけるファイル検索コマンド
findに比べて高速
例
% locate ls
/bin/ls
locateの仕組み
なぜ高速に検索できるのか?
ファイル名のデータベースを作っておき、それを対
象に検索を行っている
ファイルを一つ一つ探すよりも効率的
データベースはソートされているので検索しやすい
locate実装の実際
FreeBSDの場合
データベース作成
データベースファイル /var/db/locate.database
ファイルの探索にはfindが使われる
findの結果得られたファイルリストを圧縮してデータ
ベースに格納
検索
データベースを元の形に戻して全文検索
locateの問題点
データベースの更新が行われるまでは、ファイ
ル情報を変更しても検索結果に反映されない
データベースの更新は定期的(週一回など)に行わ
れる
名前だけで管理する限界
数が増えてくると覚えておくのが大変
研究会にいる「あいつ」
おととい食べた「あれ」
あれだよ、あれ。名前
が出てこない・・・。どう
やって検索しよう。
もっと柔軟な検索の仕組み
後から見てもすぐにわかる
ように、
この書類自身の説明
を書いておくか。
内容:
恥ずかしいポエム集
注意書き:
1.他人に見られない
ように
2.青春のおもひで
メタデータ
データを説明する
ためのデータ
メタデータを検索で利用するには?
付加されたメタデータに対して検索
画像の撮影日時(携帯、デジカメ撮影の画像)
新たにメタデータを抽出して、それを検索
Googleイメージ検索
画像に隣接するテキストを収集する手法など
hotという単語で炎を検索
画像を「分析」して色情報から特徴を抽出
メタデータの利用例
セマンティックWeb
セマンティックWeb
従来のWebの繋がり
人が意味解釈を行うWeb
リンクの関係は一様
herf
Doc B
Doc A
Doc E
herf
herf
herf
Doc D
Doc C
herf
セマンティック・ウェブの繋がり
1998年 機会が意味解釈を出来るWebへ
リンク自体に意味が含まれている
type
Masaka
http://www...
Home page
Person
writes
subject
Doc D
Music
related
メタデータの利用
メタデータとは
「データについてのデータ」
カテゴリー名など
RDF
ウェブ上のリソースに関する情報を明瞭かつ論
理的に表現するデータモデル。
リソースを「ウェブ上で識別できるもの」
主語(誰の)
文
+
述語(何が)
+
目的語(どんな値)
RDF
マシンに理解しやすいデータモデル
何が
どんな値か
ID
誰の
氏名
ホームページ
sato
http://www.ht.sfc.keio.ac.jp
/~sato
LM245
MK705
MS102
住所
URI参照型
プロパティーをURIで参照することで、曖昧さなくリソー
スの性質を記述できる。
Internet
Dc: tile
題名
title
作者
件
名
日付
実際にメタデータを使って検索したい!
デスクトップ検索
Mac OS X Tiger
Google Desktop
Tigerとは
Mac OS X v10.4 "Tiger"
Apple社のOSである“Mac OS X”シリーズの最新
バージョン
デスクトップ検索機能“Spotlight”が最大の売り
Spotlight概要
全く新しい検索機能(とAppleは言っている)
高速
検索結果が瞬時に表示される
幅広い検索対象
多種多様なフォーマットに対応
簡単なインターフェース
特殊な言語を覚える必要がない
高い拡張性
プラグインにより機能を追加できる
エンジンはアプリケーションからも利用可能
技術解説その1
Spotlightの基本構成
5層からなる
技術解説その2
システムとの密接な連携
ファイルシステムとカーネルに統合されている
ファイルの変更等が直接Spotlightエンジンに伝えら
れる
プラグイン
実際のファイル解析を行うのはプラグイン
プラグインの追加により様々なフォーマットのファイル
に対応できる
技術解説その3
Spotlightストア
2つのインデックス(メタデータとコンテンツ)から抽
出されたデータを保持する
メタデータストア
ファイルに関するデータ
コンテンツストア
従来のインデックスと同じ?
技術解説その4
クエリ
ユーザからの普通の入力(自然言語クエリ)を正確
なクエリに変換
例えば「今日」と入力すると具体的な日付になる
ライブアップデート
検索結果を常に最新の状態に保つ
検索結果に関わるファイル情報が変更されると、それ
がすぐにアプリケーションに反映される
メタデータの例
$ mdls metadata.jpg
kMDItemAttributeChangeDate = 2004-10-20 01:00:15 -0700
kMDItemBitsPerSample
= 24
kMDItemColorSpace
= "RGB "
kMDItemContentType
= "public.jpeg"
kMDItemContentTypeTree
= ("public.jpeg",
"public.image",
"public.data",
"public.item",
"public.content")
kMDItemDisplayName
= "metadata.jpg"
kMDItemFSContentChangeDate = 2004-10-19 00:13:04 -0700
kMDItemFSCreationDate
= 2004-10-19 00:13:04 -0700
・・・
クエリの例
$ mdfind "kMDItemAcquisitionModel ==
'Canon PowerShot S45'"
/Users/erika/Documents/vacation1.jpg
/Users/erika/Documents/vacation2.jpg
/Users/erika/Documents/vacation3.jpg
今回のデモで取り上げるのは?
GoogleDesktop
Web検索エンジンで有名なGoogleにより提供され
ているデスクトップ検索サービス
通常のGoogle検索と同じ感覚でコンピュータ内のファ
イルを検索できる
2005年5月26日 日本語正式版が公開
特徴
GoogleWeb検索の流れを汲む簡潔でわかり
やすいインターフェース
ブラウザから利用する
プラグインにより検索機能を拡張できる
APIが公開されている
自作アプリケーションからGDSの機能を利用
プラグインの作成が可能
仕組み
プログラムはサーバとしてローカルマシン内で
動いている
4664番ポート
コンピュータに保存されているファイルに関す
るメタデータのインデックスを作成して検索して
いる
インデックスはインストール時に生成される。更新
は定期的に行われるのではなく、常に更新を続け
ている
プラグイン
GDSの検索機能を拡張する
GDSはデフォルトでは限られた種類のファイルしか
中身を見ることができない
それ以外のフォーマットのファイルは解析できないので、
十分な検索結果が得られない
プラグインを追加することにより、自分で作った独自
ファイルフォーマットをGDSが読めるようにすること
等ができる
プラグインはGDS APIにより作成可能
デモ
GDS APIを利用したアプリケーション
まとめ
Web検索の結果は、多くのアルゴリズムに基
づいて算出されている
情報のインデックス化は検索の効率化に有用
である
コンテンツにメタ情報を付加する事は、柔軟な
検索を可能にする