1
/
5

【TECH BLOG】Elasticsearch Learning to Rankプラグインの使い方とポイント

検索基盤部の内田です。私たちは、約1年前よりヤフー株式会社と協力し、検索機能の改善に取り組んでいます。現在、ZOZOTOWNのおすすめ順検索に用いている、ランキング学習を利用した検索機能も、その取り組みの一部です。

本記事では、Elasticsearch上で、ランキング学習により構築した機械学習モデルを用いた検索を行うためのプラグイン「Elasticsearch Learning to Rank」の簡単な使い方を紹介します。また、このプラグインをZOZOTOWNに導入し、実際に運用して得られた知見をご紹介します。ランキング学習の話題性が世の中で増していますが、検索エンジンを絡めた情報はまだ世の中に少ない印象があります。そのため、本記事が皆さんの参考になれば幸いです。

ランキング学習のイメージ

ランキング学習(Learning to Rank, LTR)とは、機械学習の枠組みのひとつであり、情報検索におけるランキングを予測するモデルを構築する手法です。イメージとしては「機械学習で、入力されたパラメータに基づいて賢く候補を並び替えるもの」と言えます。

Learning to Rankプラグインの使い方

ZOZOTOWNの検索システムは、Elasticsearchを利用して構築しています。弊社のElasticsearchに関する取り組みは、過去の記事でも紹介しているので、併せてご覧ください。

Elasticsearchには、ランキング学習で構築したモデルを利用して検索する機能がデフォルトでは用意されていません。Learning to Rankプラグイン(以下、LTRプラグイン)の利用は、その機能を導入するための比較的低コストな手段の1つです。本章では、LTRプラグインを使った検索の実行方法を簡単に紹介します。なお、Elasticsearchへのプラグインの導入方法は解説しません。プラグインの導入に関する情報はプラグインのREADMEElasticsearchのドキュメントを参考ください。

LTRプラグインを用いて、ランキング学習で構築したモデルを利用した検索を実現するには、下記の3つの手順を踏む必要があります。

  1. Elasticsearchで計算する特徴量セットを定義する
  2. 機械学習モデルを構築してElasticsearchにアップロードする
  3. アップロードしたモデルを検索クエリで指定して検索する

なお、LTRプラグインを初めて利用する際は、

feature store

の有効化が必要です。

feature store

は、特徴量セットやモデルに関するメタデータを格納するインデックスに相当します。

PUT _ltr


1. Elasticsearchで計算する特徴量セットを定義する

本記事では、概要を説明します。詳細を確認したい場合は、公式ドキュメントを参照ください。

機械学習モデルを用いたスコアリングでは、Elasticsearchが各特徴量の値を計算します。ただし、それらの特徴量の定義は、事前にElasticsearchへ登録しておく必要があります。そして、その特徴量の定義方法は、以下の3種類の方法が存在します。

続きはこちら

株式会社ZOZO(エンジニア・デザイナー部門)'s job postings

Weekly ranking

Show other rankings
If this story triggered your interest, go ahead and visit them to learn more