Диссертация (1090484), страница 10
Текст из файла (страница 10)
Задан семантический разбор текста в виде последовательности из n семантических моделей m1 , m2 , ..., mn , рассмотрим:Для i1 = 1..n:Для i2 = i1 + 1..n:...Для ik = ik−1 + 1..n(k ≤ ng ):Сортировать mi1 , mi2 , ..., mik по возрастанию, получаем m̂i1 , m̂i2 , ..., m̂ik .Обновить частоту для множеств m̂i1 , m̂i2 , ..., m̂ik .В результате получаем набор самых встречаемых множеств семантическихмоделей.Для обучения семантических векторных представлений используются автоэнкодеры размера ng × kword , где ng - количество элементов в грамматическойструктуре (например, ng = 2 для AN, ng = 3 для SVO и SVA), а kword - размерность векторного пространства слов.
Для каждой грамматической структурыиспользуется отдельный автоэнкодер для обучения представлений.Входной и выходной слои автоэнкодера имеют ng × k нейронов, а скрытыйслой - ksementic нейронов (ksementic - размерность пространства семантическихвекторных представлений):Автоэнкодер объединяет элементы грамматической структуры x1 , x2 , ..., xng(ng вектора длины kword ) в один вектор y (длины ksementic ):y = f (W (1) [x1 , x2 , ..., xng ] + b(1) ).(3.6)Чтобы вычислить ошибку объединения, нужно восстанавливать исходныеслова x1 , x2 , ..., xng из вектора y:[x´1 , x´2 , ..., x´ng ] = W (2) y + b(2) .(3.7)Ошибка объединения есть евклидово расстояние между парами исходных и89восстановленных слов:Erec ([x1 , x2 , ..., xng ]) = kx1 − x´1 k2 + kx2 − x´2 k2 + ...
+ kxng − x´ng k2 .(3.8)Чтобы ошибка объединения не уменьшилась просто из-за уменьшения скрытых слоев, используется нормализация объединенного вектора:ŷ =y.kyk(3.9)Для обучения семантических векторных представлений можно использоватьлюбые текстовые ресурсы. Тексты сначала надо разделить на предложения, этипредложения подаются во вход морфологического анализатора, после морфологического анализа и решения морфологической многозначности получаетсяпоследовательность id леммы, морфологические характеристики, и эту последовательность можно использовать для обучения векторных представлений грамматических структур.Метод семантических векторных представлений отличается от рекурсивногоавтоэнкодера тем, что рекурсивный автоэнкодер использует одну и ту же матрицу параметров для объединения всех слов, а метод семантических векторных представлений использует разные матрицы параметров для разных грамматических структур, таким образцом формирует для каждой грамматическойструктуры одно семантическое векторное пространство.2.
Часть «распределение по категориям семантического представления», которая принимает на вход объединенный вектор x и вычисляет распределениекатегорий h по предложению, является слоем Softmax [174].Распределение вероятностей для K-классовой классификации для t-го предложения текста [25]:90(1)|P(y = 1|x; θ),exp(θ x),(2)|P(y=2|x;θ),exp(θx),1(t).=hθ (x) = .... PK exp(θ(j)| x) ..j=1(K)|P(y = K|x; θ)exp(θx)(3.10)Функция потерь [132]:Xm XK (i)exp(θ(k)| x(i) )J(θ) = −y = k log PK.(j)| x(i) )exp(θj=1i=1 k=1(3.11)Производные и градиент функции потерь [133]:exp(θ(k)| x(i) )P(y = k|x(i) ; θ) = PK.(j)|(i)x )j=1 exp(θ∇θ(k) J(θ) = −mXx(i) (1{y (i) = k} − P(y (i) = k|x(i) ; θ)) .(3.12)(3.13)i3. Часть «распределение по категориям текста», которая принимает на входраспределения категорий по предложениям и вычисляет распределение категорий по тексту.
Распределение вероятностей для текста, состоящего из N предложений есть среднее распределение вероятностей по предложениям:N1 X (t)hθ =h .N t=1 θ(3.14)Нейро-семантическая сеть на основе морфологического анализа имеет преимущество перед обычным рекурсивным автоэнкодером в том, что она учитывает грамматическую структуру текстов, поэтому векторные представления91грамматических структур отражают семантические значения текстов.Рис.
3.3: Семантическое векторное пространство.Целью здесь является создание семантических векторных пространств ипоиск функций, которые вычисляют семантические векторные представленияграмматических структур по векторным представлениям слов, такие как:vAN (red car) = fAN (v(red), v(car)),(3.15)vAN (blue car) = fAN (v(blue), v(car)),(3.16)vSV O (я читаю книгу) = fSV O (v(я), v(читать), v(книга)),(3.17)где vAN (red car), vSV O (я читаю книгу) - семантические векторные представления для «red car» и «я читаю книгу» , v(red), v(blue), v(car), v(я), v(читать), v(к- векторные представления, fAN и fSV O - искомые функции.Нейро-семантическая сеть на основе морфологического анализа имеет применения и в семантическом индексировании и семантическом поиске.
Обычныепоисковые системы только индексируют и сравнивают тексты как строки изсимволов [175], а нейро-семантическая сеть использует семантические векторные представления для индексирования и поиска информации, при этом на за92прос «буфет в институте» система может выдавать тексты с фразой «столоваяв университете» поскольку они похожи по семантике и их векторные представления близки друг к другу.3.3Разработка математического и алгоритмитического обеспечения вычислительного комплекса рекурсивного автоэнкодера морфологического анализаПредлагается рекурсивный автоэнкодер [101] морфологического анализа, который состоит из двух частей - первая объединяет два вектора слов, а втораяобъединяет два вектора морфологий[40].
Морфологическая часть рекурсивногоавтоэнкодера позволяет повышать точность выбора векторов слов в процедуреформирования векторного представления текста.Векторное представление текста получается повторением процесса объединения двух слов - векторов с использованием рекурсивного автоэнкодера. Накаждом этапе выбор пары слов - векторов для объединения происходит с помощью данного рекурсивного автоэнкодера.Автоэнкодер объединяет две пары (слово; морфологический разбор) (x1 ; m1 ), (x2 , mв одну пару (y, m):y = f (Ww(1) [x1 , x2 ] + b(1)w ),(3.18)m = f (Wm(1) [m1 , m2 ] + b(1)m ).(3.19)Чтобы вычислять ошибки объединения, нужно восстанавливать исходныеслова x1, x2 из вектора y:93[x´1 , x´2 ] = Ww(2) y + b(2)w ,(3.20)[ḿ1 , ḿ2 ] = Wm(2) m + b(2)m .(3.21)Ошибки объединения есть евклидово расстояние между парами исходных ивосстановленных слов:n1n2kx1 − x´1 k2 +kx2 − x´2 k2 ,n1 + n2n1 + n2n2n1km1 − ḿ1 k2 +km2 − ḿ2 k2 ,Em ([m1 , m2 ]) =n1 + n2n1 + n2Erec = αEw + (1 − α)Em ,Ew ([x1 , x2 ]) =(3.22)(3.23)(3.24)где n1 , n2 - количества объединенных слов в x1 , x2 соответственно; α - взвешенный параметр для ошибок объединений слов и морфологических разборов.Чтобы ошибка объединения не просто уменьшалась из-за уменьшения значений нейронов скрытых слоев, используется нормализация объединенных векторов слов и морфологии [176]:y,kykmm̂ =.kmkŷ =(3.25)(3.26)В общем случае, когда каждое слово имеет p факторов (в нашем случаеp = 2), переписываем выражение объединения:yi = f (Ww(i1) [xi1 , xi2 ] + b(i1)w ); i = 1..p.Выражение восстановления исходных векторов xi1 , xi2 из вектора yi :94(3.27)[x´i1 , x´i2 ] = Ww(i2) y + b(i2)w ; i = 1..p.(3.28)Записываем формулу нормализации объединенных векторов:yi =yi.kyi k(3.29)(3.30)Ошибки объединения как евклидово расстояние между исходными и восстановленными векторами:n2n1kxi1 − x´i1 k2 +kxi2 − x´i2 k2 ,n1 + n2n1 + n2pX=ϕi Ewi ,Ewi ([xi1 , xi2 ]) =Erec(3.31)(3.32)i=1где n1 , n2 - количества объединенных слов в xi1 , xi2 соответственно; ϕ - распределение ошибок объединений факторов слов (в нашем случае векторныхпредставлений и морфологических разборов).Этот процесс повторяется N-1 раз для текста, состоящего из N слов.
В результате получается окончательный вектор - семантическое векторное представление текста, этот вектор используется как вход для системы обучения.95Рис. 3.4: Рекурсивный автоэнкодер.Распределение вероятностей для K-классовой классификации для векторного представления текста y вычисляется слоем Softmax [25]:d(y; θ) = Sof tmax(W Sof tmax y).(3.33)Ошибка регрессии для K-классовой классификации записывается как перекрёстная энтропия между выходным и целевым распределениями [104]:Ereg = −KXtk log dk .(3.34)k=1Ошибка объединения на каждом узле:Emer = βErec + (1 − β)Ereg ,96(3.35)где β - взвешенный параметр для ошибок регрессии и объединения.Суммарная ошибка на всех узлах:E=XEmer(3.36)Функция потерь автоэнкодера есть средняя ошибка для всех текстов в обучаемой выборке:J=1 XλE + kθk2 ,N2(3.37)где λ - взвешенный параметр для весов автоэнкодера.Градиент функции потерь [105]:∂J1 X ∂E=+ λθ.∂θN∂θ(3.38)Сочетание морфологического анализа и нейронных сетей имеет место в будущем технологии машинного перевода.
Машинный перевод является одной из самых сложных задач обработки естественного языка, качество машинного перевода, особенно художественных текстов, практически всегда оказывается неудовлетворительным. Создание единого многоязычного морфологического словаряможет существенно улучшить качество перевода.3.4Разработка метода «К» ближайших соседейс использованием двоичного дереваВ этом разделе рассмотрим вычислительный комплекс алгоритма «К» ближайших соседей с использованием двоичного дерева для уменьшения количествавычислительных операций при классификации текстов[32].Один из недостатков алгоритма «К» ближайших соседей - медленная ско97рость [177], для классификации нового текста, нужно вычислять расстояниямежду этим текстом со всеми текстами в корпусе, а их количество может достигать миллионов.
Для уменьшения количества вычислительных операций, будем сравнивать только тексты, имеющие общие термины, другими словами, нетсмысла сравнивать тексты, которые не имеют никаких связей. Кроме того, использование двоичного дерева [178] тоже помогает повысить быстродействиеалгоритма.Подход 1: Шифрование текстов с помощью морфологического анализа.Для каждого слова, ищем его морфологические разборы (раздел 3.1.2) ирешаем морфологическую многозначность (раздел 3.1.3), получаем представление текста в виде массива индексов слов в словаре и их морфологическимиразборами.Подход 2: Уменьшение количества потенциальных ближайших соседей.Для каждого термина, храним id текстов, содержащих этот термин. Длябыстрого поиска id текста, сортируем координаты этих текстов по этому термину по возрастанию.















