Какой алгоритм глубокого обучения использует Spacy при обучении пользовательской модели? - PullRequest
0 голосов
/ 24 февраля 2020

Когда мы обучаем пользовательскую модель, я вижу, что у нас есть параметры dropout и n_iter для настройки, но какой алгоритм глубокого обучения использует Spacy для обучения пользовательских моделей? Кроме того, когда добавляется новый тип сущности, хорошо ли создавать бланк или обучать его на существующей модели?

1 Ответ

0 голосов
/ 25 февраля 2020

Какой алгоритм обучения использует spaCy?

spaCy имеет собственную библиотеку глубокого обучения под названием thin c, используемую под капотом для различных моделей NLP. Для большинства (если не всех) задач spaCy использует глубокую нейронную сеть на основе CNN с несколькими настройками. Специально для распознавания именованных объектов spacy использует:

  1. A подход, основанный на переходе , заимствованный из синтаксических анализаторов сдвига-уменьшения, который описан в статье Нейронные архитектуры для Признание именованного субъекта Lample et al. Мэтью Хоннибал описывает, как spaCy использует это в видео на YouTube .

  2. Фреймворк, который называется "Вставить. Кодировать. Посещать. Предсказать" ( Начиная с здесь на видео), слайды здесь .

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

    • Кодировать : список слов кодируется в матрицу предложений, чтобы учитывать контекст. spaCy использует CNN для кодирования.

    • Attend : определите, какие части являются более информативными при запросе, и получите описание проблемы c представлений.

    • Predict : spaCy использует многослойный персептрон для вывода.

Преимущества этой структуры для Хоннибала:

  1. В основном эквивалентно тегированию последовательности (еще одна задача, для которой spaCy предлагает модели)
  2. Совместно использует код с анализатором
  3. Легко исключает недопустимые последовательности
  4. Произвольные функции легко определяются

Для полного обзора Мэтью Хоннибал описывает, как модель в это видео на YouTube . Слайды можно найти здесь .

Примечание : эта информация основана на слайдах с 2017 года. Двигатель мог измениться с тех пор.

Когда добавляя новый тип сущности, должны ли мы создать пустую модель или обучить существующую?

Теоретически, при точной настройке модели spaCy с новыми сущностями, вы должны убедиться, что модель не забывает представления для ранее изученные лица. Лучше всего, если это возможно, обучить модель с нуля, но это может быть нелегко или невозможно из-за нехватки данных или ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...