АНАЛИЗ ТОНАЛЬНОСТИ ТЕКСТА В СОЦИАЛЬНЫХ МЕДИА С ИСПОЛЬЗОВАНИЕМ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

АНАЛИЗ ТОНАЛЬНОСТИ ТЕКСТА В СОЦИАЛЬНЫХ МЕДИА С ИСПОЛЬЗОВАНИЕМ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

Поскольку люди публикуют большое количество разнообразной текстовой информации в Интернете, то очень сложно отличить, полезна ли та или иная информация. В результате, важно разработать языковые модели для извлечения ценной информации. В частности, для отзывов о продуктах, о фильмах и различных мультимедиа может помочь коммерсантам и маркетологам эффективно определять стратегию продаж. Однако, традиционные методы очень ограниченны, поскольку они не могут своевременно и эффективно обработать огромные массивы данных. Следовательно, создание эффективной системы анализа настроений становится все более важной задачей. Поэтому нам нужны языковые модели, если мы хотим анализировать тональность текста, а RNN [21] - хорошая модель.

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

В то время как нейросети прямого распространения могут учитывать только фиксированную длину контекста для прогнозирования следующего слова, рекуррентные нейронные сети (RNN) [21] могут использовать все предыдущие слова. Более того, мы могли бы сказать, что RNN видит текст как сигнал, состоящий из слов. Долгая краткосрочная память (LSTM) - это иной тип структуры RNN. Эта структура позволяет обнаруживать как длинные, так и короткие шаблоны в данных, а также устраняет проблему исчезновения градиента.

При изучении анализа текстовых настроений последовательная связь между словами имеет решающее значение. Mikolov [1] предложил языковую модель, известную как «Рекуррентная нейронная сеть» (RNN), которая общепризнанно считается подходящей для обработки данных текстовой последовательности. RNN состоит из трех слоев, которые представляют собой слой ввода данных, скрытый слой и слой вывода данных. В отличии от сетей с прямой связью, нейроны в рекуррентных нейросетях имеют возможность обмениваться информацией между собой. При такой структуре скрытый слой успешно сохраняет всю информацию о предыдущих словах, что улучшает производительность идентификации последовательных отношений между словами [1]. Таким образом, RNN представляет собой сеть, которая содержит циклы.

Долгая краткосрочная память (LSTM) [13], [14] является одной из архитектур RNN и показывает хорошие результаты при обучении временного ряда, поскольку LSTM поддерживает контекстную информацию, а также временное изменение событий. В настоящее время сеть LSTM является наиболее широко используемой, так как она заменяет узел RNN на скрытый слой с ячейкой памяти LSTM, которая предназначена для сохранения информации об истории текста. LSTM использует три входа для управления: входной затвор, затвор забывания и затвор выхода соответственно. Ячейка памяти и три затвора предназначены для того, чтобы LSTM мог читать, сохранять и обновлять информацию о своем состоянии.


    1. Нейронные сети и рекуррентные нейронные сети (RNN)

  1. Модели искусственных нейронных сетей

Искусственные нейронные сети (ANN) представляют собой математическую модель, которая используется для имитации возможности обработки информации человеческой нервной системой, и она широко распространена в проблеме классификации образов. Примером простейшей ANN является сети, построенные на перцептронах. Данные поступают на входной уровень, затем обрабатываются перцептроном, который добавляет собственный вес и обработанные данные передаются на выходной уровень. Но возможности сети, построенной на базе перцептронов весьма ограниченны. Это решается путем увеличения слоев и добавления «свертки», которая бы дробила входные данные на части различных масштабов. Выполнив данные преобразования, мы получаем сеть, построенную на базе многослойного перцептрона (MLP) [2]. Hornic [3] доказал, что MLP с большим количеством скрытых слоев может аппроксимировать любую непрерывную функцию с произвольной точностью. Именно по этой причине MLP также называется аппроксимацией универсальных функций. Но, что у простейшего перцептрона, что у сверточной нейросети у них есть один серьезный недостаток: входные и выходные данные имеют заранее фиксированную длину. Например, изображение размером 10*10 или последовательность длинной в 10 бит. В принципе, это не играет большой роли, если речь идет о тех же изображениях или последовательности слов. Однако, для обработки текста или музыки такая нейросеть не подходит.

В отличие от нейросетей с прямым распространением [4], типичная RNN [5] используется для последовательного моделирования с помощью скрытых соединений. Эти скрытые соединения позволяют нейронам скрытого слоя использовать «состояния» контекстной информации из предыдущих шагов. Пример простейшей RNN показан на рисунке 1. RNN по сути представляет из себя циклически замкнутую сеть. В правой части рисунка показана развернутая рекуррентная сеть, где каждый скрытый узел представляет состояние на временном шаге. Такую RNN также называют моделью с кратковременной памятью, т.к. входы перезаписывают содержимое скрытого слоя. В общем, эта задача называется проблемой исчезающего градиента [6], [7].

Было предложено много разновидностей RNN, такие как сеть Элмана [8] и сеть Иордана [9].

Мы можем формализовать взаимодействие скрытых состояний и выход RNN с помощью следующей системы уравнений.

Если является последовательностью входных данных, это скрытые состояния, это последовательность выходных данных. Где t = от 1 до T.

Приведенные ниже уравнения описывают принцип работы простейшей RNN

(1)

(2)

Где представляет веса входного слоя, представляет веса скрытых слоев, представляет веса выходного слоя, скрытое смещение и выходное смещение.

Рисунок 1 – Структура RNN

  1.  
    1. BIDIRECTIONAL RNN

Основная идея двунаправленных рекуррентных нейронных сетей (BRNNs) [10] состоит в том, что эти сети используют данные не только из прошлого, но и из будущего. Например, для угадывания слов, когда нейросети подается определенная буква из заранее известного слова. Такая нейросеть имеет два отдельных скрытых слоя с прямыми и обратными состояниями, которые вычисляют контекстуальную информацию путем итерации через t = от 1 до T в прямом (положительном направлении) и t = от T до 1 в обратном (отрицательном направлении). Прямое и обратное скрытые состояния вычисляются и объединяются с использованием следующих уравнений:

(3)

(4)

(5)

Где и представляет прямые и обратные состояния от скрытого слоя с соединениями в прямом и обратном направлениях соответственно. и представляет веса для прямого и обратного направлений соответственно. Выход получается суммированием параметризованных скрытых состояний для каждого временного шага.

BRNN использовались в задачах предсказания структуры белка (PSP) [11] и распознавания речи [12]. Пример простейшей BRNN представлен на рисунке 2.

Рисунок 2 – Структура BRNN

  1.  
    1. LSTM Network

Архитектура Long Short Term Memory была разработана [13], [14], [15] путем анализа ошибок в существующих RNN. Блоки LSTM также решили проблемы с исчезновением градиента [16] при обучении рекуррентной нейронной сети.

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

Активация скрытых уровней в блоке памяти рассчитываются с использованием следующих уравнений [15]:

Во-первых, необходимо определить, какую информацию следует удалить из ячейки. Это решение принимается затвором забывания (forget gate). Он принимает на входе h(t-1) и x(t) и дает на выходе число от 0 до 1 для каждого значения в состоянии ячейки C(t-1). Единица значит – сохранить, а ноль – удалить.

(6)

Во-вторых, необходимо решить, какую новую информацию следует записать в состояние ячейки. Данная процедура выполняется в два этапа. На первом этапе входной затвор (input gate), решает, какие значения необходимо обновить. А на втором этапе tanh (гиперболический тангенс) создает вектор новых значений C(t), которые могут быть добавлены в состояние ячейки.

(7)

(8)

В-третьих, необходимо обновить предыдущее состояние ячейки C(t-1) до текущего состояния C(t). Для этого умножаем предыдущее состояние ячейки на f(t), «забывая» то, что ранее было решено «забыть». Затем прибавляем i(t) * С(t)‘ – новые значения, отмасштабированные соответствующим образом.

(9)

В-четвертых, необходимо определить, что отправить на выход. Выход будет представлять собой отфильтрованное состояние ячейки. Сначала sigmoid-слой решает, какие элементы состояния ячейки необходимо передать на выход. Затем состояние ячейки преобразуется с помощью tanh-слоя к значениям от -1 до 1 и умножается на выход sigmoid-слоя, чтобы вывести только то, что нужно.

(10)

(11)

За последние годы LSTM хорошо зарекомендовала себя в задаче распознавания рукописного текста [17].

Рисунок 3 - Блок памяти LSTM с одной ячейкой

  1.  
    1. Bidirectional LSTM (BLSTM)

Сочетая преимущества как двунаправленной RNN, так и LSTM, мы можем использовать долгосрочные контекстные зависимости в прошлом, а также будущие временные шаги при выполнении последовательного моделирования. Пример двунаправленной LSTM (BLSTM)с тремя временными шагами (t-1, t, t+1) представлен на рисунке 4.

Ввод данных подается как на прямой, так и на обратный LSTM-уровень. Выходной уровень или следующий скрытый слой (состоящий из прямых и обратных слоев LSTM) получает вход, соединяя прямые и обратные слои LSTM. Между прямыми и обратными слоями нет скрытых соединений. Уравнение для выхода yt аналогично функции двунаправленного RNN.

Рисунок 4 - Блок памяти LSTM с одной ячейкой


    1. Методика проведения эксперимента

  1. Эксперименты и результаты

Для разработки моделей был использован язык программирования python с использованием фреймворка Keras [19] в сочетании с TensorFlow [20]. Выбор был сделан именно в пользу этой связки т.к. они предоставляют расширенные возможности вычислений как непосредственно на центральном процессоре, так и на графическом.

В процессе работы изменялись следующие гиперпараметры нейросети:

  1. Число эпох обучения

  2. Количество нейронов нейросети

  1.  
    1. Экспериментальный набор данных

Набор данных для нашего эксперимента состоит из 1000 отзывов, отмеченных как положительные и отрицательные. Отзывы получены из социальной сети «Вконтакте». Набор данных представлен в виде файла с разделителями (.CSV). Пример содержимого файла представлен в таблице 1.

Таблица 1 – Пример содержания CSV файла с отзывами

Тональность

Текст

Positive

Открыли филиал в Питере, принёс им небольшой вклад. Персонал вежливый и любезный. Рекомендую.

Positive

23 июня 2015 г. мною в Альфа банке получено одобрение рефинансирования по моей кредитной карте, о чем я получила смс- сообщение. Но при запросе нового графика платежей консультант банка получила ответ об отказе, т.к. якобы со мной не могли связаться. Со мной связывались 150 раз в день только консультанты из отдела взысканий и ни один из них не мог мне ответить по вопросам о рефинансировании. Они только удивлялись и спрашивали: Вы уверены, что вы подали заявление на рефинансирование? Хотелось ответить нет, мне приснилось. Замечательное решение рефинансирования - вы сами виноваты. Хотя логичнее пойти навстречу клиенту и пересмотреть платеж, учитывая его возможности. Куда же обращаться - к президенту?!

Negative

Оформил кредитную карту. Это уже далеко не первая кредитка, однако первый раз в жизни сотрудники банка настолько тщательно проверяли все указанные мною контакты. Позвонили на работу, позвонили представителю (маме), да и мне лично, дабы повторно ответить на те же вопросы, которые я заполнял на сайте. Удивился конечно столь серьезной проверке (сумма кредита была указана практически минимальная - нужна была именно карта банка). На следующий день перезвонил сотрудник банка, который сказал, что кредит мне был одобрен и оговорили дату доставки карты курьером. Буквально через час перезвонил сотрудник компании Альфа Капитал, который очень настойчиво хотел со мной встретиться. Был немного занят, попросил перезвонить. Перезвонили, я отказался встречаться. С тех пор ни сотрудники банка, ни сотрудники Альфа Капитала больше не звонили. Срок получения карты истёк уже более недели назад. Если в оформлении карты было отказано - не проблема, но сообщить-то об этом нужно. В общем, Альфу теперь буду обходить стороной.

Negative

Банк тестирует свое оборудование на клиентах. Попытался пополнить счет через банкомат на Профсоюзной - после внесения денег банкомат сломался. В результате средств на карте нет, разбирательство 7 дней. Сотрудники отделения отказываются составлять письменные претензии. При этом менеджер сообщил, что проблема с банкоматом известная и повторяющаяся...

  1.  
    1. Используемые модели нейросетей для анализа данных

Для оценки точности и скорости работы мы будем использовать три вида LSTM сетей: классическую модель LSTM, LSTM with dropout и BLSTM.

В разделе “Модели нейросетей” мы подробно описали классическую и двунаправленную LSTM сеть.

Рекуррентные нейронные сети, такие как LSTM, как правило, имеют проблему переобучения. Для решения этой проблемы мы применяем отсечку (dropout). Отсечка может быть внедрена между слоями с использованием слоя Dropouts Keras. Такая сеть будет называться LSTM with dropout.

  1.  
    1. Обработка данных

Мы применяем как классическую LSTM, LSTM с отсечкой (dropout), так и двунаправленную LSTM (BLSTM). Результаты анализа настроений показаны в следующих таблицах.

В процессе работы нейросети набор данных разбивается на:

  1. Обучающую выборку из 800 записей

  2. Тренировочную выборку из 200 записей.

В качестве алгоритма оптимизации был выбран алгоритм ADAM [18].

В качестве функции потерь была выбрана Categorical crossentropy.

В качестве метрики оценки качества модели была выбрана Accuracy.

Перечисленные выше параметры едины для всех моделей и в процессе эксперимента не изменялись.

Количество эпох обучения 2.

На первоначальном этапе попробуем подобрать оптимальные гиперпараметры для нейросети.

Результаты моделирования для различных архитектур представлены в таблице 1. Изменяемые гиперпараметры нейросети кодируются следующим образом: количество нейронов скрытого слоя_количество нейронов входного слоя.

Таблица 1 – Сравнение результатов работы различных моделей LSTM

 

LSTM

LSTM (Dropout)

BLSTM

 

Точность для обучающей выборки

Точность для тестовой выборки

Точность для обучающей выборки

Точность для тестовой выборки

Точность для обучающей выборки

Точность для тестовой выборки

10

0.70

0.61

0.76

0.69

0.73

0.68

50

0.76

0.72

0.61

0.60

0.82

0.73

100

0.74

0.73

0.59

0.59

0.72

0.72

10_20

0.75

0.68

0.75

0.67

0.74

0.65

50_40

0.81

0.79

0.74

0.70

0.83

0.79

100_80

0.87

0.83

0.89

0.84

0.86

0.81

Таким образом, проведенное моделирование позволяет сделать следующие выводы:

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

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

В результате, было принято решение изучить влияние на нейросеть такого параметра, как количество эпох обучения. Исследование будем проводить на архитектурах, которые кодируются как: 50, 10_20, 50_40.

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

Изменялись только количество эпох обучения.

Результаты моделирования представлены в таблице 2.

Кодирование записей выполняется следующим образом: количество нейронов скрытого слоя_количество нейронов входного слоя_количество эпох обучения.

Таблица 2 – Влияние количества эпох обучения на точность работы моделей LSTM

 

LSTM

LSTM (Dropout)

BLSTM

 

Точность для обучающей выборки

Точность для тестовой выборки

Точность для обучающей выборки

Точность для тестовой выборки

Точность для обучающей выборки

Точность для тестовой выборки

50_5

0.89

0.84

0.89

0.84

0.90

0.86

50_10

0.97

0.88

0.93

0.87

0.94

0.85

50_20

0.99

0.85

0.97

0.83

0.96

0.83

10_20_5

0.91

0.85

0.87

0.81

0.81

0.80

10_20_10

0.91

0.84

0.93

0.86

0.93

0.87

10_20_20

0.99

0.89

0.98

0.84

0.98

0.85

50_40_5

0.93

0.88

0.89

0.85

0.91

0.84

50_40_10

0.98

0.86

0.95

0.83

0.96

0.86

50_40_20

1.00

0.89

0.96

0.82

0.99

0.84

Обобщим результаты эксперимента:

  1. Увеличение количество эпох обучения ведет к переобучению модели с последующим ухудшением результата для тестовой выборки.

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

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

  1. LSTM 50_40_5 – 0.88

  2. LSTM (Dropout) 50_10 – 0.87

  3. BLSTM 10_20_10 – 0.87

Теперь проведем финальное сравнение работы отобранных моделей.

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

Таблица 3 – Классификация результатов моделей LSTM

 

LSTM

LSTM (Dropout)

BLSTM

  1. Точность:

Положительных, %

86.45833333333334

81.25

85.41666666666666

Отрицательных, %

87.2340425531915

88.29787234042553

86.17021276595744

  1. Количество:

Положительных

96

96

96

Отрицательных

94

94

94

  1. Классификация:

Положительных

83 из них 13 негативных

78 из них 18 негативных

82 из них 14 негативных

Отрицательных

82 из них 12 положительных

83 из них 11 положительных

81 из них 13 положительных

Таким образом, наиболее эффективно в задаче анализа тональности отзывов эффективно работает модель искусственной нейронной сети, построенная на архитектуре LSTM.

  1. Выводы

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

Данная модель имеет следующие параметры:

  • Алгоритм оптимизации ADAM

  • Функция потерь - Categorical crossentropy

  • Количество эпох обучения – 5

  • Число нейронов входного слоя – 40

  • Число нейронов скрытого слоя – 50

  • Число нейронов выходного слоя – 2

Данная модель имеет наилучший результат из рассматриваемых.

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

  1. Список литературы

[1] Graves A., Supervised Sequence Labelling with Recurrent Neural Networks, Studies in Computational Intelligence, pages 385-401, 2011.

[2] Rumelhart, Hinton G. E. and Williams R. J., Learning Internal Representations by Error Propagation, pages 318-362. MIT Press, 1986.

[3] Hornik K., Stinchcombe M., and White H., Multilayer Feedforward Networks are Universal Approximators, Neural Networks, 1989, 2, pp. 359-366.

[4] Bishop C. M., Neural networks for pattern recognition, Oxford university press, 1995.

[5] Graves A., Mohamed A., and Hinton G., Speech recognition with deep recurrent neural networks, in Acoustics, speech and signal processing (icassp), 2013 IEEE international conference on, pp. 6645–6649, IEEE, 2013.

[6] Hochreiter. Unrersuchungen zu Dynamischen Neuronalen Netzen. PhD thesis, Institut fur Informatik, Technische Universitat Munchen, 1991.

[7] Hochreiter S., Bengio Y., Frasconi P., and Schmidhuber J. (2001). Gradient flow in recurrent nets: the difficulty of learning long-term dependencies. In Kremer, S. C. and Kolen, J. F., editors, A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press.

[8] Elman J. L., Finding Structure in Time. Cognitive Science, 1990 14:179–211.

[9] Jordan M. I., Attractor dynamics and parallelism in a connectionist sequential machine, 1990, pages 112–127. IEEE Press.

[10] Schuster M., and Paliwal K. K., (1997). Bidirectional recurrent neural networks. IEEE Transactions on Signal Processing, 45:2673–2681.

[11] Baldi P., Brunak S., Frasconi P., Pollastri G., and Soda G. (2001). Bidirectional dynamics for protein secondary structure prediction. Lecture Notes in Computer Science, 1828:80–104.

[12] Fukada T., Schuster M., and Sagisaka Y. (1999). Phoneme boundary estimation using bidirectional recurrent neural networks and its applications. Systems and Computers in Japan, 30(4):20–30.

[13] Hochreiter S., and Schmidhuber J., (1997). Long Short-Term Memory. Neural Computation, 9(8):1735–1780.

[14] Gers F., Schraudolph N., and Schmidhuber J., (2002). Learning precise timing with LSTM recurrent networks. Journal of Machine Learning Research, 3:115–143.

[15] Хабрахабр. LSTM – сети долгой краткосрочной памяти URL: https://habrahabr.ru/company/wunderfund/blog/331310/ 10.11.2017

[16] Bengio Y., Simard P., and Frasconi P., Learning long-term dependencies with gradient descent is difficult, IEEE transactions on neural networks 5(2), pp. 157–166, 1994.

[17] Graves A., Liwicki M., Bunke H., Schmidhuber J., and Fern´andez S., “Unconstrained on-line handwriting recognition with recurrent neural networks,” in Advances in Neural Information Processing Systems, 2008, pp. 577–584.

[18] Kingma D. P., Lei Ba J. Adam: a method for stochastic optimization. 12.12.2017 https://arxiv.org/pdf/1412.6980.pdf 10.11.2017

[19] Keras. URL: https://keras.io/ 10.11.2017

[20] TensorFlow. URL: https://www.tensorflow.org/ 10.11.2017

[21] R. J. Williams and D. Zipser, “A learning algorithm for continually running fully recurrent neural networks,”Neural computation 1(2), pp. 270–280, 1989.

Просмотров работы: 443