Como ajudar a encontrar uma organização e não passar uma semana nela



Quando as pessoas inserem o nome de uma oficina, clínica ou loja de automóveis na pesquisa Yandex, desejam encontrar informações sobre elas. Por exemplo, um horário de trabalho ou um número de telefone. Depende da precisão e relevância desses dados se uma pessoa resolverá seu problema rapidamente ou perderá tempo e nervos.

Meu nome é Alexander e represento a equipe de Geopoisk e Yandex.Directory, cujos dados são usados ​​por mais de 46 milhões de pessoas por mês. Hoje, falarei brevemente sobre como conseguimos reduzir o tempo necessário para atualizar os dados na pesquisa Yandex de alguns dias para várias horas, às vezes para minutos. Você também descobrirá quem é Ricardo Milos e que problemas ele nos causou.



Diretório é um banco de dados de organizações. Qualquer empresa ou pessoa pode adicionar informações: indique o endereço, horário de funcionamento, telefone e tudo mais - e o Yandex transmitirá isso aos usuários. Os dados do diretório são usados ​​em Pesquisa, Alice, Mapas, Táxis, Navegador e até mesmo em nosso identificador de chamadas, sobre o qual já falamos em Habré.

E tudo ficaria bem, mas os dados estão ficando desatualizados: as organizações estão fechando, mudando, mudando números e tudo mais. Nós mesmos podemos rastrear alterações e fazer edições, mas hoje falaremos sobre as edições que os usuários ou empresas nos enviam. Para fazer isso, temos formulários e outros mecanismos de feedback. Então, recebemos vários milhares de edições por dia. Mas não podemos simplesmente pegá-los e publicá-los.

Os erros são encontrados nas correções - devido a descuido ou intenção maliciosa. Estes últimos são especialmente numerosos. Alguns distorcem os dados dos concorrentes e "fecham" a organização. Outros vândalos comuns acrescentam mat e outros absurdos aos nomes e descrições da empresa.



Portanto, se você publicar edições como estão, os usuários sofrerão. Portanto, verificamos tudo. Os operadores de call center ligam para a organização e esclarecem as alterações. Os estivadores chegam às empresas e verificam os dados ao vivo. Mas esses métodos não são rápidos o suficiente e o fluxo de edições é grande. Portanto, também criamos um robô.

Usamos o classificador automático de edições - moderador automático. Esta é a máquina baseada em nossa tecnologia CatBoost.. Ela é treinada em exemplos de edições boas e ruins. Felizmente, temos muitos desses dados.

Quando uma edição chega, o moderador automático leva em consideração dezenas de fatores (por exemplo, o histórico de edições anteriores do usuário) e decide se a aprova, a rejeita ou a envia a uma pessoa para revisão. O moderador do carro pode verificar o banco de dados do Diretório e garantir que eles não estejam tentando criar uma duplicata, ou consultar o site da organização em busca de novas informações, ou mesmo ligar para a organização, apresentar-se como Snezhana e esclarecer as alterações.

Um exemplo. Em 2018, uma onda de “renomear” escolas, monumentos e outras organizações começou no mapeamento de serviços e livros de referência: nos mapas que receberam o nome de Ricardo Milos (há um artigo sobre TJsobre esse flash mob). Então, contra a nossa vontade, nos encontramos com um meme popular da época sobre uma stripper brasileira (não que quiséssemos, mas quem nos perguntou). E foi a combinação do moderador automático e outros mecanismos de verificação que nos ajudaram a defender os nomes verdadeiros.

Portanto, o classificador automático reduziu o tempo necessário para atualizar os dados. Mas não paramos por aí. Mesmo levando em conta a ajuda do moderador automático, as edições podem alcançar os usuários do serviço por vários dias. Faz muito tempo. Para reduzir esse tempo, foi necessário resolver dois problemas tecnológicos.

Anteriormente, o Auto Moderator parecia um processo em lote, era executado dentro do cronograma e exigia grandes recursos para a computação local (trabalhando com tabelas para dezenas de milhões de registros). Nós mudamos isso.

Agora, este é um serviço no qual a edição e as informações sobre o remetente são recebidas em tempo real. Em seguida, o moderador do carro calcula os fatores e apresenta um veredicto. Antes do veredicto dos pedidos, poderíamos esperar horas. Agora, minutos.

Mas isso não significa que as alterações chegarão ao usuário em minutos. E aqui a segunda tarefa nos esperava.

A mudança cai na base do Diretório, mas leva tempo para surgir no serviço. Por exemplo, a Pesquisa deve atualizar o índice de pesquisa para refletir as alterações do Diretório. Para contornar isso, desenvolvemos um esboço para armazenar os estados dos objetos. Simplificando, agora você pode substituir o número de telefone na resposta do objeto da Pesquisa sem reconstruir o índice de pesquisa. Agora, ao criar resultados de pesquisa, a Pesquisa sabe quais objetos estão desatualizados e pode obter informações mais recentes. Obviamente, ainda existem situações em que uma alteração nos dados afeta a classificação da organização, mas não há como reconstruir o índice.



Portanto, após melhorias e implementações, conseguimos reduzir o tempo médio de atualização de dados sobre organizações nos serviços Yandex de alguns dias para horas e, às vezes, para minutos. Eu quero acreditar que você percebeu isso.

Hoje, coloquei uma longa história de trabalho em um pequeno post de revisão. Conte-nos sobre quais lados ou decisões você gostaria de ler com mais detalhes no futuro. Teremos o maior prazer em receber comentários e apelos, continuaremos a trabalhar no Diretório e informaremos os leitores da Habr sobre suas novidades.

All Articles