Sistemas de recomendação na prática

Empresas como Amazon, Netflix, Linkedin e Pandora aproveitam os sistemas de recomendação para ajudar os usuários a descobrir itens novos e relevantes (produtos, vídeos, trabalhos, músicas), criando uma experiência agradável para o usuário enquanto impulsiona a receita incremental.

Nesse artigo do Houtao Deng é fornecido uma visão prática dos sistemas de recomendação. Primeiro, três sistemas principais são revisados: filtragem baseada em conteúdo, colaborativa e híbrida, seguida de discussões sobre inicialização a frio, escalabilidade, interpretabilidade e exploração / exploração.

Recomendação baseada em conteúdo

Na Pandora, uma equipe de músicos rotulou cada música com mais de 400 atributos. Então, quando um usuário seleciona uma estação de música, as músicas que correspondem aos atributos da estação serão adicionadas à lista de reprodução (Projeto Genoma da Música | Pandora, Howe | Pandora).

Esta é uma recomendação baseada em conteúdo. Usuários ou itens têm perfis que descrevem suas características e o sistema recomendaria um item a um usuário se os dois perfis corresponderem. A caixa de moda do Stitch Fix é outro exemplo de recomendação baseada em conteúdo. Os atributos de um usuário são coletados (altura, peso, etc.) e os produtos de moda correspondentes são colocados em uma caixa entregue ao usuário (Stitch Fix | 2013).

Para o Pandora, os esforços / custos manuais são necessários para criar atributos de música, mas há muitos casos sem essa necessidade. Os clientes do Stitch Fix fornecem suas próprias preferências, os usuários do Linkedin fornecem suas próprias experiências e habilidades de trabalho, os comerciantes na Amazon fornecem informações sobre seus itens de produtos, todos são livremente utilizáveis ​​para recomendações baseadas em conteúdo.

Uma maneira direta de combinar usuários e itens é a correspondência de palavras-chave. Por exemplo, para recomendações de trabalho, pode-se combinar uma descrição de trabalho aos currículos dos candidatos a emprego. Freqüência de documento de frequência inversa de termo é frequentemente usada para colocar mais pesos nas palavras-chave que são exclusivas para um item ou usuário.

Uma maneira mais sistemática é construir um modelo supervisionado que avalie a propensão de um usuário gostar de um item não visto. No modelo, os recursos são os atributos de usuários e itens (por exemplo, uma variável de indicador se um trabalho e um candidato estão no mesmo setor) e a variável de resposta é se o usuário gosta do item (por exemplo, se o candidato a emprego). candidatar-se ao trabalho).

Métodos baseados em conteúdo são computacionalmente rápidos e interpretáveis. Eles podem ser facilmente adaptados para novos itens ou novos usuários. No entanto, algumas características de itens / usuários podem não ser fáceis de capturar ou descrever explicitamente. O Stitch Fix tratou disso permitindo que o aprendizado de máquina manipulasse dados estruturados e manipulasse dados não estruturados (por exemplo, a placa do Pinterest dos usuários).

Filtragem colaborativa

Os sistemas de filtragem colaborativa fazem recomendações com base na preferência dos usuários históricos por itens (clicados, assistidos, comprados, curtidos, classificados etc.). A preferência pode ser apresentada como uma matriz de itens do usuário. Aqui está um exemplo de uma matriz descrevendo a preferência de 4 usuários em 5 itens, onde p_ {12} é a preferência do usuário 1 no item 2.

Embora as entradas possam ser numéricas, por exemplo, o desafio de previsão de classificação de filmes da Netflix (a classificação varia de 1 a 5), ​​na maioria dos aplicativos, eles são binários (por exemplo, clicados, assistidos, comprados).

Na realidade, a matriz de itens do usuário pode ser superior a milhões * milhões (por exemplo, Amazon, Youtube) e a maioria das entradas está faltando – a meta dos sistemas de recomendação é preencher essas entradas ausentes.

Aqui descrevemos três abordagens relacionadas à filtragem colaborativa, o vizinho mais próximo e dois métodos que criam um novo espaço latente: fatoração de matriz e aprendizado profundo.

Vizinho mais próximo

Os métodos baseados no vizinho mais próximo são baseados na similaridade entre pares de itens ou usuários. Semelhança de cosseno é freqüentemente usada para medir a distância.

A matriz de preferência pode ser representada como vetores de itens

A semelhança entre o item I1 e o item I2 é calculada como cos (I1, I2) . A matriz também pode ser representada como vetores do usuário

A similaridade entre U1 e U2 é calculada como cos (U1, U2) . Observe que os valores ausentes na matriz preferencial são normalmente preenchidos com zeros.

Para user_i, podemos recomendar os itens que os usuários mais user_i (user-to-user) ou os itens mais similares de user_i (item-a-item) curtiram.

Abordagens item-a-item são comumente adaptadas na prática, pela Amazon (Amazon | 2003), Youtube (Youtube | 2010), Linkedin (Linkedin | 2014), etc. Quando um cliente gosta de um item, um sistema item-a-item pode exibir rapidamente itens semelhantes a ele (itens semelhantes para cada item são pré-calculados e salvos em um armazenamento de dados de valor-chave). Além disso, as recomendações item a item podem ser mais interpretáveis ​​do que as recomendações de usuário para usuário, por exemplo, os sistemas podem explicar por que um item é recomendado porque “ você gostou do X ”.

É possível que o número de itens semelhantes a um item seja muito pequeno (depois de aplicar um limite nas pontuações de similaridade). Pode-se expandir a lista de itens semelhantes incluindo itens semelhantes de itens semelhantes (Youtube | 2010).

Depois de obter os itens mais semelhantes, uma etapa de pós-processamento pode ser útil. (Youtube | 2010) classificou os itens semelhantes de acordo com a qualidade do vídeo (por exemplo, medido por classificação), diversidade (por exemplo, limitou as recomendações de um canal) e especificidade do usuário (por exemplo, vídeos semelhantes a um vídeo com mais tempo de exibição pelo usuário deve ser classificado mais alto). Os três elementos foram combinados com um modelo linear, fornecendo uma classificação final.

Métodos de fator latente

Os métodos de fator latente criam um novo e geralmente reduzido espaço de recursos do usuário original ou dos vetores de itens, levando à redução de ruídos e cálculos mais rápidos em tempo real.

A seguir, apresentamos dois métodos de fator latente – fatoração de matriz e aprendizado profundo.

Fatorização matricial

A fatoração de matrizes foi usada popularmente durante o desafio de recomendação da Netflix, especialmente a decomposição de valores singulares e uma versão mais prática para sistemas de recomendação.

A decomposição do valor singular ( SVD) decompõe a matriz de preferência

U e V são matrizes unitárias. Para 4 usuários e 5 itens, parece

onde sigma_1> sigma_2> sigma_3> sigma_4 .

A preferência do primeiro usuário pelo primeiro item pode ser escrita como

Isso pode ser apresentado como vetores

Um produto de entrada é aplicado entre o vetor sigma e o primeiro vetor de usuário e, em seguida, um produto de ponto com o primeiro vetor de item. Pode ser visto u e v têm o mesmo comprimento, ou seja, eles estão no mesmo espaço característica latente. O vetor sigma representa a importância de cada recurso.

Agora vamos selecionar os dois principais recursos baseados nos sigmas

que pode ser apresentado como o item e vetores de usuário, cada um tem um comprimento de dois.

SVD de Simon Funk

Muitas das entradas na matriz de preferência podem estar ausentes e o SVD normal tem os seguintes problemas (1) como os valores omissos são imputados podem ter um impacto indesejável no resultado. (2) complexidade computacional para treinamento pode ser alta com todas as entradas consideradas.

Durante o desafio da Netflix, Simon Funk surgiu com uma solução prática (Funk | 2006)

Na fórmula, apenas as entradas não perdidas p_ {ij} são consideradas. A pontuação estimada para o item j ^ {th} do i ^ {th} usuário é

Observe que os vetores de usuário e de item não têm comprimentos de unidade como em SVD, mas não importa, pois a soma dos quadrados para erro é minimizada. A abordagem de Funk teve grande sucesso no desafio da Netflix, e a ideia foi implementada pela Netflix (Netflix | 2012).

Aprendizagem de aprendizagem profunda

O aprendizado profundo é mais flexível (do que a fatoração de matriz) ao incluir vários fatores na modelagem e criação de integrações. Por exemplo, o aprendizado profundo foi usado para modelar informações sequenciais, aproveitando o modelo skip-gram, originalmente usado para calcular a semelhança de palavras. (Airbnb | 2018, Zillow | 2018)

Digamos que a sequência de itens de um usuário é item1 -> item2 -> item 3 -> item4 -> … A intuição é usar cada item na sequência para prever seus itens vizinhos, formulados como um problema de classificação, em que cada item é uma classe. Os dados de treinamento incluem os itens K vizinhos de cada item (os itens K à esquerda e K à direita). A figura a seguir ilustra os pares de itens com K = 1.

Além disso, cada item é representado como um vetor quente que tem um comprimento igual ao número de itens. Uma rede neural usa um vetor de um item como entrada e saída do vetor de um de seus itens semelhantes, ilustrado na figura a seguir, usando (Item2, Item1) como o exemplo de treinamento.

A camada oculta é o novo espaço de recurso (ou espaço latente) e cada item pode ser transferido para o novo espaço de recurso usando os pesos entre a camada de entrada e a camada oculta (essencialmente uma combinação linear dos recursos originais).

Na realidade, pode haver milhões de itens e bilhões de exemplos são usados ​​para treinar a rede. Para simplificar o cálculo, a ideia de amostragem negativa pode ser aplicada. A ideia é atualizar apenas os pesos do item de saída (Item 1) e um pequeno número de outros itens amostrados aleatoriamente. A seguir, destacamos os itens e os pesos precisam ser atualizados. Isso torna o cálculo muito mais rápido.

Quando cada item é representado no novo espaço de recurso, a similaridade entre os itens pode ser calculada e as recomendações podem ser feitas com base nas pontuações de similaridade.

Em alguns casos, os usuários visitam uma sequência de itens antes da conversão, por exemplo, um usuário da Amazon faz uma compra após uma sequência de exibições de página; Um usuário Airbnb registra uma listagem depois de visualizar algumas listagens. Essas informações podem ser incluídas adicionando o item comprado ao par de treinamento de cada item (Airbnb | 2018), mostrado na figura abaixo. Itens recomendados desta maneira podem melhorar as taxas de conversão.

Abordagens híbridas

Abordagens híbridas usam informações de interações de itens do usuário e características de usuários / itens.

O recurso “empresas que você pode querer seguir” do Linkedin usou tanto conteúdo quanto informações de filtragem colaborativa (Linkedin | 2014). Para determinar se uma empresa que um usuário pode querer seguir, um classificador de regressão logística é construído sobre um conjunto de recursos. As informações de filtragem colaborativa são incluídas em um recurso que indica se a empresa é semelhante àquela que um usuário já seguiu. As informações de conteúdo incluem se a indústria, a localização, etc. correspondem entre o usuário e a empresa.

Os modelos de aprendizagem profunda podem ser poderosos ao combinar informações de filtragem colaborativa e baseadas em conteúdo. O sistema de recomendação do Youtube (Youtube | 2016) construiu modelos de aprendizagem profunda para prever o relógio dos usuários, considerando suas atividades anteriores (consultas de pesquisa e vídeos assistidos) e informações estáticas (gênero, localização, etc.). Vídeos assistidos e consultas são representados como “embeddings“. Como as redes neurais geralmente têm entradas de comprimento fixo, os vetores assistidos ou os vetores de consultas de um usuário são calculados, concatenados com outros recursos estáticos. Recomenda-se que os recursos com várias categorias sejam incorporados em um espaço muito menor (aproximadamente proporcional ao logaritmo do número de valores exclusivos), e os recursos contínuos devem ser normalizados entre 0 e 1 (Youtube | 2016).

Os métodos híbridos podem depender de recomendações baseadas em conteúdo quando um usuário / item não tem nenhuma ou pouca atividade e se torna mais preciso à medida que mais dados estão disponíveis.

Partida a frio, Escalabilidade, Interpretabilidade e Exploração-Exploração

Recomendações precisas não podem ser feitas para novos usuários / itens com pouca ou nenhuma informação. Isso é chamado de problema de partida a frio . Esse é um problema típico dos sistemas de filtragem colaborativa que dependem de interações de itens do usuário. Algumas heurísticas podem ser usadas. Para um novo usuário, os itens mais populares na área do usuário podem ser recomendados. Para um novo item, alguns critérios de similaridade baseados em regras podem ser definidos. Por exemplo, a Airbnb usou a média de três listagens geograficamente mais próximas do mesmo tipo e faixa de preço para se aproximar de uma nova listagem (Airbnb | 2018).

A escalabilidade é um fator chave ao determinar qual tipo de sistema de recomendação usar. Sistemas mais complexos precisam de mais pessoas, potencialmente mais difíceis de contratar, de construir / manter com um custo de hardware maior. Pode ser um compromisso de longo prazo e, portanto, os negócios devem entender o ganho incremental dos negócios versus o aumento do custo. Com isto dito, aqui estão alguns elementos-chave para construir sistemas escaláveis.

Computação em lote offline e serviço online . Com um grande número de usuários e itens, é preciso calcular as recomendações facilmente pesquisáveis ​​off-line por lote. Por exemplo, o Linkedin usou o Hadoop para processar em lote os dados do evento do item do usuário e, em seguida, as recomendações são carregadas em um armazenamento de valor-chave para consultas de baixa latência em tempo real. (Linkedin | 2014)

Amostragem . Ao lidar com milhões de usuários e itens, a amostragem pode ser considerada, amostragem aleatória de itens ou usuários ou a remoção de itens sem engajamento significativo do usuário.

Aproveitando dispersão . Em sistemas de recomendação, a matriz de preferência de item do usuário geralmente é muito esparsa, com a maioria das entradas faltando. Aproveitar a dispersão pode reduzir significativamente a complexidade computacional (Amazon | 2003).

Modelagem multifásica . O sistema de recomendação do Youtube dividiu o processo de modelagem em duas etapas. Na primeira fase, apenas dados de atividade de itens do usuário são usados ​​para selecionar centenas de candidatos em milhões. Na segunda fase, é possível usar mais informações sobre os vídeos candidatos para posterior seleção e classificação. (Youtube | 2016)

Escala de redes profundas . Embora softmax ou outras funções sejam usadas na camada de saída para treinamento, durante o tempo de serviço em tempo real, a probabilidade não precisa ser calculada, e a aproximação do vizinho mais próximo pode ser usada na saída da última camada oculta. A amostragem negativa mencionada anteriormente também pode ser considerada para que, para cada exemplo de treinamento, apenas um pequeno número de pesos das classes seja atualizado.

Interpretabilidade . Do lado do cliente, pode ser útil indicar por que uma recomendação é feita. Ao recomendar um vídeo para um usuário, o Youtube adicionou um link para o vídeo que o usuário assistiu e acionou a recomendação (Youtube | 2010).

Do lado da modelagem, a capacidade de interpretação ajuda os desenvolvedores a entender e depurar o sistema. Abordagens baseadas em conteúdo são fáceis de interpretar, enquanto os modelos de filtragem colaborativa são mais difíceis de entender, especialmente no espaço latente. É possível agrupar os itens ou usuários com base em seu espaço de recurso original ou espaço latente (fatoração de matriz e aprendizado profundo) e verificar se os objetos do mesmo cluster compartilham características semelhantes.

Além disso, o algoritmo t-SNE (Maaten | 2018) pode ser usado para projetar um espaço de alta dimensão para um espaço bidimensional para visualização (Zillow | 2018). Também pode ser útil ter uma ferramenta para que seja possível visualizar rapidamente as recomendações como uma verificação de integridade, por exemplo, o Airbnb desenvolveu uma ferramenta de exploração interna para validar as recomendações (Airbnb | 2018).

Exploração-exploração. Os sistemas de recomendação não devem sobrecarregar os dados históricos de preferência do item do usuário (exploração), para evitar ficar preso em um local ideal.

Primeiro, deve-se evitar que os dados de treinamento sejam totalmente afetados por recomendações anteriores. O Youtube inclui vídeos incorporados em outros sites para treinamento. Os vídeos assistidos fora do site do YouTube não são do sistema de recomendação e podem efetivamente mostrar novos conteúdos (Youtube | 2016). Pode-se também considerar a possibilidade de injetar aleatoriedade no sistema (por exemplo, fazer recomendações aleatórias).

Regras simples podem ser adicionadas ao sistema para aumentar a diversidade de recomendações. Por exemplo, na recomendação do Youtube (Youtube | 2010), vídeos muito parecidos são removidos e o número de vídeos provenientes do mesmo canal é limitado.

Métodos de bandidos multi-armados também podem ser aplicados. limite de confiança superior foi aplicado pela Uber come para aumentar a diversidade de restaurantes / pratos recomendados (Uber | 2018). A ideia de limite de confiança superior é usar o limite superior da taxa de sucesso estimada (por exemplo, taxa de pedidos, taxa de cliques, taxa de observação). Quando um novo item chega sem nenhuma informação, o intervalo de confiança é [0,1] e, portanto, o limite superior é 1. Portanto, o novo item teria uma grande chance de ser recomendado. À medida que o item obtém mais impressões, a estimativa seria mais precisa e o limite superior estaria mais próximo de seu valor real.

Fechamento

Este artigo discute metodologias e perspectivas-chave para a construção de um sistema de recomendação. Na prática, as empresas devem fazer escolhas com base em vários fatores, como precisão, complexidade e impacto nos negócios, sob restrições realistas dos recursos (por exemplo, engenheiros e custos de software / hardware).

References
[1] Music Genome Project. Pandora | Wikipedia
[2] Pandora’s Music Recommender. Michael Howe | Pandora
[3] Amazon.com recommendations: Item-to-item collaborative filtering, Greg, Smith and York | Amazon | 2003
[4] The YouTube video recommendation system. Davidson, Liebald, Liu, Nandy, Vleet, Gargi, Gupta et al. | Youtube | 2010.
[5] The Browsemaps: Collaborative Filtering at LinkedIn. Wu, Sam, Sean, Mitul, Posse | Linkedin | 2014
[6] Netflix Recommendations: Beyond the 5 stars. Netflix Technology Blog | 2012
[7] Netflix Update: Try This at Home. Simon Funk | 2006
[8] Listing Embeddings in Search Ranking. Mihajlo Grbovic | Airbnb | 2018
[9] Deep neural networks for youtube recommendations. Paul Covington, Jay Adams and Emre Sargin | Youtube | 2016
[10] Home Embeddings for Similar Home Recommendations. Sangdi Lin|Zillow|2018
[11] Visualizing data using t-SNE. Maaten, Laurens van der, and Geoffrey Hinton|2008
[12] Food Discovery with Uber Eats: Recommending for the Marketplace. Yuyan Wang, Yuanchi Ning, Isaac Liu, and Xian Xing Zhang|Uber|2018
[13] Using Human and Machine Processing in Recommendation Systems. Eric Colson|Stitch Fix|2013

Originalmente escrito por: Houtao Deng (Versão Original – EN)

1

Uma consideração sobre “Sistemas de recomendação na prática”

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s