O algoritmo que melhor conhece você: descobrindo os sistemas de recomendação

Dec 28 2022
Você já percorreu seu feed de mídia social e foi apresentado a uma postagem ou anúncio que parece se alinhar perfeitamente com seus interesses e preferências? Ou você já recebeu uma notificação de um produto ou serviço no qual não pode deixar de clicar porque parece que foi feito especialmente para você? Em caso afirmativo, você experimentou o poder dos sistemas de recomendação em ação. Os sistemas de recomendação, também conhecidos como sistemas de recomendação, são algoritmos usados ​​por plataformas de mídia social e outros aplicativos online para prever o que um usuário pode gostar com base em seu comportamento e preferências anteriores.
Eu juro que não usei o MidJourney para fazer isso

Você já percorreu seu feed de mídia social e foi apresentado a uma postagem ou anúncio que parece se alinhar perfeitamente com seus interesses e preferências? Ou você já recebeu uma notificação de um produto ou serviço no qual não pode deixar de clicar porque parece que foi feito especialmente para você? Em caso afirmativo, você experimentou o poder dos sistemas de recomendação em ação.

Os sistemas de recomendação, também conhecidos como sistemas de recomendação, são algoritmos usados ​​por plataformas de mídia social e outros aplicativos online para prever o que um usuário pode gostar com base em seu comportamento e preferências anteriores. Esses algoritmos desempenham um papel crucial na experiência de mídia social moderna, ajudando a exibir conteúdo e anúncios mais relevantes e atraentes para cada usuário individual.

Neste artigo, exploraremos o funcionamento interno dos sistemas de recomendação e como eles são capazes de adaptar o conteúdo que vemos nas mídias sociais aos nossos interesses e hábitos exclusivos. Também discutiremos as possíveis desvantagens e considerações éticas dessas ferramentas poderosas. Então sente-se e prepare-se para descobrir o misterioso mundo dos sistemas de recomendação no mundo das mídias sociais!

Os Tipos:

Tipos de Sistemas de Recomendação

Um tipo comum é a filtragem colaborativa, baseada na ideia de que pessoas com gostos semelhantes no passado provavelmente terão gostos semelhantes no futuro. Essa abordagem é eficaz ao fazer recomendações para itens que receberam uma quantidade suficiente de avaliações de outros usuários, mas pode ser difícil fazer recomendações para itens mais novos ou menos populares.

Outro tipo é a recomendação baseada em conteúdo, que usa as características de um item para recomendar itens semelhantes. Essa abordagem é eficaz na recomendação de itens semelhantes aos que um usuário gostou no passado, mas pode ser difícil recomendar itens que estão fora dos interesses estabelecidos de um usuário.

Uma abordagem híbrida, combinando filtragem colaborativa e recomendação baseada em conteúdo, também é possível. Essa abordagem pode aproveitar os pontos fortes de ambos os métodos e fornecer recomendações mais precisas.

As recomendações em tempo real que mudam o jogo:

Um exemplo de sistema de recomendação em tempo real

Os sistemas de recomendação em tempo real nas mídias sociais desempenham um papel crucial no aumento do envolvimento do usuário, fornecendo recomendações personalizadas aos usuários em tempo real enquanto eles interagem com a plataforma. Ao recomendar conteúdo relevante para os usuários enquanto eles navegam, esses sistemas podem manter os usuários na plataforma por mais tempo e incentivá-los a se envolver com mais conteúdo.

As principais plataformas de mídia social, como Facebook, Instagram e Twitter, usam sistemas de recomendação em tempo real para recomendar conteúdo aos usuários enquanto eles percorrem seus feeds. Esses sistemas geralmente usam uma combinação de filtragem colaborativa e recomendação baseada em conteúdo para fazer recomendações com base no comportamento passado de um usuário e no comportamento de usuários semelhantes.

Existem várias técnicas para implementar sistemas de recomendação em tempo real, incluindo algoritmos de streaming e aprendizado online. Os algoritmos de streaming são projetados para processar grandes quantidades de dados em tempo real, tornando-os adequados para sistemas de recomendação que precisam processar e fazer recomendações com base em um fluxo constante de dados. Os algoritmos de aprendizado online, por outro lado, são capazes de melhorar continuamente suas recomendações com base no feedback do usuário e nas interações com o sistema.

Implementando um sistema de filtragem de conteúdo baseado em modelo:

A fatoração de matrizes é uma técnica usada para decompor uma matriz no produto de duas matrizes de baixo escalão. É comumente usado em sistemas de recomendação para identificar os fatores latentes que fundamentam as avaliações ou interações entre usuários e itens.

Fatoração de matrizes em ação!

Por exemplo, suponha que temos uma matriz de avaliações de filmes por usuários, onde cada linha representa um usuário e cada coluna representa um filme. Usando a fatoração de matrizes, podemos decompor essa matriz no produto de duas matrizes de baixo escalão: uma que representa as preferências dos usuários e outra que representa as características dos filmes. Ao identificar os fatores latentes que fundamentam as avaliações, podemos fazer recomendações mais precisas com base nas preferências e características dos usuários e itens.

Para implementar a fatoração de matriz em Python com um conjunto de dados do sistema de recomendação, você pode usar uma biblioteca como Surprise ou implementar o algoritmo por conta própria usando uma técnica como decomposição de valor singular (SVD).

Aqui está um exemplo de uso da biblioteca surpresa para implementar a fatoração de matriz em um conjunto de dados do sistema de recomendação :

import surprise
from surprise import Dataset
from surprise import Reader

# Load the ratings data into a pandas DataFrame
ratings_df = pd.read_csv('ratings.csv')

# Convert the ratings data into a Surprise-compatible format
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(ratings_df[['userId', 'movieId', 'rating']], reader)

# Split the data into training and test sets
trainset, testset = surprise.model_selection.train_test_split(data, test_size=0.2)

# Train a matrix factorization model using the SVD algorithm
algo = surprise.SVD()
algo.fit(trainset)

# Use the model to make predictions on the test set
predictions = algo.test(testset)

# Calculate the RMSE of the model
accuracy = surprise.accuracy.rmse(predictions)
print(f'RMSE: {accuracy:.4f}')

# Make a prediction for a specific user and item
user_id = 1
item_id = 300
prediction = algo.predict(user_id, item_id)
print(f'Prediction for user {user_id} and item {item_id}: {prediction.est:.4f}')

Limitações e considerações éticas dos sistemas de recomendação:

The Social Dilemma (Algo que recomendo caso ainda não tenha assistido) :)

Uma das principais limitações dos sistemas de recomendação é o potencial de reforçar vieses existentes e criar câmaras de eco. Se os dados usados ​​para treinar um sistema de recomendação forem tendenciosos ou desequilibrados de alguma forma, as recomendações que o sistema faz também podem ser tendenciosas. Por exemplo, se um sistema de recomendação for treinado em dados que consistem principalmente em avaliações de usuários do sexo masculino, ele poderá recomendar um conteúdo mais atraente para os usuários do sexo masculino e menos atraente para as usuárias do sexo feminino. Isso pode criar um loop de feedback em que os usuários são expostos apenas a conteúdo semelhante ao que já gostaram, o que pode levar à criação de “câmaras de eco”, onde as pessoas são expostas apenas a conteúdo que confirma suas crenças e opiniões existentes.

Para lidar com essas preocupações, é importante considerar os possíveis vieses nos dados usados ​​para treinar um sistema de recomendação e tomar medidas para mitigá-los. Isso pode envolver o equilíbrio dos dados para garantir que sejam representativos dos diversos interesses e preferências dos usuários ou o uso de técnicas como o aprendizado de representação justa para garantir que as recomendações feitas pelo sistema não sejam tendenciosas contra determinados grupos de usuários.

Outra consideração ética quando se trata de sistemas de recomendação é a importância da transparência e responsabilidade. Os usuários devem estar cientes de como um sistema de recomendação toma decisões e pode entender e influenciar as recomendações que recebem. Isso pode envolver fornecer aos usuários informações sobre os critérios que o sistema de recomendação está usando para fazer recomendações e dar a eles a capacidade de personalizar suas recomendações ou fornecer feedback sobre as recomendações que recebem.

O futuro:

O futuro dos sistemas de recomendação provavelmente envolverá uma combinação de novas técnicas e abordagens, bem como um foco contínuo em considerações éticas e transparência.

Uma área de pesquisa que provavelmente será particularmente importante é o uso de técnicas de aprendizado profundo para recomendações. Algoritmos de aprendizado profundo, baseados em redes neurais artificiais, têm a capacidade de aprender padrões complexos em dados e fazer recomendações mais precisas com base nesses padrões. Ao usar técnicas de aprendizado profundo, os sistemas de recomendação podem fazer recomendações mais personalizadas, adaptadas às características e preferências exclusivas de cada usuário.

Outra área de foco pode ser o uso de abordagens baseadas em gráficos para recomendações. Os sistemas de recomendação baseados em gráficos usam redes de nós interconectados (como usuários, itens ou tags) para representar os relacionamentos entre diferentes entidades e fazer recomendações com base nesses relacionamentos. Esses sistemas podem ser particularmente úteis para recomendar itens relacionados à rede social de um usuário ou para fazer recomendações com base nas conexões entre diferentes usuários.

Além desses avanços técnicos, provavelmente também haverá um foco contínuo em abordar considerações éticas e aumentar a transparência nos sistemas de recomendação. Isso pode envolver o desenvolvimento de novas abordagens para garantir que as recomendações sejam justas e imparciais, além de fornecer aos usuários mais informações sobre como os sistemas de recomendação estão tomando decisões e dar a eles mais controle sobre as recomendações que recebem.

No geral, o futuro dos sistemas de recomendação provavelmente envolverá uma combinação de inovações técnicas e um foco contínuo em considerações éticas, pois esses sistemas continuam a desempenhar um papel cada vez mais importante em nossas vidas diárias.

Conclusão:

Os sistemas de recomendação são algoritmos que nos ajudam a descobrir novos produtos, conteúdos ou serviços que possamos desfrutar. Essas ferramentas poderosas usam dados sobre nosso comportamento e preferências anteriores para fazer previsões sobre o que podemos gostar no futuro. Embora os sistemas de recomendação possam ser muito úteis, eles também têm limitações e considerações éticas, como o potencial de reforçar vieses existentes e criar “câmaras de eco”. Como os sistemas de recomendação continuam a desempenhar um papel vital em nossas vidas diárias, é importante considerar essas questões e trabalhar para desenvolver sistemas eficazes, justos e eticamente responsáveis. No futuro, haverá muitas oportunidades interessantes para pesquisa e desenvolvimento neste campo, incluindo o uso de aprendizado profundo e abordagens baseadas em gráficos.

Recursos:

EdgeRank do Facebook

Recomendação de vídeos curtos em tempo real em dispositivos móveis” da Kuaishou Inc .

Sistema de recomendação em tempo real com tabela de incorporação sem colisão” da Bytedance Inc.

Documentação surpresa

Uma pesquisa sobre o sistema de recomendação moderno baseado em Big Data por Yuanzhe Peng .