Open2

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

takonotakono

モチベーション

検索サービスの開発運用で仕事をしているが、機械学習周りは敬遠しがちだった。
この本を通してランキング改善の疑似体験して業務の幅を広げたい。

https://www.oreilly.co.jp/books/9784814400300/

takonotakono

オフライン評価

  • アイデアとして上がったランキングロジックが有効化を事前に検証するフェーズ
  • クエリーセットはサンプリングで取得する
  • 評価対象のランキングロジックを使う もしくは 検索システムの挙動を模倣する外部スクリプトでランキング結果を取得する
  • KPIをもとに関連度を評価する
  • MRRやnDCGを用いてランキングロジックの評価をする
  • 実際のドキュメントの集合を使うのが難しい場合は、テスト用のデータセットを利用する
  • テストデータセットはランキング結果ページに表示された文書のみでオフライン評価をするか、検索時にマッチしたドキュメントを使うなどの方法がある
  • ユーザーフィードバックを用いて関連度を測定する場合は、インプレッションログを使ってデータセットを作る(プレゼンテーションバイアスを考慮)
  • オフライン評価では未来の情報を用いて、過去のドキュメント集合のランキングを作らないこと(リーク)

気づき

オフライン評価の実際の業務での実施方法が気になった。
一番は本番環境とコピーを作れることだと思うが、コスト観点でも厳しそう。
検索エンジン側でもオフライン評価の機能提供をしている。

Vespa /model-evaluation/v1/
https://docs.vespa.ai/en/stateless-model-evaluation.html

Elasitcsearch Ranking Evaluation API
https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rank-eval