eBay上のマーケットプレイスでの機械学習を用いたパーソナライズレコメンデーションを提供するためにどのようにシステムを構築したかの話.
3つのフェーズに分けて紹介してくれている.
今回のレコメンドモデルとしては,Two-TowerのDNNモデルを採用している.1つがアイテムの埋め込み表現,もう1つがユーザーの埋め込み表現で入力のユーザーの埋め込み表現に対して,kNNで最近傍のアイテムの埋め込み表現をサーチ方法で実現している.
論文があるので,時間がある時にでも読みたい.
今回構築したTwo-TowerのDNNモデル
候補の計算はオフラインで行い,結果をキャッシュして高速なランタイムアクセスができるようにしているとのこと.バッチでする場合の定番の方法.
フェーズ1において,生データをレコメンドリストに変換する過程は以下の手順になっている.
パイプラインのスケジューリングは,cron / Jenkins / Airflowを組み合わせて実現している.
Architectural diagram for the Phase 1 recommender system.
フェーズ2での重要な要素はリアルタイムでのkNN検索を実現することで,HNSW or ScaNNのようなANN手法を用いることでそれを実現できるようにしている.