Xは2026年8月13日、「For You」フィードの推薦システムを公開するGitHubリポジトリを大幅に拡充した。新たに加わったのは、投稿の順位を決める重みやモデル設定に加え、スパムや成人向けコンテンツなどを検出して表示を制限する仕組み、アカウントへの措置を決めるコードだ。同時に、本人の投稿やアカウントに可視性のラベルが付いたかをJSONで確認できる「Under the Hood」の試験提供も始まった。いわゆる「シャドウバン」を二択で判定する機能ではないが、届かなかった理由の一部を利用者が自分でたどれるようになった。
2,512エントリーまで広がった公開範囲
Xは2026年1月、フォロー内の投稿を集めるThunder、フォロー外から候補を探すPhoenix、フィード全体を組み立てるHome Mixerなどを公開した。5月には、Phoenixを端から端まで動かす推論パイプラインやコンテンツ理解システムのGrox、広告を混ぜる処理などが加わった。それでも中心にあったのは、候補を集めて順位を付けるまでの流れだった。
8月版では範囲が一変した。GitHub APIの再帰ツリーを各時点で同じ方法で数えると、リポジトリ内のファイルとディレクトリは1月の93エントリー、5月の244エントリーから、8月には2,512エントリーへ増えた。5月版との比較で約10.3倍である。8月13日の主要コミットだけでも36万3,246行が追加された。
増えたコードは、可視性を左右する経路を広く覆う。投稿や画像を分類するGrox、media-model-proxy、CLIPが加わり、Agathaはブロックや報告の傾向からアカウントを評価する。BDSMは不自然な行動を検出し、ScarecrowとBotmakerは規則に基づいてラベルを付ける。abuse-enforcement-serviceは措置を実行する。Xは「何を上位に出すか」の計算に加え、「なぜ候補から落ちるか」を生む上流の処理まで公開し、監査範囲を押し広げた。
ライセンスはApache License 2.0で、開発者はコードを調べ、改変し、再配布できる。TechCrunchの取材によると、公開前にコードを見た外部研究者はPhoenixのスコアリングシステムを訓練し、実行した。ただし、研究者がX上の各投稿について本番のスコアを取得したわけではない。
順位の計算と、表示可否を分ける二つの回路
For Youの処理は、順位付けと可視性判定を別の回路に分けている。まずThunderがフォロー中のアカウントから投稿を集め、Phoenix retrievalとSimClustersがフォロー外の候補を探す。Phoenixは、閲覧者が「いいね」、返信、再投稿、リンク共有などの行動を取る確率を投稿ごとに予測する。RankingScorerは、その確率に行動別の重みを掛け、足し合わせて順位の基礎となるスコアを作る。
公開コードの主要デフォルトでは、「いいね」の重みが0.5、返信が5.0、再投稿が1.0、リンクをコピーして共有する行動が20.0、投稿者のフォローが4.0に設定されている。相互フォロー相手の通常投稿には、返信の重みへ15.0を加える設定もある。もっとも、数字の大小をそのまま「リーチの倍率」と読むことはできない。Xは、各値が行動の価値とネットワーク全体での発生頻度を合わせたものだと説明しており、最終スコアには予測確率も掛かるからだ。
順位を作った後には、visibility-filteringが投稿と閲覧者の組み合わせごとに「通常表示」「警告画面を挟んで表示」「非表示」のいずれかを返す。非表示と判定された投稿は、順位付け後にフィードから取り除かれる。たとえばスパムの疑いがあると判定した投稿は非フォロワーへの推薦から外し、確度の高いスパムはX上に表示しない。成人向けや暴力的なメディアには、年齢やログイン状態に応じて警告や非表示を適用する。
この分離が、リーチ低下を一語で説明できない理由だ。投稿は低いスコアで下位になったのかもしれず、既読や鮮度のフィルターにかかった可能性もある。あるいは可視性ラベルによって、非フォロワーへの推薦だけから外れたのかもしれない。Under the Hoodが見せるのは、このうちラベルが関与した部分である。
「シャドウバン」をどこまで確認できるのか
Under the Hoodは、認証済みの本人に前月分の集計を返す。公開コードでは、アカウント開設から365日を超え、対象月に集計対象となる投稿が10件以上あることが利用条件だ。月末から最低10日が経過し、観測が完了した月を選ぶ。不完全な場合は、さらに1か月前のデータへ戻る。
ダウンロードするJSONには対象期間と生成日時、投稿数が入り、投稿ラベルとアカウントラベルが続く。投稿ラベルには該当した投稿数と全投稿に占める割合、アカウントラベルには有効だった日数と期間内の割合が付く。それぞれのラベルには内容と効果の説明もあり、利用者はリポジトリ内の規則と照合できる。
具体例を見ると、SPAM_HIGH_RECALLは再現率を重視する自動検出でスパムの疑いがあると判定した投稿を、非フォロワーへの推薦から外す。FOSNR_ABUSE_INSULTSも非フォロワー向け推薦を止め、可視性を制限したことを示す表示を添える。一方、SPAMは投稿自体をX上に表示しない。Xの公式ヘルプが挙げる措置も、検索やトレンドからの除外、For YouやFollowingからの除外、プロフィールだけでの表示、返信欄での順位引き下げなど複数に分かれている。
したがって、JSONは「制限あり・なし」を返す検査票ではない。どの種類のラベルが、対象月のうち何件の投稿、あるいは何日間に適用されたかを示す月次報告である。ラベルが見つからなくても、順位が低かった理由や実験の影響までは分からない。逆にラベルがあれば、投稿が誰に対して、どの経路で見えにくくなったかを具体的に追える。
コード公開後も残る本番との距離
Xは公開範囲に境界を設けている。Groxが使う具体的なLLMプロンプトと、一部のBotmakerルールは、回避や悪用を防ぐためリポジトリに含めていない。社内の配備基盤に依存する部分も省かれており、公開された全サービスを社外でそのまま再現できるわけではない。Phoenixについては、合成データで小規模なモデルを訓練し、動かすための構成が用意されている。
設定値にも時間差がある。Xは主要な本番デフォルトを定期的にコードへ同期し、タイムライン流量の10%以上を占めるような顕著な実験はリポジトリに見えるようにする方針を示した。裏返せば、小規模な実験や設定上書きまで常に一致する保証ではない。公開された重みは本番を読む強い手掛かりだが、全利用者に固定された攻略表ではない。
透明性を求める圧力も続いている。欧州委員会は2026年1月、Xの推薦システムがデジタルサービス法に基づくリスク評価と軽減義務を満たしているか、既存の調査を拡大した。今回の公開がその調査への対応だとする説明はないものの、外部が監査できる材料は大きく増えた。
残る判断材料は、Under the Hoodが一部アカウント向けの試験からどこまで広がるか、誤ったラベルを見つけた利用者が検証結果を異議申し立てへ結びつけられるかである。本人に結果を返すだけで終わらず、Xが誤判定の修正まで進められるかが、この透明性の実効性を決める。
