Open-Source X Recommendation Algorithm: Phoenix ML Integration, Immersive Video Scoring, and Visibility Filtering
The open-source X recommendation algorithm has been updated to detail the Phoenix-based candidate pipeline within the Rust home-mixer, dedicated immersive video scoring and carousel filtering, and an end-to-end visibility filtering subsystem governing content safety and action limitations.
Simple Explanation
X's recommendation pipeline has received an update clarifying how posts are ranked and filtered. The platform now features dedicated scoring and carousel filtering specifically optimized for immersive (vertical) video feeds, powered by the Phoenix recommendation model. Additionally, a robust visibility filtering system acts as a gatekeeper, checking author statuses, retweet policies, and limited action rules via user-hydration clients like Gizmoduck before anything reaches a user's timeline.
Key Points
- 1Seamless integration between the Phoenix ML ranking model (recsys_model.py) and the Rust home-mixer pipeline
- 2Introduction of dedicated immersive video scorers and video carousel candidate filters
- 3High-throughput viewer and author hydration using the Gizmoduck client in visibility-filtering
- 4Granular policy enforcement via author rules, limited action policies, and transparent verdict explanation tooling
Technical Details
This commit refactors core components across `home-mixer` and `visibility-filtering`. Inside `home-mixer`, the `phoenix_candidate_pipeline.rs` interfaces directly with Phoenix ML models (`recsys_model.py`) via standardized request builders, while `immersive_video_scorer.rs` and `video_carousel_filter.rs` introduce specialized scoring pipelines for full-screen immersive video sequences. Concurrently, the `visibility-filtering` subsystem establishes an asynchronous hydration pipeline (`gizmoduck_client.rs`, `author.rs`, `viewer.rs`) and modular evaluation engines (`author_rules.rs`, `limited_actions_policy.rs`, `explain.rs`) to ensure content integrity and transparent filtering decisions.
Affected Users
All users consuming For You timelines and video feeds, content creators focusing on video, and accounts subject to visibility and safety policy checks.
Before & After
Previously, candidate generation and ranking relied on more generic mixing pipelines. Following this update, immersive video experiences possess specialized scoring and filtering logic connected to Phoenix, while visibility filtering has been cleanly decoupled into modular hydration, rule execution, and verdict explanation services.
Action Items
- Prioritize short/vertical video content with high watch completion rates to capitalize on the dedicated immersive video scorer
- Maintain high account health and safety standards to avoid triggering the limited actions policy or author exclusion rules
- Optimize video thumbnails and opening hooks to maximize engagement within carousel and Phoenix candidate pipelines
Monetization Tips
- The immersive video scorer rewards high retention and completion; focus on concise, high-value clips over low-retention long videos to maximize distribution
- Triggering limited action policies completely removes candidates from Phoenix pools; keeping zero strikes is essential for sustaining monetized reach
FAQ
Q. What is the Immersive Video Scorer?
It is a specialized home-mixer component designed to score and rank full-screen vertical video candidates based on completion rates and sequence-based user interactions.
Q. What happens if a post fails the Visibility Filtering checks?
If disqualified by author rules or limited actions policy during hydration, the post receives an exclusionary verdict and is dropped before final ranking.
Changed Files
- + home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs
- + home-mixer/filters/video_carousel_filter.rs
- + home-mixer/models/candidate.rs
- + home-mixer/models/query.rs
- + home-mixer/params/param.rs
- + home-mixer/query_hydrators/immersive_scoring_sequence_query_hydrator.rs
- + home-mixer/query_hydrators/mod.rs
- + home-mixer/scorers/immersive_video_scorer.rs
- + home-mixer/scorers/mod.rs
- + home-mixer/selectors/top_k_score_selector.rs
- + home-mixer/util/phoenix_request.rs
- + home-mixer/util/video_carousel.rs
- + phoenix/xrex/models/recsys_model.py
- + visibility-filtering/clients/gizmoduck_client.rs
- + visibility-filtering/explain.rs
- + visibility-filtering/filter.rs
- + visibility-filtering/hydration/decode/author.rs
- + visibility-filtering/hydration/decode/viewer.rs
- + visibility-filtering/hydration/execute.rs
- + visibility-filtering/hydration/inventory.rs
- + visibility-filtering/hydration/metrics.rs
- + visibility-filtering/hydration/mod.rs
- + visibility-filtering/hydration/plan.rs
- + visibility-filtering/hydration/store.rs
- + visibility-filtering/models/verdict.rs
- + visibility-filtering/params.rs
- + visibility-filtering/params/limited_actions_policy.rs
- + visibility-filtering/retweet.rs
- + visibility-filtering/rules/author_rules.rs
- + visibility-filtering/rules/catalog.rs