The thousand-model machine, explained for humans
Meta's engineers describe over 1,000 models, two-tower networks, and a funnel that narrows billions of posts to hundreds. Here is what that actually means.

You read that your post got sorted by the algorithm. So you picture one thing. One judge. One opinion about your work.
The people who built it do not describe it that way. Meta published two engineering posts about how Instagram actually decides what to show. One from 2023. One from 2025. They are written for other engineers. The posts say Instagram runs more than a thousand models. Not one. And those models are arranged in a shape with a name. A funnel. It starts with billions of posts and ends with hundreds. For one person. Every time they open the app.
The language in those posts is not meant for you. It is meant for people who build systems like this. Terms like two-tower neural network and cacheable embeddings show up in the first paragraph. No plain explanation follows. This post translates five of those terms and shows what the funnel actually does.
Every source below is linked, dated and quoted. The documents we could not open are named at the end. The same funnel is why Instagram ranks a brand new post as a cold item. The post reaches the stage that reads history carrying none of its own.
It is not one algorithm. It is more than a thousand models
Start with the word. Algorithm is singular. So you think of one thing making one decision about you.
The man in charge said otherwise in 2023:
Instagram doesn't have a singular algorithm that oversees what people do and don't see on the app. We use a variety of algorithms, classifiers, and processes, each with its own purpose. — Adam Mosseri, Instagram Ranking Explained, 31 May 2023
That is from Instagram's own blog. A variety is not a number. Two years later Meta's engineers put one on it. Their post is called Journey to 1000 models. It was published 21 May 2025. It says Instagram now runs "over 1000 ML models" in production.
ML is short for machine learning. That means software that learns patterns from examples instead of following rules someone wrote. A model is one piece of that software. It scores things. Usually it guesses one thing. Will this person click. Will they skip. Will they watch to the end. One model, one guess.
A thousand models is not useful on its own. What matters is how they are arranged. The same 2025 post describes the shape. It is a funnel. Wide at the top. Narrow at the bottom. Posts that might be shown to you are called candidates. The funnel starts with many candidates. Then a cheap scoring step runs. Then a more expensive one. Meta's engineers put it this way:
We operate on fewer candidates as we progress through the funnel, as the underlying operations grow more expensive. — Engineering at Meta, Journey to 1000 models, 21 May 2025
Cheap steps look at many posts. Expensive steps look at few. That is the whole reason the list gets shorter. Running one scoring model over one post costs money. A small amount, but real. Do it a billion times and the bill matters. So the system puts the cheap work first and the expensive work last.
The 2023 engineering post on Explore gives the scale. It is called Scaling the Instagram Explore recommendations system. Published 9 August 2023. Explore is the tab where you find new things. That post says the system starts with "billions of items" and narrows to "thousands of candidates" and then to "hundreds". For one person. Every time that tab loads.
So there is no single thing to please. There are three separate funnel stages. And each one is choosy in a different way.
The funnel has three layers, cheap to expensive
The 2025 post names the three stages. Sourcing is the first. That is another word for retrieval. Its job is to gather posts worth a look. The second is early-stage ranking. The third is late-stage ranking. Meta shortens those last two to ESR and LSR in the engineering writing.
Every stage costs more than the one before it. The 2023 Explore post prints numbers for that surface. The funnel there has four steps, not three. The fourth is a reshuffle at the end. But the first three match what the 2025 post describes.
Step one is retrieval. The Explore system card says it fetches "up to 1500 media". Media is Meta's word for posts. That is a ceiling. Not every person gets fifteen hundred. Some get fewer.
Step two is a cheap model that picks the best hundred. Only those hundred go forward.
Step three is the expensive model. It runs on about a hundred posts. Not on fifteen hundred. Whatever else retrieval found, the expensive model never sees it.
The Feed card gives different numbers because Feed is a different product. Feed shows posts from accounts you follow, plus some you do not. The Feed card says a cheap model picks "approximately 700 of the most relevant posts". Then the expensive model scores "about 500 posts". Reels Chaining picks about a hundred, then scores about a hundred. That surface is showing you one reel at a time, so its funnel is the narrowest.
Read those numbers as the widths of the funnel. Here is how many candidates each stage gets, on each surface. Source: Meta Transparency Center system cards for Explore, Feed, and Reels Chaining, retrieved 17 August 2026.
- Explore
- Retrieval: up to 1500 posts
- Expensive scoring: about 100 posts
- Feed
- Cheap ranking: approximately 700 posts
- Expensive scoring: about 500 posts
- Reels Chaining
- Cheap ranking: approximately 100 posts
- Expensive scoring: about 100 posts
Three separate products. Three funnels. Not one pipeline. Every one built the same way. Cheap first, expensive last.
The expensive model does more than the cheap one. That is why it costs more. And that difference is where the next section starts.
The cheap models cannot use the best facts
The 2023 Explore post says something backwards. The facts that matter most are the ones the cheap model is not allowed to read. Meta's engineers wrote it in one sentence. It is technical. Every word in it matters:
the model can't consume user-item interaction features (which are usually the most powerful) because by consuming them it will lose the ability to provide cacheable user/item embeddings. — Engineering at Meta, Scaling the Instagram Explore recommendations system, 9 August 2023
Unpack that. Start with "user-item interaction features". That means facts about what one person did with one post. You watched it. You skipped it. You saved it. You sent it to someone. Those are interactions between a user and an item. The bracket in the middle is the part to hold on to. Meta calls those facts "usually the most powerful". Their own words. The most powerful facts the system has.
Then comes the second half. Why the cheap model cannot have them. An embedding is a short description written in numbers. One for you. One for each post. The cheap model writes those descriptions once and reuses them. That reuse is what makes it cheap. But a fact about you and this post exists only for that pair. So the cheap model would have to do the work again for every post, every person, every time. That is expensive. So it gives up the most powerful facts on purpose. To stay cheap.
The same post says the expensive model has no such limit. It "can also consume the most powerful user-item interaction features". So the expensive model leans hardest on what people did with a post. The cheap model at the top of the funnel does not get to see any of that.
Now the funnel reads differently. Fifteen hundred posts enter. The cheap model picks a hundred. It is picking without the facts that matter most. Then the expensive model scores those hundred using everything. Including what other people already did with each post.
That is the constraint that shapes the whole system. It points the opposite way to most advice about early engagement. The part of the funnel that sees the most posts is the part that cannot read engagement at all. Only the final stage can. And by then your post is competing against a hundred others, not fifteen hundred. That does not mean early engagement is useless. It means its value is back-loaded. It matters where it gets read. Not where the list is widest.
Two towers means two separate guessers
The cheap model has a name. Meta calls it a two-tower neural network. The 2023 Explore post describes it. A neural network is software that learns by adjusting numbers inside itself until its guesses get better. Two-tower means it is actually two separate networks. One for the user. One for the item.
The post explains why they are separate:
Each neural network only consumes features related to their entity and outputs an embedding. — Engineering at Meta, Scaling the Instagram Explore recommendations system, 9 August 2023
A feature, here, is one fact the software is allowed to read. Consume means read. Entity means either the person or the post. So one tower reads facts about you. The other tower reads facts about the post. Neither tower reads facts about you and the post together. That is the whole point. Keep them separate and you can score the post once for everybody.
The two towers each hand back one embedding. That short description in numbers. Then the system compares the two. How similar are they. If your description and the post's description are close, the post might suit you. If they are far apart, it probably does not.
The 2023 post says the two towers are trained "to predict engagement events (e.g., someone liking a post) as a similarity measure between user and item embeddings." Training means showing the software millions of examples until it learns the pattern. An engagement event is something a person did. Liked a post. Watched a video. Saved a reel. The towers learn to write descriptions that put similar people near similar posts.
That is the technique that lets the cheap model stay cheap. Score the post once. Store the result. Reuse it for everybody. But the cost of that technique is losing the most powerful facts. You cannot write a post's description once if the description depends on who is looking at it.
Cacheable means worked out in advance
One more term shows up in that same constraint sentence. Cacheable. It sounds technical. It is not. It means the system can work something out once, save it, and use it again later. Without redoing the work.
The 2023 Explore post says the two-tower model provides "cacheable user/item embeddings". The post's embedding can be worked out as soon as the post is published. Before anyone looks at it. Then stored. Then reused for every person who might see it. The person's embedding gets worked out when they open the app. From fresh facts about what they did recently. Those two embeddings get compared. Fast. Cheap.
A fact about you and this post cannot be worked out in advance. It only exists after you see the post. So it cannot be cached. The system would have to compute it every time. For every person. For every post. That is the cost the cheap model refuses to pay.
So the funnel trades power for speed at the top. It gets the speed back by doing less work. And it gets the power back at the bottom, where the list is short enough that the expensive work is affordable.
Set the two halves of the funnel side by side and the difference comes down to one kind of fact. Here is what each stage is allowed to read. Source: Engineering at Meta, Scaling the Instagram Explore recommendations system, 9 August 2023.
- Retrieval and early ranking
- Facts about the person, such as watch history, follows and saves: available
- Facts about the post, such as length, type and text: available
- Facts about this person and this post together, such as whether they watched it, skipped it or saved it: not available — it would break caching
- Late ranking
- Facts about the person, such as watch history, follows and saves: available
- Facts about the post, such as length, type and text: available
- Facts about this person and this post together, such as whether they watched it, skipped it or saved it: available, and the most powerful facts the system has
The expensive model guesses many things at once
The expensive model is called something else. The 2023 Explore post names it. A multi-task multi-label neural network. That name describes what it does. Multi-task means it guesses more than one thing. Multi-label means each guess can have more than one answer.
The same post says this model "can consume the most powerful user-item interaction features." It reads everything. Facts about you. Facts about the post. Facts about you and the post together. Then it hands back several guesses. Will you click. Will you like. Will you ask to see less. Each one is a probability. A number between zero and one.
Those probabilities get combined into one score. The 2023 post calls it a value model and prints the formula:
Expected Value = W_click * P(click) + W_like * P(like) – W_see_less * P(see less) + etc. — Engineering at Meta, Scaling the Instagram Explore recommendations system, 9 August 2023
P stands for probability. W stands for weight. Each guess gets a weight. Some add to the score. Some subtract from it. Notice the minus sign in front of "see less". There is a guessed chance you will ask to see less of this. And it comes off the top.
Meta does not publish the weights. Not for Explore. Not for any other surface. So no one outside the company knows which guess matters most. The formula is real. The weights are not public.
That formula runs on about a hundred posts for Explore. About five hundred for Feed. About a hundred for Reels. Every other post that entered the funnel is already gone. Cut by the cheap models that could not read what people did with them.
Where the models sit in the app
The funnel runs separately in each part of Instagram. Your feed is one part. Explore is another. The Reels tab is a third. Meta calls each one a surface. The company's Transparency Center lists them. Ten surfaces sit under Instagram. Nine are parts of the app. The tenth is Threads.
Each surface has its own card. Each card describes its own steps. Feed has four steps. Explore has three. Reels Chaining has four. The numbers do not match because the products are different. Feed shows posts from people you follow. Explore shows posts from people you do not. Reels shows one video at a time. Different jobs. Different funnels.
But every funnel is built the same way. Cheap steps first. Expensive steps last. Many candidates in. Few candidates out.
The 2025 post on the thousand models explains why there are so many. It is not a thousand different jobs. It is permutations. Every surface has a funnel. Every funnel has stages. Every stage has models. Then engineers run experiments. Each experiment might try a different weight on one guess. That creates a new model. Do that across ten surfaces and three stages and dozens of experiments and you get a thousand models.
One number in that post stands out. Before Meta built its automated launch system, getting a new model into production took two days. The team built tools to make it faster. Now the same launch takes hours. And the platform handles "10+ launches per week". That is ten new models or ten changed models. Every week. Shipped into the live system.
So the thing you are trying to please is not stable. It is being rewritten constantly. Across a thousand models. Ten times a week.
What this means for a post
Here is what the funnel means for something you published. Your post enters billions of candidates. A cheap model that cannot read engagement picks it into the top fifteen hundred for one person. Or it does not. If it does, a second cheap model picks it into the top hundred. Or it does not. Only then does the expensive model score it against those hundred. Using everything. Including what other people did with your post.
That sequence runs separately for every person who might see the post. So your post is never in one contest. It is in a separate funnel for each person. And in each funnel the list gets cut twice before the model that can read engagement ever runs.
The part that reads engagement sees a hundred posts. Not fifteen hundred. Not billions. The sorting that matters most happens in the narrowest part of the funnel. And everything upstream of that is a filter you cannot see.
The cold start problem sits on the other side of this. A brand new post has no engagement to show. The expensive model reads a blank. What the funnel adds is where that blank matters. It matters at late-stage ranking. It does not matter at retrieval. Retrieval cannot read it anyway.
One thing is still missing. The size of the effect. How much does early engagement move a post's score in the expensive model. Meta has not published that. The formula is real. The weights are not public. So the direction is documented. The size is not.
Where this stops being useful
Two things would prove parts of this wrong. Say Meta publishes the weights in the value model formula. Then everything here about which guesses matter most stops being a guess. It becomes checkable. Or say Meta rewrites one of these engineering posts and the funnel architecture changes. Then the numbers above are out of date. The correction goes in the changelog with the date we caught it.
This post does one thing. It translates the engineering language into plain terms. So when someone explains Instagram to you with a term like two-tower network, you know what that means. It means the cheap model that picks posts into the top hundred cannot read what people did with those posts. That is not a theory. That is the published constraint.
And when someone tells you the algorithm decided something, you can ask which of the thousand models they mean. And which of the three funnel stages. And which surface. Because there is no one place where your post gets judged. There are billions of separate funnels. One per person. And each funnel has three stages. And the stage that sees the most posts is the stage that knows the least about them.
What we could not determine
Four things, stated so no one assumes we found them and stayed quiet.
The actual weights in the value model formula. Meta publishes the formula. It does not publish the weights. Every claim about which prediction matters most is unproven. That includes the reasoning in this post.
Whether the weights are the same across all surfaces. The Explore post describes one value model for one surface. The other surfaces might combine their predictions differently. We do not know. Meta has not published that.
How often the models get retrained. The 2025 post says ten or more models launch per week. It does not say how often an existing model gets retrained on fresh data. Training is how the model learns new patterns. We know launches happen weekly. We do not know the retrain cycle.
What happens to a post that is cut at retrieval. Once a post is filtered out at the wide end of the funnel, we do not know if it gets a second chance. Does it enter the next person's funnel from scratch. Or does an early cut in one person's funnel affect whether it even enters someone else's. The engineering posts describe one funnel for one person. They do not describe how posts move between those funnels. So we do not claim to know.
How we did this
Scope: this post translates published engineering documents. No experiment. No data collection of our own.
How we read them: every source was opened directly on 18 August 2026. Every quoted sentence was copied from the page as a reader sees it. Two of the sources are long-form engineering blog posts. Both are served as complete HTML from Meta's own servers. Three are system cards on the Meta Transparency Center. Those pages are built by code in the browser. A plain download returns an empty shell. So those three were read in a browser. The Mosseri post and the system card index page were also read in a browser for the same reason. Every quotation carries the date we read it.
Limits: every source here is a first-party statement from the company we are writing about. A system card is a description Meta chose to publish. Not an audited account. Meta rewrites these pages without saying when. So every claim here carries the date we read it.
Sources
- Luke Levis, Sing Sing Ma and Eduardo Nava, Journey to 1000 models: Scaling Instagram's recommendation system, 21 May 2025. Engineering at Meta. Retrieved 18 August 2026.
- Vladislav Vorotilov and Ilnur Shugaepov, Scaling the Instagram Explore recommendations system, 9 August 2023. Engineering at Meta. Source of the two-tower description, the cacheable embeddings constraint, the value model formula, and the statement that user-item interaction features are "usually the most powerful". Retrieved 18 August 2026.
- Adam Mosseri, Instagram Ranking Explained, 31 May 2023. About Instagram. Source of the "variety of algorithms" opening statement. Read in a browser. Retrieved 18 August 2026.
- Instagram Explore AI system card, stamped UPDATED JUN 22, 2026. Meta Transparency Center. Source of the "up to 1500 media" retrieval count and the hundred-item early-stage ranking pass. Read in a browser. Retrieved 18 August 2026.
- Instagram Feed AI system card, stamped UPDATED JUN 29, 2026. Meta Transparency Center. Source of the "approximately 700" and "about 500 posts" counts. Read in a browser. Retrieved 18 August 2026.
- Instagram Reels Chaining AI system card, stamped UPDATED NOV 11, 2025. Meta Transparency Center. Source of the "approximately 100" counts at both stages. Read in a browser. Retrieved 18 August 2026.
- Our approach to explaining ranking, stamped UPDATED DEC 31, 2023. Meta Transparency Center. The index listing ten Instagram surfaces. Read in a browser. Retrieved 18 August 2026.
Changelog
- 2026-08-18: First version drafted.
Read next
- Distribution13 min readThe minus sign — what Instagram scores against youMeta's 2023 engineering post prints the scoring formula. The "see less" term is subtracted. Every system card lists predictions nobody talks about.
- Distribution12 min readThe ad auction has a public formula — and organic reach runs on its twinMeta publishes exactly how it picks which ad wins. The middle term is the same prediction that decides organic reach. Read the ad mechanics Meta explains openly and you understand the organic ones it does not.
- Distribution21 min readStories is not Feed, and almost nobody researches itEvery guide is about Reels and Feed. Stories runs on a different system with different signals, and it is the one surface built to reach people who already follow you.
