Research / Service canon
This file covers only where Instagram differs from Facebook. The common Meta ground is in facebook.md and topics/. That includes the value model Vijt = Σ wijtk·Yijtk, the DLRM→GEM lineage, and the ads pixel-height patent. Dwell time normalization and MSI (meaningful social interactions) are also covered there. The DSA (EU Digital Services Act) filings are in the same place.
⚠ Every claim in this file that relies on a system card is a snapshot read on 2026-08-09. A system card is the document Meta publishes on its Transparency Center for each surface to describe an AI system. The full caveat is written once, in the "Validity period of system card quotes" section of facebook.md.
Compared with Facebook, Instagram is published in far more detail. The only formula Facebook published is the 2021 linear combination. Instagram published 3 different combination forms as formulas, each in a different post. The text also gives the actual queries of the retrieval DSL (a dedicated language for writing candidate-fetching queries), candidate counts per funnel stage, the retraining cadence, and the definition of the distillation label. Conversely, Instagram has nothing like Facebook's Widely Viewed Content Report, a measured disclosure of surface composition.
Summary
Instagram has a multi-surface structure in which Explore, Feed, and Reels Chaining are each documented as a separate AI system. As of the system cards read on 2026-08-09, the candidate counts per stage are 1500→100 for Explore, 700→500 for Feed, and ~100 for Reels Chaining verified (candidate counts by stage). The central point of dispute in ranking is, unlike Facebook, whether to combine positive and negative predictions by product or by sum. Instagram disclosed a multiplicative form in 2020, an additive form in 2023, and a multiplicative penalty in 2025, each used for a different problem (three combination forms).
Feed surfaces
There are 10 types of AI system cards in the Instagram family verified Our approach to explaining ranking (read 2026-08-09). Mosseri himself denies a single algorithm verified Instagram Ranking Explained, 2023-05-31. He describes Instagram as having not one algorithm but a separate algorithm, classifier, and process for each surface verified same post.
| Card | Slug | Last updated |
|---|---|---|
| Feed | ig-feed |
2026-06-29 |
| Feed Recommendations | ig-feed-recommendations |
2026-06-29 |
| Explore | ig-explore |
2026-06-22 |
| Reels Chaining | ig-reels-chaining |
2025-11-11 |
| Stories | ig-stories |
2025-09-18 |
| Suggested Accounts | ig-suggested-accounts |
2025-03-07 |
| Search / Notifications / Comments | ig-search / ig-notifications / ig-comments |
Not read |
| Threads Feed | ig-threads-feed |
Inside the Instagram group |
- ⚠ There is no
ig-reelscard. The address of this card returns 404 (measured 2026-08-09).- The requested address is
https://transparency.meta.com/features/explaining-ranking/ig-reels/. - Facebook has
fb-reels, but on the Instagram side there is onlyig-reels-chaining.
- The requested address is
- Instagram defines not "the whole Reels tab" but "how the next reel is chained" as the unit of an AI system inferred. The card text also describes the problem as choosing the next candidate while viewing one reel.
- The Reels Chaining card defines this system as follows verified: "When you view and interact with Instagram, one of the underlying AI systems is Reels Chaining, which will give you an immersive, personalized, entertaining experience in Reels."
- The Threads Feed card is inside the Instagram section verified. That is how the index groups it.
- We could not find an Instagram document that corresponds to Facebook's WVCR (measured disclosure of surface composition) inferred.
- The corpus examined for this judgment is the Transparency Center report index, 15 system cards, and the about.instagram.com and engineering.fb.com posts (read 2026-08-09).
- The Widely Viewed Content Report is Facebook-only.
- So "what % of the Instagram feed is recommendations" relies only on statements to investors (IR). Those statements are in facebook.md.
Candidate generation (retrieval)
As of the system cards, Explore fetches up to 1500 and passes the top 100 to the next stage, while Feed picks about 700 and scores about 500 for relevance verified (candidate counts by stage). According to the 2023 Explore post, retrieval mixes four kinds of sources with tunable weights verified (source types). The same post gives the ability to cache embeddings as its reason for choosing two-tower (a model that computes the user-side and item-side embeddings separately) verified (two-tower). The 2020 post also publishes an actual query written in the retrieval DSL verified (retrieval DSL).
Candidate counts by stage — larger than Facebook, and monotonically decreasing
According to the system card, Explore fetches up to 1500 and passes the top 100 to the next stage verified. Feed picks about 700 with a lightweight model and then scores about 500 for relevance, and Reels Chaining picks about 100 and scores about 100 verified. The wording in the table below is quoted verbatim from each system card.
| Surface | retrieval | early stage | late stage |
|---|---|---|---|
| IG Explore | "up to 1500 media are fetched" | "the top 100 media are passed to the next stage" | Final list |
| IG Feed | "A lightweight model is run to select approximately 700 of the most relevant posts." | — | "calculates a relevance score for about 500 posts" |
| IG Reels Chaining | "approximately 100 of the most relevant reels" | — | "calculates a relevance score for about 100 reels" |
| IG Feed Recommendations | No figure | — | — |
- ⚠ IG Feed is 700 → 500, but FB Feed is 500 → 500 (see facebook.md).
- For the same-named surface at the same company, the candidate count at pass 0 (the stage that narrows candidates with a lightweight model) differs.
- FB Feed (500→500) and IG Reels Chaining (~100→~100) do not shrink.
- The observation in facebook.md that Meta documents describe each surface at a different resolution repeats on Instagram.
- Explore's 1500 → 100 is a 15:1 reduction. No Facebook card shows a reduction ratio this aggressive.
- The 2023 blog post is less specific than the cards verified.
- Candidates picked by one source: "hundreds of relevant items from a media pool of billions of items"
- The start of the whole funnel: "starting with thousands of candidates"
- Candidates received by the 1st stage ranker: "can recall thousands of candidates"
- Candidates received by the 2nd stage ranker: "operates on the 100 best candidates from the first stage"
- The reduction across the whole ranking: "from a few thousand to few hundred that are finally presented to the user"
- The blog's figures are per-stage inputs, while the card's 1500 is the number retrieval fetches. The two are of the same order of magnitude, so there is no basis to call them inconsistent inferred. The two descriptions are 3 years apart and differ in resolution.
4 source types and tunable weights
Explore's retrieval uses four kinds of sources together and gives each source a tunable weight verified Scaling the Instagram Explore recommendations system, 2023-08-09.
- There are four source types verified same post.
- "heuristics (e.g., trending posts)"
- "more sophisticated ML approaches"
- "real-time (capturing most recent interactions)"
- "pre-generated (capturing long-term interests)"
- The four sources are used together and mixed with tunable weights verified same post: "we utilize all these mentioned source types together and mix them with tunable weights"
- This sentence is a statement that explicitly says per-source weights exist as tuning parameters. For Facebook Feed, there is no primary source even for a per-source breakdown of candidate counts (facebook.md).
- The structure is the same as X listing 11 sources in code in
home-mixer(the service that bundles candidate collection and ranking for the X For You feed); only the numbers are undisclosed inferred.
The reason for choosing two-tower is the cache
The 2023 Explore post gives the ability to cache user embeddings and item embeddings as the reason for using two-tower verified: "user and item embeddings can be cached, making inference for the Two Tower model extremely efficient".
- The training objective is to predict engagement events as a similarity between the user embedding and the item embedding verified same post: "to predict engagement events (e.g., someone liking a post) as a similarity measure between user and item embeddings".
- It names FAISS and HNSW as examples of ANN (approximate nearest neighbor search) libraries verified same post: "e.g., FAISS, HNSW, etc".
Facebook's connected-content retrieval has no ANN at all. It ends with a lookup of the friend graph (facebook.md). Instagram, by contrast, has a corpus on the scale of billions because Explore is a non-connected (recommendation) surface to begin with. That is why EBR (embedding-based retrieval) is a core component. This difference is likely the root cause of the gap in retrieval literature volume between the two services inferred.
Retraining cadence — hourly
The 2023 Explore post says models can be retrained (fine-tuned) every hour as soon as new data arrives verified: "we can re-train (fine-tune) our models every hour as soon as we have new data"
inferred The reason for choosing two-tower (the item tower can be cached) and hourly fine-tuning are two aspects of the same design. Updating only the item tower output means the index does not have to be rebuilt in full. Details are in topics/model-freshness.md.
retrieval DSL — real queries are published
In its 2020 post, Instagram published an actual query written in the retrieval DSL verified Designing a Constrained Exploration System (Amogh Mahapatra, 2020-12-10). The query takes accounts the user liked as seeds, expands to similar accounts, filters those accounts' media by a model score, ranks them, and interleaves them seed by seed verified.
The same post also appears on engineering.fb.com under a different title, How Instagram suggests new content. Take care not to count the same post as two citations.
user
.let(seed_id=user_id)
.liked(max_num_to_retrieve=30)
.account_nn(embedding_config=default)
.posted_media(max_media_per_account=10)
.filter(non_recommendable_model_threshold=0.2)
.rank(ranking_model=default)
.diversify_by(seed_id, method=round_robin)
Four things can be read from this one query block.
- The basic unit of retrieval is seed-based expansion verified. It takes accounts the user liked (up to 30) as seeds and expands to similar accounts with
account_nn. - The per-account media cap is a parameter verified.
max_media_per_account=10
- The filter is a model threshold verified. It is the only numeric evidence that a policy filter is a score threshold rather than a rule.
non_recommendable_model_threshold=0.2
- Diversity sits in the retrieval stage verified. It is round-robin per seed account. Facebook only writes that diversity is in pass 2 (after ranking).
diversify_by(seed_id, method=round_robin)
There are 3 seed sources, and they have a priority order verified.
- H is a seed from Home Feed verified.
- R is a seed from other recommendation surfaces such as Explore, Reels, and Shopping verified.
- F is a backup such as personalized graph exploration verified.
- The merge order puts H first, followed by R and F verified: "The final merge order is as follows: H >> R > F."
- When training the candidate selection model, a constraint keeps the overall distribution from drifting away from Home-based sources verified: "the overall distribution is not skewed away from Home-based sources".
inferred The "constrained" in this post's title means a constraint that matches the Home Feed distribution, not an exploration bandit. The body never mentions Thompson sampling, bandits, or an exploration budget, and instead says it matches the media type distribution and freshness to Home Feed.
IGQL / IG2Vec — could not obtain the primary original text
The 2019 post said to have introduced IGQL and IG2Vec could not be opened as a primary original text with the 3 URLs requested directly observed 2026-08-09. However, the existence of the DSL and its form are confirmed from primary material by the 2020 query verified.
- Ivan Medvedev's 2019 post "Powered by AI: Instagram's Explore recommender system" is known as the post that introduced IGQL and IG2Vec. The two names are known to refer to a retrieval-only DSL and account embeddings, respectively.
- As of 2026-08-09, we could not access the primary original text observed 2026-08-09. This observation is limited to the 3 URLs requested directly.
ai.meta.com/blog/powered-by-ai-instagrams-explore-recommender-system/returned HTTP 500.- The same path on
ai.facebook.comwas also HTTP 500. - The
instagram-engineering.comMedium mirror hit a connection timeout. - To reproduce, send a GET request to the three URLs above.
- These notes do not use the widely cited "tens of thousands → 500 → 150 → 50 → 25" funnel figures as evidence. We could not read the primary text, and even if we had, they are 2019 values that conflict with the 1500 → 100 on the 2026 card inferred.
- However, the existence and form of the DSL are confirmed from primary material by the 2020 query block above. The way it works is confirmed even without knowing the names verified.
- The query's
account_nn(embedding_config=default)points to a component of the IG2Vec family that uses account embeddings and nearest neighbors inferred. The method name itself is account nearest-neighbor.
Ranking
Instagram disclosed that it uses three combination forms for different problems (three combination forms). As of the system cards, prediction heads differ by surface verified (prediction heads). According to the 2023 Explore post, the 1st stage ranker learns, as its label, whether an item falls in the top K ranked by the 2nd stage ranker verified (distillation). As of the 2025 post, there are more than 1,000 production models, with a separate MTML (multi-task multi-label) model for each surface and component verified (model operating scale).
Three combination forms — the biggest difference from Facebook
Instagram disclosed that it uses three combination forms for different problems. The only combination Facebook published is linear. Facebook's formula is Vijt = Σ w·Y, with details in facebook.md.
(1) Multiplicative form (2020, Suggested Posts) verified Designing a Constrained Exploration System, 2020-12-10.
Value(Post) = (probability_like)^weight_like * (1- probability_not_interested)^weight_see_less(2) Additive form with a negative term (2023, Explore) verified Scaling the Instagram Explore recommendations system, 2023-08-09.
Expected Value = W_click * P(click) + W_like * P(like) – W_see_less * P(see less) + etc.(3) Multiplicative diversity penalty (2025, Notifications). Source: A New Ranking Framework for Better Notification Quality on Instagram, 2025-09-02.
Score(c) = R(c) × D(c) D(c) = ∏_{i=1..m} (1 - w_i · p_i(c)) p_i(c) = max_{h ∈ H} sim_i(c, h)- ⚠ Unlike (1) and (2), these three lines are not verbatim. In the original the formulas are rendered as LaTeX images and are not in the body text; the formulas above are a transcription of those images observed 2026-08-09.
- However, the components are supported by the body prose verified: "the product of its base ranking score and a diversity demotion multiplier", "D(c) ∈ [0,1] is a penalty factor…"
- Details are in ../topics/feed-diversity.md.
- As for the symbols,
R(c)is base relevance andD(c) ∈ [0,1]is the penalty. His the recent send history,w_i ∈ [0,1]is the per-dimension strength, andτ_iis the similarity threshold.- In the baseline implementation,
p_i(c)is 1 if the similarity exceeds the threshold and 0 otherwise: "equals 1 if the similarity exceeds a threshold τ_i and 0 otherwise". - There are 4 dimensions: content / author / notification type / product surface.
(1) and (2) are on different surfaces, and there is no direct evidence of a switch from multiplicative to additive. However, a structural difference between the two forms is real inferred.
- ⚠ (1) and (2) are on different surfaces. (1) is Suggested Posts (non-connected content shown at the end of Home Feed), and (2) is Explore.
- There is no direct evidence that "Instagram switched from multiplicative to additive."
- However, given the 3-year gap, the shared in-house literature lineage, and the fact that the sources in (2) include the successor system of (1), there is room to read it as a change of direction inferred.
- The structural difference is real inferred. The multiplicative form gives negative signals a veto, while the additive form gives them an exchangeable cost.
- In the multiplicative form, value drops to 0 when
P(not_interested) → 1. It is effectively a hard veto. - In the additive form, however large the negative term is, the other terms can be larger.
- In the multiplicative form, value drops to 0 when
- Taking the log of the multiplicative form's exponents
weight_likeandweight_see_lessmakes it linear, so it ends up as theΣ w·log Pform. That is, it is the same as Facebook'sΣ w·Pin being a "linear combination", and the only difference is whether P or log P is used inferred. - (3) applies diversity as a multiplicative penalty. facebook.md says "Meta does not publish its diversity algorithms (MMR/DPP)".
- However, on the Instagram notifications side, a max-similarity penalty of the MMR family was published as a formula. MMR is a greedy re-ranking approach that reflects the distance to already selected items in the score.
- It comes with the caveat that it is notifications, not the feed, but it is the most specific diversity disclosure across all of Meta.
Detailed comparisons are in topics/multi-task-ranking.md and topics/feed-diversity.md.
How weights are set — Facebook uses surveys, Instagram uses optimization
Instagram's 2020 post says the weights are calibrated with offline session replay and online Bayesian optimization verified. The 2023 post names Bayesian optimization and offline tuning as the two popular approaches to parameter tuning verified.
- The 2020 post's wording is as follows verified: "offline replay over user sessions and b) online Bayesian optimization"
- The 2023 post's wording is as follows verified: "There are two popular approaches to parameters tuning: Bayesian optimization and offline tuning."
- "replay" appears 0 times in this post (full text checked 2026-08-09).
For the same role, Facebook writes that weights are "set by surveys" (facebook.md, topics/survey-signals.md). The same company disclosed completely different answers to the same problem. In practice it likely uses both with only different emphasis, but at the level of published sentences they are clearly different inferred.
The 1st stage is a distillation of the 2nd stage
Explore's 1st stage ranker is trained to predict the output of the 2nd stage ranker, not user behavior verified 2023 post: "We train the first stage ranker to predict the output of the second stage with the label: PSelect = { media in top K results ranked by the second stage}"
- The early stage ranker's label is not user behavior but whether an item is in the late stage ranker's top K. Facebook's pass 0 says only "high recall" and has no label definition.
- By model, the early stage is a two-tower verified.
- The late stage is an MTML neural network that predicts the probabilities of several engagement events such as click and like verified: "multi-task multi label (MTML) neural network model", "the probability of different engagement events (click, like, etc.)".
Prediction heads — they differ by surface (all verified, verbatim)
Instagram uses different prediction heads on each surface verified. For example, Feed has heads dedicated to the first post, Reels Chaining has an audio reuse head, and Stories has a head that predicts whether the author is family or a close friend verified.
⚠ We could not settle the total count. For Feed, Stories, Reels Chaining, and Suggested Accounts, the list extracted from the card and the count the card states do not match. So the list below should be read only as a list of confirmed items, and should not be compared directly with Facebook Feed's 10.
- IG Feed (
ig-feed, 2026-06-29) verified: carousel completion / "How likely you are to enjoy this post" / skip / dwell time on the author's profile / share via DM / dwell time on the post / first-post skip / first-post dwell over 10 seconds / turn video sound on / "How likely the first post you see is to keep you spending time in your Feed during this session"- There are 3 heads dedicated to the first post (skip / 10 seconds / session retention). This means slot 1 of the slate (the set of posts shown at once) is treated as a separate optimization problem inferred. Facebook cards have no such position-specific heads, and position appears only as a feature.
- "Session continuation" is a prediction target. It is a head that directly predicts session length rather than single-item engagement.
- IG Explore (
ig-explore, 2026-06-22) verified: follow probability / watch over 5 seconds / watch over 95% of the video / 'Not Interested' click / comment / like / reshare / "How likely you click and also engage with a post" / save / "How likely you are to click one of the short, squared post in Explore to view it in full screen" - IG Reels Chaining (
ig-reels-chaining, 2025-11-11) verified: audio reuse ("use the audio from a reel you're viewing in one you create") / watch under 3 seconds / "click 'Interested'" / comment / watch longer than 95% of viewers of reels of the same length / click on a vertical reel in Explore / reshare / share outside Instagram / follow- The card's
How likely you are to watch more of a reel than 95% of users who watched reels of the same lengthhead predicts not absolute watch time but a percentile relative to the viewer distribution of reels of the same length. - This removes length bias in the label definition; the problem Facebook handles with upper-bound clipping for external article dwell time (facebook.md) is solved by Instagram with quantile normalization inferred.
- Audio reuse is a prediction target. It sets inducing creation, not consumption, as a ranking goal. No other head like this appears anywhere in Meta's documents.
- The card's
- IG Stories (
ig-stories, 2025-09-18) verified: top-of-feed story click / question-response interaction /How likely it is that you and the story's author are family or good friends/ reply click / like sent / profile entry from the viewer / reel effect save / swipe to next story / exit from current story / poll and slider response- "Whether they are family or close friends" is a prediction head. The relationship classifier itself enters as a multi-task head.
- Facebook cards have "strong intent to interact with a connection", but that is a behavior prediction, while this head is a prediction of the relationship itself.
- IG Feed Recommendations (
ig-feed-recommendations, 2026-06-29) verified: "How informative a post is" / 'Interested' click / Reels dwell time after clicking a reel in the home feed / feed scroll duration after viewing the top post / scroll to next post / author profile click / comment click / first-post skip / reel full-screen click / audio on- The card's
How long will the user spend in reels after clicking into a reels post in home feedhead predicts dwell time after moving to another surface. It is direct evidence that Feed ranking puts Reels consumption into its objective function.
- The card's
- IG Suggested Accounts (
ig-suggested-accounts, 2025-03-07) verified: content view after follow / follow through to follow-back / follow / profile visit after follow / follow-back- Follow-back probability is a separate prediction head. It sets forming a mutual connection, not a one-way follow, as the goal.
Actual feature names (excerpt, all verified verbatim)
The system card also states the features used in ranking in plain sentences verified. Examples are a feature that counts only behavior inside Explore, a binary feature for session state, and a negative-signal feature that lists the authors of reels watched for less than 3 seconds.
- Explore has a feature family that aggregates only behavior inside Explore verified.
- "The amount of time you've spent on Explore viewing posts from post's author in recent past"
- "How many times you've seen short, squared reel in Explore"
- "How many follows button clicks received on a post in Explore"
- Reels Chaining features include a session-state feature, a negative-signal feature, and a country-level aggregate feature verified.
- Session state is used as a binary feature: "Whether or not you've been viewing reels for more than 15 seconds"
- Negative signals are kept as an author list: "The authors of reels you've spent less than three seconds watching"
- There is a feature aggregated at the country level: "How much time has viewers from your country spent on this reel"
- Feed Recommendations has a ratio feature verified: "The ratio of engagement counter to vpvd". We infer that vpvd belongs to the video play view duration family.
- It also has device platform and app opens in the last 7 days features: "What is the device platform e.g. ios, android", "How many times you've opened the app in the last 7 days"
- Feed features include ones covering content type, recency window, amount of text overlaid on an image, and user segment verified.
- The output of a content-type classifier is used as a feature: "Whether the post is informative content (news, product reviews, tutorials, how-tos)"
- The recency window is 90 days: "How recently the post was created (within 90 days)"
- It looks at the amount of text overlaid on an image: "Whether it's a photo and how much text is overlaid on it"
- A user segment is used as a feature: "Which Reels-watch-time group you fall into"
- Stories features use both the average and the maximum verified: "The average and maximum amounts of time you've spent viewing stories". This appears to be used for within-user normalization inferred.
Mosseri's per-surface signal order — a form of disclosure Facebook does not have
Mosseri disclosed the ranking signals for Feed, Explore, and Reels in order of importance, while for Stories he listed signals without stating an order verified Instagram Ranking Explained, 2023-05-31 (updated since). Only in Explore is information about the post itself ranked No. 1; in the others, user activity is ranked No. 1.
| Surface | Order of importance |
|---|---|
| Feed | Your activity → Information about the post → Information about the person who posted → Your history of interacting with someone |
| Explore | Information about the post → Your activity in Explore → Your history of interacting with the person who posted → Information about the person who posted |
| Reels | Your activity → Your history of interacting with the person who posted → Information about the reel → Information about the person who posted |
| Stories | Viewing history → Engagement history → Closeness (no order stated) |
- Only in Explore is "information about the post itself" No. 1. In the others, user activity is No. 1.
- On unconnected surfaces there is almost no (user, author) relationship history, so item features necessarily carry more weight inferred.
- In Reels, "history of interacting with the author" is No. 2, but in Explore it is No. 3. These are both unconnected surfaces, yet the order differs.
- Facebook has never disclosed this kind of per-surface signal order. Instead it presents only "3 levels of usage frequency" (most/occasionally/less frequently), which is covered in facebook.md. The two services disclose the same kind of information along different axes.
Ultra-long user history — DV365
DV365 summarizes a single user's very long interaction history into offline embeddings and feeds them to multiple models in Instagram and Threads verified DV365: Extremely Long User History Modeling at Instagram, KDD 2025 (arXiv 2025-05-31, Meta/Instagram authors).
- The encoded history is up to 70,000 interactions, 40,000 on average verified. The explicit timeline is max 35K/avg 10K, and the implicit one is max 35K/avg 30K.
- Instead of lengthening the sequence during training, it uses offline embedding verified.
- It builds 200 pooled embeddings by pooling per subsequence ("multi-slicing and summarization").
- These are compressed with the Funnel Summarization Architecture.
- A single upstream model feeds 15 product models across Instagram and Threads verified. It is used for both retrieval and ranking in Reels/Feed/Explore/Stories.
- The refresh interval is 6 hours verified. After quantization, the stored form is 58×17 long integers, compressed from 200×256 fp32.
- In the online result, Instagram app-wide time spent rose +0.7% verified.
- NE (normalized entropy) on Reels ranking tasks improved by 0.4% or more on average.
- Retrieval hit rate improved by 2–8%.
- The paper says it has been validated in production for over 1 year since its first launch verified: "production battle-proven for >1 year since our first launch".
- It claims to be incremental even when applied on top of existing attention-family sequence models (including HSTU) verified. The argument is that attention shows diminishing returns at a length of 40K.
inferred Instagram is the reference surface within Meta for "ultra-long history." The HSTU paper anonymized the surface (facebook.md open question 5), but DV365 names Instagram in its title. Details are in topics/sequence-transformer-ranking.md.
Model operating scale — only Instagram disclosed it
Instagram disclosed that it runs more than 1,000 ML models in production verified Journey to 1000 models: Scaling Instagram's recommendation system, 2025-05-21. The model naming convention shows a separate MTML model for each surface and component verified.
- There are more than 1,000 ML models in production verified. There are more than 10 launches per week: "more than 10 launches per week".
- The funnel layer names are settled here verified: Sourcing → Early-stage ranking (ESR) → Late-stage ranking (LSR)
- The model naming convention was published verified. It is direct evidence that there is a separate MTML model for each surface × component.
ig_stories_tray_mtml= ig (app) / stories (surface) / tray (Stories tray) / mtml (multi-task-multi-label)
- The infrastructure the post covers is as follows verified.
- Model Registry (based on Configerator)
- Automated launch workflow ("from days to hours")
- Model Stability Metric: generates SLOs from calibration and normalized entropy.
- Offline evaluation based on recorded-traffic replay
- Team-level capacity quotas
inferred The real subject of this post is not ranking but the organizational problem of "running 1000 ranking models." Instagram is the only side where Meta has disclosed this layer.
Removal of follower count as an input
In a 2025-01-21 post, Instagram wrote that creators with large follower counts used to score higher in content ranking verified The latest with Instagram.
"Historically, creators with large follower counts scored higher in Instagram's content ranking. However, last year we announced an update to reels recommendations. Now creators of all sizes have equal opportunity to find breakthrough moments and reach new audiences."
- The 3rd sentence of the quote was re-transcribed on 2026-08-09 from the current page. The sentence the earlier version transcribed was an old or inaccurate version, but the substance, an admission in the past tense, is the same.
- This sentence is Meta itself admitting, in the past tense, that follower count had been part of the ranking score. It did not disclose what form the input took or what replaced it.
- There is a policy lineage around Rewarding original creators on Instagram verified. It follows up the 2024-04-30 announcement, and the current page was updated on 2026-04-30.
- The "new ranking input favoring small creators," "originals replace reposts," and "gradual audience expansion" said to be in the 2024-04-30 announcement are based on Mosseri's post, and we could not obtain a primary URL, so we confirmed them only through secondary reporting inferred.
Re-ranking, diversity, and filters
Instagram's official sentence about trying not to show too many posts from the same person in a row has no numbers verified (myth check). In contrast, diversity at the retrieval stage is disclosed concretely as round-robin per seed account verified (retrieval DSL). Policy filters are confirmed in two layers: a score threshold inside retrieval and the filtering described in the DSA filing verified (policy filters). Accounts that mainly repost others' content do not get recommended verified (originality), and accounts that often share age-inappropriate content are not recommended to teens verified (teens).
"Blocking 3 in a row from the same account" is wrong — myth check
The widely repeated claim that "Instagram blocks 3 or more consecutive posts from the same account" has no Meta primary source. Mosseri's actual sentence has no number. The actual sentence is as follows verified Instagram Ranking Explained, 2023.
"we try to avoid showing too many posts from the same person in a row, or too many suggested posts back to back"
- The wording is only "too many" and "try to avoid", so there is no threshold and it is not a hard constraint.
- The same sentence states two separate constraints.
- One is consecutive content from the same author.
- The other is consecutive suggested (unconnected) posts. Facebook has no corresponding statement.
- The only diversity sentence on the IG Feed card also has no number observed 2026-08-09 (1 body passage in the ig-feed card).
- Card sentence: "The system also tries to ensure your feed has a balanced mix of content types."
- This sentence is actually less specific than "you wouldn't see multiple video posts in a row" on the Facebook Feed card.
- In contrast, diversity at the retrieval stage is disclosed concretely. It is
diversify_by(seed_id, method=round_robin)in the 2020 query in the retrieval DSL section.- Instagram's diversity handling may rely mainly on seed round-robin at the candidate generation stage rather than reordering after ranking inferred.
Policy filters — two layers: score threshold and policy document
Instagram's policy filters are confirmed in two layers verified. Retrieval contains a model score threshold, and the DSA filing says the system typically first builds a content inventory and then filters out content that potentially violates policy verified.
- There is a model threshold filter inside retrieval verified 2020 query:
filter(non_recommendable_model_threshold=0.2). - The DSA filing says the system typically first builds an inventory of available content and then filters out content that potentially violates policy verified Instagram Systemic Risk Assessment (assessment period 2023-09–2024-08).
- Original text: "Our systems typically first produce an inventory of available content and then filter it to remove content that potentially violates our policies."
- ⚠ The URL linked here is a report hub page, not a permalink to the quoted document itself. The 4 verbatim quotes in this section cannot be re-verified without a direct link to the document (2026-08-09).
- On sensitive topics, it reduces the role of shares and comments in distribution verified same source: "We reduce this risk by limiting the role of shares and comments in the distribution of sensitive topics."
- The same sentence recorded in facebook.md also appears in the Instagram report. This means that varying signal weights by topic is a policy common to Meta.
- The same source lists measures for teens as follows verified: "under 18 age gating, probable violation demotions on feed, age based filtering on recommended surfaces and hashtag filtering".
- The number of recommender system cards stated in the same source matches the number of Instagram cards in the index viewed on 2026-08-09 verified: "10 recommender 'System Cards'".
Originality — Instagram applied it earlier and more strongly than Facebook
Accounts that mainly repost others' content do not get recommended verified Rewarding original creators on Instagram, current page last updated 2026-04-30. The scope of this policy was expanded from Reels to Photos and Carousels verified.
- The criteria for judging originality are as follows verified.
- Content the creator filmed or produced directly
- Their own edited compilations and guides
- 3rd-party content with meaningful modifications ("meaningful modifications")
- An account can be recommended again if most of its posts in the last 30 days are considered original verified. This is the recovery condition.
- This criterion is a rolling window, so it is based on the content composition of the last 30 days, not on a point in time such as "30 days since the last violation."
- The status can be checked in Account Status.
- We could not confirm the specific threshold of "10 or more reposts within 30 days" from a primary source inferred. It appears repeatedly in secondary reporting, but we could not confirm it in the body of the current Meta page. Always mark it as unconfirmed when quoting.
This policy pairs with open question 10 in facebook.md (the 2026-03 Facebook original-creator rewards). Instagram applied it first (2024) and Facebook followed inferred.
Teens — recommendation eligibility itself is restricted by age
Meta wrote that teens should not see content that goes against the updated guidelines in recommendation surfaces, Feed, and Stories, even when shared by an account they follow verified New PG-13 Guidelines for Instagram Teen Accounts, 2025-10-14.
"Teens shouldn't see content that goes against our updated guidelines in recommendations (Explore, Reels, and in-Feed), Feed, and Stories — even when shared by someone they follow."
- It also applies to content from accounts they follow verified. This is a filter that crosses the boundary between connected and unconnected content.
- There is also an account-level filter verified. Teens cannot follow accounts that often share age-inappropriate content, those accounts are not recommended to teens, and they become harder to find in search.
- "Teens will no longer be able to follow accounts that we've found regularly share age-inappropriate content"
- "We won't recommend these accounts to teens, and we'll make it harder for teens to find these accounts in Search."
- It blocks teens from seeing content results for a wider range of adult search terms verified: "We'll block teens' ability to see content results for a wider range of mature search terms, such as 'alcohol' or 'gore'."
- The claim that the MPA (Motion Picture Association) demanded that the use of the "PG-13" name stop was confirmed only through secondary reporting inferred.
- There are signs that the name changed to "13+" in a follow-up announcement in 2026-04. That announcement is Instagram Expands Teen Accounts Inspired by 13+ Content Ratings, and we have not yet been able to read it.
Cold start
New-user cold start has no primary source found for Facebook and is disclosed only for Instagram (new users). For users with sparse engagement history, seeds are built by expanding the graph through the accounts they liked to the accounts those accounts follow verified (new users). We found no Instagram-specific primary source for new content (new content).
New users — a disclosure that Facebook does not have is here
For users with sparse engagement history, seeds are built with one-hop and two-hop graph expansion verified Designing a Constrained Exploration System, 2020.
- The seed path runs through the accounts user A liked, to the accounts those accounts follow verified.
A → Account Liked by A → Accounts followed by the accounts A likes (Seed Accounts)
- facebook.md ends with "Facebook new-user cold start = no primary source found". Only the Instagram side is disclosed.
- The supporting system is Suggested Accounts verified (
ig-suggested-accounts). The features the card discloses are all graph features, and content embeddings are not in the list.- "How many mutual friends do you and the suggested accounts have on Instagram"
- "How many popular followers do suggested account have"
- "Whether the suggested account is following you"
- "How long the suggested account has been following you"
- "How many follows have you made in the last 28 days"
- Instagram replaces the new-user problem with "which accounts should we get them to follow" rather than "which content should we show" inferred. This is because all 5 prediction heads on the Suggested Accounts card are follow and follow-back.
New content
We found no Instagram-specific primary source. The content cold-start case Meta disclosed (Epinet and Thompson Sampling, with new defined as under 10,000 impressions) is a Facebook Reels deployment case, and details are in facebook.md.
inferred It is quite likely that the same stack applies to Instagram Reels as well, but because the paper names the surface as Facebook, it must not be used as evidence for Instagram.
Instead, Instagram has disclosed freshness infrastructure: hourly fine-tuning (2023) and the 6-hour DV365 refresh (2025) verified.
Feedback signals
Instagram has negative actions as prediction heads with different names on each surface, and put a negative term in the value model formula as well verified (negative heads). DM shares and shares off Instagram are also separate prediction heads verified (DM share). Your Algorithm, which lets users adjust recommendations by topic, applies to all of Instagram including Feed, Reels, and Explore, as of the announcement post (updated through 2026-06-10) verified (Your Algorithm).
Negatives exist as prediction heads — with different names on each surface
Negative actions are included as prediction heads with different names on each surface verified. Explore predicts "Not Interested" clicks, Reels Chaining predicts watching for less than 3 seconds, and Stories predicts exiting the current story verified. All phrases in the table below are quotes copied verbatim from each card.
| Surface | Negative head |
|---|---|
| Explore | "How likely you are to click 'Not Interested' on a post" |
| Reels Chaining | "How likely you are to watch less than three seconds of a reel" |
| Feed | "How likely you are to skip this post", "How likely you are to skip over the first post in feed" |
| Stories | "How likely you are to tap exit the current story" |
| Feed Recommendations | "How likely you are to skip over the first post in feed" |
- The value model formula itself includes negatives verified.
- 2020 formula:
(1 - P(not_interested))^w - 2023 formula:
– W_see_less * P(see less)
- 2020 formula:
- Facebook discloses the existence of negative predictions only in the body text of the Transparency Center. The statement is that hide/snooze/report/angry lower the distribution. In contrast, Instagram disclosed them explicitly as terms in the formula.
- This is the clearest example of the difference in disclosure level between the two services inferred.
- The way negative signals are stored is also visible verified. Reels Chaining keeps a list of authors watched for less than 3 seconds as a feature: "The authors of reels you've spent less than three seconds watching".
DM share (send) is a prediction head
The Feed card has DM sharing as a prediction head, and the Reels Chaining card has sharing off Instagram and resharing as prediction heads verified.
ig-feed: "How likely you are to share a post with someone in a direct message"ig-reels-chaining: "How likely you are to share a reel off of Instagram", "How likely you are to reshare a reel"- These two sentences are the primary evidence that "sends" is a ranking target.
- The widely quoted "3 most important signals = watch time / sends per reach / likes per reach" (2025-01 Mosseri) originates from Mosseri's Instagram video post, and we could not obtain a primary text URL inferred. It rests on secondary reporting.
- The multiplier "sends are weighted 3–5× likes" does not appear in any Meta document, so it must not be cited.
- However, the direction matches the cards verified. DM shares and external shares each exist as separate prediction heads.
User control — Your Algorithm
Your Algorithm shows a summary of the topics influencing recommendations and lets users tell it in free text what they want to see more or less of verified Control Your Instagram Reels Algorithm. It was first released in US Reels on 2025-12-10 and later expanded on 2026-04-15 and 2026-06-10 verified.
- As of the announcement post, the scope is all of Instagram, including Feed, Reels, and Explore verified: "Your Algorithm is now live across all of Instagram, including Feed, Reels, and Explore."
- The dashboard shows an AI summary of the topics influencing recommendations verified: "View an AI-generated summary of the topics influencing the posts and recommendations you see".
- Individual posts get an interest label verified. Example: "From Running".
- Controls are entered as free text verified: "tell us what you want to see more or less of, or add new topics entirely".
- Update speed is not public observed 2026-08-09. The corpus inspected was 1 body passage of the announcement post above, and unlike Threads Dear Algo, it has no time-window wording.
- The model is not public. The original text says only "AI".
- Because it generates a topic summary in natural language and accepts free text, it is likely an LLM, but Meta did not state this explicitly inferred. See
topics/llm-in-recsys.md.
- Because it generates a topic summary in natural language and accepts free text, it is likely an LLM, but Meta did not state this explicitly inferred. See
- It differs in nature from Facebook's Show more / Show less (→ Interested / Not interested).
- Facebook's is per post and temporary: "temporarily increase/decrease the ranking score for that post and posts like it".
- Instagram's Your Algorithm exposes and lets users edit a persistent topic-level profile.
- The same company has productized an "explainable interest profile" only on Instagram inferred.
- "reset your recommendations" (clearing recommendation history) appears to have been introduced between 2024 and 2025 and absorbed into Your Algorithm, but we could not obtain a primary URL for a standalone announcement inferred.
- The re-ranking-related controls the cards state explicitly are, by surface, as follows verified.
- Explore: "Not Interested", "Tune Your Algorithm"
- Feed: Mute, Favorites, "See Newest Content First", Following/Favorites tabs
- Reels: "Click 'Following' on the Reels feed"
Regulation — ongoing as of 2026
On 2026-07-10, the EC (European Commission) preliminarily found that the addictive design of Instagram and Facebook breaches the DSA verified Commission preliminarily finds the addictive design of Instagram and Facebook in breach of the Digital Services Act, 2026-07-10. The scope of the investigation includes infinite scroll, autoplay and push notifications, together with highly personalized recommender systems verified.
- Original text of the investigation scope: "features such as infinite scroll, autoplay, push notifications, and the platforms' highly personalised recommender systems"
- The preliminary finding is, in essence, that Meta did not adequately assess the risks of its addictive design and that its current mitigation measures did not respond effectively to those risks verified.
- "Meta did not adequately assess the risks of its addictive design on the physical and mental wellbeing of users, including minors and vulnerable adults."
- "Meta's current mitigation measures failed to effectively tackle the risks stemming from its addictive design."
- The required remedies are reported as "autoplay and infinite scroll off by default, screen-time breaks, and a change to recommendations that are less engagement-focused", but we could not confirm that sentence in the body of the EC press release inferred. This is based on secondary reporting.
- The penalty cap is 6% of global revenue inferred. This too comes from secondary reporting.
The most important point in this note is that the infinite-scroll-based funnel and the session-duration prediction head described above are exactly what the EC objects to. The session-duration head is the Feed card's How likely the first post you see is to keep you spending time in your Feed during this session. inferred Regulatory pressure could become the first case that changes a ranking objective function, so it is highly worth tracking.
Generalizations from this service
Observations from Instagram are generalized in the topics notes below.
topics/multi-task-ranking.mdsummarizes 4 combination forms within Meta: FB's additiveΣ w·P, IG 2020's multiplicativeΠ P^w, IG 2023'sΣ w·Pwith negative terms added, and IG 2025 notifications' multiplicative penaltyR×D. It also covers the hard-veto property of the multiplicative form.topics/candidate-allocation.mdcompares IG Explore's 1500→100 (15:1) with FB Feed's 500→500 and covers per-source tunable weights.topics/embedding-retrieval.mdcovers the case where two-tower was chosen because the "item tower can be cached", FAISS/HNSW, and the first-stage distillation labelPSelect.topics/feed-diversity.mdcomparesdiversify_by(round_robin)in the retrieval stage with post-ranking pass 2, and summarizes the notification multiplicative penalty formula.topics/model-freshness.mdsummarizes hourly fine-tuning, DV365's 6-hour refresh, 1000 models and 10 launches per week.topics/sequence-transformer-ranking.mdcovers the point that DV365 (70K/40K) contributes additionally even on top of attention sequence models.topics/llm-in-recsys.mdcovers Your Algorithm's AI-generated topic summaries and free-text input.
Open questions
These are questions that remained unanswered as of the last update of this file (2026-08-09).
- Is the 2020 multiplicative → 2023 additive change an actual transition? The surfaces differ (Suggested Posts vs Explore), and no source compares before and after on the same surface.
- What are the actual scales and signs of
W_click,W_likeandW_see_less? Only the symbolic formula is public. - Why is there no
ig-reelscard? Meta did not disclose why no system card exists that covers the whole Reels tab. - Exactly how many prediction heads does each card have? On some surfaces the extraction result disagrees with the count stated on the card (Feed, Stories, Reels Chaining, Suggested Accounts). A recheck is needed.
- Where is the primary source for the 2019 post "Powered by AI: Instagram's Explore recommender system"? ai.meta.com returned 500 and the Medium mirror timed out, so we could not access it. Primary evidence for the names IGQL and IG2Vec is missing.
- What is the primary source for the "10 reposts within 30 days" threshold?
- Where is the primary text URL for Mosseri's "3 signals" statement in 2025-01?
- How does Instagram handle cold start for new content? Epinet is a Facebook Reels case.
- What is used to tune Explore's per-source weights? It says only "tunable" and does not disclose the objective function or the optimization method.
- What are the topic generation model and the update latency of Your Algorithm?
- Are the models for the three surfaces Feed, Explore and Reels being unified? Zuckerberg's "three giant transformers" statement is at the app level (FB/IG/ads), not at the level of surfaces within Instagram. The evidence is in facebook.md.
- How will actual ranking change after the EC preliminary finding (2026-07-10)?
Sources
Meta official — engineering
- Scaling the Instagram Explore recommendations system — 2023, blog post. The primary source for the additive value model, two-tower, the distillation label and hourly retraining.
- Designing a Constrained Exploration System — 2020-12-10, blog post (Amogh Mahapatra). The primary source for the multiplicative value model, the retrieval query-language query, and one-hop/two-hop expansion. The post does not contain the name IGQL. ⚠ It is the same post as How Instagram suggests new content, with only the title different.
- Journey to 1000 models: Scaling Instagram's recommendation system — 2025, blog post. It covers more than 1000 models, more than 10 launches per week, Sourcing, ESR, LSR and
ig_stories_tray_mtml. - A New Ranking Framework for Better Notification Quality on Instagram — 2025, blog post. The most concrete diversity formula Meta has published.
- ⚠ Powered by AI: Instagram's Explore recommender system — 2019, blog post. It returned HTTP 500 on 2026-08-09, so we could not open it. These notes do not use this post as evidence.
Meta official — product/policy
- Instagram Ranking Explained — 2023-05-31, blog post. The per-surface signal ordering and "too many ... in a row" are here.
- Control Your Instagram Reels Algorithm (Your Algorithm) — blog post. It was first published on 2025-12-10 and updated through 2026-06-10.
- Rewarding original creators on Instagram — blog post. The current page was updated on 2026-04-30.
- The latest with Instagram — 2025-01-21, blog post. It contains the past-tense admission that follower count was used as a ranking input.
- New PG-13 Guidelines for Instagram Teen Accounts — 2025-10-14, blog post.
- Instagram Expands Teen Accounts Inspired by 13+ Content Ratings — 2026, blog post. We have not yet opened it.
Transparency Center (AI system card, primary document for regulatory response)
- Index — 10 Instagram cards
- Cards opened and the last-updated date of each card:
- ig-feed (2026-06-29)
- ig-explore (2026-06-22)
- ig-feed-recommendations (2026-06-29)
- ig-reels-chaining (2025-11-11)
- ig-stories (2025-09-18)
- ig-suggested-accounts (2025-03-07)
- ⚠
ig-reels— 404 measured (2026-08-09) - Regulatory and Other Transparency Reports — Instagram DSA Systemic Risk Assessment (assessment period 2023-09–2024-08), regulatory document
Papers
- DV365: Extremely Long User History Modeling at Instagram — KDD 2025, paper. 70K/40K history, 15 downstream models, time spent +0.7%
Regulator
- Commission preliminarily finds the addictive design of Instagram and Facebook in breach of the DSA — 2026-07-10, regulatory document
Secondary (grade downgrade required)
- The 3 signals "watch time / sends per reach / likes per reach" that Mosseri described in 2025-01 — the original post is an Instagram video, so we could not obtain a primary text URL. The multiplier (3–5x) appears in no Meta document.
- Mosseri's 4 ranking changes of 2024-04-30 (small-creator input, originals replacing reposts, repost labels, excluding aggregators) — we could not obtain a primary URL.
- The "10 or more reposts within 30 days" threshold — we could not confirm it in the body of the current Meta page.
- The MPA's demand to stop using the "PG-13" name — confirmed only through secondary reporting.