35 slides · speaker notes · the deck · present it
The Great Convergence
Open with the business question: does your product help customers find what they want—or just give them another interface? Introduce colleagues as contributors, with names confirmed before the event. ⏱ 9:00 · ½ min — Say the title once and move on; the room is still settling. No introduction here.
Recommendation, Search, and Conversation in AI
Two perspectives: research and production
Spend 30 seconds establishing the two vantage points, not reading a CV. The promise is practical lessons informed by research—not a vendor pitch or literature review. ⏱ 9:00:30 · 1 min — One line each: CTU, the research path, Recombee. The point is the two vantage points — academic evaluation and production at scale — not the CV.
Customers moved from keywords to intent
Use the timeline only as visual context; skip the dates and algorithms. A customer describing a problem instead of naming a product is the important change. ⏱ 9:01:30 · 1½ min — Four eras by what could be scored: match, rank, learn vectors, generate over evidence. Land on the two questions; the talk answers them. Skip the individual examples if behind.
The opportunity is better discovery—not a chatbot on every page.
Three interfaces, one ranking problem
⏱ 9:03 · 1½ min — Three interfaces, one decision: what comes first. Say that even the chat answer is a ranking with a sentence around it. If behind, skip the table.
The interface changes; the decision remains: what should come first?
Learning to rank added a learned ordering layer
⏱ 9:05:30 · 2 min — Two stages: a cheap filter that must not miss, a learned ranker that orders. Trace the two columns, then the last line: a reranker cannot rescue what the first stage dropped.
Pointwise linear regression learns feature weights; it cannot rerank documents omitted from the BM25 top-k set.
Training the ranking model
⏱ 9:07:30 · 1½ min — Labels decide what the model can learn. Read the training-data column, not the formulas; mention that click labels carry position bias. If behind, skip the worked example.
One pair supervises 1 score difference between 2 documents; it does not identify absolute relevance probabilities.
Transformers in search
⏱ 9:09 · 1½ min — Cross-encoder: accurate, unsearchable. ColBERT: encode documents in advance, compare tokens at query time. Say the pattern — precompute the catalogue, keep the per-request work small.
ColBERT retains token-level matching while moving document encoding out of the query path.
Search became a personalized retrieval problem
⏱ 9:10:30 · 1½ min — The convergence claim made concrete: one user vector, search adds a query term. Name Alipay and BLaIR as proof at two scales. Say it holds for logged-in product search, not the public web.
Search ranks for a query q; personalization adds neural similarity between user u and document d.
A query is now a hypothesis about intent
⏱ 9:12 · 1½ min — A search box is a chain of predictions: what you meant, what matches, what to say. Keep hybrid retrieval in the picture — BM25 still catches exact terms. The last step opens the conversational part.
Search no longer matches a string; it predicts intent, retrieves evidence and composes an answer or ranked list of items.
(Petr) Bigger models are not automatically better investments
Do not explain the architecture or ranking metric; the point is that parameter count is a poor procurement criterion. Compare quality, latency and total cost on your own workload. ⏱ 9:15 · 1½ min — Structure over parameters on the right task: 0.6B beats 4B with the right encoder; sparse matches dense; CompresSAE gives 12× fewer parameters with a speed/exactness dial. Read the first and last row.
These are task-specific results—not promises of equivalent cost savings.
Your catalogue says what items are. Customers reveal what works.
Explain behavior as evidence, not mind-reading: a purchase and a click are different signals. This prepares the audience to see why a language model alone cannot replace a discovery system. ⏱ 9:16:30 · 1½ min — Content says what an item is, behaviour what people do with it. Read the 'works when' column. Land on: recommendation is retrieval conditioned on a person.
Recommendation helps choose before the customer knows what to type.
Live demo: help customers discover and choose
Cap this at 2½ minutes: one profile switch, one interaction, one descriptive query. Have screenshots or a recording ready, and frame the behavior as a demonstration—not evidence of conversion lift. ⏱ 9:19:30 · 2½ min — DEMO — 2½ minutes, no more. Switch one profile, add one interaction, type one descriptive query ('quiet European crime drama'). If behind, do the profile switch and the query only.
Product question: does this shorten the path to a useful choice?
Let customers correct the system's assumptions
Move from passive personalization to customer agency. A request for a different mood is a preference; a price ceiling is a rule, and the product should not confuse them. ⏱ 9:22 · 1 min — Every control today acts around the model's picture of you, not on it. Ask the question and move on: can a sentence edit the vector directly?
Conversation can make personalization easier to steer. Explicit constraints and inferred preferences need different treatment.
A language model is not your inventory system
This is the central architecture decision for a founder buying or building conversational commerce. Grounding reduces invented inventory, but explanations, permissions and changing stock still need checks. ⏱ 9:23 · 2 min — Hallucination here means an item that does not exist. Walk the middle column briefly, then the fix: the model chooses words, the recommender owns the inventory. If behind, go straight to the solution column.
Let the model choose the words—not invent the inventory.
Live demo: conversation grounded in the catalogue
Allow 2½ minutes for one refinement and one nonexistent-item test; rehearse the actual behavior rather than promising a refusal. State explicitly that this is a proof of concept and that interpretation and explanations can still be wrong. ⏱ 9:25 · 2½ min — DEMO — 2½ minutes. One conversational refinement, then ask for a film that does not exist and let the system decline. Say what it does not solve: intent parsing and explanations can still be wrong.
(Jarda) Research preview: steer recommendations with a sentence
The core question we’ve had - could we allow steering recommendations using natural language without some expensive reranking? And the answer is yes -pretty much every recommender stores embeddings of users and items and calculates the predicted interaction as their dot product. If we project the dense embeddings of users into sparse latent space and then learn mapping from item metadata to the sparse latent space, we are then able to take a user’s natural language request, map it to a meaningful change in the sparse embedding, and decode it to obtain manipulated user embedding. When we calculate the dot product of this manipulated embedding with item embeddings, it will score higher the items that are relevant to the natural language request without adding explicit reranking step. So for example a user with interaction history that reflects a profile of someone interested in politics and finance can type “I want to see more tour de france news” and the mapper will translate this into increasing a specific neuron activation in the sparse latent space, which after decoding will result in tour de france news getting naturally blended into politics and finance recommendations.
Jarda Hradil · MSc thesis, 2026 · experimental
(Dan) Would you put an LLM on every ranking request?
The token count and the price are both measured now, not a vendor quote or a guess: ~10,000 tokens/call is a typical candidate set run through our own truncator's token-estimation convention, plus the system prompt and instructions any LLM-as-ranker needs. The ~$0.08/M-token price comes from a $200/month GPU divided by its actual average throughput, not a price list. Actual bills still depend on model, token mix and caching — redo the arithmetic at your own traffic and compare cost per successful customer outcome. ⏱ 9:31 · 1½ min — One line of arithmetic: 1.5 billion ranking calls a day; a language model on that path is about $1.2 million a day before caching; a dot product is microseconds. Cost per request is an objective, not an ops detail.
Use generation where it adds value—not automatically on every page view.
(Dan) Where the milliseconds and the money actually go
This is the other half of the arithmetic: where the 100 ms budget from the previous slide actually goes, and the one thing that keeps it affordable. Retrieval takes about 40 ms, ranking about 60 ms; assembly is noise. 1.5 billion requests a day sounds like enormous diversity, but it isn't — query frequency follows a classic Zipf distribution, so a small head of intents covers most of the volume. We cache on that intent, not the exact text, so near-duplicate searches share a cached ranking instead of paying for a fresh GPU pass every time. Only real misses — after a combined vector-and-keyword retrieval pass — reach the GPU cluster, and even those get split across workers and scored in parallel. That only works because of the skew, and the skew runs out: cold-start and long-tail queries have nothing to cache against, so they hit the GPU cluster every single time. That cluster — GPU capacity, load balancing, failover for a worker dropping mid-request — is the real fixed cost behind the 100 ms number, not the cache. Retrieval has its own limit worth a one-liner if asked: a lightweight ANN index can miss recall and need a bigger graph before it holds up, and exact search only stays practical on a small catalogue — it doesn't scale to ours.
1.5 billion requests a day are not 1.5 billion different questions.
Buy measurable value—not model complexity
These are separate deployments, not a head-to-head benchmark. Even a small engagement gain can matter at scale, but engagement is not automatically revenue or customer welfare. ⏱ 9:32:30 · 1½ min — HSTU: three orders of magnitude of model complexity for 12.4%. OneRec: ten times the arithmetic, a tenth of the cost, because the cascade left the GPUs idle. Migration cost is not in either report.
Business case = incremental outcome − serving cost − integration and migration cost.
Four ways to avoid paying for the same work twice
Give this 30 seconds: reuse is often as commercially important as model innovation. Ask a supplier what is cached, what becomes stale and how latency behaves at peak traffic. ⏱ 9:34 · 1 min — The person's history is the expensive part of every request: cache it, share it between stages, never encode it twice. Read the first and last row; the rest is on the slide.
Different systems and baselines: these gains are not additive.
(Vojta) ELSA makes a strong linear baseline scale
The numbers in the figure are illustrative storage arithmetic for model parameters only: 10 million squared float32 values are about 400 TB; 10 million × 512 float32 values are about 20.5 GB. They exclude optimizer state, index structures, replication and serving overhead. ⏱ 9:35 · 1½ min — EASE is the baseline to beat, but its item-item matrix becomes the product constraint. At ten million items, the uncompressed matrix is about 400 TB. ELSA represents every item with a fixed-width vector instead: at 512 dimensions, about 20 GB before operational overhead. The threshold is not universal — catalogue sparsity, hardware and latency decide it — but the 2022 results found ELSA beneficial beyond roughly 20k items. The follow-up work asks how much farther we can compress those embeddings before quality moves: 10× smaller without reported loss, 100× smaller for a 2.5% loss. Keep a serious baseline that fits the system, then demand that more complex models beat it on the outcome and the bill.
Keep the baseline; make its footprint grow with the catalogue, not its square.
(Vojta) Sparse adapters specialize generic item embeddings
The evaluation holds out items, not merely user interactions. The adapter sees the training catalogue's item-description embeddings and learns only to reconstruct them. Interactions appear in validation-based model selection and final evaluation, not in adapter training. The 78 settings are 13 datasets × 3 frozen embedding models × 2 offline metrics: Recall@20 and NDCG@20. D-SAE is best in 46 settings, SAE in 24 and β-VAE in 8. The paper states that the sparse variants beat both dense adapters in 70 of 78 settings. Do not present this as online lift or as a Compresso benchmark. Compresso is the open-source PyTorch framework that packages top-k SAE training, sparse row-packed storage, pruning and clustering. ⏱ 9:36:30 · 1½ min — Generic text embeddings know everything and therefore underrepresent distinctions that matter inside one catalogue. We freeze the encoder and train a small adapter only by reconstructing the catalogue embeddings. No interactions train it. On held-out cold items, sparse adapters beat both dense adapter variants in 70 of 78 combinations across 13 datasets, three encoders and two offline metrics. Compresso packages that workflow so the sparse codes can also be stored and inspected as domain factors. The limit matters: this is preliminary offline content-based evidence. We have not shown online lift, latency or serving cost here.
Sparse adapters beat both dense alternatives in 70 of 78 evaluation settings.
(Vojta) beeFormer trains the text encoder on interaction loss
The design choice is where interaction supervision stops. In a projection model, the sentence Transformer remains generic and we learn a mapping from semantic to collaborative space. beeFormer replaces ELSA's free item matrix with embeddings produced by the Transformer, then lets ELSA's interaction reconstruction loss update the Transformer itself. In the offline experiments, Recall@20 on held-out MovieLens items was 0.4630 versus 0.3204 for the strongest Heater projection baseline. On the Amazon Books time split it was 0.0706 versus 0.0421 for SANSA. At serving time it is still a sentence encoder plus cosine similarity. The evidence is limited to offline tests: training cost and latency were not reported, and the standardized item descriptions were generated with Llama.
Projection learns around the encoder. beeFormer teaches the encoder what users choose.
(Tomáš L.) Colleague spotlight: when adapting a model actually helps
Script, 1½ min. Vojta just showed ELSA teaching a text encoder. My thesis asks two things: does the same work for a multimodal encoder — product text plus product image — and how do you measure it without fooling yourself. The measuring part is REEF: one config, several encoders, everything else pinned — same data, same chronological split, same 999 sampled negatives, same small ranker on top, same seeds. When a number moves, the encoder moved it. The table is BGE-M3 plus SigLIP2, frozen against the best adapted version: plus 16 to 29 percent Recall@10 on standard ranking, plus 14 to 39 percent on new items. Offline. The adapted version is three choices, each fixing something the frozen model gets wrong. LoRA, rank 16 on the attention projections, beat full fine-tuning in every in-domain cell — full fine-tuning even fell below frozen on new items on two of three catalogs, it damages the pretrained geometry that cold start depends on. Attention fusion conditioned on the item's co-interacted neighbours, so text and image are weighted per item instead of at one global ratio; that is the last 7 to 11 percent. And ELSA as the training signal — the same linear loss from two slides ago — beat BPR, InfoNCE and explicit item–item similarity targets on every catalog. Cost: every run fitted on one RTX 5090 with gradient checkpointing, and serving does not change — item vectors are still computed once per item, the ranker on top is the same. Recall@10 is retrieval, not revenue; validate online. ⏱ 9:37:30 · 1½ min — REEF: pin everything, vary only the encoder. Read one row: H&M 0.164 → 0.211 Recall@10, +28.7 %, new items +23.4 %. Three choices: LoRA over full tuning (full tuning damages cold start), fusion conditioned on co-interacted neighbours, ELSA as the loss — Vojta's slide, two back. One RTX 5090; serving unchanged. If behind: the table and the last bullet only. Next: what did not hold.
Tomáš Laurin · MSc thesis, 2026 · FIT CTU
(Tomáš L.) Colleague spotlight: where the gains stopped
Script, 1½ min. Now the part this room asks about first: transfer mostly failed. Six transfer cells — a held-out domain inside each catalog, and a whole held-out catalog. Four of six sat at the random-ranker floor, Recall@10 of 0.01 to 0.03 against 0.01 for a random ranking, and fine-tuning did not lift them. The UMAP projections say why. H&M swimwear and Amazon toys are islands in the embedding space, disjoint from everything the model trained on; MovieLens horror and thriller are mixed into the other genres, and that is the one domain transfer that worked, 0.21. So before you expect transfer, look at whether the target sits inside the space you trained on. Three more things that did not hold. Updating every weight was worse than LoRA in every in-domain cell and below the frozen encoder on new items on two of three catalogs. A plain BPR pairwise loss as the tuning signal made the encoder worse than frozen on two of three catalogs — the sparse signal does not constrain the geometry. Combining ELSA with InfoNCE in one loss cost 18 to 20 percent Recall@10 against the frozen encoder on both backbones; the two signals fight. And modality is a property of the catalog: a self-supervised vision encoder on movie posters scored below random ID vectors, while on fashion the image encoders led. Five times the text-encoder parameters bought between minus 8 and plus 11 percent, depending on the catalog. All of this is offline, one target against 999 sampled negatives, three English catalogs, two multimodal backbones. Nothing here is a production result. ⏱ 9:39 · 1½ min — Transfer: 4 of 6 cells at the random floor, tuned or not; the UMAP says why — the held-out domains are islands, MovieLens genres overlap, and that is the one that worked. Then three misses: full tuning, plain BPR, ELSA + InfoNCE. Modality follows the catalog: DINOv2 below random IDs on posters. Say the last line: offline, sampled negatives, English catalogs. If behind: the figure and the quote line. Bridge: offline recall is a gate, not the outcome — the scorecard next.
Behaviour can improve multimodal encoders for ranking.
The launch scorecard: more than clicks
Replace abstract alignment language with a release checklist owned jointly by product and engineering. Offline relevance, safety and serving metrics are useful gates, but they do not substitute for measuring customer outcomes. ⏱ 9:39 · 1 min — Alignment as five measurable properties, each with a metric and a component. Read the property column only; the next slides are the rows.
Choose one primary business outcome and explicit guardrails before launch.
Smarter search also needs smarter safeguards
The business issue is preventing prohibited discovery without blocking legitimate customers. Ask for false-positive and false-negative rates on your own catalogue, languages and policies—not just an overall accuracy number. ⏱ 9:40 · 1 min — Semantic search walked around the keyword filter — 'glass tubing'. SHIELD: generated queries, reward-model filter, classifier, 98.4%. Ours, UMAP 2025.
This is one classification test—not a guarantee of overall system safety.
(Rodrigo) Your ranking decides which suppliers get a chance
For marketplaces, ranking is also allocation of commercial opportunity. Exposure floors are a policy choice with trade-offs, not a free improvement to every metric. ⏱ 9:41 · ½ min — The model learns only from what it showed; the loop amplifies popularity and hurts minority users most. Exposure is a resource — put a floor under it (ours, with a measured trade-off). Half a minute.
A convincing AI demo is not a business experiment
The investor and founder takeaway is to ask what evidence sits behind an AI performance claim. Choose the experiment and success criteria before seeing the demo results. ⏱ 9:41:30 · ½ min — A zero-shot LLM judge argues both ways on the same evidence; aligned to behaviour it matches the production model. Anything between offline and A/B must be calibrated against real outcomes. Half a minute.
Use AI judges to accelerate testing, not to certify their own success.
Next customer interface: an agent shopping for someone
Treat agent commerce as a direction, not a settled protocol race or guaranteed channel shift. The low-regret investment is clean catalogue data, reliable availability and permissioned actions. ⏱ 9:42:30 · ½ min — Agents are a new client of the same stack, not a new stack. Say the last row: structured catalogues are what agents can act on — Klímek's keynote from inside the product; constrained decoding is Mannaert's guard rail. Skip the protocol race if behind.
Prepare trustworthy catalogue data and safe APIs—not just better chatbot copy.
Three tests for an AI discovery investment
Use this as the executive recap rather than another catalogue of papers. Ask founders to identify which of the three is currently unproven in their own AI product. ⏱ 9:43 · ½ min — The portfolio on the three axes — everything here was already used as evidence. End on the sentence: good enough within a budget somebody will approve is a different question, and the one more people have.
The best architecture is the one that clears all three—not the one with the largest model.
What to do in the next 30 days
Make the call to action small enough for a startup team to execute. Offer to discuss which bottleneck matters after the talk, rather than asking everyone to buy the same solution. ⏱ 9:43:30 · ½ min — Controllable, evaluable, safe: each already has a working component; the two theses are the first steps. One sentence on agent-to-agent marketplaces, then the publication timeline.
Add conversation where it helps customers express intent. Keep verified inventory underneath.
(Rodrigo) The research behind the product lessons
Give this 20 seconds of credibility, not a publication roll call. Keep peer-reviewed findings, thesis prototypes and production experience clearly distinguished. ⏱ 9:44 · 1 min — Twenty-nine peer-reviewed papers in five years, coloured by the threads of this talk. Point at the drift: green and purple early, red and blue lately. Name three venues, skip the individual pills — the commentary lists them all.
Recombee research, 2022–2026: efficient recommendations, richer representations, safety and customer control.
Questions—and your discovery bottlenecks
Invite questions about customer journeys, economics and implementation trade-offs. The existing QR links to the academic commentary, so label it as background rather than claiming it opens this meetup edition. ⏱ 9:45 · questions — 9:45. Leave this on the screen for questions. Research, open source, theses: the addresses are on the slide.
The Great Convergence · Miton Times · Prague · 10 September 2026
After the talk: other things we could build together
Keep this as an after-Q&A networking slide, outside the timed talk. Mention only projects that connect to an audience question rather than presenting a second portfolio. ⏱ after questions — Only if asked or if time remains after questions: Slaidy (this deck was made in it), the book, the coaches. Otherwise leave it.
This deck was prepared in Slaidy.