Xアルゴリズム最新(2026年9月)|おすすめの仕組みと公開コードの重み一覧

Xアルゴリズム最新(2026年9月)|おすすめの仕組みと公開コードの重み一覧

X(旧Twitter)の「おすすめ(For You)」を決めるコードは、GitHubの xai-org/x-algorithm で公開されています。2026年1月20日の初回公開から、5月15日と8月13日に大きな追加がありました。8月以降は、本番の既定値に合わせたコミットがほぼ毎日入っています。この記事では、2026年9月26日時点のmain(コミット 4c5cfe8)の公開コードを根拠に、おすすめが決まる順序、行動ごとの重み、流布している通説とコードの違いを整理します。

まとめ:Xアルゴリズム最新の要点(2026年9月26日時点)

  • おすすめは、フォロー中の新着(Thunder)とフォロー外の候補(Phoenix検索・SimClusters)を集め、同じTransformerモデル(Phoenix)で順位付けして作られます。
  • 基本スコアは、行動の予測確率や滞在時間などの連続値の予測に、それぞれの重みを掛けた合計です。重みはいいね0.5、リプライ5.0、リンクコピーでの共有20.0、通報-234.0などで、件数ではなく確率に掛かります。
  • 相互フォローの相手が書いた元投稿は、リプライの重みに15.0が上乗せされます(計20.0)。2026年7月の実験を経て入った変更です。
  • フォロー外の投稿は0.75倍、同じ投稿者の2件目以降は減衰(下限0.25倍)します。フォロワー1,000人以下の投稿者による新しい元投稿は、新規投稿者枠として1リクエストにつき1件、16番目相当のスコアまで引き上げられます。
  • 「リプライ75倍」は2023年版の係数75.0との混同です。当時のいいねの係数は0.5なので、投稿者の反応を伴う返信の係数比は150倍でした。Premium加入や外部リンクを直接加点・減点する重みは、2026年9月のスコア式にはありません。
  • 表示できるかどうかはランキングとは別の表示制御(visibility-filtering)が決めます。自分のアカウントに付いたラベルは「Under the Hood」で確認できます(試験提供)。

公開コード xai-org/x-algorithm の更新履歴(2026年1月〜9月)

2026年1月、イーロン・マスク氏は新アルゴリズムのコードを1週間以内に公開すると投稿しました。TechCrunch(2026年1月20日)は、マスク氏が4週間ごとに透明性を提供すると約束したと報じています。実際のリポジトリは1月20日に作成されています。ただしその後は4週間おきではなく、次の大きな追加は5月15日でした。8月13日からは、本番の既定値をコードへ反映するcronのコミットが続いています。

日付 主な変更
2026-01-20 初回公開(home-mixer・thunder・phoenix・candidate-pipeline)
2026-05-15 grox(投稿内容の分類)・広告挿入・推論パイプライン
2026-08-13 重みの公開・表示制御・SimClusters・Phoenix学習コード
2026-08-14 重みの読み方の注記・ブラジル選挙フィルタ
2026-08-25 滞在の重み0.0→0.05、動画視聴品質0.05→0.0
2026-09-17 takedowns追加・新規投稿者枠を24時間→48時間
2026-09-18 Under the Hoodに法令による表示制限を追加
2026-09-24 投稿者補正をvm-rankerへ移設・xai-value-model追加

1月版の説明は「Grok-1から移植したTransformer」でしたが、Phoenixの現行READMEは、以前のリリースはGrok-1由来のサンプル実装で、今回は本番実装そのもの(JAXの学習コードとRustの推論エンジン)だと明記しています。Grok-1そのものの仕様はGrok-1とは?314B MoEモデルの仕様・入手方法とApache 2.0の適用範囲で扱っています。ライセンスはApache 2.0で、2023年に公開された twitter/the-algorithm(AGPL-3.0)とは別のリポジトリです。

「おすすめ」タイムラインが決まる順序(Home Mixerの処理)

おすすめはリクエストごとに組み立てられます。処理の本体は home-mixer で、閲覧者の直近の行動履歴、フォロー一覧、ブロック・ミュート、ミュートしたキーワード、既読の投稿を最初に読み込みます。

候補集め:Thunder・Phoenix検索・SimClusters

フォロー中のアカウントの新着は thunder がメモリ上に保持し、そのまま候補にします。フォロー外は2系統です。phoenix の検索は閲覧者と投稿をそれぞれベクトル化して近い投稿を返し、simclusters は「誰が何に反応したか」でアカウントと投稿をクラスタに分けて候補を探します。SimClustersは8月13日の更新で加わりました。推薦システム一般の分類(協調フィルタリングとコンテンツベース)はレコメンドエンジンとは?仕組み・種類と導入判断を参照してください。

スコアリング前の除外:48時間・既読・ミュートワード

スコアを付ける前に、次のような投稿が落とされます。

  • 投稿から48時間を超えたもの(AgeFilter)
  • 自分の投稿、既に表示した投稿、同じセッションで配信済みの投稿
  • ブロック・ミュート中のアカウントの投稿、ミュートしたキーワードを含む投稿
  • フォローしていないアカウントのリポストとリプライ
  • 新規アカウントの閲覧者に対する、反応数が基準未満のフォロー外投稿

「数週間前の投稿がおすすめに出ない」のは、この48時間の上限によるものです。

Phoenixのスコアリング:行動確率と滞在時間の予測

Phoenixは閲覧者の行動履歴を読み、候補の投稿ごとに「いいねする」「リプライする」「通報する」などの確率を出します。推論時には候補同士が互いを参照しない設計(Candidate Isolation)で、同じ投稿のスコアは一緒に並ぶ他の候補に左右されません。予測確率や滞在時間などの予測値に重みを掛けて基本スコアを計算し、投稿者補正などを経て上位K件を選びます。

visibility-filteringによる表示可否の判定

順位が付いた後、visibility-filtering が投稿ごとに「表示・非表示・警告付き表示」を判定します。判定材料は、ブロックやミュートなど閲覧者自身の操作と、別システムが投稿やアカウントに付けたラベルです。ラベルは、投稿時にスパムや成人向けなどを分類する grox、フォロー関係と反応にPageRankをかけて信頼度を出す user-cred-v2、ブロック・通報の比率でアカウントを判定する agatha などが付けます。フォロー外への推薦だけに適用される除外ルールもあります。スパム疑いの投稿がフォロワーには見えておすすめには出ない、という差はここで生まれます。

行動ごとの重み一覧(param.rs・2026年9月26日時点)

重みは home-mixer/params/param.rs にあります(xAI公式リポジトリのparam.rs(コミット4c5cfe8))。READMEによれば、実験用の値は設定システムから読み込まれ、リポジトリ側の既定値はcronで本番の主要な値に合わせています。

予測する行動 重み いいね比
リンクをコピーして共有 20.0 40倍
リプライ(相互フォローの元投稿) 5.0+15.0 40倍
リプライ 5.0 10倍
引用 5.0 10倍
DMで共有 5.0 10倍
投稿者をフォロー 4.0 8倍
共有 2.0 4倍
リポスト 1.0 2倍
いいね 0.5 1倍
投稿をクリック 0.4 0.8倍
リンクを開く 0.2 0.4倍
動画を開く/画像を拡大 0.07/0.05 0.1倍前後
滞在(dwell) 0.05 0.1倍
滞在時間の連続値予測 0.004 確率と単位が異なる
滞在なし -0.02 -0.04倍
プロフィールをクリック 0.0 加点なし
興味がない -43.2 -86倍
ブロック -31.2 -62倍
ミュート -58.8 -118倍
通報 -234.0 -468倍

読み方で一番誤解が多いのは、重みが件数ではなく確率に掛かる点です。READMEとコードのコメントは、「通報1件がいいね468件を打ち消す」という読み方を名指しで誤りとしています。通報の基準確率はいいねの1,000分の1未満なので、重みを大きくしないと順位に効かない、という説明です。集団で通報しても、影響は主に通報者と似た閲覧者への推薦に限られます。ホームのタイムライン上で表示された投稿への行動でなければ数えない、ともコメントで明記されています。

リプライ・引用・リンクコピー・DM共有の重みは、いいねより大きく設定されています。ただし、各行動の予測確率が異なるため、重みの大小だけではスコアへの寄与や投稿の表示効果を比較できません。プロフィールのクリックと動画の視聴品質(VQV)は、9月時点で0.0です。

投稿者側の補正:同一投稿者の減衰・フォロー外0.75倍・新規投稿者枠

重み付きの合計スコアには、2026年9月24日に vm-ranker へ移された補正がかかります。値は vm-ranker/params.rs の既定値です。

補正 既定値
同一投稿者の2件目以降 減衰0.5・下限0.25
フォロー外の投稿 0.75倍
トピック経由のフォロー外投稿 0.5倍
類似投稿の間引き(DPP) θ=0.65・上位150件

同じ投稿者の投稿は、2件目が0.625倍、3件目が約0.44倍と下がり、下限の0.25倍へ近づきます。フォロー中の相手でも、そのリプライとリポストにはフォロー外と同じ係数がかかります。

新規投稿者枠(Author Cold Start)の条件は home-mixer/scorers/author_cold_start.rs で読めます。フォロワー1,000人以下の投稿者による、ホーム上の表示回数1,000回未満・投稿から48時間以内の元投稿が基本条件です。リプライとリポストは対象外で、実験群などの条件も適用されます。補正前に非ゼロスコアの候補の上位約85%に入ることも対象条件です。対象から1件を選び、既定では16番目相当のスコアまで引き上げますが、その後の並べ替えや表示制御で最終位置は変わります。9月17日に、対象の投稿経過時間が86,400秒(24時間)から172,800秒(48時間)へ延びました。フォロワーが少ないうちは、この枠が最初の露出の入口になります。

通説と公開コードの突き合わせ:2023年版の数字との混同

「Xアルゴリズム」の解説には、2023年3月に公開された旧Twitter時代のコードの数値が今も混ざっています。2023年4月5日時点の重みは twitter/the-algorithm-mlのREADME(projects/home/recap)に残っており、リプライ13.5、投稿者が反応したリプライ75.0、通報-369.0でした。2026年版はリポジトリも重みの体系も別物です。

よく見る通説 2026年9月のコード
リプライはいいねの75倍 旧75.0は作者反応付き返信の係数(いいね比150倍)。現行返信は10倍(相互40倍)
通報1件でいいね468件が消える READMEが誤りと明記(確率に掛かる)
X Premiumはスコアが優遇される スコア式に加点項目なし
外部リンクは減点される 減点項目なし(リンクを開く=+0.2)
ハッシュタグの数で減点 個数の減点なし。乱用はスパム分類
滞在時間は加点されない 8月25日から滞在0.05が加点

外部リンクについては、コードから言えるのは「リンクを理由に減点する重みが無い」ところまでです。リンク付き投稿でリプライや滞在の予測確率が下がるかどうかは、学習済みモデルの挙動なのでコードからは判定できません。「リンクを貼ると必ず伸びない」も「影響はゼロ」も、公開コードを根拠には言えません。

「信頼スコア」とPremium:user-cred-v2の仕組み

Premium(認証)の扱いを確認できる箇所の1つが user-cred-v2 です。フォロー関係と反応にPageRankをかけてアカウントごとのスコアを出すバッチで、ランダムジャンプ(テレポート)先の重みの一部を、認証済みアカウント(青・灰・金の認証、組織、組織所属)に均等に配っています。初回計算の初期質量は、有効なアカウント全体への均等配分です。このスコアは表示制御側が読むラベルの材料になります。コードから読める範囲では、Premiumはおすすめの点数に直接加点されるのではなく、信頼度の計算に重みとして入ります。

重みから逆算した投稿設計と、避けるべき運用

現行の重みでは、同じリプライでも相互フォローの相手が書いた元投稿なら4倍(5.0に対して20.0)になります。質問で終える、判断が分かれる論点を出すなど、身近な相手が返信したくなる形は重みの構造に合っています。ただし、これが最も表示を伸ばす施策かどうかは予測確率の大きさ次第で、公開コードだけでは判断できません。

リンクのコピー(20.0)とDM共有(5.0)にも大きな正の重みがあります。手順・一覧・数字のまとめのように、保存して人に送りたくなる投稿がこれに当たります。逆に、いいねの重みが0.5でも、予測確率が高ければ重みの大きい行動より寄与が大きくなる場合があります。

避けるべきなのは、反応を取りに行く定型の呼びかけです。grox の分類には SpamEngagementBaiting(エンゲージメントの釣り)、SpamEngagementTrading(反応の交換)、SpamHashTagAbuse(ハッシュタグの乱用)があります。「いいねした人全員にフォロー返し」「リプで〇〇配布」のような投稿は、スパムとして表示制御の対象になりうる運用です。相互フォローの重みを狙った相互フォロー募集も同じ理由で勧めません。行動の時系列から不自然な操作を検出する bdsm というモデルも公開されています。

フォロワー数やインプレッションの指標の違いはリーチとは?ビジネス・SNS広告での意味とインプレッションとの違い・リーチ率の計算、広告で表示を買う場合はXの「ブースト」とは?「ブースト済み」の意味・やり方・料金と通常広告との違いが参考になります。

自分のアカウントの表示制限を確かめる「Under the Hood」

8月13日の更新と同時に、Xは「Under the Hood」という透明性ツールを試験提供しています(x.com/i/jf/under_the_hood)。自分のアカウントと投稿に付いた、表示に影響するラベルの集計を確認できます。9月18日からは、法令にもとづく要請で特定の国から投稿が非表示になった場合、その事実と国名も表示されます。READMEは提供範囲を順次広げるとしているため、全アカウントで使えるとは限りません。

ラベルの一部は、悪用を防ぐ目的でコードが非公開です。READMEは、groxで使うLLMのプロンプトと、botmakerのルールの一部を非公開としています。コードとUnder the Hoodの結果を突き合わせれば、どのラベルがどの判定に効いているかを追えます。

param.rsの差分による重み変更の確認手順

重みは実験で頻繁に動きます。8月13日から9月26日までの間でも、滞在・動画・動画視聴品質の3つの重みが変わりました。解説記事の日付より、リポジトリの差分を見るほうが確実です。次の手順で、任意の2時点の重みの違いを出せます(Python 3.9以降とgitがあれば動きます)。

git clone --filter=blob:none https://github.com/xai-org/x-algorithm.git
cd x-algorithm
git log --format='%h %ad' --date=short -- home-mixer/params/param.rs | head -3

次のスクリプトを weight_diff.py として保存し、比較したい2つのコミットを渡します。

import re
import subprocess
import sys

PAT = re.compile(r'param!\(\s*(\w+Weight\w*),\s*f64,\s*"[a-z_]+",\s*(-?[0-9.]+)\s*\)')


def weights(rev):
    src = subprocess.run(
        ["git", "show", f"{rev}:home-mixer/params/param.rs"],
        capture_output=True, text=True, check=True,
    ).stdout
    return dict(PAT.findall(src))


old, new = weights(sys.argv[1]), weights(sys.argv[2])
for name in sorted(old.keys() | new.keys()):
    if old.get(name) != new.get(name):
        print(f"{name}: {old.get(name)} -> {new.get(name)}")

8月13日のコミット 47c1bcd と、2026年9月26日のmain(4c5cfe8)を比べると、次の出力になります。None はparam.rsから消えた項目で、9月24日にvm-rankerへ移ったフォロー外係数です。

$ python3 weight_diff.py 47c1bcd 4c5cfe8
DwellWeight: 0.0 -> 0.05
OonWeightFactor: 0.75 -> None
TopicOonWeightFactor: 0.5 -> None
VideoOpenWeight: 0.05 -> 0.07
VqvWeight: 0.05 -> 0.0

変更の経緯が文書化された例として、docs/BIDIRECTIONAL_BOOST_CHANGE.md があります。相互フォローのリプライ加算は、2026年7月10日に5・10・15・20の値でA/Bテストを始めました。7月13日に20で広く適用し、7月24日に15へ下げています。W杯の期間中にフォロー外の話題が見えにくいという声を受けた調整だと、文書に書かれています。

よくある質問

Xのアルゴリズムは最近いつ変わりましたか?

公開コードは2026年8月13日以降ほぼ毎日更新されています。重みの変更は8月25日(滞在0.05の加点など)、新規投稿者枠の48時間への延長は9月17日です。最新の状態はGitHubの xai-org/x-algorithm のコミット履歴で確認できます。

Twitterで急に伸びなくなったのはアルゴリズムのせいですか?

候補になる投稿は48時間以内のものに限られ、フォロー外の投稿は0.75倍、同じ投稿者の2件目以降は減衰します。フォロワーが1,000人を超えると新規投稿者枠の対象からも外れます。これらの補正が重なると、以前と同じ投稿をしても表示が減ることがあります。表示制限のラベルが付いていないかはUnder the Hoodで確認できます。

Xは毎日投稿したほうがおすすめに載りやすいですか?

スコア式は行動の予測確率に重みを掛けた合計で、投稿頻度そのものを加点する項目はありません。一方で、48時間を過ぎた投稿は候補から外れるため、投稿が途切れると候補に入る投稿自体が無くなります。1つのフィードに同じ投稿者の投稿が並ぶと減衰するため、短時間に連投しても表示は比例して増えません。

おすすめ欄に出る投稿を自分で調整する方法はありますか?

「興味がない」(-43.2)、ミュート(-58.8)、ブロック(-31.2)の操作は、自分への予測確率を通じて以後の推薦に反映されます。ミュートしたキーワードとブロック・ミュート中のアカウントの投稿は、スコアリング前の段階で除外されます。フォローしているトピックも候補の絞り込みに使われます。

Xのエンゲージメントには何が含まれますか?

アルゴリズム上は、いいね・リプライ・リポスト・引用・共有(DM・リンクコピー含む)がエンゲージメントに分類されています。ほかにクリック(投稿・プロフィール・リンク・画像・動画)、注意(滞在・視聴)、フォロー、否定的な反応(興味がない・ミュート・ブロック・通報)を予測しています。重みが最も大きい正の行動は、リンクのコピーによる共有と相互フォローの元投稿へのリプライ(どちらも20.0)です。

関連記事

お気に入りに入れた記事の一覧

資料請求

RELATED POSTS 関連記事

目次