Что такое рекомендательная система

Рекомендательные системы: как помочь пользователю найти то, что ему нужно?

Рекомендательные системы стали настоящим бумом и сегодня представить какую-нибудь условную Lamoda без блока «Возможно, вас заинтересуют другие товары» сложно. Мы подготовили для вас подробную статью о том, что собой представляют рекомендательные системы и какую пользу они могут принести бизнесу.

Что такое рекомендательные системы?

Рекомендательная система — комплекс алгоритмов, программ и сервисов, задача которого предсказать, что может заинтересовать того или иного пользователя. В основе работы лежит информация о профиле человека и иные данные.

Яркий пример рекомендательной системы — Tik-Tok, о котором в последнее время говорят очень много. Первые несколько дней пользователи видят в ленте все подряд, но потом приложение показывает пользователю только интересующее его видео на основе предыдущих оценок.

Даже музыкальные приложения не обходятся без рекомендательных систем. Одной из лучших обладает Spotify, которое недавно «пришло» в Россию. Через несколько дней после установки программа подбирает для пользователя треки, которые с высокой долей вероятности заинтересуют его.

Типы рекомендательных систем

Существует 4 чипа рекомендательных систем:

Коллаборативная фильтрация (collaborative filtering).

Основанные на контенте (content-based).

Основанные на знаниях (knowledge-based).

Давайте подробнее рассмотрим каждый из них.

Коллаборативная фильтрация (collaborative filtering)

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

Простой пример: Гена и Витя любят рыбачить и заказывать пиццу по вечерам. А еще они оба любят BMW и ездят на машинах этой марки. Еще есть Олег, который тоже не прочь посидеть с удочкой на выходных и заказать пиццу после тяжелого рабочего дня. Но о покупке BMW он никогда не задумывался. Так как его интересы (оценки) совпадают с Геной и Витей, ему можно порекомендовать BMW.

По такому принципу работает много сервисов, например, Имхонет или last.fm. Главное преимущество этого типа — высокая теоретическая точность. Но есть и минус: показывать хорошие рекомендации новым пользователям не получится, ведь о них нет никакой информации. Из-за этого будет большой процент отказов.

Основанные на контенте (content-based)

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

По такому принципу работают системы интернет-магазинов, онлайн-кинотеатров и других сервисов. Например, IVI выстраивает рекомендации по жанрам, странам-производителям фильмов, актерам и т.п.

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

Основанные на знаниях (knowledge-based)

Этот тип работает на основе знаний о какой-то предметной области: о пользователях, товарах и других, которые могут помочь в ранжировании. Как и в случае с «content-based», оценки других пользователей системы не учитывают. Есть несколько разновидностей: case-based, demographic-based, utility-based, critique-based, whatever-you-want-based и т.д.

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

Например, магазин техники Apple «reStore» подбирает потенциальным покупателям наборы, в зависимости от просматриваемого товара:

Неплохо работает аналогичная система в интернет-магазине М.Видео:

При выборе новой игровой консоли PS4 посетителю сайта предлагают купить дополнительные геймпады, шлем виртуальной реальности, популярные игры и другие сопутствующие товары. Как итог, человек совершает больше покупок и увеличивает прибыль компании.

Очевидное преимущество системы — высокая точность. Рекомендательная система М.Видео показывает товары, которые могут реально заинтересовать посетителя. Было бы странно, если при выборе PlayStation 4 магазин советовал докупить человеку кухонный гарнитур.

Но есть и минус — для разработки этой системы требуется много времени и ресурсов. Но результат оправдывает средства.

Гибридные (hybrid)

Наверно, нет такой сферы деятельности, в которой не нашлось бы энтузиастов собрать «все в одно». Рекомендательные системы не стали исключением. У всех описанных ранее типов есть определенные недостатки. Комбинирование нескольких алгоритмов в рамках одной платформы позволяет если не устранить их полностью, то хотя бы минимизировать.

Крупные сервисы и интернет-магазины используют гибридные варианты. Чуть-чуть там, немного здесь и получается уникальная система. Универсальной инструкции и рекомендаций по реализации такого инструмента нет. Все ограничивается возможностями и фантазией разработчиков. Например, у Netflix в рекомендательной системе объединено 27 (!) алгоритмов.

Есть несколько распространенных типов комбинирования:

реализация по отдельности коллаборативных и контентных алгоритмов и объединение их предположений;

включение некоторых контентных правил в коллаборативную методику;

включение некоторых коллаборативных правил в контентную методику;

построение общей модели, включающей в себя правила обеих методик.

Обычно эти варианты берут в качестве основы и дополняют по собственному желанию и по критериям сферы деятельности. Как и в случае с knowledge-based, основной недостаток гибридных систем — сложность разработки.

Как работают рекомендательные системы

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

Рекомендательные системы работают на двух уровнях:

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

Кратковременные тренды и быстрые изменения интересов во времени.

Данные собирают «явным» и/или «неявным» способами. В первом случае посетителю предлагают заполнять анкеты, проходить опросы и т.п. для определения его предпочтений. Метод эффективный, только пользователи не всегда соглашаются на заполнение анкет и прохождение опросов. Поэтому придумывают, как заинтересовать их этим (обычно предлагают какую-то выгоду в обмен).

Второй метод предусматривает фиксирование поведения потребителя на сайте или в приложении: какие страницы/разделы посмотрел, что добавлял в корзину, какие и где оставлял комментарии и т.п. При правильной организации сбора данных и дальнейшей аналитике метод дает хорошие результаты. Но и здесь есть ряд сложностей. Во-первых, просмотр отдельных страниц или карточек товара не дает сведений, понравилось ли в конечном итоге человеку предложение. Во-вторых, даже если совершена покупка, сложно предположить, что конкретно подтолкнуло человека к ее совершению.

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

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

Читайте также:  Что такое солдатики в автомобиле

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

Что касается сфер применения рекомендательных систем, то здесь, по сути, ограничений никаких нет. Ранее мы уже не раз говорили, что все зависит от фантазии разработчиков. Их можно использовать в приложениях, интернет-магазинах, онлайн-кинотеатрах и других сервисах, которые предлагают какой-то контент, товары или услуги.

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

Мифы о рекомендательных системах

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

Сложно собрать и подготовить данные для ИИ

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

ИИ не способен давать качественный результат

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

Нужно много денег на реализацию

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

Во-первых, все зависит от размеров бизнеса. Если сервис, интернет-магазин или другие предприятия небольшие, то и денег на реализацию потребуется немного. Во-вторых, необязательно создавать собственную систему с нуля. Достаточно воспользоваться готовым фреймворком (TensofFlow, Apple Core ML) или внешним решением (Google ML Kit). Это позволит существенно сократить расходы.

На практике уже не раз было доказано, что рекомендательные системы увеличивают продажи и повышают количество вернувшихся клиентов. Инвестиции на реализацию и внедрение могут вернуться через 3-6 месяцев.

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

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

Источник

Анатомия рекомендательных систем. Часть первая

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

В данной статье я расскажу о рекомендательных системах, постараюсь дать максимально полный обзор существующих подходов и на пальцах объясню принципы работы алгоритмов. Часть материала базируется на неплохом курсе по рекомендательным системам лаборатории MovieLens (которая большинству знакома по одноименному датасету для тестирования рекомендаций), остальное – из личного опыта. Статья состоит из двух частей. В первой описана постановка задачи и дан обзор простых (но популярных) алгоритмов рекомендаций. Во второй статье я расскажу о более продвинутых методах и некоторых практических аспектах реализации.

Обзор и постановка задачи

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

В зависимости от модели бизнеса рекомендации могут быть его основой, как, например, у TripAdvisor, а могут быть просто удобным дополнительным сервисом (как, например, в каком-нибудь интернет-магазине одежды), призванным улучшить Customer Experience и сделать навигацию по каталогу более удобной.

Персонализация онлайн-маркетинга – очевидный тренд последнего десятилетия. По оценкам McKinsey, 35% выручки Amazon или 75% Netflix приходится именно на рекомендованные товары и процент этот, вероятно, будет расти. Рекомендательные системы – это про то, что предложить клиенту, чтобы сделать его счастливым.

Чтобы проиллюстрировать всё многообразие рекомендательных сервисов, приведу список основных характеристик, с помощью которых можно описать любую рекомендательную систему.

Неперсональные рекомендации – когда вам рекомендуют то же самое, что всем остальным. Они допускают таргетинг по региону или времени, но не учитывают ваши личные предпочтения.

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

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

Несмотря на множество существующих алгоритмов, все они сводятся к нескольким базовым подходам, которые будут описаны далее. К наиболее классическим относятся алгоритмы Summary-based (неперсональные), Content-based (модели основанные на описании товара), Collaborative Filtering (коллаборативная фильтрация), Matrix Factorization (методы основанные на матричном разложении) и некоторые другие.

В центре любой рекомендательной системы находится так называемая матрица предпочтений. Это матрица, по одной из осей которой отложены все клиенты сервиса (Users), а по другой – объекты рекомендации (Items). На пересечении некоторых пар (user, item) данная матрица заполнена оценками (Ratings) – это известный нам показатель заинтересованности пользователя в данном товаре, выраженный по заданной шкале (например от 1 до 5).

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

Читайте также:  Что такое гомеопатический лекарственный препарат

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

Понятие «интересности» тоже субъективное. Некоторым пользователям нужны вещи только из их любимой категории (conservative recommendations), а кто-то, наоборот, больше откликается на нестандартные товары или группы товаров (risky recommendations). Например, видеохостинг может рекомендовать пользователю только новые серии любимого сериала, а может периодически закидывать ему новые шоу или вообще новые жанры. В идеале стоит выбирать стратегию показа рекомендаций под каждого клиента отдельно, с помощью моделирования категории клиента.

Пользовательские оценки можно получить двумя способами:

Также важно отличать термины Prediction (предсказание степени интереса) и собственно Recommendation (показ рекомендации). Что и как показывать – это отдельная задача, которая использует полученные на шаге Prediction оценки, но может быть реализована по-разному.

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

Неперсонализированные рекомендации

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

Показываться рекомендации могут по-разному – как баннер сбоку от описания товара (Amazon), как результат запроса, отсортированный по определенному параметру (TripAdvisor), или как-то еще.

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

Проблема холодного старта

Холодный старт – это типичная ситуация, когда ещё не накоплено достаточное количество данных для корректной работы рекомендательной системы (например, когда товар новый или просто его очень редко покупают). Если средний рейтинг посчитан по оценкам всего трёх пользователей (igor92, xyz_111 и oleg_s), такая оценка явно не будет достоверной, и пользователи это понимают. Часто в таких ситуациях рейтинги искусственно корректируют.

Первый способ – показывать не среднее значение, а сглаженное среднее (Damped Mean). Смысл таков: при малом количестве оценок отображаемый рейтинг больше тяготеет к некому безопасному «среднему» показателю, а как только набирается достаточное количество новых оценок, «усредняющая» корректировка перестает действовать.

Другой подход – рассчитывать по каждому рейтингу интервалы достоверности (confidence Intervals). Математически, чем больше оценок, тем меньше вариация среднего и, значит, больше уверенность в его корректности. А в качестве рейтинга можно выводить, например, нижнюю границу интервала (Low CI Bound). При этом понятно, что такая система будет достаточно консервативной, с тенденцией к занижению оценок по новым товарам (если, конечно, это не хит).

Поскольку оценки ограничены определенной шкалой (например от 0 до 1), обычный способ расчета интервала достоверности здесь плохо применим: из-за хвостов распределения, уходящих на бесконечность и симметричности самого интервала. Есть альтернативный и более точный способ его посчитать — Wilson Confidence Interval. При этом получаются несимметричные интервалы примерно такого вида.

На картинке выше по горизонтали отложена оценка среднего значения рейтинга, по вертикали — разброс вокруг среднего значения. Цветом выделены различные размеры выборки (очевидно, чем выборка больше, тем меньше интервал достоверности).

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

Актуальность рекомендаций

В некоторых случаях также важно учитывать «свежесть» рекомендации. Это особенно актуально для статей или постов на форумах. Свежие записи должны чаще попадать в топ. Для этого используются корректирующие коэффициенты (damping factors). Ниже пара формул для расчета рейтинга статей на медиа сайтах.

Пример расчета рейтинга в журнале Hacker news:

где U = upvotes, D = downvotes, а P (Penalty) — дополнительная корректировка для имплементации иных бизнес-правил

Расчет рейтинга в Reddit:

где U = число голосов «за», D = число голосов «против», T = время записи. Первое слагаемое оценивает «качество записи», а второе делает поправку на время.

Очевидно, что универсальной формулы не существует, и каждый сервис изобретает ту формулу, которая лучше всего решает его задачу – проверяется это эмпирически.

Content-based рекомендации

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

Исторически предметом Content-based рекомендаций чаще были товары с неструктурированным описанием: фильмы, книги, статьи. Такими признаками могут быть, например, текстовые описания, рецензии, состав актеров и прочее. Однако ничто не мешает использовать и обычные числовые или категориальные признаки.

Неструктурированные признаки описываются типичным для текста способом – векторами в пространстве слов (Vector-Space model). Каждый элемент такого вектора – признак, потенциально характеризующий интерес пользователя. Аналогично, продукт – вектор в том же пространстве.

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

Не все элементы одинаково значимы: например, союзные слова, очевидно, не несут никакой полезной нагрузки. Поэтому при определении числа совпадающих элементов в двух векторах все измерения нужно предварительно взвешивать по их значимости. Данную задачу решает хорошо известное в Text Mining преобразование TF-IDF, которое назначает больший вес более редким интересам. Совпадение таких интересов имеет большее значение при определении близости двух векторов, чем совпадение популярных.

Читайте также:  Что такое декламация в музыке

Принцип TF-IDF здесь в той же мере применим и к обычным номинальным атрибутам, таким, как например, жанр, режиссер, язык. TF — мера значимости атрибута для пользователя, IDF — мера «редкости» атрибута.

Существует целое семейство похожих преобразований (например, BM25 и аналогичные), но содержательно все они повторяют ту же логику, что TF-IDF: редкие атрибуты должны иметь больший вес при сравнении товаров. Картинка ниже иллюстрирует, как именно зависит вес TF-IDF от показателей TF и IDF. Ближняя горизонтальная ось — это DF: частота атрибута среди всех товаров, дальняя горизонтальная ось — TF: логарифм частоты атрибута у пользователя.

Некоторые моменты которые можно учесть при реализации.

В качестве меры близости двух векторов чаще всего используется косинусное расстояние.

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

Коллаборативная фильтрация (User-based вариант)

Данный класс систем начал активно развиваться в 90-е годы. В рамках подхода рекомендации генерируются на основании интересов других похожих пользователей. Такие рекомендации являются результатом «коллаборации» множества пользователей. Отсюда и название метода.

Классическая реализация алгоритма основана на принципе k ближайших соседей. На пальцах – для каждого пользователя ищем k наиболее похожих на него (в терминах предпочтений) и дополняем информацию о пользователе известными данными по его соседям. Так, например, если известно, что ваши соседи по интересам в восторге от фильма «Кровь и бетон», а вы его по какой-то причине еще не смотрели, это отличный повод предложить вам данный фильм для субботнего просмотра.

На картинке выше проиллюстрирован принцип работы метода. В матрице предпочтений желтым цветом выделен пользователь, для которого мы хотим определить оценки по новым товарам (знаки вопроса). Синим цветом выделены три его ближайших соседа.

«Похожесть» – в данном случае синоним «корреляции» интересов и может считаться множеством способов (помимо корреляции Пирсона, есть еще косинусное расстояние, есть расстояние Жаккара, расстояние Хэмминга и пр.).

У классической реализации алгоритма есть один явный минус – он плохо применим на практике из-за квадратичной сложности. Действительно, как любой метод ближайшего соседа, он требует расчета всех попарных расстояний между пользователями (а пользователей могут быть миллионы). Нетрудно посчитать, что сложность расчета матрицы расстояний будет , где n — число пользователей, а m — число товаров. При миллионе пользователей для хранения матрицы расстояний в сыром виде, потребуется минимум 4TB.

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

Например, если два клиента предпочитают одни фильмы, то книги им тоже нравятся одинаковые. Так часто бывает, когда рекомендуемые товары однородны (например, только фильмы). Если это же не так, то у пары клиентов вполне могут совпадать предпочтения в еде, а политические взгляды быть прямо противоположными — здесь алгоритм будет менее эффективным.

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

Авторы из MovieLens в качестве оптимального количества соседей приводят цифры в 30-50 соседей для фильмов и 25-100 для произвольных рекомендаций. Здесь понятно, что если возьмем слишком много соседей, то получим больше вероятность случайного шума И наоборот, если возьмем слишком мало, то получим более точные рекомендации, но меньшее количество товаров можно рекомендовать.

Важный этап подготовки данных — нормализация оценок.

Стандартизация данных (scaling)

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

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

Нормализовать можно несколькими способами:

Если у фильма «Самый лучший фильм» средняя оценка 2.5, а пользователь ей ставит 5, то это сильный фактор, говорящий о том, что такие фильмы ему явно по вкусу.

«Похожесть» или корреляцию предпочтений двух пользователей можно считать разными способами. По сути нам надо просто сравнить два вектора. Перечислим несколько наиболее популярных.

Основной его минус — когда пересечение по оценкам низкое, корреляция может быть высокой просто случайно.

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

Еще один классический коэффициент. Если приглядеться, косинус угла между стандартизированными векторами — это и есть корреляция Пирсона, одна и та же формула.

Почему косинусное — потому что, если два вектора сонаправлены (т.е. угол между ними нулевой), то косинус угла между ними равен единице. И наоборот, косинус угла между перпендикулярными векторами равен нулю.

Интересное развитие коллаборативного подхода — так называемые Trust-based recommendations, в которых учитывается не только близость людей по интересам, но также их «социальная» близость и степень доверия между ними. Если например видим, что на фейсбуке девушка периодически заходит на страницу с аудиозаписями подруги, значит доверяет её музыкальному вкусу. Следовательно в рекомендации девушке можно вполне подмешивать новые песни из плейлиста подруги.

Обоснования рекомендаций

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

В рамках объяснения неплохо показывать оценку товара соседями, по какому именно атрибуту (например, актер или режиссер) было совпадение, а также выводить уверенность системы в оценке (confidence). Чтобы не перегружать интерфейс, можно всю эту информацию вынести в кнопку «Tell me more».

Резюме

На этом закончу первую часть статьи. Мы рассмотрели общую постановку задачи, поговорили про неперсональные рекомендации, описали два классических подхода (content-based и коллаборативную фильтрацию), а также затронули тему обоснования рекомендаций. В целом двух этих подходов вполне достаточно для построения production-ready рекомендательной системы. В следующей части я продолжу обзор и расскажу о более современных методах, в том числе задействующих нейросети и глубокое обучение, а также про гибридные модели.

Источник

Информационный сайт