ML Systems and Recommendations
대규모 랭킹·추천·검색 ML 시스템의 아키텍처, 임베딩, 인과 측정 패턴
개요
추천·랭킹·검색은 대형 플랫폼에서 가장 중요한 경험을 구동한다. 그러나 프로덕션 모델은 거의 항상 가장 큰 모델이 아니라 — 밀리초 지연·비용 제약 하에 수백만 사용자의 거대 후보 집합을 스코어하는 compact·latency-sensitive 모델이다. 이 긴장(풍부한 행동·딥러닝 vs 저지연·저비용)이 이 영역의 거의 모든 설계를 형성한다. 공통 해법은 무거운 계산을 오프라인에서 한 번, 가벼운 스코어링을 온라인에서 여러 번이다.
후보 생성 → 랭킹 funnel
대규모 시스템은 후보를 단계적으로 좁힌다(recall vs latency trade-off):
| 단계 | 목적 | 대표 기술 |
|---|---|---|
| Retrieval (L1) | 거대 후보 → 수백 (recall 우선) | ANN(IVFPQ), two-tower 임베딩, 후보 생성 |
| Light Ranking | 수천 → 수백 (throughput 우선) | GBDT(XGBoost/LightGBM), 사전 계산 피처 |
| Heavy Ranking (L2) | 정밀 스코어 (precision 우선) | DLRM, DCNv2, full real-time 피처 |
| Auction/Selection | 최종 결정·가격 | quality multiplier + second-price 경매 |
- ML Ranking Systems — MMoE/Hetero-MMoE, Bayesian tree, multi-objective
- Ad Tech Data Infrastructure — 광고 랭킹 3-stage funnel + 경매(How Ads Ranking Works), CTV, MTA
Two-Tower 임베딩과 시맨틱 검색
쿼리와 아이템을 각각 인코딩해 공유 임베딩 공간에서 유사도를 스코어하는 two-tower(dual encoder) 패턴이 저지연·예측 가능 비용의 표준. LLM은 강력하나 수십 ms·일 수십억 쌍 스코어링엔 너무 비쌈.
- Multimodal Search — Zepto 시맨틱 검색, Criteo CLEPR(retail media guardrail), LinkedIn MUSE(13억 프로필, Matryoshka 임베딩, LLM-as-Judge teacher)
- How We Rebuilt Search Ranking at Faire with Deep Learning — 딥러닝 검색 랭킹
- LLM-as-Judge — MUSE Teacher가 임베딩의 supervision 신호(engagement 아닌 qualification)
행동 시퀀스와 임베딩 증류
긴 사용자 행동 history를 직접 서빙하는 대신, 오프라인 시퀀스 모델로 고정 길이 임베딩으로 증류하고 다수 온라인 모델이 dense feature로 재사용(“one producer, many consumers”):
- Generative Recommender Systems — Shopify autoregressive 추천(RoPE, negative sampling)
- Feature Store — Pinterest User-Sequence 플랫폼, Indeed UBM(multi-sequence → unified single-sequence, 다운스트림 lift 2배)
- Semantic IDs — Instacart RQ-VAE 계층 코드, generative retrieval(+34% add-to-cart), catalog audit
- Distilling Long-Tail User Behavior into Embeddings at Indeed · Making User-Sequence Data Cheaper and Faster at Pinterest
인과 측정 — 클릭을 넘어서
랭킹은 engagement에 최적화되지만, 진짜 가치(인과적 기여)는 다르다. exposure/survivor bias가 핵심 함정:
- Causal Inference — Meta DoubleML(A/B 불가 시 콘텐츠 가치), CATE/uplift vs uptake
- Ad Tech Data Infrastructure — auction log에 loser 포함(counterfactual·exposure bias 보정)
- Predicting Risk in Content Launches at Netflix — boosted tree 회귀로 launch 위험 예측
- Predicting Rider Conversion in Sparse Data Environments with Bayesian Trees — sparse 환경 Bayesian
그래프를 ML 피처로
- Knowledge Graph Infrastructure — Uber DeepETT(graph-aware transformer, 그래프 임베딩 사전 계산으로 GNN 이점 + 상수 시간 추론), Airbnb identity graph
- Uber DeepETT - Real-Time Traffic Forecasting with Graph-Aware Transformer
공통 교훈
- 오프라인 무거움, 온라인 가벼움: 무거운 시퀀스/그래프 모델은 오프라인에서 임베딩으로 증류, 온라인은 dense feature
- recall vs latency를 단계별로 trade: funnel의 각 stage가 다른 균형점
- engagement ≠ 인과 가치: exposure bias 관리가 “year 3에도 좋은 모델”을 가름
- embedding이 결정: RQ-VAE/quantizer는 embedding이 주는 구조를 압축할 뿐 — 비즈니스 문제로 embedding 선택
- calibration이 경매·다운스트림을 좌우: raw score는 확률 아님(uncalibrated면 경매 수식·다운스트림 모델이 깨짐)
관련 위키
- ML Ranking Systems
- Generative Recommender Systems
- Multimodal Search
- Semantic IDs
- Feature Store
- Ad Tech Data Infrastructure
- Causal Inference
- Knowledge Graph Infrastructure
- Multimodal Data Processing Engine — 멀티모달 임베딩 생성 인프라
- LLM Fine-Tuning — 도메인 모델 학습
관련 이슈: DEW #256, #258, #259, #260, #261, #262, #264, #266, #268, #269, #270, #271, #273, #274, #275, #276