Глубокий обзор рекомендательных алгоритмов с исследованием Netflix и технологией NVIDIA Deep Learning

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

Рекомендательные системы являются секретом всех интернет-транзакций, будь то Amazon, Netflix, Flipkart, YouTube, TikTok, даже LinkedIn, Facebook, X(Twitter), Snapchat, Medium, Substack, HackerNoon. . . все эти сайты и почти все контент-подборки или торговые площадки на интернете приносят им большие деньги благодаря рекомендательным алгоритмам.

Просто говоря, рекомендательный алгоритм строит модель ваших likes, dislikes, favoritos, вещей, которые вы предпочитаете, жанров, которые вы предпочитаете, и товаров, которые вы предпочитаете, и когда на сайте происходит одна транзакция, они практически почти читают ваше мнение и предсказывают следующий продукт, который вы, скорее всего, купите. Некоторые рекомендательные алгоритмы на YouTube и TikTok так точны, что они могут захватить пользователей вниманием на несколько часов. Я бы был удивлен, если бы хотя бы один читатель не сообщил о YouTube-байнге, который произошел только из прокрутки и нажатия/щелчков примерно за десять минут.

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

Также эти гиганты строят свое аудиторию.

Месячные посетители YouTube, TikTok, Instagram и Facebook ( источник):

  • Facebook: 2,9 млрд
  • YouTube: 2,2 млрд
  • Instagram: 1,4 миллиарда
  • TikTok:1 миллиард

И секрет их успеха: фантастические алгоритмы рекомендаций.

Типы алгоритмов рекомендаций

Коллаборативная фильтрация (на основе пользователя)

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

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

Python

 

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def user_based_cf(ratings_matrix, user_id, k=5):
    similarities = cosine_similarity(ratings_matrix)
    user_similarities = similarities[user_id]
    similar_users = np.argsort(user_similarities)[::-1][1:k+1]
    
    recommendations = np.zeros(ratings_matrix.shape[1])
    for similar_user in similar_users:
        recommendations += ratings_matrix[similar_user]
    
    return recommendations / k

  • Использует косинусное сходство для расчета сходства пользователей
  • Находит k наиболее похожих пользователей на целевого пользователя
  • Объединяет рейтинги похожих пользователей для создания рекомендаций
  • Возвращает средний рейтинг для каждого элемента от похожих пользователей
  • Простая реализация, которая может быть легко изменена или расширена

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

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

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

Python

 

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def item_based_cf(ratings_matrix, item_id, k=5):
    similarities = cosine_similarity(ratings_matrix.T)
    item_similarities = similarities[item_id]
    similar_items = np.argsort(item_similarities)[::-1][1:k+1]
    
    recommendations = np.zeros(ratings_matrix.shape[0])
    for similar_item in similar_items:
        recommendations += ratings_matrix[:, similar_item]
    
    return recommendations / k

  • Применяет матрицу оценок для расчета сходства между элементамиСходство элементов
  • Находит k наиболее похожих элементов на целевой элемент
  • Собирает рейтинги пользователей для похожих элементов
  • Выводит средний рейтинг для каждого пользователя на основе похожих элементов
  • Эффективен для систем, где пользователей больше, чем элементов

Матричная факторизация

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

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

Python

 

import numpy as np

def matrix_factorization(R, P, Q, K, steps=5000, alpha=0.0002, beta=0.02):
    Q = Q.T
    for step in range(steps):
        for i in range(len(R)):
            for j in range(len(R[i])):
                if R[i][j] > 0:
                    eij = R[i][j] - np.dot(P[i,:], Q[:,j])
                    for k in range(K):
                        P[i][k] += alpha * (2 * eij * Q[k][j] - beta * P[i][k])
                        Q[k][j] += alpha * (2 * eij * P[i][k] - beta * Q[k][j])
        
        e = 0
        for i in range(len(R)):
            for j in range(len(R[i])):
                if R[i][j] > 0:
                    e += pow(R[i][j] - np.dot(P[i,:], Q[:,j]), 2)
                    for k in range(K):
                        e += (beta/2) * (pow(P[i][k], 2) + pow(Q[k][j], 2))
        if e < 0.001:
            break
    return P, Q.T

  • Реализует базовый алгоритм факторизации матриц
  • Использует градиентный спуск для минимизации ошибки между предсказанными и фактическими рейтингами
  • Включает регуляризацию для предотвращения переобучения
  • Итеративно обновляет латентные факторы пользователя и товара
  • Прекращает, когда ошибка опускается ниже определённого порога или достигается максимальное число шагов

Фильтрация на основе содержания

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

Техники, такие как TF-IDF (Частота Термина – Инверсия Частоты Документа) для анализа текста и косинусной подобности для сопоставления, широко применяются. Этот подход эффективно решает проблему новых товаров, так как он не зависит от предыдущих взаимодействий пользователей.

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

Python

 

import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

def content_based_filtering(item_descriptions, user_profile, k=5):
    vectorizer = TfidfVectorizer()
    item_vectors = vectorizer.fit_transform(item_descriptions)
    user_vector = vectorizer.transform([user_profile])
    
    similarities = cosine_similarity(user_vector, item_vectors)
    top_items = np.argsort(similarities[0])[::-1][:k]
    
    return top_items

  • Использует TF-IDF для преобразования текстовых описаний в числовые векторы
  • Вычисляет косинусную подобность между профилем пользователя и описаниями товаров
  • Возвращает k наиболее похожих товаров по профилю пользователя
  • Эффективен для систем с хорошо определёнными характеристиками товаров
  • Может быть легко расширен для включения множества типов признаков

Гибридная система рекомендаций

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

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

Python

 

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def hybrid_recommender(ratings_matrix, content_matrix, user_id, alpha=0.5, k=5):
    cf_similarities = cosine_similarity(ratings_matrix)
    content_similarities = cosine_similarity(content_matrix)
    
    hybrid_similarities = alpha * cf_similarities + (1 - alpha) * content_similarities
    user_similarities = hybrid_similarities[user_id]
    
    similar_users = np.argsort(user_similarities)[::-1][1:k+1]
    
    recommendations = np.zeros(ratings_matrix.shape[1])
    for similar_user in similar_users:
        recommendations += ratings_matrix[similar_user]
    
    return recommendations / k

  • Комбинация совместного фильтрания и сходства на основе содержимого
  • Используется весовое суммарное подход с параметром alpha
  • Находит схожих пользователей на основе гибридной схожести
  • Генерирует рекомендации на основе оценок схожих пользователей
  • Permits easy adjustment of the balance between CF and content-based approaches

Сingular Value Decomposition (SVD)

Сingular Value Decomposition (SVD) – это техника разложения матрицы на три компоненты: U, Σ, и V^T. В этом разложении U и V представляют собой левые и правые сингулярные векторы, соответственно, а Σ содержит сингулярные значения.

СVD уменьшает размерность, сохраняя только top k сингулярные значения, что помогает открыть скрытые факторы в взаимодействии пользователей с предметами.

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

Python

 

import numpy as np
from scipy.sparse.linalg import svds

def svd_recommender(ratings_matrix, k=5):
    U, s, Vt = svds(ratings_matrix, k=k)
    
    sigma = np.diag(s)
    predicted_ratings = np.dot(np.dot(U, sigma), Vt)
    
    return predicted_ratings

  • Использует функцию svd из библиотеки scipy для выполнения_TRUNCATED SVD
  • Восстанавливает матрицу рейтингов, используя только верхние k сингулярные значения
  • Возвращает плотную матрицу предсказанных рейтингов для всех пар пользователь-предмет
  • Эффективен для больших, разреженных матриц рейтингов
  • Может легко интегрироваться в более крупную систему рекомендаций

Тензорное разложение

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

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

Python

 

import numpy as np
import tensorly as tl
from tensorly.decomposition import parafac

def tensor_factorization_recommender(tensor, rank=10):
    factors = parafac(tensor, rank=rank)
    reconstructed_tensor = tl.kruskal_to_tensor(factors)
    return reconstructed_tensor

  • Использует библиотеку TensorLy для тензорных операций и декомпозиции
  • Применяет PARAFAC-разложение к входному тензору
  • Обновляет тензор из разложенных факторов
  • Возвращает восстановленный тензор в качестве рекомендаций
  • Обрабатывает многомерные данные (например, пользователь-предмет-контекст)

Нейронная коллективная фильтрация

Дополнительные рекомендательные системы на основе глубокого обучения объединяют технику коллективной фильтрации с нейронными сетями. Этот подход позволяет leaning нелинеарные взаимодействия пользователя и объекта, которым традиционные методы матричного разложения могут испытывать трудности. Крайне Learning рекомендаторы обычно используют слои嵌入 для представления пользователей и объектов в плотном, низкомерностном пространстве. Это позволяет легко интегрировать дополнительные характеристики или дополнительную информацию, такую как демографические данные пользователей или описания объектов, чтобы улучшить performace. рекомендаций

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

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

Python

 

import tensorflow as tf
from tensorflow.keras.layers import Input, Embedding, Flatten, Dense, Concatenate
from tensorflow.keras.models import Model

def neural_collaborative_filtering(num_users, num_items, embedding_size=100):
    user_input = Input(shape=(1,), dtype='int32', name='user_input')
    item_input = Input(shape=(1,), dtype='int32', name='item_input')

    user_embedding = Embedding(num_users, embedding_size, name='user_embedding')(user_input)
    item_embedding = Embedding(num_items, embedding_size, name='item_embedding')(item_input)

    user_vecs = Flatten()(user_embedding)
    item_vecs = Flatten()(item_embedding)

    concat = Concatenate()([user_vecs, item_vecs])
    dense1 = Dense(128, activation='relu')(concat)
    dense2 = Dense(64, activation='relu')(dense1)
    output = Dense(1, activation='sigmoid')(dense2)

    model = Model(inputs=[user_input, item_input], outputs=output)
    model.compile(optimizer='adam', loss='binary_crossentropy')

    return model

  • ИспользуетTensorFlow и Keras для создания модели нейронной сети
  • Создает слои嵌入 для пользователей и объектов
  • Комбинирует嵌入 пользователей и объектов
  • Добавляет гибкие слои для leaned нелинеарные взаимодействия

Возвращает скомпилированную модель, готовую к обучению

Исследование случая Netflix

Путешествие алгоритма рекомендаций Netflix началось с CineMatch в 2000 году, алгоритма коллаборативной фильтрации, который использовал рейтинги пользователей для оценки, насколько пользователю понравится фильм. В 2006 году был запущен Netflix Prize на сумму 1 миллион долларов США, чтобы вызвать у ученых-данных создать модель, которая победит CineMatch на 10%. Победивший алгоритм был затем внедрен во внутренние данные Netflix.

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

Компания оценивает, что благодаря эффективности алгоритма рекомендаций она ежегодно экономит 1 миллиард долларов США от потерянных пользователей. Netflix использует передовые методы машинного обучения и кластеризации с системой более 1300 кластеров на основе метаданных фильмов, которые смотрят пользователи. Это позволяет им предоставлять своим пользователям высокооптимизированные предложения. Но Netflix вскоре столкнулся с проблемой: масштабом. Когда количество ежемесячных пользователей достигло сотен миллионов, и общее количество пользователей превысило 200 миллионов, Netflix полностью перешел на облачные вычисления.

Проще говоря, они перенесли все данные в Amazon Web Services (AWS), начиная с 2008 года. Полный процесс перехода занял несколько лет и завершился в 2015 году. По имеющимся данным, используя AWS, Netflix экономит 1 миллиард в год. В AWS также встроена поддержка машинного обучения, которую Netflix использует в полной мере. По имеющимся данным, в 2022 году Netflix использовала более 100 000 серверов AWS и 1000 шардов Kinesis для своей глобальной аудитории.

С 2015 года Netflix также начал предлагать фильмы собственного производства – более тысячи фильмов и передач в самых разных форматах. Алгоритмы рекомендаций Netflix высоко автоматизированы и ежедневно проводят тысячи A/B-тестов для пользователей. Сегодня подписная база Netflix превышает 280 миллионов пользователей.

Хотя сейчас Netflix сталкивается с жесткой конкуренцией, особенно со стороны Disney+, которая приобрела франшизы Marvel и Star Wars, компания стремится достичь 500 миллионов подписчиков к 2025 году.

В прошлом году Netflix заработала внушительный доход в 31 миллиард.

Основные части ее нынешней системы рекомендаций включают:

  1. Обучение с подкреплением: В зависимости от поведения пользователя Netflix меняет контент на экране в режиме реального времени. Таким образом, система находится в состоянии постоянного потока и меняется в зависимости от взаимодействия с пользователем.
  2. Глубокие нейронные сети: Из-за масштаба данных (более 15 000 шоу и почти 300 миллионов пользователей) стандартные методы ML применить непросто. Широко используется Deep Learning с применением технологии NVIDIA. (Программу, использующую новейшую технологию глубокого обучения NVIDIA Merlin, смотрите в конце статьи).
  3. Матричная факторизация: Эффективно выполняя Singular Value Decomposition (SVD) на очень разреженных и очень обширных матрицах, Netflix оценивает важность и привлекательность для каждого пользователя определенных жанров и шоу.
  4. Энсамблевое обучение: Умные комбинации перечисленных выше алгоритмов корректируют рекомендации на лету, чтобы два пользователя не видели одного и того же экрана. Именно такая персонализация приносит большие доходы и позволяет Netflix быть на голову выше всех OTT-платформ.

И все эти модели и оптимизации работают сотни тысяч раз в день для сотен тысяч пользователей.

Современная технология глубокого обучения

При таких масштабах ни один компьютер не может работать с этими ML-моделями в одиночку. Именно поэтому AWS запускает алгоритмы ML распределенно на тысячах машин.

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

Современные рекомендательные системы широко используют глубокое обучение. Как часть DL, вычислительные системы GPU/TPU широко используются для ускорения вычислений.

Некоторые из недавних предложений NVIDIA для Merlin включают:

NVIDIA Recommender Systems

(Из Анонсирование NVIDIA Merlin: Application Framework for Deep Recommender Systems)

Доступны как проекты с открытым исходным кодом:

NVTabular.

NVTabular – это библиотека для разработки и предварительной обработки признаков, предназначенная для быстрого и простого манипулирования наборами данных терабайтного масштаба. Она особенно подходит для рекомендательных систем, которым требуется масштабируемый способ обработки дополнительной информации, такой как метаданные пользователей и элементов, а также контекстная информация. Он предоставляет высокоуровневую абстракцию для упрощения кода и ускоряет вычисления на GPU с помощью библиотеки RAPIDS cuDF. Используя NVTabular, с помощью всего 10-20 строк высокоуровневого API-кода можно создать конвейер обработки данных и добиться ускорения до 10 раз по сравнению с оптимизированными подходами на базе CPU, не испытывая ограничений на размер набора данных, независимо от объема памяти GPU/CPU.

HugeCTR

HugeCTR – это высокоэффективный GPU-фреймворк для обучения рекомендательных моделей, который ориентирован как на высокую производительность, так и на простоту использования. Он поддерживает как простые глубокие модели, так и современные гибридные модели, такие как W&D, Deep Cross Network и DeepFM. Мы также работаем над включением DLRM в HugeCTR. Детали модели и гиперпараметры могут быть легко указаны в формате JSON, что позволяет быстро выбирать из ряда распространенных моделей.

TensorRT и Triton Server for Inference

NVIDIA TensorRT – это SDK для высокопроизводительных DL-вычислений. Он включает в себя оптимизатор и среду выполнения DL-вычислений, обеспечивающую низкую задержку и высокую пропускную способность приложений для вычислений. TensorRT может принимать обученные нейронные сети из всех DL-фреймворков, используя общий интерфейс, открытый формат обмена нейронными сетями (ONNX).

NVIDIA Triton Inference Server предоставляет решение для облачных вычислений, оптимизированное для NVIDIA GPU. Сервер предоставляет услуги по обработке выводов через конечную точку HTTP или gRPC, позволяя удаленным клиентам запрашивать выводы для любой модели, управляемой сервером. Triton Server может обслуживать DL-модели рекомендаций, используя несколько бэкендов, включая TensorFlow, PyTorch (TorchScript), ONNX runtime и TensorRT runtime.

Пример кода

Следующий пример кода показывает фактический рабочий процесс предварительной обработки, необходимый для преобразования 1-ТБ набора данных Criteo Ads, реализованный всего в десятке строк кода с использованием NVTabular. Вкратце, задаются числовые и категориальные столбцы. Далее мы определяем рабочий процесс NVTabular и предоставляем набор обучающих и проверочных файлов. Затем в рабочий процесс добавляются операции предварительной обработки, и данные сохраняются на диск. Для сравнения, пользовательские коды обработки, такие как data util на базе NumPy в реализации DLRM от Facebook, могут содержать 500-1000 строк кода для такого же конвейера.

Python

 

import nvtabular as nvt
import glob
 
cont_names = ["I"+str(x) for x in range(1, 14)] # specify continuous feature names
cat_names = ["C"+str(x) for x in range(1, 27)] # specify categorical feature names
label_names = ["label"] # specify target feature
columns = label_names + cat_names + cont_names # all feature names
 
# инициализация Workflow
proc = nvt.Worfklow(cat_names=cat_names, cont_names=cont_names, label_name=label_names)
 
# создание наборов данных из входных файлов
train_files = glob.glob("./dataset/train/*.parquet")
valid_files = glob.glob("./dataset/valid/*.parquet")
 
train_dataset = nvt.dataset(train_files, gpu_memory_frac=0.1)
valid_dataset = nvt.dataset(valid_files, gpu_memory_frac=0.1)
 
# добавление операций по проектированию и предварительной обработке данных в Workflow
proc.add_cont_feature([nvt.ops.ZeroFill(), nvt.ops.LogOp()])
proc.add_cont_preprocess(nvt.ops.Normalize())
proc.add_cat_preprocess(nvt.ops.Categorify(use_frequency=True, freq_threshold=15))
 
# вычисление статистики, преобразование данных, экспорт на диск
proc.apply(train_dataset, shuffle=True, output_path="./processed_data/train", num_out_files=len(train_files))
proc.apply(valid_dataset, shuffle=False, output_path="./processed_data/valid", num_out_files=len(valid_files))

Весь стек технологий можно найти в следующем репозитории GitHub:

Заключение

Системы рекомендаций прошли долгий путь развития.

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

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

Системы рекомендаций используются везде, от Google до Microsoft, от Amazon до Flipkart. Это важнейшая часть современного предприятия, и в Интернете нет ни одной компании, которая не использовала бы их в той или иной форме.

Сегодня существует множество компаний, которые предлагают заказные рекомендательные системы в Интернете.

К числу ведущих из них относятся:

  1. Netflix: Известна своей сложной рекомендательной системой, которая анализирует привычки пользователей по просмотру и предлагает фильмы и телешоу
  2. Amazon: Использует мощную рекомендательную систему, которая предлагает продукты на основе истории покупок и поведения пользователей при просмотре сайтов.
  3. Спотify: Использует систему рекомендаций, которая создает музыкальные плейlists и подсказки треков на основе истории прослушивания пользователей
  4. YouTube: Использует движок рекомендаций для предложения видеороликов на основе ориентиров просмотра пользователей и их предпочтений
  5. LinkedIn: Рекомендует работы, связи и содержание на основе профилей пользователей и их профессионального опыта
  6. Zillow: Предлагает недвижимость, соответствующую предпочтениям пользователей и их истории поиска
  7. Airbnb: Предлагает рекомендации по местам проживания на основе истории путешествий пользователей и их предпочтений
  8. Uber: Рекомендует варианты проезда на основе предпочтений пользователей и их предыдущих поездок
  9. IBM Corporation: Лидер рынка движков рекомендаций, предлагающий различные AI-управляемые решения
  10. Google LLC (Alphabet Inc.): Предоставляет системы рекомендаций на своих платформах, используя обширные аналитические данные

Надеемся, что однажды ваша компания станет элитным членом этого списка. И лучших пожеланий для вашего предприятия.

Ноль на вашем месте независимо от отрасли, если у вас есть онлайн-предъявление, вам нужно использовать системы рекомендаций. CONTINUE TO EXPLORE THIS SEGMENT, и если у вас есть OUTSTANDING EXPERTISE, уверенно скажете, что вы будете крайне востребованы.

Не останавливайтесь на учении. Будьте увлечены. Всегда верьте в неограниченный потенциал для роста. Ваше будущее в ваших руках. Сделайте его исключительным!

Ссылки

  1. Рекомендательные системы – Википедия
  2. Что такое рекомендательные системы? – GeeksforGeeks
  3. Типы рекомендательных систем: как они работают и учебные примеры (almabetter.com)
  4. Рекомендательные системы и машинное обучение (itransition.com)
  5. 101 Python для рекомендательных систем (kaggle.com)
  6. Обзор алгоритмов рекомендательных систем – KDnuggets

Source:
https://dzone.com/articles/a-deep-dive-into-recommendation-algorithms-with-ne