NER d'une personne saine : pourquoi les spans vainquent enfin les étiquettes BIO
Долгое время мы учили модели NER по принципу классификации каждого токена. BIO-разметка (Begin, Inside, Outside) стала стандартом, но она избыточна и часто лома

Представьте, что вы строите дом, но вместо того чтобы оперировать кирпичами или целыми стенами, вы заставляете рабочих описывать каждую песчинку в растворе. Примерно этим мы занимались в NLP последние десять лет, используя BIO-разметку для распознавания именованных сущностей (NER). Мы привыкли к мысли, что модель должна пометить каждый токен: вот здесь сущность началась (B), здесь она продолжается (I), а здесь мы уже вышли за ее пределы (O). Это было удобно для математики и старых добрых CRF-слоев, но это чудовищно неэффективно для реальных систем.
Проблема в том, что сущность в тексте — это не цепочка меток, а целостный фрагмент, имеющий физические границы. Когда мы заставляем модель предсказывать теги для каждого отдельного кусочка слова, мы создаем колоссальную избыточность и лишние точки отказа. Любой, кто обучал BERT или его производные для задач NER, знает эту специфическую боль. Современные токенизаторы вроде WordPiece или BPE разбивают сложные слова на подтокены. В итоге простая фамилия может превратиться в три-четыре фрагмента, и вам приходится либо маскировать лишние части, либо выдумывать костыли для их объединения в пост-процессинге. Вы получаете предсказание, которое нужно еще долго и мучительно декодировать, чтобы просто получить ответ на вопрос: Где здесь имя директора?
Переход на span-level подход — это не просто очередное архитектурное излишество, а признание того, что мы слишком долго шли по пути наименьшего сопротивления. Вместо классификации каждого токена современные системы начинают смотреть на текст как на набор потенциальных отрезков (спанов). Модель учится определять границы — индекс начала и индекс конца — и сопоставлять этому отрезку тип сущности. Это сразу и навсегда решает проблему несогласованных последовательностей. В BIO-мире модель могла выдать тег начала организации, а следующим токеном влепить продолжение персоны. В span-level подходе такая логическая ошибка невозможна технически. Модель просто говорит: От третьего до пятого слова у нас локация. И это утверждение атомарно.
Более того, классический BIO-подход абсолютно пасует перед вложенными сущностями (nested entities). Попробуйте адекватно разметить фразу Московский государственный университет, если вашему приложению нужно вытащить и город (Москва), и само учебное заведение как отдельный объект. В рамках одномерной цепочки токенов это превращается в комбинаторный ад или требует наслоения нескольких моделей друг на друга. Спаны решают эту задачу элегантно и естественно: один и тот же участок текста или его подмножество может принадлежать к разным категориям на разных уровнях абстракции. Это критично для юридических документов, где договор вложен в дополнение, которое вложено в акт, или для медицины, где название симптома может быть частью названия сложного синдрома.
Почему об этом важно говорить именно сейчас? Мы стремительно выходим из эпохи лишь бы модель выдала хоть что-то в эпоху промышленного и надежного AI. В реальных пайплайнах чистота данных, простота поддержки и предсказуемость результата стали важнее, чем выжимание лишнего процента F1-меры на заезженных академических датасетах вроде CoNLL-2003. Использование спанов позволяет радикально упростить код, избавиться от сотен строк регулярных выражений для склейки токенов и сделать модели более устойчивыми к специфическому шуму токенизации.
Если ваш NER-модуль до сих пор выдает бесконечную простыню тегов, которую вы потом пытаетесь собрать в осмысленные объекты, вы застряли в прошлом. Современный стек требует прямой работы с границами смысла. Это не только быстрее в разработке, но и банально логичнее с точки зрения лингвистики. Мы ведь не читаем слова по буквам, мы воспринимаем фразы и объекты целиком. Пора бы и нашим моделям начать делать то же самое.
Главное: Пора перестать учить модели видеть токены и начать учить их видеть смысловые блоки. Будущее NER — за архитектурами, которые работают с границами объектов напрямую, оставляя BIO-теги в учебниках истории.