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:
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