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 경매

Two-Tower 임베딩과 시맨틱 검색

쿼리와 아이템을 각각 인코딩해 공유 임베딩 공간에서 유사도를 스코어하는 two-tower(dual encoder) 패턴이 저지연·예측 가능 비용의 표준. LLM은 강력하나 수십 ms·일 수십억 쌍 스코어링엔 너무 비쌈.

행동 시퀀스와 임베딩 증류

긴 사용자 행동 history를 직접 서빙하는 대신, 오프라인 시퀀스 모델로 고정 길이 임베딩으로 증류하고 다수 온라인 모델이 dense feature로 재사용(“one producer, many consumers”):

인과 측정 — 클릭을 넘어서

랭킹은 engagement에 최적화되지만, 진짜 가치(인과적 기여)는 다르다. exposure/survivor bias가 핵심 함정:

그래프를 ML 피처로

공통 교훈

  1. 오프라인 무거움, 온라인 가벼움: 무거운 시퀀스/그래프 모델은 오프라인에서 임베딩으로 증류, 온라인은 dense feature
  2. recall vs latency를 단계별로 trade: funnel의 각 stage가 다른 균형점
  3. engagement ≠ 인과 가치: exposure bias 관리가 “year 3에도 좋은 모델”을 가름
  4. embedding이 결정: RQ-VAE/quantizer는 embedding이 주는 구조를 압축할 뿐 — 비즈니스 문제로 embedding 선택
  5. calibration이 경매·다운스트림을 좌우: raw score는 확률 아님(uncalibrated면 경매 수식·다운스트림 모델이 깨짐)

관련 위키

관련 이슈: DEW #256, #258, #259, #260, #261, #262, #264, #266, #268, #269, #270, #271, #273, #274, #275, #276