Система автоматической генерации транскрипций русскоязычных слов-исключений…
Problems of Artificial Intelligence 2019 № 4 (15)
39
В
П
где
y – итоговая последовательность;
c – контекстный вектор:
)
,...,
,
(
2
1
m
x
x
x
f
c
,
(2)
где
x – входная последовательность.
Декодер имеет следующий вид:
)
,...,
,
,
(
1
2
1
t
t
y
y
y
c
g
y
.
(3)
Рисунок 1 – Типовая схема работы seq2seq модели
В модели seq2seq исходная информация сжимается в вектор контекста фиксиро-
ванной длины. Основным её недостатком является неспособность запоминать длин-
ные предложения, что приводит к плохому результату. Эта
проблема была решена за
счёт использования модели c вниманием [22] (рис. 2). В данной модели вместо постро-
ения одного контекстного вектора из последнего скрытого состояния декодера
создаётся контекстный вектор для каждого входного слова. Таким образом, если в
исходном документе
N уникальных слов, то должно быть создано
N контекстных
векторов, а не один. Преимущество применения данного подхода состоит в том, что
закодированная информация хорошо декодируется моделью.
Рисунок 2 – Архитектура модели с
вниманием
Пикалёв Я. С., Ермоленко Т. В.
Проблемы искусственного интеллекта 2019 № 4 (15)
40
П
Формула контекстного вектора для модели внимания имеет вид:
x
T
j
j
tj
t
h
a
c
1
,
(3)
где
tj
a
– веса для каждого скрытого состояния
j
h
(оценка внимания):
X
T
k
tk
tj
tj
e
e
a
1
)
exp(
)
exp(
,
(4)
где
tj
e
– модель вложения последовательности:
)
,
(
1
j
t
tj
h
s
a
e
,
(5)
где
t
s – скрытое состояние енкодера:
)
,
,
(
1
1
t
t
t
t
c
y
s
f
s
.
(6)
Модель с
вниманием имеет ряд недостатков: контекстный вектор вычисляется
через скрытое состояние между исходной и целевой последовательностью, не
учитывая контекст внутри исходного предложения и самого целевого предложения;
данная модель из-за своей структуры сложна в распараллеливании.
Модель Transformer [23], [24] основана на seq2seq модели. Модель Transformer
использует отдельные модели енкодера (преобразует слова входного предложения в
один или больше векторов в определенном пространстве) и декодера (генерирует из
этих векторов последовательность слов).
В качестве стандартных архитектур для енкодера и декодера Transformer ис-
пользует полносвязные слои. Архитектура Transformer (рис. 3) нацелена на проблему
трансдукции последовательности, что означает любую задачу, в
которой входные
последовательности преобразуются в выходные последовательности.
Рисунок 3 – Архитектура Transformer
Система автоматической генерации транскрипций русскоязычных слов-исключений…
Problems of Artificial Intelligence 2019 № 4 (15)
41
В
П
Transformer уменьшает количество последовательных операций для привязки
двух символов из последовательностей ввода-вывода с постоянным количеством
операций O(1). Это
достигается при помощи механизма многозадачности, который
позволяет моделировать зависимости независимо от их расстояния во входном или
выходном предложении. Новый подход Transformer заключается в том, чтобы
полностью исключить повторение, и заменить его на обучающее внимание для
обработки зависимостей между входом и выходом.
В Transformer енкодер и декодер состоят из стека одинаковых слоёв. Каждый из
этих слоёв состоит из двух общих типов подслоёв:
-
механизма многослойного обучающего внимания (multi-head attention);
-
позиционной полносвязной нейросети прямого распространения (feed forward).
Главное отличие декодера от енкодера в Transformer – использование слоя c
механизмом маскирующего многослойного внимания (masked multi-head attention),
который позволяет «обращать внимание» на специфичные сегменты из енкодера
(рис. 4). Это
стало возможным благодаря механизму masked multi-head attention,
который маскирует будущие токены посредством блокирования информации токе-
нов, которые находятся справа от вычисляемой позиции.
Рисунок 4 – Схема работы self-attention и masked self-attention
Модель генерации транскрипций для слов-исключений
Для обучения нейросети необходимо:
-
создать словарь, содержащий слова и их фонемные транскрипции;
-
преобразовать входные данные (слова) в вектор чисел.
В
связи с этим был создан словарь, содержащий более 5 млн уникальных
словоформ, а также метки «<» (начало слова), «>» (конец слова), «*» (токен для
обозначения внесловарного символа). Кроме того, был подготовлен набор данных,
составленный из найденных в Сети фонетических словарей слов-исключений, кото-
рые при помощи библиотеки pymorphy2 были дополнены парадигмами. В общей
сложности количество элементов словаря слов-исключений составило около 10 тыс. пар.
Для преобразования слов в вектор был разработан алгоритм кодирования слов,
который, в первую очередь, направлен на оптимизацию процесса обучения модели
при помощи мини-пакетного типа обучения. При трансформации данных для мини-
пакетного типа обучения стоит помнить об изменении длины фразы в массивах
данных. Чтобы разместить фразы разных размеров в
одном пакете, необходимо
сделать матрицу E длины
s
max
b
L
(L
max
– максимальное кол-во слов во фразе,
b
s
–
размер пакетов), где фразы короче L
max
должны быть дополнены нулями после
индекса токена «>», обозначающего конец слова. Если просто преобразовать фразы
Пикалёв Я. С., Ермоленко Т. В.
Проблемы искусственного интеллекта 2019 № 4 (15)
42
П
в матрицы путем преобразования слов в их индексы и сделать нулевое заполнение,
то тензор будет иметь форму (b
s
, W
max
), где W
max
– максимальная длина слова, и при
индексировании первого измерения будет возвращаться полная последовательность
по всем временным шагам. Необходимо иметь возможность индексировать пакет по
времени и по всем последовательностям в пакете. Поэтому выполняется операция
трансформации входного пакета в размерность (W
max
, b
s
), чтобы индексирование по
первому измерению возвращало шаг по времени для всех слов в пакете (рис. 5). Для
этого используется транспонирование матрицы
E:
F =
E
T
.
Рисунок 5 – Изображение операции преобразования матрицы индексов слов
для мини-пакетного обучения
Алгоритм кодирования состоит в
следующем.
1) На вход подаётся
W={
w
Достарыңызбен бөлісу: