A grande vantagem de um sistema de recomendação é diminuir
as opções de escolha quando a pessoa não tem tempo ou informações para comparar
as opções.
Apesar do crescente uso deste tipo de sistema e da presença
pervasiva em nosso dia a dia, ainda há muita pesquisa a ser feita.
Este artigo fala dos desafios recentes e de problemas ainda
não bem solucionados pelos sistemas de recomendação.
Observações iniciais: neste texto vou me referir muito a
termos genéricos tais como:
- produto: mas é possível fazer recomendações também de
serviços, empresas, pessoas, páginas na web, cidades, atrações turísticas,
restaurantes, pratos de comida e informações;
- cliente: representa a pessoa ou entidade que irá receber a
recomendação e sobre a qual o sistema precisará coletar informações para montar
um perfil de interesse. Não necessariamente é alguém que compra ou paga por
algo.
Coleta implícita de dados sobre clientes
A coleta explícita envolve perguntar aos usuários ou
clientes. A implícita é feita por observação. O grande desafio hoje em dia é
coletar dados sobre clientes para criar a visão 360 graus sem incomodá-lo e sem
invadir a privacidade (sobre isto, tem um tópico no final deste texto).
A coleta implícita é boa porque não atrapalha a tarefa do
cliente nem toma seu tempo. Isso inclui observar o que o cliente está fazendo,
o que está olhando, onde está clicando, que textos está enviando ou postando,
etc.
O desafio primeiro é estabelecer que ações do cliente são
importantes para a recomendação e o quanto (isto tem a ver com perfil dinâmico
explicado a seguir).
O segundo desafio é como coletar os dados sem invadir
sistemas.
Depois da coleta, vem a inferência. Exemplo: se o cliente
comprou vários alimentos congelados, infere-se que ele tenha um freezer em
casa.
Perfil dinâmico de clientes
Em sistemas de recomendação, o perfil do cliente representa
seus interesses, gostos, hábitos e preferências, além de características
demográficas. Se o cliente clica várias vezes em produtos tipo “geladeira”,
então é porque ele tem interesse neste tipo de produto. Se o cliente clica uma
vez é diferente de ele clicar 5 vezes.
Então o normal é utilizar um esquema de pontos para
representar o grau de interesse de um cliente em relação a um item ou a uma
classe de itens (classes são discutidas a seguir).
Veja a figura a seguir: o tamanho da barra representa o
quanto um cliente se interesse por uma classe.
Além disto, o sistema de recomendação deve perceber quando o
interesse diminuiu ou acaba. Se um cliente passa uma semana toda analisando
produtos de uma classe, seu interesse é grande nesta classe. Se na semana
seguinte, ele não demonstrar mais interesse, a pontuação da classe deve
diminuir (talvez ele até já tenha comprado o produto e o sistema não saiba).
O primeiro desafio é estabelecer a pontuação para cada tipo
de ação (o grau de interesse). Por exemplo, clicar num produto é uma coisa;
clicar nas fotos e na descrição detalhada já demonstra mais interesse.
O segundo desafio é definir a meia-vida do interesse, ou
seja, o quanto deve decair a pontuação no perfil a cada período de tempo (horas
ou dias).
Tipos de classes para interesse e perfil do cliente
Em sistemas baseados em conteúdo (content-based), o perfil
do cliente é composto de classes. Em geral, as classes representam tipos de
produtos (“brick”), tais como geladeira, TV, notebook, celular, carro, viagens,
etc.
Entretanto, é necessário utilizar também classes mais
específicas como marcas, cor, tamanho e detalhes técnicos (voltagem, tamanho de
memória, etc.).
Também podem ser usadas classes temporárias tais como “frete
grátis” e “promoção”. Há clientes que só se interessam por produtos neste tipo
de classe.
O desafio é estabelecer uma taxonomia ou ontologia para
descrever os produtos ou itens.
Outro desafio é em relação a preços de produtos. Se um
cliente comprar numa geladeira de 3 mil reais, ele vai se interessar mais por
restaurantes caros ou baratos ? Uma solução possível é criar faixas de valores
(caro, médio e barato) para associar ao perfil do cliente.
Cold Start – clientes sem perfil
Podemos usar técnicas de recomendação que não precisam saber
quem é o cliente. Por exemplo, a técnica dos Top N (mais-mais) usa a sabedoria
da massas (por exemplo, os mais vendidos).
A lista de técnicas está em:
Técnicas de filtragem colaborativa ou baseada em conteúdo
utilizam o perfil do cliente para gerar recomendações. O desafio é fazer
recomendações quanto não se tem informações sobre o cliente.
Na verdade, talvez não se tenha informações detalhadas, mas
alguma informação é necessária.
Por exemplo, podemos coletar informações de alguém que entra
num site, analisando que páginas ele está visitando na seção. Mesmo que por
pouco tempo, ali teremos alguns dados para formar um perfil inicial e gerar
recomendações na hora mesmo.
Outra possibilidade é cruzar sistemas, ou seja, coletar
dados do cliente a partir de outros sistemas (como por exemplo, redes sociais).
Recomendar somente o que é novo ?
Se Spotify e iTunes recomendarem somente as músicas novas
(lançamentos), talvez ninguém fique sabendo de músicas mais antigas. E há
muitas boas que merecem ser ouvidas.
Se uma loja de games só recomendar os lançamentos, ficará com
os jogos antigos encalhados.
O desafio é persuadir os clientes que os itens antigos
também podem ser bons.
Explicar a origem das Recomendações
Os sistemas deveriam explicar como chegaram até as recomendações.
Isto gera confiança (trust) no cliente. O sistema deve explicar de forma leiga e
de fácil entendimento o algoritmo usado (exemplos: “clientes que compraram
isto, também compraram aquilo”; “talvez você goste disto, porque pessoas
parecidas com você também gostaram”).
Origem das Recomendações: grupos X indivíduos, massa X especialistas
A técnica dos Top N (ex. mais vendidos) usa informações da
coletividade. Mas todas as pessoas são iguais. Se o sistema apresenta a música
mais ouvida, ele não está fazendo distinção de quem foram as pessoas que mais
ouviram.
Uma maneira de resolver o problema é com a técnica de
filtragem colaborativa. Outra possibilidade é separar por grupos. Exemplos:
música mais ouvida no Brasil, aplicativo mais baixado entre pessoas de 20 a 30
anos, computador mais adquirido por empresas de design.
Relevância Temporal
Durante 3 anos, uma farmácia recomendou fraldas toda semana a
um cliente. E este sempre aceitou. Numa certa semana, ele não veio comprar
fraldas. Mas a empresa continuou recomendando. Na semana seguinte, também não
veio. E assim por diante. Quando a empresa deve parar de recomendar.
Já falamos antes do perfil dinâmico. Esta pode ser uma
solução.
A outra é incorporar um tempo de validade para as
recomendações ou a sazonabilidade. Não é porque um cliente comprou sorvete todo
dia entre dezembro e fevereiro que a empresa deve continuar recomendando
sorvete durante o ano todo.
Gostos ou Necessidades Ad Hoc
Um cliente só compra discos de Jazz. Certo dia, ele comprou
um disco de Pagode. Isto deve ser incorporado ao seu perfil ? Uma possibilidade
é incorporar esta classe de interesse mas com um grau pequeno (como discutido
antes no perfil dinâmico). Outra possibilidade é os sistemas permitirem ao
cliente dizer “comprei para presente”, “não coloque isto no meu perfil” e
coisas assim.
Recomendar de novo o mesmo item?
Se o cliente não aceitou a primeira vez uma recomendação, talvez
ele possa aceitar mais tarde. Quantas recusas indicam que ele nunca mais vai
querer ? Os sistemas deveriam permitir ao cliente dizer explicitamente (ratings)
coisas como “nunca mais me recomende de novo”, “hoje eu não quero”, “já tenho este
produto”.
Se o cliente já comprou, nunca mais recomenda de novo o mesmo item ?
Se um cliente comprar uma TV, ficaria muito chato recomendar
para ele o mesmo produto na semana seguinte (pior ainda se for com menor
preço).
Mas talvez depois de 4 anos ele queira comprar outra TV,
mais moderna.
O mesmo produto deve “morrer” no perfil do cliente, mas a “classe”
pode “ressuscitar” depois de um tempo.
E perfume ? Tem pessoas que compram sempre o mesmo perfume.
Então recomendar depois de 3 meses o mesmo perfume que o cliente comprou não é
problema.
E cerveja ? Se um cliente comprou cerveja hoje, amanhã posso
recomendar a mesma cerveja por preço mais baixo ?
Relembrar Recomendações
Hoje o usuário não aceitou a recomendação. Amanhã pode querê-la.
Talvez fosse bom haver funções de recuperação de recomendações feitas pelo
sistema (cuidando com a validade das ofertas).
Mesmas recomendações para todos ?
Num engarrafamento, várias pessoas pedem recomendação de
caminhos alternativos. Se todas receberem a mesma recomendação, as vias
alternativas ficarão também congestionadas.
Se uma loja recomendar o mesmo produto para vários clientes,
talvez fique sem estoque e torne insatisfeito o cliente que foi na loja atrás
deste produto.
Um desafio para os sistemas de recomendação é o
balanceamento de carga, como já é feito em sistemas distribuídos para que os
acessos a dados sejam distribuídos equilibradamente por vários servidores
diferentes.
Stigmergia
Stigmergia significa a comunicação entre seres vivos através
do meio físico, e muitas vezes de forma involuntária. Funciona com as formigas,
que deixam feromônios pelo caminho após encontrarem comida. Funciona quando
queremos atravessar um mato e não conhecemos o caminho; basta seguir pelo chão
onde a vegetação está mais pisada.
Ao recomendar livros técnicos ou filmes que possuem
continuação, os sistemas deveriam recomendar os itens numa ordem. Esta ordem
pode ser inferida pela sabedoria das massas (em que ordem a maioria das pessoas
compra livros ou assiste a filmes e séries).
Interromper ou não o trabalho do usuário
Se o sistema percebe que o cliente está procurando por algo,
deve-se interrompê-lo para avisar e poupar-lhe tempo ?
Ou o sistema deve lembrá-lo depois (ex. “lembra aquele dia
que você estava fazendo assim...”).
Recomendação solicitada ou espontânea ?
Lembra o Assistente do Office, aquele clip que interrompia
nosso trabalho para dar dicas furadas ?
Agora imagine a seguinte situação: uma loja de lingerie
manda uma carta agradecendo ao seu melhor cliente pelas compras feitas. A
esposa dele lê a carta e se dá conta que nunca recebeu nenhum presente do
marido. Tá feita a confusão.
Sistemas de recomendação deveriam incorporar o chamado Marketing
de Permissão (opt-in x opt-out).
(sobre tipos de marketing ver meu livro no link abaixo)
Quantos itens recomendar
Qual a quantidade ideal de itens a serem recomendados ? O
Google já escolheu um número baixo, em torno de 3.
Se o objetivo do sistema de recomendação é diminuir a sobrecarga
de opções, bombardear o cliente com muitas informações só vai piorar a situação.
Talvez o sistema possa permitir ao cliente configurar ou
explicitamente informar os seus limiares de relevância.
Recomendação para Grupos
Uma das áreas recentes de pesquisa é combinar perfis para
fazer recomendações para grupos. Como um agente de viagem pode propor um
roteiro turístico para um grupo onde haja pessoas de 3ª idade, jovens, casais
sem filhos, adolescentes, solteiros de meia idade ... ?
Se alguém gosta de filmes violentos, não significa que
devemos recomendar filmes violentos toda vez que ele vá ao cinema. E se ele for
com a namorada que gosta de filmes românticos ?
Recomendações Sensíveis ao Contexto
O desafio atual com o crescimento da Internet das Coisas
(IoT), dispositivos móveis, GPS, etc. é entender o contexto do cliente para melhorar
as recomendações (context awareness).
Por exemplo, se o cliente pede para ser avisado quando seu
time fizer um gol, o aviso deve ser diferente se ele estivar numa reunião ou se
ele estiver na academia.
Além disto, os conteúdos multimídia devem ser adaptados para
o tipo de dispositivo do cliente, dependendo do tamanho de tela, espaço em
memória, velocidade da rede de transmissão de dados, etc.
Privacidade
O World Wide Web Consortium (W3C) está propondo o protocolo P3P - Platform for Privacity Preferences. Com ele, cada pessoa poderá estabelecer o que permite que os sistemas coletem de informações e o que recomendem. Os sistemas devem consultar as configurações do cliente antes de fazer qualquer ação (como um acordo).
Entretanto, privacidade é algo que não existe
mais. O que existe e deve ser melhor gerenciado é “política de privacidade”, onde sistemas e clientes possam dizer suas intenções.
Leia mais sobre este tema em:
Serendipity
O que diferencia recomendação de spam é o seguinte: imagine
que você receba um SMS avisando de uma promoção de produto. Mas você recebe a
mensagem às 4 horas da madrugada, atrapalhando o seu sono. Se você sorrir e
voltar a dormir feliz porque no dia seguinte vai comprar algo legal, ISTO É
RECOMENDAÇÃO. Se você ficar muito chateado com a mensagem, ISTO É SPAM.
O grande desafio dos sistemas de recomendação é oferecer
algo que surpreenda o cliente.
Para isto, temos que conhece-lo bem e utilizar bons
algoritmos para faze o “match” entre perfis e produtos.