Produto positivo para o usuário (dados do clique) disponível. Como gerar dados negativos (sem clique)?

10

É muito comum recomendar que tenhamos dados do produto do usuário que tenham uma etiqueta como, por exemplo, "clique". Para aprender o modelo, preciso de dados de clique e sem clique.

A abordagem mais simples de gerar é obter pares usuário-produto que não são encontrados nos dados de cliques. No entanto, isso pode ser enganoso. Exemplo:

user1, product1 (click) user2, product2 (click) user2, product3 (click) user3, product2 (click)

Posso pegar o usuário1 com todos os produtos, exceto o produto1, rotulá-los como "no_click" e assim por diante. Mas isso pode não ser verdade. Talvez o usuário1 tivesse clicado em product2 se lhe fosse mostrado product2. Mas apenas porque lhe foram mostrados outros conjuntos de produtos - ele não teve oportunidade de decidir clicar / não clicar no produto2.

Então, como resolver o problema de dados unários?

p.paliwal
fonte
11
Eu acho que você respondeu sua própria pergunta. Você deve gravar um conceito de impressão ou programa. Se você mostrou um produto e não houve clique, é isso que você está procurando.
Mas, na verdade, isso não está disponível nos dados gravados. Foi o que eu mencionei. Os dados contêm apenas o par de produtos e usuários que possui um rótulo de clique. O que foi mostrado e o que foi clicado não são registrados.
p.paliwal
Além disso, mesmo se, digamos - user1 foi exibido prod1, prod2, prod3 (e ele clicou em prod1) -, então user1 com prod2 e prod3 não terá rótulo de clique. Mas e quanto ao restante dos produtos (prod4, prod5, ...). Só porque eles não foram mostrados, o usuário não teve oportunidade de decidir clicar / não clicar. Isso não indica se o usuário estaria interessado em produtos não mostrados - rotular todas as outras combinações como sem clique pode não ser verdadeiro. Isto é o que eu também expliquei em questão.
p.paliwal

Respostas:

6

Então, existem dois problemas.

  1. Gravando impressões (shows)
  2. Como lidar com não impressões

Para (1) você deve gravar essas informações. Se não estiver sendo gravado no momento, você deve começar a gravar essas informações. Como você não possui essas informações, deseja fornecer recomendações. Felizmente, com apenas um clique nos dados, você ainda pode criar uma matriz de utilitários, consulte 9.1.1.

http://i.stanford.edu/~ullman/mmds/ch9.pdf

Você pode então usar a filtragem colaborativa baseada no usuário ou no item, conforme descrito no documento. Este é basicamente um exercício para preencher a matriz de utilidade e tentar encontrar "pontuações" para itens não clicados. Sua recomendação seria um item não clicado com a pontuação mais alta.

Para (2) você ainda fará recomendações sobre itens não clicados. Então, isso por si só não é um problema. Você desejará otimizar suas impressões no entanto. Você também não pode ter conhecimento completo, onde um usuário pode ver todas as opções possíveis. Você precisa registrar impressões e entender várias coisas.

  • mostrar taxa de um item
  • taxa de cliques de um item
  • como incorporar novos itens
  • como otimizar quais itens mostrar

Esse é um tópico enorme e basicamente esse é o domínio do problema da publicidade on-line. No entanto, um mecanismo de recomendação tenta encontrar itens de interesse na cauda longa, um pouco diferente da otimização de anúncios. Este é um ciclo de feedback para avaliar sua recomendação. Testes A / B são comuns. Você deseja testar taxas de cliques e erros de recomendação entre o sistema atual e o novo sistema.

Veja também aqui.

http://cs.brynmawr.edu/Courses/cs380/fall2006/Herlocker2004.pdf

http://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf


fonte