Como usar uma rede neural para determinar a melhor data de envio de e-mail e aumentar a receita de mala direta 8,5 vezes

Para evitar que os boletins informativos por e-mail se percam em suas caixas de entrada e os clientes abram e-mails e façam compras com mais frequência, é importante adivinhar o horário correto de envio. Usando uma rede neural, analisamos o comportamento do cliente e previmos a data de envio do próximo e-mail para recomendar os produtos ao cliente no momento em que ele deseja comprá-los. Testado em lojas de animais em listas de mala direta de recompra e avaliou o resultado usando testes AB. Obtivemos os seguintes resultados:



23 vezes

mais e-mails direcionados usando uma rede neural em comparação com um acionador



8,5 vezes

mais receita de marketing por e-mail por atribuição, último clique



2 vezes

menos cancelamentos



de assinaturas 17 vezes

mais aberturas





Abaixo, vamos compartilhar nossa experiência e dizer a você:



  • por que decidimos usar o modelo de rede neural LSTM para prever a data de envio de e-mail em vez do algoritmo de aumento de gradiente;
  • como funciona o LSTM;
  • quais dados a rede neural usa para treinamento;
  • qual arquitetura da rede neural foi usada e quais dificuldades eles encontraram;
  • quais resultados foram alcançados e como foram avaliados.


Por que você decidiu abandonar o algoritmo de aumento de gradiente em favor do LSTM



Os boletins informativos por e-mail ajudam a informar os clientes sobre novos produtos, reativar clientes em constante movimento ou mostrar recomendações personalizadas. Para cada cliente, a data do melhor envio é diferente: alguém faz compras no fim de semana, por isso é melhor enviar um email no sábado; e alguém comprou recentemente uma casa para um gato, e vale a pena mandar uma carta o mais rápido possível e aconselhá-lo sobre comida. Uma rede neural nos ajudou a determinar a melhor data para enviar um e-mail e adivinhar a necessidade do cliente.



No início, usamos algoritmos padrão. Ao longo de um ano, criamos placas a partir do histórico de ações do cliente e treinamos gradiente impulsionando-as para prever a melhor data para envio de emails. Por exemplo:



  • calculou quantos dias se passarão da data da compra até a próxima compra;
  • tentou fazer uma classificação de sinais e prever a probabilidade de enviar uma carta em um determinado dia;
  • tentou determinar os interesses do usuário em função do local de residência, a fim de aumentar a probabilidade de visualização da carta e cliques.


Mas esse modelo não deu um resultado positivo estável para todos os projetos, não conseguiu encontrar padrões complexos no comportamento do usuário e não trouxe dinheiro suficiente.



Quando já estávamos pensando em abandonar o algoritmo e na ideia de prever a data de envio do email, decidimos tentar algo exótico e treinar o modelo LSTM da rede neural para essa tarefa. Geralmente é usado para análise de texto, com menos frequência para analisar preços de ações em mercados financeiros, mas nunca para fins de marketing. E o LSTM funcionou.



O que é LSTM



LSTM (Long Short Term Memory) é uma arquitetura de rede neural que vem da análise de linguagem natural.



Vamos analisar como o LSTM funciona usando a tradução automática como exemplo. Todas as letras do texto são alimentadas para a entrada da rede neural, por sua vez, e na saída queremos uma tradução para outro idioma. Para traduzir o texto, a rede deve armazenar informações não só sobre a carta atual, mas também sobre aquelas que estavam na frente dela. Uma rede neural comum não lembra o que foi mostrado antes e não pode traduzir uma palavra ou texto inteiro. O LSTM, por outro lado, possui células de memória especiais onde são armazenadas informações úteis, portanto, produz um resultado com base nos dados totais e traduz o texto levando em consideração todas as letras em palavras. Com o tempo, a rede neural pode limpar células e esquecer informações que não são mais necessárias.



O mesmo princípio acabou sendo importante para prever as ações do usuário. A rede neural levou em consideração todo o histórico de ações e produziu resultados relevantes - por exemplo, determinou a melhor data para o envio de um e-mail.



Estrutura interna de uma camada LSTM





A camada interna do LSTM consiste nas operações de adição + , multiplicação × , sigmóide σ e tangente hiperbólica tanh



Quais dados são usados ​​pela rede neural



Para aprender como prever a melhor data de envio de e-mail, a rede neural analisa um conjunto de dados históricos. Passamos na sequência o tempo decorrido entre as ações e 9 tipos de tokens:



  • comprando um produto barato,
  • comprando um produto de preço médio,
  • comprando um produto caro,
  • vendo um produto barato,
  • vendo um produto de preço médio,
  • vendo um produto caro,
  • recebendo uma carta,
  • abrindo uma carta,
  • clique em qualquer objeto dentro da carta.


É assim que um exemplo típico de sequência de entrada se parece com:



(view_medium, 0.5, view_cheap, 24, buy_cheap) Um



usuário com esta sequência olhou para um produto de preço médio, olhou para um produto barato em meia hora e decidiu comprar um produto barato um dia depois.



As últimas cinco ações do usuário são a variável de destino. Sua rede neural aprendeu a prever.



Qual arquitetura da rede neural foi usada



As primeiras tentativas de treinar a rede neural não tiveram sucesso: ela foi retreinada e sempre previu apenas o envio de uma carta, e não outras ações, por exemplo, a probabilidade de abrir uma carta ou comprar. Como os clientes têm mais probabilidade de receber e-mails do que abri-los ou comprar algo, “receber e-mail” é o token mais frequente. A rede neural obteve bons resultados em termos de métricas, embora o resultado real tenha sido negativo. Afinal, não há sentido em um algoritmo que sempre diz que o cliente receberá uma carta - e nada mais.



Por exemplo, há uma sequência de entrada de três tokens "receba uma carta" e um "compra de mercadorias". A rede neural o processa e prevê uma sequência com quatro tokens de "recebimento de correio". Em 3 de 4 casos, ela adivinhará, e o cliente receberá uma carta, mas essa previsão não faz sentido. A principal tarefa é prever quando um cliente abrirá um e-mail e fará uma compra.



Depois de testar várias arquiteturas e caminhos de aprendizagem, descobrimos o que funcionou.



Como de costume para os modelos Seq2Seq, a rede consiste em duas partes: um codificador e um decodificador. O codificador é pequeno e consiste em LSTM e camadas de incorporação, mas o decodificador também usa autoatenção e desistência. No treinamento, usamos a força do professor - às vezes, fornecemos uma previsão de rede como entrada para a próxima previsão.



O codificador codifica a seqüência de entrada em um vetor que contém informações importantes, na opinião da rede, sobre as ações do usuário. O decodificador, ao contrário, decodifica o vetor resultante em uma sequência - essa é a previsão da rede.



Obter uma previsão usando uma rede LSTM







Tempo de treinamento: o modelo foi treinado por cerca de um dia no Tesla V100 e após a conclusão do treinamento recebeu ROC-AUC 0.74.



Como o modelo LSTM funciona com dados reais (inferência)



Para aplicar o modelo a algum usuário e saber se vale a pena enviar-lhe uma carta, coletaremos um vetor de suas últimas ações e o executaremos pela rede neural. Suponha que a resposta da rede neural seja assim:



(email_show, 10, email_open, 0,5, view_cheap, 0,5 view_medium, 15 buy_medium)



O modelo prevê não apenas ações, mas também quanto tempo passará entre elas. Vamos cortar todos os eventos que acontecem depois de um dia. Iremos processá-los no dia seguinte, pois durante este período poderão surgir novas informações sobre as ações do cliente, que deverão ser levadas em consideração. Obtemos a seguinte sequência:



(email_show, 10, email_open, 0,5, view_cheap, 0,5 )



Há um token de visualização na sequência, portanto, um e-mail será enviado ao usuário hoje.



É importante enviar um e-mail apenas se houver um token de visualização ou compra, e não receber um e-mail, para que a rede não repita os envios de gatilho de que se lembrava anteriormente. Por exemplo, se você não levar em consideração a visualização e as compras, podemos obter uma sequência apenas com tokens para o recebimento de uma carta. E então a rede duplicará as configurações de gatilho do profissional de marketing em vez de prever a abertura de um e-mail ou uma compra:



(email_show, 10, email_show, 15, email_show, 0,5)



Como o resultado foi avaliado



Para verificar o desempenho do modelo, executamos testes AB. Como linha de base, usamos um algoritmo que calcula o tempo médio entre as compras de um usuário e envia um e-mail quando esse tempo passa. Metade dos usuários recebeu emails com base nas decisões de linha de base, a outra - de acordo com as previsões do modelo. Os testes AB foram conduzidos com a base de clientes das lojas de animais Beethoven e Staraya Farm .



O teste durou duas semanas e alcançou significância estatística. A rede neural aprendeu a localizar 23 vezes mais usuários que deveriam enviar um e-mail, enquanto em termos percentuais a taxa de aberturas caiu apenas 5% e o número de aberturas em números absolutos aumentou 17 vezes.



Resultado do teste AB para o modelo de rede neural LSTM e conclusões







Portanto, o experimento com uma rede neural em vez de um algoritmo teve sucesso. O modelo de rede neural LSTM se tornou uma ferramenta adequada para prever a melhor data de envio de e-mail. Aprendemos por experiência própria que não há necessidade de ter medo de usar modelos não padronizados para resolver problemas triviais.



Sergey Yudin, desenvolvedor de ML, autor



All Articles