По пунктам:

  1. Как алгоритм может найти в миллионах комментариев токсичные?
  2. Как работает такой алгоритм?
  3. А можно ли его обмануть, не используя бранные слова и прямые угрозы?
  4. В мире более 7000 языков, получается, под каждый нужен свой алгоритм?
  5. Но ведь этика общения меняется. Алгоритм как-то учитывает это?
  6. Как робот отличает реальную травлю и токсичность от простой шутки?
  7. Не является ли это робото-цензурой? Ведь, получается, машина определяет, что я могу писать, а что нет.
  8. Сам робот ничего не удаляет?
  9. Алгоритмы универсальны, или каждый сайт и соцсеть заказывают их по себя?

Как алгоритм может найти в миллионах комментариев токсичные?

Общая схема достаточно проста: алгоритм долгое время обучают отличать токсичные комментарии от нормальных, показывая ему множество размеченных людьми примеров ― и тех, и других. После этого алгоритм сканирует все поступающие комментарии на предмет токсичности. Число комментариев на данном этапе уже не так важно, обученный алгоритм может обрабатывать их миллионами за считанные секунды.

Как работает такой алгоритм?

Обычно он состоит из двух частей ― собственно алгоритма, преобразующего оригинальные тексты в числовую форму, и модели, определяющей токсичность комментариев. Зачем так делается? Во-первых, компьютер не видит слова таким же образом, как люди. Компьютеры работают с числами, поэтому вместо слов «Москва» и «Россия» он видит числа, например 37 и 42. Во-вторых, вместо того, чтобы нумеровать слова просто в том же порядке, что они идут в словаре, можно хитрым образом настраивать эти численные представления слов так, чтобы из них можно было напрямую выделять нужные контекстные связи. Например, написав уравнение «Москва» - «Россия» + «Франция», результирующее число будет соответствовать слову «Париж». Сама предсказательная модель (определяющая токсичный комментарий или нет) работает уже с этими числовыми представлениями строк текста и по ним принимает решение. Последнее время для большинства языков оба этапа строятся на основе глубоких нейронных сетей.

А можно ли обмануть алгоритм, не используя бранные слова и прямые угрозы?

Да, это вполне возможно и даже не слишком трудно. Пока алгоритмы достаточно плохо умеют понимать завуалированную речь и скрытый смысл эвфемизмов. Существует целый ряд задач, с которыми они справляются не слишком хорошо. Например, они достаточно плохо понимают, где сарказм, а где нет, не могут с достаточно высокой точностью определить, на что ссылаются кореференты (слова, указывающие на определенный объект в предложении, например «На кухне стоит стол. Он очень красивый» «Он» ― кореферент «столу».) Впрочем, современные исследования говорят, что и люди в основной своей массе не всегда хорошо справляются с этими задачами. Более того, во многих случаях только по представленным фрагментам текста невозможно принять однозначное решение вовсе. Тем не менее, на данный момент развитие подобных систем находится на уровне, когда они умеют решать подобные задачи все же заметно лучше, чем среднестатистический человек, хоть и не со 100% качеством.

В мире более 7000 языков, получается, под каждый нужен свой алгоритм?

Формально ― да, для каждого языка нужен свой алгоритм, если считать таковым каждый отдельно обученный экземпляр модели машинного обучения. До недавнего времени компании смотрели, как примерно «технически» устроен язык, сколько размеченных данных есть, какую конкретно задачу для данного языка хочется решить, и выбирали, какой уже разработанный алгоритм подойдет лучше всего, или создавали свой. Примерно с 2016 года набирает обороты техника трансфера знаний (Transfer Learning), когда специалисты обучают большую модель работать с языком, для которого есть много данных, а потом доучивают специфике языка с малой выборкой. Для некоторых сочетаний пар языков и решаемых задач это работает крайне эффективно, для некоторых пока приходится работать по старой схеме.

Но ведь этика общения меняется, то, что 10 лет назад было нормой ― сейчас неприемлемо. Алгоритм как-то учитывает это?

На самом деле все подобные алгоритмы постоянно обновляются и дообучаются. Из практического опыта больших компаний следует, что модель нужно дообучать раз в пару недель, а раз в два-три года полностью реконструировать с нуля. При этом, конечно, используются относительно свежие корпуса текстов. Следует понимать, что если вы попросите обученный на современных текстах алгоритм проанализировать более старые тексты, то процент ошибок на них будет сильно выше. И чем старше текст, тем чаще будет ошибаться алгоритм. Чтобы этого не происходило, обучать алгоритм следует на текстовых данных примерно того же временного среза, который вы хотите анализировать.

Как робот отличает реальную травлю и токсичность от простой шутки?

Зачастую эти и многие другие языковые тонкости достаточно плохо различимы даже людьми. Обычно такие алгоритмы обучаются на размеченных корпусах текстов. Такие корпуса содержат текстовые фрагменты, в которых людьми уже в явном виде указано, что и в каком контексте является шуткой, а что нет. Внутри подобных алгоритмов, как правило, существуют некоторые параметры, которые позволяют более тонко настраивать данную границу.

Не является ли это робото-цензурой? Ведь, получается, машина определяет, что я могу писать, а что нет.

На самом деле это же не робот определяет, что вам можно писать, а что нет, а люди, которые его создали. Это все равно что спрашивать, виноват ли перфоратор, что мешает вам дремать после обеда в ваш законный выходной, или виноват сосед, который этим перфоратором пользуется. И в том, и в другом контексте машина ― лишь инструмент для достижения поставленной человеком цели.

То есть сам робот ничего не удаляет?

Это зависит от настроек, которые задали самому алгоритму. Как правило, большинство алгоритмов выдают не просто решение о том токсичный текст или нет, а некоторую степень уверенности. Поэтому комментарии, в токсичности которых робот имеет высокую степень уверенности, удаляются автоматически, а остальные отправляются людям-модераторам на дополнительное рассмотрение. То, насколько много текстов фильтровать автоматически (и фильтровать ли вообще), зависит от политики конкретной компании и имеющихся пользовательских соглашений.

Алгоритмы универсальны или каждый сайт и соцсеть заказывают их по себя?

Обобщенные алгоритмы, подходы к их обучению плюс-минус одинаковы для всех. Каждый конкретный экземпляр алгоритма, использующийся в конкретной компании, обычно разрабатывается, обучается и настраивается, исходя из специфики компании и имеющихся у нее ресурсов. За основу берутся последние разработки, уже активно использующиеся технологическими гигантами вроде Google и Facebook ― они периодически выкладывают в открытый доступ полностью новые алгоритмы, модели и архитектуры, разработанные в своих научных отделах. Рядовым ученым или техническим специалистам в небольших компаниях достаточно сложно тягаться с гигантами, поскольку практически все современные решения (если речь не идет о малоресурсных языках) требуют колоссальных вычислительных мощностей. Однако всегда есть возможность улучшить работу самых навороченных алгоритмов на своей задаче, поскольку они не учитывают локальную специфику.