Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads...

27
Московский Государственный Университет имени М.В.Ломоносова Факультет Вычислительной Математики и Кибернетики Кафедра Системного Программирования Курсовая работа Синтаксический анализатор текста на основе деревьев зависимостей с использованием нейронных сетей Автор: группа 327 Строев Вячеслав Игоревич Научный руководитель: канд. физ.-мат. наук Турдаков Денис Юрьевич Москва, 2017

Transcript of Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads...

Page 1: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Московский Государственный Университет имени М.В.ЛомоносоваФакультет Вычислительной Математики и Кибернетики

Кафедра Системного Программирования

Курсовая работа

Синтаксический анализатор текста на основе деревьевзависимостей с использованием нейронных сетей

Автор:группа 327

Строев Вячеслав Игоревич

Научный руководитель:канд. физ.-мат. наук

Турдаков Денис Юрьевич

Москва, 2017

Page 2: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Аннотация

Синтаксический анализатор текста на основе деревьевзависимостей с использованием нейронных сетей

Строев Вячеслав Игоревич

В данной работе исследуются подходы, используемые для синтаксического ана-

лиза текста на естественном языке. Проводится обзор решений для данной зада-

чи и описаны основные подходы, используемые при их построении. Также описан

процесс констуирования собственной реализации с использованием указанных

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

уже существующими решениями.

Page 3: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Содержание

1 Введение 5

2 Постановка задачи 7

3 Обзор существующих решений 8

3.1 Методы оценки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2 Transition-based dependency parsing . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1 Arc-standard system . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3 Модели векторного представления слов . . . . . . . . . . . . . . . . . . . . 11

3.4 Stanford Neural Network Dependency Parser . . . . . . . . . . . . . . . . . . 11

3.4.1 Генерация тренировочных последовательностей . . . . . . . . . . . 12

3.4.2 Выбор признаков . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4.3 Векторные представления . . . . . . . . . . . . . . . . . . . . . . . 12

3.4.4 Архитектура нейросети . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4.5 Обучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4.6 Ускорение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.5 SyntaxNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.5.1 Признаки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.5.2 Архитектура нейросети . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.5.3 Обучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.6 Theano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.6.1 Основная идея . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.6.2 Возможности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.7 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Исследование и построение решения задачи 19

4.1 Архитектура программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.2 Архитектура нейросети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.3 Векторные представления . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.4 Ускорение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.5 Данные для обучения и их обработка . . . . . . . . . . . . . . . . . . . . . 20

4.6 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 4: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

5 Описание экспериментальной части 22

5.1 Данные для обучения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.2 Качество разбора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.3 Производительность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.4 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Заключение 25

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

4

Page 5: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

1 Введение

Синтаксический анализ (парсинг) – процесс преобразования исходного текста на есте-

ственном языке в структуры данных, которая отображает синтаксическую структуру

исходного текста и подходит для дальнейшей обработки. Чаще всего в качестве данной

структуры данных используется дерево (т.н. дерево разбора).

Существует множество моделей для описания языка. Двумя наиболее популярных

являются:

1. Грамматика составляющих (constituency grammar)

2. Грамматика зависимостей (dependency grammar)

Первая разбивает предложение на более мелкие группы слов, которые в свою очередь

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

языков, при работе с естественными языками возникает проблема с неоднозначностями

и произвольным порядком слов.

Вторая грамматика не учитывает порядок слов, она указывает только зависимости

между словами и типы этих зависимостей. В этом подходе строятся деревья узлами

которых являются слова, а каждая связь помечена определенной меткой, хранящей

тип связи. Далее будем рассматривать вторую модель.

Полученное представление может быть в дальнейшем использовано для обработки

текста, предоставляя данные о структуре предложений, зависимостях между словами

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

задач как:

• Машинный перевод [1]

• Семантический анализ [2]

• Категоризация текста [3]

• Извлечение информации [4]

Процесс синтаксического анализа является довольно затруднительным, в первую

очередь из-за множества неоднозначностей, исключений из правил и новых слов. К тому

5

Page 6: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

же русский язык является более сложным для анализа, пример одной из особенностей

русского языка, усложняющих анализ, будет рассмотрен ниже (см. пункт 4.5).

На данный момент существует множество решений, таких как Stanford Neural Network

Dependency Parser [5]. Он работает быстро и показывают хорошие результаты. Однако

его трудно поддерживать из-за большого количества исходного кода на языке Java, нет

возможности вычислений на графических ускорителях (GPU), и его лицензия (GNU

General Public License v3.0) не позволяет использовать парсер в коммерческих целях.

Поэтому было решено реализовать аналогичный парсер на языке Python с использо-

ванием библиотеки Theano [6]. Python прекрасно подходит для написания прототипов.

Theano позволяет реализовывать нейросети, обучать их и на процессоре (CPU), и на

графических ускорителях (GPU), а также дает много возможностей для работы с тен-

зорами и построения графов вычислений.

6

Page 7: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

2 Постановка задачи

Целью работы является изучение принципов работы современных синтаксических ана-

лизаторов текста на основе деревьев зависимостей и реализация парсера, аналогичного

Stanford Neural Network Dependency Parser. Для достижения поставленной цели необ-

ходимо решить следующие подзадачи:

• Изучить принцип работы современных синтаксических анализаторов текста на

основе деревьев зависимостей

• Изучить методы построения векторных представлений слов (word embeddings)

• Реализовать парсер на языке Python с использованием библиотеки Theano

• Обучить модели и провести их экспериментальное сравнение на русскоязычном

тестовом корпусе, содержащем размеченные деревья зависимостей.

7

Page 8: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

3 Обзор существующих решений

Цель данного раздела – провести обзор принципов работы современных синтаксических

анализаторов текста. Существует два основных подхода при создании синтаксического

парсера:

1. Метод, основанный на правилах

2. Машинное обучение с учителем

Основная идея первого метода заключается в создании набора правил, которые опре-

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

довольно точен, но ресурсоемок, так как для создания подобного набора правил требу-

ется большая работа по описанию языка.

Второй метод заключается в использовании методов машинного обучения. Для его

применения требуется большое количество специально размеченных данных и меха-

низм, представляющий имеющиеся данные (слова, зависимости) в виде векторов.

Далее будут рассмотрены парсеры, использующие второй подход, а точнее transition-

based парсеры, использующие подход arc-standard (см. пункт 3.2). Также будут описаны

методы оценки результатов работы синтаксических парсеров.

3.1 Методы оценки

Результатом работы парсера является дерево, где для каждого элемента указан его

родитель и тип зависимости. Для оценки результатов работы парсера обычно исполь-

зуются следующие метрики:

• Unlabeled Attachment Score (UAS) – отношение количества элементов с правильно

указанным отцом, к общему количеству элементов

• Labeled Attachment Score (LAS) – отношение количества элементов с правильно

указанным отцом и типом связи, к общему количеству элементов

Рассмотрим пример на рис. 1-2:

8

Page 9: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Рис. 1. Верно размеченное дерево для предложения

Рис. 2. Дерево, предсказанное анализатором

На рис. 1 приводится верное дерево разбора для предложения “Съешь ещё этих

мягких французских булок.”, справа – предсказанное.

У предсказанного дерева неверно указан предок только у одного слова, поэтому UAS

9

Page 10: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

для него будет равен6

7. Однако у двух слов с правильно предсказанным отцом неверно

указана метка связи, таким образом, LAS для этого дерева равен4

7. Стоит заметить,

что в случае, когда рассматриваются несколько предложений в числителе будет сумма

количеств неподходящих вершин, а в знаменателе общее количество вершин во всех

деревьях.

3.2 Transition-based dependency parsing

Этот подход заключается в попытке предсказать последовательность действий (пере-

ходов) от некоторой изначальной конфигурации к конечной, в результате выполнения

которых будет получено исходное дерево разбора. Этот подход позволяет получить до-

статочно высокую точность и достичь довольно высоких скоростей.

3.2.1 Arc-standard system

Arc-standard system – один из наиболее популярных подходов реализации transition-

based системы. Система описывается конфигурацией, состоящей из трех частей: c =

(s, b, A), где:

• s – стек

• b – буфер

• A – множество зависимостей

Изначально конфигурация для последовательности w1, ..., wn следующая:

• s = [ROOT ] – в стеке один служебный символ

• b = [w1, ..., wn] – в буфере вся последовательность

• A = ∅ – множество зависимостей пусто

Конечная конфигурация следующая:

• s = [ROOT ] – в стеке один служебный символ

• b – пуст

10

Page 11: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

• A – содержит искомое дерево разбора

Будем считать si, i = (1, 2, ...) i-м верхним элементом стека, bi, i = (1, 2, ...) – i-й

элемент буфера. Arc-standard system имеет 3 типа операций:

• SHIFT – удаление b1 из буфера и добавление его в стек

• LEFT_ARC – добавляет в A связь от s1 к s2, с определенной меткой типа связи,

и удаляет s2 из стека

• RIGHT_ARC – аналогично LEFT_ARC, только с заменой s1 и s2

Таким образом, получается всего|T | = 2Nl+1 возможных действий, где Nl – количество

типов меток зависимости. Цель парсера – выбрать наиболее подходящее действие по

данной конфигурации.

3.3 Модели векторного представления слов

Существует 2 популярных модели для векторного представления слов: CBOW (Continuous

Bag-of-Words) и Skip-gram [7]. Word2Vec – это программный инструмент, объединяющий

в себе реализацию этих двух моделей.

Этот подход к построению моделей позволяет работать со словами, отсутствующими

в обучающих деревьях разбора (если они присутствуют в корпусе текстов для обуче-

ния Word2Vec) и учитывать близость слов по смыслу, что позволяет получать больше

информации из каждого слова.

Кроме того, в 2016 году была предложена модификация этих моделей FastText [8],

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

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

следствии генерировать векторные представления даже для отсутствующих в корпусе

для обучения FastText слов.

3.4 Stanford Neural Network Dependency Parser

Здесь будут рассмотрена архитектура Stanford Neural Network Dependency Parser. Этот

парсер использует модель arc-standard system, где выбор действия делается с помощью

нейронной сети. Основная идея, реализуемая в этом парсере, заключается в том, что

11

Page 12: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

необходимо выбирать меньше признаков, но брать наиболее значимые признаки, так

как обычно большая часть времени тратится именно на их извлечение.

3.4.1 Генерация тренировочных последовательностей

Для обучения нейросети требуется на основе имеющихся данных сгенерировать наибо-

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

содержать необходимые данные, а действие – ответ. Для генерации последовательно-

стей используется алгоритм кратчайшего стека (см. [5]), который больше предпочитает

выполнять LEFT_ARC, чем SHIFT.

3.4.2 Выбор признаков

Будем считать rci(sj) – i-м справа ребенком sj, rci(sj) – i-м слева ребенком sj. Из

заданной конфигурации выбираются признаки слов – Sw, POS-тегов – St и меток – Sl.

Sw состоит из nw = 18 слов, а именно:

• 6 слов: s3, s2, s1, b1, b2, b3.

• 8 слов: rc1(si), rc2(si), lc1(si), lc2(si), i = 1, 2

• 4 слова: rc1(rc1(si)), lc1(lc1(si)), i = 1, 2

St состоит из POS-тегов всех слов Sw, всего их nt = 18. Sl состоит из меток всех слов

Sw, не считая 6 слов на стеке и в буфере, всего их nl = 12.

3.4.3 Векторные представления

В качестве векторных представлений для слов авторы [5] рекомендуют использовать

50-мерный Word2Vec. Векторы представлений POS-тегов и меток инициализируются

случайными числами из интервала (−0.01, 0.01) и обновляются в процессе обучения.

Как отмечают авторы [5], это первая попытка сделать векторные представления не

только для слов, но и для POS-тегов и меток.

3.4.4 Архитектура нейросети

Для каждого слова из Sw, POS-тега из St и метки из Sl строятся их векторные пред-

ставления и объединяются в векторы xw, xt, xl. Входной слой нейросети x = [xw, xt, xl].12

Page 13: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Для перехода используются матрицы: Ww1 ∈ Rdh×(d·nw) – для слов, W t

1 ∈ Rdh×(d·nt) – для

POS-тегов, W l1 ∈ Rdh×(d·nl) – для меток, где d – размерность векторных представлений

(d = 50), dh – размерность скрытого слоя (dh = 200).

Тогда скрытый слой имеет следующий вид:

h = (Ww1 x

w +W t1x

t +W l1x

l + b1)3, b1 ∈ Rd

h. (1)

Очевидно, что такая запись эквивалентна записи h = (W1x+ b1)3, где

x =[xw xt xl

],W1 =

[Ww

1 W t1 W l

1

], (2)

т.е. x и W1 представляют собой конкатенации xw, xt, xl и Ww1 ,W

t1,W

l1 соответственно.

Согласно [5], кубическая функция активации наиболее хорошо подходит для подобной

задачи.

Следующий слой выходной, он имеет вид p = softmax(W2h), где W2 ∈ R|T |×dh .Равенство y = softmax(z), z ∈ RN означает

yi =ezi∑Nk=1 e

zk, i = (1 . . . N). (3)

Функция softmax() в данном контексте возвращает вероятности принадлежности к i-му

классу при условии x. Данная архитектура нейросети позволяет значительно ускорить

вычисления благодаря своей простоте.

Рис. 3. Архитектура нейросети Stanford Neural Network Dependency Parser

13

Page 14: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

3.4.5 Обучение

В качестве функции потерь используется мультиклассовая кросс-энтропия с L2 регуря-

лизацией:

L(θ) = −∑i

log pti +λ

2‖θ‖2 , (4)

где ti ∈ T , θ – множество весов {Ww1 ,W

t1,W

l1, b1,W2}. Рекомендованное значение пара-

метра регурялизации λ = 10−8. Так же используется dropout [9] с параметром 0.5. В

качестве алгоритма оптимизации используется AdaGrad [10], рекомендованное значение

learning rate: α = 0.01.

AdaGrad – один из алгоритмов градиентного спуска. Идея этого алгоритма заклю-

чается в том, что для каждого параметра θi на каждом шаге t используются различные

значения learning rate. Пусть α - начальное значение learning rate, gt,i - производная

функции потерь по θi на шаге t.

При обычном SGD формула была бы следующая:

θt+1,i = θt,i − α · gt,i. (5)

В AdaGrad формула другая:

θt+1,i = θt,i −α√

Gt,ii + ε· gt,i, (6)

где Gt – диагональная матрица, у которой каждый элемент на диагонали Gt,ii – яв-

ляется суммой квадратов производных по θi на всех шагах до шага t, ε – константа,

предотвращающая деление на 0.

3.4.6 Ускорение

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

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

мый pre-computation trick [5]: для 10 000 наиболее употребляемых слов, всех POS-тегов

и меток зависимостей, на каждой возможной позиции вычисляется произведение на со-

ответствующую часть матрицы и сохраняется. Таким образом, вместо 3 матричных про-

изведений и 4 сложений, вычисление ответа сводится к поиску в таблицах 18+18+12=48

векторов и выполнение 49 сложений. Согласно [5], это может ускорить вычисления в

8-10 раз.14

Page 15: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

3.5 SyntaxNet

SyntaxNet [11] – парсер, разработанный компанией Google. Он также использует arc-

standard system, и для выбора следующего действия он использует нейросеть. Тут будет

дано краткое описание особенностей этого парсера и его отличий от Stanford Neural

Network Dependency Parser.

3.5.1 Признаки

В отличие от Stanford Neural Network Dependency Parser, SyntaxNet использует большое

количество признаков, в число которых входят такие признаки, как суффиксы и пре-

фиксы. SyntaxNet также использует слова и POS-теги, и их векторные представления.

3.5.2 Архитектура нейросети

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

Stanford Neural Network Dependency Parser, входной слой в SyntaxNet представляет со-

бой вектор, полученный конкатенацией векторных представлений признаков. На выходе

слой с softmax().

Рис. 4. Архитектура нейронной сети SyntaxNet

15

Page 16: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

3.5.3 Обучение

Обучение состоит из двух шагов: локальное обучение и глобальное. При локальном

обучении вероятность i-го класса определяется как обычно:

p(di|d1:i−1; θ) =ep(d1:i−1,di;θ)

ZL(d1:i−1; θ), (7)

где di – действие на i-м шаге, а

ZL(d1:i−1; θ) =∑

d′∈A(d1:i−1)

ep(d1:i−1,d′;θ). (8)

Тогда вероятность последовательности шагов d1:n будет равна

pL(d1:n) =n∏i=1

p(di|d1:i−1; θ) =e∑n

i=1 p(d1:i−1,di;θ)∏ni=1 ZL(d1:i−1; θ)

. (9)

По этому выражению можно найти наиболее вероятную последовательность d1:n.

Глобальное обучение, предложенное авторами [11], определяет вероятность последо-

вательности d1:n как условное случайное поле (conditional random field):

p(d1:n) =e∑n

i=1 p(d1:i−1,di;θ)

ZG(θ), (10)

где

ZG(θ) =∑

d′1:n∈Dn

e∑n

i=1 p(d′1:i−1,d

′i;θ). (11)

Dn – множество всевозможных допустимых последовательностей длины n. Конечной

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

3.6 Theano

Для реализации нейросети в парсере была выбрана библиотка Theano. С помощью этой

библиотеки можно работать с тензорами на низком уровне, и проводить расчеты как

на CPU, так и на GPU.

3.6.1 Основная идея

Как правило, работа с Theano заключается в построении т.н. графа вычислений. Про-

стой пример – умножение вектора x на матрицу m с применением некоторой функции:

создаем символьные переменные16

Page 17: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

x = theano.tensor.vector()

M = theano.tensor.matrix()

Они будут использоваться для дальнейшего построения графа вычислений. Можно

добавить следующий узел с произведением:

y = theano.tensor.dot(x, M)

Это тоже символьная переменная, которая является следующим узлом графа вычисле-

ний. Наконец, добавим следующий узел:

h = y**3

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

вычислений:

f = theano.function([x, M], h)

Полученная переменная является функцией, которая выполняет все описанные выше

этапы вычислений.

3.6.2 Возможности

Помимо построения графа вычислений, Theano обладает обширными возможностями,

например, можно посчитать градиент переменной h из предыдущего примера по пере-

менной x:

g = theano.tensor.grad(h, x)

Это несомненно является полезным при написании алгоритма обучения нейросети. Гра-

диент считается с помощью цепного правила (правила дифференцирования сложной

функции): граф вычислений обходится в обратном направлении, и на каждой операции

по заранее известным для нее правилам считаются частные производные по ее операн-

дам.

Также есть возможность работы с подтензорами, что очень пригодилось при по-

строении решения задачи. В Theano есть так называемые shared переменные, которые

также можно встраивать в граф вычислений, но нет необходимости передавать их в

качестве параметров функции, что может быть удобно для работы с весами нейросети.17

Page 18: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

При вызове компиляции функции можно указать список выражений, которые будут

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

функции потерь можно обновлять веса в соответствии с выбранным алгоритмом опти-

мизации.

3.7 Выводы

Были рассмотрены принципы построения двух рабочих парсеров. Многие элементы

реализации этих парсеров могут быть использованы при построении решения. Рас-

смотрены технологии, используемые для построения нейросетей, которые подходят для

использования в построении решения. Также описаны методы оценки, которые исполь-

зуются для анализа результатов работы парсера.

18

Page 19: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

4 Исследование и построение решения задачи

В этой части будут описаны основные моменты при построении решения задачи, и

обоснованы те или иные решения, принятые при работе над реализацией. Так как одной

из целей работы является реализация парсера, аналогичного Stanford Neural Network

Dependency Parser, полученное решение будет во многом совпадает с реализацией этого

парсера.

4.1 Архитектура программы

Программа состоит из 4 модулей:

• Sequence_generator – генерирует последовательности действий для обучения на

основе размеченных деревьев разбора в формате конференции CoNLL-X [12]. Име-

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

вать их каждый раз при обучении.

• Embedding_generator – генерирует изначальные векторные представления для

POS-тегов и меток, хранит таблицы для векторных представлений и собирает

входной вектор по набору элементов (слова, POS-теги, метки).

• Nnet – реализация нейросети, имеет возможность обучаться и предсказывать необ-

ходимую операцию.

• Parser – выполняет разбор предложений (возможно, с указанными POS-тегами

слов), с использованием всех выше указанных модулей.

4.2 Архитектура нейросети

По большей части она совпадает с архитектурой сети из Stanford Neural Network Dependency

Parser, за исключением того, что скрытый слой может вычисляться 2 способами: если

ранние вычисления (см. подпункт 3.4.6) не были проведены или были.

В первом случае вместо 3 произведений

h = (Ww1 x

w +W t1x

t +W l1x

l + b1)3 (12)

19

Page 20: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

делается одно: h = (W1x+ b1)3, где

x =[xw xt xl

],W1 =

[Ww

1 W t1 W l

1

]. (13)

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

с памятью, и такой подход лучше распараллеливается на GPU.

Второй случай будет описан в пункте 4.4.

4.3 Векторные представления

Для векторных представлений слов используется 50-мерный FastText. Векторные пред-

ставления POS-тегов и меток инициализируются случайными числами из интервала

(−0.01, 0.01), размерность векторов d = 50. В процессе обучения берется градиент по

подтензору входного слоя, относящегося к POS-тегам и меткам, и векторные представ-

ления обновляются помощью метода градиентного спуска.

4.4 Ускорение

После обучения можно выбрать из тестовой выборки n наиболее часто встречающихся

слов и заранее посчитать для них произведения на соответствующую часть матрицы,

аналогично тому, что сделано в Stanford Neural Network Dependency Parser. В таком слу-

чае парсер не преобразует известные слова в векторы, а находят для них по позиции

соответствующее значение произведения. Для неизвестных слов находятся их вектор-

ные представления и соответствующие части матрицы весов. Они конкатенируются в

большой вектор и матрицу, далее умножаются. Это сделано для ускорения из тех же со-

ображений, как считается скрытый слой в первом случае, такой подход ускорил работу

парсера на 20 предложений в секунду.

4.5 Данные для обучения и их обработка

Для обучения и тестирования используется русскоязычный корпус SynTagRus [13] с раз-

меченными деревьями разбора. По ним аналогично Stanford Neural Network Dependency

Parser построены и сохранены последовательности действий. При генерации последова-

тельностей было выявлено, что arc-standard model подходит не для всех предложений

в русском языке.20

Page 21: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Пример: предположим, что есть слова a, b, c, d, каждый из которых является потом-

ком предыдущего. Тогда может образоваться следующая ситуация:

s4 = a, s3 = d, s2 = b, s1 = c.

Нельзя применить LEFT_ARC, т.к. d – не потомок b, но и нельзя применить RIGHT_ARC,

т.к. у c есть потомок, от b не было возможности избавиться, т.к. между ним и его пред-

ком находится a. В таком случае нельзя избежать ошибки. Стоит заметить, что эти

слова не обязательно идут друг за другом, между ними могут находиться другие сло-

ва, но они будут убраны в процессе разбора. Подобные ситуации найдены примерно в

7% обучающих предложений.

4.6 Выводы

Были реализованы соответствующие модули программы, а также функциональность,

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

ве. Также обнаружена проблема с применением arc-standard model к русскоязычному

тексту, эта проблема требует дальнейших исследований.

21

Page 22: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

5 Описание экспериментальной части

Эксперименты указанные ниже проводились на ноутбуке с процессором Intel Core i5-

3230M и графическим ускорителем Nvidia GeForce 740M.

5.1 Данные для обучения

Для обучения выбранной модели векторного представления слов FastText использовал-

ся корпус текстов сообщений из социальной сети ВКонтакте, включающий около 280

млн слов.

Корпус размеченных деревьев разбора SynTagRus включает 48171 предложение в

тренировочной выборке и 6130 предложений в тестовой выборке.

5.2 Качество разбора

В данном пункте указана точность результатов разбора тестовой выборки из SynTagRus

для Stanford Neural Network Dependency Parser и разработанного парсера.

Таблица 1. Качество разбора тестовой выборки

Парсер Количество эпох/время обучения LAS UAS

Решение 1000/12 ч. 71,5 75,7

Standford До раннего останова/26 ч. 72,661 77,421

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

нейросети и выбором рекомендованных в статье [5] параметров.

5.3 Производительность

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

из SynTagRus. Время на разметку POS-тегами не учитывалось.

В данной таблице приведены результаты работы решения на GPU:

22

Page 23: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Парсер Sents per sec

В лучшем случае 111.533

В среднем 62.234

В худшем 44.227

Без ускорения 47.619

В данной таблице приведены результаты работы решения на CPU:

Парсер Sents per sec

В лучшем случае 135.549

В среднем 51.091

В худшем 31.962

Без ускорения 37.443

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

вестны и использовались для ускорения, среднее – когда для ускорения использовалось

10 000 наиболее встречаемых слов из тренировочной выборки, худший – когда ни одно

слово не известно.

Тот факт, что парсер без ускорения работает быстрее чем в лучшем случае подтвер-

ждает утверждение о том, что произведение большого вектора на большую матрицу

эффективнее, чем множество произведений меньших векторов и матриц с суммирова-

нием (см 4.2).

Также видно, что на CPU парсер работает быстрее чем на GPU в лучшем случае.

Скорее всего это обусловлено тем, что много времени уходит на работу с памятью,

а выигрыш от распараллеливания произведения малого вектора на малую матрицу

довольно мал.

Другие парсеры:

Парсер Sents per sec

Standford 162,79

Большая разница между временем работы парсера и Stanford Neural Network Dependency

Parser возможно вызвана различиями между языками Python и Java.

23

Page 24: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

5.4 Выводы

Полученное решение имеет примерно одинаковую точность с Stanford Neural Network

Dependency Parser, но отстает по скорости. Возможно машина с более производитель-

ным графическим ускорением выдаст большую скорость, это требует дальнейших ис-

следований.

24

Page 25: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

Заключение

• В результате работы были изучены принципов работы современных синтаксиче-

ских анализаторов текста на основе деревьев зависимостей.

• Был реализован парсер, аналогичный Stanford Neural Network Dependency Parser.

• Были изучены принципы работы современных синтаксических анализаторов тек-

ста на основе деревьев зависимостей, методы построения векторных представле-

ний слов.

• Также были обучены модели и проведено их экспериментальное сравнение на рус-

скоязычном тестовом корпусе, содержащем размеченные деревья зависимостей.

25

Page 26: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

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

[1] Galley M., Manning C. D. Quadratic-time dependency parsing for machine transla-

tion // Proceedings of the Joint Conference of the 47th Annual Meeting of the ACL

and the 4th International Joint Conference on Natural Language Processing of the

AFNLP: Volume 2 - Volume 2. — ACL ’09. — Stroudsburg, PA, USA: Association for

Computational Linguistics, 2009. — Pp. 773–781. http://dl.acm.org/citation.cfm?

id=1690219.1690255.

[2] Yasavur U., Travieso J., Lisetti C., Rishe N. Sentiment analysis using dependency

trees and named-entities. — 2014. https://www.aaai.org/ocs/index.php/FLAIRS/

FLAIRS14/paper/view/7869.

[3] Haralambous Y., Lenca P. Text classification using association rules, dependency prun-

ing and hyperonymization // CoRR. — 2014. — Vol. abs/1407.7357. http://arxiv.

org/abs/1407.7357.

[4] McClosky D., Surdeanu M., Manning C. D. Event extraction as dependency pars-

ing // Proceedings of the 49th Annual Meeting of the Association for Computation-

al Linguistics: Human Language Technologies - Volume 1. — HLT ’11. — Strouds-

burg, PA, USA: Association for Computational Linguistics, 2011. — Pp. 1626–1635.

http://dl.acm.org/citation.cfm?id=2002472.2002667.

[5] Chen D., Manning C. A fast and accurate dependency parser using neural networks //

Proceedings of the 2014 Conference on Empirical Methods in Natural Language Pro-

cessing (EMNLP). — Doha, Qatar: Association for Computational Linguistics, 2014. —

October. — Pp. 740–750. http://www.aclweb.org/anthology/D14-1082.

[6] Theano: A python framework for fast computation of mathematical expressions / R. Al-

Rfou, G. Alain, A. Almahairi et al. // CoRR. — 2016. — Vol. abs/1605.02688. http:

//arxiv.org/abs/1605.02688.

[7] Distributed representations of words and phrases and their compositionality /

T. Mikolov, I. Sutskever, K. Chen et al. // CoRR. — 2013. — Vol. abs/1310.4546.

http://arxiv.org/abs/1310.4546.

26

Page 27: Курсовая работа - seminar.at.ispras.ruseminar.at.ispras.ru › wp-content › uploads › 2012 › 07 › stroev-thesis.pdf1 Введение Синтаксическийанализ(парсинг)–процесспреобразованияисходноготекстанаесте-

[8] Bag of tricks for efficient text classification / A. Joulin, E. Grave, P. Bojanowski,

T. Mikolov // CoRR. — 2016. — Vol. abs/1607.01759. http://arxiv.org/abs/1607.

01759.

[9] Dropout: A simple way to prevent neural networks from overfitting / N. Srivastava,

G. Hinton, A. Krizhevsky et al. // J. Mach. Learn. Res.— 2014. — 1. — Vol. 15, no. 1. —

Pp. 1929–1958. http://dl.acm.org/citation.cfm?id=2627435.2670313.

[10] Duchi J., Hazan E., Singer Y. Adaptive subgradient methods for online learning

and stochastic optimization: Tech. Rep. UCB/EECS-2010-24: EECS Department, Uni-

versity of California, Berkeley, 2010. —Mar. http://www2.eecs.berkeley.edu/Pubs/

TechRpts/2010/EECS-2010-24.html.

[11] Globally normalized transition-based neural networks / D. Andor, C. Alberti, D. Weiss

et al. // CoRR. — 2016. — Vol. abs/1603.06042. http://arxiv.org/abs/1603.06042.

[12] Buchholz S., Marsi E. Conll-x shared task on multilingual dependency parsing // Pro-

ceedings of the Tenth Conference on Computational Natural Language Learning. —

CoNLL-X ’06. — Stroudsburg, PA, USA: Association for Computational Linguistics,

2006. — Pp. 149–164. http://dl.acm.org/citation.cfm?id=1596276.1596305.

[13] Boguslavsky I. Syntagrus – a deeply annotated corpus of russian. — 2008.

27