x-algo-engagement

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

X Algorithm Engagement Signals

X算法互动信号

The X recommendation algorithm tracks 18 engagement action types plus 1 continuous metric. These are predicted by the Phoenix ML model and used to calculate weighted scores.
X推荐算法追踪18种互动行为类型以及1项连续指标。这些内容由Phoenix ML模型预测,用于计算加权分数。

PhoenixScores Struct

PhoenixScores 结构体

Defined in
home-mixer/candidate_pipeline/candidate.rs
:
rust
pub struct PhoenixScores {
    // Positive engagement signals
    pub favorite_score: Option<f64>,
    pub reply_score: Option<f64>,
    pub retweet_score: Option<f64>,
    pub quote_score: Option<f64>,
    pub share_score: Option<f64>,
    pub share_via_dm_score: Option<f64>,
    pub share_via_copy_link_score: Option<f64>,
    pub follow_author_score: Option<f64>,

    // Engagement metrics
    pub photo_expand_score: Option<f64>,
    pub click_score: Option<f64>,
    pub profile_click_score: Option<f64>,
    pub vqv_score: Option<f64>,              // Video Quality View
    pub dwell_score: Option<f64>,
    pub quoted_click_score: Option<f64>,

    // Negative signals
    pub not_interested_score: Option<f64>,
    pub block_author_score: Option<f64>,
    pub mute_author_score: Option<f64>,
    pub report_score: Option<f64>,

    // Continuous actions
    pub dwell_time: Option<f64>,
}
定义于
home-mixer/candidate_pipeline/candidate.rs
rust
pub struct PhoenixScores {
    // Positive engagement signals
    pub favorite_score: Option<f64>,
    pub reply_score: Option<f64>,
    pub retweet_score: Option<f64>,
    pub quote_score: Option<f64>,
    pub share_score: Option<f64>,
    pub share_via_dm_score: Option<f64>,
    pub share_via_copy_link_score: Option<f64>,
    pub follow_author_score: Option<f64>,

    // Engagement metrics
    pub photo_expand_score: Option<f64>,
    pub click_score: Option<f64>,
    pub profile_click_score: Option<f64>,
    pub vqv_score: Option<f64>,              // Video Quality View
    pub dwell_score: Option<f64>,
    pub quoted_click_score: Option<f64>,

    // Negative signals
    pub not_interested_score: Option<f64>,
    pub block_author_score: Option<f64>,
    pub mute_author_score: Option<f64>,
    pub report_score: Option<f64>,

    // Continuous actions
    pub dwell_time: Option<f64>,
}

Action Types by Category

按类别划分的行为类型

Positive Engagement (High Value)

正向互动(高价值)

ActionProto NameDescription
Favorite
ServerTweetFav
User likes the post
Reply
ServerTweetReply
User replies to the post
Retweet
ServerTweetRetweet
User reposts without comment
Quote
ServerTweetQuote
User reposts with their own comment
Follow Author
ClientTweetFollowAuthor
User follows the post's author
行为Proto 名称描述
点赞
ServerTweetFav
用户点赞该帖子
回复
ServerTweetReply
用户回复该帖子
转发
ServerTweetRetweet
用户无评论转发帖子
引用转发
ServerTweetQuote
用户附带个人评论转发帖子
关注作者
ClientTweetFollowAuthor
用户关注该帖子的作者

Sharing Actions

分享行为

ActionProto NameDescription
Share
ClientTweetShare
Generic share action
Share via DM
ClientTweetClickSendViaDirectMessage
User shares via direct message
Share via Copy Link
ClientTweetShareViaCopyLink
User copies link to share externally
行为Proto 名称描述
分享
ClientTweetShare
通用分享行为
通过私信分享
ClientTweetClickSendViaDirectMessage
用户通过私信分享内容
通过复制链接分享
ClientTweetShareViaCopyLink
用户复制链接进行外部分享

Engagement Metrics

互动指标

ActionProto NameDescription
Photo Expand
ClientTweetPhotoExpand
User expands photo to view
Click
ClientTweetClick
User clicks on the post
Profile Click
ClientTweetClickProfile
User clicks author's profile
VQV
ClientTweetVideoQualityView
Video Quality View - user watches video for meaningful duration
Dwell
ClientTweetRecapDwelled
User dwells (pauses) on the post
Quoted Click
ClientQuotedTweetClick
User clicks on a quoted post
行为Proto 名称描述
展开图片
ClientTweetPhotoExpand
用户展开图片查看
点击帖子
ClientTweetClick
用户点击该帖子
点击主页
ClientTweetClickProfile
用户点击作者的主页
VQV
ClientTweetVideoQualityView
视频质量观看(VQV)——用户观看视频达到有效时长
停留
ClientTweetRecapDwelled
用户在该帖子上停留(暂停浏览)
点击引用帖子
ClientQuotedTweetClick
用户点击引用的帖子

Negative Signals

负向信号

ActionProto NameDescription
Not Interested
ClientTweetNotInterestedIn
User marks as not interested
Block Author
ClientTweetBlockAuthor
User blocks the author
Mute Author
ClientTweetMuteAuthor
User mutes the author
Report
ClientTweetReport
User reports the post
行为Proto 名称描述
不感兴趣
ClientTweetNotInterestedIn
用户标记为不感兴趣
屏蔽作者
ClientTweetBlockAuthor
用户屏蔽该作者
静音作者
ClientTweetMuteAuthor
用户静音该作者
举报
ClientTweetReport
用户举报该帖子

Continuous Actions

连续行为

ActionProto NameDescription
Dwell Time
DwellTime
Continuous value: seconds spent viewing post
行为Proto 名称描述
停留时长
DwellTime
连续数值:用户查看帖子的秒数

How Scores Are Obtained

分数获取方式

The
PhoenixScorer
(
home-mixer/scorers/phoenix_scorer.rs
) calls the Phoenix prediction service:
  1. Input: User history + candidate posts
  2. Output: Log probabilities for each action type per candidate
  3. Conversion:
    probability = exp(log_prob)
rust
fn extract_phoenix_scores(&self, p: &ActionPredictions) -> PhoenixScores {
    PhoenixScores {
        favorite_score: p.get(ActionName::ServerTweetFav),
        reply_score: p.get(ActionName::ServerTweetReply),
        retweet_score: p.get(ActionName::ServerTweetRetweet),
        // ... maps each action to its probability
    }
}
PhoenixScorer
home-mixer/scorers/phoenix_scorer.rs
)调用Phoenix预测服务:
  1. 输入:用户历史数据 + 候选帖子
  2. 输出:每个候选帖子对应每种行为类型的对数概率
  3. 转换
    概率 = exp(对数概率)
rust
fn extract_phoenix_scores(&self, p: &ActionPredictions) -> PhoenixScores {
    PhoenixScores {
        favorite_score: p.get(ActionName::ServerTweetFav),
        reply_score: p.get(ActionName::ServerTweetReply),
        retweet_score: p.get(ActionName::ServerTweetRetweet),
        // ... 映射每个行为到对应的概率
    }
}

Signal Interpretation

信号解读

  • Scores are probabilities (0.0 to 1.0): P(user takes action | user sees post)
  • Higher = more likely: A
    favorite_score
    of 0.15 means 15% predicted chance of like
  • Negative signals have negative weights: High
    report_score
    reduces overall ranking
  • VQV requires minimum video duration: Only applies to videos >
    MIN_VIDEO_DURATION_MS
  • 分数为概率值(0.0 至 1.0):P(用户看到帖子后执行该行为)
  • 分数越高可能性越大
    favorite_score
    为0.15意味着用户有15%的概率点赞该帖子
  • 负向信号带有负权重:高
    report_score
    会降低帖子的整体排名
  • VQV要求最低视频时长:仅适用于时长超过
    MIN_VIDEO_DURATION_MS
    的视频

Related Skills

相关技能

  • /x-algo-scoring
    - How these signals are combined into a weighted score
  • /x-algo-ml
    - How Phoenix model predicts these probabilities
  • /x-algo-scoring
    - 这些信号如何组合成加权分数
  • /x-algo-ml
    - Phoenix模型如何预测这些概率