Как построить рекомендательные системы? Какие модели машинного обучения можно использовать? Какие проблемы решают интерактивные рекомендации, а какие нет? Какие инструменты могут быть полезны для портала электронной коммерции? Об этом в докладе инженера по большим данным EPAM. Екатерина Сотенко «Обзор подходов к построению интерактивных рекомендателей», который она представила на IT-субботнике в Самаре этой весной.
Ниже представлена видеозапись доклада, а еще ниже — его краткое содержание.
С чего все началось
В компанию EPAM обратился известный британский дом моды, которому требовался интерактивный рекомендатель для портала электронной коммерции.До этого EPAM представил реализацию обычного оффлайн-рекомендатора.
Теперь заказчик хотел узнать о желаниях пользователей в режиме реального времени, а не постфактум.
Для решения этой задачи мы изучили портал заказчика и выбрали для работы следующие элементы: 1. Домашняя страница Это страница, на которой пользователь, даже если он еще не авторизован, видит каталог.
Какой бы пользователь ни пришел – уже зарегистрированный или новый – нам нужно его заинтересовать с самого начала.
Для этого мы предложили концепцию с категориальными фильтрами: выбирать из предложенного набора категорий можно по принципу «мне бы хотелось этого больше, чем того», а не указывать точно («я хочу этого»).
В этом отличие от обычного поиска: пользователю предоставляется инструмент, с помощью которого он может быстро обнаружить что-то интересное для него, даже если человек четко не сформулировал свои пожелания.
Здесь уместны интерактивные рекомендации, так как нам нужно понять, ищет ли пользователь что-то новое или уже знакомое.
Эту проблему можно решить с помощью группы алгоритмов «многоруких бандитов».
2. Основной каталог Традиционно пользователь может выбирать товары из каталога с помощью фильтров по цвету, размеру и другим критериям.
Если мы уже знаем предпочтения человека, мы можем сразу представить каталог с наиболее актуальной для него подборкой вещей.
Алгоритмы, использующие информацию пользователя, рекомендации на основе демографических данных .
Но тут возникает вопрос: а что, если мы не знаем контекст пользователя и не понимаем, что определяет его выбор? Они нам здесь помогут рекомендации на основе контекста .
Более того, мы можем строить рекомендации в интерактивном режиме: например, если пользователь начинает прокручивать экран, мы понимаем, что он продолжает искать и предлагать ему новые товары.
Учитываем, что уже представленные варианты оказались неинтересными.
Здесь вы снова можете использовать модель многорукого бандита.
3. Корзина Если пользователь сделал свой выбор, можно попробовать заинтересовать его чем-то другим.
Это реализуется через продуктовую линейку типа «И с этим покупают».
Для построения этой линии мы используем учимся ранжировать или алгоритмы последовательного анализа данных .
4. Подарки Основная проблема этого раздела в том, что пользователь не выбирает себе подарки.
Вам нужно использовать информацию не о себе, а о том, кто получит подарок.
Здесь не помогут ни знания о пользователе, ни совместная фильтрация.
Нам нужна информация о том, с кем дружит пользователь, есть ли у него дети и т. д. Это нам поможет. рекомендатель на основе демографических данных , используя информацию об отношениях пользователя, и последовательный анализ шаблонов .
Конверсия
После того как мы определились с задачами и инструментами, нам нужно понять, какие инструменты принесут наибольшую конверсию.Давайте посмотрим на примере магазинов одежды.
В Германии было проведено исследование поведения пользователей во время онлайн-шопинга при покупке одежды.
В нем приняли участие около 50 женщин.
Им нужно было выбрать образ для выпускного вечера в ресторане.
В рамках эксперимента они могли купить любое количество вещей, но потратить не более 300 евро.
На основе данных о доходе, возрасте и модных привычках исследователи разделили участников на несколько групп и начали собирать статистику.
Результаты исследования показали, что участники чаще всего использовали фильтры и поиск (71%).
Среди фильтров наиболее активно использовался фильтр по цвету, за ним следовали фильтры по размеру и стоимости.
Если говорить о рекомендателях, то чаще всего использовалась коллаборативная фильтрация, а другие инструменты использовались гораздо реже.
При этом основная доля конверсии пришлась на поиск (62%) и навигацию с помощью фильтров (83%).
Это значит, что если пользователь ищет, он знает, чего хочет и ему не нужно мешать.
Совместная фильтрация, рекомендация «носить с этим», руководство по стилю дали менее 50% конверсии.
Это объясняется тем, что люди не хотят быть похожими на других и стремятся подчеркнуть свою индивидуальность.
С другой стороны, 50% — это неплохо, и при правильном использовании такие рекомендации могут быть очень эффективными.
Например, раздел «Повод/мероприятие» принес 100% конверсию.
Также стоит отметить, что разделы «Список лидеров продаж», «Новинки» и «Сезонные предложения» принесли конверсию 0%.
Их не следует воспринимать как абсолютные показатели, поскольку нужно помнить о задаче: женщины не выбирали повседневную одежду, к тому же выбор не зависел от сезона.
Это означает, что в других условиях подобные рекомендации могли бы сработать.
Теория.
Типы рекомендательных систем
Давайте кратко рассмотрим, как можно реализовать те или иные рекомендации.
1. Совместная фильтрация Идея этого подхода в том, что есть пользователи и элементы, которые люди оценивают по нескольким параметрам: лайк, рейтинг и т. д. На их основе строится матрица пользовательских рейтингов.
Но так как лайки ставят не все, то эта матрица разрежена, и задача состоит в том, чтобы регрессировать недостающие рейтинги.
Существует два типа алгоритмов, реализующих эту концепцию: • Методы на основе соседства (на основе памяти).
Они помогают восстанавливать оценки в явном виде, сохраняя при этом полную матрицу отношений, которая обычно очень велика.
Основным недостатком этих методов является их низкая эффективность из-за того, что они не дают по-настоящему персонализированной оценки.
Примеры алгоритмов : Фильтрация на основе пользователей (UBCF), Фильтрация на основе элементов (IBCF), Slope-One. • Методы, основанные на моделях.
Их идея состоит в том, чтобы выявить скрытые факторы (интересы пользователей), на которых люди основывают свои рейтинги.
Примеры алгоритмов: o Матричная факторизация (MF): разложение по сингулярным значениям (SVD, SVD++, timeSVD++, MSVD), неотрицательное MF (ALS), машины факторизации, вероятностная матричная факторизация (PMF) o RBM (ограниченные машины Больцмана).
o Дополнительный CF через совместную кластеризацию (COCL, ECOCL) o Вероятностный анализ основных компонентов (pPCA), вероятностный латентно-семантический анализ (pLSA), скрытое распределение Дирихле (LDA) и т. д. Преимущество коллаборативной фильтрации в том, что для построения рекомендаций вообще не нужны знания о предметной области, не нужно знать подробности об элементах и пользователях.
Они группируются между собой в режиме самоорганизации.
Недостаток: проблема с холодным запуском (проблема холодного старта): если появится новый пользователь или товар, он не будет рекомендован, так как отсутствует информация и рейтинги.
2. Рекомендации на основе контента Чтобы решить проблему холодного запуска и рекомендовать новые элементы, совместная фильтрация иногда интегрируется с рекомендателями на основе контента.
При таком подходе нужно описать все предметы.
Но их имущество не всегда может быть взыскано по юридическим или техническим причинам.
3. Рекомендации на основе демографических данных Если у пользователя произошел холодный старт, то нам необходимо собрать о нем информацию и описать его.
Общая проблема с группой методов, связанных с совместной фильтрацией, заключается в следующем.
Они работают хорошо только в том случае, если задействовано много данных.
Эти методы подходят для рекомендации объектов, выбор которых зависит от вкуса пользователя, например, для рекомендации фильмов или музыки.
Но этот подход неэффективен, когда вам нужно рекомендовать такие сложные объекты, как автомобили, недвижимость и т. д. В этом случае можно использовать рекомендатели, основанные на знаниях.
4. Рекомендации, основанные на знаниях Для этого необходимы эксперты, которые оценят предлагаемые объекты и опишут критерии, по которым пользователи их выбирают. Считается, что эти эксперты знают все: какой вы тип пользователя, сколько вы готовы потратить, какими характеристиками должны обладать продукты, чтобы вас привлечь.
Это решает проблему как для пользователей, так и для предметов.
Но есть недостаток: специалисты — очень дорогие и ненадежные люди, поэтому не всегда возможно описать все правила для вашего каталога.
5. Контекстно-зависимые рекомендации Оффлайн экспертные оценки могут быть ошибочными и неполными, поскольку на этапе оценки неизвестен контекст, в котором пользователь выбирает предмет. Контекст может меняться со временем.
Например, вы постоянно смотрели фильмы ужасов, но вдруг начали искать мультфильмы, потому что ваши дети хотели их смотреть.
С точки зрения рекомендателя, вы сумасшедший, и он будет продолжать рекомендовать вам фильмы ужасов, предполагая, что однажды вы придете в себя.
Что на самом деле с тобой случилось? Контекст изменился, и вам нужно на это отреагировать, что и позволяют сделать контекстно-зависимые рекомендации.
Чтобы эффективно давать контекстные рекомендации, вам необходимо решить проблему обнаружения точек изменений в смысле временных рядов.
Когда поведение пользователя резко меняется, это означает, что контекст кардинально изменился.
Существуют различные методы, позволяющие учитывать контекст: машины факторизации, байсовская вероятностная тензорная факторизация.
6. Интерактивные рекомендатели Их основная цель — выбрать варианты, наиболее соответствующие его желаниям во время текущего сеанса пользователя.
Пример из жизни Давайте вспомним себя в баре.
Вы хотите отлично провести время.
Вы видите пивные краны и начинаете выбирать, что пить.
В этот момент вы решаете задачу: пить незнакомое (разведка) или знакомое (эксплуатация) пиво? Этот Проблема разведки и эксплуатации .
Ее должны решать интерактивные рекомендатели.
Подходы к решению этой проблемы: 1. Активное обучение (AL) позволяет сократить пространство поиска 2. Алгоритмы многоруких бандитов (MAB): E-greedy, UCB, LinUCB, Tomson Sampling, Active Thompson Sampling (ATS).
3. Марковский процесс принятия решений (MDP)/обучение с подкреплением (RL) 4. Можно рассмотреть гибридные подходы к оценке – использовать композиционные модели.
Основные типы алгоритмов MAB
1. Е-жадность — это просто оценка частоты: мы выбираем ту или иную руку нашего бандита, исходя из частоты ее использования.
Подумайте о кранах в баре: чем чаще мы пользуемся тем или иным краном, тем больше мы любим это пиво.
2. Верхняя граница уверенности (UCB) – мы стремимся оценить удовольствие, которое получит пользователь от выбора конкретного товара.
Задача — точно оценить это удовольствие для каждой из ручек.
Для новых предметов этот алгоритм присваивает потенциально максимальную оценку вознаграждения.
Каждый раз, когда бандита тянут за ручку, оценка вознаграждения обновляется.
Этот алгоритм всегда больше склоняется к исследованию, чем к эксплуатации, и не может поддерживать обработку слишком большого количества рук.
3. Tomson Sampling (TS) может представлять каждую из рук бандита как распределение вероятностей и просто пересчитывать вероятность каждый раз при взаимодействии с каждой из рук.
Каждая раздача выбирается на основе ее истории, и наша цель — свести к минимуму общее разочарование, которое может испытать пользователь при взаимодействии с MAB. Как правило, интерактивные рекомендации не используются сами по себе, а комбинируются, например, с коллаборативной фильтрацией.
На практике хорошо себя зарекомендовали линейный UCB и выборка Томпсона + вероятностная матричная факторизация.
Немного об особенностях
Для построения рекомендателей вам понадобится набор данных.Должны быть функции, описывающие нашу модель.
Есть два типа функций, о которых стоит знать: неявная и явная обратная связь.
Неявная обратная связь – это когда пользователь прокручивает, кликает и так далее.
А явная обратная связь - это когда им явно нравится или не нравится.
Чем опасен второй? Явная обратная связь — оценки, лайки, поставленные пользователями, — наводит много шума.
В то же время неявная обратная связь — прокрутки, клики, просмотры — гораздо лучше работает для рекомендаций.
Он менее шумный, поскольку не имеет никакого отношения к предпочтениям пользователей, не зависит от их настроения и понимания того, что такое «ставка от нуля до пяти».
Чтобы не решать проблему смещений, можно работать с неявной обратной связью.
Понятно, что в одиночку с ним работать нельзя, и необходимо учитывать оба сигнала.
Поэтому существуют модели, позволяющие учитывать оба подхода.
Пример рекомендации Spotify
У Spotify есть музыкальный рекомендатель.В основе они используют коллаборативную фильтрацию: отслеживают предпочтения пользователей и группируют их между собой.
Они также проецируют намерение пользователя в данный момент времени на пространство музыкальных интересов пользователей.
Кроме того, Spotify использует методы NLP (обработки естественного языка) для анализа плейлистов.
Он собирает данные обо всех плейлистах пользователя и говорит, что ваш плейлист — это тот же текстовый документ. Здесь мы можем использовать классические инструменты НЛП, когда мы просто работаем с текстом и извлекаем, например, темы для плейлиста.
Кроме того, они используют глубокое обучение для извлечения контента.
Они берут трек, пропускают его через глубокую нейронную сеть, извлекая из песни те особенности, которые ценят пользователи.
Это контент-рекомендация, созданная на основе глубокого обучения.
Таким образом компания собирает данные о самих товарах.
Библиотеки и системы для создания рекомендателей
Что нам дает открытый исходный код? Существует два уровня технических предложений: технические библиотеки и системы.Самые мощные библиотеки — Spark MLLib, RankSys, LensKit. Существует Waffles, библиотека C++.
Существуют инструменты более высокого уровня, чем одна библиотека — серверы машинного обучения.
PredictionIO мне кажется самым интересным.
Тем, кто хочет работать с рекомендателями, следует прочитать «Справочник по рекомендательным системам, 2-е издание», в котором рассказывается о разных подходах к построению рекомендателей, алгоритмах и их практическом применении.
Теги: #Большие данные #системы epam #системы рекомендаций
-
Api Плагина Figma На Человеческом Языке
19 Oct, 24 -
Дополненная Реальность В России (Часть 1)
19 Oct, 24 -
Как Warcraft 3 Помог Мне В Программировании
19 Oct, 24 -
Больше Никакого Бесплатного Супа
19 Oct, 24 -
Интернет-Безопасность Для Детей
19 Oct, 24 -
Sap Заметили В Участии В Программах Анб
19 Oct, 24