К обычному разбору
Тренировка по собеседованиюТехническое собеседованиеWildberries2025-01-13

Wildberries technical: поиск по фото и visual search

Идите сверху вниз: сначала попробуйте сами, затем откройте разбор. Если шаг с кодом, пишите решение прямо здесь и запускайте проверки на странице.

Шагов
6
Вопросов
6
Задач
0
1Вопрос10 мин

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-метрикой.
2Вопрос12 мин

Агрегация нескольких фото товара

У товара может быть несколько фотографий: общий вид, детали, разные ракурсы. Как получить устойчивое представление товара для поиска по фото?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Считать 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 по нескольким фото.
3Вопрос14 мин

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.
4Вопрос18 мин

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 без явной цели.
  • Оценивать только визуальную близость без товарной релевантности.

Как сказать на собеседовании

  • Сформулируй несколько типов позитивов и объясни, какие ошибки они оптимизируют.
5Вопрос12 мин

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.
6Вопрос12 мин

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.