segunda-feira, 17 de dezembro de 2018

Evolução dos sistemas de recomendação


Sistemas de recomendação têm por objetivo indicar as melhores opções ou alternativas mais adequadas em uma determinada situação, utilizando técnicas estatísticas, sabedoria das massas, raciocínio lógico, análise de histórico, formação de perfis, tudo isto para predição do futuro, ou seja, o que é melhor para cada pessoa.

A grande vantagem é diminuir a sobrecarga de informações. Quando a gente tem muitas opções e não tem condições de comparar todas, os sistemas de recomendação entram em ação.

A divisão a seguir em etapas foi criada por mim com base na minha experiência e nas leituras que tenho feito ao longo de minha carreira.

Recomendação 1.0

Baseada na associação de palavras.
O exemplo representativo são os resultados orgânicos e os links patrocinados nos mecanismos de busca (no Google, são as técnicas Ad Words e Ad Sense).
A ideia é apresentar uma ou poucas sugestões dependendo das palavras utilizadas pelo usuário. Assim, se alguém coloca “cadeira para escritório” numa busca no Google, o Google apresenta as páginas (URLs) que pagaram para aparecer no topo para estas palavras (links patrocinados) ou páginas que possuem melhor pontuação nos critérios para os resultados orgânicos (ver técnicas de SEO – Search Engine Optimization).
No Gmail, isto também funciona. Basta analisar os termos utilizados nos e-mails enviados ou recebidos. No Facebook, são os termos que aparecem nas postagens. No Youtube, são os termos dos títulos e resumos. Hashtags também podem ser utilizadas.
Uma variação da técnica é incorporar sinônimos e stemming (redução de palavras a radicais) para ampliar as opções e melhor entender o contexto.

Vantagens: técnica fácil de ser implementada.
Desvantagens: a lógica ou fundamento da recomendação está na associação ou nos critérios que especialistas humanos criam ou definem.

Recomendação 2.0

Baseada em estatísticas sobre dados que vêm da sabedoria das massas e da média do comportamento das pessoas.
Incluem técnicas como Top N (mais vendidos, mais lidos, mais visitados, etc.) e vendas cruzadas (“quem comprou isto, também comprou aquilo”).

Vantagens: a complexidade de implementação é média. As associações vêm de Data Mining. O cálculo da média precisa de uma amostra razoável para ser confiável. Não precisa de conhecimento prévio da pessoa que irá receber a recomendação.
Desvantagens: exibe o mesmo resultado para todos.  

Recomendação 3.0

Baseada na personalização, ou seja, coleta e analisa o perfil ou histórico das pessoas.
Estas técnicas levam em consideração o que as pessoas fizeram ou estão fazendo. Desta forma, o resultado é individual, ou seja, diferente para cada pessoa.
Por exemplo, ao fazer uma pesquisa na Internet usando o termo “Madonna”, alguns receberão resultados sobre a artista, outros sobre uma Universidade e outros sobre Nossa Senhora.
A técnica mais conhecida é a “baseada em conteúdo” (content-based). A ideia é classificar usuários de acordo com suas ações, o que refletiriam seus gostos ou interesses. Os itens (produtos, sites, livros, restaurantes, etc.) também devem ser classificados usando o mesmo esquema de classes. Depois basta cruzar classes de itens com as classes que mais aparecem no perfil de cada usuário (matching), montando um ranking por pontuação.
Os perfis podem ser dinâmicos, incluindo uma pontuação para cada classe, a qual pode aumentar ou diminuir com o tempo e com as ações.

Vantagens: cada pessoa recebe sugestões específicas sobre seu interesse, mesmo que duas pessoas usem os mesmos termos de busca.
Desvantagens: cria estereótipos; por exemplo, se alguém só escuta músicas de Jazz, só receberá recomendações desta categoria.

Recomendação 4.0

Baseada na filtragem colaborativa.
Esta técnica foi criada pelo grupo de pesquisa dos  americanos Joe Konstan e John Riedl (in memorian). Usaram o site Movielens, sobre filmes, para fazer os testes.
A ideia é comparar pessoas, seja por seus atributos ou por seu histórico de ações. As recomendações seriam feitas de forma cruzada. Assim, se a pessoa A é semelhante à pessoa B, seus gostos também devem ser semelhantes. Então os itens associados a A (por exemplo, produtos adquiridos) são recomendados a B, e vice versa.
Uma variação é incorporar também as avaliações (ratings), onde cada usuário informa se gostou ou não do item associado ao seu perfil.

Vantagens: permite gerar recomendações fora do perfil do usuário, sem que seja spam ou aleatórias.
Desvantagens: precisa de informações prévias (montar o perfil de cada usuário); não leva em conta o que cada pessoa realmente precisa ou quer.

Recomendação 5.0

Baseada na predição de intenção ou desejo.
A ideia é descobrir a intenção ou necessidade da pessoa, ou seja, tentar prever o futuro (o que ela quer ou deseja).
Pode ser feita pela análise de contexto de palavras ou da sequência de ações da pessoa. Deve utilizar modelos de predição.

Um exemplo: duas pessoas conversando por chat.

P1: Ontem eu vi um show antigo dos Beatles.
Rec1.0 vai recomendar um vídeo qualquer dos Beatles no Youtube.
Rec2.0 recomenda o vídeo dos Beatles no Youtube com mais “likes”.

P2: Legal, esses caras eram bons. Mas eu prefiro rock mais atual, tipo Coldplay.
Rec2.0 recomenda o vídeo mais visto do Coldplay no Youtube.
Rec3.0 recomenda o vídeo mais visto do Colplay no Youtube, que ainda não foi visto por P2 e P1.
Rec4.0 recomenda a P1 vídeos que P2 viu e gostou, e recomenda a P2 vídeos que P1 viu e gostou.
Rec5.0 avisa que Coldplay estará fazendo show perto da cidade deles daqui a 6 meses, e ainda indica os valores de ingressos tipo pista (que eles costumam comprar)

Vantagens: minimiza o esforço mental para usuários terem que pensar, procurar informações e tomar decisões.
Desvantagens: precisa muitas informações para fazer inferências, muitas vezes sendo invasivos demais; os modelos de predição ainda precisam ser aprimorados para não errar demais, senão perderão a confiança do usuário.


Nenhum comentário: