Рисунок 22. Обучение сети с архитектурой типа BiLSTM+Свёрточный слой
Рисунок 23. Обучение сети с архитектурой типа BiGRU+Свёрточный слой
Ещё одним способом модификации модели в сторону её усложнения была ранее рассмотренная (см. пункт 1.2.5) модель «Внимания». Теперь уже выходы рекуррентного слоя посылаются в слой «Attention» с функцией активации Softmax. Необходимость в наличии слоя max-пулинга при этом пропадает, и мы сразу переходим в полносвязный слой с 70 нейронами. Стоит отметить, что модель внимания не реализована в keras, поэтому код для слоя был позаимствован у исследователей проекта DeepMoji [37], который они публично публикуют. В остальном же модель архитектурно очень похожа на построенную изначально LSTM-сеть. Дропаут внутри рекуррентного блока было решено не использовать, вместо этого перед рекуррентным слоем был добавлен целый новый слой дропаута.
Хотя модель со слоем «внимания» и дополнительным слоем дропаута не переобучалась, тем не менее ей стало не хватать accuracy вне зависимости от перебираемых гиперпараметров. Поэтому было решено увеличить признаковое пространство за счёт кодирования большего числа слов в комментариях (будем меньше ошибаться на длинных текстах) и использования большего корпуса векторов из GloVe размерности 300(сможем придать разумную GloVe-форму большему числу токенов). Гиперпараметры: batch_size = 128, число эпох = 40. Результат прохода модели можно увидеть на рисунке 24.
Рисунок 23. Обучение сети с архитектурой типа BiLSTM+модель «Внимания»
2.4 Анализ результатов и выводы
В таблице 1 приведены метрики качества по разработанным моделям:
Таблица 1. Результаты обучения моделей
Выводы касательно практической части исследования:
· Традиционно популярные в задачах классификации линейные методы машинного обучения оказались неэффективны при решении поставленной задачи в силу того, что они основаны на модели мешка слов. Значения TF-IDF-признаков для этих моделей долго рассчитываются CPU и крайне малы, ведь длина комментариев в среднем невелика: 30-40 символов, одни и те же слова встречаются редко. Поэтому признаковое пространство принимает вид очень разреженной матрицы, что сильно снижает качество модели.
· Первым делом приходящие на ум Baseline-решения в виде архитектуры BiLSTM, BiGRU - т.е. простые модели глубинного обучения, относительно быстро обучающиеся на векторных представлениях слов GloVe маленькой длины, продемонстрировали очень высокие результаты (при этом у моделей с архитектурой LSTM практически всегда качество чуть выше за счёт большего числа параметров, принимающих участие в обучении). С их помощью удаётся избегать проблемы «затухающих» градиентов; «замечать» зависимости слов, расположенных на большом расстоянии друг от друга; учитывать контекст слова с двух сторон, а также его семантику.
· Добавление свёрточного слоя, как ни странно, снизило качество baseline-моделей. Возможно, это связано с тем, что для baseline-моделей извлечение некой общей информации из комментариев посредством операции свёртки по-просту не понадобилось, т.к. эти baseline-модели обучались на коротких текстах. Добавление ещё одного слоя, учитывающего общие закономерности текстов, могло стать излишним (можно сказать «overkill»).
· Модель «Внимания» действительно хорошо показала себя применительно к поставленной задаче. Особенно после увеличения числа возможных слов (в одном комментарии) для кодирования. После увеличения размерности входного вектора в модель стали попадать длинные комментарии, внутри которых слой «Внимания» определял наиболее важные слова и маленькие участки агрессии, увеличивая тем самым качество моделей.
· Лучший результат по метрике ROC-AUC показала наиболее сложная из построенных моделей - сочетание двухсторонней LSTM рекуррентной нейронной сети с добавлением слоя «Внимание» и использованием векторов модели GloVe с большей размерностью (300). Минусом этой модели является крайне высокий срок обучения, требующий больших вычислительных мощностей.
Заключение
В данной работе было проведено исследование существующих техник машинного обучения для решения задачи анализа тональности текстов небольшой длины, как с теоретической точки зрения, так и на корпусе реальных данных. Поставленная в работе задача разработки наиболее эффективного пайплайна решения оказалась нетривиальной в силу характерных особенностей коротких текстов. К ним можно отнести частую встречаемость грамматических ошибок, сарказма и иронии, к тому же токсичность может проявляться не только за счёт непристойных выражений, но и в более деликатной форме. В практической части работы было показано, что линейные методы, основанные на модели мешка слов, в силу небольшой длины комментариев, не могут обеспечить высокое качество классификации. По той же причине дополнительные свёрточные слои не дают прироста качества базовым моделям, основанным на рекуррентных нейронных сетях. Несмотря на высокую прогнозную точность базовых моделей на основе архитектур LSTM и GRU, их метрики удалось ещё улучшить за счёт включения в модель слоя «Внимание», выделяющего наиболее важные для модели слова в тексте, а также за счёт использования векторов модели GloVe с большей размерностью.
В дальнейшем хотелось бы сравнить качество построенных моделей по различным векторным представлениям слов (FastText, word2vec, GloVe), а также провести процедуру ансамблинга. Безусловно, хорошей апробацией для разработанных архитектур моделей и общего пайплайна решения может стать их применение на корпусе русскоязычных текстов из социальных медиа, после чего, в случае успеха, можно будет попытаться автоматически детектировать наиболее токсичные сообщества, а также чрезмерно агрессивно настроенных пользователей в сети.