検索技術の参考図書の紹介「情報検索の基礎」「検索の新地平」
検索技術を知る上で参考となる図書を紹介する。
まずは共立出版より出されている「情報検索の基礎」。この本には検索技術に関するHOWが網羅的にまとめられており、実際に検索モジュールを構築する際には非常に役に立つ参考図書となっている。
章立ての構成としては以下となっており、検索システムの基本構成から評価、機械学習まで基本的な検索技術を網羅しているものとなる。
1.論理検索
2.用語語彙とポスティングスクリスト
3.辞書と融通の効く検索
4.インデックスの構成
5.インデックスの圧縮
6.スコア付け,用語重み付け,ベクトル空間モデル
7.検索システム全体のスコア計算
8.情報検索の評価
9.適合フィードバックとクエリー拡張
10.XML検索
11.確率的情報検索
12.情報検索のための言語モデル
13.テキストの分類とナイーブベイズ
14.ベクトル空間分類
15.サポートベクターマシンと文書の機械学習
16.フラットクラスタリング
17.階層的クラスタリング
18.行列の分解と潜在意味インデックス
19.ウェブ検索の基礎
20.ウェブのクローリングとインデックス付け
21.リンク解析
検索システムを構築するにあたり、まず何を検索するのか?という目的と検索システムを構築したあとの評価軸を検討しておくことがシステム構築を成功させるための重要なポイントとなる。そのためにまず検討すべき項目が8章の情報検索の評価の章となる。
8章によると、情報検索システムの評価に必要なものとして3つのコレクションが示されている。一つは①対象の文章のコレクション、もう一つは②クエリーとして表された必要なテスト用情報要求、そして最後は③各クエリーと文書の対に対して関連か非関連かどうかが2値で示された妥当性の評価のための集合となる。
この内、①に関しては「何を対象として検索するのか?」の定義となる。この対象文書(必ずしも文字情報だけでなくとも良い)は、そのシステムを導入することにより解決したい問題の領域に現れる情報をリストアップしたもので、リストする情報としては、現物のファイル名、格納所在場所、情報の種類(wordなのかexcelなのかpowerpointなのかpdfなのか等拡張子別に分類)、個々のファイルのデータ量等となる。
この時ユースケースを書き、それぞれの情報がワークフローのどこに現れるかを記述すると共に、その中にどのような課題があるのか(例えば単純な検索だと結果が大量に現れフィルタリングが難しいとか、文字マッチング以外の探し方をしたいとか)を記述すると評価のポイントが絞り込みやすくなる。
次に②は、そのシステムを何の問題解決に使いたいのか?というKPIと直結した定義となる。解決したい上位KPIがあり、それらが現れるワークフローを前述のように記述/分析して課題のポイントを明確にする。今回はそれらを検索により解決するので、どのような情報要求に対してどのような答えが欲しいのかを記述する。このとき情報要求としては、単なるキーワードの羅列をするのではなく、まずワークフローの中で何を探したいのかを具体的に記述し、次にそれらを検索するのに必要なクエリ(キーワードや絞り込みがある場合はそれらも含む)を定義するという二段階で定義する。
①と②の実際の例として、たとえば著名な日本語の検索テストデータのコレクションであるNITCIRでの例では、①の対象コレクションとして、”Mainichi Newspaper (2002-2005)”(毎日新聞の2002-2005)を定義し、②の情報要求としては「ファタハの一般的な情報と活動内容についての回答を求めています。(The analyst is especially interested in major characteristics of the organization called Fatah.)」、入力情報として「ファタハとはどんな組織ですか?(What is Fatah?)」と定義されている。
最後に③は入力と答えのペアでユースシーンに現れる実際のユーザーにより作成されるのが望ましいが、現場の協力が得られない場合はシステム設計者がKPIを元に仮説を立て作成する。具体的な例としては先述のNITCIRの例で「ファタハとはどんな組織ですか?」と言う入力に対して「パレスチナ解放機構(PLO)の主流派ファタハ」「ファタハが反イスラエル抵抗闘争の主体となっている」「アラファト議長の最大支持基盤であるファタハは13日、」等の答えの集合が定義されている。
検索システムの評価は絶対的な定量評価は困難(そのユースシーンの中で現れるであろう入力/出力ペアを全て網羅して準備することは困難)である為、ユーザーと握ったテストデータセットでの評価を行うことが一般的だが、その時テストデータセットがどの程度その領域をカバーしているのかが課題になる。それに対する一つの解決策としては、検索データセットを技術的な課題の領域に分割して評価することがある。
これは例えば検索マッチングのケースを(1)文字列マッチング(2)類似語等の辞書を併用したマッチング(3)さらに複雑なマッチングと分け、ユースシーンの中に(1)(2)(3)がそれぞれ現れる割合を実際の例から推定する。一般的には(1)と(2)が現れる比率が高く(3)の高度な検索が必要になるケースは稀になる。ここで(1)と(2)は機械的にマッチングできる為比較的容易に結果を定量的に推定できる。これに対して(3)は様々なケースが想定される為、まずユースケースから導きだれた特定のケースへの対応を確認することで判断する手法が用いられる。
またNITCIRのような、学会等で広く認知された共有のテストコレクション(Cranfield(クランフィールド)コレクション、GOV2、NITCIR、CLEF、Revters、Newsgroups 20等)を利用することも可能だが、これに良い結果が得られたとしても実用性が高いことを保証はしない為、独自のテストセットを準備できない時の目安として用いることが妥当となる。
実際の検索結果の評価に関しては、まずランクなし検索集合の評価に関しては、適合率(precision), と再現率(recall)が基本の評価指標となる。ここで適合率はシステムが出した結果において本当に正しかった割合を示し正確性に関する指標となり、再現率は結果として出てくるべきもののうち、実際に出てきた割合を示し、網羅性に関する指標となる。正確性と網羅性は一般的にはトレードオフの関係にあり、網羅性を上げると正確性は低下し、正確性を上げると網羅性が低下する。その為双方がバランス良く高くなる指標として、F値という適合率と再現率の重みつき調和平均(逆数の平均の逆数)を使う。
ランク付き検索集合の評価に関しては、検索結果の中の上位k件を正解の集合と考える。これらを評価する指標としては、適合率-再現率曲線、補間適合率、点補間平均適合率、平均適合率の平均(MAP)、上位k件における適合率、R-適合率、損益分岐点、ROC曲線、感度、特異点、累積利益、DICE係数等様々な手法が提案されている。
これら結果そのものの評価とは別に、答えの文章が要求に関して関連しているかどうかに関しての評価として、プーリング、カッパ係数、周辺を用いた一致の期待度等がある。
更にそれらの検索指標の評価の他に検索のスピードや、クエリの表現力、どれくらいの広い範囲で使えるのか?やどれくらい早くインデックスできるのか?等の非機能要件(システムの質の指標)と、最終的にそれを使用した時の生産性の向上やユーザー満足度等も評価軸として検討する必要がある。
上記のように検索システムの評価項目は多岐に渡るため、検証実験等を行う際は入念に注意してそれらを定義する必要がある。
次に紹介する図書は最初に紹介するのは角川インターネット講座のシリーズの一冊である「角川インターネット講座8 検索の新地平 集める、探す、見つける、眺める」。高野明彦氏監修で7つの章に対してそれぞれ別の筆者により執筆されている図書となる。
章立ては以下のようになる。
第1部 多様化する検索の現在(序章 検索とは何か
第1章テキスト検索エンジンを検索する
第2章画像検索の進化
第3章実世界と紐づいた検索-時間と空間を検索する
第4章様々な検索と資料の活用)
第2部これからの検索
第5章知識を記す、探す-webの理想とセマンティックウェブへの道程
第6章記憶術としての検索-検索から連想へ)
本の内容として前半のパートは、従来のテキスト文字検索の説明から始まり、画像・映像検索の進化、空間・時間の検索の進化とそれらのナビゲーションについて述べられている。テキスト検索の進化の方向性として、現在DX化の観点から注目されている画像・映像等の非構造データの検索や、空間や時間の検索が来ることは順当な推移と考えられるが、時間軸の検索に対して、単なるタイムスタンプのついた情報の検索に留まらず情報の内容(自然言語処理)に基づいた空間的・時間的つながりを経由した検索の必要性について述べられていたことは非常に興味深い。
時間軸の情報を扱うことは、情報の変化を扱うことととなる。例えばある時点で真であった情報が、時間が経つと偽になる(それまで分からなかったことが判明する等で)ような場合、情報をどのように扱えば良いのかは技術的に大きな課題となる。情報に何らかの状態を導入するオブジェクト指向的なアプローチが一つの方策とはなるが、この方法ではそれぞれの状態間の相関関係まで考慮し始めると指数関数的に複雑になり破綻することが予測される。これに対してデータをimmutableにしてそれぞれにバージョンを付与する方式(DATOMICデータベースのようなモデル)ではこれらにスムーズに対応できることが予測される。
後半の”これらの検索”のパートでは、前回紹介したSemanticWeb技術やさらにその発展系として人の記憶に基づいた「連想情報学」についての概略が述べられている。Semantic Web技術に代表される関連情報の検索や、さらに知識と記憶の関係については非常に興味深い課題となるが、それらについての記述は別の機会に行う。
コメント
[…] 次回も、これら検索技術について述べてみたい。 […]
[…] 前回までに検索技術全般の紹介をした。検索システムはデータベースとそれに対するクエリDSLとUIを組み立てれば構築できるものと考えられ、いくつかのオープンソースを組み合わせてゼロからそれらを構築することは可能であるが、要求仕様も不明確な検証実験の場合には、まず動作するモジュールを作ってユーザーからフィードバックを得ながら構築するアジャイル的なアプローチが求められる。それらを行うためには、なるべく簡易に構築可能なフレームワークを利用することが得策である。 […]
[…] ザーに提示する。マルチモーダルな情報をユーザーに効果的に提示するには、”検索技術の参考図書“や”情報検索のためのユーザインタフェース“で述べられている様な時 […]