本文へ移動
Xアルゴリズム解体新書
1第一部8

おすすめは毎回ゼロから作られる

Xを開くたびに、あなた専用のフィードがその場で組み立てられている。

この章で分かること

  • おすすめが「作り置き」ではないことが分かる
  • 12段階の流れを言葉で説明できるようになる
  • 「点数」の話は後半でしかないと理解できる

まず、いちばん大きな勘違いを外します。Xのおすすめは、あらかじめ用意された「人気投稿ランキング」ではありません。あなたがアプリを開いたその瞬間に、あなただけのために、ゼロから組み立てられています。

同じ投稿でも、見る人が違えば順番が違います。それどころか、そもそも表示されるかどうかも変わります。「バズった投稿」は存在しますが、「全員にとって点数が高い投稿」というものは、この仕組みの中には存在しません。

組み立ての12段階

実際のコードでは、次の順番で処理が進みます。専門用語はあとの章で全部ほどきますので、いまは「こういう順番なんだな」とだけ眺めてください。

  1. 01

    閲覧者の情報を集める

    いいね履歴・フォロー・ブロック・ミュート・既読・国・言語・年齢

  2. 02

    投稿候補を集める

    フォロー中の棚+フォロー外の2つの棚から、およそ3000件

  3. 03

    投稿の情報を補う

    本文・著者・メディア・引用・言語・意味コード・安全ラベル

  4. 04

    18個のフィルタで落とす

    48時間超・既読・ミュート語・ブロック関係・フォロー外の返信とリポスト

  5. 05

    AIが26項目を予測する

    この閲覧者が何をしそうかを、投稿ごとに確率で予測

  6. 06

    係数を掛けて合計する

    予測確率×ウェイトの積和。ここで初めて点数になる

  7. 07

    新人枠を1件確保する

    フォロワー1000以下・表示1000未満の投稿を16位相当へ

  8. 08

    同じ作者を減衰させる

    2本目0.625倍、3本目0.4375倍、下限0.25倍

  9. 09

    フォロー外を0.75倍にする

    フォロー中でも返信・リポストなら同じ割引

  10. 10

    似た投稿を間引く

    意味の近さで多様化。選外は点数0

  11. 11

    上位50件を選ぶ

    点数順に並べ替えて切り出す

  12. 12

    表示可否を判定する

    安全ラベルを読み、見せる・警告を挟む・見せないを決める

落とす・見せない判定点数をつけるcandidate_pipeline.rs:97-148

候補は約3000件、表示は35件

Xは1回のリクエストでおよそ3000件の投稿をかき集めます。そこから最終的に画面に載るのは、通常の投稿で35件です。

  • 集めた候補3,000
    フォロー中1200+フォロー外1000+類似800
  • 多様化の選抜50
    意味の近さで間引く
  • 上位選抜50
    点数順に切り出す
  • 最終的な投稿35
    1回のレスポンスに載る投稿数
候補のうち実際に表示されるのは約1%です。 config.rs:17-22

率にすると、集めた候補のうち約1%しか表示されません。落ちるのが普通で、残るのが例外です。この感覚を持っておくと、あとの話が腑に落ちやすくなります。

「順番」と「表示可否」は別の仕組み

もう1つ、最初に押さえておくと迷わなくなることがあります。Xでは並べる仕組みと、見せていいかを決める仕組みが、完全に別々です。

決めること担当
ランキング何番目に出すかHome Mixer のスコアリング
可視性フィルタそもそも出していいかVisibility Filtering
この2つは別サービス・別入力・別ルールで動いています。

だから「点数は高いのに誰にも見られない」も、「点数は低いのに表示はされる」も、両方ありえます。シャドウバンと呼ばれている現象の多くは、点数の話ではなく、こちらの表示可否の話です。詳しくは第12章で扱います。

並べる仕組みが順番を決める。見せる仕組みが可否を決める。別のサービス、別の入力、別のルール。リポジトリのREADME「Key Design Decisions」より要約

この資料の読み方

  1. 01

    急いでいる方

    第2章(点数の正体)と第5章(返信とリポスト)だけ読んでください。誤解の8割はここで解けます。

  2. 02

    順番に理解したい方

    このまま第2章へ進んでください。全13章で、候補集めから表示判定まで一周します。

  3. 03

    数字を確認したい方

    「調べる」の各リファレンスに、全26ウェイト・全21フィルタ・安全ラベルを一覧で置いています。