TL;DR

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

Вложения слов

Традиционные методы встраивания на основе частоты для создания текстовых представлений, такие как TF-IDF и векторизация подсчета, создают разреженные представления, которые не отражают отношения между словами. Разреженные представления могут привести к очень многомерным пространствам, что затрудняет вычисление подобия. Вложения слов — это многомерные векторы, которые могут отображать семантические и синтаксические отношения между словами. Примером семантической связи между двумя словами является «учитель» и «ученик» или «стоп» и «идти». Примером синтаксической связи является умение начинать вопросы с вопросительного слова, например «Где собака?». или что прилагательные стоят перед такими существительными, как «синяя машина». Предварительно обученные встраивания слов, такие как Word2Vec и GLoVe, можно использовать вместо обучения слоя встраивания слов с помощью модели (Миколов, 2013 и Пеннингтон, 2014). Вложения слов предварительно обученных моделей можно обновлять или использовать как есть. В эксперименте с биткойнами, который я провел, не используется предварительно обученный слой встраивания.

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

Долгая кратковременная память (LSTM)

Нейронная сеть с долговременной кратковременной памятью (LSTM) — это тип рекуррентной нейронной сети (RNN), который можно использовать для моделирования поведения, зависящего от времени или последовательности, путем подачи выходных данных скрытого слоя на временном шаге t на вход того же слоя в t + 1. На рисунке ниже показана внутренняя работа отдельной скрытой ячейки в LSTM. Слой LSTM имеет столько скрытых ячеек, сколько временных шагов скрытого слоя. Входной вектор xt с размером f на временном шаге t подается в каждую скрытую ячейку. Вектор xt проходит через различные вентили в скрытой ячейке, и выводятся скрытое состояние ht и состояние ячейки ct. Этот итерационный процесс продолжается t раз с предыдущим скрытым состоянием ht-1, используемым в качестве входных данных вместе с xt+1 и ct-1 для каждого итерация.

Скрытая ячейка LSTM имеет различные функции ворот; входные ворота it, забытые ворота ft и выходные ворота ot. W и U — веса для ввода и предыдущего скрытого состояния, а b — смещение. Внутри каждой скрытой ячейки выполняются следующие вычисления:

Сверточная нейронная сеть (CNN)

Сверточная нейронная сеть (CNN) — это тип нейронной сети, который часто используется для задач компьютерного зрения, но может применяться и для различных других задач регрессии и классификации. Модели на основе CNN представляют собой нейронные сети с прямой связью, которые используют обратное распространение для оптимизации, как и другие нейронные сети. У них есть по крайней мере один сверточный слой, который не связан плотно, как стандартная нейронная сеть с прямой связью.

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

Рекомендации

Миколов, Томас, Кай Чен, Грег Коррадо и Джеффри Дин. Эффективная оценка представлений слов в векторном пространстве. arXiv.org, 2013. https://arxiv.org/abs/1301.3781.

Пеннингтон, Джеффри, Ричард Сочер и Кристофер Мэннинг. GloVe: глобальные векторы для представления слов., 2014 г. https://nlp.stanford.edu/pubs/glove.pdf.

Хохрайтер, Зепп и Юрген Шмидхубер. Долговременная кратковременная память. Нейронные вычисления 9, no. 8 (1 ноября 1997 г.): 1735–1780. https://doi.org/10.1162/neco.1997.9.8.1735.

Лекун, Янн, Йошуа Бенжио и Rm 4g332. нд Сверточные сети для изображений, речи и временных рядов. http://www.iro.umontreal.ca/~lisa/pointeurs/handbook-convo.pdf.