Back to blog

В каталоге розничного продавца появляется новое платье: фотография, краткое описание и никакой истории продаж. Прежде чем оформить первый заказ, закупщику нужны полезные сравнения с товарами, которые продавались раньше. Крой и узор могут значить больше, чем описание, в котором сказано лишь «женское платье».

Теперь Lokad может использовать фотографии товаров в расчётах для цепей поставок. Эта возможность встроена в Envision — язык программирования Lokad для прогнозирования и принятия решений в цепях поставок. Каждое изображение преобразуется в эмбеддинг: компактное числовое описание, которое позволяет использовать визуальную информацию в этих расчётах.

Фотографии товаров и история продаж используются в расчёте для принятия решений о запасах

Что делает эмбеддинг

Фотография содержит миллионы значений пикселей. Модель, обученная на изображениях, преобразует их в гораздо более короткий список чисел — эмбеддинг. Эти числа представляют визуальные закономерности, в том числе формы, текстуры и расположение элементов на снимке. Это не перечень меток вроде «синий» или «длинные рукава».

Сравнение двух эмбеддингов даёт меру визуального сходства. Два летних платья с цветочным узором часто окажутся ближе друг к другу, чем платье и зимнее пальто, даже если у одного платья есть подробное описание, а у другого — только код поставщика. Программа может находить такие связи во всём каталоге без необходимости вручную размечать каждый видимый признак.

Lokad уже использует текстовые эмбеддинги для сравнения описаний. Эмбеддинги изображений дают дополнительное представление о товарах, названия и письменные характеристики которых могут раскрывать лишь часть информации.

Учиться на уже проданных товарах

При запуске нового товара визуальное сходство помогает выбрать прежние товары, истории продаж которых стоит придать вес. Их сезонность, каналы продаж и доступность по-прежнему важны. У похожего платья может быть мало продаж, потому что оно поступило поздно или часто отсутствовало на складе. Эти данные нужно интерпретировать, прежде чем превращать их в прогноз для нового товара.

Ещё одно применение связано с сезонностью. У нового товара нет сезонной истории, но более старые товары с близкими визуальными характеристиками могут подсказать, когда он будет продаваться. Сезонная закономерность определяется продажами с известными датами; изображение помогает модели решить, какие истории релевантны.

Изображения также помогают классифицировать каталоги со скудными описаниями. Классификатор, обученный на собственных категориях продавца, может использовать визуальную информацию, чтобы предложить категорию или отметить товар, который выглядит неуместным. Благодаря этому обогащение каталога не зависит целиком от ручной разметки товаров по одному.

Для замещения и каннибализации сходство позволяет определить возможные альтернативы. Данные о продажах и доступности нужны, чтобы оценить, переключаются ли между ними покупатели и оттягивает ли новый фасон спрос от существующего. Два платья могут выглядеть похоже, но предназначаться разным покупателям и продаваться по разным ценам. Изображение даёт дополнительные сведения модели, которая должна учитывать эти различия.

Повторно используемая часть расчёта

В привычной демонстрации фотографию товара показывают рядом с галереей похожих товаров. Это удобно для просмотра каталога. Расчётам для цепей поставок нужен доступ к лежащему в основе представлению, чтобы применять его и для других целей.

В Envision эмбеддинги можно хранить и использовать в расчётах, подобно числам. Специалисты Lokad по цепочке поставок используют этот язык для разработки логики прогнозирования и принятия решений каждого клиента. Они могут сравнивать эмбеддинги изображений разных товаров и объединять визуальные и текстовые сигналы в модели вместе с ценами, транзакциями и наличием запасов.

Эти расчёты могут участвовать в autodiff — механизме Envision для обучения параметров модели на основе наблюдений. Специалист может настроить модель, которая учится связывать визуальную информацию с продажами в бизнесе клиента. Модель изображений предоставляет визуальное представление, а данные клиента учат модель цепи поставок его использовать.

Изображение становится эмбеддингом, который объединяется с бизнес-данными для прогнозов, сезонных закономерностей и оценок замещения

Одно представление изображения может служить нескольким моделям. Для каждого применения нужны собственные бизнес-данные и проверка.

Рецепт расчёта, разработанный для прогнозирования запусков, впоследствии может потребовать учёта нового фасона, конкурирующего с текущим ассортиментом. Визуальная информация остаётся доступной для этой работы. Специалист может расширить расчёт, не создавая ещё один сервис обработки изображений.

Инженерная работа за несколькими строками

Мы используем предварительно обученную модель изображений, разработанную другой командой. Наши инженеры делают эту модель пригодной для расчётов цепей поставок, которые должны надёжно выполняться каждый день.

По моему опыту, прототип для оценки визуального сходства — это несколько часов работы на Python. Создать его было вполне посильно и до появления агентов программирования; они ещё больше упрощают задачу. Объём кода, который может выдать агент, мало говорит о бремени ответственности за этот код.

Прототип, собранный из программных пакетов, наследует код от их сопровождающих и от сопровождающих их зависимостей. Скомпрометированный пакет может поставить под угрозу данные и учётные данные, доступные этому процессу. Даже полезные пакеты, поддерживаемые добросовестными разработчиками, могут быть заброшены. Кто-то должен решать, какому коду доверять, проверять изменения и поддерживать работоспособность всей системы. Генерация тысяч строк для окружающего сервиса добавляет ещё одно обязательство по сопровождению.

Когда изображения хранятся в Lokad, чтение и сравнение их эмбеддингов требует всего нескольких строк Envision. Специалисту не нужно устанавливать библиотеку обработки изображений или сопровождать отдельное приложение для запуска модели изображений. Рецепт задаёт, как визуальная информация участвует в расчёте цепи поставок.

Lokad сопровождает программное обеспечение, которое читает изображения, запускает модель и выполняет скрипты Envision. Это позволяет нашим инженерам контролировать весь путь от файла изображения до численного расчёта. Зависимости по-прежнему требуют взвешенных решений и сопровождения, но за это отвечает команда платформы, а не каждый клиентский проект по отдельности.

Специалисты по цепочке поставок сопровождают бизнес-рецепт, а инженеры Lokad поддерживают общую инфраструктуру обработки изображений, выполнения и безопасности

Специалист сопровождает бизнес-логику. Команда платформы Lokad поддерживает программное обеспечение, которое обрабатывает изображения и выполняет расчёт.

Обработка большого каталога требует ограничений на использование памяти. Ежедневные запуски должны повторно использовать уже выполненную работу для неизменившихся изображений. Если изображение отсутствует или повреждено, специалисту нужно знать, какое именно вызвало проблему. Изменения в программном обеспечении обработки должны учитываться при определении того, какие результаты можно использовать повторно. Мы решаем эти вопросы внутри платформы вместе с выполнением остальной части рецепта.

В результате визуальную информацию о товаре можно использовать в тех же расчётах, что и его описание, цену и историю продаж. Специалист может менять способ использования этих сигналов, не перестраивая программное обеспечение, которое их создаёт.