Соавтор: Джейкоб Бамбергер

Введение

Наша история начинается в IV веке до нашей эры, в Афинах. В то время один из величайших умов западной философии Платон сидел в одиночестве в своей любимой таверне недалеко от акрополя, потягивая вино. Он думал о проблеме существования. Он хотел понять, что такое природа, человечество и вселенная и почему они есть. Из чего состоят небесные тела? — недоумевал философ. Ясно, что они не могут быть сделаны из камней, иначе они бы уже упали! Ни воды, иначе бы они уже капали на Землю… Воздух невидим, поэтому его тоже исключим. Как насчет огня? Пламя поднимается к небу: это может быть важным признаком! Мне просто нужно найти более убедительный аргумент, и тогда я напишу об этом свою научную статью. Эта статья будет известна потомкам как Метафизика. Одно из его достижений состояло в том, что он связал основные элементы природы (камни, воду, воздух, огонь) с правильными геометрическими формами: он смог вывести из простых геометрических принципов, что звезды и луна не являются ни из камней, воды, воздуха и огня! Скорее, они должны были состоять из 5-го элемента, легче огня, который он назвал Эфир.

Как Платон пришел к такому выводу? Что ж, он (или, может быть, математики архимедовой школы) доказал, что правильных тел всего пять: те, что сейчас известны как платоновые тела. Тогда гипотеза заключалась в том, чтобы связать с каждым из них элемент физической земли: камни, воду, воздух и огонь. А что за 5-й? И самое главное, где мы его найдем? Чтобы дать ответ на этот вопрос, он пришел к выводу, что небесные тела должны состоять из 5-го элемента.

Какое отношение история выше имеет к естественному языку? Что ж, в этой статье мы исследуем отношения между геометрией и языком, и, в частности, если мы предположим, что естественный язык действительно имеет геометрическую структуру, сможем ли мы использовать ее и вывести геометрическое определение значения слова? Каким-то образом мы пытаемся подражать рассуждениям Платона и надеемся открыть какой-то новый интересный взгляд на естественный язык.

ПРИМЕЧАНИЕ: В следующем разделе мы собираемся показать конкретные результаты устранения неоднозначности слов: полный блокнот с работающим кодом можно найти здесь.

Основная интуиция

Давайте сосредоточимся на конкретной проблеме слова значение неоднозначности. Эта проблема состоит в том, чтобы понять из контекста, имеют ли два омографических слова одинаковое значение или нет.

Рассмотрим пару примеров:

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

и

«Не имея абсолютного слуха, большинство из нас не может установить эту связь — например, обозначить ноту как «ре». Но забиваются ли связи и ярлыки во время уроков музыки, или некоторые дети просто рождаются со способностями к определению высоты тона? На этот вопрос сложно ответить, поскольку родители-музыканты часто передают своим детям страсть к музыке, а также свои гены».

В приведенных выше примерах слово «нота» имеет два разных значения: либо глагол, либо звук с четко определенной частотой. Могут ли алгоритмы машинного обучения и глубокого обучения понять эту разницу? Что ж, стандартные инструменты, основанные на встраивании слов, просто не справились бы с этим: причина в том, что встраивания слов учитывают только графему (т. е. то, как пишется слово) при создании отображения в векторном пространстве. ! Следовательно, независимо от того, является ли «нота» глаголом или музыкальной высотой, графема всегда одна и та же, как и представляющий вектор [2].

Проблема с встраиванием слов

Встраивание слов — это метод НЛП, который преобразует токен (слово, лишенное некоторых окончаний) в числовой массив (это преобразование называется векторизацией). Этот шаг необходим, чтобы разрешить ввод естественного языка в модели машинного обучения (которые требуют либо чисел, либо массивов чисел в качестве входных данных). Один из самых известных алгоритмов векторизации называется word2vec. Структура word2vec представляет собой простую нейронную сеть, которая принимает в качестве входных данных слово и выводит соответствующее вложение слова. Такой алгоритм обучается угадывать пропущенное слово в предложении на основе соседних слов этого предложения. Подробнее можно посмотреть здесь.

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

Основной инструмент: локальная гомология

Рассмотрение соседних векторизованных токенов данного слова — это подход, который мы используем здесь: как именно мы можем описать в числовых терминах форму соседства слова? Понятия из алгебраической топологии пригодятся, когда мы хотим описать фигуры алгебраически: в частности, мы собираемся использовать понятие локальной гомологии.

Локальные гомологии — это изучение формы окрестности точки, вложенной в топологическое пространство. Давайте рассмотрим точку на пересечении двух прямых и точку в середине плоскости. Эти две точки, с точки зрения локальной гомологии, очень разные. Почему? Да потому, что окрестности двух таких точек выглядят очень по-разному!

Мы можем легко обобщить вычисления на любое измерение, которое нам нравится: например. точка, лежащая на сфере, точка, лежащая на вершине двойного конуса… Но как вычислить локальные гомологии?

Точная алгоритмическая процедура вычисления локальных гомологии слишком сложна для подробного описания здесь: суть ее заключается в вычислении стандартной постоянной гомологии суженного относительного множества. «Выделение» означает именно то, что вы видите на рисунке ниже: после того, как вы определите относительный набор интереса (на рисунке ниже пересечение двух линий и диска), вы склеите границу вашего относительного набора.

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

Остался один шаг: как связать эти локальные гомологические вычисления с естественным языком?

Приложения к естественному языку

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

Первое наблюдение заключается в том, что предложения преобразуются в облака точек с помощью word2vec. И слово, которое мы хотим устранить — допустим, это слово «заметка» — является точкой в ​​этом облаке точек. Отсюда вопрос: можем ли мы построить осмысленное топологическое пространство из облака точек (следовательно, дискретного!), чтобы мы могли напрямую применить инструмент локальной гомологии?

Гомология стойкости

Ответ на поставленный выше вопрос — большое ДА! На самом деле мы можем построить множество топологических пространств из облака точек, и следующая анимация дает интуитивное представление о том, как мы можем это сделать:

Более подробное введение в топологический анализ данных (TDA) и его методы вычисления гомологии можно найти здесь.

Таким образом, в зависимости от того, какой масштаб мы рассматриваем (соответствующий радиусу пузырьков на анимации выше), мы можем построить симплициальный комплекс (т. е. многомерный граф, содержащий вершины, ребра, грани,… ): симплициальный комплекс является топологическим пространством и, следовательно, можно выполнять гомологические вычисления.

Визуализация встраивания слов

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

Полученные результаты

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

В алгоритме есть некоторые параметры, которые нужно настроить, и еще предстоит провести полный контрольный анализ многих омографических слов. Но эта задача требует будущей работы!

Заключение

Использование локальной гомологии для устранения неоднозначности слов кажется очень многообещающим направлением. Есть опубликованные препринты и статьи по этой теме, которые следуют одной и той же базовой интуиции: см. [1] и [4].

В то время как общий алгоритм доступен в Джотто-тда [3], систематическое исследование и эталонные тесты все еще отсутствуют: поэтому мы призываем заинтересованного читателя сделать шаг вперед и расширить границы знаний человечества, чтобы лучше понять естественный язык и его язык. геометрическая интерпретация.

[1] Якубовски А. и др., Топология встраивания слов: особенности отражают полисемию, arXiv2011.09413

[2] Миколов Т. и др., Эффективная оценка представлений слов в векторном пространстве, arXiv:1301.3781

[3] Таузин Г. и др., giootto-tda: набор инструментов топологического анализа данных для машинного обучения и исследования данных, arXiv2004.02551

[4] Темчинас Т., Локальные гомологии вложений слов, arXiv1810:10136.