第4章第二部7分
四十八時間の壁
For Youのスコア対象候補には48時間の上限がある。ただし、Xの全画面から消えるという話ではない。
この章で分かること
- 48時間がどこに効いて、どこに効かないかを区別できる
- フォロー中の投稿にも同じ期限があることが分かる
- 投稿設計の時間軸を正しく考えられる
この資料でいちばん単純なルールです。ただ、前回の版で「例外はない」「すべての経路」と書いたのは言い過ぎでした。どこに効く壁なのかを、丁寧に見ていきます。
48時間
これを過ぎた投稿は、For Youのスコア対象候補から外れる
48時間が効いている場所
| 場所 | 何が起きるか | 根拠 |
|---|---|---|
| For Youのフィルタ | 48時間を超えた候補を落とす | config.rs:39 |
| Thunder | 既定の保持は172,800秒(48時間) | args.rs:48-49 |
| SimClusters | 候補の年齢上限の既定が48時間 | param.rs:734-739 |
| Phoenix 再スコアの更新 | 初回更新から48時間、投稿から49時間で打ち切り | eventProcessing.strato:28-32 |
フォローしていても期限は同じ
フィルタの実装は、閲覧者の情報を参照していません。投稿IDから年齢を計算しているだけです。
duration_since_creation_opt(tweet_id)
.map(|age| age <= self.max_age)
.unwrap_or(false)効いていない場所
ここが訂正の中心です。48時間はFor Youの候補パイプラインの話で、次のものには当てはまりません。
| 場所 | 48時間との関係 | 根拠 |
|---|---|---|
| Followingタブの時系列 | 同じ AgeFilter は登録されていません | reverse_chron_posts_pipeline.rs:155-177 |
| For You内の Push to Home | リクエストで指定された投稿(push_to_home_post_id)を別枠で固定します。投稿の候補パイプラインとは別の取得元です | push_to_home_source.rs:54-66 |
| 検索・プロフィール・投稿の直接表示 | このリポジトリのFor Youパイプラインの対象外です | README.md:460 |
| 動画の長期索引 | 1fav_video の最大30日、evergreen_video の5年などの窓があります | mod.rs:170-185 |
「後から伸びる」をどう考えるか
以前の版では「後から伸びる経路は構造上ない」と書きました。正しくは、公開既定のFor Youのスコア対象候補に限れば、48時間を超えた投稿は新しく推薦されない、です。検索や引用先、誰かが貼ったリンク、Followingタブから読まれ続けることは、この話とは別に起こります。
For Youで広げたい投稿については、公開から48時間以内が勝負です。SimClustersの地図の半減期が8時間であることや、新人枠の投稿年齢の上限が2時間であることから、早い時間帯の反応が効きやすい場面もあります。
48時間以外の期間
| 対象 | 期間 | 備考 |
|---|---|---|
| 新人枠の投稿年齢 | 2時間 | 前回の24時間(一部実験群)から変更 |
| 人気投稿リストの対象 | 24時間 | 今回追加 |
| Phoenix 再スコアの投稿年齢上限 | 49時間 | 1時間の余裕 |
| Semantic IDの補充 | 1時間 | 投稿直後の取りこぼしを埋める窓 |
| 安全ラベルの有効期限 | 7日〜30日 | ラベルごとに違います |