Ядро дерева - Tree kernel

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

Мотивация

При обработке естественного языка часто необходимо сравнивать древовидные структуры (например, разбирать деревья ) на сходство. Такие сравнения могут быть выполнены путем вычисления точечные продукты векторов признаков деревьев, но эти векторы имеют тенденцию быть очень большими: техники НЛП достигли точки, когда простое отношение зависимости для двух слов кодируется вектором из нескольких миллионов признаков.[1] Представление сложных структур, таких как деревья, с векторами признаков может оказаться непрактичным. Хорошо спроектированные ядра позволяют вычислять сходство по деревьям без явного вычисления векторов признаков этих деревьев. Более того, методы ядра широко используются в задачах машинного обучения (например, SVM ), и поэтому многие алгоритмы изначально работают с ядрами или имеют расширение, которое обрабатывает ядро.

Примером применения является классификация предложений, например, различных типов вопросов.[2]

Примеры

Дерево синтаксического анализа избирательного округа для предложения: «Кот ест мышь».
То же, что и выше, для предложения: «Мышь ест кошку».

Здесь представлены два примера ядра дерева, примененного к деревьям избирательных округов предложений «Кошка ест мышь». и «Мышь ест кошку». В этом примере «А» и «а» - это одни и те же слова, и в большинстве приложений НЛП они будут представлены одним и тем же токеном.

Эти два ядра интересны тем, что они показывают очень разную степень детализации (ядро дерева подмножества гораздо более детализировано, чем ядро ​​поддерева) при одинаковой сложности вычислений. Оба могут быть вычислены рекурсивно во времени. O (| T1|. | Т2|).[3]

Ядро поддерева

В случае дерева группы интересов поддерево определяется как узел и все его дочерние элементы (например, [NP [D [A]] [N [mouse]]] является поддеревом двух деревьев). Терминалы не считаются поддеревом (например, [a] не является поддеревом). Ядро поддерева подсчитывает количество общих поддеревьев между двумя заданными деревьями.

В этом примере есть семь общих поддеревьев:

[NP [D [a]] [N [cat]]],
[NP [D [a]] [N [мышь]]],
[N [мышь]],
[N [cat]],
[V [ест]],
[D [a]] (считается дважды, поскольку появляется дважды).

Ядро дерева подмножества

Дерево подмножества - это более общая структура, чем поддерево. Основное определение такое же, но в случае деревьев подмножеств листья не обязательно должны быть терминалами (например, [VP [V] [NP]] - дерево подмножеств обоих деревьев), но и здесь отдельные узлы не рассматриваются как деревья. Из-за этого более общего определения существует больше деревьев подмножеств, чем поддеревьев, и больше общих деревьев подмножеств, чем общих поддеревьев.

В этом примере есть 54 общих дерева подмножества. Семь общих поддеревьев плюс среди прочего:

[NP [D] [N]] (засчитывается дважды),
[ВП [В [ест]] [НП]] ...

Смотрите также

Примечания

  1. ^ Макдональд, Райан; Перейра, Фернандо; Рибаров, Кирилл; Гайч, Ян (2005). Непроективный анализ зависимостей с использованием алгоритмов связующего дерева. HLT – EMNLP.
  2. ^ Чжан, Делл; Ли, Ви Сун (2003). Классификация вопросов с использованием опорных векторных машин. СИГИР.
  3. ^ Коллинз, Майкл; Даффи, Найджел (2001). Ядра свертки для естественного языка. Достижения в системах обработки нейронной информации.

Рекомендации

  • Джун Сун, Мин Чжан и Чу Лим Тан. Ядро древовидной последовательности для естественного языка
  • Алессандро Москитти. Делаем ядра деревьев практичными для изучения естественного языка

внешняя ссылка