ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»
Факультет Бизнеса и менеджмента
Выпускная квалификационная работа
по направлению подготовки 38.03.05 Бизнес-информатика
Методы машинного обучения для анализа тональности коротких текстов
Шахов Дмитрий Михайлович
Научный руководитель
Старший преподаватель
Голов Н. И.
Содержание
Введение
Сентимент-анализ(анализ тональности) или же Opinion Mining/emotion AI - это одна из наиболее важных областей внутри более общего направления NLP(обработка естественного языка), занимающаяся поиском и извлечением мнений из текстов. Обычно, помимо идентификации мнения, выявляются и некоторые атрибуты текста: тональность - эмоциональный окрас текста, предмет - о чём идёт речь в тексте, держатель мнения - физическое или юридическое лицо, выражающее мнение.
В настоящее время, область сентимент-анализа является предметом большого интереса и динамично развивается в связи с большим спектром её возможных применений на практике. Некоторые прикладные use-cases:
· Мониторинг социальных медиа крупными компаниями в поисках упоминания своего бренда или бренда конкурентов. Так, при обнаружении отрицательного отзыва, появляется возможность быстро предпринять какие-либо действия и повысить лояльность клиента [1].
· Замена опросов и фокус-групп, упрощение маркетинговых исследований рынка за счёт автоматизации процесса сбора мнений в сети (блогах, соц.сетях, сайтах типа Маркет.Яндекс, TripAdvisor) и их классификации по типу эмоциональной окраски [2].
· Инструмент для выявления настроений народных масс, который используется в политике для гос.разведки, прогнозирования результатов выборов за счёт оценки мнений избирателей о потенциальных кандидатах [3].
· Рекомендательные системы, сконструированные на основе анализа рецензий реальных пользователей на какие-либо продукты. Объект-кандидат будет рекомендован юзеру, если он имеет множество общих характеристик с ранее предпочитаемыми этим юзером объектами, а также если объект-кандидат получает в рецензиях положительную оценку по наиболее предпочитаемым таргет-пользователем характеристикам [4].
· Эффективное размещение баннеров, при котором избегаются нежелательные сочетания. К примеру, методы сентимент-анализа могут помочь избежать появления баннера «Бургер-кинг» на сайте о вреде фаст-фуда [5].
· Сентимент-анализ можно применять для совсем экзотичных вещей, например, для торгов на бирже. А именно, производится анализ оценок экспертов, и с их помощью делается предсказание валютных курсов/котировок акций [6].
В связи с ростом числа пользователей Интернета [7], постоянным выпуском новых гаджетов и развитием технологий в целом, растёт и количество общедоступной и частной информации в сети [8]. Соответственно, всё больше и число текстов, выражающих мнения, доступных на обзорных сайтах, форумах, в блогах и социальных сетях. Люди всё чаще предпочитают онлайн-общение живому, и в силу вышеперечисленных причин делать это становится всё удобнее. Хотя данный тренд имеет свои очевидные плюсы, обеспечивая быструю и простую коммуникацию людей на расстоянии, он также и несёт в себе некоторые опасности. А именно, коммуникация в сети обеспечивает участников определённой степенью анонимности, что может способствовать ощущению безнаказанности и свободы от ответственности за ненадлежащее поведение в Интернете. Именно поэтому, к сожалению, на форумах и в различных социальных сетях можно увидеть немало агрессивных комментариев с оскорбительным или уничижительным содержанием от так называемых «интернет-троллей» в адрес обычных пользователей и их близких [9]. Разумеется, это отпугивает пользователей, оказывает негативное влияние на людей, а в некоторых случаях это может перерасти в кибербуллинг(Интернет-травлю), которая в свою очередь может привести к депрессии или даже самоубийству [10].
Для автоматического распознавания и предотвращения кибербуллинга могут использоваться методы машинного обучения, что подтверждается наличием большого числа исследований, посвящённых этой теме [11, 12, 13, 14, 15].
В данной же работе было проведено исследование, направленное на идентификацию токсичного поведения в Интернете, выражающемся в написании гневных и агрессивных по манере комментариев. На основе методов машинного обучения с учителем была проведена классификация таких комментариев по типу токсичности (токсичный, сильнотоксичный, неприличный, угроза, оскорбление, расистский). Предварительно был приведён обзор используемых в практической части подходов.
Постановка задачи
Целью данного дипломного проекта является разработка и анализ работы алгоритмов для анализа тональности агрессивных комментариев, т.е. для автоматического определения их эмоционального окраса. По сути, решается задача многоклассовой классификации коротких текстов, которая как никогда актуальна в наше время и обладает специфическими особенностями, накладывающими дополнительные сложности при решении [16].
Для достижения поставленной цели необходимо выполнить следующие этапы:
1. Исследовать существующие практики решения задачи классификации текстов.
2. Найти необходимые для исследования данные комментариев и выбрать метрику качества.
3. Учитывая специфику поставленной задачи, извлечь первичные признаки и выполнить предобработку данных.
4. Реализовать несколько классифицирующих моделей машинного обучения, оценить их качество и сравнить их эффективность.
5. Cделать выводы об особенностях решения поставленной задачи.
Для применения алгоритмов машинного обучения будет использоваться среда разработки Python 3 со стандартным набором библиотек для использования линейных моделей машинного обучения, глубинного обучения и работы с текстовыми данными.
Основные методы для решения задачи, применённые в исследовании, освещаются в главе 1. В главе 2 описывается процесс обучения моделей, приводятся основные результаты и выводы. В конце документа содержится заключение и планы на будущую работу.
Глава 1. Методы машинного обучения для классификации текстов
1.1 Линейные методы
Чаще всего на текстовых данных используются линейные модели. Они хорошо масштабируются, могут работать с большим количеством признаков, на очень больших выборках. Более того, они достаточно просты в имплементации и их обучение, как правило, занимает относительно небольшое время [17]. Рассмотрим несколько таких алгоритмов, например, наивный байесовский классификатор и логистическую регрессию.
1.1.1 Наивный байесовский классификатор
Используя данный классификатор, мы отбираем из множества всех возможных классов тот класс , условная вероятность принадлежности к которому документа максимальна. Более аккуратно это можно записать так:
Используя теорему Байеса, далее можно преобразовать выражение (1) к такому виду (2), при этом учитывается, что величина , будучи одинаковой для всех документов, не влияет на задачу максимизации.
Следующим шагом является векторное представление текста на основе модели Bag of Words - мешка слов, характерной особенностью которой является то, что порядок «токенов» в документе не имеет значения. Пусть всего в выборке есть различных слов: . В этом случае каждый текст кодируется с помощью признаков, причём признак - это доля вхождений слова среди всех вхождений слов в данном документе, или же его TF-IDF [20]. Сформировав вектора признаков для документов, делается «наивное» предположение о том, что все эти признаки независимы внутри класса. Следовательно, условную вероятность можно представить в виде произведения условных вероятностей вида :
Осталось вычислить вероятности классов и условные вероятности в равенстве (3). Первые вычисляются по формуле: - это просто доля документов в обучающей выборке, принадлежащих классу . Для подсчёта условных вероятностей применяется аддитивное сглаживание (так называемое сглаживание Лапласа):
где в числителе - есть число документов, принадлежащих к классу , в которых встретилось слово, соответствующее признаку , а в знаменателе - есть сумма всех слов из признакового пространства, встречающихся в документах класса . -- размерность признакового пространства, а -- параметр сглаживания.
Мы как бы искусственно добавляем к частотам появления каждого «токена» параметр , что позволяет делать предикт на данных, в тексте которых встречаются слова, которых нет в обучающей выборке. В противном случае для неизвестного слова мы бы получили , и, соответственно, вероятность для всех классов равнялась бы нулю, что, очевидно, не всегда верно. Сглаживание Лапласа позволяет приписать к неизвестным словам некоторую весьма маленькую вероятность и тем самым определить текст в какой-то класс.
При большой размерности признакового пространства перемножается большое количество маленьких дробей, в связи с чем может наблюдаться потеря точности предсказаний классификатора. Для её решения можно в выражении (3) взять логарифм от произведения вероятностей, при этом параметры максимума не изменятся:
1.1.2 Логистическая регрессия
В простейшем случае бинарной классификации, т.е. когда (), логистическая регрессия моделирует вероятность в выражении (1) как вероятность принадлежности объекта к положительному классу с помощью сигмоидального преобразования скалярного произведения вектора признаков и вектора весов(для более компактной записи используем нотацию, при которой к признаковому описанию объектов добавляется фиктивный признак, играющий роль свободного коэффициента):
Обучается модель достаточно просто. Во-первых, нетрудно заметить, что для обоих классов верно:
Далее максимизируется правдоподобие выборки в предположении, что объекты в выборке независимы и одинаково распределены:
где - размер выборки . Затем максимизируется логарифм данного выражения, подставляются значения вероятностей (4). В итоге приходим к задаче минимизации следующей функции потерь:
В случае нескольких классов вероятность в выражении (1) будет вычисляться с помощью функции Softmax по формуле:
где -- веса регрессии, соответствующие классу . Эти веса подбираются, как и в бинарном случае, методом максимального правдоподобия, здесь мы приходим к более сложному виду функции потерь:
где сумма берется по всем парам объект-ответ из обучающей выборки: -- -ый объект из обучающей выборки, -- соответствующий ему класс.
Линейные модели склонны к переобучению при работе с признаковыми пространствами большой размерности, что зачастую выражается в больших значениях весовых коэффициентов. Отсюда вытекает идея добавления к функционалу качества так называемого / - регуляризатора, «штрафующего» модель за излишне большие веса. К функционалу потерь прибавляется величина или , т.е. или -норма вектора весов, умноженная на - коэффициент регуляризации. Чем больше гиперпараметр , тем больше штраф и, интуитивно, тем «проще» модель.
1.2 Нейронные сети
Нередко для задачи классификации текстов используются различные типы нейронных сетей. Они достаточно сложны, но позволяют строить «state of art» модели, способные обнаруживать нетривиальные зависимости слов в тексте, тем самым обеспечивая наиболее высокое качество предсказаний. Рассмотрим некоторые их типы.
1.2.1 Рекуррентные нейронные сети (RNN)
Недостатком рассмотренных ранее линейных методов применительно к работе с текстами, является то, что в них не учитывается порядок слов в тексте, различные связи слов друг с другом. Эту проблему можно решить, применив рекуррентные нейронные сети, нашедшие широкое применение в задачах, связанных с обработкой так называемой «sequentional data» - видео, аудио, временных рядов и, конечно, текста [18].