最後に、どのようにサジェストのランキングを生成しているのかを見てみましょう。
サジェストのランキングは、データ集計基盤で集計されたデータを基に生成されており、検索結果の指標には、以下のようなパラメーターを加味してランキングを生成しています。またサイトによっては、ジャンルやカテゴリを選択した場合のキーワードなども加味しています。これらは全てHadoopで集計処理が行われており、1年から2年分の検索ログとユーザー行動ログを掛け合わせて集計しています。
期間ごとのキーワードの集計データです。可視化基盤で集計されたデータを活用します。
検索システム(Elasticsearch、Apache Solr)などでマッチした検索ヒット数です。
検索されたサジェスト候補は、カスタマーにとって有益な情報です。「何番目に表示されたサジェスト候補か」も同様に加味します。
検索結果ページから詳細ページなどに遷移した割合です。
CTRに加えて、実際にアクション(コンバージョン)につながった割合です。
新しい期間で検索されたキーワードほど高い点数になり、古いスコアになるほど低い点数になります。
季節に左右されるトレンドも加味しています。1年前にスコアが上がったクエリは、加点を行います。こうすることで、季節性があるキーワード(鍋、かき氷など)が上位に表示されるようにしています。
選択されていないキーワード候補は、キーワード候補とは関連が弱い可能性があるのでスコアを減点します。
検索結果に表示されないものに関しては、サジェスト候補に表示させてもカスタマーを混乱させてしまうだけなので、検索インデックスから除外します。
サイトにふさわしくないキーワードや放送禁止用語なども同様に検索インデックスから除外します。
QassはMapRのHadoopディストリビューションを活用してデータ集計を行っていますが、MapRのHadoopのバージョンアップに伴い、現在新しい基盤を構築しています。
新しい分析基盤では、主に現在話題のApache Sparkを活用する予定です。Apache Sparkには、機械学習が簡単に利用できる「MLib」などのライブラリがあるので、機械学習を利用してランキングアルゴリズムや辞書生成などを行っていくことになるでしょう。Apache Sparkを活用した機械学習や検索ランキングをどのようにチューニングしているのかに関しては、ノウハウを蓄積次第、紹介していこうと考えています。
平行して、「アドホックな分析にApache Drillが利用できないか」の検証も始めています。
今回は、データ集計基盤で集計されたデータの可視化、また集計データを活用したキーワードサジェストの仕組みを紹介しました。
次回は、QassにおけるDevOpsの取り組みを紹介します。
2011年9月リクルート入社(2012年10月の分社化後はリクルートテクノロジーズ在籍)。Hadoop基盤の構築後、R&Dの基盤技術の調査検証後、検索基盤QASSで、Elasticsearchを利用した検索システムの開発に従事
Twitter:https://twitter.com/tatakaba
Copyright © ITmedia, Inc. All Rights Reserved.