Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
thesis3 (1).pdf
Скачиваний:
64
Добавлен:
12.06.2018
Размер:
747.63 Кб
Скачать

3.2.3Выводы

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

3.3Нейронные сети в задачах обработки текстов

В этой главе будут рассмотрены некоторые архитектуры многослойных нейронных сетей для решения задач обработки текстов на естественном языке. Они нацелены на получение так называемых распределенных векторных представлений слов (distributed vector space word representations) на естественном языке, достоинством которых является существенно меньшая размерность по сравнению с количеством слов в языке.

3.3.1Статистические языковые модели. Проклятие размерности

Основной проблемой, делающей сложной моделирование естественного языка, является так называемое проклятие размерности. Это становится понятным, когда мы хотим промоделировать совместное распределение большого количества дискретных случайных величин, например, слов в предложении. В статистической языковой модели рассматривается вероятность следующего слова wT при данных всех предыдущих w1; :::; wT 1, которую можно также трактовать как совместное распределение w1; :::; wT :

T

Y

P (w1; :::; wT ) = P (wtjw1; :::; wt 1)

i=1

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

P (wtjw1; :::; wt 1) P (wtjwt n+1; :::; wt 1)

13

Модель n-грамм давно пользуется популярностью и показывает неплохие результаты. Тем не менее, она обладает тремя недостатками. Во-первых, она для определенного слова не учитывает слова, отстоящие назад дальше, чем на 1-2 позиции (4-граммы и 5-граммы иногда находят применение, но только в совокупности с некоторыми техниками сглаживания, например, back-o [5], при этом результаты редко значительно превосходят результаты с использованием n-грамм меньшего размера). Во-вторых, она не учитывает похожесть слов по значению. Кроме того, ввиду большого числа возможных n-грамм для достижения приемлемых результатов приходится иметь дело с большими размерностями признаков при обучении. Распределенные векторные представления слов призваны бороться с этими проблемами и подразумевают

1.Сопоставление каждому слову распределенного вектора признаков слова (distrubuted word feature vector) – вещественнозначного вектора;

2.Моделирование совместного распределения последовательностей слов в терминах векторов, соответствующих словам этих последовательностей;

3.Одновременную настройку векторов и параметров совместного распределения.

3.3.2Нейросетевая языковая модель Y. Bengio

В [6] была предложена специальная архитектура многослойной нейронной сети для получения распределенного векторного представления слов. Требуется построить хорошую модель f(wt n+1; :::; wt) = P (wtjw1; :::; wt 1) в том смысле, что она дает высокое значение правдоподобия. На модель накладываются два ограничения: во-первых, f > 0

(применение сглаживания), во-вторых, для любых w1; :::; wt 1 выполнено

jV j

X

f(wt n+1; :::; wt 1; i) = 1:

i=1

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

Разобьем вычисление функции f(wt n+1; :::; wt) на два этапа:

1.Отображение C каждого элемента i из V на вектор C(i) 2 Rm. Этот вектор и будет являться распределенным вектором слова i. C можно считать матрицей

14

с jV j строками и m столбцами, тогда отображение C(i) можно трактовать как

выбор строки с номером i. В строках C, таким образом, хранятся распределенные

векторы всех слов словаря;

2.Вектор-функция g, связывающая входную последовательность C(wt n+1); :::; C(wt 1)

распределенных векторов слов контекста wt n+1; :::; wt 1 с модельной условной вероятностью wt:

f(wt n+1; :::; wt 1; i) = g(C(wt n+1); :::; C(wt 1); i):

С каждым из этапов связаны настраиваемые параметры. Все элементы матрицы C являются свободными параметрами. Можно реализовать C как отдельный слой нейронной сети, если считать, что на вход сети подаются слова в кодировке 1-of-V . Функция g является довольно сложной, и мы далее разберемся, что она подразумевает. Она также может быть реализована с помощью нескольких слоев нейронной сети со свободными параметрами !. В итоге получаем совокупность настраиваемых параметров сети

= (C; !).

Обучение заключается в поиске , максимизирующего логарифм правдоподобия обучающей выборки:

L =

1

Xt

log f(wt n+1; :::; wt; ) + R( );

T

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

Теперь попробуем понять, что подразумевает функция g. В соответствии с условием f > 0 в качестве последнего слоя нейронной сети используется сглаживающий softmax-слой. Его задача – вычисление softmax-функции, которая является многомерным аналогом логистической функции. Это функция, принимающая вектор в качестве аргумента, значением которой является вектор той же размерности с положительными компонентами, дающими в сумме 1:

eywt

f(wt n+1; :::; wt) = Pi eyi ;

15

В нашем случае yi – условная логарифмическая вероятность (log probability) слова i, которая вычисляется следующим образом:

y = b + W x + U tanh(d + Hx);

где b – вектор свободных параметров (пороги последнего слоя сети), W – синаптические веса, соответствующие связям от первого слоя сети (матрицы C) к последнему, x –

конкатенация распределенных векторов C(wt n+1); :::; C(wt 1), U – синаптические веса, соответствующие связям от второго слоя сети к последнему, d – пороги второго слоя сети, H – синаптические веса, соответствующие связям от первого слоя сети к второму. Пороги первого слоя вполне естественно полагаются равными нулю. Соответствующая архитектура трехслойной нейронной сети выглядит так:

Рис. 3.2. Архитектура нейронной сети Y. Bengio

Если h – число нейронов второго (скрытого) слоя, то b – вектор размерности jV j,

U – матрица jV j h, d – вектор размерности h, H – матрица h (n 1)m. Итоговый набор настраиваемых параметров выглядит так: = (b; d; W; U; H; C), а настройка этих параметров осуществляется пошагово на основе градиентного правила

+ "@L@ ;

16

1+rt
"0

где " > 0 – скорость обучения (learning rate). Это происходит одновременно с построением функции L и ее производных. В [6] предлагается уменьшать " в процессе обучения по правилу "t = , где r > 0 – некоторая константа.

О качестве рассмотренной нейросетевой модели авторы [6] судили по значению пер-

плексии (геометрического среднего 1 ) на тестовых данных. Предложенная

P (wtjw1;:::;wt 1)

ими модель значительно превзошла модели n-грамм с различными видами сглаживания.

Рассмотрим, наконец, наиболее интересную нам архитектуру нейронных сетей для обработки текстов.

3.3.3Модели Continuous Bag-of-Words и Skip-gram. Инструмент word2vec

В [7] и [8] были предложены две нейросетевых языковых модели для получения распределенного векторного представления слов – Continuous Bag-of-Words и Skip-gram. Программный инструмент word2vec объединяет в себе реализации этих моделей. Основным преимуществом этих моделей являются существенно меньшие вычислительные затраты на обучение по сравнению со всеми ранее известными нейросетевыми языковыми моделями. Это достигается отчасти благодаря использованию иерархического softmax’а, основанного на представлении слов словаря в виде дерева Хаффмана, вместо полного softmax’а, использующегося в модели Y. Bengio и существенно замедляющего работу соответствующей нейронной сети.

Данные модели реализуются при помощи двухслойной либо трехслойной нейронной сети. Как и в модели Y. Bengio, распределенные векторные представления слов заключены в синаптических весах первого слоя сети. Обсудим сначала архитектуру сети для модели Continuous Bag-of-Words.

В этой модели слово wt предсказывается нейронной сетью по его контексту wt k, :::, wt 1, wt+1, :::, wt+k. Особенностью этой модели (как и модели Skip-gram, которую мы обсудим далее) является динамический размер окна: число k принимает равновероятные значения от 1 до некоторого N. Обучение заключается в максимизации целевой функции следующего вида:

X

L = log P (wtjwt k; :::; wt 1; wt+1; :::; wt+k):

t;k

Схема работы трехслойной нейронной сети, соответствующей этой модели, следующая. 17

Второй (скрытый) слой сети предназначен для усреднения распределенных векторов, соответствующих словам контекста. Число нейронов в нем равно размерности D распределенных векторов. Третий слой реализует иерархический softmax. Каждой нелистовой вершине дерева Хаффмана, построенного по словарю V , соответствует один нейрон третьего слоя с D синаптическими весами. Предсказание wt выполняется следующим образом. Пусть X – множество нейронов третьего слоя сети, соответствующих всем тем нелистовым вершинам дерева Хаффмана, которые оказываются на пути от корню к слову wt. Каждый нейрон из X производит скалярное умножение вектора своих синаптических весов на вектор выходных сигналов второго слоя (т.е. среднее по векторам контекста), а к результату применяет логистическую функцию. Совокупность выходных сигналов нейронов X wt (их количество равно длине кода Хаффмана слова wt) сравнивается с кодом Хаффмана слова wt. Обучение заключается в том, чтобы сделать их как можно ближе. Итак, получаем

Y

P (wtjwt k; :::; wt 1; wt+1; :::; wt+k) = jwti wti j;

i

где wti 2 f0; 1g – цифра, стоящая в позиции i в коде Хаффмана слова wt. После вы-

числения каждой wt происходит коррекция распределенных векторов слов контекста

i

(синаптических весов определенной области нейронов первого слоя), а также синаптических весов нейронов X в направлении возрастания данной условной вероятности.

В модели Skip-gram максимизируется целевая функция

XX

L =

log P (wjjwt):

t;k j2Contextk(t)

Соответствующая этой модели нейронная сеть является двухслойной. Второй слой реализует иерархический softmax. Кардинальное отличие от модели Continuous Bag-of- Words заключается в том, что слово wt предсказывается столько раз, сколько слов в его контексте, и каждый раз предсказывается на основе только одного из слов контекста. Снова введем множество X для wt (теперь оно включено во второй слой сети). Во время предсказания wt на основе wj каждый нейрон из X производит скалярное умножение вектора своих синаптических весов на распределенный вектор слова wj, к результату применяется логистическая функция. Таким образом,

Y

P (wtjwj) = jwti wti j;

i

18

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

Наконец, из формулы Байеса

P (AjB) = P (BjA)P (A)

P (B)

можно понять, что увеличение P (wtjwj) будет способствовать увеличению P (wjjwt). Скорость обучения (т.е. скорость коррекции синаптических весов) линейно умень-

шается в процессе обучения до нуля. Начальные значения синаптических весов первого слоя сети выбираются случайно из равномерного распределения на отрезке [ 21D ; 21D ].

Теперь обсудим вычислительную сложность обучения в соответствии с рассмотренными двумя моделями. Стоит сказать, что инструмент word2vec позволяет пользователю задать число эпох обучения. Обозначим его через E. Через T обозначим число слов в обучающих данных. Тогда для сложности обучения Continuous Bag-of- Words имеет место оценка Q1 = O(N D + D log2 jV j), для Skip-gram – оценка

Q2 = O(N D + N D log2 jV j). Обучение по модели Skip-gram является более затратным, однако, согласно [7], данная модель обычно дает лучшие результаты.

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

Выбрать модель Continuous Bag-of-Words или модель Skip-gram;

Задать размерность распределенных векторов, максимальный размер окна, число потоков (threads), число эпох обучения, начальную скорость обучения;

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

19

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]