Что такое анализ настроений?

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

В чем именно заключается задача?

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

Начав с менее эффективных подходов, основанных на правилах, мы перешли к автоматизированным методам, основанным на машинном обучении. Давайте посмотрим на три популярных подхода, которые используют исследователи:

Модель мешка слов

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

В сочетании с наивно-байесовским классификатором или классификатором SVM эта модель может считаться серьезной базой. Что ж, может быть, если бы это были 80-е…

Использование RNN

Изобретение RNN стало важной вехой в NLP. Теперь у нас есть модель, способная учитывать относительный порядок слов и понимать долгосрочные зависимости.

Рекуррентные нейронные сети (RNN) - это подмножество нейронных сетей, в которых выходные данные предыдущего шага используются в качестве входных данных для текущего шага.

Для классификации нам не нужно выводить значение после каждого слова ввода; вместо этого нам нужно понять настроение после прочтения всего предложения.

Мы можем складывать несколько слоев этих ячеек RNN вместе со слоями плотно связанных слоев, чтобы достичь самых современных результатов.

Что ж, это была ложь; он используется для получения самых современных результатов. Уже нет.

Внимание и архитектура преобразователя

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

Затем, в 2017 году, была опубликована статья «Все, что вам нужно». Это ввело понятие «самовнимание», открывшее путь для улучшений в области НЛП за последние три года.

С точки зрения непрофессионала, внимание позволяет модели хорошо… уделять «внимание» важным частям предложения без проблем, даже если они находятся далеко.

Комбинируя «слои предельного внимания» с «слоями нейронной сети с прямой связью» и складывая их довольно сложными способами, мы получаем Трансформеры.

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

Трансформатор в действии

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

Вы можете увидеть, как модель правильно обратила внимание при выводе «Европейская экономическая зона». Во французском языке порядок этих слов обратный («européenne économique zone») по сравнению с английским. Все остальные слова в предложении расположены в аналогичном порядке.

Как обучаются Трансформеры?

Модели на основе преобразователя обычно предварительно обучаются с помощью метода, называемого языковым моделированием. Короче говоря, он либо учится, предсказывая следующее слово по заданному набору слов (как в GPT 2), либо предсказывая заблокированный токен в предложении (как в BERT).

Преобразователи для классификации текста

Переходя к нашей задаче классификации текста, мы добавляем слой softmax (слой, используемый для мультиклассовой классификации) и, необязательно, несколько слоев с прямой связью перед ним. Продолжая обучение на нескольких тысячах примеров, относящихся к конкретным классификациям, модели трансформаторов с точной настройкой достигают невиданных ранее результатов!

Рассмотрим BERT, который использует только часть кодировщика исходной модели преобразователя, и после его модификации для классификации он выглядит примерно так:

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

Взгляд повнимательнее

Если вы ищете более глубокое понимание некоторых концепций, затронутых выше, вот несколько ресурсов, которые могут оказаться вам полезными!

RNN:
https://towardsdatascience.com/recurrent-neural-networks-rnn-explained-the-eli5-way-3956887e8b75
https: // machinelearningmaster .com / stacked-long-short-term-memory-networks /

Внимание:
https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/
https://www.analyticsvidhya.com/blog/2019/06/understanding-transformers-nlp-state-of-the-art-models/

Трансформеры:
http://jalammar.github.io/illustrated-transformer/

BERT:
http://jalammar.github.io/illustrated-bert/