HighLoad++ 2017
Зал «Найроби+Касабланка», 7 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/3083.html
Конкуренция в e-commerce в настоящее время является одним из главных двигателей в развитии технологий, позволяющих потребителю эффективнее распоряжаться таким важным ресурсом, как время. В свою очередь компании, совершенствуя свои технологические процессы, получают возможность к расширению своего бизнеса.
...
2. Онлайн-продажи одежды
Мировой оборот от онлайн продаж
одежды составляет примерно $100
миллионов в год,
В конкурентной среде улучшение
качества обслуживания является
жизненно необходимым.
Понять, чего вы хотите достаточно тяжело
Но современные достижения в области
“Computer Vision” могут оказать нам помощь
3. Постановка задачи
Хотим:
Повысить качество рекомендаций через похожесть
Проблема
Нет метаданных для полнотекстового поиска,
можем использовать только контент: изображение
Причина:
Весь контент UGC – слабо аннотируется людьми
Будем принимать во внимание только визуальную
информацию: фотографии, загруженные человеком
4. Идея решения
• Каждое изображение представляем как вектор
𝑥 ∈ ℝn
( вектор признаков или эмбединг)
• Определяем меру близости для этих векторов
𝑀 ∶ ℝn × ℝn → ℝ (например, евклидово
расстояние)
• Изображение-запрос так же конвертируем в
вектор
• Осуществляем поиск в векторном пространстве,
используя меру 𝑀, по имеющейся базе
изображений
Фото одежды Вектор признаков
Алгоритм
База данных
Запрос
Топ ранки
5. Сверточная нейронная сеть (CNN)
CNN – суперпозиция
сверточных фильтров и
нелинейных функций…
CNN можно рассмотреть как
“black-box”, для которого мы
задаем данные и определяем
критерий для выхода.
6. Yosinski et al, “Understanding Neural Networks Through Deep Visualization”, ICML DL Workshop 2014.
Внутри CNN
Фильтры каждого
слоя CNN выделяют
определенные
паттерны.
Границы
Текстуры
Части объектов
Layer1
7. Вектор признаков классификатора
Последний слой сети – признаки,
представляющие общие
концепты изображения, важные
для целевой задачи.
Датасет с хорошей
диверсификацией даст нам
хороший набор признаков
ImageNet – собран из более чем
миллиона изображений с
разделением на 1000 классов.
9. Используем признаки ImageNet
Используем последний слой
VGG19, обученной на ImageNet в
качестве вектора признаков
Ответ плохо соответствует
запросу (первая фотография)
10. Классификатор одежды
Для задачи нужны специфические признаки
CNN, обученная предсказывать атрибуты
одежды, будет иметь нужный нам вектор
признаков
Чем больше разных атрибутов, тем лучше
тип
воротника
вид рукава
талия
паттерн
материала
11. Данные для классификатора
Фотографии были собраны из известных онлайн-магазинов
Каждое изображение размечено четырьмя типами атрибутов:
collar, fit, pattern and sleeve. Внутри каждого атрибута категории
являются взаимоисключающими.
Датасет содержит примерно 200.000 изображений.
12. Базовая архитектура
Участники ILSVRC ежегодно
улучшают результат в задачах
распознавания.
Предложенные модели применимы
для других классов задач.
Transfer Learning позволяет
уменьшить количество данных.
13. ResNet
Каждый блок представляет функцию 𝑦 = 𝐹 𝑥 + 𝑥 и
учит разницу между входом и выходом
Такой подход позволяет тренировать сети более с чем
1000 слоями.
ResNet-101 имеет почти в три раза меньше параметров
чем VGG-19
K. He, X. Zhang, S. Ren è J. Sun, “Deep residual learning for image recognition”.
20. Наивный подход к локализации
“Bounding box” описывается
четырьмя координатами.
Тренируем CNN, решая задачу
регрессии.
21. Недостатки наивного подхода
Наивный подход выдает
неаккуратный результат
Не решает задачу в случае: если на
фото нет одежды или более одной
персоны
22. Object Detection
Используем продвинутые подходы
нахождения всех интересующих
объектов на фото.
region proposal based
(R-CNN)
prior-boxes based
(YOLO, SSD)
23. Оценка методов
W. Liu, D. Anguelov, D. Erhan et. al., “Ssd: Single shot multibox detector”. Slides
24. Single Shot Multi-Box Detector
Feed-forward конволюционная сеть
Дополнительные структурные блоки
Использует набор предопределенных bounding boxes
25. SSD: идея
W. Liu, D. Anguelov, D. Erhan et. al., “Ssd: Single shot multibox detector”
28. Landmarks Detection
Для более точной локализации
можно определять опорные точки
(landmark)
В некоторых случаях выравнивание
объектов дает улучшение