Headline ex machina: может ли робот работать редактором
Как заставить нейросеть законспектировать текст, что мешает ей «прокачать» грамматику и какое предложение лучше всего подходит для создания заголовков, рассказывает Indicator.Ru.
Всего два с половиной года назад китайский робот научился писать новости, а полгода спустя Google профинансировал развитие службы новостей, где весь контент (а это 30 тысяч текстов в месяц) генерирует искусственный интеллект. Это заставило многих журналистов задуматься о будущем своей профессии: даже авторы блога Всемирной конференции научных журналистов не смогли пройти мимо темы. О качественном аналитическом тексте, конечно, речи пока не идет, но скомпоновать данные в небольшой материал искусственный интеллект может без труда. Однако современный избыток информационного шума диктует свои правила: чтобы новость хорошо читали, ей нужен яркий заголовок, привлекающий внимание.
«Мой верный друг, мой враг коварный»
Попыток автоматической генерации заголовков было бессчетное множество, но выжать из текста главную информацию и заставить искусственный интеллект сформулировать из нее что-то осмысленное, да еще и в приемлемой грамматической форме — это две разные стадии, каждая из которых сложна сама по себе. Генерация заголовка считается подзадачей суммаризации текста. Хотя в английском намного меньше словоформ, чем в русском, нейросети принципиально не понимают смысл сказанного, что мешает им создавать грамматически корректные тексты.
Работа нейросетей по генерации заголовков состоит из трех компонентов: input representer — формы, в которой представлены «скармливаемые» нейросети слова; encoder — программы, которая рассчитывает вектор или серию векторов, в которых представлен изначальный документ; и decoder, алгоритма, который раскодирует нужные слова «конспекта» по одному. Фактически нейросети переводят слова в числа и обратно, поэтому результаты их работы пока чаще курьезны, чем полезны.
Один из способов решения этой проблемы — учить нейросеть имитировать людей, которые придумывают заголовки. К примеру, программа HEADS обучалась на корпусе финансовых новостей, «переводя» заголовки на свой «язык» – размечая их в пространстве, где переменные задавались характеристиками. Модель работает на основе условных случайных полей (Conditional Random Fields) — разновидности марковских случайных полей, которую часто используют для распознавания образов и речи. Такой метод помогает модели рисовать «карты» соответствия заголовков пространству характеристик и различать абстрактные свойства заголовков, написанных людьми.
Долгая кратковременная память, абстрактные смыслы и внимание
Метод под названием Abstract Meaning Representation (абстрактное представление значения, AMR) позволяет сделать похожую вещь с целыми предложениями на основе синтаксических и семантических особенностей их структуры. На конференции по компьютерной лингвистике в 2016 году группа японских ученых предложила сочетать AMR с ABS — моделью Attention-based summarization, которая предсказывает последовательность слов и выжимку из статьи на основе языковой модели нейросети и входящего предложения, закодированного математической функцией.
Поскольку обучаться на человеческих примерах заголовков (которые далеко не всегда суммируют содержание статьи) машине тяжело, в 2017 году ученые из Пекинского университета предложили «грубо-точный» подход с использованием хорошо изученных техник суммаризации. После этого из многочисленных «конспектов» при помощи «модели иерархического внимания», выделяющей наиболее важные слова в предложениях, создается заголовок. Однако этот метод с трудом «понимает» весь документ.
Еще один вариант – использование рекуррентных нейронных сетей, то есть нейросетей с обратной связью. Такой подход (с нейросетью Long Short Term Memory) представлен в статье ученых из Колледжа наук об устойчивых системах (Осака). Но в этом случае берется лишь первое предложение статьи как материал для кодирования и дальнейшей работы, поэтому авторы признают, что иногда заголовки выходят просто бессмысленные.
Shared task
Российским ученым тоже есть чем поделиться на этот счет. На организованной компанией ABBYY XXI конференции «Диалог», посвященной компьютерной лингвистике, они провели соревнование по разработке методов генерации заголовков на русском языке. Платформу для конкурса и программу-образец представили разработчики команды прикладных исследований ВКонтакте Валентин Малых и Павел Калайдин.
«Чтобы получить заголовок, используются два приема. Во-первых, выбрасываем лишние слова из текста, во-вторых, суммируем в оставшемся смысл статьи, поэтому генерация заголовков становится частным случаем суммаризации текстов, которая полезна сама по себе — например, когда мы хотим прочитать не весь документ, а выжимку из него. Но эти программы либо вырезают кусочек из готового текста (что называется экстрактивной суммаризацией), либо (это называется абстрактивной суммаризацией) "пересказывают текст своими словами"», — отметил Малых.
Недостатки первого подхода очевидны: очень редко в статье или новости можно найти предложение, которое опишет его полностью. Второй вариант для русского языка подходит плохо, так как в нем очень много словоформ. На выходе будет получатся краткий и, возможно, подходящий по смыслу, но при этом часто несогласованный набор слов.
Задача была предложена российскому сообществу обработки естественного языка, в котором суммаризация считается важной целью, но в котором есть проблемы с поиском подходящих корпусов для обучения. Поскольку для генерации заголовков множество новых примеров появляется в сети ежедневно, такой вариант устроил всех. Задачей занялись шесть команд, часть из которых предложили новые и успешные решения.
Эпоха трансформеров
На отдельном датасете сообщений РИА Новости лучшим был признан алгоритм Андрея Соколова, бакалавра факультета прикладной математики — процессов управления СПбГУ. Его модель была основана на глубокой нейросети с фразовым механизмом внимания.
Для этого алгоритма автор использовал архитектуру Transformer, заменив ею популярную и уже упомянутую выше рекуррентную нейросеть Long Short Term Memory. Такая архитектура была изобретена в Google, а ее принципы изложили в статье на arXiv в 2017 году под заголовком Attention Is All You Need. Как сотрудники Google объясняют в своем блоге, такая архитектура нейросети основана на механизме внимания. В этой модели во время кодирования каждый вектор взаимодействует со всеми другими, а при расшифровке обратно каждое слово взаимодействует с предыдущими и с векторами кодировщика. Такой подход обеспечивает большую связность и часто применяется для задач перевода. Пока не понятно, используется ли механизм в Google Translate, но отечественные разработчики упоминали о работе Transformer в Яндекс.Переводчике.
В новом алгоритме российские разработчики предложили видоизмененную архитектуру Phrase Based Attentions, которая позволяла также сфокусироваться на связях между фразами напрямую, а не только между векторами, что принесло им победу на наборе примеров из РИА Новости. Правда, на других базах (например, индивидуальной базе из 15789 примеров РОМИП) та же нейросеть давала лишь посредственный результат, так что модель оказалась очень зависимой от новостного агентства, на котором тренируется.
Языковые модификации
Чтобы сети было легче обучаться, задачу разделяют на две: правильная предобработка текста, которая учитывает языковые особенности (форма слова, морфемы и т. п.), и извлечение из уже предобработанной последовательности краткой выжимки.
Автор доклада Матвей Степанов из МФТИ научил программу автоматически учитывать естественные зависимости между словами. Степанов предложил применить генератор-указатель и сделал модель абстрактивной (заменяющей слова синонимами, основываясь на собственном «словаре»). Чтобы преодолеть частые проблемы подхода seq2seq — невозможность использовать слова вне «словаря» нейросети, — был предложен механизм покрытия. Обучаясь с ним, модель «штрафуется», если она делает одни и те же действия при переводе с языка цифр на язык слов (то есть повторяет слова).
Программа была создана в нескольких версиях: обычный генератор-указатель, который рассматривал сами слова; генератор-указатель, который предварительно разбивает слова на основы и окончания и работает с ними; генератор-указатель, предварительно разбивающий входные слова на леммы и граммемы (нормализует слова и узнает их форму).
Работа заняла второе место на конкурсе конференции «Диалог».
Два секрета победителя
Лучшей в конкурсе стала модель Ильи Гусева, аспиранта кафедры компьютерной лингвистики МФТИ. «Модели с ограниченным словарем будут плохо справляться с такой задачей (генерирования заголовков, — прим. Indicator.Ru), потому что новые именованные сущности могут регулярно появляться в новостях, и зачастую они должны быть в заголовках», — считает Гусев, взявший за основу все тот же подход seq2seq. Проанализировав стандартную структуру новости в виде перевернутой пирамиды, он в очередной раз подтвердил вывод, что первое предложение обычно содержит самую значимую информацию.
Победу и целых 23 балла (на три балла лучше базовой модели) ему принесли две техники. Первая называется byte-pair encoding, и ее смысл автор объяснил так: «Слова разбиваются на несколько значимых частей на основе частотных характеристик. То есть, если в обучающем корпусе часто встречаются буквы «е» и «н» рядом друг с другом, они объединяются в одно «слово». Потом если рядом часто встречаются «ен» и «н», то они объединяются в «енн», и так до определенного предела». Вторым преимуществом стал CopyNet — метод, который объединяет генерацию слов с новым копирующим механизмом, вставляющим слова в нужные места. В суммаризации текста этот метод сильно превосходит обычные рекуррентные нейросети.
Выводы конкурса скорее оптимистичны. Во-первых, в большинстве случаев в новостях первое значимое предложение (например, не дата и место) будет хорошей основой, из которой можно сделать заголовок. Во-вторых, использованный формат распределения задач (shared task) оказался удобным для участников, и организаторы надеются, что он может принести немало хороших решений. В-третьих, интересным вызовом будет суммаризация текстов из других языков, особенно близкородственных, как русский и белорусский.
Но несмотря на очевидный прогресс, получившиеся заголовки (даже если они отражают содержание) иногда ошибочно интерпретируют посыл журналистов или неправильно используют словоформы. Многие ученые и разработчики таких алгоритмов сами воспринимают их больше как интересную задачу для развития навыков программирования, чем как реальный инструмент, готовый заменить живых людей в ближайшем будущем. Так, авторы уже упомянутой модели HEADS на основе CRF-метода отмечают: «Информативность созданных человеком заголовков невысока. Причина этого в том, что редакторы чаще стремятся ставить сенсационные или лишь частично информативные заголовки, чтобы привлечь внимание читателей». Так что отдавать журналистику (или хотя бы новости) полностью на откуп искусственному интеллекту пока преждевременно.
Понравился материал? Добавьте Indicator.Ru в «Мои источники» Яндекс.Новостей и читайте нас чаще.
Подписывайтесь на Indicator.Ru в соцсетях: Facebook, ВКонтакте, Twitter, Telegram, Одноклассники.