Способность модели распознавать намерения собеседника, то есть понимать, почему человек совершил то или иное действие, применима в большом количестве прикладных задач НЛП.
Например, это позволит чат-ботам, голосовым помощникам и другим диалоговым системам эмоционально реагировать на высказывания собеседника, проявлять понимание, сочувствие и другие эмоции.
Кроме того, задача распознавания намерения является еще одним шагом к пониманию человеческой речи ( человеческое понимание ).
Уже предпринималось несколько попыток решить эту проблему в той или иной форме.
Например, на НЛП-прогресс Публикуются последние достижения в области здравого смысла.
Слабость большинства существующих моделей заключается в том, что они основаны на контролируемом подходе, то есть требуют для обучения больших размеченных наборов данных.
А в силу специфики задачи разметка зачастую бывает весьма нестандартной и достаточно сложной.
Для английского языка существует ряд корпусов и бенчмарков, а вот для русского языка ситуация с данными гораздо печальнее.
Отсутствие маркированных данных для русского языка зачастую является одним из основных препятствий, препятствующих русификации рабочих английских моделей.
В этом посте мы расскажем, как мы создали датасет для задачи Common Sense Reasoning в одной из возможных ее формулировок, предложенных в статье.
событие2mind , а также адаптировали английскую модель event2mind от АлленНЛП для русского языка.
Для начала давайте немного расскажем вам, что представляет собой задача «Рассуждение здравым смыслом».
На самом деле правильнее было бы рассматривать это как целую область задач, направленную на распознавание намерений и эмоций актера.
У него нет единой формулировки, и в этом посте мы возьмем за основу его вариант, предложенный авторами event2mind: использование короткого текста в свободной форме, содержащего какое-либо действие или событие (например, «Человек X завтракает утром» ), определить намерения субъекта ( «X хочет утолить голод» ), его эмоции/реакции ( «X чувствует себя сытым, полным» ) и возможные эмоции/реакции других участников мероприятия, если таковые имеются.
Рисунок 1 наглядно это иллюстрирует. Рисунок 1. Задача Commonsense Reasoning – определить намерения, эмоции/реакции субъекта и эмоции/реакции других людей по короткому тексту-событию
В оригинальной англоязычной статье авторы предложили модель event2mind для решения этой проблемы, а также большой размеченный корпус для ее обучения английскому языку.
Нашей задачей было русифицировать эту модель, адаптировав ее для русского языка.
Эту модель мы тогда хотели интегрировать в чат-бота, чтобы научить его понимать намерения пользователя и правильно реагировать на эмоции.
Для этого мы собрали датасет для русского языка, в формате, похожем на английский, а также обучили и протестировали на собранных данных несколько моделей архитектуры event2mind.
Данные, данные и еще раз данные
Итак, нашей задачей было собрать корпус размеченных текстов в свободной форме в формате, удобном для обучения event2mind. Для простоты далее будем называть такие короткие тексты просто события .В то же время мы постарались максимально расширить горизонты рассуждений модели, основанные на здравом смысле, собирая события на самые разные темы из повседневной жизни.
Первая часть.
Краудсорсинговый корпус На первом этапе нам нужно было собрать достаточное количество «сырых» событий для последующей маркировки.
За основу мы взяли три источника данных:
- Краткие посерийные описания сериалов и мыльных опер.
Мы вручную отобрали 50 сериалов с историями из повседневной жизни, таких как «Друзья», «Секс в большом городе», «Санта-Барбара», «Универ», «Кухня» и другие.
При этом мы старались выбирать сериалы «про будни» с рассказами на общие темы.
Научно-фантастические или профессиональные сериалы нам не подошли, так как содержат много специальной лексики, а события там из своей специфической области.
Можете ли вы представить, чему может научиться модель, обученная по сериалам «Хаус» или «Звездный путь»? Он также начнет подозревать, что у всех волчанка, и начнет рассказывать истории о битвах с инопланетянами.
- Краткое содержание книг.
Всего нам удалось собрать аннотации 1512 книг.
- Тексты из СинТагРус , который является частью Национального корпуса русского языка и содержит наряду с новостями литературные тексты.
События для обучения event2mind можно определить как комбинацию глагольного предиката с аргументами, включенными в глагольный компонент. Для поиска похожих шаблонов использовался синтаксический парсер.
удпайп , с помощью которого мы выявили закономерности формы в текстах глагол + зависимые слова в синтаксическом дереве , например, как на рисунке 2, который удовлетворяет одному из следующих правил:
nsubj + root + obj nsubj + root + iobj nsubj + advmod + root nsubj + root + case + obl и т. д.
Рисунок 2. Синтаксические шаблоны, используемые для извлечения событий из текстов
Выбранные события анонимизированы.
Как и в исходном event2mind, все актеры и именованные сущности были заменены единым PersonX, а также PersonY и PersonZ, если в предложении упоминается более одного актера.
Чтобы распознавать именованные объекты ( Распознавание именованного объекта ) и дальнейшей замене мы снова использовали UdPipe: в событиях, соответствующих шаблонам выше, мы обезличивали токены, помеченные PROPN или PRONOUN. Наконец, мы исключили события, не содержащие животных.
Например, по этому критерию предложение было исключено.
"Идет дождь" .
В результате в корпус вошли только события с одушевленными именованными сущностями.
После обезличивания и фильтрации мы использовали частотный анализ и Расстояние Левенштейна выбрать наиболее распространенный события и фильтрация нестандартных примеров, которые встречались только один раз.
Сначала мы взяли все события, произошедшие более одного раза в исходной выборке.
Для оставшейся части данных мы рассчитали попарные расстояния Левенштейна
, ), мы выбрали пары, для которых оно не превышало 5, и из каждой пары взяли более короткое предложение.
При этом методе мы руководствовались следующим соображением: если для пары событий их расстояние Левенштейна мало (в данном случае порог равен 5), то эти предложения различаются очень незначительно, например, родом глагола.
или прилагательное.
По сути это вариации одного и того же события .
И мы выбрали из пары более короткое предложение, потому что оно, скорее всего, будет содержать начальные формы слов (они часто короче, хотя и не всегда).
После сбора данных события нужно было маркировать, выделяя намерения PersonX, его эмоции/реакции, а также эмоции/реакции PersonY и PersonZ, если таковые имеются.
Для этого мы создали задачу в Яндекс.
Толока .
Пример вы можете увидеть на рисунке 3. Для каждого события мы задали маркеры: содержит ли оно значимое событие; Можно ли понять намерения действующего лица из текста события; Можно ли понять эмоции/реакцию актера на основе события; может ли это событие вызвать реакцию окружающих.
Рисунок 3. Пример задачи из Яндекс.
Толока
Чтобы облегчить работу пушерам, мы подготовили для них подсказки — ответы из пробной модели event2mind, обученной на переведенном английском корпусе event2mind. Так что им оставалось только проверить ответы «черновой» модели и, если возможно, предложить свои.
Здесь стоит отметить, что поскольку переведенные данные оказались достаточно сырыми, обученная на них модель оказалась слабой.
Она не достигла уровня полноценной модели, но в ряде случаев ей достаточно точно удавалось угадывать эмоции и намерения испытуемых.
В результате нам удалось собрать 6756 событий на различные бытовые темы.
Часть 2. Переведенный корпус английского языка
Помимо использования размеченного русского набора данных, мы частично перевели английский корпус, используя Гугл переводчик , а затем отфильтровал и скорректировал результат. Почему это было необходимо? Понятно, что автоматический перевод несколько хуже исходных русских данных, размеченных вручную.Дело в том, что разметка такого датасета – трудоемкая задача, требующая большого количества ресурсов, денег и средств.
У нас просто не было возможности выделить корпус, сопоставимый по размеру с английским, состоящим из 46 тысяч примеров.
Поскольку набор данных, собранный на русском языке, оказался меньше, мы решили оценить, хватит ли такого объема данных для обучения.
Для этого мы обучили английскую модель на частях исходного корпуса и измерили, как меняется качество в зависимости от размера набора обучающих данных.
Результаты показаны в таблице.
Качество по намерениям ( намерение ) и эмоции/реакции ( реагировать ) оценивалось по аналогии с оригинальной статьей с использованием метрики отзыв@10 для проверки.
отзыв@10 отражает долю случаев, когда верный ответ золотой стандарт – попадает в топ-10 прогнозов модели.
Показатель варьируется от 0 до 1, чем выше, тем лучше.
Таблица 1. Зависимость качества английской модели от размера обучающего примера
Сразу можем сказать, что 5000 примеров недостаточно для полноценного обучения модели.
Однако уже на 30 000 примерах потери и воспоминания практически не отличаются от результатов на полном объеме данных.
Получается, что 7000 размеченных нами примеров недостаточно для обучения модели и необходимо как-то увеличить размер обучающей выборки.
Для этого мы подготовили дополнительный корпус, полученный с английского языка с помощью автоматического перевода.
Как отмечалось выше, при автоматическом переводе всего корпуса некоторые переводы оказались неверными или полностью потеряли смысл.
Поэтому мы выбрали ту часть англоязычных данных, которая была переведена наиболее адекватно.
Изначально английский корпус собирался из нескольких источников: Учебный комплект ROC Story , синтаксические N-граммы Google , корпус Spinn3r и идиомы.
При этом предложения из одних источников оказалось легче переводить, чем из других.
Например, адекватный перевод идиом без ручного редактирования был не под силу компьютеру.
Поэтому мы взяли лишь примеры из истории РПЦ.
По результатам оригинальной статьи (см.
Таблицу 2) в этом источнике имеется коэффициент согласованности аннотатора ( Коэффициент каппа Коэна ), равный 0,57. А это, скорее всего, говорит о том, что события оттуда легче понять и разметить, а значит, менее подвержены ошибкам при переводе.
Таблица 2. Данные и коэффициент каппа Коэна для разных источников английского корпуса
После этого мы отфильтровали выбранные данные и удалили примеры, в которых после перевода остались английские слова и примеры, переведенные неправильно.
Остальное отредактировано редакцией.
Стоит отметить, что несмотря на все ухищрения, фильтрацию и редактирование, переведенный корпус по-прежнему отстает от размеченного толокерами датасета по «качеству» предложений.
В результате нам удалось собрать 23409 переведенных события , а объем объединенного корпуса с учетом размеченной русской части составил 30165. Этого, как мы выяснили в ходе экспериментов, должно было хватить для обучения русской модели.
А теперь – к экспериментам!
Итак, данные собраны, пора переходить к обучению модели и экспериментам.Модель event2mind представляет собой архитектуру нейронной сети вида кодер-декодер с одним кодером и тремя декодерами для каждого типа предсказания (см.
рисунок 4): намерения субъекта, его эмоций/реакций и эмоций/реакций других участников события, если таковые имеются ( намерение субъекта, реакция субъекта И реакции участников других мероприятий ).
Исходные предложения изначально векторизуются с помощью одного из методов векторного представления слов (например, word2vec или быстрый текст ) и кодируются с помощью кодера в вектор
.
А затем прогнозы генерируются с помощью трех декодеров RNN. Благодаря этому модель может генерировать ответы даже на намерения и реакции, которых она раньше не видела.
Рисунок 4. Архитектура модели Event2mind
Для экспериментов мы использовали объединенный корпус русского языка, размеченную и переведенную части.
А чтобы сделать распределение русских и переводных примеров более равномерным, мы дополнительно смешали данные.
Обратите внимание, что мы также пытались обучить модель только на размеченных данных, но из-за небольшого размера набора данных это показало очень плохие результаты.
Мы тестировали разные слои в кодере — LSTM и GRU, а также пробовали разные векторные представления — быстрый текст И word2vec С РусВекторы .
Результаты показаны в Таблице 3, результаты по намерениям и реакциям, как было рассчитано ранее по метрике отзыв@10 .
Таблица 3. Результаты модели для русского языка, намерения и реакции оценивались с помощью метода Recall@10
Итак, какие выводы можно сделать из результатов эксперимента? Во-первых, встраивания word2vec оказались немного лучше, чем fasttext. При этом встраивания фасттекста, обученные на ruscorpora, показали себя лучше, чем обученные на araneum. Во-вторых, можно отметить, что при использовании word2vec GRU в кодировщике оказывается лучше, чем LSTM. И, наконец, лучшая модель (areneum word2vec + GRU) практически повторяет результаты для английского языка.
И наконец, давайте посмотрим на реальные примеры!
Очень хороший! Намерения выглядят весьма правдоподобно и действительно отражают некие общечеловеческие понятия и знания.
А вот с эмоциями/реакциями модель справлялась несколько хуже; они оказались более примитивными и однообразными.
Это может быть связано с тем, что эмоции зависят от большего объема текста и короткого текста-события недостаточно для его правильного определения.
Вместо заключения
Итак, мы создали русскоязычный корпус для обучения модели event2mind. Кроме того, мы провели эксперименты, которые показали, что архитектура event2mind работает для русского языка, который по своей природе грамматически сложнее английского.Несмотря на сложность русского языка, удалось добиться качества, сравнимого с английским.
Лучшая модель и данные размещены в репозитории .
Столь масштабный проект стал возможен только благодаря совместным усилиям нашей команды.
Также принял участие в адаптации event2min для русского языка.
аленуш И одиндватрикстер .
Теги: #Машинное обучение #python #искусственный интеллект #машинное обучение #Обработка естественного языка #нейронные сети #глубокое обучение #nlp #модель #обработка текста #обработка текста #языки #набор данных #русский язык #вывод здравого смысла #рассуждение здравого смысла #русский набор данных #русский корпус #текстовый корпус #базовый уровень #славянская группа языков
-
Как Можно Взломать Собственный Веб-Проект?
19 Oct, 24 -
Взгляд Google На Оптимизацию Веб-Сайтов
19 Oct, 24 -
Ibm Проведет Часть Second Life
19 Oct, 24