本文へ移動
Xアルゴリズム解体新書

リファレンス

数字の節目

覚えておくと投稿の設計が変わる数値を、コードから抜き出して並べました。

35 / 35

数値意味
48時間

投稿の寿命(AgeFilter)

投稿から48時間を過ぎた候補は、スコア計算に進む前に問答無用で落とされます。フォローしていても課金購読していても例外はなく、「後からじわじわ伸びる」経路は構造として存在しません。

config.rs:36

10秒超

動画品質視聴(VQV)の加点条件

動画の尺が10,000ミリ秒を超えていないと、動画品質視聴の加点そのものが0に落とされます。ショート動画を9秒で作るか11秒で作るかで、加点の有無が切り替わります。

param.rs:740

5秒以上

Thunderの動画枠に入る最低尺

フォロワー向けの動画枠(著者あたり100件)に入るには、メディアがちょうど1個・動画形式・5秒以上の3つが全部必要です。GIFは動画として扱われないため、この枠には入りません。

tweet_events_listener.rs:60

8時間

SimClustersのいいね半減期

類似投稿マップの計算では、8時間前のいいねは今のいいねの半分の価値しかありません。同じ100いいねでも、短時間に集中したほうがこの経路では強く出ます。

Configs.scala:39

10分/100件

直近配信済みの再表示ブロック

一度その閲覧者に配信した投稿は、直近10分・直近100件の範囲で再配信されません。同じ人の画面に短時間で何度も出し直すことはできない仕組みです。

param.rs:1071

180

候補キャッシュのTTL

生成した候補はRedisに180秒だけ保存され、ヒットするとすべての候補取得ソースが無効化されます。3分以内にアプリを引き直しても、並ぶ顔ぶれはほぼ変わりません。

redis_post_candidate_cache_side_effect.rs:10

3

Semantic IDが付くまでの待ち時間

投稿の意味を表すコード(Semantic ID)は、投稿から180秒経たないと付与されません。投稿直後の数分間は、AIが内容を読み切れていない状態で扱われます。

mod.rs:66

50

著者あたりのオリジナル投稿枠

Thunderは1人の著者につきオリジナル投稿を50件までしか保持しません。引用ポストもこの50枠側に入ります。51件目以降は古いものから押し出されます。

config.rs:6

30

著者あたりの返信+リポスト枠(共有)

返信とリポストは合わせて30件の共有枠です。リプ欄で大量に発言すると、自分のリポストが自分の返信に押し出されます。

config.rs:5

100

著者あたりの動画投稿枠

動画は独立した100件の枠を持ちます。オリジナル50枠とは別勘定なので、動画中心のアカウントはフォロワー向けの在庫を多く持てます。

config.rs:7

10,000

Thunderが読むフォローの上限

閲覧者のフォローリストは1万人分までしか投入されません。1万人以上フォローしている人のタイムラインでは、後方の著者が丸ごと欠落します。

config.rs:3

50

スコア上位の選抜数(TopK)

約3000件の候補は、スコア順に上位50件まで絞られます。ここに入れなかった投稿は、後段の処理を一切受けません。

config.rs:17

35

Phoenixパイプラインの最終投稿数

上位50件からさらに切り詰められ、実際に返る投稿は35件です。1回のリクエストで人の目に触れる枠は、この35席しかありません。

config.rs:18

47

1レスポンスの合計上限

投稿35件に、モジュール枠4件とJetfuelフレーム8件を足した47件が1回のレスポンスの上限です。おすすめユーザーは6番目、フィードアンケートは12番目に固定で挿入されます。

config.rs:21

1024

モデルが見る閲覧者の行動履歴

Phoenixは閲覧者の直近1024件の行動を毎回まるごと入力として受け取ります。モデル内部に記憶を持たないため、数秒前のいいねもその場で反映され得ます。

param.rs:951

16カ国

年齢未申告でもNSFWを落とす国

年齢を申告していない閲覧者がこの16カ国にいると、センシティブ判定の投稿は表示されません。アルゼンチン・オーストラリア・ブラジル・カナダ・ドイツなどが対象です。

nsfw_age_gating.rs:5

1いいね

フォロー外インデックスの入口(1fav)

いいねが1件付いた瞬間に1favインデックスへ投入され、フォロー外の人に配られる候補になります。0件と1件の間に、拡散するかどうかの最初の段差があります。

phoenixRankAllCandidateProcessor.strato:78

8いいね

SimClustersに載る条件

いいねが8件以上集まって初めて投稿の埋め込みが生成され、「似た投稿」の地図に載ります。7件までは、この類似検索経由の流入はゼロです。

Configs.scala:65

32いいね

上位インデックス(32fav)の閾値

いいね32件で、より選抜された32favインデックスに載ります。再インデックスの最小エンゲージメント条件も32件で、ここが「候補として扱われ続ける」ラインです。

phoenixRankAllCandidateProcessor.strato:62

2の冪

再スコアリングが走るタイミング

いいね数が64・128・256…と2の冪を超えるたびに、次の閾値が計算し直されて投稿のスコアが更新されます。いいねを2倍にして初めて1段上がる、という粗い刻みです。

favoriteEventProcessor.strato:14

1000フォロワー

新人枠の著者フォロワー上限

フォロワー1000人以下の著者だけが新人枠(AuthorColdStart)の対象になります。1001人になった瞬間に、この救済からは外れます。

param.rs:664

1000表示

新人枠の表示回数上限

その投稿の表示回数が1000回未満であることも新人枠の条件です。1リクエストにつき条件を満たす投稿が1件だけ選ばれ、16位相当の点数まで引き上げられます。

param.rs:646

25,000フォロワー

自動ラベルから守られるフォロワー数

信用スコアが取得できない場合でも、フォロワーが2.5万人を超えていれば自動NSFWラベルを回避し、人間のレビューに回されます。同じ投稿でもアカウントによって扱いが違う理由のひとつです。

IsHighPageRankUser.df:12

54

user-cred-v2の保護ライン

フォローグラフ上のPageRankスコアが54以上だと、NSFW・スパム・暴力表現の自動ラベル付けを回避して人間審査に回ります。50以上なら自動執行システムそのものを全スキップします。

HighPageRankThreshold.df:2

0.95

NSFW_HIGH_PRECISIONの閾値

画像のNSFW判定がprecision 0.95以上になると投稿にラベルが付き、フォロー外には出なくなり、フォロワーにも警告つきで表示されます。

IsHighPrecisionNsfwNewModelLogic.df:3

0.999

NSFW_NEAR_PERFECTの閾値

0.999以上はアカウント単位のラベルに使われる、ほぼ確実と判定された水準です。付与されるとアカウントの全投稿がフォロー外の推薦から外れます。

IsNearPerfectNsfwNewModelLogic.df:3

0.97

Grokスパムスコアの返信ラベル閾値

Grokのスパムスコアが0.97以上の返信には、14日間のリスクラベルが付きます。高速連投リプライやテンプレ返信は、この判定に触れやすい行動です。

GroxTweetProcessor.bot:7

3件/日

アカウントにNSFWラベルが付く本数

1日にNSFW判定の投稿が3件を超えると、投稿単位ではなくアカウント単位のラベルが7日間付きます。1件ずつは軽くても、本数が閾値を作ります。

ApplyNsfwUserLabel.df:30

5投稿中3件

集計経路のアカウントラベル昇格(TTL7日)

直近5投稿のうち3件が高精度NSFW判定だと、アカウントに7日間のラベルが付きます。投稿本数が少ないアカウントほど、この比率条件に引っかかりやすくなります。

postToUserLabelRules.strato:398

18

センシティブ表示の年齢ゲート

18歳未満の閲覧者にはセンシティブ判定の投稿を表示しません。ログアウト状態の閲覧者も同様に落とされます。

viewer.rs:17

1年/月10投稿

Under the Hoodの受給資格

自分に付いたラベルを確認できる開示ツールは、アカウント作成から1年以上かつ前月に10投稿以上が条件です。月末から10日後に反映され、機能フラグは既定で無効のため段階公開中です。

underTheHoodReport.User.strato:16

×0.75

フォロー外割引(OON Discount)

フォローされていないアカウントの投稿には一律0.75倍が掛かります。見落とされがちですが、フォロー中のアカウントでも返信・リポストなら同じ0.75倍が掛かり、割引を免れるのはオリジナル投稿だけです。

param.rs:247

×0.5^k

同一著者の減衰(下限0.25)

同じ著者の投稿が上位に何本あるかをkとして、2本目0.625倍・3本目0.4375倍・4本目0.34375倍と減っていきます。下限は0.25で、1人が同じフィードを埋め尽くすことはできません。

param.rs:229

+20.0

リンクコピー共有のウェイト(最大)

26項目で最大の係数です。ただし掛かるのは実際のコピー回数ではなく「この閲覧者がコピーしそうな確率」で、確率3%なら寄与は0.6点になります。

param.rs:352

+15.0

相互フォロー返信ブースト

相互フォローかつオリジナル投稿のときだけ、返信の係数が5.0+15.0=20.0の4倍になります。返信・リポストにはこのボーナスは付きません。

param.rs:311