Авторы: Сяо Сяо, Тэсик На, Теджасви Теннети, Гуанхуа Шу

Эта работа опубликована на SIGIR eCom 2022. Если вас интересуют подробности реализации, ознакомьтесь с нашей статьей здесь.

Являясь быстрорастущей платформой электронной коммерции и ведущей компанией в области продуктовых технологий, Instacart имеет постоянно расширяющийся каталог из более чем 1 миллиарда товаров от более чем 900 розничных продавцов, охватывающих различные категории: от традиционных продуктов до товаров для красоты, домашних животных, алкоголя, товаров для дома. предметы, электроника и многое другое. Обеспечение удобного поиска необходимо для того, чтобы наши клиенты могли с легкостью находить понравившиеся им продукты, чтобы у них было больше времени, чтобы насладиться ими.

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

Определить, какие продукты релевантны данному поисковому запросу, — непростая задача, особенно с учетом разнообразия поисковых запросов и большого количества товаров на платформе Instacart. Поисковые запросы в Instacart имеют сильно асимметричное распределение: ‹1000 популярных запросов составляют ›50% поискового трафика и очень длинный хвост других запросов, и они могут варьироваться от очень конкретных (например, «Buffalo Wild Wings с пармезановым чесночным соусом» ) до очень широкого (например, «закуски»). Хотя мы можем использовать предыдущее взаимодействие пользователей и сопоставление категории/бренда/текста для популярных или конкретных запросов, требуется более целостное понимание для оценки релевантности между большим количеством запросов и продуктов, когда эти сигналы редки.

В этом сообщении блога мы представим ITEMS (Instacart Tмодель на основе Eвстраивания M для Ssearch), модель глубокого обучения, которая заполняет пробел, создавая плотное, унифицированное представление поисковых запросов и продуктов. Совместно изучая представление запросов, продуктов и их взаимосвязей, ITEMS может предоставить надежную меру релевантности для любого запроса и комбинации продуктов, даже когда взаимодействие с клиентами или категориальные сигналы отсутствуют или вводят в заблуждение. Здесь мы дадим общий обзор модели, обсудим наши знания в области обучения и развертывания модели, а также продемонстрируем, как внедрение ITEMS привело к значительному улучшению поиска и других поверхностей в Instacart.

Архитектура модели ITEMS

ITEMS принимает поисковые запросы и информацию о продуктах в качестве входных данных и проецирует их в одно и то же векторное пространство, чтобы запросы и продукты можно было напрямую сравнивать друг с другом на предмет релевантности. Это достигается с помощью модели Преобразователи предложений с двумя башнями (т. е. архитектурой с двойным кодированием), где каждая башня представляет собой модуль на основе преобразователя. Модель с двумя башнями позволяет независимо кодировать поисковые запросы и продукты, при этом запросы проходят через одну башню, а продукты — через другую. Преимущество этой схемы заключается в сохранении автономии между двумя башнями, где векторное представление (встраивание) продукта не меняется независимо от того, с каким запросом он сравнивается, и наоборот. После обучения модели встраивания запросов и встраивания продукта могут быть отдельно вычислены, сохранены и извлечены во время выполнения. Такая гибкость и эффективность делают модель с двумя башнями популярным выбором для поиска и ранжирования среди электронной коммерции.

Обучение ITEMS с данными о показах в поиске Instacart

Мы инициализировали две башни в ITEMS с предварительно обученными весами из репозитория Sentence Transformers и точно настроили модель с помощью собственных наборов данных Instacart. Чтобы изучить взаимосвязь между запросами и продуктами, модели требуются как положительные, так и отрицательные (запрос, продукт) пары, где они релевантны (например, молоко ‹-› Guida's Dairy Whole Milk) или нерелевантные (например, «туалетная бумага ‹-› Бумажные тарелки для ежедневного ужина Dixie). Благодаря тонкой настройке модель учится кодировать соответствующий запрос и продукт, чтобы векторы были близки друг к другу в пространстве встраивания, а векторы из нерелевантных пар находились далеко друг от друга.

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

Мы решили эту проблему, используя внутрипартийный отрицательный подход. Учитывая пакет положительных обучающих данных (запрос₁, продукт₁), (запрос₂, продукт₂), …, все недиагональные пары (queryᵢ, productⱼ), где i != j считаются нерелевантными (рис. 3). ). Это позволяет модели научиться отличать релевантные продукты от нерелевантных продуктов для данного запроса, не предоставляя явным образом отрицательные примеры, которые трудно найти. Чтобы сделать обучение более сложным, мы применили во время обучения самопротиворечивое повторное взвешивание (рис. 3, справа), где отрицательным примерам в пакете присваиваются разные веса в зависимости от прогноза модели. (запрос, продукт), которые модели легко идентифицировать как нерелевантные (например, «лепешка» ‹-› большая кофейная кружка) имеют меньший вес, в то время как сложные примеры, с которыми у модели возникают сложности (например, «тортилья» ‹-› чипсы Tostitos tortilla), придан больший вес. Такой подход помогает модели сосредоточиться на сложных примерах и научиться лучше улавливать нюансы.

Расширение данных и многозадачное обучение

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

  • Расширение входных данных о продукте. Вместо того, чтобы использовать только название продукта в качестве входных данных для ITEMS, мы расширили его, объединив другую информацию о продукте, чтобы обеспечить более богатый контекст. Например, продукт «Органическое молоко с пониженным содержанием жира 2 %» заменяется на «[PN] Органическое молоко с пониженным содержанием жира 2 % [PBN] GreenWise [PCS] Молоко [PAS] органическое, кошерное, без глютена», где символы в скобках (например, как «[PN]» и «[PBN]») — это специальные токены, помогающие модели правильно сегментировать ввод.
  • Синтетические положительные обучающие данные. Из-за размера каталога и сильно асимметричного распределения популярности продуктов у некоторых товаров нет исторических конверсий, поэтому они не включены в обучающие данные для ITEMS. Чтобы увеличить охват этих более редких продуктов, мы создали синтетические запросы, переставляя различные атрибуты продуктов. Например, продукт «Органическое молоко с пониженным содержанием жира 2%» от бренда «GreenWise», относится к категории «Молоко» и имеет объем 1 галлон. Эти атрибуты можно смешивать и сопоставлять для создания следующих синтетических запросов:

— «Гринвайз»

— «Органическое молоко GreenWise с пониженным содержанием жира 2%»

— «Молоко 1 галлон»

— …

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

  • Многозадачное обучение. В дополнение к основной цели ITEMS, которая заключается в определении релевантности между запросами и продуктами, мы добавили дополнительные обучающие задачи в башню продуктов, используя метаданные продуктов. Учитывая продукт, модель не только изучает его представление, но также пытается предсказать его бренд, а также категории, к которым он принадлежит. Этот многозадачный режим обучения стабилизирует обучение модели и гарантирует, что продукты, принадлежащие к одной категории или бренду, сгруппированы в векторном пространстве.

Количество данных VS Качество данных

В то время как конверсия — когда покупатель добавляет товар в свою корзину после его поиска — обычно является хорошим индикатором релевантности между запросом и продуктом, журналы поиска электронной коммерции по своей природе зашумлены. В Instacart потребители часто добавляют несколько товаров в корзину, чтобы создать свою корзину для покупок, как в реальной жизни. Товар можно добавить в корзину, даже если он не имеет отношения к поисковому запросу, если это то, что нужно покупателю — например, покупатель, который ищет «каши», может также добавить молоко в корзину в том же сеанс поиска, пока они готовятся к завтраку. Это приведет к ложным срабатываниям, если мы хотим сохранить все преобразованные пары (запрос, продукт) для обучения модели. Вопреки общеизвестному факту, что модели глубокого обучения (такие, как та, которую мы используем для ITEMS) требовательны к данным и обычно выигрывают от большего набора обучающих данных, мы обнаружили, что производительность ITEMS падает, когда набор обучающих данных расширяется за пределы определенной точки, где менее надежен. обучающие примеры вносят слишком много шума.

Как мы можем найти баланс между количеством данных и качеством данных? Для поискового запроса, если мы ранжируем преобразованные продукты по их частоте конверсии, те продукты, которые находятся вверху, вероятно, будут очень релевантными, а те, что ниже, часто являются «дополнениями», которые не имеют отношения к первоначальной цели запроса. Затем мы можем установить порог, чтобы оставить только те продукты, которые, скорее всего, будут релевантными. Настроив этот порог, мы смогли создать обучающие наборы данных разного размера и разной степени надежности.

Чтобы получить лучшее из обоих миров (количество и качество), мы дополнительно внедрили схему каскадного обучения. Сначала модель обучается с использованием более крупного и зашумленного прогревочного набора данных, в котором для каждого запроса сохраняется большее количество преобразованных продуктов в качестве положительных примеров; затем следует этап тонкой настройки с меньшим набором данных более высокого качества, где сохраняется меньше продуктов с более высоким порогом конверсии. Две башни ITEMS имеют общие параметры на первом этапе обучения, что помогает модели находить общие черты между запросами и продуктами. На этапе тонкой настройки параметры двух башен развязываются, что позволяет модели адаптироваться к уникальным характеристикам двух доменов.

ПРЕДМЕТЫ в действии

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

Обучение и развертывание ITEMS облегчается платформой Instacart MLOps, Griffin. Модель выполняет ежедневные задания по оценке в автономном режиме, которые предварительно вычисляют вложения для новых поисковых запросов и новых продуктов. Вложения продуктов организованы в индексы с использованием библиотеки FAISS и обслуживаются в службе приблизительного ближайшего соседа (ANN) с ежедневными обновлениями индексов, чтобы можно было легко найти релевантные продукты для входящих запросов. Для внедрения запросов мы используем гибридный подход, при котором внедрение для подавляющего большинства (>95%) поисковых запросов извлекается через поиск в FeatureStore, а несколько оставшихся, еще не кэшированных в FeatureStore, вычисляются на лету. Это позволяет нам покрывать 100% поисковых запросов, сохраняя при этом низкую задержку (‹8 мс).

Повышение релевантности поиска

С момента своего запуска ITEMS был неотъемлемой частью поиска в Instacart. Мы используем систему поиска на основе внедрения (EBR) для извлечения наиболее релевантных продуктов для поисковых запросов из службы ANN на основе их семантического сходства. Дополняя существующий поиск на основе ключевых слов и категорий, EBR особенно эффективен для длинных или неоднозначных запросов. После извлечения продуктов встроенная оценка играет важную роль в качестве функции ранжирования, которая уравновешивает несколько целей, включая релевантность, популярность и личные предпочтения, и выявляет продукты, которые наилучшим образом соответствуют потребностям клиентов.

Онлайн-тестирование A/B показывает, что ITEMS привела к +1,2% среднего обратного рейтинга (MRR) первого конвертированного товара в поиске, +4,1% к добавлению в корзину за поиск (CAPS) и значительному увеличению валовой стоимости товара ( ГМВ).

Семантическая дедупликация для увеличения разнообразия

Хотя ITEMS обеспечивает меру релевантности между запросами и продуктами как косинусное сходство между двумя векторами, аналогичный подход можно расширить для вычисления сходства между двумя продуктами или двумя запросами. Последнее используется Автозаполнением в качестве фильтра для удаления предложений, слишком похожих друг на друга (например, свежие бананы и бананы свежие, яблочное пюре и яблочный соус). Удаление семантически идентичных предложений улучшает взаимодействие с пользователем, предоставляя им набор предложений, которые отличаются друг от друга, разнообразны и с большей вероятностью соответствуют их потребностям.

Последние мысли

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

Благодарности Чжихонг Сюй, Видет Шенде, Акшай Наир, Янг Рао, Саурав Манчанда и нашему предыдущему доктору наук Юцин Се, которые внесли свой вклад в ITEMS на протяжении нескольких итераций.