本文へ移動
Xアルゴリズム解体新書
6第三部11

二十一の関門

スコアリング前に18個、選抜後に3個。どれか1つで引っかかれば、点数計算にすら進まない。

この章で分かること

  • 投稿が消える21の条件を把握できる
  • フォローが免除にならないフィルタを見分けられる
  • 通知が来ない削除があることを知る

候補が集まったあと、21個のフィルタが順番に通過します。逐次実行なので、1つでも引っかかった時点で消えます。点数はつきません。そして、どれも通知は来ません

実行の順番

登録順がそのまま実行順です。前段が残したものだけが次段に渡ります。

#フィルタ落とすもの
01DropDuplicates複数の棚から来た同じ投稿
02CoreDataHydration本文や著者情報の取得に失敗した投稿
03Age48時間を超えた投稿
04SelfTweet閲覧者自身の投稿
05OONRetweetReplyフォロー外の返信・リポスト
06OONNsfwSimclusters類似経路×フォロー外×NSFW著者
07RetweetDeduplication同じ原稿の重複リポスト
08IneligibleSubscription未購読のサブスク限定投稿
09PreviouslySeenPosts既読の投稿
10PreviouslySeenPostsBackup既読の投稿(別記録)
11PreviouslyServedPosts直近10分・100件以内に配信済み
12MutedKeyword閲覧者のミュート語を含む投稿
13AuthorSocialgraphブロック・ミュート関係にある投稿
14Brazil2026Electionブラジル選挙対象665アカウント
15Video動画(動画除外要求時のみ)
16TopicIds指定トピック外・除外トピック
17NewUserMinEngagement新規ユーザー向け低反応投稿(既定オフ)
18InventoryHoldoutハッシュで選ばれた一定割合(既定オフ)
19VFFilter可視性フィルタがドロップと答えた投稿
20AncillaryVF引用先・親・リポスト元が落とされた投稿
21DedupConversation同じ会話の2件目以降
01〜18がスコアリング前、19〜21が選抜後です。全一覧は「調べる → 全21フィルタ」にあります。

フォローしていても免除されない

「フォロワーには必ず届く」と思われがちですが、フォロー関係が免除として効くのは4つだけです。

フォローが免除になる免除にならない
OONRetweetReply<br>OONNsfwSimclusters<br>NewUserMinEngagement<br>Brazil2026ElectionAge(48時間)<br>MutedKeyword<br>AuthorSocialgraph<br>PreviouslySeenPosts<br>DedupConversation<br>AncillaryVF<br>ほか

特に知っておくべき3つ

マッチの仕方も明確です。大文字小文字・アクセント記号・句読点は無視されます。widget というミュート語は #widget にヒットしますが、逆に #launch というミュート語は素の launch にはヒットしません。複数語の場合は連続したフレーズである必要があります。

さらにこの判定には Bloom フィルタという確率的なデータ構造が使われており、一度も見られていない投稿が確率的に「見た」と誤判定されることがあります。仕様上避けられません。

既定で無効なもの

逆に、名前は怖いけれど既定では動いていないものもあります。

  • InventoryHoldout ── 内容と無関係に一定割合の投稿を特定の閲覧者から隠す仕組み。マスタースイッチが false かつ全パーセントが 0 で、二重に無効です
  • NewUserMinEngagement ── 新規ユーザーにフォロー外の低反応投稿を出さない仕組み。既定 false
  • Video ── 動画を除外するモードのときだけ動きます