Какие типы NER существуют (BIO, BIOES, span-based)? В чем проблема вложенных сущностей (nested NER)?
Краткий тезис
NER (Named Entity Recognition) — задача извлечения именованных сущностей из текста. Существует три основных подхода к разметке: токен-уровневые схемы BIO и BIOES, а также span-based (предсказание интервалов). Основная проблема классических схем — невозможность корректно представить вложенные сущности (nested NER), когда одна сущность полностью содержится внутри другой, например, «Московский государственный университет имени М.В. Ломоносова» (организация) содержит «М.В. Ломоносов» (персона). Для решения этой проблемы применяют layered NER, гиперграфы и multi-label подходы.
----|-------| | Apple | B-ORG | | Inc. | I-ORG | | купила | O | | стартап | O |
1.2 Схема BIOES (Begin, Inside, Outside, End, Single)
Добавляет метки:
- E-XXX — конец сущности
- S-XXX — одиночная сущность (длина 1 токен)
Пример для «Иван купил iPhone»:
| Токен | BIO | BIOES |
|---|---|---|
| Иван | B-PER | S-PER |
| купил | O | O |
| iPhone | B-PROD | S-PROD |
1.3 Сравнение BIO vs BIOES
| Критерий | BIO | BIOES |
|---|---|---|
| Количество меток | 2N+1 | 4N+1 |
| Точность границ | Ниже | Выше (явный E) |
| Сложность обучения | Ниже | Выше |
| Использование | Классические CRF | Современные трансформеры |
1.4 Ограничения
- Не поддерживают вложенные сущности
- Требуют строгой последовательности B → I → I → ... → I
- Проблема с длинными сущностями (разрыв контекста)
2. Span-based: предсказание интервалов
2.1 Идея
Вместо разметки токенов модель предсказывает интервалы (start, end) для каждой сущности. Каждый интервал — это непрерывный отрезок текста.
2.2 Архитектура
- Encoder (BERT, RoBERTa) → эмбеддинги токенов
- Span representation: конкатенация эмбеддингов start и end токенов + ширина спана
- Классификатор: для каждого кандидата (все возможные интервалы) предсказать тип сущности или «None»
2.3 Пример работы
Текст: «Президент США Джо Байден посетил ООН»
- Кандидаты: [0,1] «Президент», [2,3] «США», [4,5] «Джо Байден», [6,6] «посетил», [7,7] «ООН»
- Модель выбирает: [2,3] → LOC, [4,5] → PER, [7,7] → ORG
2.4 Преимущества
- Естественная поддержка вложенных сущностей (интервалы могут пересекаться)
- Не зависит от порядка токенов
- Легче обрабатывать длинные сущности
2.5 Недостатки
- Квадратичная сложность по длине текста (O(n²) кандидатов)
- Требует фильтрации кандидатов (pruning)
- Сложнее обучать из-за большого числа отрицательных примеров
3. Nested NER: «Московский государственный университет»
3.1 Определение проблемы
Вложенные сущности — это сущности, которые полностью содержатся внутри другой сущности. Пример:
- «Московский государственный университет имени М.В. Ломоносова» → ORG
- «М.В. Ломоносов» → PER (вложена в ORG)
3.2 Почему BIO/BIOES не работают
Схема BIO предполагает, что каждый токен принадлежит ровно одной сущности. При вложенности токен «Ломоносова» должен быть одновременно I-ORG и E-PER — что невозможно.
3.3 Примеры из русского языка
| Текст | Внешняя сущность | Вложенная сущность |
|---|---|---|
| «роман «Война и мир»» | WORK (роман) | WORK («Война и мир») |
| «улица Льва Толстого» | LOC (улица) | PER (Лев Толстой) |
| «компания «Рога и копыта»» | ORG | WORK (название) |
3.4 Частотность
По данным исследований (Ringland et al., 2019), до 30% сущностей в реальных текстах могут быть вложенными, особенно в юридических, медицинских и научных текстах.
4. Как решают: layered NER, гиперграфы
4.1 Layered NER (многослойный NER)
Идея: последовательное применение NER с разными уровнями вложенности.
- Первый слой: извлекает внешние сущности (ORG, LOC)
- Второй слой: внутри найденных интервалов ищет вложенные сущности (PER, WORK)
- Третий слой: ищет сущности третьего уровня вложенности
Архитектура:
- Каждый слой — отдельная модель NER (BIO или span-based)
- Выход предыдущего слоя → маска для следующего
- Можно использовать общий encoder + layer-specific heads
Плюсы:
- Простота реализации
- Хорошая интерпретируемость
- Масштабируется до N уровней
Минусы:
- Ошибки накапливаются (error propagation)
- Не поддерживает пересекающиеся сущности (например, A внутри B и B внутри A)
- Фиксированная глубина вложенности
4.2 Гиперграфы (Hypergraph NER)
Идея: представление всех возможных сущностей и их отношений в виде гиперграфа, где узлы — токены, а гиперребра — сущности.
Математическая модель:
- Гиперграф G = (V, E), где V — токены, E — сущности
- Каждое ребро e ∈ E — это подмножество V (интервал)
- Ребра могут пересекаться (вложенность)
- Задача: найти все ребра и их типы
Архитектура:
- Encoder: BERT → эмбеддинги токенов
- Hypergraph construction: генерация всех возможных интервалов (кандидатов)
- Hypergraph neural network: GNN, которая учитывает пересечения ребер
- Классификация: для каждого ребра предсказать тип
Плюсы:
- Полная поддержка вложенности и пересечений
- Теоретически обоснована
- Гибкость
Минусы:
- Высокая вычислительная сложность
- Сложность обучения
- Редко используется на практике
4.3 Multi-label NER
Идея: каждый токен может иметь несколько меток одновременно.
Плюсы:
- Простая реализация на основе BIO
- Не требует сложных архитектур
Минусы:
- Не решает проблему границ (нужно дополнительно определять, где начинается вложенная сущность)
- Требует постобработки
4.4 Сравнение подходов
| Подход | Поддержка вложенности | Сложность | Точность | Скорость |
|---|---|---|---|---|
| BIO/BIOES | Нет | Низкая | Средняя | Высокая |
| Span-based | Да | Средняя | Высокая | Средняя |
| Layered NER | Да (ограниченно) | Средняя | Высокая | Средняя |
| Гиперграфы | Да (полная) | Высокая | Очень высокая | Низкая |
| Multi-label | Частично | Низкая | Средняя | Высокая |
5. Пет-проект для закрепления
Задача: Реализовать сравнение BIO и span-based подходов для задачи NER на русском тексте с вложенными сущностями.
Инструменты:
- Python 3.10+
- transformers (BERT multilingual)
- spaCy для базового NER
- datasets (Russian NER datasets: RuNNE, BSNLP)
- PyTorch для реализации span-based модели
Шаги:
-
Подготовка данных:
- Загрузить датасет RuNNE (Russian Nested Named Entities)
- Разделить на train/val/test
- Преобразовать в BIO и span форматы
-
Реализация BIO модели:
- Fine-tune BERT с CRF-слоем
- Использовать стандартную кросс-энтропию
-
Реализация span-based модели:
-
Оценка:
-
Анализ:
- Сравнить время инференса
- Построить confusion matrix для типов сущностей
- Выявить типичные ошибки каждого подхода
Ожидаемый результат:
- Рабочий Jupyter notebook с двумя моделями
- Таблица сравнения метрик
- Вывод: span-based подход показывает F1 на 5-10% выше на вложенных сущностях, но в 2-3 раза медленнее
- Рекомендации: для production использовать BIO + layered NER, для исследовательских задач — span-based
Связь с другими вопросами
Навигация
- Предыдущий: 903
- Следующий: 905
- Индекс: 00. Индекс разборов