x algorithmopen sourcealgorithmic transparencymethodprovenance18 серпня 2026 р.

X опублікував свій алгоритм. Ми його прочитали, припустилися однієї помилки, і джерело нас викрило.

Спеціальний випуск, поза звичайним циклом. Це не кластер даних — це фрагмент вихідного коду, який половина інтернету цитує напам'ять. Ми прочитали всі 123 компоненти, пов'язали кожне число з його рядком і зробили одне твердження, яке наше власне джерело спростувало через три дні.

X опублікував свій алгоритм. Ми прочитали його, припустилися однієї помилки, і джерело нас викрило.

Спеціальний випуск, поза звичайним циклом. Цього разу не кластер даних — фрагмент вихідного коду, який цитує половина інтернету напам'ять. Ми прочитали всі 123 компоненти, опублікували сторінку, яка пов'язує кожне число з його рядком, і зробили одне твердження, яке наше власне джерело спростувало через три дні. Ось що говорить код, і чого нас навчила ця помилка про метод, який ми продаємо.

13 серпня 2026 року X зробив загальнодоступним вихідний код ранжування для своєї стрічки "Для вас" під ліцензією Apache-2.0. Протягом сімдесяти двох годин цифри були всюди: репост коштує двадцять лайків, клік на профіль — дванадцять, один репорт скасовує чотириста шістдесят вісім лайків.

Майже жодна з цих цифр не описує код, який працює сьогодні.

Це не винаходи. Це залишки — правдиві для конвеєра Scala, виведеного з експлуатації роки тому, цитовані так, ніби вони описують конвеєр Rust, який його замінив. Число без дати та без рядка коду — це не факт. Це чутка з десятковою крапкою.

Тому ми зробили непривабливу річ: ми прочитали репозиторій рядок за рядком і створили сторінку, якої бракувало.

d-nvest.com/x-algorithm — безкоштовно, без реєстрації, дев'ять мов.

1. Що насправді говорить код

190 параметрів, які X може змінювати без випуску коду. 24 константи, скомпільовані в бінарний файл. 123 компоненти в конвеєрі ранжування. Кожне з цих чисел на нашій сторінці посилається на точний рядок, з якого воно було прочитано, закріплене до одного коміту — і, починаючи з цього тижня, розгортає фактичні рядки Rust на місці, щоб вам ніколи не доводилося вірити нам на слово щодо цифри.

Чотири твердження, які ми перевірили, і що говорить джерело натомість:

"Репост коштує 20 лайків." Він коштує два. `RetweetWeight` дорівнює 1.0 проти `FavoriteWeight` 0.5. Жодна опублікована версія цього алгоритму ніколи не використовувала 20 для репоста — навіть версія 2023 року, яку цитують люди.

"Клік на профіль коштує 12 лайків." Сьогодні він коштує нічого: вага дорівнює нулю. 12 було реальним для композитного сигналу, який більше не існує в дереві.

"Один репорт скасовує 468 лайків." Арифметика правильна, а висновок — ні. Ці ваги множаться на *передбачувану ймовірність*, а не на кількість дій. X стверджує, що репорт трапляється в тисячі разів рідше, ніж лайк — два терміни ніколи не були однаковими за розміром. Ділення однієї ваги на іншу не дає обмінного курсу.

"Синя галочка купує охоплення." Ніщо в опублікованому коді не множить оцінку на статус підписки, і прискорення 2023 року зникло з дерева. Чесна межа, яку ми друкуємо на сторінці: остаточне ранжування проходить через навчену модель, ваги якої не опубліковані. Кореляцію, яку модель навчилася самостійно, не можна виключити, прочитавши код. Ми говоримо це, тому що це правда.

І висновок, який майже ніхто не згадує: найвагоміший позитивний сигнал у опублікованому коді — це не репост, відповідь чи лайк. Це хтось, хто копіює ваше посилання, щоб поділитися ним деінде. 20, яке цитують усі, є реальним. Воно просто прив'язане до зовсім іншої дії.

2. Твердження, яке ми випустили, і яке наше власне джерело спростувало

Ось частина, яку б вирізала маркетингова команда.

Наша сторінка вийшла з заголовком, що стверджує, як головний висновок, що жодна людина чи організація не згадується ніде в цьому репозиторії — жодного ідентифікатора облікового запису, жодного хендла, жодного жорстко закодованого списку. Ми поставили повноекранний нуль на каруселі.

Це було неправдою.

У точному коміті, який ми закріпили, `home-mixer/filters/brazil_2026_election_filter.rs` містить 665 ідентифікаторів облікових записів, написаних у вихідному коді, кожен з яких анотований своїм хендлом. Сам файл говорить: *"імена користувачів включені для прозорості."* Фільтр видаляє пости цих облікових записів з "Для вас" — включаючи репости, цитати та попередні теми — якщо глядач вже не підписаний на них. X навмисно випускає його відповідно до бразильського виборчого законодавства та документує це у власному README.

Чому ми помилилися — це єдина цікава частина. Речення не було витягнуте з чогось. Воно було написано вручну. Воно було правдивим для підмножини, яку ми прочитали — правил фільтрації видимості — а потім тихо узагальнено до "ніде в цьому репозиторії". Узагальнення ніколи не перевіряє себе.

Гірше: тест у нашому власному наборі закріпив помилку на місці. Він перевіряв, що фраза *містить певні слова*. Він гарантував, що речення *є там*, а не те, що воно *правдиве*. Тест може заблокувати брехню.

Ми виправили це того ж дня. Це твердження тепер *обчислюється* з обходу репозиторію, а не стверджується про нього, сторінка показує облікові записи, і число рухається, якщо рухається джерело.

Джерело спростувало нас раніше за всіх. Саме для цього і існує джерело — і це весь аргумент на користь роботи таким чином.

3. Країнове обмеження, яке не містить жодної країни

Коли ми почали уважно дивитися, географія виявилася протилежною тому, що всі припускають.

У всьому репозиторії рівно одна країна має власний список. Два інші списки країн жорстко закодовані — 16 країн, де чутливий контент приховується від будь-кого, хто не вказав вік, і 18 країн, які модель розглядає індивідуально — і кожна інша країна на землі підпадає під загальну категорію: не заблокована, *невизначена*.

Дані про видалення кожного поста — те, що люди мають на увазі, коли говорять "приховано в країні X" — *взагалі не містяться в репозиторії*. Ці правила порівнюють країну глядача з кодами, які несе кожен пост під час виконання, і ці дані не опубліковані. Карта, що зафарбовує "цензуровані" країни з цього коду, вигадувала б їх. Наша — ні.

І єдиний специфічний для країни фільтр, який *написаний* у коді, має властивість, яку ми не очікували: *жодна умова країни не з'являється в ньому, ані навколо рядка, який його вмикає*. Він реєструється безумовно в ланцюжку фільтрів конвеєра.

Ми публікуємо це з прикріпленим обмеженням, тому що обмеження — це чесна частина: який конвеєр обслуговує який ринок, може вирішуватися на рівні, який X не публікує. Що ми можемо сказати, так це те, що містить опублікований код — і він не містить жодного тесту на країну.

4. Що видаляється — це охоплення, а не мова

Механізм придушення існує, його можна прочитати, і він вужчий, ніж припускає слово "тіньовий бан".

32 правила видалення випускаються відкрито, діючи на 27 типів міток. Два з них приховують пост *тільки від непідписників* — ваші підписники все одно вас бачать. Це розходження є в коді, і воно зникає щоразу, коли хтось хапається за фразу, яка приносить кліки.

Всюди, крім цього одного фільтра, правила діють на мітку, прикріплену під час виконання, і саме маркування не опубліковане. Код показує, що *можна* зробити. Ніколи, кому це було зроблено.

5. Чому компанія з даних витратила тиждень на це

Тому що це робота, якою ми займаємося за життя, зроблена публічно, на джерелі, про яке кожен вже має свою думку.

Наша робота — брати щось непрозоре — реєстр, подання, набір даних, репозиторій — і робити його перевіреним рядок за рядком. Частина, яка вимагає дисципліни, — це не пошук відповідей. Це — говорити вголос, де відповіді закінчуються, і виправляти себе публічно, коли джерело говорить, що ви були неправі.

Сторінка також стежить за собою. Завдання порівнює наш закріплений коміт з комітом X щоранку; коли вони розходяться, сторінка *повідомляє, що вона застаріла*, замість того, щоб мовчки надавати застарілі цифри, і регенерація потрапляє в гілку, яка чекає на людину. Сторінка, яка викриває застарілі цифри інших, не може сама стати застарілою.

→ Читайте: d-nvest.com/x-algorithm

Get the next analysis

One deep-dive per edition on where valuable data is hiding — the evidence, the sources, and who would pay for it. No noise.

One email per edition. Unsubscribe any time. We never share your address.

From the marketplace

Explore live data opportunities

Browse datasets by sector & use-case
Found this useful? Share it

d-nvest turns the data assets behind these deals into scored, actionable opportunities.

Explore the pipeline →
X опублікував свій алгоритм. Ми його прочитали, припустилися однієї помилки, і джерело нас викрило. | d-nvest