УДК 004.8
Нгуен Нгок Зиеп, Ле Мань Ха
Московский физико-технический институт (государственный университет)
Нейросетевой метод снятия омонимии
Омонимы - это слова, которые звучат одинаково, но имеют разные значения. В данной работе рассмотрим метод векторного представления слов и метод классификации омонимов с помощью автоэнкодера и нейронных сетей.
Ключевые слова: омоним, нейронные сети, автоэнкодер.
Nguyen Ngoc Diep, Le Manh Ha
Moscow Institute of Physics and Technology (State University)
Classification homonyms using neural networks
Homonyms are words that are spelled in the same way but have different meanings. In this paper, we consider a metod of word presentation as a vector and classification of homonyms using an autocoder and neutral networks.
Key words: homonym, neural networks, autoencoder.
1. Введение
В лексической системе русского языка есть слова, которые звучат одинаково, но имеют совершенно разные значения. Такие слова называются лексическими омонимами, а звуковое и грамматическое совпадение разных языковых единиц, которые семантически не связаны друг с другом, называется омонимией [1].
Например:
1. Ключ(1) - «родник» (студеный ключ);
Ключ(2) - стальной ключ для отпирания и запирания замка.
2. Лук(1) - «растение» зеленый лук;
Лук(2) - «оружие» тугой лук.
В отличие от многозначных слов лексические омонимы не обладают предметно-семантической связью, т.е. у них нет общих семантических признаков, по которым можно было бы судить о полисемантизме одного слова. Полная лексическая омонимия - это совпадение слов, принадлежащих к одной части речи, во всех формах. Пример: наряд(1) - «одежда», наряд(2) - «распоряжение»; замок(1) - «123», замок(2) - «здание». Автоматическая система перевода делится на несколько этапов, одним из которых является морфологический. На этом этапе для каждого слова определяются морфологические характеристики: род, число, падеж, склонение и т.п., а также начальная форма слова (лемма). Процесс морфологической разметки осложняется омонимами [1].
2. Методы представления текста
В настоящее время теория и практика машинного обучения переживают настоящую «глубинную революцию», вызванную успешным применением методов deep learning, представляющих собой третье поколение нейронных сетей. Сети, обученные с помощью алгоритмов глубинного обучения, не просто превзошли по точности лучшие альтернативные подходы, но и в ряде задач проявили зачатки понимания смысла подаваемой информации (например, при распознавании изображений, анализе текстовой информации и т.п.). Наиболее успешные современные промышленные методы компьютерного зрения, распознавания речи и машинного перевода построены на использовании глубинных сетей, а гиганты IT-индустрии, такие как Apple, Google, Facebook, скупают коллективы исследователей, занимающихся глубинным обучением целыми лабораториями.
Представление слова как вектора - в настоящее время одна из самых интересных областей исследований в глубинном обучении, хотя данный подход был изначально введен Bengio [2] и др. более десяти лет назад. Самые известные модели представления слова как вектора - Continuous-Bag-of-Word и Skip-Gram, описание, представленное Mikolov [3], и реализация моделей Word2vec [4], опубликованая на сайте Google project, привлешая большое внимание в последние два года. Эти модели использовали простую нейронную сеть для отображения слов, которые ближе к слову по значению. Поэтому процесс обучения для этих моделей быстро работает с большими данными.
INPUT PROJECTION OUTPUT INPUT PROJECTION OUTPUT
CBOW Skip-gram
Рис. 1. Модели CBOW и Skip-gram
СБОШ-модель использует окружающие слова (предложение без заданного слова), чтобы предугадать заданное слово. Входные векторы в нейронную сеть Ж(£ — 2), Ж(£ — 1), Ж(£ +1), Ж(£ + 2), а выходной вектор из сети это заданное слово Ж(¿). В результате обучения получается 2 вектора представления слова. Входной вектор V - это вектор представления предложения описания слова, выходной вектор V' -это вектор представления слова. БИр^гат-модель использует слово, чтобы предугадать предложение описания заданного слова. Эти модели могут использоваться во многих задачах анализа естественного языка, таких как классификация документов, распознавание спама или машинный перевод.
Один хороший пример двуязычного вхождения слова приводится в работе БосЬег и др. [6]. Было показано, как можно научиться вставлять слова из двух разных языков в одно общее пространство. В рассмотренном случае работы [6] учились вставлять английские и китайские слова в том же пространстве. Если значения слов, окружающих омонимы, разные, тогда расстояние между омонимами большое.
Input layer Hidden layer Output layer
Рис. 2. Нейронная сеть, использованная для получения вектора представления слова. Входной слой и выходной имеют V нейронов, а скрытый - N нейронов
На рис. 3 отображены векторы для чисел и животных на английском и испанском языках [5], на рисунке можно легко заметить, что эти понятия имеют схожие геометрические композиции. Причина в том, что понятия, которые основаны на реальном мире, разделились одинаково, как и для множества распространенных языков.
Рис. 3. Распределение векторных представлений слов чисел и животных на английском языке (слева) и испанском (справа). Пять векторов на каждом языке были спроектированы на два измерения с использованием метода РСА. Видно, что эти концепции имеют схожие геометрические представления в обоих пространствах, что позволяет предполагать возможное точное линейное отображение из одного пространства в другое
| pass •through |
Рис. 4. Визуализация двуязычного пространства - английский и китайский
3. Нейронные сети и автоэнкодер
Нейронные сети прямого распространения часто используются для обучения с учителем и используются, например, для классификации [7].
Рис. 5. Многослойная нейронная сеть Часто используемая функция активации - сигмоида:
— Zj\ — 1
f (z3) = &(zj ) = (1 + e~Zj)
(1)
где
£
WijXi.
Полезное свойство сигмоиды - её производная функции:
^ = a(z)( 1 -a(z)).
(2)
(3)
Обучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом, чтобы минимизировать среднеквадратическую ошибку сети
j
на обучающей выборке. Таким образом, обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (х,у).
Метод обратного распространения ошибки:
для выходного нейрона:
5 = г — у; (4)
для нейронов скрытых слоев:
п
й = ^ 63 ■
3=0
Коррекция весов:
для выходного нейрона:
= ыю + фу^
для нейронов скрытых слоев:
= + ^6з Уз(1 — Уз )Уг- (7)
В реальной практике маркированных данных очень мало, для них требуется много сил и времени. Автоэнкодер представляет собой алгоритм обучения без учителя, который использует нейронную сеть и метод обратного распространения ошибки для того, чтобы добиться того, чтобы входной вектор признаков вызывал выход сети, равный входному вектору, т.е. у = х. Автоэнкодер является специальной архитектурой искусственных нейронных сетей, позволяющей применять обучение без учителя при использовании метода обратного распространения ошибки. Простейшая архитектура автоэнкодера — сеть прямого распространения, без обратных связей, наиболее схожая с перцептроном и содержащая входной слой, скрытый слой и выходной слой. В отличие от перцептрона, выходной слой автоэнкодера должен содержать столько же нейронов, сколько и входной слой [8].
Цель автоэнкодера - чтобы выход нейронной сети был наиболее близким к входному вектору. Для того чтобы решение этой задачи было нетривиальным, на топологию сети накладываются особые условия:
1. Количество нейронов скрытого слоя должно быть меньше, чем размерность входных данных.
2. Активация нейронов скрытого слоя должна быть разреженной.
Первое ограничение позволяет получить сжатие данных при передаче входного сигнала на выход сети. Такое сжатие возможно, если в данных есть скрытые взаимосвязи, корреляция признаков или структура. Второе ограничение - требование разреженной активации нейронов скрытого слоя — позволяет получить нетривиальные результаты, даже когда количество нейронов скрытого слоя превышает размерность входных данных. Будем считать нейрон активным, когда значение его функции передачи близко к 1 и наоборот, неактивным - если значение его функции передачи близко к 0. Разреженная активация - это когда количество неактивных нейронов в скрытом слое значительно превышает количество активных.
Эти ограничения заставляют нейросеть искать обобщения и корреляцию в поступающих на вход данных, выполнять их сжатие. Таким образом, нейросеть автоматически обучается выделять из входных данных общие признаки, которые кодируются в значениях весов сети. Необходимо, чтобы средняя активация каждого скрытого нейрона приняла значение, наиболее близкое к заданному разреженному параметру (порядка 0.05). Для этого был добавлен в каждый нейрон скрытого слоя параметр разреженности р:
(5)
(6)
Рз =
т
£
г=1
у (2)
(хЩ
1
3
Рис. 6. Автоэнкодер
Необходимо, чтобы средняя активация каждого скрытого нейрона приняла значение, наиболее близкое к р:
Штрафная функция:
Рз = Р-
Б = £ КЬ(р\р3),
3 = 1
КЬ(р\р3) = р^ + (1 — Р) ^
Рз 1 Рз
Производная штрафной функции:
дКЬ(р\р3) р 1 — р
—--^--г
дрз
Рз 1 — Рз
(9)
(10) (11)
(12)
4. Рекурсивный автоэнкодер и векторное представление текста
В данном разделе рассмотрим, как представить текст в виде числового вектора. Для решения задачи классификации и других задач с помощью нейронных сетей вход должен иметь фиксированную длину, а длина текста является произвольной. Для фиксирования размера входов нейронных сетей используется метод векторного представления текста с помощью рекурсивного автоэнкода, входной и выходной слои которого имеют 2К нейронов, а скрытый слой - К нейронов [9].
Автоэнкодер объединяет два слова ж1, х2 (вектор длины 2К) в один вектор у (длина К):
У = / (№ (1)[х1,х2] + Ь(1)).
(13)
Этот процесс повторяется N — 1 раз для текста длиной N. В результате получается конечный вектор - семантическое векторное представление текста, этот вектор используется как вход для системы обучения.
Рис. 7. Автоэнкодер
5. Кластеризация значений слова 5.1. K-means
К-шеаи8 - наиболее популярный метод кластеризации, был изобретён в 1950-х годах математиком Гуго Штейнгаузом и почти одновременно Стюартом Ллойдом, особую популярность приобрёл после работы Маккуина. Действие алгоритма таково, что он стремится минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров [10]:
3 (у ) = Е Е —(14)
3 3
Функция к-шеапв состоит из двух этапов.
1. Первая фаза предназначена для поиска приближенного значения центроидов кластеров и предварительной группировки объектов в кластеры. Все объекты группируются в ближайшие к ним кластеры с последующим расчетом расстояний между объектами и центроидами. Однократное приближение при группировке всех объектов выполняется за одну итерацию.
2. Вторая фаза предназначена для поиска точного и окончательного решения. Группировка каждого из объектов по кластерам с последующим расчетом его расстояния до центроида на этой фазе выполняется по критерию минимизации внутрикластерной суммы расстояний объектов до центроидов кластеров. На каждой итерации расчет выполняется по всем объектам исходного множества.
Недостатком итерационного алгоритма функции к-шеаш является возможность попадания решения в локальный минимум внутрикластерной суммы расстояний точек кластера до его центроида по к кластерам. Эта проблема может быть решена соответствующим выбором начальной точки в начале процедуры кластеризации объектов.
5.2. Маркировка значений слова
Во-первых, следует получить все возможные векторы слов, затем векторы используются, чтобы построить векторы контекстов с применением автоэнкодера [4]. Например, имеется миллион векторов описания слова «замок», далее необходимо выполнить вычисления по алгоритму К-Means для этих векторов. В результате можно маркировать каждое слово со значением. Таким образом, все омонимы будут маркированы по значению, тогда можно использовать эти результаты для задачи снятия омонимий.
Литература
1. Омонимы в русском языке. http://gramma.ru/
2. Bengio Y., Ducharme R., Vincent P., Jauvin Ch. A neural probabilistic language model. In Journal of Machine Learning Research, 2003. P. 1137-1155.
3. Mikolov T. [et al.]. Distributed representations of words and phrases and their compositionality. Advances in neural information processing systems. 2013.
4. Word2Vec Project https://code.google.com/p/word2vec/
5. Mikolov T., Le Quoc V., Sutskever I. Exploiting similarities among languages for machine translation. arXiv preprint arXiv:1309.4168 (2013).
6. Zou W.Y., Socher R., Cer D.M., Manning C.D. Bilingual Word Embeddings for Phrase-Based Machine Translation // EMNLP. 2013. P. 1393-1398.
7. Stanford UFLDL tutorial. Multilayer neural networks. http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/
8. Stanford UFLDL tutorial. Autoencoders. http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/
9. Socher R., Pennington J., Huang E.H., Ng A.Y., Manning Ch.D. Semi-Supervised Recursive Autoencoders for Predicting Sentiment Distributions. 2011.
10. Алгоритм K-means. https://ru.wikipedia.org/wiki/K-means References
1. Homonyms in Russian language. http://gramma.ru/
2. Bengio Y., Ducharme R., Vincent P., Jauvin Ch. A neural probabilistic language model. In Journal of Machine Learning Research, 2003. P. 1137-1155.
3. Mikolov T. [et al.]. Distributed representations of words and phrases and their compositionality. Advances in neural information processing systems. 2013.
4. Word2Vec Project https://code.google.com/p/word2vec/
5. Mikolov T., Le Quoc V., Sutskever I. Exploiting similarities among languages for machine translation. arXiv preprint arXiv:1309.4168 (2013).
6. Zou W.Y., Socher R., Cer D.M., Manning C.D. Bilingual Word Embeddings for Phrase-Based Machine Translation. EMNLP. 2013. P. 1393-1398.
7. Stanford UFLDL tutorial. Multilayer neural networks. http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/
8. Stanford UFLDL tutorial. Autoencoders. http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/
9. Socher R., Pennington J., Huang E.H., Ng A.Y., Manning Ch.D. Semi-Supervised Recursive Autoencoders for Predicting Sentiment Distributions. 2011.
10. K-means algorithm. https://ru.wikipedia.org/wiki/K-means
Поступила в редакцию 09.11.2015.