One-Step Retrieval Framework for Real-Time Sponsored Search Ads Using Hierarchical Text Representations
Tongtong Liu, Renyu Zhang, Jiayu Ding, Hongchao Guo, Xintao Yang, He Wei, Zhaoyu Li, Haiyang Wu
cs.IR
2026-09-16
ANGLE generates intent-abstract text with Hunyuan and retrieves ads in one model. Online spend +1.81%, GMV +2.16%. Offline HR@10 0.1961 vs 0.1313 for BERT.
Sponsored search still runs a cascade: retrieval, relevance, pre-rank, rank, each trained on its own objective. High-value ads dropped early never come back. LLM generative retrieval tries to collapse the funnel, but most systems stamp ads with discrete semantic IDs. The base model does not know those IDs, so SFT has to memorize SID-to-ad maps. New ads need new maps, and one-to-one decoding is slow. Rewards often come from a small pCTR head, so the LLM never really scores commercial value.
ANGLE writes each ad as two short texts. Commercial intent is a compressed category (about 700k coarse intents after cleaning). The ad abstract is a concrete phrase taken from the title, such as a game name under the intent "role-playing game". Hunyuan-13B builds these pairs offline and an inverted index maps intent×abstract to ads. New ads get a constrained intent and a free abstract; the index refreshes hourly without retraining the query model.
The query model is a 1B GDR-LLM (Hunyuan-1B) with three heads on one backbone.
Inference uses dynamic constrained beam search (beam 64). Intent is decoded on a prefix trie, then the abstract trie is rebuilt from ads the current user is eligible to see. Paths with no eligible ad are pruned. Intent is capped at 3 tokens, abstract at 4, about 90 ms per pair. Retrieved ads skip relevance and pre-rank and go straight to ranking. Ranking stays, because creative selection and bidding still live there.
Offline: 10k queries and about 220k candidates, including random distractors, against seven baselines.
| Method | HR@10 | HR@50 | HR@100 | MAP | ACR |
| BERT | 0.1313 | 0.2384 | 0.3075 | 0.3910 | 47.70% |
| Hunyuan-2B | 0.1153 | 0.2184 | 0.2889 | 0.3519 | 42.51% |
| DSI-1B | 0.0320 | 0.0830 | 0.1058 | 0.2831 | 55.49% |
| ANGLE-1B | 0.1961 | 0.4834 | 0.5273 | 0.4834 | 69.17% |
Ablations: dropping the abstract cuts HR@10 to 0.1738 and HR@100 to 0.3519, worse than dropping intent. Replacing DCBS with free generation plus ANN alignment yields HR@10 0.1442 and ACR 55.14%. A base LLM under constrained decoding falls to HR@10 0.1278. Fine abstracts and a legal-set constraint matter more than a bigger query model.
Online A/B ran five days at 20% traffic. On WTS, spend +1.81%, GMV +2.16%, clicks +1.50%, conversions +1.44%, impressions +2.49%. On QBS, spend +6.57%, GMV +5.01%. It now supplements the ranking queue in full traffic. Serving uses hundreds of L40 GPUs in FP8, about 30 QPS per card, with a 60 ms end-to-end budget.
The hard parts of generative ad retrieval are new ads and eligibility constraints, not another SID vocabulary. Short text as the intermediate representation lets the LLM use world knowledge, and the index can move hourly. A 1B query model plus a 13B offline ad model fits a latency budget. For a cascade already in production, this collapses retrieval, relevance, and pre-rank into one generation pass and leaves ranking in place for now.
Ranking remains. The authors say so: creative and bidding still depend on it. Relevance labels are clicks, which are not relevance, and DPO on spend can reinforce already expensive ads. Ad-side SFT is about 5k examples versus 430k on the query side, so hierarchical text quality hangs on cleaning. One online paragraph says +1.18% spend, which disagrees with the abstract and Table 3 at +1.81%; this write-up uses the table. WTS and QBS are anonymized surfaces. There is no head-to-head latency or cost comparison against the live cascade, only ANGLE's own budget.