Um mergulho profundo em algoritmos de recomendação com estudo de caso da Netflix e tecnologia de aprendizagem profunda NVIDIA

O que são Algoritmos de Recomendação?

Mecanismos de Recomendação são o segredo por trás de cada transação na Internet, seja ela na Amazon, Netflix, Flipkart, YouTube, TikTok, até mesmo no LinkedIn, Facebook, X(Twitter), Snapchat, Medium, Substack, HackerNoon… todos esses sites e quase todos os sites de curadoria de conteúdo ou mercados de produtos na Internet fazem seus grandes lucros com algoritmos de recomendação.

Simplificando, um algoritmo de recomendação constrói um modelo dos seus gostos, desgostos, favoritos, coisas que você prefere, gêneros que você prefere e itens que você prefere, e quando uma transação é feita no site, eles praticamente quase lêem a mente do usuário e preveem o próximo produto que você é mais provável comprar. Algumas das recomendações de algoritmos no YouTube e TikTok são tão precisas que conseguem manter os usuários obcecados por horas. Eu ficaria surpreendido se mesmo um leitor não tivesse relatado um binge de YouTube que saiu apenas de rolar e clicar/toque por cerca de dez minutos.

Isso leva a melhor engajamento do cliente, uma melhor experiência do cliente, renda aumentada e mais dinheiro para a plataforma em questão. A dependência é construída com a precisão e o assombroso desempenho desses algoritmos ultra-optimizados.

Esta é a maneira que essas gigantescas empresas constroem sua audiência.

Os visitantes mensais para YouTube, TikTok, Instagram e Facebook são (fonte):

  • Facebook: 2,9 Bilhões
  • YouTube: 2,2 Bilhões
  • Instagram: 1,4 bilhão
  • TikTok: 1 bilhão

E o segredo do seu sucesso: os fantásticos algoritmos de recomendação.

Tipos de Algoritmos de Recomendação

Filtragem Colaborativa (Baseada em Usuários)

A filtragem colaborativa baseada em usuários é uma técnica de recomendação que assume que usuários com preferências semelhantes terão gostos semelhantes. Ela utiliza dados de interação usuário-item para identificar semelhanças entre usuários, frequentemente empregando medidas como similaridade de cosêncima ou correlação de Pearson. O método prevê as avaliações ou preferências de um usuário com base nas avaliações fornecidas por usuários semelhantes.

No entanto, ela pode enfrentar desafios, como o problema de início frio para novos usuários que ainda não interagiram com o sistema, e problemas de escalabilidade podem surgir quando se trata de um número grande de usuários.

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

  • Usa a similaridade de cosêncima para calcular as semelhanças de usuários
  • Encontra os k usuários mais semelhantes ao usuário alvo
  • Agrega as avaliações de usuários semelhantes para gerar recomendações
  • Retorna a avaliação média de cada item dos usuários semelhantes
  • Implementação simples que pode ser facilmente modificada ou extendida

Filtragem Colaborativa (Baseada em Item)

Item-based collaborative filtering assume que usuários preferirão itens semelhantes aos que eles têm gostado no passado. Ele calcula a similaridade entre itens com base nas avaliações de usuários ou interações. Esta abordagem é frequentemente mais escalável do que o filtro colaborativo baseado em usuários, particularmente quando há muitos usuários e poucos itens. Permite a computação prévia de similaridades de itens, o que pode tornar as recomendações em tempo real mais rápidas.

Enquanto ele melhora o tratamento de novos usuários em relação aos métodos baseados em usuários, ele pode ter dificuldade com novos itens que carecem de avaliações suficientes. Adicionalmente, ele é menos afetado por mudanças nas preferências de usuários ao longo do tempo.

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

  • Transposta da matriz de avaliação para calcular similaridades de itens
  • Encontra os k itens mais semelhantes ao item alvo
  • Agrega avaliações de usuários para itens semelhantes
  • Retorna a avaliação média de cada usuário com base em itens semelhantes
  • Eficiente para sistemas com mais usuários do que itens

Fatoração de Matriz

Fatoração de matriz descompõe a matriz de interação usuário-item em matrizes de dimensão inferior, assumindo que as preferências de usuários e as características de itens podem ser representadas por fatores latentes. Técnicas como Decomposição de Valores Singulares (SVD) ou Mínimos Quadrados Alternados (ALS) são comumente usadas para esse fim.

Esta abordagem pode lidar eficientemente com grandes conjuntos de dados esparsos e frequentemente fornecer melhor precisão em comparação com os métodos de filtragem colaborativo baseados em memória. Adicionalmente, ela pode incorporar técnicas de regularização para evitar sobreajuste, melhorando a generalização do modelo para dados não vistos.

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

  • Implementa um algoritmo básico de factorização de matriz
  • Usa o descida de gradiente para minimizar o erro entre as avaliações previstas e as avaliações reais
  • Incorpora regularização para evitar overfitting
  • Atualiza iterativamente os fatores latentes de usuário e item
  • Parada quando o erro cai abaixo de um limiar ou quando se atinge o número máximo de passos

Filtragem Baseada em Conteúdo

A filtragem baseada em conteúdo recomenda itens com base em suas características e preferências do usuário. Ela constrói um perfil para cada usuário e item com base em suas características.

Técnicas como o TF-IDF (Term Frequency-Inverse Document Frequency) para análise de texto e similaridade de cosseno para correspondência são comumente empregadas. Este método resolve eficazmente o problema de itens novos, já que não depende de interações de usuário anteriores.

No entanto, ele pode sofrer de especialização excessiva, resultando em uma falta de diversidade nas recomendações. Além disso, a implementação eficaz exige boa engenharia de features para garantir que as características relevantes dos itens sejam capturadas com precisão.

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

  • Usa o TF-IDF para converter as descrições de texto em vetores numéricos
  • Calcula a similaridade de cosseno entre o perfil do usuário e as descrições dos itens
  • Retorna os k itens mais semelhantes ao perfil do usuário
  • Eficiente para sistemas com feições de itens bem definidas
  • Pode ser facilmente estendido para incluir vários tipos de feições

Sistema de Recomendação Híbrido

Sistemas de recomendação híbridos combinam duas ou mais técnicas de recomendação para aproveitar suas respectivas forças. Ao integrar múltiplos métodos, os sistemas híbridos podem mitigar as fraquezas de métodos individuais, como o problema de cold-start. Combinatórios comuns incluem filtragem colaborativa e baseada em conteúdo. Vários métodos são usados para combinar essas técnicas, tais como ponderadas, mudança, mistas ou abordagens de nível meta.

Sistemas híbridos frequentemente fornecem recomendações mais robustas e precisas em comparação com sistemas de única abordagem. No entanto, a implementação eficaz exige ajustes cuidadosos para equilibrar os diferentes componentes e garantir o desempenho ótimo.

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

  • Combina filtragem colaborativa e similaridades baseadas em conteúdo
  • Usa uma soma ponderada com o parâmetro alpha
  • Encontra usuários semelhantes com base na similaridade híbrida
  • Gera recomendações a partir das avaliações dos usuários semelhantes
  • Permite ajuste fácil do equilíbrio entre CF e abordagens baseadas em conteúdo

Decomposição de Valores Singulares (SVD)

Decomposição de Valores Singulares (SVD) é uma técnica de factorização de matriz que decompor uma matriz em três componentes: U, Σ, e V^T. Nesta decomposição, U e V representam os vetores singulares esquerdos e direitos, respectivamente, enquanto Σ contém os valores singulares.

SVD reduz a dimensionalidade mantendo apenas os k valores singulares superiores, o que ajuda a descobrir fatores latentes nas interações de usuário-item.

Este método é eficiente para lidar com matrizes grandes e esparsas comuns em sistemas de recomendação. Além disso, o SVD oferece um bom equilíbrio entre precisão e eficiência computacional, tornando-se uma escolha popular para a geração de recomendações.

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

  • Usa a função svd do scipy para realizar o SVD truncado
  • Reconstrói a matriz de avaliações usando apenas as k valores singulares maiores
  • Retorna uma matriz densa de avaliações preditas para todas as pares de usuário-item
  • Eficiente para matrizes de avaliações grandes e esparsas
  • Pode ser facilmente integrado the um sistema de recomendação maior

Fatorização de Tensor

A técnica de fatorização de tensor extende a fatorização de matriz tradicional para dados multi-dimensionais, permitindo a incorporação de informações contextuais, como tempo e localização, nas recomendações. Ela utiliza métodos como a decomposição CP, que descompõe um tensor em uma soma de tensores componentes, capturando interações complexas entre vários fatores. Este método exige mais dados e recursos computacionais em comparação com os métodos de duas dimensões, já que trabalha com arrays de dimensões superiores.

No entanto, ele pode fornecer recomendações altamente personalizadas e contextuais, aproveitando as dimensões adicionais de dados. A complexidade aumentada da estrutura de dados permite uma compreensão mais nuanceda das preferências de usuário em vários contextos, aumentando a precisão geral das recomendações.

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

  • Usa a biblioteca TensorLy para operações de tensor e decomposição
  • Aplica a decomposição PARAFAC à matriz de entrada.
  • Reconstrói o tensor a partir dos fatores decompostos
  • Retorna o tensor reconstruído como recomendações
  • Pode lidar com dados multidimensionais (por exemplo, usuário-item-contexto)

Filtragem Colaborativa Neuronal

Sistemas de recomendação baseados em aprendizagem profunda combinam técnicas de filtragem colaborativa com redes neurais. Este método permite aprender interações não-lineares entre usuário e item, que as tradicionais técnicas de factorização de matrizes podem ter dificuldade. Os recomendadores de aprendizagem profunda normalmente usam camadas de embeddings para representar usuários e itens em um espaço denso, de baixa dimensão. Isso permite a fácil integração de features adicionais ou informação de lado, como demografia de usuários ou descrições de itens, para melhorar o desempenho de recomendação.

Quando treinados em grandes conjuntos de dados, os sistemas baseados em aprendizagem profunda frequentemente superam as técnicas de factorização de matriz tradicionais em termos de precisão. No entanto, este benefício vem a custo de complexidade computacional aumentada e a necessidade de grandes quantidades de dados.

Os recomendadores de aprendizagem profunda também exigem ajuste cuidadoso de hiperparâmetros para obter resultados otimizados, tornando-os mais difíceis de implementar e manter em comparação com abordagens mais simples de filtragem colaborativa.

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

  • UsamTensorFlow e Keras para construir um modelo de rede neural
  • Criam camadas de embeddings para usuários e itens
  • Concatenam embeddings de usuário e item
  • Adicionam camadas densas para aprender interações não-lineares
  • Retorna um modelo compilado pronto para treinamento

O Caso de Estudo da Netflix

A jornada do algoritmo de recomendação da Netflix começou com o CineMatch em 2000, um algoritmo de filtragem colaborativa que usava as avaliações dos membros para estimar quanto um usuário iria desfrutar de um filme. Em 2006, o Prêmio Netflix de 1 milhão de dólares foi lançado para desafiar os cientistas de dados a criar um modelo que superasse o CineMatch em 10%. O algoritmo vencedor então foi implementado no sistema interno da Netflix.

A Netflix começou a acumular usuários e houve uma mudança para dados de streaming em 2007. Os espectadores foram expostos a algoritmos de aprendizagem por reforço e algoritmos de agrupamento que geravam sugestões em tempo real. Ao melhorar o algoritmo, cada vez mais usuários começaram a mudar para a Netflix, simplesmente devido à eficiência do algoritmo de recomendação. Cerca de 80% do conteúdo assistido na Netflix é sugerido pelo algoritmo de recomendação.

A empresa estima que poupa 1 bilhão anualmente por perda de usuários devido à eficiência do algoritmo de recomendação.

A Netflix usa técnicas de aprendizagem automática avançadas e agrupamento com um sistema de mais de 1300 clusters baseado na metadados dos filmes assistidos pelos usuários. Isso permite que eles entreguem sugestões altamente otimizadas aos usuários. Mas a Netflix rapidamente encontrou um problema: escala. Com o número de usuários mensais chegando a centenas de milhões e o número total de usuários passando para mais de 200 milhões, a Netflix apostou tudo na computação em nuvem.

Simplificando, eles migraram toda a base de dados para os Serviços da Web Amazon (AWS), começando em 2008. O processo de transição completo levou anos para ser concluído e foi finalizado em 2015. A Netflix supostamente poupa 1 bilião de dólares por ano usando o AWS. O AWS também tem suporte integrado para aprendizado de máquina, que a Netflix usa ao máximo. A Netflix supostamente usou mais de 100.000 servidores AWS e 1.000 segmentos Kinesis para seu público global em 2022.

A partir de 2015, a Netflix também começou a oferecer suas próprias produções, com milhares de filmes e programas em uma variedade ampla de formatos. Os algoritmos de recomendação da Netflix são altamente automatizados e realizam milhares de testes A/B para usuários por dia. A base de assinaturas de usuários do Netflix atualmente ultrapassa 280 milhões.

Embora a Netflix agora enfrente competição rigorosa, especialmente de Disney+, que adquiriu a marca Marvel e a franquia Star Wars, a empresa visa atingir 500 milhões de assinantes até 2025.

No ano passado, a Netflix arrecadou um faturamento de impressionante 31 milhões de dólares.

As principais partes de seus atuais sistemas de recomendação envolvem:

  1. Aprendizado por reforço: Dependendo do comportamento do usuário, a Netflix altera o conteúdo na tela em tempo real. Portanto, o sistema está em um estado de constante fluxo e muda dependendo das interações do usuário.
  2. Redes neurais profundas: Devido ao tamanho dos dados (mais de 15.000 programas e quase 300 milhões de usuários), as técnicas de ML padrão não são fáceis de aplicar. Aprendizado profundo é usado extensivamente, usando tecnologia da NVIDIA. (Veja no final deste artigo um programa que usa a última tecnologia de aprendizado profundo Merlin da NVIDIA).
  3. Fatoração de matriz: Através do efeito de分解 (SVD) eficiente em matrizes altamente esparsas e vastas, a Netflix estimula a importância e a atração de cada usuário para certos gêneros e programas.
  4. Aprendizado de conjunto: Combinações inteligentes dos algoritmos listados acima ajustam as recomendações em tempo real, para que nenhum usuário veja a mesma tela. Essa personalização é o que gera grandes lucros e manteve a Netflix no topo de todas as plataformas OTT.

Todos esses modelos e otimizações executam centenas de milhares de vezes por dia para centenas de milhares de usuários.

Tecnologia de Aprendizado Profundo Moderna

Com tamanhos tão grandes, nenhum computador único pode executar esses modelos de ML sozinho. É por isso que a AWS executa algoritmos de ML de forma distribuída em milhares de máquinas.

NVIDIA recentemente lançou vários produtos para habilitar sistemas de recomendação em escala. Os clusters de GPU da NVIDIA também desempenham um papel importante na execução dos algoritmos de ML. A NVIDIA recentemente lançou o Merlin, um algoritmo de recomendação de alto desempenho otimizado para executar em milhares de máquinas e entregar resultados superiores. Provavelmente, isso só era uma questão de tempo, uma vez que o tamanho dos conjuntos de dados excedeu muito o que computadores individuais podiam processar.

Sistemas modernos de recomendação usam extensivamente aprendizagem profunda. Como parte do DL, sistemas de computação GPU/TPU são amplamente usados para acelerar o cálculo.

Algumas das ofertas recentes da NVIDIA para o Merlin incluem:

Sistemas de Recomendação da NVIDIA

(De Anunciando NVIDIA Merlin: Um Framework de Aplicação para Sistemas de Recomendação Profunda)

Disponível como projetos open-source:

NVTabular

NVTabular é uma biblioteca de engenharia de recursos e pré-processamento, projetada para manipular rapidamente e facilmente conjuntos de dados de escalas de terabytes. Ela é particularmente adequada para sistemas de recomendação, que necessitam de uma maneira escalável de processar informações adicionais, como metadados de usuário e item e informações contextuais. Fornece uma abstratação de alto nível para simplificar o código e acelera o cálculo no GPU usando a biblioteca RAPIDS cuDF. Usando NVTabular, com apenas 10-20 linhas de código de API de alto nível, você pode configurar um pipeline de engenharia de dados e alcançar até 10X de加速 em comparação com abordagens baseadas em CPU optimizadas, sem experimentar limitações de tamanho de conjunto de dados, independentemente da capacidade de memória GPU/CPU.

HugeCTR

HugeCTR é um framework GPU altamente eficiente projetado para treinamento de modelos de recomendação, que se concentra tanto na performance alta quanto na facilidade de uso. Ele suporta tanto modelos profundos simples quanto modelos híbridos de ponta, como o W&D, Deep Cross Network e DeepFM. Estamos também trabalhando para habilitar o DLRM com HugeCTR. Os detalhes do modelo e os hiperparâmetros podem ser especificados facilmente no formato JSON, permitindo uma seleção rápida de uma gama de modelos comuns.

TensorRT e Servidor Triton para Inferência

A TensorRT é um SDK para inferência de DL de alto desempenho. Ele inclui um otimizador de inferência de rede neural e tempo de execução que fornece baixa latência e alto throughput para aplicações de inferência. A TensorRT pode aceitar redes neurais treinadas de todas as frameworks de DL usando uma interface comum, o formato aberto de troca de rede neural (ONNX).

O Servidor de Inferência Triton da NVIDIA fornece uma solução de inferência em nuvem otimizada para GPUs da NVIDIA. O servidor fornece um serviço de inferência via um ponto final HTTP ou gRPC, permitindo que clientes remotos solicitem inferência para qualquer modelo gerenciado pelo servidor. O Servidor Triton pode atender a modelos de recomendação de DL usando vários backends, incluindo TensorFlow, PyTorch (TorchScript), tempo de execução ONNX e runtime TensorRT.

Exemplo de Código

O exemplo de código a seguir mostra o workflow de pré-processamento real necessário para transformar o dataset de anúncios Criteo de 1 TB, implementado com apenas uma dúzia de linhas de código usando a NVTabular. Resumindo, as colunas numéricas e categóricas são especificadas. Em seguida, definimos um workflow NVTabular e fornecemos um conjunto de arquivos de treinamento e validação. Em seguida, operações de pré-processamento são adicionadas ao workflow e os dados são persistidos no disco. Em comparação, códigos de processamento personalizados, como o data util baseado em NumPy no implementação DLRM do Facebook, pode ter 500-1000 linhas de código para a mesma pipeline.

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
 
# Inicializar Workflow
proc = nvt.Worfklow(cat_names=cat_names, cont_names=cont_names, label_name=label_names)
 
# Criar conjuntos de dados a partir de arquivos de entrada
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)
 
# Adicionar operações de engenharia de características e pré-processamento ao 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))
 
# Computar estatísticas, transformar dados, exportar para o disco
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))

Toda a estrutura tecnológica pode ser encontrada no seguinte repositório do GitHub:

Conclusão

Sistemas de recomendação têm feito longo caminho.

De simples modelagem estatística, filtragem baseada em conteúdo e filtragem colaborativa, agora temos redes neurais de aprendizagem profunda, nós de HPC, factorização de matriz e sua extensão a dimensões maiores, factorização de tensor.

O sistema de recomendação mais lucrativo para streaming é a NVIDIA, e eles executam suas inteiras algoritmos de aprendizagem automática na nuvem com AWS.

Sistemas de recomendação são usados em todo o lado, desde o Google até o Microsoft até o Amazon até o Flipkart. É uma parte crítica das empresas modernas e não há nenhuma empresa online que não o use de uma forma ou de outra.

Hoje em dia, muitas empresas oferecem sistemas de recomendação personalizados online.

Algumas das principais incluem:

  1. Netflix: Conhecido por sua sofisticada engine de recomendação que analisa hábitos de visualização de usuários para sugerir filmes e programas de TV
  2. Amazon: Utiliza uma potente engine de recomendação que sugere produtos com base no histórico de compras e no comportamento de navegação dos usuários.
  3. Spotify: Usa um sistema de recomendação que curadoria de playlists de música e sugestões de músicas com base no histórico de ouvimento do usuário
  4. YouTube: Usa um motor de recomendação para sugerir vídeos com base nos padrões de visualização e preferências dos usuários
  5. LinkedIn: Recomenda empregos, conexões e conteúdo com base no perfil do usuário e histórico profissional
  6. Zillow: Sugere imóveis de propriedade realizada com base nas preferências do usuário e no histórico de busca
  7. Airbnb: Fornece recomendações de alojamento com base no histórico de viagem do usuário e preferências
  8. Uber: Recomenda opções de viagem com base nas preferências do usuário e viagens anteriores
  9. IBM Corporation: Líder no mercado de motores de recomendação, oferecendo várias soluções baseadas em inteligência artificial
  10. Google LLC (Alphabet Inc.): Fornece sistemas de recomendação em suas plataformas, aproveitando extensivamente análise de dados

Espero que um dia a sua empresa seja uma dessas elites listas. E tudo o melhor para sua empresa.

Independentemente do setor em que você está, se você tiver uma presença online, você precisa usar sistemas de recomendação de alguma forma. Continue explorando este segmento, e se você tiver um excelente conhecimento, resta-se que você será altamente procurado.

Nunca pare de aprender. Mantenha a entusiasmo. Sempre acredite em seu infinito potencial de crescimento. Seu futuro está nas suas mãos. Faz-o extraordinário!

Referências

  1. Sistemas de Recomendação – Wikipédia
  2. O que são Sistemas de Recomendação? – GeeksforGeeks
  3. Tipos de Sistemas de Recomendação: Como eles funcionam e casos de uso (almabetter.com)
  4. Sistemas de Recomendação e Aprendizado de Máquina (itransition.com)
  5. Sistemas de Recomendação em Python 101 (kaggle.com)
  6. Algoritmos de Sistemas de Recomendação: Um Resumo – KDnuggets

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