Выбор ответа Senior Кластеризация и снижение размерности обновлено

PCA или UMAP для признаков

Вопрос

Нужно снизить размерность эмбеддингов с 768 до 64 перед kNN-поиском в проде. Что разумнее?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: PCA (или обученная проекция): линейная, детерминированная, быстро применяется к новым точкам. Для снижения размерности как шага пайплайна важны стабильность, скорость трансформации новых объектов и сохранение расстояний.

Варианты ответа

  1. PCA (или обученная проекция): линейная, детерминированная, быстро применяется к новым точкамправильный ответ
  2. t-SNE до 64 измерений с perplexity 30: он лучше всех сохраняет соседства для kNN-поиска
  3. UMAP с perplexity 30: он нелинейный и сохраняет структуру лучше PCA при любых данных
  4. Случайно выбрать 64 координаты из 768: по Джонсону-Линденштрауссу расстояния сохранятся

Разбор

Для снижения размерности как шага пайплайна важны стабильность, скорость трансформации новых объектов и сохранение расстояний. PCA даёт всё это и легко проверяется по доле объяснённой дисперсии и recall поиска. t-SNE предназначен для визуализации в 2-3 измерения и не обобщается на новые точки. UMAP умеет transform, но стохастичен, медленнее и искажает расстояния; perplexity вообще параметр t-SNE.

  • t-SNE в 64 измерения практически не используют.
  • У UMAP нет perplexity и он не «всегда лучше».
  • Случайный отбор координат теряет информацию; лемма Джонсона-Линденштраусса про случайную проекцию (смешивание всех координат), а не про выбор подмножества, она иногда уместна.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме