关于 x-algo-engagement
此技能介绍 X 推荐算法如何利用用户互动信号为帖子评分,面向分析算法行为或相关代码的读者。内容涵盖互动类型、Phoenix 模型的预测分数及其解释。
主要功能
- 01梳理正向与负向互动类型
- 02列出互动对应的协议名称
- 03说明 Phoenix 预测分数
- 04解释概率与排序权重
- 05介绍视频观看质量信号
适用场景
- 01查阅 X 算法采用的互动信号
- 02理解 Phoenix 分数的含义
- 03分析帖子排序中的负向信号
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ cloudai-x/ x-algo-skills --skill x-algo-engagement安装后在 Claude Code 中输入/x-algo-engagement确认已加载。
详细介绍
X 算法参与度信号
X 推荐算法会追踪 18 种参与操作类型和 1 项连续指标。这些由 Phoenix ML 模型预测,并用于计算加权分数。
PhoenixScores 结构体
定义于 home-mixer/candidate_pipeline/candidate.rs:
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>,
}
按类别划分的操作类型
正向参与(价值较高)
| 操作 | Proto 名称 | 描述 |
|---|---|---|
| 喜欢 | ServerTweetFav | 用户喜欢该帖子 |
| 回复 | ServerTweetReply | 用户回复该帖子 |
| 转发 | ServerTweetRetweet | 用户不添加评论而转发该帖子 |
| 引用 | ServerTweetQuote | 用户添加自己的评论后转发该帖子 |
| 关注作者 | ClientTweetFollowAuthor | 用户关注该帖子的作者 |
分享操作
| 操作 | Proto 名称 | 描述 |
|---|---|---|
| 分享 | ClientTweetShare | 通用分享操作 |
| 通过私信分享 | ClientTweetClickSendViaDirectMessage | 用户通过私信分享 |
| 通过复制链接分享 | ClientTweetShareViaCopyLink | 用户复制链接以在外部分享 |
参与度指标
| 操作 | Proto 名称 | 描述 |
|---|---|---|
| 展开照片 | ClientTweetPhotoExpand | 用户展开照片进行查看 |
| 点击 | ClientTweetClick | 用户点击该帖子 |
| 点击个人资料 | ClientTweetClickProfile | 用户点击作者的个人资料 |
| VQV | ClientTweetVideoQualityView | 视频质量观看——用户观看视频达到有意义的时长 |
| 停留 | ClientTweetRecapDwelled | 用户在该帖子上停留(暂停) |
| 点击引用帖 | ClientQuotedTweetClick | 用户点击被引用的帖子 |
负向信号
| 操作 | Proto 名称 | 描述 |
|---|---|---|
| 不感兴趣 | ClientTweetNotInterestedIn | 用户将其标记为不感兴趣 |
| 屏蔽作者 | ClientTweetBlockAuthor | 用户屏蔽作者 |
| 隐藏作者 | ClientTweetMuteAuthor | 用户隐藏作者 |
| 举报 | ClientTweetReport | 用户举报该帖子 |
连续操作
| 操作 | Proto 名称 | 描述 |
|---|---|---|
| 停留时长 | DwellTime | 连续值:用户查看帖子的秒数 |
分数的获取方式
PhoenixScorer(home-mixer/scorers/phoenix_scorer.rs)会调用 Phoenix 预测服务:
- 输入:用户历史记录 + 候选帖子
- 输出:每个候选帖子各操作类型的对数概率
- 转换:
probability = exp(log_prob)
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
}
}
信号解读
- 分数表示概率(0.0 到 1.0):P(用户看到帖子后采取行动)
- 分数越高 = 可能性越大:
favorite_score为 0.15 表示预测用户点赞的概率为 15% - 负向信号具有负权重:较高的
report_score会降低整体排名 - VQV 要求视频达到最短时长:仅适用于时长 >
MIN_VIDEO_DURATION_MS的视频
相关技能
/x-algo-scoring- 了解这些信号如何组合为加权分数/x-algo-ml- 了解 Phoenix 模型如何预测这些概率
评论
支持 Markdown