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

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

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

В процессе обмена продукты, которые наши участники обменивают, могут рассматриваться как заявление «нравится», а продукты, которые участник заменяет, могут считаться «неприязнью». Более того, мы можем рассматривать продукты, которые они не выбрасывают из нашего кураторского ящика по умолчанию, как молчаливое, но незначительное одобрение. Есть много способов воспользоваться этими прошлыми данными об обмене, чтобы рекомендовать продукты, которые понравятся нашим участникам. Это повысит удовлетворенность клиентов и уменьшит отток. Мы надеемся, что довольные клиенты останутся с нами надолго.

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

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

Совместная фильтрация на основе пользователей. Вся концепция совместной фильтрации на основе пользователей заключается в поиске похожих перекусов на основе их предпочтений в отношении закусок. Если участники A и B имеют одинаковые предпочтения и антипатии к перекусам на основе их исторических данных об обмене, мы можем рассчитать числовую матрицу, которая будет представлять показатель сходства. Если оценка очень высока, то продукт, который понравился участнику А, будет рекомендован участнику Б и наоборот. Очень прямое правило, не так ли? Но проблема с этим подходом в том, что «нравится» — очень относительное понятие. Два члена могут иметь очень разные стандарты оценки вещей. Стандарты рейтинга могут меняться изо дня в день или даже в зависимости от времени суток. Есть много факторов, которые могут повлиять на стандарт рейтинга участника, включая демографический профиль, культуру и местоположение; список почти бесконечен. Этот подход не очень надежный. Однако это может работать удовлетворительно, если у вас достаточно большой набор данных.

Совместная фильтрация на основе контента. Концепция похожа на фильтрацию на основе пользователей, только вместо оценки схожести между участниками мы создаем оценку схожести между нашими различными продуктами. Если продукты A и B имеют очень похожие оценки в зависимости от их типа (протеиновые батончики, чипсы, фруктовые закуски и т. д.), а участнику нравится продукт A, то система порекомендует продукт B тому же пользователю на основе схожести контента. В нашем случае этот подход более надежен и эффективен. Лично я нахожу модель, основанную на содержании, более надежной и эффективной, чем системы, основанные на пользователе, потому что сходство между двумя продуктами будет более последовательным. Пользователи могут меняться, но протеиновый батончик всегда останется протеиновым батончиком.

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

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

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

Спасибо за чтение. Хочу поблагодарить свою команду @SnackNation за поддержку и Mr. Фрэнк Кейн за то, что научил меня думать, чтобы построить эффективную систему рекомендаций. Особая благодарность Джейсону Дилу за тщательную корректуру статьи и Шэннону Дьюку за создание специальной графики, дополняющей рецензию.

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