ARK-3 · ADSRANKThree-Stage Click-Through-Rate Ranking Engine
Two-tower retrieval ▸ FAISS candidate recall ▸ DeepFM fine-ranking ▸ ONNX Runtime C++ serving. Trained on Criteo display-ad impressions.
1Features
- DeepFM ranker with learned field embeddings
- Linear, factorisation-machine and deep MLP terms over one shared embedding table
- Feature-interaction ablation: LR / FM / DNN / DeepFM under one training protocol
- Ranker-distilled two-tower retrieval
- Towers trained to imitate the ranker, not raw clicks
- Click-trained, popularity and ranker-prior baselines included
- FAISS IVF candidate recall, inner-product exact w.r.t. the tower score
- ONNX export + C++ inference harness
- Parity-checked against PyTorch
- Thread-count sweep and reusable IoBinding buffers
- Runs live in this page — evaluation board
2Applications
- Display-advertising auctions (pCTR × bid)
- Sponsored-search and feed candidate ranking
- Offline funnel-budget studies: how many ranker calls a request actually needs
- Teaching reference for retrieval ↔ ranking consistency
3Description
ARK-3 is a complete, reproducible ad-ranking stack built on a sample of the Criteo click logs. A DeepFM ranker models second-order and deep feature interactions over every embedded field. A two-tower model, trained to imitate that ranker, maps contexts and ads into one vector space so FAISS can shortlist candidates; DeepFM then re-scores only the shortlist.
The ranker is exported to ONNX and served from a C++ harness built on ONNX Runtime, where thread placement and buffer reuse are tuned against a fixed request shape: one context × a shortlist of candidates.
| Part | Package | Contents |
|---|---|---|
| ARK-3 ranker | deepfm.onnx | DeepFM, field indices → click probability |
| ARK-3 retriever | two_tower_distilled.pt | query + item towers, per-item bias |
| ARK-3 web (pruned) | ranker_web.onnx | ranker pruned to the evaluation-board vocabulary |