こういった予想効果を計算する際に注意すべきは、人間の行動が引き起こす、非常に偏った行動の分布です。よく知られている例としては、「極端によく検索されるキーワードの検索数」が、「他の検索数が少ないキーワードの検索数」を圧倒的に凌いでしまう、というケースがあります。試しに1つ例を出しましょう。求人情報サイトでよく検索されているキーワードを検索頻度が多い順に横軸に並べ、その検索数を縦軸に取ると、その検索数は順位のべき乗に比例する分布になります。
このような分布をする変数は、平均値を元に期待値を求めても「正しい見立て」にはなりません。全ては紹介しきれないので詳細は省きますが、「正しい見立て」を行うためには、キーワード検索ユーザーの行動をさらに分解して仮説を立ててモデル化し、モデルごとに適切な代表値を用いて期待値を求めることが必要になります。
ここまで来れば、機械学習を使ってランキングアルゴリズムを改善することができます。
前述の求人情報サイトの例でいえば、適合率の計算で使った「キーワードの検索意図」をそのまま反映する方法が最もシンプルです。検索キーワード「ホテル」の場合、「ホテル業界の求人情報」が上位に表出されるよう、単一属性のブースト値を調整するのです(ブースト値の調整方法については、前回記事をご覧ください)。
弊社内でこうした「単一属性の重み調整」を実施したところ、実際にKGI改善効果がありました。さらに、ブーストすべき属性が複数ある場合、パラメーターの最適化手法としては「RankSVM(Support Vector Machine for Ranking)」という機械学習の手法を使えます。
RankSVMによるパラメーター最適化とは、簡単に言うと、「適合率を目標関数として、検索エンジンの各フィールドのスコアの重みを学習させていくこと」となります。以下はRankSVMの概要です。
今回は適合率を向上させるためのランキングアルゴリズムの最適化を紹介しましたが、もちろん同様の手法は再現率向上(検索漏れの削減)にも使えます。
再現率を同じように仮説を立てて定量化し、機械的に計算できる形にして、再現率を向上させる機械学習を実施すればいいだけです。再現率の向上には検索エンジンでは「シノニム(同義語)機能」を使うことができます。
本連載を通して、検索改善のために必要な準備を紹介しました。前回までに紹介した、QueryRewriterによるアーキテクチャ面のサポート、今回紹介した現状分析・施策立案のために必要な準備があることで、機械学習の効用を享受し、効果を振り返ることもできます。
さらにその後、人間の能力を超えるものとしてDeep Learningを導入することが、Deep Learningを真に活用していく方法だと考えます。
リクルートテクノロジーズ ITマネジメント統括部 テクノロジープラットフォーム部 APプロダクト開発グループ
SI企業でWebアプリケーションフレームワークなどの研究開発を経て、2014年9月リクルートテクノロジーズに入社。
現在は検索ユニットで、検索UX向上のための分析・ロジック開発・アーキテクチャ設計に従事している。
Copyright © ITmedia, Inc. All Rights Reserved.