こんにちは。検索基盤部の橘です。検索基盤部では、ZOZOTOWNのおすすめ順検索の品質向上を目指し、機械学習モデル等を活用しフィルタリングやリランキングによる検索結果の並び順の改善に取り組んでいます。
ZOZOTOWN検索の並び順の精度改善の取り組みについては以下の記事をご参照ください。
検索基盤部では新しい改善や機能を導入する前にA/Bテストを行い効果を評価しています。A/Bテストの事前評価として、オフラインの定量評価と定性評価を実施しています。これらの評価によりA/Bテストの実施判断をしています。
おすすめ順検索のフィルタリング処理の効果検証として導入したオフライン定量評価の方法については以下の記事をご参照ください。
以前の記事で紹介したオフライン評価を日々運用する中で、幾つか課題点が見つかりました。本記事では、その課題点と改善方針について紹介します。
目次
- 目次
- ZOZOTOWNのおすすめ順検索の商品ランキングロジックにおけるフィルタリング処理
- フィルタリング処理における定量評価と定性評価
- オフライン評価で起こった問題
- 問題の原因分析アプローチ
- 問題原因の分析
- 定量評価の改善
- まとめ
- おわりに
ZOZOTOWNのおすすめ順検索の商品ランキングロジックにおけるフィルタリング処理
ZOZOTOWNのおすすめ順検索の商品のランキングロジックは2つのフェーズに分けられます。
- フィルタリング処理: 再現率を高めることを目的にルールベースのロジックや軽量な機械学習モデルを用いて商品のフィルタリングを行います。
- リランキング処理: フィルタリング時のスコアトップN件に絞って「ランキング学習」と呼ばれる手法の機械学習モデルを用いた並び替え処理を行います。
フィルタリング処理における定量評価と定性評価
A/Bテストにおける定量評価と定性評価の位置付け
以下にA/Bテスト実施までのフローを示します。
オフラインの定量評価及び定性評価は、事前評価としてA/Bテストの前に実施します。
定量評価について
以前のテックブログに記載している定量評価について抜粋してご紹介します。定量評価では、以下の評価指標により新ロジックの性能の良さを評価します。
評価指標 | 評価したい内容 | 評価結果の解釈 | 例 |
---|---|---|---|
コンバージョンカバー率 | コンバージョンの大幅な悪化がないこと | 評価値が高いほどコンバージョンの悪化が少ない | |
新商品表示率 | 新ロジックが旧ロジックとは異なる商品を多く表示できるか | 評価値が高いほど新ロジックは旧ロジックとは異なる商品を多く表示できる | |
RBO(rank biased overlap) | 新ロジックと旧ロジックの検索結果の並び順がどの程度類似しているか | 評価値が低いほど新ロジックは旧ロジックの検索結果の並び順と異なる | 0.8(0から1の値をとる) |
定性評価について
次におすすめ順でのフィルタリング処理における定性評価について説明します。ZOZOでは社内で開発しているツールを用いて検索結果を定性評価しています。以下は、おすすめ順のフィルタリング処理の定性評価の流れです。
- 評価依頼者が評価対象の検索キーワードを評価者に割り振る
- 評価者がツールに評価対象の検索キーワードを入力する
- ツールが検索結果を新旧ロジックから取得し、それぞれの検索結果の差集合にあたる商品を画面に出力する
- 評価者は新旧ロジックそれぞれの結果のどちらが良いかを評価し、評価依頼者に結果を返却する
評価の流れのイメージは以下の通りです。
定性評価ツールの画面出力イメージは以下の通りです。 差集合にあたる商品のみを比較することで新旧ロジックの優劣を明確にします。
評価依頼者は複数の評価者による評価結果を集計し、新旧ロジックどちらが良いかの判定とA/Bテストに進むかを判定します。
現状の定量評価と定性評価は大幅に指標が上昇または下降していないかを確認する役割が大きいですが、理想的にはロジックの真の性能と定量評価の結果、定性評価の結果は相関することが望ましいです。もし性能の悪い新ロジックが定量評価で悪い評価結果になると、定性評価を実施する前に施策をストップします。
オフライン評価で起こった問題
前章のオフライン評価を用いたA/Bテストの事前評価を進めていくにあたり起こった問題について説明します。
定量評価の結果は良好であった新ロジックについて定性評価を引き続き実施したところ、定性評価の結果が悪いという結果になりました。以下の図に定量評価と定性評価の結果を示しています。
新ロジックでのみ抽出される商品(新ロジック抽出商品)のコンバージョン(CV)ログが存在することについては後ほど説明します。
- 定量評価では、コンバージョンカバー率と新商品表示率ともに高い値であり、新ロジックは良い結果となっています。
- 定性評価では、旧ロジックの方が良い検索結果となっている件数が多く、新ロジックは悪い結果となっています。
上に記載した通り本来は定量評価と定性評価の結果は相関するのが望ましいので上記は望ましくない結果であり、定量評価の方法もしくは定性評価の方法に改善すべき点があります。
双方の評価が相関しない原因を分析し、改善方針を検討しました。
問題の原因分析アプローチ
この定量評価と定性評価の乖離の原因を分析するにあたり、どのようにアプローチしていけばよいでしょうか?
実際の分析アプローチとして、先ほどの図の定量評価の結果部分にあった『新ロジック抽出商品のCVログ』を活用しました。
この定量評価の指標を導入した当時は、新ロジック抽出商品のCVログは存在しない想定でした。検索結果に表示される商品は旧ロジックでのみ抽出される商品であるため、新ロジックでのみ抽出される商品のCVログは存在しないと想定していたためです。
しかし、実際にはCVログの中には新ロジック抽出商品のCVログが存在しました。この原因として、CVログ取得時と評価時の検索インデックス内容の差異の例をご紹介します。
CVログ取得時と評価時の検索インデックス内容の差異
以下の図のように、ZOZOTOWNの商品検索システムのインデックスは逐次更新されています。商品の売り切れや新商品の発売などに応じてインデックス内の商品が入れ替わります。よってCVログ取得時(ユーザーの検索行動時)は同じ旧ロジックを扱っていても検索結果は変化することがあります。
対して、評価時は旧ロジックによって表示された商品をログから集計せず特定のインデックスを使用し検索結果を抽出します。
このCVログ取得時と評価時のインデックスの違いが、CVログ取得時との検索結果の差分を発生させている原因です。
以上から、過去のインデックスから旧ロジックにより抽出された商品は、評価時のインデックスでは新ロジック抽出商品となりえることがわかりました。
問題原因の分析
定性評価の事後分析を実施し、先ほど説明したCVログを利用して新ロジック抽出商品ごとの過去のCV率を集計し、旧ロジック抽出商品のCV率と比較しました。新ロジック抽出商品と旧ロジック抽出商品のCV率のヒストグラムを作図すると以下のようになっていました(実際とは異なりますが、同様の傾向を持つデータです)。
この図から読み取れる新旧ロジックの特徴は以下の通りです。
- 新ロジック抽出商品はCV率のばらつきが比較的大きい。CV率が比較的高い商品を多く含むが、CV率が0の商品も多く含む。
- 旧ロジック抽出商品はCV率のばらつきが比較的小さい。
新ロジック抽出商品におけるCV率が0の商品を確認したところ、検索キーワードと無関係で検索意図に合わない商品となっていることがわかりました。
つまり、新ロジック抽出商品はユーザーの検索意図に合わない商品が多く含まれており、定性評価時にそれが原因で悪い評価結果になったことがわかりました。
ユーザーの検索意図に合わない商品が検索結果に多く含まれる場合、ユーザーは検索結果に対し満足せず再検索や検索から離脱する可能性があります。さらにはZOZOTOWNの検索機能やサービス自体に疑念を持つ場合も考えられます。
上記のリスクに関して、eコマースサイトの検索機能の改善ガイドラインを提供するBaymard Instituteのブログでも、検索意図に合わない結果がサイトの離脱を招くと指摘されています。
以上より、検索意図に合わない商品数を確認できるよう定量評価を改善することにしました。
定量評価の改善
ある程度の量の新ロジック抽出商品のCVログが取得出来れば検索キーワードごとの新ロジック抽出商品のCV率が求められます。それを利用し、定量評価の時点でCV率が極端に低い(検索意図に合わない)商品数を新旧ロジックで比較することにしました。
この比較により検索意図に合わない商品の多さを定量評価の時点で把握でき、検索意図に合わない商品が多い傾向の新ロジックの検討を定量評価の時点で中止できます。
まとめ
本記事ではZOZOTOWNのおすすめ順検索の精度改善におけるオフライン評価を運用していた中で生じた課題について説明し、分析アプローチや評価方法のブラッシュアップの事例をご紹介しました。
引き続きオフライン評価を実施し評価方法のブラッシュアップを重ねていく予定です。
おわりに
ZOZOでは、一緒にサービスを作り上げてくれる方を募集中です。ご興味のある方は、以下のリンクからぜひご応募ください。