Upgrade to Pro — share decks privately, control downloads, hide ads and more …

立ち上げ期のサービスでレコメンドを導入した際の機械学習モデルの開発とアーキテクチャの事例

tsuzuki
August 27, 2022

 立ち上げ期のサービスでレコメンドを導入した際の機械学習モデルの開発とアーキテクチャの事例

tsuzuki

August 27, 2022
Tweet

More Decks by tsuzuki

Other Decks in Technology

Transcript

  1. 課題1 アルゴリズムの種類が多すぎる
 Context-Aware Recommendation Pop ItemKNN BPR NeuMF ConvNCF DMF

    FISM NAIS SpectralCF GCMC NGCF LightGCN DGCF LINE MultiVAE MultiDAE MacridVAE CDAE LR FM NFM DeepFM xDeepFM AFM FFM FwFM FNN PNN DSSM WideDeep DIN DIEN DCN AutoInt XGBOOST LIGHTGBM FPMC GRU4Rec NARM STAMP Caser NextItNet TransRec SASRec BERT4Rec SRGNN GCSAN GRU4RecF SASRecF FDSA S3Rec GRU4RecKG KSR FOSSIL SHAN RepeatNet CKE CFKG KTUP KGAT RippleNet MKR KGCN KGNNLS General Recommendation ENMF NNCF RaCT RecVAE EASE SLIMElastic SGL ADMMSLIM NCEPLRec SimpleX NCL Sequential Recommendation Knowledge-based Recommendation HGN HRM NPE LightSANs SINE CORE
  2. DROBE のレコメンドに関わる仕様や制約条件
 • サインアップ時に豊富なユーザーデータを取得出来る • ユーザーが能動的に商品を探索などしないので行動ログがほぼ使えない (当時) • ユーザーからは返品も含め明示的なフィードバックが得られる •

    商品の種類が豊富 • 商品の入れ替わりが激しい • 利用の間隔が長いユーザーが多い サービスの特徴 相性が良さそうなア ルゴリズム • ID だけではなくユーザーやアイテムの特徴を使える • 明示的フィードバックを利用可能
  3. Context-Aware Recommendation Pop ItemKNN BPR NeuMF ConvNCF DMF FISM NAIS

    SpectralCF GCMC NGCF LightGCN DGCF LINE MultiVAE MultiDAE MacridVAE CDAE LR FM NFM DeepFM xDeepFM AFM FFM FwFM FNN PNN DSSM WideDeep DIN DIEN DCN AutoInt XGBOOST LIGHTGBM FPMC GRU4Rec NARM STAMP Caser NextItNet TransRec SASRec BERT4Rec SRGNN GCSAN GRU4RecF SASRecF FDSA S3Rec GRU4RecKG KSR FOSSIL SHAN RepeatNet CKE CFKG KTUP KGAT RippleNet MKR KGCN KGNNLS General Recommendation ENMF NNCF RaCT RecVAE EASE SLIMElastic SGL ADMMSLIM NCEPLRec SimpleX NCL Sequential Recommendation Knowledge-based Recommendation HGN HRM NPE LightSANs SINE CORE DROBE のレコメンドと相性が良さそうなアルゴリズム
 この辺りのアルゴリズムの相性が良さそう
  4. 開発の方針
 Managed 独自実装 OSS 実装難易度 本番化難易度 カスタマイズ性 具体的選択肢 中 低

    中 低 中 低 DLRM 高 高 高 DROBEの場合は • ある程度知識のある ML エンジニアが居た • レコメンドをサービスの中で重要な機能と位置付けた • 想定している結果を出すまで PDCA を回す前提 という事を背景に、OSS を中心に検証を開始
  5. https://arxiv.org/pdf/1507.08439.pdf LightFM
 Metadata Embeddings for User and Item Cold-start Recommendations

    という論文の python 実装 主な特徴 • user, item 両方の cold start 問題に対応出来る • Cython を使って書かれているため CPU でもある程 度高速に動作する
  6. DROBE における Ranker
 • サービス全体のランキング
 • 価格順
 • 新着順
 •

    ユーザー毎にパーソナライズされたランキング
 検索エンジン 機械学習モデル
  7. DROBE のパーソナライズ機能
 • Filter と Ranker を実装とマッピング 
 • 協調動作部分はバックエンドのロジックとして実装

    する
 ◦ どういった順番で Filter と Ranker を適用して クライアントにレコメンドするアイテムを返すの か

  8. 動作確認と評価
 stg や QA 環境はデータが本番と違う場合が多い 
 
 レコメンドモデルは本番のデータを使ってトレーニングする事が多い 
 


    本番のデータを使ってトレーニングしたレコメンドモデルを QA 環境にあげても API の動作確認は出来るがモデ ルの動作確認は難しい 

  9. • 開発と本番で同じデータを使えるようにしておく 
 
 • CPU で動作させる事ができれば通常の Web インフラが使える 


    
 • 機械学習機能は動作確認や性能の判断が困難な場合が多いので、本番環境で検証出来る仕 組みを考えておく
 本番運用 まとめ