Sistemas de recomendação: a experiência por trás de serviços de streaming

Sistemas de recomendação: a experiência por trás de serviços de streaming

Os sistemas de recomendação vieram para mudar o mundo, ou melhor, facilitar a vida das pessoas. Se você ainda não entende por completo o que eles significam, e mais, como funcionam, hoje a "aula" é sobre eles!

Fazer compras, mais do que uma necessidade, para muitas pessoas também é um passatempo. Passear pelas lojas, garimpar produtos e, finalmente, encontrar algo do qual gostamos.

Em pequena escala, este processo chega até a ser prazeroso. Mas quem nunca entrou em uma loja grande demais, com produtos demais e se sentiu perdido?

A urgência dos sistemas de recomendação nasceu de onde?

Com o surgimento dos e-commerces, a limitação de espaço físico das lojas foi vencida, fazendo com que seja possível, em uma mesma loja (a Amazon, por exemplo), se ter uma infinidade de produtos dos mais diversos tipos e categorias. E como encontrar algo que buscamos em um ambiente como esse?

Vamos mudar um pouco de perspectiva. Imagine se quiséssemos assistir a um filme, abríssemos uma plataforma de streaming e ela nos apresentasse todos os incontáveis filmes de seu catálogo separados por gênero, mas sem uma ordem definida.

Garimpar um filme de nosso agrado ali seria uma tarefa enfadonha, demorada e muitos de nós desistiríamos no meio do processo.

O que é um sistema de recomendação?

Neste contexto, de um mundo onde existe uma diversidade muito grande de produtos (sejam eles bens de consumo, filmes, vídeos, posts, etc), é que surge a necessidade de uma ferramenta que consiga entender e disponibilizar para os usuários os produtos mais relevantes, de forma que o processo de escolha/compra seja viável.

Assim surgiram os sistemas de recomendação que, hoje, são muito presentes no nosso dia a dia.

Como funcionam os Sistemas de Recomendação

Tomando o exemplo de sistemas de recomendação Netflix, com um catálogo muito abrangente, vamos pensar juntos em algumas estratégias diferentes para fazer recomendações relevantes.

Aqui o objetivo é tentar entender a intuição por trás de algumas dessas estratégias, sem mergulhar muito fundo na parte técnica.

Um bom ponto de partida é reconhecer que para fazermos recomendações relevantes, precisamos conhecer nossos clientes.

Filtro content based

Para isto, uma alternativa seria submeter aos usuários um questionário em que eles nos contariam quais gêneros de filmes, atores, diretores eles gostam; se preferem finais tristes ou felizes, dentre ouras características.

Em seguida, classificaríamos os filmes de nosso catálogo segundo estas categorias. O filme Gladiador, por exemplo, poderia receber nota 5 para ação e nota 0 para comédia, além de nota 3 para final triste (spoiler alert).

Por fim, seríamos capazes de mapear os gostos dos usuários aos filmes e fazer sugestões. Esta abordagem é conhecida como filtro baseado em conteúdo (content based filtering).

O grande problema aqui é que a qualidade das recomendações depende de quão detalhado é o questionário, ou seja, do quanto os usuários nos contam sobre seus gostos.

Para muitos negócios, pedir que os clientes respondam um extenso questionário sobre suas preferências é impraticável. Além disso, nossos gostos mudam com o tempo, então tal formulário precisaria ser reavaliado periodicamente. Este é o caso do nosso exemplo.

Imagine se ao se cadastrar em uma plataforma de streaming, tivéssemos que responder um tedioso questionário sobre nossas preferências. Eu, provavelmente, desistiria no meio do caminho.

Filtro colaborative

Ainda precisamos conhecer nossos clientes, mas vimos que pedir que eles, deliberadamente, nos contem sobre seus gostos não é uma estratégia viável. Outra alternativa seria inferirmos sobre as preferências de nossos clientes a partir de seus padrões de uso.

Para tanto, deixamos que os usuários comecem a utilizar a plataforma, mas pedimos que eles avaliem os filmes que assistiram, como indicativo do quanto o filme os agradou.

Esta abordagem que infere as preferências dos usuários a partir dos seus padrões de uso é chamada de filtro colaborativo (colaborative filtering).

Suponha, então, que o usuário “A” avaliou positivamente os filmes Matrix, Senhor dos Anéis e Star Wars. Para fazer recomendações relevantes, podemos olhar para outros usuários que também tenham avaliado positivamente estes três filmes (usuários similares) e recomendar filmes que tais usuários também avaliaram positivamente.

Daqui surgem recomendações do tipo: “Usuários como você também gostaram: <recomendações>”. Além disso, para complementar nossas recomendações, podemos olhar para filmes que receberam avaliações semelhantes. Isto dá origem a recomendações do tipo: “Porque você viu Gladiador: <recomendações>”.

Contudo, afirmar que dois filmes são similares apenas porque receberam avaliações semelhantes pode ser simplista demais. O mesmo vale para afirmar similaridade entre usuários apenas com base nas notas que eles deram para os filmes.

Banner convidando os leitores a baixarem o material sobre análise de dados na gestão de uma crise


Sistemas de recomendação com Machine Learning

Uma estratégia de recomendação mais sofisticada seria utilizar modelos de machine learning (ferramentas muito boas para identificar padrões, especialmente padrões que nós, seres humanos, temos dificuldade em perceber) para criar variáveis que descrevem os usuários e os filmes a partir dos padrões de uso.

É importante ressaltar que tais variáveis são variáveis latentes, ou seja, variáveis criadas pelo computador e, não necessariamente, interpretáveis por seres humanos.

Uma vez conseguindo descrever o perfil dos usuários e dos filmes com base nestas variáveis latentes, o modelo consegue, para um dado usuário, estimar como seria a interação dele com filmes que ainda não assistiu. E, com essa estimativa de interação, sugerir os filmes que o usuário avaliaria melhor, logo, os filmes que o usuário mais gostaria.

Além disso, o modelo também nos dá insumos para afirmar com mais convicção que usuários ou filmes são similares. Esta técnica de recomendação é conhecida por fatoração de matrizes (matrix factorization).

Nesta abordagem, em que aprendemos as preferências do usuário através dos padrões de uso, as recomendações são menos assertivas no começo, mas quanto mais informações de uso, mais relevantes serão as recomendações.

Ou seja, para este tipo de abordagem, precisamos de um volume de dados significativo e as recomendações vão melhorando à medida que os usuários utilizam nossa plataforma.

Mas e para um novo usuário? Como fazer sugestões? Aqui pegamos a ideia da primeira abordagem, mas com um questionário bem simplificado. Pedimos, apenas, que o usuário selecione alguns filmes dos quais gostou. E pronto, já temos um ponto de partida! À medida que ele for utilizando nosso serviço, as recomendações vão melhorando.

Ufa, bastante coisa para digerir, né? Mas é bem legal entender um pouco mais sobre esses algoritmos que estão no nosso dia a dia.

O outro lado dos algoritmos de recomendação

Legal, mas esses algoritmos devem ter algum defeito, né?

Apesar de muito convenientes, os sistemas de recomendação têm alguns pontos sensíveis. Lembra que comentei que quanto mais dados, quanto mais interações, mais precisa ficará a recomendação?

Ou seja, quanto mais interações, mais o algoritmo entende com quais produtos temos mais probabilidade de interagir positiva ou negativamente.

Considere, agora, uma rede social, que tem milhões, bilhões de usuários interagindo muitas vezes por dia. É uma quantidade colossal de dados e isso permite que os algoritmos consigam entender bem o perfil dos usuários, o que aumenta drasticamente a conversão de anúncios, por exemplo.

Além disso, com recomendações assertivas, é possível maximizar o tempo que o usuário fica conectado, estando mais suscetível a novos anúncios. Ou seja, se considerarmos uma rede social de vídeos, os vídeos recomendados provavelmente serão de assuntos que já conhecemos e gostamos ou que reforçam a nossa visão/opinião, reduzindo nossa exposição a novas experiências.

Além disso, somos mais suscetíveis a querer assistir vídeos “bombásticos”, o que pode contribuir para um aumento da disseminação de notícias falsas e teorias da conspiração.

Se você se interessou pelo tema, deixo como recomendação o documentário “O Dilema das Redes”, que discute este tema mais a fundo e é super interessante!

Seu ponto de partida dentro dos sistemas de recomendação!

Sistemas de recomendação são ferramentas super convenientes, especialmente em um mundo globalizado com uma diversidade gigantesca de produtos.

Vimos que para fazer recomendações relevantes precisamos conhecer nossos clientes, mas, dificilmente, os clientes estarão dispostos a, explicitamente, nos contar mais sobre suas preferências.

Assim, uma saída é inferir tais preferências a partir dos padrões de uso e, assim, fazer recomendações que façam sentido. O problema é que quando alimentados com uma quantidade de dados significativa, tais algoritmos podem ser capazes até de influenciar o comportamento de seus usuários.

Quer saber mais sobre a área de dados? Aprofunde seus conhecimentos e entre para um dos mercados mais promissores dos últimos tempos através de um curso de Data Science :)

No curso da DH, você aprende na prática a ser um cientista de dados e a desenvolver sistemas de recomendação, por exemplo. E aí, vem com a gente?

Descrição do Maurício Nascimento, Professor Assistente de Data Science na Digital House, Data Scientist no Zé Delivery, Engenheiro Químico de formação e amante de games e tecnologia.


Leia mais no blog DH:

+ Computação em nuvem: o que é AWS?

+ Descubra exemplos reais de Data Science

+ Exemplo de Internet das Coisas no seu dia a dia

E aí, já segue a gente no Twitter? Vem pra rede, vamos conversar sobre habilidades digitais! ;)