Hadoop+Embulk+Kibanaのデータ集計基盤によるデータ可視化と集計データを活用したキーワードサジェストの仕組み:Elasticsearch+Hadoopベースの大規模検索基盤大解剖(3)(3/3 ページ)
リクルートの事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する連載。今回は、ログデータの分析および可視化の基盤を構成する5つの主なOSSや集計データを活用したキーワードサジェストの事例を紹介します。
Hadoopで集計してサジェストのランキングを生成する基になるパラメーター
最後に、どのようにサジェストのランキングを生成しているのかを見てみましょう。
サジェストのランキングは、データ集計基盤で集計されたデータを基に生成されており、検索結果の指標には、以下のようなパラメーターを加味してランキングを生成しています。またサイトによっては、ジャンルやカテゴリを選択した場合のキーワードなども加味しています。これらは全てHadoopで集計処理が行われており、1年から2年分の検索ログとユーザー行動ログを掛け合わせて集計しています。
指標となるデータと加点パラメーター
- キーワード件数
期間ごとのキーワードの集計データです。可視化基盤で集計されたデータを活用します。
- ヒット数
検索システム(Elasticsearch、Apache Solr)などでマッチした検索ヒット数です。
- 選択されたサジェスト候補
検索されたサジェスト候補は、カスタマーにとって有益な情報です。「何番目に表示されたサジェスト候補か」も同様に加味します。
- CTR
検索結果ページから詳細ページなどに遷移した割合です。
- アクション率
CTRに加えて、実際にアクション(コンバージョン)につながった割合です。
- フレッシュネス
新しい期間で検索されたキーワードほど高い点数になり、古いスコアになるほど低い点数になります。
- シーズンスコア
季節に左右されるトレンドも加味しています。1年前にスコアが上がったクエリは、加点を行います。こうすることで、季節性があるキーワード(鍋、かき氷など)が上位に表示されるようにしています。
減点パラメーター(もしくはインデックスから削除する要素)
- 選択されていないワード
選択されていないキーワード候補は、キーワード候補とは関連が弱い可能性があるのでスコアを減点します。
- ゼロマッチ
検索結果に表示されないものに関しては、サジェスト候補に表示させてもカスタマーを混乱させてしまうだけなので、検索インデックスから除外します。
- NGワード
サイトにふさわしくないキーワードや放送禁止用語なども同様に検索インデックスから除外します。
今後の展望――Apache Spark、Apache Drillの活用に向けて
QassはMapRのHadoopディストリビューションを活用してデータ集計を行っていますが、MapRのHadoopのバージョンアップに伴い、現在新しい基盤を構築しています。
新しい分析基盤では、主に現在話題のApache Sparkを活用する予定です。Apache Sparkには、機械学習が簡単に利用できる「MLib」などのライブラリがあるので、機械学習を利用してランキングアルゴリズムや辞書生成などを行っていくことになるでしょう。Apache Sparkを活用した機械学習や検索ランキングをどのようにチューニングしているのかに関しては、ノウハウを蓄積次第、紹介していこうと考えています。
平行して、「アドホックな分析にApache Drillが利用できないか」の検証も始めています。
次回は、DevOpsの取り組みについて
今回は、データ集計基盤で集計されたデータの可視化、また集計データを活用したキーワードサジェストの仕組みを紹介しました。
次回は、QassにおけるDevOpsの取り組みを紹介します。
筆者紹介
高林 貴仁
2011年9月リクルート入社(2012年10月の分社化後はリクルートテクノロジーズ在籍)。Hadoop基盤の構築後、R&Dの基盤技術の調査検証後、検索基盤QASSで、Elasticsearchを利用した検索システムの開発に従事
Twitter:https://twitter.com/tatakaba
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Hadoopは「難しい・遅い・使えない」? 越えられない壁がある理由と打開策を整理する
ブームだったHadoop。でも実際にはアーリーアダプター以外には、扱いにくくて普及が進まないのが現状だ。その課題に幾つかの解決策が出てきた。転換期を迎えるHadoopをめぐる状況を整理しよう。 - いまさら聞けないHadoopとテキストマイニング入門
Hadoopとは何かを解説し、実際にHadoopを使って大規模データを対象にしたテキストマイニングを行います。テキストマイニングを行うサンプルプログラムの作成を通じて、Hadoopの使い方や、どのように活用できるのかを解説します - 検索エンジンの常識をApache Solrで身につける
Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 - 全文検索エンジン「Lucene.Net」を使う
サイト構築などで使用できる検索エンジンをVBで活用。日本語アナライザを用いたインデックス作成から検索アプリ作成まで。 - クックパッド、グリー、ぐるなび、CROOZは検索技術をどう使っているのか:検索技術を使うなら知ってないと損する6つのこと
ソーシャルアプリなど大規模Webサービスや企業内システムでも欠かせない検索技術のまとめ - Namazuによる全文検索システムの導入
サーバに集積した情報を再利用するには全文検索システムが必要だ。Namazuのインストールから設定、WordやExcelファイルのサポート方法、効果的な運用方法までを解説する