[etc] : Recsys2015で発表されたCriteo社の最新レコメンド情報を読む
www.slideshare.net
criteo社のRecommendation Logic
Criteo社の広告枠への配信に対するCTR/CVR予測モデルの話以外にもRecommendLogicに関する発表がRecsys2015であったので見てみました。一般的なRecommed Systemでは良く見受けられる構成や手法なのでインパクトがある内容ではありませんが共有します。Keywords : Logistic Regression, Hadoop, Memcached, collaboration filterling, Recsys2015,
Criteo社のCTR/CVR予測モデルは下記論文などを参照 Simple and scalable response prediction for display advertising
Criteo社の説明とインフラ
- 2005年に設立、フランスに本社を置き世界に社員1700人(そのうちEnginnerが300人)、100億のUniqUserを持つ。
 - 秒間80万のHTTPリクエスト、29000インプレッション、RTBの処理を10ms、Recommendの処理を100msでこなす。
 - 3つの大陸にインハウスのデータセンターが7つ。サーバー15000台、ヨーロッパに巨大なHadoop Clusterがある。35PBのBig Dataがある。
 Criteo社のデータソース
- 商品カタログデータが広告主ごとに100万ほど。その広告主を10000社持つ。
 - インターネットユーザーの行動履歴のイベント数が毎日2B。
 - 広告表示やクリックなどのイベントデータが毎日20B。
 Recommend Logic
- やりたいこととしてはRecommendの関数にインターネットユーザーを入れた時に一番のオススメ商品が出るようにしたいが、実際のところ複数の商品が出るし、新鮮さも保たなければならない。
 - できることとしてはOfflineで事前に商品の推薦を選んでおき、OnlineでRecommendationを決定する。
 - Offlineで広告主からインターネットユーザーの行動ログを送ってもらい、商品ランキング/カテゴリ商品ランキングを定め、商品閲覧の共起から類似商品を導き出し、商品購買の共起から補足商品を推薦する。
 - インターネットユーザーが商品Xを閲覧した時の推薦する候補は以下のもの
 
- 閲覧した商品Xそのもの。(直接商品)
 - 他のインターネットユーザーが商品Xと閲覧共起しているもの。(類似商品)
 - 他のインターネットユーザーが商品Xを閲覧した上で購入したもの。(補足商品)
 - 広告主のサイトで最も見られて/買われているもの。(売れ筋商品)
 System Overview
- 4時間おきに広告主から商品カタログデータを貰い、Memcachedに入れる。
 - 広告主サイト側でのインターネットユーザーのイベントログを送ってもらい、商品アイテム推薦を導き出すためにHadop MapReduceにかける。MapReduceされた推薦データは12時間おきにMemcachedに入れられる。
 - 広告表示/クリック/コンバージョンデータを6時間おきに取得し、それを基に予測モデルをHadoop上で更新する。
 - Recommendのリクエストが来るたびに、インターネットユーザーのデータを用いて推薦アイテムを商品カタログから参照する。
 - 機械学習の予測モデル(おそらくクリックやコンバージョン予測)はLogistic Regressionを利用している。なぜならばLRはスケールするし、速いし、たくさんの特徴を扱うことができる。(bitのhash magicを使うなどして)
 - Memcachedに入れられた類似商品、最も見られている商品、最も買われている商品をスコアリングして高いものから推薦する。
 Recommend Logicの評価
- オンラインABテストを行う際はインターネットユーザーの50%ずつにそれぞれのモデルを適用するが、これらは以下の理由により煩わしい。
 
- すぐに多くのお金を失う。
 - テストの期間が長くなってしまう。信頼がおける期間は2週間ぐらい必要。
 - ソースコードを本番同様にしなければならない。
 - インフラ的に高負荷になってしまう。
 - 広告主のアカウントがそこまで十分な時間をくれない。
 - その代わりとしてOnlineのログを使ったテストフレームワークがある。
 - しかし自分たちで管理するデータしかもっていない。(外部データは非常に高価なため)
 - それでも私達は完全な間違いをしないことの確信がある。
 - Onlineのパフォーマンスを上げるためにOfflineテストの最善策を見つけなければならない。以下は参考論文 Counterfactual Reasoning and Learning Systems
 今後のUpdate
- より長期的なUserのProfileデータを活用する。
 - より多く/より良い商品情報を利用する。(画像、文脈、NLP)
 - 類似商品計算のUpdate。
 - 商品スコアリングの結合。
 - 私たちはClick予測のデータを公開している。
 
- 4GB display-click data : Kaggle challenge in 2014 http://bit.ly/1vgw2XC
 - 1TB Display-Click data (industry’s largest dataset) : http://bit.ly/1PyH4Vq
 
- 4 billion of observations
 - 156 billion feature-value
 - available on Microsoft Azure
 - used by edX (UC Berkeley)