Как нейросеть училась понимать эмоции по сериалу «Друзья»

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

Недавно специалисты по нейросетям предложили эффективную модель, позволяющую определять эмоции в письменной речи с помощью графов. Свое решение они назвали DialogueGCN — от Graph Convolutional Neural Network, или сверточная граф-нейросеть. Давайте разберемся, как она работает и как технологии прикладного машинного обучения и Deep Learning в будущем помогут роботам понимать наши саркастичные ответы.

Курс по Machine Learning
Идет набор в группу 3 800₽ в месяц

Исследователи исходят из того, что значение фразы зависит от двух уровней контекста:

  • Последовательный контекст связан с позицией каждого слова в предложении, а высказывания — в диалоге. В этом случае изучаются взаимоотношения между словами, семантические и синтаксические характеристики предложений. В общем и целом, это достаточно отстраненный подход, позволяющий создать структурную картину фразы.
  • Разговорный контекст (Speaker Level Context) принимает во внимание отношения между участниками беседы. В этом случае анализируются не только слова и предложения, а их влияние как на слушателя, так и на автора высказывания (поскольку состояние человека и его контекст могут поменяться после произнесения фразы). Очевидно, что эти материи, во-первых, связаны с вопросами психологического характера, и, во-вторых, гораздо сложнее поддаются механическому анализу.

Создатели DialogueGCN сосредоточились именно на разговорном контексте. Они выяснили, что графы позволяют моделировать такие взаимоотношения, добывая материалы для дальнейшего машинного обучения.

Исследователи представили каждое высказывание как вершину графа u[1], u[2], …, u[N]. Это граф направленный, т.е. u[1]-u[2] не равняется u[2]-u[1]. У каждой грани есть две характеристики: вес W и отношение R. Конечная цель работы — обучить нейросеть распознавать эмоциональную окраску каждого высказывания.

Этот граф отражает диалог из пяти фраз. Разные цвета обозначают разных участников. (Источник)

Как можно заметить на иллюстрации, у каждой вершины есть еще одна собственная грань. Это отражает влияние высказывания на говорящего, о чем мы писали выше.

У такой методики есть слабое место — с течением времени и увеличением числа участников граф может увеличиваться до огромных масштабов, требуя все больше вычислительных ресурсов. Исследователи решили эту проблему введением дополнительного параметра i, который ограничивает допустимое окно анализа. При обработке каждой фразы нейросеть принимает во внимание только те высказывания, которые лежат от него в пределах i в обоих направлениях от узла. Таким образом она обрабатывает и прошлые высказывания, которые привели к реплике, так и будущие, которые за ней последовали.

Курс по нейронным сетям
Идет набор в группу 4 200₽ в месяц

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

Чтобы подготовить данные для GCN, каждое высказывание представляется в качестве признакового вектора (festure vector), которому присваивается значение последовательного контекста. Для этого фразы прогоняются через серию управляемых рекуррентных блоков (Gated Recurrent Unit, GRU). Полученные данные предлагаются нейросети в виде графа для выделения признаков. По итогам этого процесса GCN присваивает репликам разговорный контекст, опираясь на нормализованную сумму вершин, которые соединены с каждой отдельной фразой.

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

Общая схема обработки диалога (источник)

Важная проблема при программировании таких систем машинного обучения — это отсутствие проверочных наборов данных (бенчмарков). Исследователи воспользовались размеченными мультимодальными подборками, которые объединяли текст с видео- или аудиоконтентом. Поскольку авторы концентрировались на письменной речи, лишние данные они игнорировали.

В итоге работу DialogueGCN проверяли на следующих наборах данных:

  • IEMOCAP: диалоги между десятью разными людьми с эмоциональными отметками каждой фразы.
  • AVEC: диалоги между людьми и компьютерными ассистентами, реплики отмечены ярлыками по нескольким характеристикам.
  • MELD: 1400 диалогов и 13 тыс. высказываний из сериала «Друзья» с эмоциональной разметкой.

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

Основная часть ошибок DialogueGCN оказалась связана с двумя сценариями. Во-первых, нейросеть путает близкие эмоции вроде злости и расстройства или счастья и возбуждения. Кроме того, компьютер плохо понимает окрас коротких высказываний («окей», «ага»). Эксперты предположили, что долю ошибок можно сократить, добавив видео- и аудиопотоки данных, от которых они сознательно отказались.

Значение этой работы не ограничивается интересными перспективами для систем обработки языка (Natural Language Processing, NLP). Это отличный пример применения графов в Data Science и прикладном машинном обучении. Возможность анализировать связи между объектами позволяет раскрыть суть их взаимоотношений, чтобы добавить в математическое уравнение даже такие призрачные категории, как человеческое настроение.

Текст: Помогаев Дмитрий

Поделиться:
Опубликовано в рубрике Machine LearningTagged ,

SkillFactory.Рассылка