[書籍] 検索システム ― 実務者のための開発改善ガイドブック
(構想時のタイトル: 仕事ではじめる検索システム)
UPDATE 2022/05/16
紙書籍の販売が開始されました!
新刊『検索システム ― 実務者のための開発改善ガイドブック』の発売を開始しました
検索システム ― 実務者のための開発改善ガイドブック (打田智子・古澤智裕・大谷 純・加藤 遼・鈴木翔吾・河野晋策 共著)
UPDATE 2022/04/26
構想から1年半を経て,書籍になりました。ラムダノートさんから発行です。
4/26より電子書籍の先行発売,5月中旬に紙+電子書籍セットの販売開始予定です。
新刊『検索システム ― 実務者のための開発改善ガイドブック』のお知らせ
検索システム ― 実務者のための開発改善ガイドブック(電子書籍のみ) (打田智子・古澤智裕・大谷 純・加藤 遼・鈴木翔吾・河野晋策 共著)
情報検索の歴史を紐解くところから始まり,検索エンジン,ユーザーインターフェース,性能評価,プロジェクト運営,Query Understanding,ランキング学習,と幅広いトピックをカバーした内容になっており,「実務家のためのあたらしい教科書」を目指して著者一同頑張って執筆しました。 初心者の方もすでに検索エンジニアとして活躍している方も,お手に取ってみてください。どうぞよろしく。
UPDATE 2021/08/06
1年(以上)が経過してしまいましたが,心強い共著者,編集者を得ることができ,少しずつ原稿が形になってきました。具体的なアウトプットはまだしばらく先になりますが,ラムダノート社の技術情報誌 「n月刊ラムダノート」Vol.3 No.1 で「検索エンジンのしくみ」という入門記事を執筆する機会をいただきました(3つある解説記事のうちの1つです)。よかったら予告編?という形でおたのしみください。
UPDATE 2020/7/23
さまざまな方のご協力をいただき,プロジェクトがゆっくりスタートしました(アイディアやリクエストがあれば飛び入りの issue/PR は引き続き受け付けますが,具体的な話はクローズドな場で進めていきます )。いつ,どういった形でのアウトプットが可能なのかについては手探り中ですが,何らかの形で世に出せるように頑張りたいと思います。気長に温かい目で見てやってください。🙏
構想メモ
NOTE: 以下は,初期構想時のものです。完成した書籍とはかなり異なりますが,思い出として残しています。
これは何?
一連のツイートに触発されて, @mocobeta がこんな本あったらいいな,という妄想を書き下した備忘録です。ご自由にお使いください。
- https://twitter.com/shiumachi/status/1282978358867812352
- https://twitter.com/moco_beta/status/1283014397628043264
- https://twitter.com/chezou/status/1283021918044446720
- https://twitter.com/icoxfog417/status/1283026877678940164
特定のソフトウェア/プロダクトの使い方に限定せず,かつ実用的な(全文)検索システムをゼロから作る,ことをテーマにした日本語の書籍は,私の知る限りではありません(たぶん)。
章立て
目次
1章 なんのために検索システムをつくるのか
執筆者: TBA
情報システムの中で,「検索」が果たしてきた役割,歴史,など。イントロダクション。
2章 検索システムプロジェクトのはじめかた
執筆者: TBA (または @mocobeta)
実務で検索システムを作るには,当然ですが技術以外の要素もたくさん絡んできます。プロジェクト管理を学ぶ章。
- 検索案件の立ち上げ方
- ファーストスコープに何を含めるべきか
- 人員配置やステークホルダー
- プロジェクト管理,リスク管理
- 立ち上げフェーズ以降
3章 検索エンジンのしくみ
執筆者: TBA (または @mocobeta)
検索システムのコアは,なんといっても検索エンジンです。検索エンジンの仕組みを学ぶ章。
- grep コマンドと検索エンジンの違い
- インデックスデータ構造いろいろ
- 転置インデックスと文書類似度
- 分散検索システム(レプリケーションやシャーディング)のしくみ
4章 データのインデクシング
執筆者: TBA (一部は @mocobeta)
検索システムは,大まかに分けてインデクシング(オフライン処理)と検索クエリ処理(オンライン処理)に分けられます。インデクシングについて学ぶ章。
- テキストのインデクシング: 形態素解析,良質な索引語をつくるには
- テキスト以外のインデクシング(数値や地理情報など)
- 情報抽出: 効果的なナビゲーション(絞り込み)のための技術
- 外部データソース(RDBなど)との連携
- Web クローリング
5章 検索クエリの処理とランキング
執筆者: TBA (一部は @mocobeta)
ユーザーからの入力クエリを受け付けて,ヒットしたドキュメントをランキングして検索結果を作るまでを学ぶ章。検索システムの華形ともいえる?
- 検索精度とは: 適合率と再現率
- 文書類似度によるランキング
- 検索クエリのパラメータチューニング
- シノニム展開
- 検索クエリ補完やサジェスチョン,Query Understanding について
- 検索結果の良さの測り方: オフライン指標,オンライン指標
- オンライン評価の設計と運用: A/Bテストなど
- ランキング学習 (Learning to Rank)
6章 ユーザーインターフェース
執筆者: TBA
検索システムは,ユーザーとのインタラクションがとても重要なシステムです。心地良い検索 UI/UX について学ぶ章。
- Web ブラウザインタフェース
- モバイルインタフェース
- 音声入力インタフェース
- インタラクティブ性について
7章 検索システム事例
執筆者: TBA
商用サービスとして運用されている検索システムの事例から学ぶ章。
- toC 検索システム事例
- toB 検索システム事例
8章 応用トピック
執筆者: TBA
関連の深い周辺システムや,最先端の研究に学ぶ章。
- 大規模/高トラフィック検索システムの設計と運用
- 推薦システムとの関わり
- QAシステム(自然文検索)との関わり
- 画像検索,マルチモーダル検索
- Online Learning to Rank
- Personalized Search
- Semantic Search / Knowledge Graph
- Dense vector search / approximate knn search
- Neural Networks for IR
- プライバシーと情報検索 (Privacy-preserving IR)
参考文献
書籍
Information Retrieval の教科書:
- Introduction to Information Retrieval
- 今ではだいぶ古くなっている内容もあるが,いわゆる古典と言われる本なので,検索に深く関わる人は一度は読んでおいて損はないと思う。少し高いが 邦訳 もある。
- Information Retrieval: Implementing and Evaluating Search Engines
- モダンなサーチエンジンの実装やアルゴリズムについて書かれた本。アルゴリズム好きなら面白いと思います。
- Modern Information Retrieval
- IR系論文集という感じ。鈍器系。。。
- Learning to Rank for Information Retrieval
- ランキング学習についての古典。サーベイ集にもなっている。
- 情報検索と言語処理 (言語と計算)
- 古いが,数少ない日本語で書かれた本。
- 情報検索アルゴリズム
- こちらはアルゴリズム寄りの日本語で書かれた書籍。文字列パターンマッチもカバーされている。
- 情報検索のためのユーザーインタフェース
- 情報検索のプロセスをまとめつつ、検索UIの研究についてまとめられている本。2010年頃に書かれた本のため扱っている事例はだいぶ古いが、理論的なところは今でも役立つはず。
- 自然言語処理の基本と技術
- 情報検索と関連の深い分野である,自然言語処理についての比較的新しい入門書。自然言語処理技術の応用の一つとして,「情報検索」を扱った章がある。 (@yukinarianさんからのおすすめ により追記。)
(番外編) IRの教科書がたくさん紹介されているありがたいブログ記事:
- 情報検索ことはじめ〜教科書編〜
- その2 もあります
Lucene 系で,いくつか実システム寄りでトピックを絞った書籍がいくつか出ている:
オンラインで読める記事など
多数ありとてもカバーしきれないので,独断によりほんの一部を紹介: