Что это такое и как они работают? Введение для обычного человека.

В условиях пандемии коронавируса мы близко познакомились с такими онлайн-сервисами, как Netflix, Amazon и Spotify. Застряв дома, мы ежедневно пользуемся их услугами, например, покупаем продукты и развлекаемся. Продолжая использовать эти службы, вы можете заметить, что они часто рекомендуют вам фильмы для просмотра, песни для прослушивания или продукты для покупки. Как они это делают? Эти рекомендации случайны? Всем ли эти службы рекомендуют одни и те же продукты?

Быстрый взгляд на аккаунт Netflix друга или его рекомендации на Amazon говорит нам, что эти сервисы предоставляют персонализированные рекомендации по их продуктам. Они делают это с помощью очень умного приложения машинного обучения, известного как «Рекомендательные системы».

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

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

Хотя существует множество различных алгоритмов и техник, используемых для рекомендации, их можно условно разделить на четыре категории:

- Системы на основе популярности

- Системы классификационных моделей

- Совместная фильтрация

- Гибридные подходы

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

1. Системы, основанные на популярности

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

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

2. Рекомендации, основанные на классификации

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

2.1 На основе пользователей

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

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

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

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

2.2 По предметам

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

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

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

3. Совместная фильтрация

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

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

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

3.1 Пример потокового сервиса

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

Для начала представьте, что в нашем потоковом сервисе сейчас 5 разных фильмов и 3 пользователя. Кроме того, наш сервис позволяет пользователям оценивать фильмы по шкале от 1 до 10. Если мы представим эти данные в виде таблицы, она должна выглядеть так:

В приведенной выше таблице указано, какие фильмы смотрел каждый из пользователей и каковы их рейтинги к фильмам. Пользователь 1 не смотрел фильмы 4 и 5. Вопрос в том, какой из двух фильмов мы порекомендуем пользователю 1 посмотреть в следующий раз?

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

Первый шаг в предоставлении нашей рекомендации - определить, насколько каждый из наших пользователей похож на пользователя 1. Есть много способов сделать это; популярный метод называется «косинусное подобие».

3.1.1 Косинусное подобие

Чтобы понять косинусное сходство, взгляните на график ниже:

На графике показано «векторное представление» трех пользователей на основе их рейтингов. Пользователь A оценил 2 фильма 1 и 5, пользователь B оценил те же фильмы 2 и 4, а пользователь C оценил их 5 и 1. «Векторное представление» - это просто причудливый способ сказать, что эти числа нанесены на график. к ним нарисованы график и линии.

Концепция косинусного подобия проста. Если мы возьмем углы между этими векторами, то чем меньше угол, тем более похожи векторы. Мы получаем подобие, взяв значение косинуса угла между векторами. Косинус малого угла близок к 1, в то время как косинус угла, близкого к 90 °, близок к 0. Следовательно, интуитивно понятно, чем ближе к 1 наше значение, тем больше похожи векторы.

Формула для вычисления косинусного подобия выглядит следующим образом:

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

Для нашего графика выше косинусное сходство между пользователем A и пользователем B составляет 0,96 (очень похоже), а между пользователем A и пользователем C - 0,38 (не очень похоже). Следовательно, пользователь A и пользователь B гораздо более «похожи», чем пользователь A и пользователь C.

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

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

Косинусное сходство между пользователем 1 и пользователем 2 составляет 0,99

Косинусное сходство между пользователем 1 и пользователем 3 составляет 0,42

Следовательно, Пользователь 1 и Пользователь 2 очень похожи, в то время как Пользователь 1 и Пользователь 3 не очень похожи.

3.1.2 Прогнозирование рейтинга

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

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

Таким образом, мы предсказали, что Пользователь 1 оценит Фильм 4 выше, чем Фильм 5, и поэтому будет рекомендовать Фильм 4.

В нашем примере был очень маленький набор данных. Было всего 3 пользователя и 5 фильмов. В реальных потоковых сервисах, таких как Netflix, миллионы пользователей и тысячи фильмов, что значительно усложняет эти вычисления. Однако конечным результатом является чрезвычайно хорошая система рекомендаций, которая персонализирована и пользуется преимуществами большого количества пользователей.

3.2 Ограничения

У совместной фильтрации есть некоторые недостатки. Первая проблема известна как «дефицит». В приведенном выше примере все фильмы, которые смотрели Пользователь 2 и Пользователь 3, были ими оценены. На самом деле большое количество пользователей не оценивают все фильмы, которые они смотрят. Это оставляет много пустых мест для фильмов и затрудняет поиск похожих пользователей.

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

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

4. Гибридные подходы

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

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

5. Заключение

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

Спасибо за чтение!

Не забудьте поделиться этой статьей со всеми, кому, по вашему мнению, она может показаться интересной!

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

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

Удачного вам дня и удачи в вашем путешествии по науке о данных!