Обычно часть категорий PII легко найти с помощью регулярных выражений, а часть через NER. Например, номера телефонов мы искали эвристикой, но что если поручить это самой модели?
После обучения NER-модели на датасете с телефонными номерами мы заметили интересный эффект: модель не просто воспроизводила «регулярку по образцу», а формировала распределённое представление паттернов.
Датасет и модель
Сначала мы подготовили датасет. В него вошли размеченные телефонные номера, начинающиеся с +7 или 8 и записанные в разных форматах: через пробелы, дефисы, скобки или слитно. Иногда рядом с номером встречались слова вроде «телефон» или «мобильный». Несмотря на разнообразие, датасет, разумеется, не покрывал все возможные варианты записи.
В качестве базового чекпойнта мы использовали модель bert-base-multilingual-cased — стандартный мультиязычный BERT, который затем дообучили на задаче NER.
Именно в процессе этого обучения мы заметили эффект обобщения: модель успешно распознавала номера в форматах, которые явно не встречались в обучающей выборке.
Что происходит внутри NER-модели
🟥 Токенизатор разбивает текст на токены — и каждому сопоставляется эмбеддинг. Для числовых последовательностей это цифры и специальные символы. Паттерны вроде группировки цифр и разделителей модель учит из данных.
🟥 Позиционные представления фиксируют, где встречается телефон — в подписи, блоке контактов или после определенных слов.
🟥 Механизм self-attention связывает «странную» последовательность цифр с окружением. Например, учитывает, что такие паттерны в обучающем датасете были размечены как PHONE в похожем контексте.
После нескольких проходов по обучающему датасету модель формирует обобщённое представление телефонных форматов. Конкретный вариант записи может отсутствовать в обучающих данных, однако когда его признаки близки к уже известным примерам, метка PHONE выпадает с высокой вероятностью.
В наблюдаемом эффекте можно выделить два основных источника обобщения:
🟥 Форма: цифры, группы, разделители, плюс в начале.
🟥 Контекст: местоположение в тексте и соседние слова.
В этом подходе модель не опирается на заранее заданные правила сопоставления шаблонов. Поэтому она сохраняет работоспособность даже если формат записи номеров меняется, например, там появляются дополнительные пробелы или скобки. Так происходит до тех пор, пока новый вариант по своим признакам близок к обучающим данным.
Вывод такой — NER-модели способны извлекать не только сложные сущности, такие как имена или локации, но и данные с выраженной структурой, которые традиционно описываются через шаблоны. Это позволяет сократить объём вручную заданных правил.
Автор этого поста, как и нескольких статей по фильтрации данных, Миша Мартьянов — NLP-инженер в R&D red_mad_robot.
#Безопасность