Aprender a classificar para o vôo Itinerário Pesquisar

Por Neal Lathia, Senior Data Scientist, Londres.

Aprender a classificar para o vôo Itinerário Pesquisar

A busca do vôo perfeito é uma das principais atividades para usuários do aplicativo Skyscanner . Da mesma forma, pensar em maneiras de ajudar nossos usuários a reservar a viagem ideal é um dos problemas que nos encontramos a discutir mais. Recentemente, no Workshop sobre Recomendadores em Turismo (parte do ACM RecSys 2017 ), tive a oportunidade de dar uma palestra na qual eu compartilhei alguns dos nossos recentes experimentos neste domínio – e, em particular, sobre como estamos aplicando a aprendizagem de máquinas dentro disso problema. Nesta publicação, vou expandir alguns dos pensamentos que eu compartilhei lá.

Um problema de pesquisa complexa

Muitos de nós já experimentamos a dor de procurar um vôo ideal – há tantos fatores diferentes que entram em jogo. Isso é muito caro? Podemos chegar ao aeroporto por esse tempo? Devemos parar em algum lugar para economizar algum dinheiro, ou pagar um pouco mais para um vôo direto? Devemos sair um dia antes e voltar um dia depois? Dependendo de onde você está voando e tentando voar, as possibilidades podem parecer infinitas.

Em uma publicação recente, Zsombor descreveu como a página de resultados de pesquisa de vôo do aplicativo do Skyscanner evoluiu ao longo do tempo – agora está se afastando de ser uma lista infinita de vôos classificados por preço e para ser um conjunto de ferramentas (ou widgets ) que ajudam os usuários a navegar a complexidade dessa escolha. Embora existam muitas idéias e melhorias que podemos imaginar, que irão surgir informações e controle, uma das perguntas que pedimos foi: podemos ajudar os usuários a abordar imediatamente os "melhores" vôos?

Aprendendo a classificar

Na literatura de pesquisa, classificar "itens" (neste caso, itinerários de vôo) usando alguma noção de "melhor" ou "relevante" é conhecido como aprender a classificar . A aplicação de várias formas de aprendizado de máquina neste espaço problemático tem sido amplamente estudada e é cada vez mais comum em vários produtos (por exemplo, Pesquisa em Slack , Pesquisa de local em Foursquare e Ranking Twitter's Feed ).

A premissa básica é que se tivéssemos dados sobre itens que os usuários considerem relevantes para sua consulta – exemplos positivos – e itens que os usuários pensam que não eram relevantes para sua consulta – exemplos negativos – então podemos usá-los para treinar um modelo de aprendizado de máquina que pode prever a probabilidade de um usuário encontrar um vôo relevante para sua consulta . Ao fazê-lo, traduzimos o problema de classificar os itens em uma regressão binária (nota: existem outros métodos, como a abordagem parwise para classificação que não cobrei aqui).

Definir a relevância em qualquer contexto é complicado. Muitos sistemas dependem de medir isso de forma implícita, observando em que itens os usuários estão clicando . No aplicativo do Skyscanner, no entanto, clicar em um resultado de pesquisa não é um sinal muito forte de que os usuários encontraram o que eles estão procurando – você pode simplesmente clicar no itinerário para descobrir um pouco mais. Um sinal muito mais forte de relevância é o compromisso de clicar no site da companhia aérea / agente de viagens para comprá-lo, o que requer ações múltiplas do usuário.

Relevância na busca de voos: um resultado de pesquisa é relevante se você o comprou.

Houve alguns estágios na jornada da idéia de classificar os resultados da pesquisa de vôo com a aprendizagem de máquinas para experiências. Nós lidamos com estes dois fluxos de trabalho – experiências off-line e on-line.

Poderia funcionar? Experiências off-line

Primeiro refinamos como coletamos dados sobre a experiência de pesquisa de cada usuário; esses dados foram então alimentados através de um pipeline que cuidou de juntar, transformar e remodelá-lo em um conjunto de recursos e uma pontuação de relevância binária .

Ter esse tipo de dados históricos nos permite perguntar o tipo de perguntas. E se nós tivéssemos ordenado os vôos de uma maneira diferente – o vôo que você escolheu aparece mais perto do topo da lista de resultados da pesquisa?

Formalmente, isso significa realizar uma série de avaliações off-line. Nós desenvolvemos um conjunto de ferramentas para apoiar este trabalho – bem como ferramentas similares de código aberto , este kit de ferramentas cuidou dos conceitos básicos de realização de um experimento de aprendizado de máquina: dividir os dados em treinamento / teste e coletar uma variedade de métricas (por exemplo, média de precisão média e classificação média reciproca ) durante cada teste. Nós desenvolvemos nossa própria ferramenta para que possamos comparar como qualquer abordagem de aprendizado de máquina se compara a uma linha de base simples: classificação de preços.

Não surpreendentemente, muitos de nossos experimentos iniciais não pagaram. Nossa linha de base estava provando ser incrivelmente difícil de vencer – talvez dado que todos os nossos dados eram originários de usuários que visualizavam os resultados de pesquisa classificados dessa maneira. Continuamos a iterar até encontrar um conjunto de características que parecessem estar melhorando do que a classificação de preços, usando um modelo incrivelmente simples para começar: regressão logística .

será que vai dar certo? Uma experiência on-line

Um desafio aberto com experiências de aprendizado de máquina off-line é entender como métricas off-line se correlacionam com o desempenho online . Em outras palavras, apenas porque um algoritmo parece fazer melhor do que a linha de base em dados históricos , isso não significa que ele fará melhor para os usuários. Para validar isso, nos voltamos para uma experiência online.

Para fazer isso, nós construímos todas as partes restantes que precisávamos para executar uma experiência de produção. No Skyscanner, isso significa construir componentes que interagem com nossa plataforma de dados e um micro serviço para atender previsões.

Uma maneira de avaliar essa abordagem em um teste A / B seria substituir completamente a lista ordenada por preços com uma nova, uma classificação por relevância. Embora esta abordagem seja explorada ativamente, a UI que inicialmente testamos foi um widget que recomendava voos acima da lista ordenada por preços.

No final, realizamos um experimento comparando usuários que receberam recomendações usando aprendizado em máquina , usuários que receberam recomendações usando um heurística que só teve em conta o preço e a duração, e os usuários que não receberam nenhuma recomendação.

Experiência on-line: recomendando vôos acima da lista tradicional, classificada por preço.

Nossos primeiros resultados: Esforço de pesquisa e conversão

Como acima, não avaliamos isto ao ver cliques – não estávamos interessados ??em usuários clicarem em um widget. Em vez disso, nós primeiro quantificamos o esforço de pesquisa , observando com que frequência os usuários classificariam / recorreu / pesquisar um itinerário em uma única sessão, tanto quando receberam recomendações de vôo quanto quando não o fizeram. Nesse caso, não encontramos diferenças significativas.

Mais amplamente, no entanto, estávamos interessados ??em medir a conversão – com que frequência os usuários comprariam um vôo recomendado pelo widget versus a compra de um vôo que caiu abaixo dele, na lista de resultados "tradicional". Encontramos evidências de grande promessa – muito para nossa surpresa, este modelo de primeiro ranking levou mais compras para o widget do que a variante baseada em regras.

Um vislumbre no trabalho futuro

Esse experimento é um dos muitos; Um monte de processo foi sobre estabelecer as bases para que possamos explorar as milhares de hipóteses que usam a aprendizagem por máquina para ofertas de ranking de vôos, tanto off-line quanto on-line.

Há muito mais para entrar neste espaço no Skyscanner : experimentos que se concentram na UI, que atravessam plataformas, que testam novos modelos de aprendizagem de máquinas e nos vários widgets que podem ser construídos usando essa abordagem.

Aprenda conosco

Inscreva-se no nosso boletim informativo Skyscanner Engineering para mais estudos de caso, notícias e vagas de emprego ou veja os nossos atuais cargos de trabalho disponíveis em nossos 10 escritórios globais.

Estamos a contratar!

Sobre o autor

Oi, eu sou Neal. Atualmente, sou cientista sênior de dados no escritório da Skyscanner em Londres. Eu trabalhei com um esquadrão que se baseia principalmente no nosso escritório de Budapeste para as experiências descritas acima – então a história real por trás da construção dessas características para os viajantes também incluiu viajar algumas vezes (para uma cidade bonita que eu não tinha sido antes). Você pode me encontrar no Medium e no Twitter , ou descobrir minha antiga vida acadêmica no meu site .

Quer saber mais sobre o que é trabalhar no Skyscanner ou mais sobre o que faço aqui? Envie-me um email para neal (ponto) lathia (at) skyscanner (dot) net.

Neal Lathia – Médio
Leia a escrita de Neal Lathia no Medium. Data Science, etc. Todos os dias, Neal Lathia e milhares de outras vozes lidas … medium.com

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *