,
где - нормированные с помощью 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 |