---
title: "算法用了你的哪些数据"
description: "For You 推荐读取的用户数据清单：互动序列、关系与设置、已看记录、画像与请求上下文、帖子公开互动数、嵌入里的作者画像、可见性规则读的设置与国家"
---

> Documentation Index
> Fetch the complete documentation index at: https://x-algorithm.vergego.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 算法用了你的哪些数据

> 本页面向创作者和运营，按开源源码列出 For You 推荐读取的用户数据。本页只列这套代码读了什么，不推测 X 在仓库之外收集了什么。每条结论附一个源码出处；开关值都是开源默认值，线上值可能不同。

## 结论

算法在三个位置读你的数据：

1. **你刷 For You 时**：home-mixer 按你的用户 ID 现查互动序列、关系、设置和画像，再交给模型和过滤器。
2. **你发帖时**：后台把你的账号资料写进帖子的嵌入，排序模型还读帖子的公开互动数。
3. **可见性检查时**：可见性过滤读你的敏感内容设置、年龄、账号年龄和所在国家。

其中分量最重的是**互动序列**：你最近点赞、回复、转发、停留过的帖子。排序不靠你填写的兴趣标签。

```mermaid
flowchart LR
    REQ["请求：用户 ID + 国家 + 语言 + 设备"] --> QH["查询水合器<br/>现查序列、关系、画像"]
    QH --> M["召回与排序模型"]
    QH --> FL["过滤器"]
    POST["你发的帖子 + 账号资料"] --> EMB["帖子嵌入与互动数"]
    EMB --> M
    M --> VF["可见性过滤<br/>读设置、年龄、国家"]
```

请求本身只带少量字段。其余数据由**查询水合器**（query hydrator）补齐。查询水合器是按用户 ID 去各个存储取一类数据的组件。内层流水线装配 21 个查询水合器（`home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:285-347`）。

## 一、互动序列：模型的核心输入

home-mixer 向用户行为聚合服务取三条序列（`home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:286-294`）：

| 序列 | 给谁用 |
|------|--------|
| 打分序列 | [Phoenix 排序模型](https://x-algorithm.vergego.ai/concepts/phoenix-ranking/) |
| 沉浸式视频打分序列 | 视频沉浸页的打分，只在该场景开启 |
| 召回序列 | [Phoenix 召回](https://x-algorithm.vergego.ai/concepts/phoenix-retrieval/) |

排序模型的旗舰配置读取最近 1022 条互动，包括点赞、回复、转发、引用和浏览停留（`phoenix/xrex/configs/xrecsys.py:316-319`）。模型既看你做了什么，也看你刷到却没停留的帖子。

另有两组“近期互动信号”，开源默认开启（`home-mixer/params/param.rs:735-746`）。它们按类型列出你最近点赞、转发、回复、收藏、分享、原创发帖、展开图片和看完视频的帖子（`home-mixer/models/engagement_signals.rs:5-15`）。[SimClusters](https://x-algorithm.vergego.ai/concepts/simclusters/) 用这些帖子作种子，找相似帖子（`home-mixer/sources/simclusters_source.rs:279-291`）。

## 二、关系与设置

home-mixer 读取你的 6 项关系与设置（`home-mixer/models/user_features.rs:7-14`）：

| 数据 | 用途 | 出处 |
|------|------|------|
| 关注名单 | 区分站内帖和站外帖 | `home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:301-303` |
| 拉黑名单 | 剔除你拉黑的作者，以及转发或引用他们的帖子 | `home-mixer/filters/author_socialgraph_filter.rs:9-45` |
| 静音名单 | 剔除你静音的作者 | `home-mixer/filters/author_socialgraph_filter.rs:9-45` |
| 订阅名单 | 判断你能否看订阅者专属帖 | `home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:304-306` |
| 屏蔽词 | 剔除命中你屏蔽词的帖子 | `home-mixer/filters/viewer_muted_keyword_filter.rs:26-40` |
| 你的粉丝数 | 随请求读入 | `home-mixer/server.rs:143` |

另外三项也影响你的推荐流：

- **谁拉黑了你。** 作者拉黑你时，他的帖子也被剔除（`home-mixer/candidate_hydrators/blocked_by_hydrator.rs:24-49`）。
- **“允许 For You 推荐”设置。** 这项设置为否时，For You 只给站内帖（`home-mixer/server.rs:100-101`）。
- **你排除的话题。** 请求带排除话题时，话题过滤器生效（`home-mixer/filters/topic_ids_filter.rs:15-17`）。

## 三、已看与已推送记录

为了不重复推同一条帖子，home-mixer 读四份记录：

| 记录 | 来源 | 用途 | 出处 |
|------|------|------|------|
| 已看 ID | 客户端随请求带上 | 剔除你看过的帖子 | `home-mixer/filters/previously_seen_posts_filter.rs:16-30` |
| 曝光布隆过滤器 | 请求未带时现查 | 一种压缩的“看过集合”，用途同上 | `home-mixer/query_hydrators/impression_bloom_filter_query_hydrator.rs:15-17` |
| 已推送 ID | 客户端随请求带上 | 翻页时剔除已推给你的帖子 | `home-mixer/filters/previously_served_posts_filter.rs:14-29` |
| 推送历史 | 外层流水线现查 | 外层模块的疲劳控制 | `home-mixer/candidate_pipeline/for_you_candidate_pipeline.rs:210-216` |

已看 ID 还会写入 Kafka 消息队列，供下游使用；这一步受开关 `EnablePublishSeenIdsToKafka` 控制（`home-mixer/side_effects/publish_seen_ids_to_kafka_side_effect.rs:35-37`）。另一个“已曝光帖子”查询水合器在代码里构造了，但没有装进流水线（`home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:350`）。

## 四、画像与请求上下文

home-mixer 把下列数据作为“用户上下文”发给 Phoenix 召回和排序（`home-mixer/util/phoenix_request.rs:89-148`）：

| 数据 | 来源 | 开关（开源默认） | 出处 |
|------|------|------------------|------|
| 国家、语言、客户端版本、IP 地址、账号角色 | 请求自带 | 无 | `home-mixer/util/phoenix_request.rs:89-97` |
| 年龄段、性别、州（地区） | 账号资料 | `EnableContextFeatures`（开） | `home-mixer/query_hydrators/user_demographics_query_hydrator.rs:14-16` |
| 年龄（岁） | 账号资料 | 无 | `home-mixer/util/phoenix_request.rs:118` |
| 推断性别及置信分 | 系统推断 | `EnableInferredGenderHydration`（开） | `home-mixer/params/param.rs:811-816` |
| 关注的 Grok 话题、关注的推荐关注包 | 你主动选择 | `EnableContextFeatures`（开） | `home-mixer/query_hydrators/followed_grok_topics_query_hydrator.rs:24-26` |
| 由 IP 推算的经纬度和城市区域码 | 系统推断 | `EnableIpFeature`（开） | `home-mixer/query_hydrators/ip_query_hydrator.rs:14-16` |
| 已安装应用列表 | 设备数据 | `EnableUserInstalledAppsHydration`（开） | `home-mixer/params/param.rs:790-795` |
| 最近搜索词 | 你的搜索 | `EnableRecentSearchQueriesHydration`（关） | `home-mixer/params/param.rs:797-802` |

home-mixer 把数据发给模型，不等于模型一定使用它。排序模型的旗舰配置使用国家、语言、经纬度、性别和年龄，不使用已安装应用（`phoenix/xrex/configs/xrecsys.py:351-359`）。模型还为你的用户 ID 和 IP 地址各查一组哈希嵌入，见 [哈希嵌入](https://x-algorithm.vergego.ai/concepts/hash-based-embeddings/)。

请求开始时，home-mixer 还用国家、语言、客户端、账号角色、是否绑定手机号、回流时间等字段，决定你落入哪组实验参数（`home-mixer/server.rs:103-122`）。

## 五、你发帖时：帖子公开互动数

排序模型给每条候选帖子读 5 个公开计数：点赞、回复、转发、引用、浏览（`home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:417`）。帖子发布超过 1213200 秒（约 14 天）后，这 5 个计数置零，不再输入模型（`phoenix/xrex/data/recsys/feature_config.py:87-88`、`phoenix/crates/common/xai-recsys/src/util.rs:765-790`）。

新作者扶持也读你的粉丝数，以及帖子在首页的曝光数和点赞数（`home-mixer/scorers/author_cold_start.rs:188-193`、`home-mixer/scorers/author_cold_start.rs:243-255`）。详见 [新号与冷启动](https://x-algorithm.vergego.ai/guide/new-account-cold-start/)。

## 六、你发帖时：嵌入里的作者画像

后台的 Grox 在帖子发布后生成帖子嵌入。嵌入是把帖子转成一组数字向量，用来比较相似度。v8.2 与 v8-search 两种嵌入的输入文本以“作者块”开头，作者块包含你的账号资料（`grox/flows/mm_emb/renderer_v82.py:187-243`）：

- 显示名和用户名、简介、所属机构。
- 认证颜色：政府为灰标，企业为金标，付费为蓝标，后附订阅档位（`grox/flows/mm_emb/renderer_v82.py:245-266`）。
- 粉丝数和关注数，各附一个档位标签。
- 注册月份、国家、账号语言。
- 是否受保护账号、是否有恶搞或评论账号标签。
- NSFW 标记：账号自标或被审核员标为 NSFW 时写入（`grox/flows/mm_emb/renderer_v82.py:277-284`）。

同一段文字由不同账号发出，得到的嵌入不同。Phoenix 召回用帖子嵌入生成语义 ID（`phoenix/README.md:110-114`）。详见 [多模态帖子嵌入器](https://x-algorithm.vergego.ai/concepts/multimodal-embedders/)。

## 七、可见性规则读的数据

[可见性过滤](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) 决定一条帖子能不能展示给你。它读你的下列数据：

| 数据 | 作用 | 出处 |
|------|------|------|
| 是否允许显示敏感媒体 | 不允许时，成人或血腥媒体加遮罩 | `visibility-filtering/rules/tweet_rules.rs:454-476` |
| 是否登录、是否未成年、是否未填年龄 | 对这三类查看者隐藏成人内容 | `visibility-filtering/rules/tweet_rules.rs:294-380` |
| 账号国家与请求国家 | 未填年龄时，按国家清单判断是否隐藏成人内容 | `visibility-filtering/rules/tweet_rules.rs:346-380` |
| 请求国家 | 法律下架和媒体地理限制按国家生效 | `visibility-filtering/models/tweet.rs:74-98` |
| 账号是否注册不足 24 小时 | 新查看者规则 | `visibility-filtering/hydration/decode/viewer.rs:116` |
| 拉黑、静音、静音转发、关注 | 对应丢弃规则；关注决定站内或站外 | `visibility-filtering/rules/author_rules.rs:42-65` |
| 订阅关系、Trusted Friends 名单 | 订阅者专属帖与小圈子帖 | `visibility-filtering/rules/tweet_rules.rs:396-452` |

## 八、标签路径读的数据

后台给账号打分的系统也读你的行为。它们不在请求时运行，结果变成账号标签。详见 [账号级信号（agatha、bdsm、user-cred-v2）](https://x-algorithm.vergego.ai/concepts/account-signals/)：

- **agatha**：你的账号收到的拉黑、举报、垃圾举报，相对站外点赞的比率（`agatha/scalding/labels/rate_based_labels/RateBasedLabels.scala:29-57`）。
- **BDSM**：你最近 512 个动作的序列，含动作类型、产品界面、停留时长、设备与客户端信号（`bdsm/README.md:26-29`、`bdsm/README.md:102-103`）。
- **user-cred-v2**：谁关注你，以及近 7 天谁给你点赞、转发（`user-cred-v2/UserCredV2Config.scala:25`、`user-cred-v2/UserCredV2App.scala:79-100`）。

## 边界

- 本页列的是开源代码读取的数据。X 在仓库之外收集和使用的数据，源码未包含。
- 带开关的数据，某次请求是否读取，取决于线上开关；线上开关值源码未包含。
- 用户行为聚合服务、人口属性服务等数据源的内部实现，源码未包含。

## 出处

| 结论 | 技术页 | 主要源码 |
|------|--------|----------|
| 21 个查询水合器 | [home-mixer 编排层](https://x-algorithm.vergego.ai/concepts/home-mixer-orchestration/) | `home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:285-347` |
| 排序读最近 1022 条互动 | [Phoenix 排序模型](https://x-algorithm.vergego.ai/concepts/phoenix-ranking/) | `phoenix/xrex/configs/xrecsys.py:316-319` |
| 6 项关系与设置 | [过滤流水线](https://x-algorithm.vergego.ai/concepts/filtering-pipeline/) | `home-mixer/models/user_features.rs:7-14` |
| 已看记录用于去重 | [过滤流水线](https://x-algorithm.vergego.ai/concepts/filtering-pipeline/) | `home-mixer/filters/previously_seen_posts_filter.rs:16-30` |
| 发给 Phoenix 的用户上下文 | [Phoenix 排序模型](https://x-algorithm.vergego.ai/concepts/phoenix-ranking/) | `home-mixer/util/phoenix_request.rs:89-148` |
| 公开互动数约 14 天后不再输入 | [Phoenix 排序模型](https://x-algorithm.vergego.ai/concepts/phoenix-ranking/) | `phoenix/xrex/data/recsys/feature_config.py:87-88` |
| 嵌入里的作者画像 | [多模态帖子嵌入器](https://x-algorithm.vergego.ai/concepts/multimodal-embedders/) | `grox/flows/mm_emb/renderer_v82.py:187-284` |
| 可见性规则读的设置与国家 | [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) | `visibility-filtering/rules/tweet_rules.rs:294-394` |

## 相关页面

- [推荐系统工作原理](https://x-algorithm.vergego.ai/guide/how-it-works/) —— For You 的完整流程
- [Phoenix 排序模型](https://x-algorithm.vergego.ai/concepts/phoenix-ranking/) —— 互动序列与用户画像 token
- [home-mixer 编排层](https://x-algorithm.vergego.ai/concepts/home-mixer-orchestration/) —— 查询水合器在流水线里的位置
- [过滤流水线](https://x-algorithm.vergego.ai/concepts/filtering-pipeline/) —— 拉黑、静音、屏蔽词、去重
- [多模态帖子嵌入器](https://x-algorithm.vergego.ai/concepts/multimodal-embedders/) —— 作者块的完整字段
- [可见性过滤（Visibility Filtering）](https://x-algorithm.vergego.ai/concepts/visibility-filtering/) —— 可见性规则的输入
- [账号级信号（agatha、bdsm、user-cred-v2）](https://x-algorithm.vergego.ai/concepts/account-signals/) —— 后台账号分数
- [限流与 shadowban](https://x-algorithm.vergego.ai/guide/visibility-and-shadowban/) —— 账号标签的效果
- [术语速查表](https://x-algorithm.vergego.ai/guide/glossary/)

Source: https://x-algorithm.vergego.ai/guide/your-data/index.mdx
