Как работает распознавание элементов

Распознавание элементов, также называемое Распознаванием именованных элементов (NER) - процесс извлечения информации из последовательностей, параграфов, текстовых отчетов и других форм неструктурированного текста. Группа инструментов Анализ текста в наборе инструментов GeoAI содержит инструменты, которые используют методы обработки естественного языка (NLP) для обучения моделей распознавания элементов и использование этих моделей для извлечения элементов из неструктурированного текста.

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

Возможное применение

Ниже приведены потенциальные варианты применения этого инструмента:

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

Модели распознавания элементов в ArcGIS основаны на двух конечных механизмах — один основан на архитектуре Transformer, а другой - на библиотеке spaCy, которая работает в среде Embed, encode, attend, predict.

  • Embed — в этом процессе входной текст преобразуется в уплотненные вставки слов. Эти вставки захватывают семантическую информацию из входного текста, и с ними гораздо проще работать в модели.
    Рабочий процесс Embed
  • Encode — в этом процессе контекст кодируется векторами слов. Это делается с помощью сверточных нейронных сетей остаточной триграммы (CNN).
    Рабочий процесс Encode
  • Attend — выходная матрица из предыдущего шага редуцируется до одиночного вектора, который передается для процесса прогнозирования по стандартной сети прямого распространения. Этот шаг имеет схожий эффект с механизмом attention.
    Рабочий процесс Attend
  • Predict — последний шаг в модели - выполнение прогнозирования на основании входного текста. Это вектор слоя attention, прошедший через мультислойный перцептрон, и возвращающий ID маркировку элемента.
    Рабочий процесс Predict

Конечный механизм на базе преобразователя использует архитектуру, предложенную Vaswani и др. в статье Attention Is All You Need. Это позволяет моделям быть более точными и параллельно обрабатываемыми, в то же время требуя менее точных маркированных данных для обучения. Внутренне модели распознавания элементов на основе преобразователей в ArcGIS состоят из двух компонентов:

  • Encoder — кодировщик служит основой модели и преобразует входной текст в представление объектов в виде векторов фиксированного размера. Эти модели используют известные схемы кодирования BERT, ALBERT и RoBERTa, которые основываются на архитектуре преобразователя и предварительно обучают большие объемы текста.
  • Классификатор уровня токена — классификатор уровня токена служит головным элементом модели и классифицирует представление объектов каждого токена по нескольким категориям, представляющим различные элементы. Классификатор часто представляет собой простой линейный слой в нейронной сети.
Компоненты модели распознавания элементов

Примечание:

Модели НЛП могут быть мощными инструментами при автоматизации анализа огромных объемов неструктурированного текста. Как и в случае с другими типами моделей, следует позаботиться о том, чтобы они применялись к соответствующим задачам, с необходимым уровнем контроля со стороны человека и прозрачностью в отношении типа модели и обучающих наборов данных, используемых для обучения модели.

Использование модели распознавания элементов

Вы можете использовать инструмент Извлечь элементы при помощи глубокого обучения, чтобы применить обученную модель распознавания элементов к неструктурированному тексту и извлечь полезную информацию в форме структурированных данных. Вы можете использовать предварительно обученные модели распознавания из ArcGIS Living Atlas of the World, или обучить свои собственные модели, используя инструмент Обучить модель распознавания элемента.

Входные данные для инструмента Извлечь элементы при помощи глубокого обучения - папка, содержащая текстовые файлы, из которых будет выполняться извлечение именованного элемента. Входной моделью может быть JSON-файл определения модели Esri (.emd) или пакет модели глубокого обучения (.dlpk). Модель содержит путь к файлу модели глубокого обучения (содержащему веса модели) и другим параметрам модели. Некоторые модели могут иметь дополнительные аргументы модели:

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

Хотя инструмент может работать на ЦПУ, для обработки рекомендуется использовать графический процессор, так как глубокое обучение требует больших вычислительных затрат. Чтобы запустить этот инструмент с использованием графического процессора, установите для параметра среды Тип процессора значение GPU. Если у вас более одного графического процессора, вместо этого задайте для параметра среды значение GPU ID.

Обучение модели распознавания элементов

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

Обучающие данные предоставляются в виде папки, содержащей обучающие данные в формате стандартных наборов данных для задач NER. Обучающие данные в виде файлов .json или .csv. Ниже приведены поддерживаемые типы наборов данных:

  • ner_json — папка должна содержать файл .json с текстом и маркированными элементами, форматированными с использованием обучающего формата spaCy’s JSON.
  • IOB — Формат inside, outside, beginning (IOB), предлагаемый Ramshaw и Marcus в статье "Text Chunking using Transformation-Based Learning.". В этом формате папка должна содержать следующие два файла .csv:
    • token.csv — Файл должен содержать текст в виде входных фрагментов.
    • tags.csv — файл должен содержать теги IOB для текстовых фрагментов.
  • BILUO — расширение формата IOB, который содержит следующие теги: B - 'beginning' (в начале), I - 'inside' (внутри), L - 'last' (последний), U -'unit (секция), O - 'outside' (извне). При использовании этого формата папка, содержащая обучающие данные должна содержать следующие два файла .csv:
    • token.csv — Файл должен содержать текст в виде входных фрагментов.
    • tags.csv — файл должен содержать теги BILUO для текстовых фрагментов.

Для получения дополнительной информации об этих форматах и данных маркировки в этих форматах см. Текст маркировки с использованием руководства Doccano.

При обучении модели распознования элементов вы можете выбрать, тренировать ли модель с начала, или провести настройку уже обученной модели.

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

Предварительно обученная модель может быть представлена файлом определения модели Esri (.emd) файлом пакета глубокого обучения (.dlpk). Выходная модель также сохраняется в этих форматах в указанной папке выходной модели.

Модель распознавания элемента ArcGIS обучает элементы адреса не так, как другие элементы. Если элемент распознан как местоположение, он должен быть определен как элемент адреса в параметрах инструмента. В процессе вывода эти объекты геокодируются с использованием указанного локатора, и в результате процесса извлечения элементов создается класс пространственных объектов. Если локатор не указан, или обученная модель не извлекает элементы адресов, будет создана таблица, содержащая извлеченные элементы.

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

Параметр Опорная модель задает предварительно настроенную нейронную сеть, которая будет использоваться в качестве базовой архитектуры для обучения новой модели и извлекать представления объектов входного текста. Эти модели поддерживает схемы кодирования BERT, ALBERT, RoBERTa и spaCy, которые основываются на архитектуре преобразователя и предварительно обучены на больших объемах текста в полуконтролируемом формате.

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

Параметр Скорость обучения является одним из наиболее важных гиперпараметров. Он представляет собой скорость, с которой веса модели будут скорректированы в процессе тренировки. Если вы укажете низкую скорость обучения, модель будет улучшаться постепенно, и обучение может занять много времени, что приведет к потерям времени и ресурсов. Высокая скорость обучения может оказаться контрпродуктивной, и модель будет плохо обучаться. При высоких скоростях обучения веса модели могут быть резко скорректированы, что приведет к получению ошибочных результатов. Часто рекомендуется не указывать значение для параметра Скорость обучения, чтобы инструмент подобрал ее автоматически, как описано в статье Cyclical Learning Rates for Training Neural Networks, Leslie N. Smith.

Инструмент использует часть обучающих данных (по умолчанию 10 процентов) в качестве набора для проверки. Параметр Процент проверки позволяет настроить количество обучающих данных, используемых для проверки.

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

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

Справочная информация

Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin. "Attention Is All You Need." December 6, 2017. https://arxiv.org/abs/1706.03762.

Honnibal, Matthew. "Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models." https://explosion.ai/blog/deep-learning-formula-nlp.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. "Fully Understanding the Hashing Trick." May 22, 2018. https://arxiv.org/pdf/1805.08539.pdf.

"Doccano." https://github.com/doccano/doccano.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." May 24, 2019. https://arxiv.org/pdf/1810.04805.pdf.

Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks." April 4, 2017. https://doi.org/10.48550/arxiv.1506.01186.

Ramshaw, Lance, and Mitch Marcus. "Text Chunking using Transformation-Based Learning." 1995. In Third Workshop on Very Large Corpora.