いいね0.5に対して通報は-234:Xの公開コードで読む「おすすめ」の採点と、嫌われない投稿設計8項目

Xが公開した推薦アルゴリズムのコードを、公式の説明書と重みの設定ファイルから読む。いいね0.5に対して報告は-234。この桁違いの減点が「件数」ではなく「読者ごとの確率」に掛かる仕組みと、そこから導いた投稿設計8項目。出典URL付き。

更新
  • X運用
  • アルゴリズム

結論

Xのおすすめ(For You)は「いいねの数で決まる」と思われがちだ。だが公開コードの採点表では、いいね0.5に対して報告(通報)は-234、ミュートは-58.8。読者に嫌がられる見込みがわずかにあるだけで、いいねされる見込みを大きく打ち消す採点になっている。しかもこの重みが掛かるのは、実際に付いた「いいねの数」ではなく、「投稿を見せる相手ひとりひとりについて、その人がいいねしそうか・通報しそうか」という確率だ。だから、伸ばす工夫より先に「興味のない人に届いたとき嫌がられない」投稿設計を整えるべきだと私は考えている。

この記事は、その根拠になっている公開コードを一次資料の順に読んでいく。前半(§1〜8)は仕組み、後半(§9〜10)は私の解釈と投稿設計だ。実践だけ知りたい人は、§9のチェックリストへ飛んでもらって構わない。

この記事の読み方

一次資料はGitHubで公開されているxai-org/x-algorithmだ。引用する数値は、そのREADME(公開コードに添えられている公式の説明書。以下「説明書」と呼ぶ)と、重みの設定ファイル(param.rs)から2026-09-02時点で読み取った。ファイルの一覧は記事末尾の「参考資料」にまとめてある。

なお、公開コードは4週間ごとに更新して透明性を示すとマスク氏が約束している(TechCrunch 2026-01-20)。数値は変わるので、値の暗記ではなく「どういう構造か」を持ち帰ってほしい。

1. 公開は3回に分かれた

時期何が出たか出典
2023年3月旧Twitterがアルゴリズムの一部を公開。候補を約1,500件集め、内輪(フォロー中の相手)と外輪(フォロー外)をほぼ半々で混ぜ、Heavy Rankerという採点モデルで並べる構造だったtwitter/the-algorithm
2026年1月20日xAIが全面的に書き直した推薦エンジンを公開。Grok-1(xAIのAIモデル)から移植した採点モデルを使う。あわせて、4週間ごとに公開コードを更新して透明性を示すとマスク氏が約束した初回コミット aaa167b3TechCrunch 2026-01-20
2026年8月13〜14日重みの具体値と、投稿の表示・非表示を決めるフィルタ系のコードを追加公開。コード全体は従来の10〜15倍の規模になった。同時に、自分のアカウントに付いたラベルを見られる透明性ツール「Under the Hood」を試験公開説明書の Notable UpdatesTechCrunch 2026-08-13

公開されていないものも明記されている。説明書の「What's not in this repo?」には、Grox(投稿の中身を検品するモデル。Grokと1字違いだが別物。§8で説明する)への指示文の本文と、一部のBotmaker(スパム判定などのルールを書く仕組み)のルールが挙げられ、理由は「人々がシステムを攻略するのに使いうるから」とある。つまり「重みは見えるが、スパム判定の急所は見えない」状態だ。

2. 投稿がタイムラインに出るまでの8段階

説明書の「System Architecture」に沿うと、1回の「おすすめ」表示は次の順に組み立てられる。

おすすめ表示ができるまでの8段階。読者の情報を集め、候補を集め、候補の情報を集め、採点前フィルタで落とし、採点し、選抜し、表示可否を判定し、広告などと混ぜる。採点(5)と表示可否(7)は別の仕組み

  1. 読者の情報を集める(Query Hydration)。直近の行動履歴、フォロー一覧、ブロック・ミュート
  2. 候補を集める(Candidate Sources)。後述の3系統から投稿を集める
  3. 候補の情報を集める(Candidate Hydration)。本文・メディア・著者・反応数
  4. 採点前フィルタ(Pre-Scoring Filters)。重複、48時間より古い投稿、ブロック/ミュート相手、既読、ミュートしたキーワードを落とす
  5. 採点(Scoring)。Phoenixが行動確率を予測し、重みを掛けて合計する
  6. 選抜(Selection)。上位N件を残す
  7. 表示可否(Post-Selection Filters)。表示/警告付き/非表示(ALLOW/INTERSTITIAL/DROP)を判定する
  8. 混ぜる(Blending)。広告・「おすすめユーザー」などを差し込む

ここで押さえてほしいのは、並べる(5)と見せてよいか(7)は別の仕組みだという点だ。説明書の設計方針にも「ランキングと表示可否は分離する」(Ranking and Visibility Are Separate)と明記されている。「伸びない」には「採点で沈んでいる」と「表示可否で止められている」の2種類があり、対処が違う。見分け方と対処は§10で扱う。

3. 候補を集める3つの入口

候補を集める入口は3系統ある(説明書のComponents)。ここから先、フォローしている相手を「内輪」、それ以外を「外輪」と呼ぶ。

系統何をするか投稿する側にとっての意味
Thunderフォロー中のアカウントの最近の投稿をメモリ上に保持して返すフォロワーには「候補になる」ところまでは保証される
Phoenix retrieval読者と投稿をそれぞれ数値の並び(ベクトル)に変換し、数値の上で「内容が近い」投稿を探すフォローされていなくても「内容が近い」だけで候補になる
SimClusters「誰が何に反応したか」でアカウントと投稿をクラスタに分ける同じ興味の集団に届く

2023年版では内輪と外輪を約半々で混ぜていた(§1の表のとおり)。2026年版の説明書に比率の明記は無いが、後述の「外輪割引(0.75)」が採点段階で効くため、外輪の投稿は、採点が同じでもスコアが0.75倍(25%減)になる。

4. 採点前フィルタは土俵に乗る条件

採点の前に落とされる条件は明確だ。説明書には、48時間より古い投稿、既に見せた投稿、ブロック・ミュートした相手の投稿、ミュートしたキーワードを含む投稿、重複が挙げられている。

実務での意味は1つ。時事ネタは48時間で候補から外れる。「あとで伸びる」は起きにくい構造なので、鮮度のある話題は当日に出すのが合理的だろう。

5. 採点係のPhoenixは64種類の行動確率を一度に出す

採点係のPhoenixの仕組みは、Phoenixの説明書に書かれている。名前は覚えなくてよい。「採点する係」とだけ押さえておけば十分だ。

入力は読者の直近1,022件の行動履歴(執筆時点の設定値)と、候補投稿の特徴だ。投稿は本文の文字がそのまま渡るわけではない。本文と画像・動画の内容を、図書館の分類コードのような短い記号列、いわば「意味ID」に要約して渡す。誰が書いたか(著者ID)も、元の値が分からない形に変換される。

出力は「この読者がこの投稿に対して各行動をとる確率」で、64種類の離散行動(いいね・返信・リポスト・引用・共有の各種・クリック・「興味なし」・ミュート・ブロック・報告など)と8種類の連続値(滞在時間など)を、1回の推論で同時に出す。

Phoenixが確率を出す段階では、候補どうしは互いを参照しない。隣に何が並ぶかで確率は変わらない。

初期公開版は「Grok-1のオープンソース版から移植したサンプル」だったが、現在は「本番実装そのもの」だと説明書に書かれている。

その確率に次章の重みを掛けて合計したものが基本スコアだ。説明書の式は明快で、

Final Score = Σ (weight_i × P(action_i)) — xai-org/x-algorithm README

日本語にすると「合計点 = 行動ごとに(重み × その読者がその行動をとる確率)を計算して、全部足したもの」になる。

さらに2026-08-14の更新で、重みは予測確率に掛かるのであって生のエンゲージメント数には掛からない、と明記された。ここは誤解が多い。「いいねが100付いたから+50点」ではなく、「この読者がいいねする確率が0.3なら0.5×0.3」という計算だ。

採点は件数ではなく確率に重みを掛ける。いいね100件で+50点という誤解に対し、実際は読者ごとの確率に重みを掛けて合計する。いいね+0.15と返信+0.50の見込みがあっても、報告される確率が0.3%あるだけで-0.70となり、合計は-0.05と負になる

ただし合計のあとに、並びを見て点を動かす調整が3つ入る(説明書「How It Works」)。

調整内容設定値(重みの設定ファイル)
著者の分散同じ著者の2件目以降は減衰係数を掛け、下限まで下げる
外輪割引フォローしていないアカウントの投稿に1未満の係数を掛けるOonWeightFactor = 0.75(トピック経由は 0.5)
新規著者ブースト表示回数が閾値未満の著者の投稿を目標位置まで持ち上げる

最後にVMRankerという仕上げの係が、似た投稿が続かないように散らしてから上位を選抜する。

6. 重みの一覧:会話は10倍、否定は桁違い

重みの実物はhome-mixer/params/param.rsにある。2026-09-02時点の主な値を挙げる(ごく小さい重みなど一部は省略した。全量はリンク先の実物で見られる)。肯定と否定で表を分けた。分けるだけで、桁の違いが見えるからだ。

肯定と否定の重みを同じ物差しで並べた図。報告-234、ミュート-58.8、興味なし-43.2、ブロック-31.2に対して、リンク共有20.0、返信5.0、いいね0.5はごく短い。報告の棒はいいねの468倍の長さ

まず肯定側。

行動(識別子)重み
リンクをコピーして共有(ShareViaCopyLinkWeight)20.0
相互フォロー相手からの返信への加算(BidirectionalFollowReplyWeightBoost)+15.0
返信(ReplyWeight)5.0
引用(QuoteWeight)5.0
DMで共有(ShareViaDmWeight)5.0
著者をフォロー(FollowAuthorWeight)4.0
共有(ShareWeight)2.0
リポスト(RetweetWeight)1.0
いいね(FavoriteWeight)0.5
投稿をクリック(ClickWeight)0.4
リンクを開く(OpenLinkWeight)0.2
動画を開く(VideoOpenWeight)0.07
画像を開く(PhotoExpandWeight)0.05
滞在(DwellWeight)0.05
プロフィールをクリック(ProfileClickWeight)0.0

次に否定側。行数は少ないが、値の桁が違う。

行動(識別子)重み
報告(ReportWeight)-234.0
著者をミュート(MuteAuthorWeight)-58.8
興味なし(NotInterestedWeight)-43.2
著者をブロック(BlockAuthorWeight)-31.2
滞在しなかった(NotDwelledWeight)-0.02

この表から読み取れることは3つある。ここからは私の解釈を含む。

  • 会話は、いいねの10倍重い。 返信5.0・引用5.0はいいね0.5の10倍。相互フォロー相手からの返信には+15.0が上乗せされる。「いいねを集める」より「返したくなる」投稿の方が採点上は有利だ。
  • 否定は、桁が違う。 ここで「報告1件=いいね468件ぶんのマイナス」と数えたくなるが、それは正確ではない(重みは件数ではなく確率に掛かる・§5)。正しくは「その読者に報告されそうな気配がわずかにあるだけで、いいねされる見込みがどれだけ高くても採点上は打ち消される」ということ。届く範囲を広げるほど、興味のない読者に当たる確率も上がる。
  • リンク共有が20.0で突出している。 「リンクをコピーして誰かに送る」は、もっとも強い肯定シグナルとして扱われている。読んだ人が「誰かに見せたい」と思う内容かどうか、という問いに置き換えられる。

重みは実際に動く:20.0から15.0への記録

値が変わる実例も公開されている。docs/BIDIRECTIONAL_BOOST_CHANGE.mdによれば、相互フォロー相手の返信への加算は2026年7月24日に20.0から15.0へ下げられた。理由は「実験結果と、Xでのフィードバック。例えばワールドカップの話題をもっと見たいのに、あまり流れてこなかった人がいた。話題の多くがフォローしていないアカウントの投稿だったからだ」というもの(原文を要約)。仲間内の会話を強くしすぎると外の話題が入ってこなくなる、という調整だ。

説明書には「本番の値を定期的に公開コードへ反映する自動処理を回している」とも書かれている。値そのものより、値が動く理由(多様性と会話のバランス)を追う方が長持ちする。

7. 表示可否は採点とは別の関門

第7段階の表示可否は、見せてよいかを判定する部品(visibility-filtering)、ラベル付けのルールを当てる部品(scarecrow)、そのルールを書く仕組み(§1のBotmaker)の3つが担う。ここに入る材料が、検品モデルGroxによる分類(スパム・成人向け・暴力的メディアなど)と、アカウント単位の信用スコアだ。

「シャドウバンされているのでは」という疑問に対しては、今回「Under the Hood」という、自分のアカウントと投稿に付いたラベルの集計を見られるツールが用意された(説明書「Under the Hood Label Transparency Tool」)。TechCrunchによれば、過去1か月分の集計をJSONファイルで書き出し、公開コードと一緒に好きなAIに読ませて「自分のアカウントに何が起きているか」を説明させる使い方が想定されている。

8. Grokはどこで使われているのか

「アルゴリズムはGrokになった」と語られがちだが、公開コードでは役割が3つに分かれている。

  1. 採点係のPhoenix。Grok-1から移植したAIモデルが出発点で、現在は本番実装を公開している(§5)
  2. 検品係のGrox。投稿された瞬間に本文と画像・動画を読み、スパム等の分類と後段モデル用の数値表現を作る。プロンプト本文は非公開
  3. 非公開の違反予測。Grokでルール違反を予測する部分は、今回も公開されていない(TechCrunch)

つまり「Grok対策」という特別な何かは無い。内容が全文読まれ、読者ごとに64種類の行動確率で採点されるのだから、表面のタグや定型テクニックが効きにくくなった、と理解する方が実態に近いと私は考えている。

9. 投稿設計への翻訳:8項目のチェックリスト

ここからは私の運用の話になる。私はExos AIというX運用ツールを個人で運営していて、生成プロンプトの規約をこの構造に合わせている。効果量(何%伸びたか)は未計測なので、「公開された採点基準に設計を合わせている」という話として読んでほしい。

#設計根拠になる仕組み
11ポスト1内容・60〜120字目安詰め込むほど「誰向けか分からない投稿」になり、興味のない読者に当たる機会が増える(否定シグナルは-31.2〜-234)。字数はコードから導ける値ではなく、私の運用値
21ポスト目は単独で意味が通るフックにするスレッドでもタイムラインに出るのは原則1ポスト目(これはXの表示仕様の話で、公開コードから導いた事実ではない)。ここで返信・引用(各5.0)が生まれる
3「誰かに送りたくなる」1行を入れるリンクコピー共有20.0・DM共有5.0が最も重い肯定
4ハッシュタグは使わない内容は本文・画像から直接読まれる(意味ID・§5)ので、タグで内容を伝える必要が無い。「タグが減点される」証拠は無く、不要と判断して外している私の運用値
5ニュース系は当日中に投稿する48時間で候補から外れる(§4)
6相互フォローの相手と会話する返信への+15.0加算(下げられても依然大きい)
7短時間に連投しない同じタイムライン表示に自分の投稿が2件以上入ると、2件目以降は「著者の分散」で減衰する(§5)
8外部リンクは貼ってよい。ただし本文だけで価値が伝わる形にするリンクの存在自体への減点は読んだ範囲に無いが、開く行動の重みは+0.2と小さい。開かれなくても評価される本文が要る

10. やらないこと・落とし穴

逆に、やらない方がよいと考えていることも4つ挙げておく。

エンゲージメントベイト(「RTした人フォローします」型)はやらない。返信・リポストを稼げても、興味のない読者に届いた瞬間「興味なし-43.2」「ミュート-58.8」を積む。桁が違う以上、割に合わないと考えている。

「リンクを貼ると死ぬ」という定説も鵜呑みにしない。上の表のとおり、リンクの存在自体への減点は見当たらない。ただし採点(§5)と表示可否(§7)は別で、スパム判定側にリンクの扱いがあるかは非公開部分に含まれうる。ここは断定しない。

今日の重みを暗記しない。値は動く(§6の20→15)。「否定が桁違いに重い」「実数でなく予測確率に掛かる」「並べると見せるは別」の3点だけ覚えればよい。

「伸びない=シャドウバン」と即断しない。まずUnder the Hoodでラベルの有無を見る。ラベルが無ければ、採点で沈んでいる(届いた読者に嫌がられている)可能性の方を疑う。ラベルがあれば、表示可否で止められている方だ。該当する種類の投稿(成人向け・スパム的な誘導など)をやめて様子を見るのが先だと考えている。ラベルは投稿単位とアカウント単位があるので、どちらに付いているかも見ておきたい。

参考資料(一次資料を優先)

種別資料何が分かるか
一次xai-org/x-algorithm README公開コードの説明書。8段階のパイプライン、採点式、3つの調整、公開/非公開の範囲、更新履歴
一次home-mixer/params/param.rs重みの実値(本記事の表)
一次phoenix/README.md採点モデルの入出力(64行動+8連続値・意味ID・候補どうしが互いを参照しないこと)
一次docs/BIDIRECTIONAL_BOOST_CHANGE.md重みが変わった実例(20.0→15.0・2026-07-24)と理由
一次初回公開コミット aaa167b32026年1月の全面書き直し版の中身(Rust/Python製・79ファイル・約8,800行)
一次(旧版)twitter/the-algorithm(2023)旧構造(候補1,500件・内外半々・Heavy Ranker)との比較
二次TechCrunch 2026-01-201月公開の位置づけ、4週間ごとに公開コードを更新して透明性を示すというマスク氏の約束
二次TechCrunch 2026-08-138月公開の位置づけ、非公開部分(Grokの違反予測)、Under the Hood の使い方

まとめ

持ち帰りは1つ。Xのおすすめは加点計算ではなく、減点が桁違いに大きい採点だということ。いいねを増やす施策より先に「興味のない人に届いたとき嫌がられないか」を確認する方が、公開された採点基準に合っている。

次にやることも1つ。直近10投稿を見返して「誰向けか1行で言えない投稿」を数えてみてほしい。多いほど、興味のない相手に当たって否定シグナルをもらう機会が増える。Exos AIの同梱プロンプトも、この採点基準に合わせて書いている。