Comments 4
Слишком сильно напоминает данную статью https://habr.com/ru/articles/540312/, только теперь задача другая.
Что будете делать в случае не английского языка?
И как понять фразу "данных для обучения нет" ? У вас же есть конкретный маркетплейс, могли бы спарсить, попытаться обучить что-то на этом. Воспользоваться идеями ArcFace/ Margin Loss, чтобы понимать, когда у вас появился новый цвет/выбросы.
Так английский язык ведь используется только для изготовления эмбеддингов для CLIP. Потому что CLIP предобучена на парах "изображение - описание на английском", и поэтому английский - её родной язык. Вне зависимости от языка маркетплейса.
Да, вы правы, статья описывается схожий подход, и наш вклад здесь был показать, что CLIP можно успешно использовать в реальных бизнес кейсах на большом масштабе. Материлов как сделать pet-project c помощью него достаточно много, но не все архитектуры при этом могут дать тот же эффект в жизни.
По поводу вопроса с данными - здесь дело не в объеме (товаров очень много), а в разметке. Спарсить можно, но как понять, что метки атрибутов там правильные? Мы разметили часть данных руками и нашли группы товаров, у которых были верные атрибуты для обучения классификационной CNN, но на фоне всего количества товаров и их вариаций, но этого не хватало чтобы добиться от нее хорошей обобщающей способности. Так что в случае большого объема, размеченных товаров "мало" скорее всего значит что их "нет". Но часть данных все равно размечать полезно - для валидации и контроля метрик.
По поводу ArcFace не совсем понял в чем поинт. ArcFace/Margin Loss вместо обычного Cross-Entropy в классификации помог бы понять какие товары не попадают ни в один из классов и понять метрику их близости к этим классам. Но список классов чаще всего фиксированный (атрибуты это кнопки на сайте, их конечное число). Если мы добавляем новый класс, то ArcFace все равно нужно будет переобучать, как и классификацию. CLIP не нужно. Можно использовать метрику близости от ArcFace, но трешхолды близости для каждого класса будут разные и их сложно выбрать, не понятно как получить четкое соответствие с классами, а не top-k. По мне, вариантом с ArcFacе решить эту задачу сложнее, чем с помощью Cross-Entropy, а им, как я говорил, на таком объеме данных не получается.
С языком никаких проблема нет. Во первых, для классификации изображений, из текста нам нужен только список классов, нет проблем указать его на англ. Во вторых, если речь идет о классификации текстов есть multi-lingual версии CLIP для таких случаев, или, на худой конец, можно переводить текст для классификации переводчиком.
И снова изобретаем MDM. Грустно.
Кейс крупнейшего китайского маркетплейса: атрибуция более чем 100 млн товаров технологиями ML без обучения модели