-
Quais são os algoritmos de construção
de sistema de recomendação?
-
Assim como todo
modelo de machine learning,
-
quando temos que fazer,
por exemplo,
-
uma classificação de algo,
-
nós temos diversos algoritmos
para adaptar e avaliar
-
qual melhor se adequa àquele problema.
-
Aqui em sistema de recomendação
é a mesma coisa.
-
Nós temos diversos algoritmos
que podem ser aplicados
-
para estudar estratégias distintas
de achar relações
-
entre produtos, serviços e usuários,
-
e o que pode ter melhor aderência
nessa recomendação.
-
Vamos conhecer os principais.
-
Os métodos mais comuns
são baseados em filtragem.
-
Filtragem item por item,
uma filtragem colaborativa,
-
uma filtragem por conteúdo.
-
Vamos conhecer as duas últimas
que são bem famosas.
-
Na filtragem colaborativa,
nós estamos utilizando dados
-
de dois ou mais usuários para tentar
achar uma relação entre eles.
-
Esses dados podem ser hábitos
de preferência ou então, por exemplo,
-
perfis de consumo que são similares.
-
Ou então,
características sociodemográficas,
-
qualquer feature que pode ser utilizado
para caracterizar um indivíduo.
-
E nós vamos analisar essas features
para verificar usuários
-
que são parecidos.
-
Por exemplo, até aplicar aqui um KNN
para descobrir quem são os vizinhos
-
mais próximos de determinado usuário.
-
Nessa abordagem,
nós sabemos qual usuário
-
é parecido com quais outros.
-
Então, digamos que temos o usuário "A"
e usuário "B",
-
que, por exemplo,
por questões de históricos passados,
-
eles compram produtos similares.
-
E a pessoa "A" comprou um produto
ou interagiu com um produto
-
que a pessoa "B" ainda não viu.
-
Portanto,
como eles são parecidos,
-
é uma boa ideia recomendar
esse produto que "A" interagiu
-
para a pessoa "B'.
-
Vamos ter certeza
que esse método funciona?
-
Não,
mas é algo para ser abordado.
-
Então, a ideia de trabalhar
com sistema de recomendação
-
é sempre sugerir algo
que pode agradar o usuário.
-
A nossa força de recomendação,
digamos assim,
-
está baseado nesse perfil
semelhante entre pessoas.
-
Outra forma de filtragem
é por conteúdo.
-
Onde a pessoa está interagindo
com o produto
-
e nós sabemos que existem
outros produtos similares a esse.
-
Então,
-
podemos recomendar para a mesma
pessoa produtos similares
-
àqueles que ela já interagiu
ou comprou.
-
Entre essas duas análises,
não há uma melhor ou pior.
-
Existem prós e contras
de cada uma delas.
-
Por exemplo,
na filtragem colaborativa,
-
nós podemos ter conhecimento
nenhum dos dados.
-
O que interessa é conhecer
quem são as pessoas.
-
Já na abordagem por conteúdo,
-
é imprescindível ter informações
sobre os produtos
-
e nós podemos dispensar
conhecimento sobre os usuários.
-
Pensando no e-commerce,
por exemplo,
-
talvez a filtragem por conteúdo
-
pode ser mais fácil de ser implementada,
-
porque uma loja na teoria
sabe o que ela vende.
-
Então,
se ela sabe o que ela vende,
-
ela sabe descrever quuais produtos
ela tem no seu catálogo.
-
Então,
achar produtos similares
-
pode ser mais fácil
para gerar uma recomendação.
-
No entanto, depender apenas
de filtragem baseada em conteúdo
-
pode levar a recomendações
meio chatas,
-
sem nenhuma novidade.
-
Por exemplo,
-
a pessoa sempre interage
com filmes de ação,
-
então é mais natural recomendar
filme de ação para ela também.
-
Mas, será que não tem
nenhuma comédia
-
ou outro tipo de filme
que pode ser interessante para ela,
-
que foge um pouco do que era óbvio,
nessa recomendação?
-
Se eu fico baseado apenas nesse
algoritmo de filtragem por conteúdo,
-
eu fico refém de recomendações
muito similares.
-
Por outro lado,
-
ser baseado apenas
em filtragem por colaboração,
-
pode ser algo não tão fácil
de ser implementado,
-
porque isso depende do usuário
dar informação sobre ele mesmo.
-
E mesmo que os usuários concedam
informações sobre eles mesmos,
-
também não há nenhuma garantia
-
que nós vamos encontrar
perfis similares naquela mesma loja.
-
Talvez em uma loja grande,
e-commerce grande
-
onde a quantidade de usuários
seja bem volumosa,
-
a maior tendência a achar padrões,
perfis de usuários parecidos.
-
Mas em comércios menores,
isso aqui pode não ser real.
-
Nos nossos exemplos,
nós tradicionalmente
-
usamos muito a ideia
de um e-commerce,
-
mas o sistema de recomendação
também pode ser empregado
-
em lojas físicas.
-
Um exemplo disso
é o supermercado.
-
O caso mais famoso
é um caso do Walmart,
-
que identificou,
por meio de compras históricas,
-
que fraldas e cervejas
deveriam ser colocadas próximos.
-
Porque quando o pai ou a mãe
acaba saindo do trabalho
-
em uma sexta feira à noite,
-
já passam no mercado
para levar fralda para casa,
-
acha interessante levar
uma cerveja também
-
para passar o final de semana.
-
Esse tipo de análise
é chamada de Basket Analysis.
-
É quando você dá uma olhada
no cesto de compra daquele usuário.
-
Outra coisa importante
que deriva desse tipo de análise
-
são as regras de associação,
ou seja,
-
quero verificar quais produtos
estão mais associados entre si.
-
É basicamente pegar o histórico
de cada carrinho de compra
-
ou cada cesta de compra e verificar:
para cada usuário,
-
quais são os produtos
que são comprados em conjunto?
-
Será que há alguma relação entre eles?
-
Na maior parte das vezes, sim.
-
Por exemplo,
comprar macarrão e molho de tomate.
-
Mas também essa compra em conjunto
pode não fazer muito sentido.
-
Essa falta de sentido deriva
de comprar produtos
-
que não têm muita relação entre eles.
-
Portanto, para fazer uma boa
regra de associação,
-
é importante ter um histórico
bem grande de transações
-
para verificar o que de fato,
faz sentido.
-
É ter uma relação próxima e real
entre uma compra em conjunto
-
e não seja algo muito particular
de uma compra
-
ou de um período do ano.
-
Também não podemos
deixar de falar de popularidade,
-
ou seja,
produtos populares
-
que todo mundo compra,
todo mundo consome,
-
também é uma forma
de você recomendar produtos
-
para usuários que você
tem pouco conhecimento sobre ele.
-
E claro que não podemos deixar
de falar das abordagens híbridas,
-
que é quando combinamos dois
ou mais algoritmos no mesmo sistema.
-
Basicamente,
-
o motor de recomendação
fica muito mais sofisticado,
-
porque ele está apoiado
em diversas estratégias.
-
Pode ser uma estratégia
baseada em popularidade
-
ou então uma regra de sucessão
ou uma filtragem colaborativa,
-
quando esse usuário
é parecido com outros,
-
ou então,
uma abordagem por conteúdo
-
quando nós olhamos
para produtos similares a ele
-
aos similares aos que a gente
já consumiu
-
para fazer novas recomendações.
-
Como em todo projeto
de ciência de dados,
-
é muito importante fazer
um pré-processamento dos dados
-
antes da sua modelagem, ou seja,
limpar, tirar do duplicado,
-
entender um pouco mais o dado
para prepará-lo para a modelagem.
-
Por outro lado, o pós-processamento
também é muito relevante.
-
Não é porque o sistema encontrou
uma relação entre um produto
-
e um usuário que nós temos de fato
que ligar aquela regra,
-
digamos assim.
-
Que nós temos que recomendar
aquele produto para aquela pessoa.
-
Imagine o seguinte caso:
-
a pessoa está interagindo
com produtos de uma faculdade
-
para comprar uma pós-graduação.
-
E aí, uma vez baseado no que ela
ofereceu de informação sobre ela,
-
existe uma série de pós
que podem ser recomendadas
-
para aquela pessoa.
-
Ela acabou de comprar
uma pós específica,
-
fazer uma especialização,
por exemplo,
-
em Data Science.
-
Faz sentido recomendar outra pós
para essa pessoa logo na sequência?
-
Talvez não.
-
Porque ela acabou de adquirir
aquele produto muito parecido.
-
E essa limpeza do pós-processamento
-
deve ser feita sempre à luz do negócio.
-
Ou seja, o que eu quero maximizar
com esse produto de recomendação.
-
Eu quero aumentar a venda?
Eu quero aumentar o engajamento?
-
Quais são as condições de contorno
que me ajudam a eliminar
-
recomendações que podem
não ser válidas?