[Locomizer de caso] Que conhecimento pode realmente ser extraído de um conjunto de dados anônimo com coordenadas do usuário

Este artigo faz parte da série Case Locomizer, consulte também

Olá.

KDPV: o mapa de calor construído pelos algoritmos do Locomizer para KFC

Recentemente, o New York Times publicou um artigo sensacional sobre como rastrear usuários por conjuntos de dados anônimos disponíveis comercialmente com as coordenadas de seus movimentos, e aqui, em Habré, sua tradução gratuita com acréscimos de um redator corporativo desconhecido coletou um grande número de comentários de diferentes graus de preocupação.

Aconteceu que, nos últimos dois anos e meio, fui líder técnico em um projeto de geoinformação que se dedica à tarefa de extrair diretamente o conhecimento desses precisos conjuntos de dados comerciais. Mas meus comentários com o pedido para deixar de lado o pânico reuniram um grande número de contras. Bem então. No ditado sobre a ausência de paranóia e não o fato de você não estar sendo seguido, há uma certa quantidade de verdade.

Mas há alguma verdade do outro lado do espelho preto, talvez muito mais. Ou interessante.

Então, deixe-me contar em detalhes como nós o seguimos (e se seguimos no sentido de espionagem) você (e se você pessoalmente) e que tipo de conhecimento sobre o usuário pode ser obtido sem possuir exatamente qualquer contexto além das coordenadas de seus movimentos coletados dos terminais de assinantes móveis . Sem excesso de jornalismo e gula , do ponto de vista de um especialista técnico com alguma experiência real na solução de tarefas fictícias para clientes fictícios, incluindo não apenas várias agências de publicidade, Coca-Cola e Guinness, mas também, por exemplo, a ONU. E com um brilho .

Além disso! No final desta série de artigos, quero compartilhar as ferramentas que desenvolvemos há dois anos e meio para que você possa pesquisar sozinho se comprar (ou obter) um conjunto de dados adequado. Até agora, até onde eu sei, ninguém disponibilizou essas ferramentas publicamente. Pelo menos, quando pesquisamos há dois anos, nada foi encontrado e tivemos que escrever a nós mesmos. O caminho para cálculos rápidos foi difícil e longo, a segunda parte será sobre isso.

Então Índice desta anamnese:

  • Anatomia de um conjunto de dados anônimo
  • Problemas de precisão das coordenadas na faixa do meio
  • Heurísticas para limpeza de dados de ruídos e detritos
  • Que tipo de "conhecimento" é esse?
  • Pontos de interesse
  • Problemas de extração de conhecimento
  • Pontuação do interesse do usuário

Bônus:

  • Obrigado e uma breve FAQ

Anatomia de um conjunto de dados anônimo


Leve o fornecedor comercial Tamoco e veja quais arquivos são enviados . Por exemplo, aqui está uma parte de um conjunto de dados real do país do Reino Unido da Grã-Bretanha e Irlanda do Norte, data em 4 de dezembro de 2019:

sdk_ts,device_id,latitude,longitude,accuracy,country,device_type,device_make,device_model,device_language,device_os,device_os_version,device_hw_version,device_screen_width,device_screen_height,device_battery,altitude,inv_id,trigger_type,app_account_id 1575390011,d75f97488c430502046fdb4ebfcc0ffd,51.516766,-0.1279744,10,GB,,,SM-G950W,en-CA,,,,0,0,0,0,4260328,GEO_FENCE_ENTER,115 1575414847,d75f97488c430502046fdb4ebfcc0ffd,51.516766,-0.1279821,10,GB,,,SM-G950W,en-CA,,,,0,0,0,0,4260328,GEO_FENCE_ENTER,115 1575424373,7e3323b382ddaafb9f774af95631cc44,51.51379,-0.0999953,7.6,GB,,,SM-G925F,en-GB,,,,0,0,0,0,31572218,GEO_FENCE_ENTER,115 1575417663,90165d78553fb37b0d62500733b39d11,53.724384,-6.879851,11,IE,aaid,,SM-A605FN,,android,9,,0,0,0,138,0,UNKNOWN_TRIGGER,229 1575417977,b6f2375275a21c40e03e4c6ea9ea4da0,52.75558,-7.9915,5,IE,idfa,,iPhone7.1,,ios,12.4.3,,0,0,0,122,0,UNKNOWN_TRIGGER,229 

Aqui está o que vemos nos campos deste conjunto de dados:

  • sdk_ts - registro de data e hora na época Unix ,
  • device_id - ID do dispositivo anonimizado (terminal de assinante móvel, como um smartphone ou tablet),
  • latitude / longitude - coordenadas geográficas ,
  • precisão - precisão de coordenadas horizontais, metros,
  • país - país
  • os campos restantes são lixo que não carrega nenhuma carga semântica especial.

Por que o lixo é imediatamente?

Infelizmente, um campo de altitude aparentemente útil não faz sentido, porque a altitude é mal traduzida na construção de números de andares e o vôo de avião pode ser eliminado sem ele (mas falaremos sobre isso mais adiante).

Diferentemente dos jornalistas dos artigos indicados no início, não temos um contexto adicional sobre os usuários e não fazemos suposições infundadas "por padrão", como "estava no Pentágono - ou seja, funciona no Pentágono". Também não somos um tipo de facebook que sabe tudo sobre você que você contou sobre si mesmo (e o usuário médio fala muito sobre você), além de todo o seu gráfico social. Compramos dados brutos e não acreditamos neles.

Portanto, a partir do contexto, existe apenas um código de idioma do usuário - ele pode ajudar a identificar turistas estrangeiros, mas isso não é exato.

Bem, além de coordenadas e tempo, há também um modelo de telefone - teoricamente, ele abre a possibilidade de processar individualmente os proprietários de vários dispositivos no iOS e no Andriod. Nos comentários sobre o artigo desse blog corporativo, alguns sugeriram fazer uma parada com telefones celulares caros, rastreando-os por geolocalização ... Hmm, você sabe, mas esse modelo de negócios para escritórios normais que podem comprar dados não será rentável. :)
É importante entender que os dados do fornecedor são brutos, ou seja, retirados dos dispositivos e não processados ​​de maneira alguma, exceto, talvez, substituindo o device_id real por um hash de acordo com os requisitos do GDPR (é estável, o mesmo dispositivo será apresentado entre diferentes despejos mensais igualmente).

Cada provedor tem seu próprio conjunto e formato de campos, mas todos têm coordenadas, precisão, hora e device_id, e tomei o Tamoco como exemplo como o mais comum. E o que você pode assumir sobre um usuário que olha uma linha de dados brutos, se não lida com insinuações e adivinhações com base em café?

A menos que o fato de ele, talvez, na hora indicada, estivesse em algum lugar próximo das coordenadas indicadas. Mais precisamente, isso foi decidido por alguma biblioteca do SDK de alguém que coleta geolocalização no aplicativo em seu terminal de assinante e carregou esses dados no agregador. Parece-lhe que ele estava lá, mas a decisão final, acreditando nela ou não, é tomada por nós, e é fortemente após o fato.

Problemas de precisão das coordenadas na faixa do meio


GPS é uma coisa incrível. Recentemente, houve um excelente artigo sobre suas capacidades, não deixe de ler, se não já.

São apenas todos os exemplos interessantes que descrevem casos ideais que, infelizmente, não se aplicam a conjuntos de dados comerciais.

Em primeiro lugar, os terminais de assinantes móveis de conjuntos de dados comerciais não são receptores GPS profissionais, projetados para servir a um propósito, e são fabricados com uma base de elementos muito mais adequada, com bons amplificadores e grandes antenas. Um smartphone é um smartphone - ou seja, os componentes mais baratos embalados em um estojo pequeno com antenas pequenas que funcionam graças a truques tecnológicos de várias faixas ao mesmo tempo, dos quais o GPS está longe do principal.

Em segundo lugar, o ambiente urbano é um terreno muito, muito acidentado. Pense por si mesmo - se você jogar fora o subúrbio de um andar americano, qualquer rua moderna da cidade é uma ravina profunda com paredes muito íngremes, não apenas porque o horizonte não é visível, mas um pedaço do céu acima da sua cabeça é visível muito pequeno. E para precisão normal, você precisa ter 4 satélites em linha direta de visão ao mesmo tempo, melhor ainda. Por uma questão de interesse, de alguma forma saia para o pátio do seu prédio e veja quantos satélites seu smart vê. (Muito provavelmente, você precisará de um android com raiz e / ou algum tipo de rastreador GPS pago.)

Em terceiro lugar, o usuário médio está em constante movimento, ele não espera no local por alguns minutos, até que o terminal móvel do assinante capte o número necessário de satélites, ele vai ou vai, vira e a visibilidade muda constantemente.

Quarto, o usuário nem sempre segura o telefone nas mãos. Em um bolso, bolsa ou mochila, ele pode ficar deitado de lado ou de qualquer maneira, e não vai pegar nada.

Em quinto lugar, qualquer edifício feito de concreto armado pode ser uma gaiola clássica de Faraday ou um arranjo faseado , ou um espelho com propriedades não lineares interessantes, que podem amplificar o sinal e suprimi-lo devido a interferências a alguma distância. Ou reflita em um ângulo imprevisível, mudança de fase e assim por diante. Tudo depende do tom do metal nas paredes de concreto.

Sexto, os carros ao redor também são feitos de metal.

Sétimo, dentro do edifício, o GPS geralmente não pega, e mais ainda no metrô.

A trilha crua de um usuário desconhecido andando por Londres

Todos esses fatores tornam o GPS na cidade extremamente não confiável, e os fabricantes de terminais de assinantes móveis (assim como os provedores de serviços de localização para sistemas operacionais móveis) precisam sair com várias tecnologias de GPS assistido .

Os mais comuns são a triangulação em estações base celulares e redes WiFi (e até Bluetooth).

Todos esses carros ridículos do Google e Yandex com câmeras que fotografam panoramas para o street view, na verdade, coletam principalmente informações sobre CellID, nomes de rede e níveis de sinal de roteadores e as fotos - portanto, uma indulgência passageira. Além deles, o HERE Maps coleta essas informações em massa - e nos países desenvolvidos, Apple e mais uma dúzia de escritórios menores. Bem, aquelas bibliotecas conectadas a aplicativos móveis e fornecem dados de geolocalização constantemente fazem exatamente a mesma coisa, por exemplo, como quase qualquer widget que mostra um mapa.

A questão principal aqui é exatamente.

Ao contrário do GPS, o LBS é ruim com isso. 20 metros para LTE no caso mais ideal (em geral - até alguns quilômetros), e quanto ao Wi-Fi, aqui os padrões direcionais de roteadores, redes de malha estendidas com repetidores e as características físicas do sinal de frequência de 2,4 e 5 GHz reduzem a confiabilidade ao ar livre até 150 metros ou mais.

E esse é o constante salto do usuário para o outro lado da rua ou do cruzamento, ou até meio quarto do local onde ele realmente está - se, por exemplo, o roteador estiver no 5º andar e ao redor do desfiladeiro de arranha-céus, não haverá sinal ser pego na entrada, mas vai pegar perfeitamente no final deste desfiladeiro.

Finalmente, muitos fornecedores pecam com outra característica ruim. Se não for possível determinar a posição com precisão aceitável, o usuário será teleportado para o centro de uma certa cerca geográfica - ou seja, para o centro do polígono correspondente a um determinado código postal ou região administrativa, identificado por sinais indiretos, e o mapa estará cheio desses "pontos quentes" com milhares de sinais.

Veja abaixo o spoiler para uma explicação.
Moscou, Kremlin, um pequeno conjunto de dados de novembro de 2019
No ponto com coordenadas (55.75270; 37.61720) marcado na ilustração com um marcador , há imediatamente 208776 sinais. Estes são pontos que não foram determinados com a devida precisão e se enquadram no “centro” da cerca geográfica correspondente da Praça do Senado; é também o “centro” do Kremlin.

Além dela, também as seguintes coordenadas são muito "quentes":

 (55.75222; 37.61556) 193 (55.75111; 37.61537) 53 (55.74988; 37.61701) 45 (55.74988; 37.61700) 36 

E em todos os outros pontos desta imagem - exatamente um sinal.

Pior ainda, esses “centros distritais” em cada substrato cartográfico são diferentes e, se a Apple e o Google tentarem removê-los de prédios residenciais (nos Estados Unidos, houve maus precedentes com ações judiciais), ninguém se incomodará em mudar o ponto do prédio não residencial.

Determinar a posição dentro de um grande shopping center com uma área de milhares de metros quadrados é uma dor à parte. O GPS não captura, a rede de celular de todo o centro geralmente é a mesma e, para entender quais das centenas de lojas o usuário visitou, você também precisa descobrir de alguma forma o local. Boa sorte com isso.

Na verdade, mesmo se houver um campo de altitude, nem sempre é claro por qual geóide é calculado (não necessariamente WGS84 ), e a FIG sabe a que altura os pisos do edifício devem ser calculados por nós mesmos. E quantos existem? Nos países asiáticos, devido a superstições, por exemplo, existem não apenas 13, mas também 4 andares. Essa informação é muito difícil de encontrar e, com o processamento em massa, o trabalho nunca será recompensado.

Portanto, não importa o quanto não gostaríamos, precisamos usar conjuntos de dados brutos sofisticados

Heurísticas para limpeza de dados de ruídos e detritos


Mas primeiro vou lhe dizer quem é nosso paciente.

Nosso paciente é anônimo e seu nome é milhares, ou melhor, milhões, porque nossos clientes pagam pelas estatísticas coletadas em massa. Uma pessoa específica não faz tempo para a Coca-Cola, mesmo que compre um caminhão de refrigerante de uma só vez. Os comerciantes precisam de padrões e tendências comuns, bem como uma imagem de como eles são definidos ao longo do tempo. É importante que os proprietários das redes de bares de Londres saibam que tempo e hora do dia eles receberão um fluxo de visitantes em bares localizados na esquina perto da estação de metrô e em que - próximo às salas de cinema, eles estarão completamente bêbados se essas amostras vierem de milhares de pessoas anônimas. um certo Vassily Poupkine de Ryazan, ou não.
O principal é que existem muitos e são relevantes. Trabalhamos com populações .

Portanto, por exemplo, usuários que viajam de carro e usuários a pé são usuários de valores diferentes. Para os primeiros, quanto mais estreito o círculo de visão, maior a velocidade do movimento, e eles não prestarão atenção ao pôster. Mas se eles estão em um engarrafamento ou em um longo semáforo, então por que não? Como os usuários que viajam no ônibus, que estão olhando ao redor, esta é a principal ocupação (se não forem estúpidos em sua rede social favorita no momento).

Também é importante separar os usuários que trabalham na cerca geográfica de destino - o vendedor da loja deve ser separado dos visitantes da loja que estamos procurando. Mais precisamente, toda a população de vendedores de todas as lojas da rede de varejo de toda a população de compradores.

E tudo isso significa que precisamos ter faixas de qualidade das seguintes maneiras:

• sem baixa precisão de coordenadas,

• sem geolocalização de falhas:
- teletransporta meio quarto para o lado e para trás,
- pula pela estrada,
- fora dos pontos quentes

• classificado por tipo de deslocamento:
- a pé
- de carro
- no ônibus
- de bicicleta ou scooter,
- em Shinkansen ou no avião ...

• sem usuários inapropriadamente extraviados na cerca geográfica,

• sem faixas fragmentadas, cortando incessantemente círculos sobre uma pequena área (de onde eles vêm, não é totalmente claro, mas são suficientes para separá-los em uma classe de problemas separada - provavelmente, esses são todos os tipos de bloqueios com alarmes GSM ou babás eletrônicas - eles também coletam geolocalização )

E se a primeira condição for trivial - itere sobre o conjunto de dados e elimine todos os pontos para os quais o campo de precisão é <10 metros, o resto são apenas alguns problemas.

Você mesmo pode adivinhar quais. Por exemplo, como distinguir um pedestre que espera no ponto de ônibus de um motorista parado em um engarrafamento adjacente?

Temos que fazer algumas suposições e construir modelos matemáticos para cada um desses filtros, cheios de várias suposições. Às vezes, as premissas são bastante fortes em termos de queda de uma parte significativa da população.

Por exemplo, um vendedor de outlet em um shopping center, trabalhando em turnos dois dias a cada dois dias. Se nos dias de semana é definitivamente inadequado, então nos fins de semana pode ser direcionado para uma sala de cinema no mesmo shopping. Mas a piada é que o horário padrão de segunda a sexta-feira e dois dias de folga não é aplicável a ele, e o classificador deve, de alguma forma, dar certo ou jogá-lo completamente fora da equação.

De qualquer forma, um filtro com várias configurações usando uma abordagem heurística é criado para cada um dos modelos.

Coletamos grandes estatísticas, localizamos nela padrões indesejados, formulamos uma tarefa, depuramos interativamente, escrevemos um processamento separado e depois a integramos ao processamento do conjunto de dados - se tivermos certeza de que isso exige essa preparação.

Existem vários algoritmos prontos. Por exemplo, para determinar pontos quentes, você pode usar o filtro clássico pela frequência do sinal na grade.

Mas o classificador de acordo com os tipos de movimento, trabalhando no princípio de uma janela deslizante e uma máquina de estado (passamos quase seis meses em tentativa e erro para seu desenvolvimento), é tão sofisticado que já é incorreto chamá-lo de “filtro”.

Além disso, alguns fornecedores escrevem um número irresponsável de pontos por trilha - eles se aproximam dos pontos intermediários nos intervalos entre as medições ou simplesmente tentam removê-los a cada par de metros, mas muitos milhares de sinais são recebidos ao caminhar por quilômetro. Isso é obviamente demais e, para não nos afogarmos em volume, somos forçados a afinar trilhas usando outra heurística complicada com janelas deslizantes e matemática complicada para calcular a distância de todos os pontos das trilhas até seus centróides .
Portanto, chamamos o processo de sobreposição de uma cadeia de heurísticas no conjunto de dados original, enriquecendo os dados brutos . E extraímos conhecimento já de dados previamente enriquecidos.

E aqui está um problema com qualquer heurística: a ordem de aplicação afeta muito o resultado. Portanto, o processo de processamento é sempre único, e não muito bem repetido, mesmo com dados do mesmo fornecedor na mesma região, mas após seis meses.

E mais uma coisa: você não pode misturar dados brutos de diferentes fornecedores em um projeto, mesmo que os leve a um denominador comum. Mas se cada conjunto de dados brutos for processado independentemente por um algoritmo adequado, os sinais enriquecidos (sem ruído) já poderão ser mesclados em uma única fonte. Não encontramos usuários duplicados nos dados de diferentes fornecedores.

De qualquer forma, algum conhecimento do conjunto de dados enriquecido sempre pode ser extraído se você tentar.

Que tipo de "conhecimento" é esse?


Ótima pergunta.

- Precisamos encontrar todos os usuários de Ust-Perduysk que gostam de roubar milho fresco do campo coletivo no final de agosto.
- Com licença?
"Bem, esse é o campo de milho." Agosto do ano passado.
- Estamos prestes a "roubar" ...
- Determine de alguma forma, você é especialista!
Ok. Mais alguma coisa?
- Eles deveriam fumar Pall Mall.
- (para mim mesmo) Por que o Pall Mall ... no entanto, não se importa, não estamos interessados. Se eles aparecerem, descobriremos: D (em voz alta, com firmeza) Somente se você der as informações de onde elas as compram.

Você ouviu um diálogo com um cliente esférico no vácuo, mesmo que isso não seja real em termos de entidades "morar em Ust-Perduysk", "campo de milho", "roubar" e uma marca específica de cigarros, mas é completamente autêntico em essência. As tarefas são definidas desta maneira - você precisa encontrar uma determinada população, descrita em termos de cerca geográfica e comportamento do usuário, como um local de residência, visitando determinadas categorias de locais em um determinado momento, etc. O alcance de tais tarefas é muito amplo e o conjunto de parâmetros pode ser bastante exótico.

Porém, se houver algum tipo de modelo matemático , aplicando métodos estatísticos a um grande conjunto de dados enriquecidos (isto é, de alta qualidade, sem anomalias), é bem possível derivar uma população adequada. As estimativas serão todas probabilísticas. Não podemos afirmar inequivocamente que um usuário vive em Ust-Perduysk e rouba milho todo mês de agosto, mas se houver pelo menos mil deles, encontraremos eles com 90% de probabilidade. Talvez também possamos fumar, mas em relação à marca de cigarros, é provável que seja necessário um contexto adicional e, se o cliente fornecer, encontraremos os corretos entre eles - mas não podemos garantir a precisão.

Mas essas tarefas com contexto são realmente raras, e geralmente fazemos pesquisas com base em algum conjunto padrão de matmodels testados e depurados que analisam a população em geral em segmentos como:

  • vivendo em geocerca / trabalhando em geocerca,
  • distribuição por nível de renda familiar,
  • motoristas
  • amantes para visitar restaurantes e cafés,
  • viciados em compras
  • fãs de esportes
  • mães com crianças pequenas,
  • viagem de negócios
  • turistas estrangeiros ...

Para cada categoria (um total de alguns milhares), o processo de processamento é construído de acordo com o modelo a partir de operações predefinidas com várias configurações e é parametrizado dependendo dos requisitos específicos do cliente.

As operações são desenvolvidas da seguinte forma: o cientista de dados escreve o modelo na forma de white paper, depois é programado e depurado nos conjuntos de dados padrão do Python e, no final, o processamento será feito no Spark (escrevemos em Java, mas também em Scala), o que eu otimizo.(Sim, algo como no famoso meme sobre desenhar uma coruja, no entanto, será mais detalhado na segunda parte da minha história.)

Modelos para projetos específicos de clientes específicos são coletados por uma pessoa especialmente treinada - analista de dados. Se você quiser fazer uma pergunta, escreva keskiy nos comentários e Gena responderá. A propósito, ele está preparando a apresentação visual final na forma de um mapa de calor ou de uma grande e bela tabela do Excel, porque os clientes, em regra, não entendem muitos megabytes de calçados a partir de números.

Quando o modelo é concluído, o conjunto de dados é carregado no S3 no Amazon Web Services e, usando magia (que descreverei em detalhes no terceiro artigo desta série), ele é processado no serviço EMR.

O que é importante - nunca assumimos a tarefa de identificar ou encontrar uma pessoa específica, porque nenhum de nossos modelos de trabalho funciona em pequenas amostras. A natureza estatística de todas as nossas heurísticas nos impede de trabalhar com um contexto pontual; além disso, descartamos deliberadamente usuários que ultrapassam o percentil 95, porque uma correspondência boa demais é um sinal alarmante de uma marcação.

No mapa de calor, esses usuários fornecem um hot spot especial. Vou dar um exemplo que pode parecer anedótico, mas é absolutamente real.

Eu, uma vez, inadvertidamente, aqueci um polígono em um mapa de calor.
: . , , WB, Warner Bros., . , . .

- , , — , device_id, — , . . , .

-, .

Heurística - que piada, pode ser enganada. O resultado será anedótico. "Os usuários que estão ativamente interessados ​​em lingerie em lojas online estão agrupados aqui." Bem, bem.

Mas este é um caso degenerado. E os casos padrão são calculados com base no POI.

Pontos de interesse


Privado dor tarefa Shai, que contratou separadamente pessoas especialmente treinadas - manter o banco de dados de estabelecimentos categorizados e atrações, hotéis e monumentos, cafés de internet e bordéis ... e os outros possíveis pontos de atração de populações humanas.

Como eu disse, temos milhares de categorias, que podem incluir um ou outro lugar interessante para visitar. Mais precisamente, uma árvore de categorias. Pegue os "77 cafés e restaurantes":

 • 77-1  • 77-8  o 77-8-6      77-8-6-90 McDonalds • 77-8-6-90-1 MacAuto  77-8-6-91 Burger King  77-8-6-92 Pasta Hut 

- e assim por diante.

Em cada estabelecimento desses "estabelecimentos", pode haver de um a muitos milhares, e para cada um você precisa manter e atualizar um diretório com coordenadas e um conjunto completo de categorias adequadas. Um shopping center de três andares com centenas de lojas, uma praça de alimentação e um cinema é um lugar onde muitos POIs estão concentrados ao mesmo tempo com muitas categorias duplicadas, mas um endereço, e levando em conta o fato de que os pontos abrem e fecham, a tarefa pouco automatizada de manter essa base repousa sobre os ombros do pesquisador.

E levando em consideração o fato de que a população pode ser ordenada imediatamente no nível da prefeitura, ou mesmo no país, o tamanho da base do POI para um projeto pode ser estimado em milhões de pontos e dezenas de categorias. Mas primeiro você precisa levá-lo. E é bom se o país for desenvolvido ou com uma comunidade ativa de cartógrafos OSM. Nem sempre, então às vezes você tem que correr.

E se alguém solicita um cálculo em um conjunto de dados históricos, é necessário encontrar a referência do PI, relevante alguns anos atrás, e essa não é a tarefa que eu particularmente quero assumir. Bem, se já o tivéssemos. Você tem que acumular constantemente um arquivo desses bancos de dados, de repente alguém será útil.

Se de repente você tiver interesse em manter uma base de PI, pode perguntar nos comentários do coordenador do projeto Eugene mitra_kun .

Bem, digamos que encontramos, com sucesso, ou compramos de algum diretório GIS local, um banco de dados de PI para a região para o nosso próximo projeto e classificamos as categorias (que o fornecedor pode diferir radicalmente na organização da nossa). Agora precisaremos pegar nosso conjunto de dados enriquecido, nesta base, e calcular os segmentos de populações de que precisamos.

Problemas de extração de conhecimento


Você pode experimentar o método inovador de repórteres do The New York Times: "Eu estava no Pentágono durante o horário de trabalho, o que significa que é um funcionário do Pentágono". Mas esse caminho está cheio de várias implicações.

O que é "tempo de trabalho"? Eu já mencionei o equívoco de que o horário de trabalho 5/2 é adequado para todos, mas um dia de trabalho de 8 horas entre 9 e 18 também é verdadeiro apenas para plâncton de escritório. Isso, na melhor das hipóteses, fornece cobertura para cerca da metade da população-alvo (nossa avaliação empírica, que foi deduzida da prática). Além dos horários mencionados "dois dias por dia", existem outros, bem como vários turnos do tipo manhã e noite, em que o horário de trabalho corresponde ao tempo de sono de um representante típico da população.

A situação nos centros urbanos de grandes cidades como Londres, Nova York ou Tóquio é ainda mais interessante: existem muitos edifícios de tipo misto com escritórios, hotéis e apartamentos, e é fácil dividir as populações que "vivem" nesses bairros (ou seja, , dormem à noite) e o trabalho (ou seja, durante o dia com, talvez, uma pausa para o almoço) é bastante difícil. E nós, como enfatizei repetidamente, não temos contexto adicional. Somente coordenadas e tempo.

Inevitavelmente, uma parte significativa da população terá que ser sacrificada para não complicar as heurísticas de classificação já sofisticadas. Portanto, o conjunto de dados inicial deve ter volume suficiente para que, mesmo ao eliminar a maior parte, as leis estatísticas características de grandes conjuntos continuem operando nele.

É interessante lidar com cada um dos subconjuntos atípicos manualmente, mas esse é um processo demorado e ingrato. Por isso, conversamos honestamente sobre as implicações que surgem e pontuamos em usuários não padrão que não se encaixam no modelo majoritário. Portanto, a publicidade projetada para o consumidor de massa não funciona tão efetivamente para metade da audiência como seria se fosse possível direcioná-la para toda a população.

Bem, locais com vários andares. No mesmo funcionário de escritório em andares diferentes, os PIs de categorias direcionadas para um projeto podem ser localizados. Por exemplo, um consultório odontológico, uma companhia de seguros, uma máquina de ginástica. E em que categoria contar uma visita de duas horas de algum tipo de consumidor, se aconteceu, por exemplo, em 29 de agosto? Ele (ou ela) tratou os dentes, concluiu um contrato na CASCO ou comprou uma academia no final do mês? Não temos nenhum contexto e poderíamos examinar os dados por outros meses para, pelo menos, revelar os membros da academia para visitas regulares, mas geralmente o pedido é estritamente para qualquer agosto somente sem setembro, e é tudo. Assumimos que, com toda a probabilidade, todas as três opções são verdadeiras e levamos em conta uma certa velocidade para cada uma dessas categorias.

Pontuação do interesse do usuário


Infelizmente, não tenho o direito de falar em detalhes sobre a matemática por trás do cálculo da velocidade, porque esse é o know-how patenteado no qual nossos negócios se baseiam. Utilizamos um modelo matmodel diferente de todos os outros representantes da indústria, que saiu de pré-requisitos biológicos (o fundador do projeto possui doutorado em biologia) e testamos experimentalmente em populações de vários organismos modelo, de culturas celulares a camundongos, e depois modificados para o comportamento humano.

Se não houver detalhes, ao atribuir uma ambulância a qualquer visita à cerca geográfica de destino, levaremos em consideração o interesse que o representante da população possui por todos os POIs disponíveis da categoria selecionada. Suponha que um amante de makdak, se por algum motivo ele não está ligado a um restaurante em particular, visitará makdaki principalmente, mas ignorará o rei do hambúrguer. Assim, com uma taxa positiva na categoria "restaurantes de fast food", ela terá uma taxa positiva maior na categoria "McDonalds", que supera a menor taxa negativa na categoria "Burger King".

Para um usuário selecionado, "total de pontos de experiência" não tem sentido e pode até parecer aleatório, mas quando milhões se acumulam, a mágica estatística acontece - a quantidade de pontuações no nível da população dentro do intervalo de confiança realmente começa a refletir a imagem dos interesses dessa população em todos os POIs das categorias selecionadas. Para entender exatamente como isso acontece, você precisa ler a dissertação correspondente - não sou especialista em biologia e não posso julgá-la profissionalmente - mas as campanhas publicitárias conduzidas por nossos clientes, levando em consideração os interesses das populações, oferecem resultados muito melhores que os métodos convencionais, usado na publicidade e marketing tradicionais.

Ainda mais interessante, quando não apenas calculamos as somas, mas cobrimos o mapa inteiro com uma grade uniforme e calculamos as categorias de velocidade dos sinais levados em consideração em cada polígono dessa grade, com base nos interesses dos usuários que possuem o sinal gravado. Na imagem para atrair atenção, um deles é mostrado no início do artigo, mas, na verdade, o resultado de um projeto são dezenas, ou mesmo centenas desses mapas - para cada categoria-alvo e segmento da população.

Ou - nada de bom acontece se o conjunto de dados for muito pequeno, barulhento, impreciso ou a base do POI não for compilada corretamente. Devido às heurísticas e aos modelos incompletos, os dados devem ser grandes o suficiente para que o resultado seja confiável.

Mas o big data não é realmente sobre tamanho.

E o que é e como eles surgem durante o processamento será discutido na próxima parte. Não mude, em alguns dias falarei sobre como construímos um transportador automatizado na nuvem Amazon a partir de um protótipo montado no meu joelho e aprendi a calcular terabytes de dados brutos em minutos, em vez de semanas. Este será um artigo muito mais técnico.

Izhevsk faz parte da equipe Locomizer.  Da esquerda para a direita: Gena, I, Eugene, Anya
Esses são esses caras.

Obrigado e uma breve FAQ


Sem o feedback de grandes colegas - engenheiros de big data, este artigo não teria sido tão claro:


E sem as mudanças editoriais de Nadi Noskova e Polina Rusinova da equipe HUDWAY, ela não seria tão fácil de ler. Obrigada

Agora, uma rápida FAQ para revisores.

P. Quantos pontos por hora / dia / minuto uma pessoa "média" possui? Ou seja, em geral, podemos agrupar por device_id e entender onde a pessoa estava durante o dia? Posso colar dados continuamente por uma semana?
R. Não existe uma média pronunciada, pode haver pontos de um a milhões (o problema da “cauda longa”; removemos os usuários com o número de pontos abaixo dos percentis 5 e 95), isso depende muito do fornecedor. Você pode agrupar, ficar juntos, mas a nuvem de pontos resultante não possui padrões óbvios "a olho", é apenas uma nuvem lançada aleatoriamente no mapa. Após o enriquecimento, as trajetórias já são visíveis, mas geralmente quebram nos locais mais inesperados e não ajudam muito.

Q.É possível juntar-se a famílias? Quais 2-3 dispositivos ficam juntos por vários dias de folga? Isolada dos vizinhos?
A. Duvidoso. É improvável que os membros da família tenham um conjunto idêntico de aplicativos nos terminais de assinantes e é improvável que os padrões de uso coincidam completamente. Até agora, não tivemos essa tarefa, mas você pode tentar. Se alguém nos ordena esse estudo, é claro, não podemos gastar tempo livre testando uma hipótese.

P. Do ponto de vista comercial, é possível segmentar clientes específicos? ComoExiste apenas algum device_id, mas obviamente não sabemos o número da célula nem o email. Somente se esse usuário novamente em algum lugar passar com o mesmo device_id? É estático? Ou é algo como impressão digital e pode mudar do provedor de dados?
A. O provedor atribui device_id, e não é isso que é visível, por exemplo, nas configurações do telefone, ou seja, existe um duplo anonimato. Não temos dados além do que é pintado na anatomia do conjunto de dados. Dentro do provedor, ele permanece o mesmo para um dispositivo, e você pode colar os conjuntos de dados mensais, o uso provavelmente permanecerá o mesmo.

Q.Data Provider, explique com mais detalhes. Ou seja, este não é um operador de celular nas torres, mas "algo em execução no telefone" que coleta localizações em segundo plano e a drena em algum lugar com um pacote? Se o telefone for antigo, sem a Internet, o bluetooth incluído - alguém coletará esses dados? Se estou na estrada em um posto de gasolina, não há Wi-Fi em nenhum lugar, posso coletar as informações?
A.Essa é a mesma biblioteca que mostra anúncios em seus aplicativos ou faz parte dela, como mostrar lugares em um mapa. Ele funciona no seu telefone se você permitiu que os aplicativos coletassem geolocalização (ou essa permissão está registrada no manifesto). As informações são coletadas continuamente enquanto o aplicativo está sendo executado em segundo plano, quando a rede está disponível, as informações acumuladas são enviadas pelo pacote para a nuvem da rede de publicidade ou provedor de serviços de mapas e, a partir daí, já são coletadas por agregadores.

P. Um pouco mais sobre os provedores de dados ainda. Acontece que existem mais de um. Eles ainda coletam apenas parte do fluxo, 10/20/40/70%? Eles estão de alguma forma quebrados no território? Eles podem se sobrepor em horário / local, operadora de celular ou outra coisa? Ou apenas estupidamente a quantidade pode responder, sem segmentação?
A.Sim, existem muitos, mas não sabemos sobre compartilhamentos. Alguém é melhor em um país, alguém em outro. Os clientes geralmente dizem a si mesmos quais dados eles querem processar. Não conseguimos colar usuários de maneira confiável nos conjuntos de dados de diferentes fornecedores na mesma região pelo mesmo período de tempo. A segmentação de todos os fornecedores é a mesma - de acordo com a geocerca da região. País, prefeitura, cidade etc., mas as interseções entre eles não são perceptíveis.

Se você tiver mais perguntas, sinta-se à vontade para perguntar nos comentários de Gene keskiy e Eugene mitra_kun . Os caras estão bastante ocupados, mas certamente responderão a perguntas interessantes e significativas sobre o processamento de dados do usuário e a manutenção de um banco de dados de cantos em poucos dias.

Com problemas técnicos, recomendo que você espere até o final desta série de artigos.

Source: https://habr.com/ru/post/pt485484/


All Articles