Классические задачи 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, остальные разбираются в тренажёре.
- 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-слой поверх.
- Что делает тематическое моделирование (LDA)?A)Классифицирует все документы коллекции строго по заранее заданному человеком фиксированному набору метокB)Автоматически переводит документы между разными языкамиC)Вручную считает точное число слов в каждой заранее известной темеD)Без разметки находит скрытые темы (распределения слов) и представляет документ смесью этих тем
показать ответ и разбор
+D)Без разметки находит скрытые темы (распределения слов) и представляет документ смесью этих тем// разбор: LDA (Latent Dirichlet Allocation) — unsupervised: каждый документ — смесь тем, а тема — распределение по словам. По корпусу выводит и темы (наборы характерных слов), и тематический состав каждого документа, без меток. Полезно для разведки коллекций, тегирования, признаков. Отличие от классификации (метки заданы) и жёсткой кластеризации (документ может принадлежать нескольким темам). Число тем задаётся заранее.
- Классический способ найти значимые словосочетания (collocations), например «сильный дождь», а не «сильный стол»?A)Просто взять и выписать самые частотные пары подряд идущих слов из всего корпуса без каких-либо поправок и фильтровB)Мерить, встречаются ли слова вместе чаще ожидаемого при независимости (PMI, лог-правдоподобие)C)Отсортировать все слова корпуса по алфавитуD)Удалить из корпуса все редкие слова
показать ответ и разбор
+B)Мерить, встречаются ли слова вместе чаще ожидаемого при независимости (PMI, лог-правдоподобие)// разбор: «Самые частые пары» дадут «и в», «на этом» — частотные, но не осмысленные. Коллокации выявляют мерами ассоциации: PMI (pointwise mutual information) и лог-правдоподобие оценивают, насколько совместная частота пары превышает произведение частот при независимости. «Сильный дождь» встречается вместе чаще случайного, «сильный стол» — нет. PMI переоценивает редкие пары, поэтому его сглаживают/фильтруют по частоте.
- Определить по отзыву, доволен клиент или нет. Как называется эта задача?A)Распознавание именованных сущностей (NER)B)Тематическое моделирование корпусаC)Классификация текста (анализ тональности)D)Языковое моделирование последовательности
показать ответ и разбор
+C)Классификация текста (анализ тональности)// разбор: На входе документ, на выходе одна метка из фиксированного набора — это классификация текста, а её частный случай про эмоциональную окраску зовут анализом тональности. Бейзлайн собирается за час: TF-IDF плюс логистическая регрессия. Грабля — отрицания и сарказм: мешок слов их не ловит, потому что порядок слов в нём потерян.
- Чем выход задачи NER отличается от выхода классификации текста?A)NER возвращает вероятность, а классификация — готовую меткуB)Метка приписывается каждому токену, а не документу целикомC)NER обходится без размеченных данных, а классификация требует ихD)NER работает по правилам, а классификация — по обученной модели
показать ответ и разбор
+B)Метка приписывается каждому токену, а не документу целиком// разбор: Классификация сворачивает документ в одну метку. NER — разметка последовательности: каждому токену выдаётся тег (обычно в схеме BIO: B-PER, I-PER, O), а сущность собирается из подряд идущих тегов. Отсюда и метрики другие: считают не accuracy по документам, а F1 по извлечённым сущностям с точным совпадением границ.
дальше
Теорию прочитали. Навык ставится повторением
В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, лимит только на количество вопросов в день.