機械学習による検索ランキング改善ガイド

―技術解説とハンズオンで学ぶ機械学習ランキングモデルの導入と改善

[cover photo]
TOPICS
Web , Data Science
発行年月日
PRINT LENGTH
304
ISBN
978-4-8144-0030-0
FORMAT
Print PDF EPUB
Ebook
3,740円
Ebookを購入する
Print
3,740円

ウェブサイトなどで検索を行う際には、多数のドキュメントから検索結果の候補を見つけ出す「マッチング」、その結果を望ましい順序に並べ替える「ランキング」という2つの操作が行なわれています。本書はこのうち「ランキング」の改善に機械学習のアプローチを導入することによって、検索結果の質を高めるプロセスを解説する書籍です。
第Ⅰ部では、機械学習を用いたランキングモデルの導入だけでなく、従来手法での改善、またモデルそのものの改善や各種のテストなど、機械学習システムを導入、運用するプロジェクトの全体を幅広く紹介します。第Ⅱ部ではサンプルのシステムを実際に動作させて、その挙動を体験するハンズオンを行います。巻末の付録では「ベクトル検索と機械学習」について解説しています。

関連ファイル

目次

まえがき

第I部 機械学習導入プロジェクト

1章 検索の基本
    1.1 検索技術の基本と検索エンジン
        1.1.1 検索はどのように使われているのか
        1.1.2 全文検索
        1.1.3 検索エンジン
    1.2 ランキング改善の基本
        1.2.1 ランキング改善は重要か
        1.2.2 ランキング改善を進める前に
        1.2.3 実際のランキング改善
        1.2.4 機械学習を用いたランキング改善
        1.2.5 ランキング改善を確認する
    1.3 まとめ
    1.4 参考文献

2章 検索システム
    2.1 典型的なシステム構成
        2.1.1 フロントエンドサーバー
        2.1.2 バックエンドサーバー
        2.1.3 検索エンジン
        2.1.4 文書マスターDB
        2.1.5 データウェアハウス
        2.1.6 フィーダー
        2.1.7 クローラー・入稿ツール
    2.2 まとめ

3章 ランキング改善プロジェクトの流れとプロジェクト準備
    3.1 ランキング改善プロジェクトの流れ
    3.2 検索改善プロジェクトの体制構築
        3.2.1 スケジューリングの注意点
    3.3 KPI設定
        3.3.1 KPI設定の目的
        3.3.2 KPI設定の例
        3.3.3 KPI設定の注意点
    3.4 オフライン評価
        3.4.1 (手順1)検索クエリーセットの収集
        3.4.2 (手順2)ランキング結果の取得
        3.4.3 (手順3)関連度の付与
        3.4.4 (手順4)評価指標の計算
        3.4.5 関連度のバイアスを考慮したオフライン評価
        3.4.6 テストデータセットを利用したオフライン評価
        3.4.7 検索システムの状態変化とリーク
    3.5 まとめ
    3.6 参考文献

4章 機械学習を利用しない検索ランキング改善
    4.1 ランキングロジック:BM25特徴量と他の1つの特徴量の重み付き和
    4.2 特徴量の決定
    4.3 検索システムへの実装
        4.3.1 バックエンドサーバーの追加実装:本ランキングロジックを利用する検索リクエストの生成
        4.3.2 フィーダーの追加実装:特徴量データのフィード
    4.4 オフライン評価と重みの決定
    4.5 まとめ

5章 機械学習検索ランキングによる検索ランキング改善
    5.1 機械学習検索ランキング
    5.2 検索ランキングモデルの構築
        5.2.1 ランキング学習
        5.2.2 モデルの学習と評価に利用するデータセット
        5.2.3 特徴量データの事後計算
        5.2.4 モデルの学習
    5.3 検索システムに検索ランキングモデルを適用する
        5.3.1 本節で実現する検索システムの構成
        5.3.2 検索エンジンの準備
        5.3.3 バックエンドサーバーへの機能追加
        5.3.4 負荷テスト
    5.4 まとめ
    5.5 参考文献

6章 検索ランキングモデルを改善・運用する
    6.1 検索ランキングモデルの改善
        6.1.1 ランキング学習手法の変更
        6.1.2 特徴量の追加
        6.1.3 ラベルの変更
        6.1.4 訓練データセット収集方法の変更
        6.1.5 応用トピック
    6.2 検索ランキングモデルの運用
        6.2.1 検索ランキングモデルの更新
        6.2.2 オンライン指標の監視
        6.2.3 検索ランキングモデルスコアの監視
        6.2.4 特徴量の異常検知
    6.3 継続的な訓練データセットの準備と改善
        6.3.1 特徴量のロギング
        6.3.2 どのような経路で特徴量データを蓄積すべきか
        6.3.3 特徴量のアドホック収集とロギングの比較
        6.3.4 フィールドの追加
        6.3.5 継続的改善と負荷テスト
    6.4 まとめ
    6.5 参考文献

7章 負荷テスト
    7.1 負荷テスト環境の構築
    7.2 負荷テスト用のリクエスト
        7.2.1 リクエスト作成時の注意点
        7.2.2 リクエストとキャッシュ
        7.2.3 リクエストの有効期限
    7.3 負荷テストを実施する際の検索エンジンのインデックス
        7.3.1 更新リクエストを含む負荷テストの注意点
    7.4 サーバーとネットワークのスペック
    7.5 負荷をかけるときの秒間リクエスト数、並列度
    7.6 システムが依存する各種コンポーネントへの負荷テスト
    7.7 負荷テスト中に確認しておくべきメトリクス
        7.7.1 クライアント側で確認すべきメトリクス
        7.7.2 サーバー側で確認すべきメトリクス
    7.8 まとめ

8章 A/Bテスト
    8.1 A/Bテスト環境の構築
        8.1.1 A/Bテストとは
        8.1.2 A/Bテスト機能の拡張
    8.2 A/Bテストの設計と実装
        8.2.1 A/Bテストの手順
        8.2.2 プロジェクト内での認識合わせ
        8.2.3 A/Bテストの設計
        8.2.4 A/Bテストの実装
    8.3 まとめ
    8.4 参考文献
    8.5 第Ⅰ部のまとめ

第II部 ハンズオン

9章 記事検索システムの構成と起動
    9.1 検索システムの構成
        9.1.1 フロントエンドサーバー+バックエンドサーバー(search-ui)
        9.1.2 検索エンジン(search-engine)
        9.1.3 フィーダー+マスターDB(feeder-master-db)
        9.1.4 Dockerネットワーク内の端末(workspace)
        9.1.5 検索エンジン単体のユーザーインターフェイス(kibana)
    9.2 検索システムを立ち上げる
    9.3 まとめ

10章 ElasticsearchにWikipediaデータセットを保存する
    10.1 Elasticsearchへ文書を保存する
        10.1.1 KibanaのDev Tools
        10.1.2 Bulk APIを用いて文書を保存する
        10.1.3 保存された文書の確認
    10.2 ハンズオンに利用するデータセット
    10.3 Elasticsearchにデータセットの内容を保存する
    10.4 まとめ

11章 ベースラインのランキングロジックを評価する
    11.1 ベースラインのランキングロジック
    11.2 ベースラインのランキングロジックを使って検索を行う
    11.3 検索システムの仮定
    11.4 ベースラインのランキングロジックのオフライン評価
        11.4.1 テスト用検索キーワードセットの収集
        11.4.2 ランキング結果の取得と関連度の付与
        11.4.3 評価指標の計算
    11.5 まとめ

12章 訓練データセットの生成
    12.1 特徴量の選定
    12.2 featuresetのデプロイ
    12.3 訓練および検証用検索キーワードセットの収集
    12.4 LTRプラグインを利用した特徴量データの収集
    12.5 実際に収集する
    12.6 まとめ

13章 検索ランキングモデルの学習とオフライン評価
    13.1 検索ランキングモデルの学習
    13.2 検索ランキングモデルのデプロイ
    13.3 LTRプラグインを使用した検索ランキングモデルの実行の基本
    13.4 検索ランキングモデルのランキング結果の収集
    13.5 検索ランキングモデルのオフライン評価
    13.6 まとめ

14章 検索ランキングモデルの定性評価
    14.1 まとめ

15章 検索ランキングモデルによる性能影響の測定
    15.1 検索ランキングモデルをオンオフしてレイテンシーを比較
    15.2 ヒット件数とレイテンシーの同時測定
    15.3 まとめ
    15.4 第Ⅱ部のまとめ

付録Aベクトル検索と機械学習
    A.1 Bag-of-Wordsモデル
    A.2 ベクトル検索
        A.2.1 ベクトル類似検索
        A.2.2 利用例:分散表現
        A.2.3 利用例:画像検索
        A.2.4 メリット
        A.2.5 デメリット
    A.3 ベクトル類似検索の実現
        A.3.1 Solrの場合
        A.3.2 Elasticsearchの場合
    A.4 Bag-of-Wordsモデルとベクトル類似検索との組み合わせ
        A.4.1 ベクトル類似検索によるリランキング
        A.4.2 ベクトルの類似度を特徴量として扱う
    A.5 近似最近傍探索(ANN検索)
        A.5.1 グラフベースの手法
        A.5.2 クラスタベースの手法
    A.6 ベクトル類似検索エンジンの紹介
    A.7 まとめ
    A.8 参考文献

索引