Дипломная работа: Методы Transfer Learning для задачи семантического анализа

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

,

где - нормированные с помощью softmax веса скрытых слоёв, а - коэффициент, зависящий от задачи. Данные веса настраиваются при обучении модели.

2.5.1 Использование модели

Как и в случае с другими моделями, эффективнее всего использовать предобученный на большом объёме данных ELMo с последующим использованием полученных векторных представлений, например, в классификаторе. Например, на сайте института, выпустившего работу [21], представлены предобученные модели для нескольких языков. Помимо этого, на просторах сети Интернет можно найти модели для других языков, в частности, для русского [22].

2.6 Обзор текущих результатов в задаче семантического анализа

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

В первую очередь это датасет, состоящий из отзывов о фильмах - IMDb dataset [23]. В этом наборе данных содержится порядка 50 тысяч отзывов о фильмах, все они разделены на положительные и отрицательные. Текущий лучший результат на данном наборе - 95.4% точности, которые были получены в работе Universal Language Model Fine-tuning for Text Classification [24].

Другой известный набор данных - Stanford Sentiment Treebank [25]. Из него выделяется две задачи - классификация на два класса и на пять классов. Лучший результат на задаче бинарной классификации, который был получен в работе Multi-Task Deep Neural Networks for Natural Language Understanding [26] - 95.6%, а в задаче классификации на пять классов - 54.7%, полученные в работе Deep contextualized word representations [16], которая была рассмотрена выше.

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

III. ПРИМЕНЕНИЕ МОДЕЛЕЙ С ИСПОЛЬЗОВАНИЕМ TL К ЗАДАЧЕ СЕМАНТИЧЕСКОГО АНАЛИЗА

3.1 Постановка задачи

В рамках данной работы будет рассмотрена продуктовая задача семантического анализа упоминаний банка на открытых Интернет-ресурсах. Будут рассмотрены упоминания Тинькофф банка, который является одним из крупнейших банков России [27].

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

3.2 Описание доступных данных

Данные собираются из нескольких источников: социальные сети (Twitter, Facebook, VK), со специализированных сайтов (banki.ru, различные форумы, где обсуждается работа банков) с помощью закрытой системы YouScan [28] [29]. Эти данные загружаются в корпоративную копию YouScan, которая расположена во внутренней сети банка, и каждый день несколько десятков человек размечают эти упоминания на три тональности: «Позитивная», «Негативная», «Не определено». Таким образом, наиболее важные упоминания - это именно те, которые имеют окраску, отличную от «Не определено», поскольку именно на них сотрудникам банка нужно реагировать.

Данные имеют несколько ключевых особенностей:

· Данные очень разнородные и «грязные» - поскольку они собраны с источников, где используется разговорный язык, в текстах упоминаний встречается огромное количество грамматических ошибок, много нецензурной лексики, сарказма и иронии

· Примерно 88% всех упоминаний - это либо нейтральный текст, либо не имеющие какой-либо семантической окраски комментарии. Такие упоминания, по большому счёту, совершенно не важны для сотрудников банка и в данный момент никак не обрабатываются. Какой-либо ответ даётся только по негативным либо позитивным упоминаниям

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

На начальном этапе работы мне было доступно порядка 150 тысяч упоминаний, которые обладали следующими тональностями:

· 134 тысячи - Не определено

· 9 тысяч - Негативная

· 7 тысяч - Позитивная

Помимо прочего, доступны следующие поля:

· Дата и время комментария

· Источник комментария (соц. сеть, форум и т.п.)

· URL комментария

Примеры данных из датасета

Положительная тональность:

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

· «Смотри сам, у меня тинькоф уже 5.5 лет и норм»

· «Елена, как раз у Тинькова это выгодно, но не в других банках)»

· «Ура, по киношечке отдельная смс пришла о кешбеке. Так - намного удобнее!»

Тональность не определена:

· «Если платить со счёта отличного от RUB, USD, EUR, GBP то кэшбэка не будет.»

· «Александр, у меня дом и он в залоге у банка ( в ипотеке) по сути у меня больше и нет ни чего»

· «А в Тинькофф можно деньги без комиссии снять?»

Негативная тональность:

· «Я тоже не советуют, тоже брали там если в определённый день не платишь очень большой процент»

· «ВОТ УЖЕ ПЯТЬ ЛЕТ ДУРИТ ТИНЬКОФ БАНК НАРОД И ГРАБИТ ГРАЖДАН СССР, БЕЗ ЛИЦЕНЗИИ БЕЗ НА КРЕДИТНЫЕ ОПЕРАЦИИ.»

· «С такими процентами, потом почку продадите!»

· «@A1daron Одна из причин, по которой карта тинькофф стала резервной»

Орфография и пунктуация авторов сохранена.

3.3 Используемые метрики и модели

3.3.1 Использование SVM в качестве классификатора

В рамках данной работы во многих экспериментах в качестве классификатора используется SVM (Support Vector Machine). Реализация базовых классификаторов машинного обучения, таких как SVM, Random Forest, Naive Bayes и других, представлена в библиотеке sklearn [30]. Поскольку данная библиотека зарекомендовала себя в предыдущих работах, реализация SVM из неё и будет использоваться.

Прежде чем обучать SVM, для него необходимо подобрать параметры. В рамках данной работы будет использоваться RandomizedSearchCV из библиотеки sklearn. Он позволяет подобрать наилучшие параметры перебирая не всё доступное пространство параметров, а случайным образом выбирая некоторые. Это не даёт гарантии на то, что будут выбраны лучшие доступные параметры, однако ввиду большого размера датасета и долгого времени проверки каждого доступного значения параметра, такой подход в данном случае приемлем.

3.3.2 Подготовка выборки и подбор параметров

В каждом эксперименте доступная выборка разделяется на тренировочную и тестовую в процентном соотношении 70/30:

Наиболее подходящие параметры классификатора C и gamma подбираются следующим образом:

3.3.3 Используемые метрики

Для сравнения моделей будут использоваться метрики, описанные ниже.

· accuracy - точность классификатора. Показывает, насколько хорошо классификатор работает в целом, т.е. без учёта сбалансированности классов. Вычисляется следующим образом:

· precision - точность внутри класса. Отражает, насколько точно модель определяет каждый из классов. Вычисляется по формуле:

· recall - полнота системы. Для каждого класса показывает долю найденных элементов класса относительно общего количества элементов этого класса. Вычисляется по формуле:

· F-мера - метрика, являющаяся комбинацией точности и полноты. Вычисляется следующим образом:

· Помимо этого, в работе приведены значения micro и macro-метрик, которые вычисляются сразу для всех классов, а не для каждого:

3.4 Bi-Directional LSTM + Attention

В качестве базисной точки, было принято решение использовать архитектуру Bi-Directional LSTM + Attention [31]. Данная архитектура традиционно используется для задач классификации текстов [32], [33], однако обучать подобную нейронную сеть для получения хороших результатов необходимо с нуля.

Следует отметить, что для обучения подобной нейронной сети необходимо значительно больше данных, чем используется в дальнейших экспериментах, поэтому соотношение тренировочной и тестовой выборки в данном эксперименте - 90 и 10 процентов соответственно (против 70 и 30 в последующих моделях).

Ниже расположены графики зависимости точности на тестовой выборке и значения loss-функции от итерации. Максимальная точность, которую удалось получить - 44% на пятой итерации. Далее точность падает и держится на уровне 39%. Значение loss-функции уменьшается вплоть до 25 итерации, а затем остаётся примерно на одном уровне.

Рисунок 17. Графики зависимости значения loss-функции и точности от итерации модели Bi-Directional LSTM + Attention

Также ниже расположена таблица с основными метриками и матрица ошибок:

Таблица 1.

Результаты модели Bi-Directional LSTM + Attention

Метрики

Класс

precision

recall

F1-score

Не определено

0.41

0.49

0.45

Негативная

0.41

0.45

0.42

Позитивная

0.40

0.29

0.33

micro avg

0.41

0.41

0.41

macro avg

0.41

0.41

0.40

Рисунок 18. Матрица ошибок модели Bi-Directional LSTM + Attention

3.5 fastText + SVM

В качестве первой модели c применением TL было принято решение использовать векторное представление текста fastText [34] в совокупности с классификатором SVM.

fastText - это эмбеддинг, который каждому слову ставит в сопоставление числовой вектор фиксированной длины. Как и другие подобные подходы, такие как word2vec и GloVe, подобная модель предварительно обучается на большом количестве данных, а затем для фиксированного набора слов вычисляется значение эмбеддинга и такой набор выкладывается в общий доступ.

В рамках данного исследования использовалась модель из пакета deeppavlov [35], которая была обучена на постах, собранных в социальной сети Twitter. Было принято решение использовать данную модель, поскольку синтаксически и по стилю речи она наиболее подходит к датасету, используемому в текущей работе.

На кросс-валидации с разбиением на 5 подвыборок было получено среднее значение точности 63%. Ниже расположена таблица со значениями основных метрик:

Таблица 2. Результаты модели fastText + SVM

Метрики

Класс

precision

recall

F1-score

Не определено

0.72

0.57

0.64

Негативная

0.59

0.69

0.64

Позитивная

0.66

0.68

0.67

micro avg

0.65

0.65

0.65

macro avg

0.66

0.65

0.65

Как видно из таблицы, точнее всего модель определяет класс упоминаний «Не определено», однако из всех таких объектов было определено корректно только 57%. В остальном, никаких аномальных выбросов не наблюдается.

Ниже дополнительно расположена матрица ошибок:

Рисунок 19. Матрица ошибок модели fastText + SVM

3.6 fastText + NN

Следующий подход - вместо классификатора SVM использовать нейронную сеть. Нейронная сеть в данном случае имеет довольно простую архитектуру: два скрытых слоя на 100 и 50 нейронов соответственно, а также выходной слой на 3 нейрона. График точности на валидационной выборке и изменение значения loss-функции от итерации показаны на графиках:

Рисунок 20. Графики зависимости значения loss-функции и точности от итерации модели fastText + NN

Основные метрики представлены в таблице ниже:

Таблица 3. Результаты модели fastText + NN

Метрики

Класс

precision

recall

F1-score

Не определено

0.73

0.55

0.63

Негативная

0.57

0.68

0.62

Позитивная

0.64

0.68

0.66

micro avg

0.64

0.64

0.64

macro avg

0.65

0.64

0.64

Источник: https://otherreferats.allbest.ru/download/1179304/