Descobrindo e classificando a intenção de mensagem no aplicativo no Airbnb

A IA de conversação está nos inspirando a repensar a experiência do cliente em nossa plataforma.

Michelle (Guqian) Du em Airbnb Engineering & Data Science Segue 22 de janeiro · 11 min ler

Autores: Michelle Du , Shijing Yao

Seja abraçado por muita luz natural, tijolos e plantas em nosso novo escritório no centro de Seattle.

A missão do Airbnb é criar um mundo onde todos possam pertencer a qualquer lugar. Garantir uma boa comunicação entre hóspedes e anfitriões é uma das chaves para desenvolver um sentimento de pertença, bem como uma experiência de viagem tranquila e sem preocupações para os hóspedes. Milhões de convidados e anfitriões se comunicam na plataforma de mensagens do Airbnb sobre uma variedade de tópicos, incluindo agendamento de reservas, solicitações de pagamento, planejamento de viagens, feedback de serviço e até mesmo compartilhar experiências com novos amigos. Assim, uma grande oportunidade para melhorar a experiência dos convidados na plataforma é prever e entender a intenção de suas mensagens para os hosts.

Considere a seguinte situação. O Natal é daqui a duas semanas. Você está planejando uma viagem em família de última hora para o Havaí e encontrará uma casa de praia doce em Honolulu no Airbnb. A descrição da listagem não mostra quantas camas estão disponíveis. No aplicativo móvel do Airbnb, você pergunta “Sua casa tem espaço suficiente para acomodar seis pessoas?” E espera ansiosamente que o host responda. No entanto, o host está muito ocupado para responder imediatamente. Você fica preocupado porque pode perder outras listagens enquanto aguarda a resposta.

Em outra situação, você reservou uma viagem de verão com seu melhor amigo para Paris bem antes de planejar sua viagem. No entanto, inesperadamente, apenas alguns dias antes da viagem, seu amigo lhe diz que talvez seja necessário mudar o horário porque ela se machucou. Você está pensando em cancelar a reserva, mas não tem certeza se um reembolso total será emitido. Você pergunta ao host por meio de uma mensagem no aplicativo sobre a política de cancelamento e espera que ele possa responder rapidamente. No entanto, você tem que esperar por muitas horas, porque agora é meia-noite no horário de Paris.

Reconhecemos que esses cenários podem causar ansiedade e confusão, e acreditamos que existem maneiras de abordá-los de uma maneira muito melhor. Nos dois casos acima mencionados, responder a perguntas em tempo real é especialmente desejável. Quando situações inconvenientes como essas surgem, a plataforma de mensagens no aplicativo do Airbnb é um canal crítico para facilitar as comunicações. Por outro lado, exigir que todos os hosts respondam instantaneamente aos convidados, sobrecarrega-os, sem mencionar que isso não é realista.

Usando tecnologias recentes de IA de conversação, três equipes do Airbnb – Produtos Compartilhados, Aprendizado de Máquina Aplicada e Infraestrutura de Aprendizado de Máquina – desenvolveram juntas uma estrutura de aprendizado de máquina que pode atenuar o problema. A estrutura é capaz de classificar automaticamente certas mensagens de convidados para nos ajudar a entender melhor a intenção do hóspede. Portanto, ele pode ajudar a reduzir consideravelmente o tempo de resposta para os convidados e reduzir a carga de trabalho geral necessária para os hosts. Ele também permite que o Airbnb forneça orientação essencial e, assim, uma experiência de comunicação perfeita para os convidados e anfitriões.

Figura 1: Um conceito que ilustra um convidado pedindo um host para recomendações de restaurantes nas proximidades.

Identificando a intenção da mensagem

Por trás de cada mensagem enviada há uma intenção, seja para calcular a logística, esclarecer detalhes ou se conectar com o host. Para melhorar a experiência de comunicação existente, é vital que a IA identifique essa “intenção” corretamente como um primeiro passo. No entanto, essa é uma tarefa desafiadora porque é difícil identificar o conjunto exaustivo de intenções que podem existir em milhões de mensagens.

Para enfrentar esse desafio, montamos nossas soluções em duas fases: Na Fase 1 , usamos uma abordagem clássica não supervisionada – Latent Dirichlet Allocation (LDA) – para descobrir possíveis tópicos (intenções) no grande corpus de mensagens. Na Fase 2 , passamos para técnicas de aprendizado supervisionadas, mas usamos os tópicos derivados da Fase 1 como rótulos de intenção para cada mensagem. Especificamente, construímos um modelo de classificação de várias classes usando uma arquitetura CNN (Convolutional Neural Network) canônica. As duas fases criam uma estrutura poderosa para entendermos com precisão os dados de texto em nossa plataforma de mensagens.

Intenção de descoberta

O primeiro desafio neste problema é descobrir tópicos existentes (intenções) do enorme corpus de mensagens sem conhecimento prévio. Pode-se pensar em usar técnicas de incorporação para gerar clusters no nível da mensagem e, portanto, tópicos. No entanto, uma suposição fundamental aqui é que apenas um tópico principal existe em uma mensagem, o que não é válido para os dados do Airbnb. No Airbnb, as pessoas tendem a configurar o contexto antes de começarem a digitar mensagens principais, e é comum ter uma mensagem contendo várias informações que não são muito relevantes umas para as outras.

Aqui está um exemplo. Um convidado realmente quer perguntar como eles poderiam armazenar a bagagem para o check-in antecipado. Mas eles podem informar o anfitrião sobre sua hora de chegada antes de fazer a pergunta do check-in real. Para os humanos, é relativamente fácil decompor os tópicos e descobrir que o tópico chave é “possibilidade de check-in antecipado”. No entanto, para métodos de incorporação, nem um único vetor de incorporação nem agregações algébricas de vários vetores de incorporação diferentes poderiam representar o tópico principal. O que realmente precisamos é de um algoritmo que possa detectar tópicos subjacentes distintos e decidir qual deles é o principal, baseado em pontuações de probabilidade.

Assim, a LDA se torna uma escolha natural para nossos propósitos. Primeiro, o LDA é um modelo probabilístico, que fornece uma composição probabilística de tópicos em uma mensagem. Segundo, o LDA assume que cada palavra é extraída de uma certa distribuição de palavras que caracteriza um tópico exclusivo, e cada mensagem pode conter muitos tópicos diferentes (veja a Figura 2 abaixo para uma representação gráfica do modelo junto com a distribuição conjunta das variáveis). A distribuição de palavras permite que o julgamento humano seja ponderado ao decidir o que cada tópico significa.

Figura 2: Uma representação gráfica do modelo de LDA por David Blei et al. juntamente com as probabilidades conjuntas das unidades observadas (nós sombreados) e ocultos (nós não sombreados)

A Figura 3 mostra uma visualização 2D dos tópicos gerados usando o pyLDAvis . Determinamos o número de tópicos (hiperparâmetro K ) no LDA como sendo o que gera o maior escore de coerência no conjunto de validação.

Figura 3: Uma visualização 2D de distâncias entre tópicos calculada com base na distribuição de termos-tópicos e projetada por meio da análise de componentes principais (PCA) . O tamanho do círculo é determinado pela prevalência do tópico.

Devido a restrições de tempo, não investimos muito tempo em métodos como doc2vec e BERT . Mesmo que esses métodos tenham restrições como mencionado acima, eles levam em consideração a ordem das palavras e podem ser alternativas atraentes para propósitos de descoberta de intenção. Continuamos abertos a esses métodos e planejamos revisitá-los mais tarde.

Rotulagem: De não supervisionada a supervisionada

A rotulagem é um componente crítico da Fase 2, pois constrói uma transição chave de uma solução não supervisionada para uma supervisionada. Mesmo que um esboço do espaço de intenção na Fase 1 já tenha sido detectado, não temos controle total da granularidade devido à sua natureza não supervisionada. Isso é particularmente problemático se determinado produto do Airbnb precisar abordar intenções de mensagens específicas que podem não ter sido detectadas na Fase 1. Também é difícil avaliar a eficácia dos resultados de LDA para cada mensagem sem um rótulo de intenção claramente predefinido para essa mensagem como o motivo verdade.

Assim como a descoberta atenta, o primeiro desafio da rotulagem é determinar quais rótulos definir. Mais importante, precisamos garantir que a qualidade dos rótulos seja alta. Nossa solução é executar um processo iterativo que começa com os tópicos descobertos do LDA, mas aproveita o feedback do produto para gerar um conjunto final de rótulos. Em primeiro lugar, rotulamos uma pequena amostra por meio de uma mensagem rotulada por várias pessoas para avaliar a qualidade da rotulagem. Em seguida, refinamos as definições de rótulo com base no contrato entre avaliadores para cada rótulo de intenção e iniciamos a rotulagem formal com um tamanho de dados muito maior. Durante a rodada formal, cada mensagem é revisada uma vez para a maioria dos dados. Mantemos uma pequena parte das mensagens rotuladas por vários revisores, de modo que pudéssemos identificar os limites na precisão da previsão que nosso modelo poderia alcançar devido a erros no nível humano . Cada mensagem é completamente anônima com informações de identificação pessoal (PII) limpas durante todo o processo.

Em termos de recursos de rotulagem, protegemos nossos especialistas internos de produtos que puderam fornecer um serviço de rotulagem de alta qualidade para os dados da mensagem. O serviço de etiquetagem acabou por ser muito mais personalizável e fiável em comparação com fornecedores de terceiros e também exemplificou uma grande colaboração entre diferentes organizações de uma empresa.

Durante o processo de rotulagem, descobrimos que cerca de 13% das nossas mensagens de destino têm várias intenções. A intenção múltipla é uma situação em que as pessoas fazem perguntas com duas ou mais intenções diferentes em uma única mensagem. Quando ocorreu uma tentativa múltipla, pedimos aos nossos especialistas para atribuir cada intenção específica às frases correspondentes. Sentenças designadas com uma única intenção foram usadas como uma amostra de treinamento independente ao construir o modelo de classificação de intenção. Demonstramos como eles são tratados em tempo real servindo na seção Produção (Figura 6).

Classificação de intenção com CNN

A Rede Neural por Convolução (CNN) e a Rede Neural Recorrente (RNN) têm sido métodos muito populares para tarefas de PNL. Neste trabalho, nos concentramos na CNN, devido à simplicidade de sua implementação, relataram alta precisão e, especialmente, velocidade rápida (no tempo de treinamento e de inferência). Piero Molino et al., 2018 mostraram que o Word CNN tem menos de 1% do que o Char C-RNN no mesmo conjunto de dados e hardware, sendo cerca de 9 vezes mais rápido durante o treinamento e a inferência. No nosso caso, em média, leva 10 minutos para o erro de validação convergir, enquanto a RNN leva, em média, 60 minutos para convergir para o mesmo nível. Isso resulta em uma iteração e desenvolvimento de modelo muito mais lento ao considerar o ajuste do hyperparameter.

Em termos de precisão do modelo, Wenpeng Yin, et al., 2017 fez uma comparação completa da CNN e da RNN em diferentes tarefas de classificação de texto. Eles descobriram que a CNN realmente funciona melhor que RNN quando a classificação é determinada por algumas frases-chave, em vez de compreender toda a semântica de longo alcance. Em nosso caso, geralmente não precisamos ter o contexto completo da mensagem de um convidado para identificar a intenção de sua pergunta. Em vez disso, a intenção é principalmente determinada pelas frases-chave, como "quantas camas você tem?" Ou "há estacionamento na rua disponível?"

Após extensa revisão de literatura, decidimos adotar Yoon Kim, 2014 e Ye Zhang et al., 2016 , onde uma CNN simples de uma camada, seguida de uma camada de agrupamento 1-max foi proposta. Ao contrário do trabalho original, projetamos 4 tamanhos de filtro diferentes, cada um com 100 filtros.

Figura 4: Ilustração de uma arquitetura CNN para classificação de sentenças de Ye Zhang et al.

Para se preparar para a camada de incorporação, pré-treinamos a incorporação de palavras com base em um grande corpus de mensagens do Airbnb fora de amostra. Realizamos um cuidadoso pré-processamento de texto e descobrimos que certas etapas de pré-processamento, como marcação de determinadas informações, são especialmente úteis na redução de ruído, pois normalizam informações como URLs, e-mails, data, hora, número de telefone etc. Abaixo, um exemplo das palavras mais semelhantes para a palavra house gerada por modelos word2vec treinados sem e com essas etapas de pré-processamento:

Palavras mais semelhantes para “house” geradas por modelos word2vec treinados sem / com etapas extras de pré-processamento

Para ser consistente, utilizamos as mesmas etapas de pré-processamento ao longo da incorporação de palavras de treinamento, treinamento off-line para classificador de intenção de mensagem, bem como inferência on-line para mensagens em tempo real. Nossa Bighead Library, de origem aberta, tornou tudo isso possível.

A precisão geral da solução de Fase-1 e 2 é de cerca de 70% e supera a solução única de Fase-1 em uma magnitude de 50 a 100%. Também excede a precisão da previsão baseada na distribuição de rótulos em uma magnitude de ~ 400%.

Tabela 1: Comparação da precisão geral entre as Fases 1 e 2, Apenas Fase 1 e Predição por Distribuição de Rótulos. Pré-viagem: antes de começar uma viagem. Na viagem: durante uma viagem.

Avaliamos as precisões de classificação classe por classe, especialmente quando o conjunto de dados estava desequilibrado em diferentes classes. A Figura 5 é a matriz de confusão para o modelo em trânsito mencionado acima. Nós mascaramos o nome real da categoria com category_1 , category_2 , etc. devido à confidencialidade. Como se pode ver, um padrão diagonal claro pode ser encontrado, o que significa que a maioria das predições da classe corresponde à verdade básica.

Figura 5: A matriz de confusão normalizada para os resultados do modelo na viagem

A Tabela 2 mostra algumas categorias de exemplo que são bem previstas. Nessas categorias, as frases-chave são fortes indicadores de intenção de mensagem que o modelo da CNN captura muito bem.

Tabela 2: categorias de exemplo que são bem previstas

A Tabela 3 abaixo mostra algumas categorias de exemplo que não são bem previstas.

Tabela 3: Categorias de exemplo que não são tão bem previstas

Havia duas causas básicas para as classificações erradas:

1. Erros humanos na rotulagem. Por exemplo, alguns rotuladores pensam erroneamente que "Você tem recomendações sobre caminhadas ou passeios de barco?" É uma pergunta geral, mas esse tipo de pergunta é considerado uma questão específica em nossas categorias.

2. Etiquete ambigüidade. Por exemplo, “Você poderia recomendar algumas coisas para fazer na área? Estávamos olhando para ir a uma praia pública ou lago ”, pode ser rotulado como uma questão genérica, porque a primeira frase,“ Você poderia recomendar algumas coisas para fazer na área? ”, É uma pergunta geral. No entanto, a frase seguinte, na mesma mensagem: “Estávamos procurando ir a uma praia pública ou lago”, aparentemente tem uma intenção muito específica. A mensagem não se encaixa perfeitamente em qualquer rótulo (específico ou genérico) como um todo.

Productionization – Online Serving

Produzimos nossa estrutura usando o Bighead , uma ferramenta abrangente de infraestrutura de ML desenvolvida pela Equipe de Infraestrutura do ML no Airbnb. Os modelos são servidos através do Deep Thought, o componente de inferência on-line do Bighead. Haverá uma postagem em blog separada para apresentar o Bighead em mais detalhes – fique ligado!

Figura 6: O fluxo de trabalho offline de treinamento e exibição online da Fase II.

Aplicações

Aqui está um vislumbre de algumas das aplicações que estão acontecendo ou estão sendo planejadas para o futuro próximo.

  • Prevendo problemas de suporte ao cliente, aproveitando o histórico de intenção de mensagens
  • Orientar o processo de cancelamento / pagamento / reembolso identificando tais intenções antecipadamente
  • Melhorar a experiência de reserva identificando as preocupações do hóspede
  • Fornecendo resposta inteligente instantânea identificando as necessidades do convidado / host

Conclusão

Desenvolvemos uma estrutura para o entendimento da intenção da mensagem, que evoluiu da descoberta intencional para a classificação intencional, usando técnicas de aprendizado supervisionadas e não supervisionadas. O trabalho capacita uma variedade de aplicativos de produtos que facilitam uma experiência de comunicação contínua por meio da plataforma de mensagens do Airbnb. Abaixo estão alguns tópicos:

  • O aprendizado não supervisionado pode ser uma ferramenta poderosa para fornecer rótulos para uma solução de aprendizado supervisionada.
  • O pré-processamento de texto pode desempenhar um papel crítico ao treinar a incorporação de palavras usando um corpus de texto personalizado.
  • A qualidade das etiquetas é a chave para modelar o desempenho. Descobrir as formas corretas de reduzir o erro humano no processo de rotulagem pode ter um tremendo impacto na precisão do seu modelo se o gargalo for a precisão do rótulo no problema.

A seguir, planejamos melhorar ainda mais nossa solução de vários aspectos:

  • Melhore os resultados de aprendizado não supervisionados para a descoberta de intenção experimentando mais modelos de representação de idioma, como doc2vec, BERT
  • Melhore a eficiência da rotulagem através de ferramentas de rotulagem melhoradas com aprendizagem semi-supervisionada
  • Melhorar a qualidade da rotulagem com definições mais rigorosas e formação profissional
  • Explore as intenções dos anfitriões além daquelas dos convidados

À medida que aprofundamos nossa compreensão dos dados de texto do Airbnb, estamos constantemente identificando novas áreas onde podemos alavancar essa tecnologia para melhorar o produto Airbnb. Também planejamos oferecer suporte a outros idiomas para ajudar nossas comunidades em todo o mundo.

Reconhecimento

Este trabalho é em colaboração com John Park e Sam Shadwell . Gostaríamos também de agradecer a Joy Zhang , Peter Gannon , Patrick Srail , Junshuo Liao , Andrew Hoh, Darrick Brown , Atul Kale, Jeff Feng , Peggy Shao , Cindy Chen , Alfredo Luque , Roy Stanfield e Joshua Pekera por seu apoio. e feedback ao longo deste projeto! Também gostaríamos de agradecer a Xiaohan Zeng , Dai Li e Rebecca Rosenfelt pela gentil ajuda na revisão!