Personalize-o: como trabalhamos com as recomendações QIWI

Olá pessoal!

Meu nome é Lydia, sou o líder de uma pequena equipe de DataScience em QIWI.

Muitas vezes, meus funcionários encontram a tarefa de pesquisar as necessidades dos clientes e, neste post, gostaria de compartilhar idéias sobre como iniciar um tópico com segmentação e quais abordagens podem ajudar a resolver um mar de dados não alocados.

Quem irá surpreender com a personalização agora? A falta de ofertas pessoais em um produto ou serviço já parece um homem mau, e estamos esperando o mesmo creme selecionado apenas para nós em todos os lugares - desde feeds do Instagram a um plano tarifário pessoal.

No entanto, de onde vem esse conteúdo ou oferta? Se é a primeira vez que você mergulha nas águas escuras do aprendizado de máquina, provavelmente encontrará a questão de por onde começar e como identificar os próprios interesses do cliente. Na maioria das vezes, se houver uma grande base de usuários e falta de conhecimento sobre eles, há um desejo de seguir de duas maneiras populares:

1. Marque manualmente a amostra de usuários e treine nela um modelo que permita determinar se essa classe ou classes pertencem a - no caso de um destino de várias classes.

Essa é uma boa opção, mas no estágio inicial pode ser uma armadilha - afinal, ainda não sabemos quais segmentos temos em princípio e quão úteis serão para promover novos recursos, comunicações e muito mais. Sem mencionar o fato de que a marcação manual do cliente é muito cara e às vezes difícil, porque quanto mais serviços você tiver, mais dados precisará procurar para entender como esse cliente vive e respira. É muito provável que algo assim ocorra:



2. Tendo se queimado na opção 1, eles costumam escolher a opção de análise não supervisionada sem uma amostra de treinamento.

Se você deixar de fora piadas sobre a eficácia dos kmeans, há um ponto importante que combina todos os métodos de agrupamento sem treinamento - eles simplesmente permitem combinar clientes com base na proximidade de métricas selecionadas. Por exemplo, o número de compras, o número de dias de vida, o saldo e muito mais.

Isso também pode ser útil se você deseja dividir seu público-alvo em grandes grupos e depois estudar cada um deles, ou destacar os principais e segmentos que estão além das métricas do produto.

Por exemplo, em um espaço bidimensional, um resultado útil pode ser assim - você pode ver imediatamente quais clusters valem a pena explorar com mais detalhes.



Porém, quanto mais métricas você usar para agrupar, mais difícil será interpretar o resultado. E essas mesmas preferências do cliente ainda estão envoltas em mistério.

O que fazer, aqui está a pergunta? Na QIWI, repetidamente nos preocupamos com esse dilema até chegarmos a um modelo curioso inspirado neste artigo . Entre outros casos, o artigo descreveu a decisão de Konstantin Vorontsov de destacar os padrões latentes de comportamento dos usuários de cartões bancários com base na biblioteca BigARTM .

A linha inferior é que as transações do cliente foram apresentadas como um conjunto de palavras e, a partir da coleção de texto resultante, onde códigos document = client e words = MCC (código da categoria do comerciante, classificação internacional de pontos de venda), os tópicos de texto foram alocados usando uma das ferramentas de processamento de idioma natural ( PNL) - modelagem temática .

Em nosso desempenho, o pipeline fica assim:



Parece absolutamente natural - se queremos entender como e como nosso público vive, por que não imaginar as ações que os clientes realizam dentro do nosso ecossistema como uma história contada por eles. E faça um guia para os tópicos dessas histórias.

Apesar de o conceito parecer elegante e simples, na prática, ao implementar o modelo, tive que enfrentar vários problemas:

  1. a presença de discrepâncias e anomalias nos dados e, como consequência, uma mudança de assunto em direção às categorias de compras de clientes com grande rotatividade,
  2. a determinação correta do número de tópicos N,
  3. uma questão de validação de resultados (isso é possível em princípio?)

Para o primeiro problema, a solução foi encontrada com bastante facilidade - todos os principais clientes foram divididos pelo classificador mais simples em “núcleo” e “estrelas” (veja a figura acima) e já cada um dos clusters foi processado como uma coleção de texto separada.

Mas o segundo e o terceiro ponto me fizeram pensar - realmente, como validar os resultados da aprendizagem sem uma amostra de treinamento? Obviamente, existem métricas de qualidade para o modelo, mas parece que elas não são suficientes - e é por isso que decidimos fazer uma coisa muito simples - para verificar os resultados nos mesmos dados de origem.

Essa verificação é a seguinte: a classificação resulta em um conjunto de tópicos, por exemplo, assim:



Aqui, a lista Python é um conjunto das principais categorias de compras da MCC mais prováveis ​​para este tópico (da matriz “word - subject”). Se você observar separadamente as compras na categoria de companhias aéreas e transportadoras aéreas, é bastante lógico que os clientes com o tema “viajantes” constituam a maior parte de seus usuários.



E essa verificação é convenientemente implementada na forma de um painel - ao mesmo tempo, você terá material visual para gerar hipóteses de produtos - quem recebe reembolso para voos e tem desconto no café.

E na coleção de modelagem temática, você pode adicionar não apenas eventos transacionais, mas também meta-informações de outros modelos, tópicos de chamadas de suporte ao cliente e muito mais. Ou use como recursos categóricos para algoritmos supervisionados - por exemplo, modelos de previsão de vazão e assim por diante.

Obviamente, essa abordagem tem suas próprias nuances - por exemplo, a coleção é processada como um pacote de palavras e a ordem das compras não é levada em consideração, mas pode ser completamente compensada usando N gramas ou calculando tags temáticas para cada período significativo da vida do cliente (todos os meses, por exemplo). No entanto, a própria idéia de uma história de cliente legível e interpretável, uma combinação de PNL e outros modelos nos parece muito atraente.

E como você gosta deste tópico? Quais dificuldades ou alegrias de segmentação sua equipe de ciência de dados enfrenta? Será interessante conhecer sua opinião.

Source: https://habr.com/ru/post/pt463389/


All Articles