[Case Locomizer] Quelles connaissances peuvent réellement être extraites d'un ensemble de données anonyme avec les coordonnées de l'utilisateur

Cet article fait partie de la série Case Locomizer, voir aussi

Bonjour

KDPV: la carte thermique construite par les algorithmes Locomizer pour KFC

Récemment, le New York Times a publié un article sensationnel sur la façon de suivre les utilisateurs grâce à des ensembles de données anonymes disponibles dans le commerce avec les coordonnées de leurs mouvements, et ici, sur Habré, sa traduction gratuite avec des ajouts d'un rédacteur d'entreprise inconnu a recueilli un grand nombre de commentaires de divers degrés de préoccupation.

Il se trouve que depuis deux ans et demi, je suis un leader technique dans un projet de géoinformation qui se consacre à l'extraction directe de connaissances à partir de tels ensembles de données commerciaux. Mais mes commentaires avec la demande de mettre de côté la panique ont rassemblé un grand nombre d'inconvénients. Eh bien. Dans le dicton sur l'absence de paranoïa et non sur le fait que vous n'êtes pas suivi, il y a une certaine vérité.

Mais il y a une part de vérité de l'autre côté du miroir noir, peut-être beaucoup plus. Ou intéressant.

Alors, permettez-moi de vous dire en détail comment nous suivons (et si nous suivons dans le sens de l'espionnage) pour vous (et pour vous personnellement), et quel type de connaissances sur l'utilisateur peut être obtenu sans posséder exactement d'autre contexte que les coordonnées de ses mouvements collectés à partir de terminaux d'abonnés mobiles . Sans journalisme excessif et sans gloutonnerie , du point de vue d'un spécialiste technique qui a une réelle expérience dans la résolution de tâches fictives pour des clients fictifs, y compris non seulement diverses agences de publicité, Coca-Cola et Guinness, mais aussi, par exemple, l'ONU. Et avec un clin d'œil .

De plus! À la fin de cette série d'articles, je veux partager les outils que nous développons depuis deux ans et demi afin que vous puissiez faire des recherches vous-même si vous achetez (ou obtenez) un ensemble de données approprié. Jusqu'à présent, à ma connaissance, personne n'a rendu ces outils accessibles au public. Au moins, lorsque nous avons fouillé il y a deux ans, rien n'a été trouvé, et nous avons dû nous écrire. Le chemin vers des calculs rapides a été difficile et long, la deuxième partie va en parler.

Alors. Table des matières de cette anamnèse:

  • Anatomie d'un ensemble de données anonyme
  • Problèmes de précision des coordonnées dans la bande médiane
  • Heuristique pour nettoyer les données du bruit et des débris
  • De quel genre de «connaissance» s'agit-il?
  • Points d'intérêt
  • Problèmes d'extraction de connaissances
  • Score d'intérêt des utilisateurs

Bonus:

  • Merci et une brève FAQ

Anatomie d'un ensemble de données anonyme


Prenez le fournisseur commercial Tamoco et voyez quels fichiers il expédie. Par exemple, voici un morceau d'un véritable ensemble de données du pays du Royaume-Uni de Grande-Bretagne et d'Irlande du Nord, la date est le 4 décembre 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 

Voici ce que nous voyons dans les champs de cet ensemble de données:

  • sdk_ts - horodatage à l' époque Unix ,
  • device_id - ID d'appareil anonyme (terminal d'abonné mobile, tel qu'un smartphone ou une tablette),
  • latitude / longitude - coordonnées géographiques ,
  • précision - précision des coordonnées horizontales, mètres,
  • pays - pays
  • les champs restants sont des ordures qui ne portent aucune charge sémantique spéciale.

Pourquoi les ordures sont-elles immédiatement?

Malheureusement, un tel champ d'altitude apparemment utile n'a aucun sens, car l'altitude est mal traduite en nombre d'étages de bâtiment, et le vol en avion peut être éliminé sans lui (mais nous en parlerons plus tard).

Contrairement aux journalistes des articles indiqués au début, nous n'avons pas de contexte supplémentaire sur les utilisateurs, et nous ne faisons pas d'hypothèses non fondées «par défaut», comme «était au Pentagone - cela signifie, cela fonctionne au Pentagone». Nous ne sommes pas non plus une sorte de facebook qui sait tout sur vous que vous avez dit sur vous-même (et l'utilisateur moyen en dit beaucoup sur vous), ainsi que votre graphique social complet. Nous avons acheté des données brutes et nous ne les croyons pas.

Du point de vue du contexte, il n'y a donc que des paramètres régionaux pour les utilisateurs - cela peut aider à identifier les touristes étrangers, mais ce n'est pas exact.

Eh bien, en plus des coordonnées et du temps, il existe également un modèle de téléphone - théoriquement, il ouvre la possibilité de traiter individuellement les propriétaires de divers appareils sur iOS et Andriod. Dans les commentaires de l'article de ce blog d'entreprise, certains ont suggéré d'aller faire un arrêt avec des téléphones portables extra-coûteux, de les suivre par géolocalisation ... Hmm, vous savez, mais un tel modèle commercial pour les bureaux normaux qui peuvent se permettre d'acheter des données ne sera pas rentable :)
Il est important de comprendre que les données du fournisseur sont brutes, c'est-à-dire extraites des appareils et non traitées de quelque manière que ce soit, sauf, peut-être, en remplaçant le vrai device_id par un hachage selon les exigences du RGPD (il est stable, le même appareil sera présenté entre différents vidages mensuels également).

Chaque fournisseur a son propre ensemble et format de champs, mais tout le monde a les coordonnées, la précision, l' heure et le device_id, et j'ai pris Tamoco par exemple comme le plus moyen. Et que pouvez-vous supposer d'un utilisateur qui regarde une ligne de données brutes si l'on ne traite pas des insinuations et des divagations sur le marc de café?

À moins que le fait qu'il se trouve peut-être, à l'heure indiquée, quelque part près des coordonnées indiquées. Plus précisément, cela a été décidé par une bibliothèque du SDK de quelqu'un qui collecte la géolocalisation dans l'application sur son terminal d'abonné et a téléchargé ces données dans l'agrégateur. Il lui semble qu'il était là, mais la décision finale, de la croire ou non, est prise par nous, et c'est fortement après coup.

Problèmes de précision des coordonnées dans la bande médiane


Le GPS est une chose géniale. Récemment, il y avait un excellent article sur ses capacités, assurez-vous de le lire, si ce n'est déjà fait.

C'est juste tous les exemples sympas qui parlent de cas idéaux, qui, hélas, ne s'appliquent pas aux ensembles de données commerciaux.

Premièrement, les terminaux d'abonnés mobiles provenant d'ensembles de données commerciaux ne sont pas du tout des récepteurs GPS professionnels, qui sont conçus pour servir un objectif, et sont fabriqués sur une base d'éléments beaucoup plus appropriée, avec de bons amplificateurs et de grandes antennes. Un smartphone est un smartphone - c'est-à-dire les composants les moins chers emballés dans un petit boîtier avec de petites antennes qui fonctionnent grâce à des astuces technologiques sauvages dans plusieurs gammes à la fois, dont le GPS est loin du principal.

Deuxièmement, l'environnement urbain est un terrain très, très accidenté. Pensez par vous-même - si vous jetez la banlieue américaine d'un étage, n'importe quelle rue de la ville moderne est un ravin profond avec des murs très raides, non seulement que l'horizon n'est pas visible, mais un morceau de ciel au-dessus de votre tête est visible très petit. Et pour une précision normale, vous devez avoir 4 satellites en ligne de visée directe en même temps, mieux encore. Par souci d'intérêt, sortez d'une manière ou d'une autre dans la cour de votre immeuble et voyez combien de satellites votre smart voit. (Très probablement, vous aurez besoin d'un Android rooté et / ou d'une sorte de tracker GPS payant.)

Troisièmement, l'utilisateur moyen se déplace constamment, il n'attend pas sur place pendant plusieurs minutes, jusqu'à ce que son terminal mobile abonné attrape le nombre de satellites souhaité, il va ou va, se retourne et la visibilité change constamment.

Quatrièmement, l'utilisateur ne tient pas toujours le téléphone entre ses mains. Dans une poche, un sac à main ou un sac à dos, il peut s'allonger sur le côté ou de toute façon, et n'attrapera rien du tout.

Cinquièmement, tout bâtiment en béton armé peut être soit une cage de Faraday classique ou un réseau phasé , soit un miroir avec des propriétés non linéaires intéressantes, qui peuvent à la fois amplifier le signal et le supprimer en raison d'interférences à une certaine distance. Ou réfléchissez sous un angle imprévisible, un déphasage, etc. Tout dépend du pas du métal dans les murs en béton.

Sixièmement, les voitures autour sont également en métal.

Septièmement, au plus profond du bâtiment, le GPS ne capte généralement pas, et encore plus dans le métro.

La trace brute d'un utilisateur inconnu se promenant dans Londres

Tous ces facteurs rendent le GPS dans la ville extrêmement peu fiable, et les fabricants de terminaux d'abonnés mobiles (ainsi que les fournisseurs de services de localisation pour OS mobiles) doivent sortir avec diverses technologies GPS assistées .

Les plus courantes sont la triangulation sur les stations de base cellulaires et les réseaux WiFi (et même Bluetooth).

Toutes ces voitures ridicules de Google et Yandex avec des caméras qui tournent des panoramas pour la vue sur la rue, en fait, collectent principalement des informations sur CellID, les noms de réseau et les niveaux de signal des routeurs, et les images - donc, une indulgence passagère. En plus d'eux, HERE Maps collecte ces informations en masse - et dans les pays développés, Apple et une douzaine de bureaux plus petits. Eh bien, ces bibliothèques qui sont câblées dans des applications mobiles et qui fournissent constamment des données de géolocalisation font exactement la même chose, par exemple, comme presque n'importe quel widget affichant une carte.

La question principale ici est exactement.

Contrairement au GPS, LBS est mauvais avec ça. 20 mètres pour le LTE dans le cas le plus idéal (en général - jusqu'à quelques kilomètres), et comme pour le Wi-Fi, ici les schémas directionnels des routeurs, les réseaux maillés étendus avec répéteurs et les caractéristiques physiques des signaux de fréquence 2,4 et 5 GHz réduisent la fiabilité extérieur jusqu'à 150 mètres ou plus.

Et ce sont les sauts constants de l'utilisateur de l'autre côté de la rue ou de l'intersection, ou même à un demi-quart de l'endroit où il se trouve réellement - si, par exemple, le routeur est au 5ème étage et autour de la gorge depuis les tours, alors il n'y aura pas de signal à attraper à l'entrée, mais il s'accrochera parfaitement au fond de cette gorge.

Enfin, de nombreux fournisseurs pèchent avec une autre mauvaise caractéristique. S'il n'est pas possible de déterminer la position avec une précision acceptable, l'utilisateur sera téléporté au centre d'une certaine barrière géographique - c'est-à-dire au centre du polygone correspondant à un certain code postal ou région administrative, identifié par des signes indirects, et la carte sera pleine de ces «points chauds» avec des milliers de signaux.

Voir sous le spoiler ci-dessous pour une explication.
Moscou, Kremlin, un petit ensemble de données de novembre 2019
Au point avec les coordonnées (55.75270; 37.61720) marquées dans l'illustration avec un marqueur , il y a immédiatement 208776 signaux. Ce sont des points qui n'ont pas été déterminés avec précision et qui tombent dans le «centre» de la clôture géographique correspondante de la place du Sénat, c'est aussi le «centre» du Kremlin.

Outre elle, les coordonnées suivantes sont également trop "chaudes":

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

Et sur tous les autres points de cette image - exactement un signal.

Pire encore, ces «centres de district» dans chaque substrat cartographique sont différents, et si Apple et Google tentent de les déplacer des bâtiments résidentiels (aux États-Unis, il y a eu de mauvais précédents avec des poursuites), alors personne ne s'embarrassera d'un changement de point par rapport à un bâtiment non résidentiel.

Déterminer la position à l'intérieur d'un grand centre commercial d'une superficie de milliers de mètres carrés est une douleur distincte. Le GPS n'accroche pas, le réseau cellulaire pour l'ensemble du centre est généralement le même, et afin de comprendre lequel des centaines de magasins l'utilisateur a visité, vous devez également trouver en quelque sorte le sol. Bonne chance avec ça.

En fait, même s'il y a un champ d'altitude, il n'est pas toujours clair par quel géoïde il a été calculé (pas nécessairement WGS84 ), et la FIG sait à quelle hauteur les étages du bâtiment sont à calculer par nous-mêmes. Et combien y en a-t-il? Dans les pays asiatiques, en raison des superstitions, par exemple, il y a non seulement 13, mais aussi 4 étages. De telles informations sont très difficiles à trouver et avec un traitement de masse, la main-d'œuvre ne sera jamais payante.

Par conséquent, peu importe à quel point cela ne nous plairait pas, nous devons utiliser des ensembles de données brutes sophistiqués

Heuristique pour nettoyer les données du bruit et des débris


Mais je vais d'abord vous dire qui est notre patient.

Notre patient est anonyme, et son nom est des milliers, ou mieux, des millions, car nos clients paient en masse les statistiques collectées. Une personne en particulier ne fait pas de météo pour Coca-Cola, même si elle achète un camion de soda à la fois. Les commerçants ont besoin de modèles et de tendances communs, ainsi que d'une image de leur évolution dans le temps. Il est important que les propriétaires de réseaux de pub londoniens sachent quel temps et quelle heure ils auront un flux de visiteurs dans les pubs situés au coin près de la station de métro, et dans lesquels - à côté des cinémas, et ils sont complètement ivres si ces échantillons proviennent de milliers d'anonymes un certain Vassily Poupkine de Ryazan, ou non.
L'essentiel est qu'il y en ait beaucoup et qu'ils soient pertinents. Nous travaillons avec les populations .

Par conséquent, par exemple, les utilisateurs voyageant en voiture et les utilisateurs marchant à pied sont des utilisateurs de valeurs différentes. Pour les premiers, plus le cercle de vision est étroit, plus la vitesse de déplacement est élevée et ils ne feront pas attention à l'affiche. Mais s'ils se trouvent dans un embouteillage ou à un long feu de circulation, alors pourquoi pas. Comme les utilisateurs qui voyagent dans le bus, qui regardent autour, c'est la principale occupation (s'ils ne sont pas stupides dans leur réseau social préféré en ce moment).

Il est également important de séparer les utilisateurs qui travaillent dans la zone géographique cible - le vendeur du magasin doit être séparé des visiteurs du magasin que nous recherchons. Plus précisément, l'ensemble de la population des vendeurs de tous les magasins du réseau de vente au détail de l'ensemble de la population des acheteurs.

Et tout cela signifie que nous devons avoir des pistes de qualité des manières suivantes:

• sans faible précision des coordonnées,

• sans géolocalisation glitch:
- téléporte un quart de côté et en arrière,
- saute sur la route,
- en dehors des points chauds

• classés par type de déplacement:
- à pied
- en voiture
- dans le bus
- à vélo ou en scooter,
- sur Shinkansen ou dans l'avion ...

• sans utilisateurs mal placés dans la zone géographique,

• sans pistes fragmentaires, coupant sans cesse des cercles sur une petite zone (d'où ils viennent, ce n'est pas tout à fait clair, mais ils sont suffisants pour les séparer en une classe de problème distincte - très probablement, ce sont toutes sortes de serrures avec des alarmes GSM ou des moniteurs pour bébés - ils collectent également la géolocalisation )

Et si la toute première condition est triviale - parcourez l'ensemble de données et jetez tous les points pour lesquels le champ de précision est <10 mètres, alors les autres ne sont qu'un tas de problèmes.

Vous pouvez vous-même deviner lesquels. Par exemple, comment distinguer un piéton qui attend à un arrêt de bus d'un conducteur se tenant dans un embouteillage adjacent?

Nous devons faire quelques hypothèses et construire des modèles mathématiques pour chacun de ces filtres, remplis de diverses hypothèses. Parfois, les hypothèses sont assez fortes en termes de baisse d'une partie importante des populations.

Par exemple, un vendeur de sortie dans un centre commercial, travaillant en équipes de deux jours tous les deux jours. Si, en semaine, c'est définitivement inapproprié, le week-end, il pourrait bien être ciblé pour une salle de cinéma dans le même centre commercial. Mais la plaisanterie est que l'horaire standard du lundi au vendredi et deux jours de congé ne lui sont pas applicables, et le classificateur doit en quelque sorte travailler, ou le jeter complètement hors de l'équation.

Dans tous les cas, un filtre avec un ensemble de paramètres utilisant une approche heuristique est construit pour chacun des modèles.

Nous collectons de grandes statistiques, y trouvons manuellement des modèles indésirables, formulons une tâche, la déboguons de manière interactive, écrivons un traitement séparé, puis l'intégrons dans le traitement de l'ensemble de données - si nous sommes sûrs qu'il nécessite une telle préparation.

Il existe un certain nombre d'algorithmes prêts à l'emploi. Par exemple, pour déterminer les points chauds, vous pouvez utiliser le filtre classique par la fréquence du signal sur le réseau.

Mais le classificateur selon les types de mouvement, fonctionnant sur le principe d'une fenêtre coulissante et d'une machine d'état (nous avons passé près de six mois en essais et erreurs pour son développement), est tellement sophistiqué qu'il est déjà incorrect de l'appeler un «filtre».

De plus, certains fournisseurs écrivent un nombre irresponsable de points par piste - soit ils se rapprochent des points intermédiaires sur les intervalles entre les mesures, soit ils essaient simplement de les supprimer tous les deux mètres, mais plusieurs milliers de signaux sont reçus pour une marche par kilomètre. C'est évidemment trop, et pour ne pas noyer de volume, nous sommes obligés d'affiner les pistes en utilisant une autre heuristique délicate avec des fenêtres coulissantes et des mathématiques compliquées pour calculer la distance de tous les points des pistes à leurs centroïdes .
Par conséquent, nous appelons le processus de superposition d'une chaîne d'heuristique sur l'ensemble de données d'origine en enrichissant les données brutes . Et nous extrayons déjà des connaissances à partir de données précédemment enrichies.

Et voici un problème avec toute heuristique: l'ordre d'application affecte grandement le résultat. Par conséquent, le processus de traitement se révèle à chaque fois unique et pas très bien répété même sur les données du même fournisseur dans la même région, mais après six mois.

Et encore une chose - vous ne pouvez pas mélanger les données brutes de différents fournisseurs dans un même projet, même si vous les amenez à un dénominateur commun. Mais si chaque ensemble de données brutes est traité indépendamment par un algorithme approprié, les signaux enrichis (sans bruit) peuvent déjà être fusionnés en une seule source. Nous n'avons pas trouvé d'utilisateurs en double dans les données des différents fournisseurs.

Dans tous les cas, certaines connaissances de l'ensemble de données enrichi peuvent toujours être extraites si vous essayez.

De quel genre de «connaissance» s'agit-il?


Grande question.

- Nous devons trouver tous les utilisateurs d'Ust-Perduysk qui aiment voler du maïs frais du champ de la ferme collective fin août.
- Excusez-moi?
"Eh bien, c'est le champ de maïs." Août l'année dernière.
- Nous voulons "voler" ...
- Déterminez en quelque sorte, vous êtes des experts!
- D'accord. Autre chose?
- Ils devraient fumer Pall Mall.
- (à moi-même) Pourquoi Pall Mall ... mais, peu importe, nous ne sommes pas intéressés. S'ils se présentent, alors nous trouverons: D (à haute voix, fermement) Seulement si vous donnez les informations où ils les achètent.

Vous avez écouté le dialogue avec un client sphérique dans le vide, bien qu'il ne soit pas réel en termes d'entités «vivant à Ust-Perduysk», «champ de maïs», «voler» et une marque spécifique de cigarettes, mais complètement authentique par essence. Les tâches sont définies de cette manière - vous devez trouver une certaine population, décrite en termes de barrière géographique et de comportement des utilisateurs, comme un lieu de résidence, visiter certaines catégories de lieux à un certain moment, etc. La gamme de ces tâches est très large et l'ensemble des paramètres peut être assez exotique.

Mais s'il existe une sorte de matmodèle , puis en appliquant des méthodes statistiques à un large ensemble de données enrichies (c'est-à-dire de haute qualité, sans anomalies), il est tout à fait possible de dériver une population appropriée. Les estimations seront toutes probabilistes. Nous ne pouvons pas affirmer sans équivoque qu'un utilisateur vit définitivement à Ust-Perduysk et vole du maïs en août, mais s'il y en a au moins un millier, nous les trouverons avec une probabilité de 90%. Peut-être pouvons-nous également fumer, mais en ce qui concerne la marque de cigarettes, un contexte supplémentaire est susceptible d'être nécessaire, et si le client le fournit, nous trouverons les bons parmi eux - mais nous ne pouvons pas garantir l'exactitude.

Mais de telles tâches avec contexte sont en fait rares, et nous effectuons généralement des recherches basées sur un ensemble standard de matmodels débogués et testés qui analysent la population générale en segments tels que:

  • vivre dans le geofence / travailler dans le geofence,
  • répartition par niveau de revenu des ménages,
  • les automobilistes
  • les amoureux de visiter les restaurants et cafés,
  • accros du shopping
  • les amateurs de sport
  • les mères de jeunes enfants,
  • voyage d'affaires
  • touristes étrangers ...

Pour chaque catégorie (un total de quelques milliers), le processus de traitement est construit selon le modèle à partir d'opérations prédéfinies avec un ensemble de paramètres, et est paramétré en fonction des exigences spécifiques du client.

Les opérations sont développées comme suit: le data scientist écrit le modèle sous forme de livre blanc, puis il est programmé et débogué sur les jeux de données standard Python, et au final le traitement va se faire dans Spark (on écrit en Java, mais ça peut aussi se faire en Scala), que j'optimise.(Oui, quelque chose comme dans le même mème sur le dessin d'un hibou, cependant, il sera plus détaillé dans la deuxième partie de mon histoire.) Les

modèles de projets spécifiques de clients spécifiques eux-mêmes sont collectés par une personne spécialement formée - analyste de données. Si vous voulez lui poser une question - écrivez keskiy dans les commentaires, et Gena vous répondra. Soit dit en passant, il prépare la présentation visuelle finale sous la forme d'une carte thermique ou d'un grand et beau tableau Excel, car les clients, en règle générale, ne comprennent pas beaucoup de mégaoctets de chaussons à partir de chiffres.

Une fois le modèle terminé, l'ensemble de données est téléchargé sur S3 sur Amazon Web Services et, à l'aide de magie (que je décrirai en détail dans le troisième article de cette série), il est traité dans le service EMR.

Ce qui est important - nous n'assumons jamais la tâche d'identifier ou de trouver une personne en particulier, car aucun de nos modèles ne fonctionne sur de petits échantillons. La nature très statistique de toutes nos heuristiques nous empêche de travailler avec un contexte ponctuel.De plus, nous rejetons délibérément les utilisateurs qui dépassent le 95e centile, car une trop bonne correspondance est un signe alarmant de la présence de tricherie.

Sur la carte de la chaleur, ces utilisateurs donnent un point chaud spécial. Je vais donner un exemple qui peut sembler anecdotique, mais il est absolument réel.

J'ai moi-même chauffé un polygone par inadvertance sur une carte thermique.
: . , , WB, Warner Bros., . , . .

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

-, .

— , . . «, -, .» -.

. POI.

Points of Interest


, — , , - … .

, , . , . «77 »:

 • 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 

- et ainsi de suite.

Dans chaque établissement de ces «établissements», il peut y en avoir de un à plusieurs milliers, et pour chacun, vous devez maintenir et mettre à jour un répertoire avec les coordonnées et un ensemble complet de catégories appropriées. Un centre commercial de trois étages avec des centaines de magasins, une aire de restauration et un cinéma est un endroit où de nombreux POI sont concentrés à la fois, avec de nombreuses catégories en double, mais une seule adresse, et compte tenu du fait que les points s'ouvrent et se ferment, la tâche mal automatisée de maintenir une telle base repose sur les épaules du chercheur.

Et compte tenu du fait que la population peut être commandée immédiatement au niveau de la préfecture, voire du pays, la taille de la base POI pour un projet peut être estimée en millions de points et en dizaines de catégories. Mais vous devez d'abord le prendre. Et c'est bien si le pays est développé, ou avec une communauté active de cartographes OSM. Pas toujours, il faut donc parfois courir.

Et si quelqu'un commande un calcul sur un ensemble de données historiques, vous devez trouver la référence POI, pertinente il y a quelques années, et ce n'est pas du tout la tâche que je veux particulièrement entreprendre. Eh bien, si nous l'avions déjà. Vous devez constamment accumuler une archive de ces bases de données, tout à coup quelqu'un d'autre vous sera utile.

Si vous avez soudain un intérêt à maintenir une base de POI, vous pouvez demander dans les commentaires du coordinateur du projet Eugene mitra_kun .

Eh bien, supposons que nous ayons trouvé avec succès, ou acheté dans un annuaire SIG local, une base de données de POI pour la région pour notre prochain projet, et trié les catégories (dont l'organisation peut différer radicalement du nôtre). Nous devons maintenant prendre notre ensemble de données enrichi, cette base, et calculer les segments de populations dont nous avons besoin.

Problèmes d'extraction de connaissances


Vous pouvez essayer la méthode innovante des journalistes du New York Times - "J'étais au Pentagone pendant les heures de travail, ce qui signifie que c'est un employé du Pentagone." Mais cette voie est pleine de diverses implications.

Qu'est-ce que le «temps de travail»? J'ai déjà mentionné l'idée fausse selon laquelle l'horaire de travail 5/2 convient à tout le monde, mais une journée de travail de 8 heures entre 9 et 18 n'est également vraie que pour le plancton de bureau. Au mieux, cela couvre environ la moitié de la population cible (notre évaluation empirique, qui a été déduite de la pratique). Et en plus des horaires «deux jours par jour» mentionnés, il existe d'autres horaires ainsi que divers quarts de travail du type matin et soir, où les heures de travail correspondent au temps de sommeil d'un représentant typique de la population.

La situation dans les centres-villes de grandes villes comme Londres, New York ou Tokyo est encore plus intéressante: il existe de nombreux bâtiments de type mixte avec bureaux, hôtels et appartements, et il est facile de diviser les populations qui «vivent» dans de tels quartiers (c'est-à-dire , ils dorment - la nuit) et le «travail» (c'est-à-dire qu'ils sont dans la journée avec, peut-être, une pause déjeuner) est assez difficile. Et nous, comme je l'ai souligné à plusieurs reprises, nous n'avons pas de contexte supplémentaire. Seules les coordonnées et l'heure.

Inévitablement, une partie importante de la population devra être sacrifiée pour ne pas compliquer l'heuristique de classification déjà sophistiquée. Par conséquent, le jeu de données initial doit avoir un volume suffisant pour que, même en éliminant la majeure partie de celui-ci, les lois statistiques caractéristiques des grands ensembles continuent de fonctionner.

Il est intéressant de traiter manuellement chacun des sous-ensembles atypiques, mais il s'agit d'un processus long et ingrat.Nous parlons donc honnêtement des implications qui en découlent et notons les utilisateurs non standard qui ne correspondent pas au modèle majoritaire. Par conséquent, la publicité conçue pour le grand public ne fonctionne pas aussi efficacement pour la moitié du public qu'elle le ferait s'il était possible de la cibler sur l'ensemble de la population.

Eh bien, les emplacements à plusieurs étages. Dans le même employé de bureau à différents étages, les POI des catégories ciblées pour un projet peuvent être localisés. Par exemple, un cabinet dentaire, une compagnie d'assurance, un appareil de fitness. Et dans quelle catégorie compter une visite de deux heures d'une sorte de consommateur, si cela s'est produit, par exemple, le 29 août? A-t-il (ou elle) soigné ses dents, conclu un contrat CASCO, ou a-t-il acheté un abonnement au gymnase à la fin du mois? Nous n'avons aucun contexte, et nous pourrions consulter les données d'autres mois afin de révéler au moins l'abonnement au gymnase pour des visites régulières, mais souvent la commande est strictement pour tout août seulement sans septembre, et c'est tout. Nous supposons que, selon toute probabilité, les trois options sont vraies et nous prenons en compte une certaine vitesse pour chacune de ces catégories.

Score d'intérêt des utilisateurs


Malheureusement, je n'ai pas le droit de parler en détail des mathématiques derrière le calcul de la vitesse, car c'est le savoir-faire breveté sur lequel repose notre entreprise. Nous utilisons un matmodel différent de tous les autres représentants de l'industrie, issu de conditions biologiques (le fondateur du projet a un doctorat en biologie) et testé expérimentalement sur des populations de divers organismes modèles, des cultures cellulaires aux souris, puis modifié pour le comportement humain.

Si sans détails, lors de l'attribution d'une ambulance à une visite à la zone géographique ciblée, nous tenons compte de l'intérêt que le représentant de la population porte à tous les POI disponibles de la catégorie sélectionnée. Supposons qu'un amoureux du makdak, s'il n'est pas attaché à un restaurant particulier, visite principalement le makdaki, mais contourne le burger king. Par conséquent, avec un score positif dans la catégorie des «restaurants de restauration rapide», il aura un score positif plus élevé dans la catégorie McDonalds, ce qui l'emporte sur la plus petite vitesse négative dans la catégorie Burger King.

Pour un utilisateur sélectionné, les «points d'expérience totaux» sont plutôt dénués de sens, et peuvent même sembler aléatoires, mais lorsque des millions s'accumulent, la magie statistique se produit - le nombre de scores au niveau de la population dans l'intervalle de confiance commence vraiment à refléter l'image des intérêts de cette population dans tous les POI des catégories sélectionnées. Pour comprendre exactement comment cela se passe, il faut lire le mémoire correspondant, - je ne suis pas spécialiste en biologie et je ne peux pas le juger professionnellement - mais les campagnes publicitaires menées par nos clients en tenant compte des intérêts des populations donnent des résultats bien meilleurs que les méthodes conventionnelles, utilisé dans la publicité et le marketing traditionnels.

Encore plus intéressant, lorsque nous ne calculons pas seulement les sommes, mais que nous couvrons toute la carte avec une grille uniforme et calculons les catégories de vitesse pour les signaux pris en compte dans chaque polygone de cette grille en fonction des intérêts des utilisateurs qui possèdent le signal enregistré. Dans l'image pour attirer l'attention, l'un d'eux est montré au début de l'article, mais en fait, le résultat d'un projet est des dizaines, voire des centaines de ces cartes - pour chaque catégorie cible et segment de la population.

Ou - rien de bon ne se produit si l'ensemble de données est trop petit, bruyant, inexact ou si la base de POI n'est pas compilée correctement. En raison de l'heuristique et des matmodels incomplets, les données doivent être suffisamment volumineuses pour que le résultat soit fiable.

Mais le big data n'est pas vraiment une question de taille.

Et ce que c'est, et comment ils surviennent au cours du traitement, sera discuté dans la partie suivante. Ne changez pas, dans quelques jours, je parlerai de la façon dont nous avons construit un convoyeur automatisé dans le cloud Amazon à partir d'un prototype assemblé sur mes genoux, et j'ai appris à calculer des téraoctets de données brutes en quelques minutes au lieu de quelques semaines. Ce sera un article beaucoup plus technique.

Izhevsk fait partie de l'équipe Locomizer.  De gauche à droite: Gena, I, Eugene, Anya
Ce sont ces gars-là.

Merci et une brève FAQ


Sans les commentaires de grands collègues - ingénieurs sur les mégadonnées, cet article n'aurait pas été aussi clair:


Et sans les changements éditoriaux de Nadi Noskova et Polina Rusinova de l'équipe HUDWAY, elle ne serait pas sortie si facilement lisible. Je vous remercie!

Maintenant une FAQ rapide pour les réviseurs.

Q. Combien de points par heure / jour / minute une personne "moyenne" possède-t-elle? Autrement dit, nous pouvons regrouper par device_id et comprendre où la personne était pendant la journée? Puis-je coller des données en continu pendant une semaine?
R. Il n'y a pas de moyenne prononcée, il peut y avoir des points de un à des millions (le problème de la «longue queue»; nous supprimons les utilisateurs avec le nombre de points sous les 5e et 95e centiles), cela dépend fortement du fournisseur. Vous pouvez grouper, rester ensemble, mais le nuage de points résultant n'a pas de motifs évidents "à l'œil nu", c'est juste un nuage jeté au hasard sur la carte. Après l'enrichissement, les trajectoires sont déjà visibles, mais elles se brisent généralement dans les endroits les plus inattendus et n'aident pas beaucoup.

Q.Est-il possible de rejoindre des familles? Quels 2-3 appareils vont ensemble pendant plusieurs jours de congé? Coupé des voisins?
A. Douteux. Il est peu probable que les membres de la famille disposent d'un ensemble identique d'applications sur les terminaux d'abonnés, et il est peu probable que les modes d'utilisation coïncident complètement. Jusqu'à présent, nous n'avons pas eu une telle tâche, mais vous pouvez essayer. Si quelqu'un nous commande une telle étude, bien sûr, nous ne pouvons pas passer du temps libre à tester une hypothèse.

Q. D'un point de vue commercial, est-il possible de cibler des clients spécifiques? Comment?Il n'y a que quelques device_id, mais évidemment nous ne connaissons ni le numéro de cellule ni le mail. Uniquement si cet utilisateur passe à nouveau quelque part avec le même device_id? Est-ce statique? Ou s'agit-il de quelque chose comme l'empreinte digitale et peut changer du fournisseur de données?
A. Le fournisseur attribue device_id, et ce n'est pas ce qui est visible, par exemple, dans les paramètres du téléphone, c'est-à-dire qu'il y a une double anonymisation. Nous n'avons pas de données en plus de ce qui est peint dans l'anatomie de l'ensemble de données. À l'intérieur du fournisseur, il reste le même pour un appareil, et vous pouvez coller les jeux de données mensuels, l'utilisation est susceptible de rester la même.

Q.Fournisseur de données, expliquez plus en détail. Autrement dit, ce n'est pas un opérateur de cellule sur les tours, mais «quelque chose qui tourne sur le téléphone» qui recueille les emplacements en arrière-plan et les draine quelque part avec un paquet? Si le téléphone est vieux, sans Internet, le Bluetooth inclus - quelqu'un collectera-t-il ces données? Si je suis sur l'autoroute dans une station-service, il n'y a pas de Wi-Fi nulle part, puis-je collecter les informations?
A.Il s'agit de la même bibliothèque qui vous montre des annonces dans vos applications, ou en fait partie, par exemple en affichant des lieux sur une carte. Cela fonctionne sur votre téléphone si vous avez autorisé les applications à collecter la géolocalisation (ou si cette autorisation est enregistrée dans leur manifeste). Les informations sont collectées en continu pendant que l'application s'exécute en arrière-plan, lorsque le réseau est disponible, les informations accumulées sont envoyées par le paquet au cloud du réseau publicitaire ou du fournisseur de services de carte, et à partir de là, elles sont déjà collectées par les agrégateurs.

Q. Encore un peu plus sur les fournisseurs de données. Il s'avère qu'il y en a plus d'un. Recueillent-ils toujours seulement une partie du flux, 10/20/40/70%? Sont-ils en quelque sorte répartis sur le territoire? Peuvent-ils se chevaucher dans le temps / l'emplacement, l'opérateur mobile ou autre chose? Ou tout simplement stupidement, la quantité peut répondre, pas de ciblage?
A.Oui, il y en a beaucoup, mais nous ne connaissons pas les partages. Quelqu'un est meilleur dans un pays, quelqu'un d'autre dans un autre. Les clients se disent généralement dont ils souhaitent traiter les données. Nous n'avons pas réussi à coller de manière fiable les utilisateurs dans les jeux de données de différents fournisseurs dans la même région pendant la même période. Le ciblage de tous les fournisseurs est le même - selon la zone géographique de la région. Pays, préfecture, ville, etc., mais les intersections entre elles ne sont pas visibles.

Si vous avez d'autres questions, n'hésitez pas à les poser dans les commentaires de Gene keskiy et Eugene mitra_kun . Les gars sont assez occupés, mais ils répondront certainement à des questions intéressantes et significatives sur le traitement des données utilisateur et la maintenance d'une base de données de chant en quelques jours.

Pour les problèmes techniques, je vous recommande d'attendre la fin de cette série d'articles.

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


All Articles