Почему в задаче классификации текста важен контекст
Что проверяют
Различаете ли вы мешок слов и контекстные представления, и понимаете ли, что контекст это не только соседние слова, но и то, что вы вообще взяли за единицу текста.
Как отвечать
Начать с примера, где решает порядок. Мешок слов и TF-IDF считают частоты и теряют структуру: «не рекомендую» и «рекомендую, не сомневайтесь» дают почти одинаковый набор униграмм, а классы разные. Тем же болеет многозначность: слово «замок» без соседей не развести, а тема от этого зависит целиком.
Дальше разложить уровни, на которых контекст добавляется:
- n-граммы и подсловные токены поверх линейной модели: дёшево и часто закрывает отрицания;
- статические эмбеддинги дают семантическую близость слов, но вектор слова одинаков в любом предложении;
- контекстные представления из трансформеров-энкодеров: за счёт самовнимания вектор токена зависит от всего окна, омонимы и отрицания разводятся сами;
- внешний контекст: автор, канал, предыдущая реплика в диалоге, время. В прикладных задачах эти признаки нередко дают больше, чем замена модели.
Полезно добавить про цену. Контекст ограничен окном, длинные документы режутся на куски, и класс может определяться ровно тем куском, который во вход не попал. И про проверку: разбирать ошибки на срезе примеров с отрицанием и с омонимами, а не смотреть только на общую метрику.
Где спотыкаются
Отвечают одним словом «трансформеры». Без базовой линии на TF-IDF с биграммами непонятно, сколько контекст реально принёс, а на узком домене простая модель нередко идёт вровень и стоит на порядки дешевле.
Второе: называют статические эмбеддинги контекстными. Контекст там используется при обучении векторов, но на применении слово получает один и тот же вектор в любом предложении, и многозначность это не лечит.
Третье: режут длинные тексты по лимиту токенов и не проверяют, что осталось внутри. Сюда же утечка при разбиении выборки: куски одного документа расходятся по обучению и тесту, метрика радует, а на новых документах модель проваливается.