Twitter (X) был бурным последние два года. Эти изменения могут быть больше связаны с «мягкой силой» Илона Маска, а не с конкретными политическими решениями. Однако на фоне этих противоречивых действий новая функция в Твиттере быстро стала важной и, похоже, любимой людьми всего политического спектра: «Заметки сообщества».

«Заметки сообщества» — это инструмент проверки фактов, который иногда добавляет к твитам контекстные примечания, как, например, твит Илона Маска выше, в качестве инструмента проверки фактов и борьбы с дезинформацией. Первоначально он назывался Birdwatch и впервые был запущен в качестве пилотного проекта в январе 2021 года. С тех пор он постепенно расширялся, причем наиболее быстрое расширение совпало с поглощением Twitter Илоном Маском в прошлом году. Заметки сообщества регулярно появляются среди твитов, которые в наши дни привлекают широкое внимание в Твиттере, в том числе затрагивающих спорные политические темы. По моему мнению и к моему выводу, полученному в результате общения со многими людьми всего политического спектра, эти Заметки информативны и ценны в том виде, в каком они кажутся.
Однако больше всего меня интересуют «Заметки сообщества», которые, хотя и не являются «криптопроектом», но, вероятно, являются наиболее близким примером «криптоценностей», которые мы видели в основном мире. Заметки сообщества не пишутся и не курируются какими-то централизованно выбранными экспертами, каждый может писать и голосовать, а какие заметки появляются или не появляются, полностью определяется алгоритмами с открытым исходным кодом; На веб-сайте Twitter есть подробное и подробное руководство, описывающее, как работает алгоритм. Вы можете загрузить данные, содержащие опубликованные заметки и опросы, запустить алгоритм локально и убедиться, что выходные данные соответствуют тому, что видно на веб-сайте Twitter. Хотя он и не идеален, он на удивление близок к идеалу заслуживающего доверия нейтралитета в весьма спорных ситуациях и в то же время очень полезен.
Как работает алгоритм «Заметки сообщества»?
Любой, у кого есть учетная запись Twitter, отвечающая определенным критериям (в основном: активность более 6 месяцев, отсутствие нарушений политики, подтвержденный номер мобильного телефона), может зарегистрироваться для участия в «Заметках сообщества». В настоящее время участники принимаются медленно и случайным образом, но в конечном итоге планируется разрешить присоединиться любому, кто соответствует требованиям. После принятия вы можете сначала принять участие в оценке существующих Заметок, а когда ваши оценки станут достаточно хорошими (измеряемыми путем просмотра того, какие рейтинги соответствуют окончательным результатам для этой Заметки), вы также сможете написать свои собственные Заметки.

Когда вы пишете заметку, она получает оценку на основе отзывов других участников заметок сообщества. Эти обзоры можно рассматривать как голоса по трем уровням: «полезно», «отчасти полезно» и «бесполезно», но отзывы могут также включать в себя другие ярлыки, которые играют роль в алгоритме. На основании этих отзывов Notes присваивается оценка. Если оценка заметки превышает 0,40, заметка будет отображаться, в противном случае заметка не будет отображаться;
Уникальность алгоритма заключается в том, как подсчитываются баллы. В отличие от простых алгоритмов, которые предназначены просто для расчета некоторой суммы или среднего значения оценок пользователей и использования их в качестве конечного результата, алгоритм рейтинга «Заметок сообщества» явно пытается расставить приоритеты среди тех заметок, которые получили положительные отзывы от людей с разными точками зрения. То есть, если люди, которые обычно не согласны с оценками, в конечном итоге соглашаются с определенной заметкой, эта заметка получит высокую оценку.
Давайте подробнее посмотрим, как это работает. У нас есть набор пользователей и набор заметок; мы можем создать матрицу M, где ячейка Mij представляет, как i-й пользователь оценил j-ые заметки.
Для любых заметок большинство пользователей не оценили эти заметки, поэтому большинство записей в матрице будут равны нулю, но это нормально. Цель алгоритма — создать четырехколоночную модель пользователей и Notes, назначая каждому пользователю две статистики, которые мы можем назвать «дружелюбие» и «полярность», и две статистики для каждого Notes, которые мы называем «полезностью». " и "полярность". Модель пытается предсказать матрицу как функцию этих значений, используя следующую формулу:

Обратите внимание, что здесь я представляю терминологию, использованную в статье Birdwatch, а также мою собственную терминологию, чтобы обеспечить более интуитивное понимание значения переменных без привлечения математических понятий:
μ — это параметр «общественного настроения», который измеряет, насколько высокие оценки обычно ставят пользователи.
iu — «дружелюбие» пользователя, т. е. вероятность того, что пользователь склонен давать высокую оценку.
Речь идет о «полезности» Нот, то есть о том, насколько вероятно, что Ноты будут иметь высокий рейтинг. Это переменная, которая нас волнует.
fu или fn — это «полярность» пользователя или Ноты, т.е. их положение на доминирующей оси политических крайностей. На практике отрицательная полярность примерно означает «наклон влево», а положительная полярность означает «наклон вправо», но обратите внимание, что крайние оси получаются путем анализа пользовательских данных и данных Notes, а понятия левого и правого не запрограммированы жестко.
Алгоритм использует довольно простую модель машинного обучения (стандартный градиентный спуск) для поиска лучших значений переменных для прогнозирования значений матрицы. Полезность, присвоенная конкретной Ноте, является окончательной оценкой для этой Ноты. Примечание будет отображаться, если его полезность составляет не менее +0,4.
Основная хитрость здесь заключается в том, что «полярность» включает в себя характеристики заметки, которые заставляют ее нравиться одним пользователям и не нравится другим, в то время как «полезность» измеряет только характеристики заметки. Эти особенности приводят к тому, что она нравится всем. пользователи. Таким образом, при выборе полезности выявляются Ноты, которые поддерживаются разными племенами, и исключаются Ноты, которые одобряются одним племенем, но не нравятся другим.
Вышеописанное описывает только основную часть алгоритма. На самом деле, поверх него добавлено множество дополнительных механик. К счастью, они описаны в общедоступной документации. Эти механизмы включают в себя следующее:
Алгоритм запускается несколько раз, каждый раз добавляя к голосованию несколько случайно сгенерированных экстремальных «фальшивых голосов». Это означает, что истинный результат работы алгоритма для каждой заметки представляет собой диапазон значений, а окончательный результат зависит от «более низкой достоверности», взятой из этого диапазона и сопоставленной с порогом 0,32.
Если многие пользователи (особенно с полярностью Notes) оценивают примечание как «Бесполезное», а также присваивают ему тот же «тег» (например, «спорный или предвзятый язык», «необычный источник») как «Примечания поддержки») причина рейтинга, то порог полезности, необходимый для публикации Примечаний, увеличится с 0,4 до 0,5 (это может показаться небольшим, но на практике очень важно).
Если Нота принята, ее полезность должна быть снижена до 0,01 пункта ниже порога, необходимого для принятия Ноты.
Алгоритм выполняет больше прогонов с использованием нескольких моделей, иногда повышая показатель полезности Notes от 0,3 до 0,4.
В целом вы получаете довольно сложный код Python, содержащий 6282 строки, разбросанные по 22 файлам. Но все это открыто, и вы можете скачать Notes и данные оценки и запустить их самостоятельно, чтобы увидеть, соответствуют ли выходные данные тому, что на самом деле происходит в Твиттере.
Так как же это выглядит на практике?
Вероятно, самая большая разница между этим алгоритмом и простым получением среднего балла на основе голосов людей — это концепция того, что я называю «полярными» значениями. В документации алгоритма они называются fu и fn, используя f в качестве фактора, поскольку эти два термина дополняют друг друга, и более общая терминология отчасти связана с возможным желанием сделать fu и fn многомерными.
Полярность назначается пользователям и заметкам. Связь между идентификатором пользователя и базовой учетной записью Twitter намеренно хранится в секрете, но Notes является общедоступным. Фактически, по крайней мере для английского набора данных, полярность, генерируемая алгоритмом, очень тесно коррелирует с левой и правой.
Вот несколько примеров Notes с полярностью около -0,8:

Обратите внимание, что я здесь не придираюсь; на самом деле это первые три строки в электронной таблице Оценка_нотес.tsv, которую я сгенерировал при локальном запуске алгоритма, и их оценки полярности (называемые в электронной таблице coreNoteFactor1) меньше -0,8.
Теперь вот несколько нот с полярностью около +0,8. Оказывается, многие из них либо люди, говорящие о бразильской политике на португальском языке, либо фанаты Теслы, гневно опровергающие критику в адрес Теслы, поэтому позвольте мне немного отобрать и найти несколько заметок, которые не попадают ни в одну из категорий:

Опять же, напоминаем, что «разделение на левых и правых» никоим образом не запрограммировано в алгоритме, оно обнаруживается вычислительным путем; Это говорит о том, что если вы примените этот алгоритм к другим культурным контекстам, он сможет автоматически обнаружить их основные политические разногласия и навести мосты между этими разногласиями.
Между тем, Notes для максимальной полезности выглядит так. На этот раз, поскольку заметки действительно появляются в Твиттере, я могу просто сделать снимок экрана:

Есть еще один:

Что касается вторых «Заметок», то они более непосредственно касаются весьма партийных политических тем, но это ясные, качественные и информативные «Записки», поэтому они получают высокий рейтинг. В целом алгоритм работает, и кажется возможным проверить выходные данные алгоритма, запустив код.
Что я думаю об этом алгоритме?
Что меня больше всего поразило при анализе этого алгоритма, так это его сложность. Существует «академическая бумажная версия», которая использует градиентный спуск для поиска наилучшего соответствия пятичленным векторным и матричным уравнениям, а также есть реальная версия, сложная серия выполнений алгоритма со множеством различных исполнений и большим количеством произвола. путь.
Даже академическая бумажная версия скрывает основную сложность. Уравнение, которое он оптимизирует, имеет отрицательный четвертый порядок (поскольку в формуле прогнозирования есть квадратичный член fu*fn, а функция стоимости измеряет квадрат ошибки). Хотя оптимизация квадратного уравнения с любым количеством переменных почти всегда будет иметь уникальное решение, которое вы можете найти с помощью довольно простой линейной алгебры, оптимизация уравнения четвертой степени с многими переменными обычно имеет много решений, отсюда и несколько раундов алгоритмов градиентного спуска. ответы можно получить. Небольшие входные изменения могут привести к изменению провала от одного локального минимума к другому, что значительно изменит выходные результаты.
Разница между этим алгоритмом и алгоритмами, которые я помогал разрабатывать, как и вторичное финансирование, для меня подобна разнице между алгоритмом экономиста и алгоритмом инженера. Алгоритмы экономистов в лучшем случае ориентированы на простоту, относительно легко анализируются и имеют четкие математические свойства, указывающие на то, что они являются лучшими (или наименее плохими) для решаемой задачи и в идеале также могут быть доказаны. Какой ущерб может нанести кто-то, пытаясь использовать это. Алгоритм инженера, с другой стороны, выводится посредством итерационного процесса проб и ошибок, чтобы увидеть, что работает, а что не работает в операционной среде инженера. Алгоритмы инженеров прагматичны и выполняют свою работу. Алгоритмы экономистов не теряют контроль полностью, когда сталкиваются с непредвиденными ситуациями.
Или, как выразился уважаемый интернет-философ Рун (он же tszzl) в соседней теме:

Конечно, я бы сказал, что «теоретический эстетический» аспект криптовалют необходим для того, чтобы иметь возможность точно различать те протоколы, которые действительно не заслуживают доверия, и те, которые хорошо выглядят и хорошо работают на первый взгляд, но на самом деле требуют доверия к какому-то централизованному субъекту. Или, что еще хуже, это может оказаться полным мошенничеством.
Глубокое обучение эффективно при нормальных обстоятельствах, но у него есть неизбежные недостатки в различных состязательных атаках машинного обучения. Если все сделано правильно, технические ловушки и лестницы абстракции высокого уровня могут противостоять этим атакам. Итак, у меня вопрос: можем ли мы превратить Заметки сообщества в нечто большее, похожее на экономический алгоритм?
Чтобы увидеть, что это означает на практике, давайте рассмотрим алгоритм, который я разработал несколько лет назад для аналогичной цели: попарно ограниченное квадратичное финансирование.

Целью попарно ограниченного квадратичного финансирования является заполнение лазейки в «обычном» квадратичном финансировании, при котором, даже если два участника вступают в сговор друг с другом, они могут внести очень большие суммы в фиктивный проект, вернуть им средства и получить крупные суммы. субсидии, которые истощают весь пул капитала. При попарно ограниченном квадратичном финансировании мы выделяем ограниченный бюджет M каждой паре участников. Алгоритм перебирает все возможные пары актеров, и если алгоритм решает добавить субсидию к определенному проекту P, поскольку его поддерживают и актер A, и актер B, то эта субсидия вычитается из бюджета, выделенного паре (A, B ) . Следовательно, даже если k участников вступят в сговор, сумма, которую они смогут украсть из механизма, составит не более k (k-1) M.
Эта форма алгоритма не очень хорошо работает в контексте заметок сообщества, поскольку каждый пользователь отдает лишь небольшое количество голосов: в среднем количество общих голосов между любыми двумя пользователями равно нулю, поэтому просто рассматривая каждую пару по отдельности. Пользователь, алгоритм не может понять полярность пользователя. Цель модели машинного обучения — попытаться «заполнить» матрицу очень разреженными исходными данными, которые невозможно проанализировать напрямую таким образом. Но проблема с этим подходом заключается в том, что требуются дополнительные усилия, чтобы избежать крайне нестабильных результатов в условиях небольшого числа плохих голосов.
Могут ли «Заметки сообщества» действительно противостоять левым и правым?
Мы можем проанализировать, действительно ли алгоритм Community Notes способен противостоять крайностям, то есть работает ли он лучше, чем наивный алгоритм голосования. Этот алгоритм голосования уже в определенной степени сопротивляется крайностям: пост с 200 лайками и 100 дизлайками будет работать хуже, чем пост всего с 200 лайками. Но разве «Заметки сообщества» работают лучше?
С точки зрения абстрактного алгоритма трудно сказать. Почему поляризующий пост с высоким средним рейтингом не будет обладать сильной полярностью и высокой полезностью? Идея состоит в том, что если эти голоса противоречат друг другу, полярность должна «поглотить» особенности, благодаря которым пост получил много голосов, но действительно ли это происходит?
Чтобы проверить это, я запустил собственную упрощенную реализацию на 100 раундов. Средние результаты следующие:

В этом тесте «хорошие» Notes получили оценку +2 среди пользователей той же политической принадлежности и оценку +0 среди пользователей противоположной политической принадлежности, а «хорошие, но более экстремальные» Notes получили оценку +0 среди пользователей той же политической принадлежности. Он получил рейтинг +4 среди пользователей противоположной фракции и рейтинг -2 среди пользователей противоположной фракции. Хотя средние баллы одинаковы, полярность разная. И на самом деле, средняя полезность «хороших» Заметок, кажется, выше, чем у «хороших, но более экстремальных» Заметок.
Наличие алгоритма, более близкого к «алгоритму экономиста», даст более четкое представление о том, как алгоритм наказывает крайности.
Насколько все это полезно в ситуациях с высокими ставками?
Кое-что из этого мы можем узнать, рассмотрев конкретную ситуацию. Около месяца назад Ян Бреммер пожаловался, что к твиту о китайском правительственном чиновнике была добавлена крайне критическая заметка сообщества, но с тех пор эти заметки были удалены.

Это трудная задача. Одно дело разрабатывать механизмы в среде сообщества Ethereum, где самая большая жалоба может заключаться в том, что 20 000 долларов достанутся крайне влиятельному лицу в Твиттере. Совершенно иная ситуация, когда речь идет о политических и геополитических проблемах, затрагивающих миллионы людей, где каждый часто обоснованно предполагает самые худшие мотивы. Однако взаимодействие с этими средами с высокими ставками имеет важное значение, если конструкторы-механики хотят оказать значительное влияние на мир.
В случае с Twitter есть очевидная причина подозревать централизованное манипулирование как причину удаления Notes: у Илона Маска много деловых интересов в Китае, поэтому вполне возможно, что Илон Маск заставил команду Community Notes вмешаться в выходные данные алгоритма. и удалите его. Это конкретные примечания.
К счастью, алгоритм имеет открытый исходный код и его можно проверить, так что мы можем покопаться в нем! Давай сделаем это. URL-адрес исходного твита: https://twitter.com/MFA_China/status/1676157337109946369. Число 1676157337109946369 в конце — это идентификатор твита. Мы можем найти этот идентификатор в загружаемых данных и определить конкретную строку в электронной таблице, содержащую приведенные выше примечания:

Здесь мы получаем ID самой Notes, 1676391378815709184. Затем мы ищем этот идентификатор в файлах Scored_notes.tsv и note_status_history.tsv, созданных в результате запуска алгоритма. Мы получили следующие результаты:

Второй столбец в первом выводе — это текущий рейтинг этой Ноты. Второй вывод показывает историю этой заметки: ее текущий статус находится в седьмом столбце (NEEDS_MORE_RATINGS), а первый полученный ранее статус, который не был NEEDS_MORE_RATINGS, находится в пятом столбце (CURRENTLY_RATED_HELPFUL). Итак, мы видим, что сам алгоритм сначала показал заметку, а затем удалил ее после того, как ее рейтинг немного упал — похоже, никакого центрального вмешательства не было.
Мы также можем взглянуть на этот вопрос по-другому, взглянув на само голосование. Мы можем отсканировать файл Ratings-00000.tsv, чтобы выделить все рейтинги для этой заметки и посмотреть, сколько из них имеют рейтинг ПОЛЕЗНО и НЕ_ПОМОЩЬ:

Однако, если вы отсортируете их по временной метке и посмотрите на первые 50 голосов, вы увидите, что есть 40 ПОЛЕЗНЫХ голосов и 9 НЕ_ПОЛЕЗНЫХ голосов. Таким образом, мы приходим к одному и тому же выводу: первоначальная аудитория Notes оценила Notes более положительно, в то время как последующая аудитория Notes оценила его менее благосклонно, поэтому его рейтинги начали выше и со временем снизились.
К сожалению, сложно объяснить, как именно Notes изменил статус: это не просто вопрос «раньше он имел рейтинг выше 0,40, теперь он имеет рейтинг ниже 0,40, поэтому его удалили». Вместо этого большое количество ответов NOT_HELPFUL запускает одно из условий исключения, увеличивая показатель полезности, который необходим Notes, чтобы оставаться выше порогового значения.
Это еще одна прекрасная возможность для обучения, которая преподает нам урок: для того, чтобы заслуживающий доверия нейтральный алгоритм действительно заслуживал доверия, необходимо сохранять его простоту. Если Примечания переходят от принятия к непринятию, должна быть простая и ясная история, объясняющая, почему это так.
Конечно, есть совершенно другой способ манипулировать этим голосованием: бригадирование. Тот, кто видит заметки, которые они не одобряют, может обратиться к активно вовлеченному сообществу (или, что еще хуже, к легиону фейковых аккаунтов), чтобы оценить их НЕ_ПОЛЕЗНО, и может не потребоваться слишком много голосов, чтобы переместить заметки из категории «Полезные» в «чрезвычайные». Требуется дополнительный анализ и работа, чтобы должным образом снизить уязвимость алгоритма к таким скоординированным атакам. Возможным улучшением было бы запретить любому пользователю голосовать за какие-либо Примечания, а вместо этого случайным образом назначать Примечания оценщикам способом, рекомендованным алгоритмом «Для вас», и разрешать оценщикам оценивать только те Примечания, которым они были назначены.
Неужели Заметки сообщества недостаточно «смелы»?
Основная критика, которую я вижу в отношении «Заметок сообщества», заключается в том, что они делают недостаточно. Я видел две недавние статьи, в которых упоминалось об этом. Цитирую одну из статей:
Программа страдает от серьезного ограничения: для того, чтобы заметки сообщества стали общедоступными, они должны быть общепринятыми и приняты консенсусом людей всего политического спектра.
«Нужно иметь идеологический консенсус», - сказал он. «Это означает, что люди слева и люди справа должны согласиться с тем, что примечание должно быть прикреплено к твиту».
По сути, сказал он, это требует «межидеологического соглашения об истине, которого практически невозможно достичь в условиях растущей партийной активности».
Это сложный вопрос, но в конечном итоге я склонен думать, что лучше, чтобы десять твитов с дезинформацией распространялись свободно, чем один твит был несправедливо аннотирован. Мы видели годы проверки фактов, и это смело, и это с точки зрения «на самом деле мы знаем правду, мы знаем, что одна сторона лжет чаще, чем другая». Каков будет результат?

Честно говоря, существует довольно широко распространенное недоверие к концепции фактчекинга. Вот стратегия, которая гласит: игнорируйте критиков, помните, что эксперты по проверке фактов действительно знают факты лучше, чем любая система голосования, и придерживайтесь ее. Но идти ва-банк при таком подходе кажется рискованным. Есть ценность в создании межплеменных институтов, которые хотя бы в какой-то степени уважаются всеми. Как и в случае с принципом Уильяма Блэкстоуна и судами, я считаю, что для поддержания этого уважения необходима система, которая совершает ошибки из-за бездействия, а не активно. Поэтому мне кажется, что есть смысл, если хотя бы одна крупная организация пойдет по другому пути и будет относиться к своему редкому межплеменному уважению как к драгоценному ресурсу.
Еще одна причина, по которой я считаю, что консервативность «Заметок сообщества» - это нормально, заключается в том, что я не думаю, что каждый дезинформационный твит или даже большинство дезинформационных твитов должны получать корректирующую заметку. Несмотря на то, что менее одного процента твитов с дезинформацией получают аннотации, которые предоставляют контекст или исправления, «Заметки сообщества» по-прежнему предоставляют чрезвычайно ценную услугу в качестве образовательного инструмента. Цель состоит не в том, чтобы исправить все; скорее, цель состоит в том, чтобы напомнить людям, что существует множество точек зрения, что некоторые сообщения, которые кажутся убедительными и интересными по отдельности, на самом деле совершенно неправильны, и что вы, да, обычно вы можете выполнить базовый поиск в Интернете. чтобы убедиться, что это неправильно.
«Записки сообщества» не могут быть и не предназначены быть панацеей от всех проблем публичной эпистемологии. Какие бы проблемы он не решил, есть много возможностей для его заполнения другими механизмами, будь то новомодный гаджет, такой как рынок прогнозов, или устоявшаяся организация, нанимающая штатных сотрудников с опытом в предметной области, которые могут попытаться заполнить пробелы.
в заключение
«Заметки сообщества» — это не только увлекательный эксперимент в социальных сетях, но и пример захватывающего нового типа дизайна механизмов: механизмов, которые сознательно стремятся выявлять крайности и имеют тенденцию способствовать пересечению границ, а не увековечивать разногласия.
Два других примера из этой категории, о которых я знаю: (i) механизм парного вторичного финансирования, используемый в Gitcoin Grants, и (ii) Polis, дискуссионный инструмент, который использует алгоритмы кластеризации, чтобы помочь сообществу выявить общие. Популярные утверждения охватывают людей. которые часто имеют разные взгляды. Эта область проектирования механизмов ценна, и я надеюсь, что мы увидим больше академических работ в этой области.
Алгоритмическая прозрачность, обеспечиваемая «Заметками сообщества», не совсем такая же, как полностью децентрализованные социальные сети: если вы не согласны с тем, как работают «Заметки сообщества», невозможно просмотреть тот же контент с помощью другого алгоритма. Но это самое близкое к тому, что гипермасштабируемые приложения смогут достичь в ближайшие несколько лет, и мы видим, что оно уже обеспечивает большую ценность как в предотвращении централизованного манипулирования, так и в обеспечении того, чтобы платформы, которые не участвуют в таких манипуляциях, получали должное признание. .
Я с нетерпением жду возможности увидеть, как «Заметки сообщества» и многие аналогичные алгоритмы будут развиваться и расти в течение следующего десятилетия.
