Let the Agent Steer: Closed-Loop Ranking Optimization via Influence Exchange
Organizations: Shopee
Abstract
Recommendation ranking is fundamentally an influence allocation problem: a sorting formula distributes ranking influence among competing factors, and the business outcome depends on finding the optimal "exchange rates" among them. However, offline proxy metrics systematically misjudge how influence reallocation translates to online impact, with asymmetric bias across metrics that a single calibration factor cannot correct. We present Sortify, the first fully autonomous LLM-driven ranking optimization agent deployed in a large-scale production recommendation system. The agent reframes ranking optimization as continuous influence exchange, closing the full loop from diagnosis to parameter deployment without human intervention. It addresses structural problems through three mechanisms: (1) a dual-channel framework grounded in Savage's Subjective Expected Utility (SEU) that decouples offline-online transfer correction (Belief channel) from constraint penalty adjustment (Preference channel); (2) an LLM meta-controller operating on framework-level parameters rather than low-level search variables; (3) a persistent Memory DB with 7 relational tables for cross-round learning. Its core metric, Influence Share, provides a decomposable measure where all factor contributions sum to exactly 100%. Sortify has been deployed across two markets. In Country A, the agent pushed GMV from -3.6% to +9.2% within 7 rounds with peak orders reaching +12.5%. In Country B, a cold-start deployment achieved +4.15% GMV/UU and +3.58% Ads Revenue in a 7-day A/B test, leading to full production rollout.
Figures & tables
| Table | Role | Key Fields | Write Pattern |
|---|---|---|---|
| episodes | Fact table: one row per round with paired offline-online snapshots | episode_key, offline_metrics, online_uplifts, status | Append-only; status: offline deployed online |
| offline_candidates | Top-5 parameter candidates per round | episode_key, rank, params, metrics | Append per round |
| prior_relations | Current Belief channel state: slope & intercept per metric pair | relation_key, slope, intercept, eta | Upsert per round |
| prior_observations | Raw (offline, online, beta) triples per metric pair and episode | relation_key, episode_key, offline_uplift, online_uplift | Append with idempotency |
| prior_update_history | Belief channel audit trail | method (lms/llm), old/new slope, old/new intercept | Append-only |
| penalty_wt_upd_hist | Preference channel audit trail | constraint_metric, pressure, step, old/new weight | Append-only |
| Component | Specification |
|---|---|
| Search engine | Optuna TPE sampler Akiba et al. (2019) |
| Trials per round | 5,000 |
| Parallel workers | 25 (Constant Liar strategy) |
| State database | SQLite ( agent_memory.db ) |
| Parameter publishing | Redis key-value store |
| Search time per round | 15–30 minutes |
| Exp-401838 | Exp-437160 | |
|---|---|---|
| Market | Country A PDP | Country B PDP |
| Rounds | 7 (warm-start) | 23 (V1: 11 + V3: 12) |
| Duration | 25 hours | V1: 03-05–07; V3: 03-10–13; freeze 03-14; 7d AB 03-15–22; rollout 03-24 |
| Start cond. | Warm-start from existing Memory DB state | Cold-start, default priors |
| Obs. window | 3.5 h/round | 6 h/round (V3); 7d static AB post-freeze |
| Proc. time | 25–50 min/round | 25–50 min/round |
| Round | GMV | Orders | Ads Revenue | Advertiser Value |
|---|---|---|---|---|
| R2 | 3.6% | 0.0% | +0.7% | +7.9% |
| R3 | 1.5% | +1.7% | 0.8% | 1.0% |
| R4 | +0.2% | +1.7% | 8.7% | 8.1% |
| R5 | +1.9% | +3.8% | 5.8% | 5.6% |
| R6 | +0.9% | +2.7% | 9.4% | 10.8% |
| R7 | +9.2% | +12.5% | +5.7% | 8.9% |
| Round | Uplift | Online GMV | Observation |
|---|---|---|---|
| R2 | +18.2% | 3.6% | Significantly optimistic offline; positive offline uplift did not translate to positive GMV |
| R7 | +41.6% | +9.2% | Optimistic bias remains, but after calibration the offline gains begin to translate reliably into positive online GMV |
| Statistic | Exp-401838 |
|---|---|
| ps_ads_wo range | 1.96–8.91 |
| Oscillation ratio (max/min) | 4.5x |
| Complete swing cycles | 2 |
| Second cycle narrower than first | Yes |
| Phase | Exp-401838 |
|---|---|
| Early (R2) | 5 items, full recalibration |
| Middle (R3–R6) | 2–3 items, decreasing magnitudes |
| Late (R7) | 2 items, smallest magnitudes ( ) |
| Convergence trend | Clear convergence : 5 2 items, magnitude 0 |
| Metric | Value | Constraint / Target | Status |
|---|---|---|---|
| Offline objective | 0.493 | Maximize | Achieved |
| uplift | +4.9% | +4% | Met |
| change | % | % | Near boundary |
| ads_top10_rate | — | Constrained | Met |
| ps_org_wc change | +271.2% (1.0 3.71) | — | Largest adjustment |
| ratio_ads change | % | — | Ad share compressed |
| Parameter | Value | Interpretation |
|---|---|---|
| ps_org_wc | 7.667 | Organic Click weight (dominant) |
| ps_ads_wc | 4.381 | Ads Click weight (high) |
| ps_org_wg | 0.568 | Organic GMV weight (suppressed) |
| ps_org_wo | 0.805 | Organic Order weight (suppressed) |
| ps_ads_wg | 0.641 | Ads GMV weight (suppressed) |
| ps_ads_wo | 0.957 | Ads Order weight (moderate) |
| Metric | Diff | Note |
|---|---|---|
| GMV/UU | +4.15% | Primary KPI |
| GMV | +4.10% | Consistent with GMV/UU |
| GMV/Order | +3.97% | Average order value drives GMV |
| Order/UU | +0.17% | Near-neutral |
| Ads Revenue | +3.58% | Ad revenue co-positive |
| CPC | +4.19% | Higher per-click value |
| Metric | Value | Notes |
|---|---|---|
| Total cycle time | 4 hours | 3.5h accumulation + 25–50min processing |
| Daily optimization rounds | 6/day | 4h/round cadence |
| Trials per round | 5,000 | 25 workers; 15–30min search |
| Human intervention (post-coldstart) | Zero | Within the inner optimization loop |
| Consecutive unattended rounds | 7; 23 | Exp-401838 and Exp-437160; governance-limited, not failure-limited |
| A/B fetch retry success | 5 5 min | No data loss observed |
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
| Symbol | Definition | Introduced |
|---|---|---|
| Ranking permutation for request under parameters | Eq. 1 | |
| Symmetric group acting on items | Eq. 1 | |
| Total score vector for request | Eq. 2 | |
| Comparison hyperplane for items | Eq. 2 | |
| Ranking chamber corresponding to permutation | Eq. 2 | |
| 7-dimensional sorting parameter vector | Eq. 10 |
| Abbreviation | Full Form |
|---|---|
| GMV | Gross Merchandise Value |
| PDP | Product Detail Page |
| TPE | Tree-structured Parzen Estimator |
| LMS | Least Mean Squares |
| YOLO | You Only Live Once (continuous pipeline mode) |
| KPI | Key Performance Indicator |
Recommender Systems
Recommender systems predict and rank items for people using interaction histories, content, context, and feedback.
See all 514 papers