Qual a tecnologia por trás das telas da tecnologia de recomendação da Amazon? Acredito que atualmente a recomendação da Amazon seja a melhor do mercado, mas como elas nos fornecem recomendações relevantes?
Recentemente, estivemos envolvidos com um tipo de projeto de recomendação semelhante, mas certamente gostaríamos de saber sobre as entradas e saídas da tecnologia de recomendação da Amazon do ponto de vista técnico.
Qualquer entrada seria muito apreciada.
Atualizar:
Esta patente explica como são feitas recomendações personalizadas, mas não é muito técnica e, portanto, seria muito bom se algumas idéias pudessem ser fornecidas.
A partir dos comentários de Dave, a Affinity Analysis constitui a base para esse tipo de mecanismo de recomendação. Também aqui estão algumas boas leituras sobre o tópico
Leitura sugerida:
Respostas:
É uma arte e uma ciência. Os campos de estudo típicos giram em torno da análise da cesta de mercado (também chamada de análise de afinidade), que é um subconjunto do campo de mineração de dados. Os componentes típicos desse sistema incluem a identificação de itens principais do driver e a identificação de itens de afinidade (upsell de acessórios, venda cruzada).
Lembre-se das fontes de dados que eles têm para minerar ...
Felizmente, as pessoas se comportam de maneira semelhante em conjunto, quanto mais souberem sobre a população compradora em geral, melhor saberão o que venderá e o que não venderá, e a cada transação e a cada classificação / lista de desejos adicionar / navegar, eles sabem como personalizar as recomendações mais pessoalmente. Lembre-se de que provavelmente é apenas uma pequena amostra do conjunto completo de influências do que acaba nas recomendações, etc.
Agora não tenho conhecimento interno de como a Amazon faz negócios (nunca funcionou lá) e tudo o que estou fazendo é falar sobre abordagens clássicas do problema do comércio on-line - eu costumava ser o PM que trabalhava em mineração de dados e análises para a Microsoft chamado Commerce Server. Enviamos no Commerce Server as ferramentas que permitiam às pessoas criar sites com recursos semelhantes ... mas quanto maior o volume de vendas, melhores os dados, melhor o modelo - e a Amazon é GRANDE. Só posso imaginar como é divertido brincar com modelos com tantos dados em um site direcionado ao comércio. Agora, muitos desses algoritmos (como o preditor iniciado no servidor de comércio) passaram a viver diretamente no Microsoft SQL .
As quatro grandes dicas que você deve ter são:
Em termos de implementação real? Quase todos os grandes sistemas on-line se resumem a algum conjunto de pipelines (ou uma implementação de padrão de filtro ou fluxo de trabalho, etc., você o chama como quiser) que permitem que um contexto seja avaliado por uma série de módulos que aplicam alguma forma de logíca de negócios.
Normalmente, um pipeline diferente seria associado a cada tarefa separada na página - você pode ter um que recomende "pacotes / upsells" (por exemplo, compre esse item com o item que está vendo) e outro que faça "alternativas" (por exemplo, compre isso em vez do que você está olhando) e outro que puxa os itens mais intimamente relacionados da sua lista de desejos (por categoria de produto ou similar).
Os resultados desses pipelines podem ser colocados em várias partes da página (acima da barra de rolagem, abaixo da rolagem, à esquerda, à direita, fontes diferentes, imagens de tamanhos diferentes etc.) e testados para ver qual é o desempenho melhor. Como você está usando módulos fáceis de conectar e usar que definem a lógica de negócios desses pipelines, você acaba com o equivalente moral dos blocos de lego que facilitam a escolha da lógica de negócios que você deseja aplicar quando criar outro pipeline o que permite inovação mais rápida, mais experimentação e, no final, maiores lucros.
Isso ajudou em tudo? Espero que você tenha um pouco de conhecimento de como isso funciona em geral para praticamente qualquer site de comércio eletrônico - não apenas para a Amazon. A Amazon (conversando com amigos que trabalharam lá) é muito orientada a dados e mede continuamente a eficácia de sua experiência do usuário e preços, promoções, embalagens etc. - eles são um varejista on-line muito sofisticado e provavelmente estão na vanguarda da muitos dos algoritmos que eles usam para otimizar o lucro - e esses são provavelmente segredos de propriedade (você conhece a fórmula dos temperos secretos do KFC) e são armazenados como tal.
fonte
Isso não está diretamente relacionado ao sistema de recomendação da Amazon, mas pode ser útil estudar os métodos usados pelas pessoas que concorreram ao Prêmio Netflix , um concurso para desenvolver um melhor sistema de recomendação usando dados de usuário da Netflix. Existe muita informação boa em sua comunidade sobre técnicas de mineração de dados em geral.
A equipe que ganhou usou uma mistura das recomendações geradas por muitos modelos / técnicas diferentes. Eu sei que alguns dos principais métodos utilizados foram análise de componentes principais, métodos de vizinhos mais próximos e redes neurais. Aqui estão alguns trabalhos da equipe vencedora:
R. Bell, Y. Koren, C. Volinsky, " A Solução BellKor 2008 para o Prêmio Netflix ", (2008).
A. Töscher, M. Jahrer, " A solução BigChaos para o Prêmio Netflix 2008 ", (2008).
A. Töscher, M. Jahrer, R. Legenstein, " Algoritmos aprimorados baseados em vizinhança para sistemas de recomendação em larga escala ", Workshop SIGKDD sobre sistemas de recomendação em larga escala e o concurso de prêmios Netflix (KDD'08), ACM Press (2008) .
Y. Koren, " A solução BellKor para o Grande Prêmio da Netflix ", (2009).
A. Töscher, M. Jahrer, R. Bell, " A Solução BigChaos para o Grande Prêmio Netflix ", (2009).
M. Piotte, M. Chabbert, " A solução da teoria pragmática para o Grande Prêmio da Netflix ", (2009).
Os trabalhos de 2008 são do primeiro ano do Progress Prize. Eu recomendo a leitura dos primeiros primeiro, porque os posteriores se baseiam no trabalho anterior.
fonte
Encontrei este artigo hoje:
Talvez ele forneça informações adicionais.
fonte
(Disclamer: Eu trabalhava na Amazon, embora não trabalhasse na equipe de recomendações.)
A resposta de ewernli deve ser a correta - os links do artigo para o sistema de recomendação original da Amazon e pelo que posso dizer (tanto por experiência pessoal como comprador da Amazon quanto por ter trabalhado em sistemas similares em outras empresas), muito pouco mudou: em como principal, o recurso de recomendação da Amazon ainda é muito fortemente baseado na filtragem colaborativa item a item.
Basta olhar para o formato das recomendações: na primeira página, elas estão no formato "Você visualizou X ... Os clientes que também visualizaram isso também visualizaram ..." ou uma mistura de itens semelhantes a outras coisas Eu comprei ou vi antes. Se eu for especificamente à minha página "Recomendado para você", cada item descreverá por que é recomendado para mim: "Recomendado porque você comprou ...", "Recomendado porque você adicionou X à sua lista de desejos ...", etc. um sinal clássico de filtragem colaborativa item a item.
Então, como funciona a filtragem colaborativa item a item? Basicamente, para cada item, você cria uma "vizinhança" de itens relacionados (por exemplo, olhando para quais itens as pessoas visualizaram juntas ou quais as pessoas compraram juntas - para determinar a similaridade, você pode usar métricas como o índice Jaccard ; correlação é outra possibilidade, embora eu suspeite que a Amazon não use muito os dados de classificação). Então, sempre que visualizo um item X ou faço uma compra Y, a Amazon me sugere coisas no mesmo bairro que X ou Y.
Algumas outras abordagens que a Amazon poderia potencialmente usar, mas provavelmente não usa, são descritas aqui: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -com-amazons-recomendação-sistema /
Muito do que Dave descreve quase certamente não é feito na Amazon. (Classificações das pessoas na minha rede social? Não, a Amazon não possui nenhum dos meus dados sociais. Isso seria um enorme problema de privacidade em qualquer caso; portanto, seria difícil para a Amazon fazer mesmo se eles tivessem esses dados: as pessoas não querem que seus amigos saibam quais livros ou filmes estão comprando. Informações demográficas? Não, nada nas recomendações sugere que eles estejam vendo isso. [Diferente da Netflix, que mostra o que outras pessoas da minha área estão assistindo .])
fonte
Eu não tenho nenhum conhecimento específico do algoritmo da Amazon, mas um componente desse algoritmo provavelmente envolveria o rastreamento de grupos de itens frequentemente pedidos juntos e o uso desses dados para recomendar outros itens no grupo quando um cliente compra algum subconjunto do grupo.
Outra possibilidade seria rastrear a frequência do pedido do item B dentro de N dias após o pedido do item A, o que poderia sugerir uma correlação.
fonte
Até onde eu sei, é usar o raciocínio baseado em casos como um mecanismo para isso.
Você pode ver nestas fontes: aqui , aqui e aqui .
Existem muitas fontes no google que procuram o amazon e o raciocínio baseado em casos.
fonte
Alguém fez uma apresentação em nossa Universidade sobre algo semelhante na semana passada e fez referência ao sistema de recomendação da Amazon. Eu acredito que ele usa uma forma de K-Means Clustering para agrupar as pessoas em seus diferentes hábitos de compra. Espero que isto ajude :)
Verifique isso também: http://www.almaden.ibm.com/cs/people/dmodha/ml02.ps e como HTML .
fonte
Se você quiser um tutorial prático (usando R de código aberto), poderá fazer pior do que passar por isso: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e
É uma versão otimizada em tempo de execução de outro trabalho: http://www.salemmarafi.com/code/collaborative-filtering-r/
No entanto, a variação do código no primeiro link é MUITO mais rápida, então eu recomendo usá-lo (achei a única parte lenta do código de yoshiki146 é a rotina final que gera a recomendação no nível do usuário - demorou cerca de uma hora com meus dados em minha máquina).
Eu adaptei esse código para funcionar como um mecanismo de recomendação para o varejista em que trabalho.
O algoritmo usado é - como outros já disseram acima - filtragem colaborativa. Esse método de CF calcula uma matriz de similaridade de cosseno e depois classifica por essa similaridade para encontrar o 'vizinho mais próximo' de cada elemento (banda de música no exemplo dado, produto de varejo no meu aplicativo).
A tabela resultante pode recomendar uma banda / produto com base em outra banda / produto escolhido.
A próxima seção do código vai além com a filtragem colaborativa baseada em USER (ou cliente).
O resultado disso é uma tabela grande com as 100 principais bandas / produtos recomendados para um determinado usuário / cliente
fonte