сеньорчикОткрыть в Telegram
← вся теориятеория к собесу · NLP

Классические задачи NLP

Зачем это спрашивают

Классические NLP-задачи (natural language processing) - проверка продуктового рефлекса: с чего начать текстовую задачу и чем её мерить. В эпоху LLM вопрос «а нужен ли тут трансформер» стал только острее.

// Правило темы: регулярка, решающая 90% кейса, лучше недообученной нейросети.

Карта задач и их метрик

Классификация (тональность, темы, спам): от tf-idf + линейной модели до дообученного BERT; метрики - F1/AUC (area under the curve) с оглядкой на дисбаланс. NER (named entity recognition) - разметка спанов сущностей в BIO-схеме (begin, inside, outside); метрика - F1 по сущностям, потокенная завышает: половина сущности это провал, а токены «угаданы».

Поиск и похожесть: BM25 - лексика, векторный поиск - семантика, гибрид обычно бьёт оба. Метрики - NDCG (normalized discounted cumulative gain)/MRR.

// Извлечение информации - типовой прод-пайплайн документов: NER + связывание + нормализация дат и сумм.

BIO-схема
разметка спанов: Begin/Inside/Outside - стандарт NER
span-F1
F1 по целым сущностям, не по токенам

Суммаризация: извлечь или сгенерировать

Экстрактивная суммаризация выбирает готовые предложения из текста: надёжно, дёшево, без выдумок. Абстрактивная генерирует новый текст: читабельнее и качественнее, и рискованнее, потому что умеет галлюцинировать.

Метрики генерации - ROUGE/BLEU - считают пересечение n-грамм: парафраз хорошего ответа они накажут, фактическую ошибку не заметят. Человеческая оценка обязательна.

// Выбор по цене ошибки: юридические и медицинские тексты - экстрактивная или генерация с цитатами; новостные дайджесты - можно абстрактивную.

ROUGE / BLEU
пересечение n-грамм; не ловят факты и парафразы

Бейзлайн прежде всего

Порядок захода в любую текстовую задачу: правила и словари → tf-idf + линейная модель → тяжёлые модели. Каждая ступень оправдывается приростом метрики над предыдущей.

Без лексического бейзлайна нечем оценить прирост от BERT: «85% точности» это много или мало? Если правило даёт 82% это мало.

// Дисбаланс в тональности стандартен: 90% нейтральных отзывов делают accuracy бессмысленной - сразу F1 по классам.

Как отвечать: «Тебе дали задачу классификации текстов. С чего начнёшь?»

С данных и бейзлайна, не с модели. Смотрю распределение классов - при дисбалансе выбираю F1 по классам, а не accuracy. Первый бейзлайн - правила и словари: иногда они закрывают задачу. Второй - tf-idf с логрегом: быстрый, интерпретируемый, на длинных текстах часто почти не уступает трансформерам. И только если прирост нужен и данных достаточно - дообучаю BERT-класс модель, оценивая на том же сплите. Так у каждой ступени сложности есть цифра, которая её оправдывает.

Лестница с обоснованием каждой ступени и метрика под дисбаланс - дисциплина, которую проверяет вопрос.

На чём валят

  • Мерить NER потокенно - метрика завышена: половина сущности - провал.
  • Оценивать генерацию только ROUGE/BLEU - n-граммы не ловят факты и парафразы.
  • Начинать с тяжёлой модели без лексического бейзлайна - нечем оценить прирост.
  • Accuracy на 90% нейтральных отзывов - дисбаланс делает её пустой.

Проверьте себя

Пять вопросов из банка по этой подтеме. Всего их 11, остальные разбираются в тренажёре.

  1. #classic_tasks1 / 5
    POS-теггинг и NER — разметка последовательности. Почему классически брали CRF/HMM, а не независимый классификатор на токен?
    A)Модель CRF работает существенно быстрее независимого потокенного классификатора за счёт более простой независимой потокенной архитектуры
    B)HMM — это основной способ токенизировать сырой текст
    C)Метки соседних токенов зависимы (после «B-ORG» вероятнее «I-ORG»); CRF/HMM моделируют переходы меток
    D)Независимый классификатор сложно обучить на текстовых данных
    показать ответ и разбор
    +C)Метки соседних токенов зависимы (после «B-ORG» вероятнее «I-ORG»); CRF/HMM моделируют переходы меток

    // разбор: Метка токена зависит от соседних: после «B-PER» идёт «I-PER», «O» редко сменяется «I-*». Независимый классификатор игнорирует эти зависимости и даёт несогласованные последовательности. HMM/CRF моделируют вероятности переходов между метками и находят оптимальную последовательность целиком (Витерби). CRF ещё и использует произвольные признаки. Ту же идею у нейросетей даёт CRF-слой поверх.

  2. #classic_tasks2 / 5
    Что делает тематическое моделирование (LDA)?
    A)Классифицирует все документы коллекции строго по заранее заданному человеком фиксированному набору меток
    B)Автоматически переводит документы между разными языками
    C)Вручную считает точное число слов в каждой заранее известной теме
    D)Без разметки находит скрытые темы (распределения слов) и представляет документ смесью этих тем
    показать ответ и разбор
    +D)Без разметки находит скрытые темы (распределения слов) и представляет документ смесью этих тем

    // разбор: LDA (Latent Dirichlet Allocation) — unsupervised: каждый документ — смесь тем, а тема — распределение по словам. По корпусу выводит и темы (наборы характерных слов), и тематический состав каждого документа, без меток. Полезно для разведки коллекций, тегирования, признаков. Отличие от классификации (метки заданы) и жёсткой кластеризации (документ может принадлежать нескольким темам). Число тем задаётся заранее.

  3. #classic_tasks3 / 5
    Классический способ найти значимые словосочетания (collocations), например «сильный дождь», а не «сильный стол»?
    A)Просто взять и выписать самые частотные пары подряд идущих слов из всего корпуса без каких-либо поправок и фильтров
    B)Мерить, встречаются ли слова вместе чаще ожидаемого при независимости (PMI, лог-правдоподобие)
    C)Отсортировать все слова корпуса по алфавиту
    D)Удалить из корпуса все редкие слова
    показать ответ и разбор
    +B)Мерить, встречаются ли слова вместе чаще ожидаемого при независимости (PMI, лог-правдоподобие)

    // разбор: «Самые частые пары» дадут «и в», «на этом» — частотные, но не осмысленные. Коллокации выявляют мерами ассоциации: PMI (pointwise mutual information) и лог-правдоподобие оценивают, насколько совместная частота пары превышает произведение частот при независимости. «Сильный дождь» встречается вместе чаще случайного, «сильный стол» — нет. PMI переоценивает редкие пары, поэтому его сглаживают/фильтруют по частоте.

  4. #classic_tasks4 / 5
    Определить по отзыву, доволен клиент или нет. Как называется эта задача?
    A)Распознавание именованных сущностей (NER)
    B)Тематическое моделирование корпуса
    C)Классификация текста (анализ тональности)
    D)Языковое моделирование последовательности
    показать ответ и разбор
    +C)Классификация текста (анализ тональности)

    // разбор: На входе документ, на выходе одна метка из фиксированного набора — это классификация текста, а её частный случай про эмоциональную окраску зовут анализом тональности. Бейзлайн собирается за час: TF-IDF плюс логистическая регрессия. Грабля — отрицания и сарказм: мешок слов их не ловит, потому что порядок слов в нём потерян.

  5. #classic_tasks5 / 5
    Чем выход задачи NER отличается от выхода классификации текста?
    A)NER возвращает вероятность, а классификация — готовую метку
    B)Метка приписывается каждому токену, а не документу целиком
    C)NER обходится без размеченных данных, а классификация требует их
    D)NER работает по правилам, а классификация — по обученной модели
    показать ответ и разбор
    +B)Метка приписывается каждому токену, а не документу целиком

    // разбор: Классификация сворачивает документ в одну метку. NER — разметка последовательности: каждому токену выдаётся тег (обычно в схеме BIO: B-PER, I-PER, O), а сущность собирается из подряд идущих тегов. Отсюда и метрики другие: считают не accuracy по документам, а F1 по извлечённым сущностям с точным совпадением границ.

дальше

Теорию прочитали. Навык ставится повторением

В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, лимит только на количество вопросов в день.