Detection или segmentation для поиска по фото
Пользователь загружает фото товара, а система должна найти похожие товары в каталоге. Когда достаточно object detection, а когда нужна segmentation?
Сначала проговорите ответ вслух или тезисами.
Формулы, план решения, риски и примеры.
Откройте разбор только после своей попытки.
Показать разбор
Короткий ответ
Detection подходит, если нужен bounding box основного объекта; segmentation нужна, когда фон/соседние предметы сильно мешают эмбеддингу или важны тонкие границы.
Подробный разбор
Для visual search обычно сначала локализуют объект, затем считают embedding по crop. Bounding box дешевле, проще размечается и часто достаточен для одежды, обуви или предметов на чистом фоне. Segmentation имеет смысл, если background leakage ломает similarity, объект имеет сложную форму, нужно отделять товар от модели/интерьера или несколько объектов пересекаются.
На проде решение зависит от latency, стоимости разметки, качества retrieval после crop и доли плохих фото. Хороший ответ предлагает сравнить варианты через retrieval NDCG/Recall@K, manual error analysis и online метрики.
Типичные ошибки
- Выбирать segmentation как более модную модель без продуктовой причины.
- Оценивать detector только по mAP, а не по качеству поиска.
- Забывать про fallback, когда объект не найден.
Как сказать на собеседовании
- Свяжи выбор CV-модели с downstream retrieval quality, а не только с CV-метрикой.
Агрегация нескольких фото товара
У товара может быть несколько фотографий: общий вид, детали, разные ракурсы. Как получить устойчивое представление товара для поиска по фото?
Сначала проговорите ответ вслух или тезисами.
Формулы, план решения, риски и примеры.
Откройте разбор только после своей попытки.
Показать разбор
Короткий ответ
Считать embedding на каждое фото и агрегировать max/attention/learned pooling, сохраняя также per-photo embeddings для детализации и explainability.
Подробный разбор
Один embedding на весь товар удобен для индекса, но теряет детали. Практичный дизайн: хранить per-image embeddings, выделять main-photo embedding и агрегированный product embedding. На retrieval этапе можно искать по нескольким векторам или брать top candidates по product embedding, а затем rerank-ить по лучшему совпадению query image с конкретным фото.
Для атрибутов полезно агрегировать не только векторы, но и предсказания цвета, категории, бренда, силуэта. Нужны веса по типу фото, качеству, zoom/detail и позиции в карточке.
Типичные ошибки
- Усреднить все фото без учета качества.
- Удалить per-photo embeddings и потерять точное совпадение деталей.
- Не учитывать, что главное фото часто отличается от detail shots.
Как сказать на собеседовании
- Предложи двухступенчатую схему: быстрый retrieval и более дорогой reranking по нескольким фото.
Open vocabulary цвета и атрибутов
Каталог содержит много цветов и текстовых описаний, а пользователи ищут по фото. Как извлекать и использовать цветовые атрибуты, если словарь не полностью закрыт?
Сначала проговорите ответ вслух или тезисами.
Формулы, план решения, риски и примеры.
Откройте разбор только после своей попытки.
Показать разбор
Короткий ответ
Совместить закрытую taxonomy для фильтров с open-vocabulary embeddings/VLM для long tail, а качество проверять на retrieval и attribute precision.
Подробный разбор
Для продовой навигации нужен нормализованный словарь цветов: черный, белый, красный, бежевый и т.п. Но реальные фото дают оттенки, паттерны и маркетинговые названия. Поэтому стоит иметь несколько слоев: CV-классификатор в базовую taxonomy, цветовые features из изображения, текстовые/VLM-теги для long tail и mapper в canonical attributes.
В visual search цвет может быть hard filter, soft feature в reranker или explanation. Риски: освещение, фон, multi-color items, разные категории и seller metadata noise.
Типичные ошибки
- Считать seller color source of truth.
- Делать цвет жестким фильтром без учета освещения.
- Не разделять single-color и pattern/multicolor товары.
Как сказать на собеседовании
- Покажи, где цвет участвует как constraint, а где как soft signal.
Metric learning для похожих товаров
Как обучить embedding-модель, чтобы поиск по фото возвращал не просто визуально похожие картинки, а товарно релевантные результаты?
Сначала проговорите ответ вслух или тезисами.
Формулы, план решения, риски и примеры.
Откройте разбор только после своей попытки.
Показать разбор
Короткий ответ
Нужны пары/триплеты из поведенческих и каталоговых сигналов, hard negatives из близких категорий и offline evaluation на query-photo to item retrieval.
Подробный разбор
Позитивы можно брать из одинаковых SKU, вариантов одного товара, кликов/покупок после visual search, ручной разметки похожести и товарных групп. Негативы должны быть не случайными, а сложными: та же категория, похожий цвет, другой бренд/фасон, визуально близкий, но нерелевантный item.
Loss: contrastive/triplet, supervised contrastive, ArcFace-подобные варианты или dual encoder с in-batch negatives. Важно учесть category hierarchy: иногда пользователь хочет такой же товар, иногда похожий стиль. Поэтому evaluation должен иметь уровни релевантности.
Типичные ошибки
- Учить на случайных negatives.
- Смешать exact-match и similar-style без явной цели.
- Оценивать только визуальную близость без товарной релевантности.
Как сказать на собеседовании
- Сформулируй несколько типов позитивов и объясни, какие ошибки они оптимизируют.
Retraining и обновление векторного индекса
Каталог и фотографии постоянно меняются. Как организовать переобучение модели и обновление ANN-индекса для visual search?
Сначала проговорите ответ вслух или тезисами.
Формулы, план решения, риски и примеры.
Откройте разбор только после своей попытки.
Показать разбор
Короткий ответ
Разделить cadence модели и индекса: новые товары индексировать инкрементально, модель выкатывать версионированно с backfill embeddings и shadow checks.
Подробный разбор
Пайплайн: ingest новых/измененных фото, quality checks, crop/attribute extraction, embedding, запись в feature store/vector store, инкрементальное обновление ANN. Переобучение модели может быть weekly/monthly или по drift-сигналам, но новая версия требует backfill embedding всего активного каталога или dual-index migration.
Нужны versioned embeddings, rollback, мониторинг latency/recall, доли stale items, failed image processing, distribution drift и quality на holdout queries.
Типичные ошибки
- Переобучить модель и оставить старый индекс.
- Не иметь rollback для индекса.
- Не считать coverage активного каталога.
Как сказать на собеседовании
- Подчеркни версионирование: model_version, embedding_version, index_version.
VLM-теги как признаки для визуального поиска
Можно ли добавлять теги от VLM/image captioning модели в поиск по фото? Где они помогут, а где навредят?
Сначала проговорите ответ вслух или тезисами.
Формулы, план решения, риски и примеры.
Откройте разбор только после своей попытки.
Показать разбор
Короткий ответ
VLM-теги полезны как soft semantic features и debug/explanation layer, но их надо валидировать из-за hallucinations, taxonomy drift и category leakage.
Подробный разбор
VLM может вытаскивать стиль, материал, паттерн, форму и контекст, которые плохо ловятся обычным embedding. Эти признаки можно использовать в reranker, query expansion, attribute matching или для explainability. Но в e-commerce важна точность: неверный бренд, материал или цвет приведет к плохому поиску и модерационным проблемам.
Практичный вариант: ограничить VLM structured schema, делать confidence thresholds, маппить в taxonomy, хранить source/version и сравнивать uplift относительно baseline.
Типичные ошибки
- Использовать свободный caption как истину.
- Не версионировать VLM outputs.
- Не отделять offline enrichment от online latency path.
Как сказать на собеседовании
- Скажи, что VLM-теги должны быть дополнительным сигналом, а не single source of truth.