Hlavní navigace

Martin Jeřábek (Mapy.cz): Nechceme identifikovat nakaženého, se kterým se člověk setkal

Autor: Seznam.cz
Sdílení polohy s aplikací Mapy.cz si už zapnulo přes 881 tisíc lidí. Služba jim slibuje poslat upozornění na možnost nákazy COVID-19. Jak funguje a odkud bere data?
David Slížek
Doba čtení: 16 minut

Sdílet

„Náš algoritmus je pravděpodobnostní, neříká, že je někdo stoprocentně zdravý nebo nemocný. Říká jen, že pravděpodobnost toho, že se člověk mohl nakazit, je vyšší,“ vysvětluje Martin Jeřábek

Ve firmě Seznam.cz pracuje jako šéf týmu mapové služby Mapy.cz a v posledních týdnech se věnoval hlavně nové funkci, která má uživatele varovat, že se mohli nakazit infekcí COVID-19. Stačí k tomu, aby v mobilní aplikaci Mapy.cz povolili průběžné sledování a odesílání své polohy na servery Seznamu. Když pak služba zjistí, že mohli být v kontaktu s někým nakaženým, pošle jim upozornění.

Svou polohu s aplikací sdílí už více než 881 tisíc uživatelů. Seznam 30. března také vyzval nakažené, aby se do aplikace sami hlásili a sdíleli s ní data o tom, kde se pohybovali. Za týden se podle firmy dobrovolně přihlásily nižší stovky infikovaných pacientů. Počet odeslaných upozornění zatím Seznam nezveřejňuje.

Jak konkrétně Mapy zjišťují, kdo se mohl nemocí nakazit? Odkud berou data o infikovaných? Jak chrání soukromí uživatelů? A co dělají proto, aby se z notifikací nedalo poznat, od koho se člověk mohl nakazit? Na to a další otázky odpovídá Martin Jeřábek v rozhovoru pro Lupu:

Jak celý nápad vznikl, kdo s ním přišel?

Před třemi týdny mi v sobotu zavolal Pavel Zima (ředitel Seznamu pro exekutivu a komunikaci – pozn. redakce)Jakubem Nešetřilem (zakladatel organizace Česko.Digital – pozn. redakce), mluvili o koronaviru a o tom, že máme Mapy.cz, které mají funkci Stopaře, kde si uživatel může nahrávat vlastní polohu, a že by se s tím dalo něco dělat. 

Říkali jsme si: získáme polohová data nakažených a všechno bude sluníčkové (smích). S odstupem času můžu říct, že jsme byli hodně naivní. Ale moc jsme o tom nepřemýšleli a vrhli jsme se do toho. Hned druhý den jsme začali vymýšlet a shánět lidi z týmu, v pondělí už se programovalo, ve středu jsme měli aplikaci ve funkční verzi, ve čtvrtek proběhly testy a v pátek už byla v obchodě s aplikacemi. Lidi byli strašně naboostovaní.

Kolik lidí v Seznamu na aplikaci pracovalo?

To se dá těžko přesně spočítat. Aplikace má strašně moc částí: backend, algoritmus, administraci, frontend… A všichni zapojení se zároveň starají o to, aby Mapy dál fungovaly, takže jejich práci musel převzít zbytek týmu. Navíc se toho účastnili lidi z marketingu, PR, admini, kteří normálně nasazují jednou za týden a teď to dělali třeba čtyřikrát denně. Takže dohromady přiložila ruku k dílu asi stovka lidí.

GALERIE: Podívejte se, jak sdílení polohy v aplikaci Mapy.cz vypadá:

Bylo od začátku jasné, jak bude služba fungovat? Nebo jste měli i nějaké nápady, které jste postupem času nezrealizovali?

Představu jsme měli od začátku, postupně se samozřejmě tříbila, protože jsme třeba zjišťovali, že některé věci nebudou technicky možné.

Například?

Přemýšleli jsme třeba o tom, že aplikace poběží v nějakém low power módu, že ji člověk jen zapne a appka bude fungovat někde na pozadí. To úplně nejde, dnešní operační systémy to moc nemají rády. Říkají: uživatel s tím musí souhlasit, musí mu tam blikat nějaká notifikace. iOS se k tomu staví úplně brutálně, říká, že uživatel nic takového nechce, i když to ten uživatel chce. 

Druhá věc: od začátku jsme věděli, že jsme v časovém presu, že pokud to má fungovat, musíme mít data od uživatelů co nejdřív, protože potenciální kontakt s nakaženým zjišťujeme zpětně. A čím dřív budeme mít data, tím větší je šance, že člověku tu informaci dáme. Spěchali jsme, ořezali jsme funkčnosti, které ořezat šly, a další věci se přidávaly postupně.

Aplikace, které používají polohová data, to mají v poslední době v appstorech Googlu a Applu z důvodu ochrany soukromí složité. Jak snadné, nebo naopak těžké bylo aplikaci protlačit schválením?

Máme velkou výhodu v tom, že Mapy už s polohovými daty pracují, uživatel si u nás může zapnout i sledování polohy, která se mu pak ukládá. Obchody s aplikacemi to o nás už vědí. Každopádně jsme se trochu báli, protože poslední dobou šly zvěsti, že obchody zařezávají aplikace, které navenek komunikují něco k COVID-19. U prvního releasu jsme ale byli poměrně příjemně překvapení, protože Android byl venku asi za půl hodiny a iOS během několika hodin, což je neskutečné, nepamatuju se, že by se nám něco takového někdy stalo.

Pojďme popsat, jak aplikace konkrétně funguje. Na začátku musí uživatel sběr dat o jeho poloze výslovně povolit. Tlačítko pro souhlas je hodně výrazné a někteří lidé říkají, že na ně může někdo kliknout, aniž by si uvědomil, co vlastně dělá. Je to tak schválně, aby na ně lidé víc klikali?

Od začátku to bylo udělané tak, že lidem, kteří jsou v České republice, se zobrazuje celodisplejová opt-in obrazovka, kterou nejde přehlédnout. Vysloveně na ní říkáme, co bude aplikace dělat a k čemu data použijeme. Ano, opt-in tlačítko je samozřejmě zelené, protože jsme chtěli, aby se lidé zapojili co nejvíce – je na tom závislá funkčnost algoritmu. Ale v žádném případě to není scam a nedoufáme, že si sběr dat zapnou nějak omylem. A když si sběr dat zapnou, píšeme jim v liště, že si ho můžou kdykoli vypnout.

Když tedy dám svolení, co pak aplikace dělá?

Aplikace na pozadí kdykoli, i když je vypnutá, sbírá historii polohy telefonu. Konkrétně jde o čas, polohu a údaj o přesnosti. Ta data pak posílá na servery Seznamu. V telefonu přitom pořád svítí notifikace, že se něco sbírá, nechceme, aby si uživatelé mysleli, že něco děláme potají. Na druhou stranu je to dobré i kvůli tomu, že se někdy stává, že operační systém ten sběr ukončí, a člověk aspoň vidí, že se to stalo, že mu notifikace zmizela a že když aplikaci zase zapne, znovu se mu notifikace objeví.

Data si posíláme na servery bez identifikátoru uživatele, protože jej k ničemu nepotřebujeme. Na začátku jsme zvažovali, jestli si identifikaci uživatelů, kteří jsou přihlášení, neposílat, ale je to zbytečné, algoritmus to k ničemu nevyužije. A je to také citlivý údaj a čím víc citlivých údajů sbíráte, tím je to rizikovější. My se ta rizika snažíme omezovat. Jediné, co si posíláme, je identifikátor aplikace nebo instalace, protože potřebujeme nějaký kanál, kterým zpátky do telefonu dostaneme upozornění, když už na něco přijdeme.

Z jakého zdroje aplikace údaje o poloze bere? Když jsem ji zkoušel a dával jí svolení, vyběhla mi na Androidu ještě žádost o svolení od systému, kde stálo, že Google může shromažďovat moje údaje o poloze a používat je ke zlepšování služeb. Takže polohu neberete přímo z GPS, ale z operačního systému, je to tak?

Ano, data samozřejmě bereme přes služby operačního systému. Pokud má aplikace běžet na pozadí, musí to uživatel povolit. To, že Google pak ta data nějak použije… no, je to jeho operační systém (smích).

A na iOS je to podobné?

Na iOS je to povolování ještě asi brutálnější, musí se navíc odsouhlasit sběr na pozadí a k tomu se systém každý týden bude ptát, jestli uživatel opravdu pořád chce, aby tahle aplikace něco sbírala na pozadí. Ostatně brzy to tak bude i na novějších verzích Androidu.

Jak přesná jsou polohová data z GPS? Předpokládám, že ve volné krajině je přesnost nejspíš jiná než někde ve velkém městě, zvlášť když jsem někde v paneláku.

To je obecný princip, jak funguje GPS. V posledních letech dost pomáhají nové GPS čipy, takže to, co bylo před deseti lety možné jen pro armádu, je dnes možné s novějším chytrým telefonem. 

Situace je samozřejmě jiná někde v laboratoři nebo na poli – ovšem nesmí tam být vedení vysokého napětí – než ve městě. Když se podíváme na data o přesnosti, která nám chodí z operačního systému, běhají tam někdy metry nebo i desítky metrů. A když má uživatel hodně smůlu a třeba jde nějakým podchodem, skočí poloha třeba sto metrů jinam. 

Není to úplně ideální, ale musíme si s tím vystačit. Údaje o poloze se snažíme filtrovat a s hodně ulítlými záznamy prostě nepracujeme. Kolega to testoval na sobě: seděl v paneláku, kde jsou různé odrazy – železobetonová konstrukce, armovací železa a podobně. A i když seděl v bytě, systém ukazoval polohu před domem, jako by ho manželka vyhodila na dvorek (smích).

Nepoužívá operační systém k určení polohy další signály, například Wi-Fi sítě a podobně?

Google je pokud vím používá třeba v okamžicích, kdy uživatel nemá GPS signál. Dokáže si tak aspoň nějakou polohu získat, i když s nižší přesností. Ale tam už se nepohybujeme ani v metrech.

Kolikrát za den aplikace polohu telefonu změří a odešle?

Když aplikace běží tak, jak má, zjišťujeme a posíláme polohu každých 30 sekund. Dohromady jsou to tisíce měření denně a dá to asi 200 kB dat za den. To je optimální případ. Když aplikaci na pozadí zastaví třeba operační systém nebo ji shodí uživatel, protože mu příliš vybíjí baterii, máme tam samozřejmě mezery. 

Přemýšleli jsme o tom, jak uživatelům, kteří si stěžovali, že jim aplikace baterii vybíjí příliš, pomoci. Zkoušíme teď appku optimalizovat. Nechceme ale prodlužovat interval měření, protože kdybychom posílali polohu třeba jednou za deset minut, člověk by mezitím šel například k popelnicím, někoho by tam mohl potkat a aplikace by to absolutně nevěděla. 

Snažíme se proto jít jiným směrem, zatím jsme ale v rané fázi. Víme o tom, že lidem vybíjení vadí, že kvůli němu aplikaci vypínají, když jsou třeba doma, ale nemyslíme si, že je to dobře, protože jakmile je vypnutá, nedostává polohu a je slepá – přijde třeba pošťák nebo soused a aplikace v tu chvíli nejede.


Autor: Seznam.cz

Martin Jeřábek

Sbírání dat má momentálně zapnuto asi 820 tisíc lidí. To číslo mě překvapilo, myslel jsem si, že sledování polohy je pro lidi pořád příliš velkým strašákem a že je nebudou ochotní zapínat. Máte nějaká data o tom, jak lidé aplikaci zapínají, jak dlouho ji mají zapnutou, kolik z nich ji vypnulo a podobně?

Na to zatím nebyl moc čas. Z analytiky aplikace máme samozřejmě signál, že lidi tím přepínátkem hýbají. Ale většinou s ním „šoupají“ několikrát, takže předpokládáme, že je to takové to „přijdu domů, cítím se bezpečně, tak to vypnu“ a „jdu někam ven, tak to zase zapnu“. Ale žádnou velkou analýzu jsme si nedělali.

K tomu, abyste mohli posílat upozornění na možný kontakt s nakaženým, potřebujete údaje o tom, kdo je nakažený a kde se pohyboval. Minulý týden jste začali infikované vyzývat, aby se vám sami hlásili. Je to jediný zdroj těchto dat?

Jsou to samozřejmě úplně nejdůležitější data, která potřebujeme k vyhodnocení. Bez nich to absolutně nejde. Na začátku jsme si mysleli, že ta data budeme dostávat od státu, od hygieniků, ale nejde to. Chápu to, jsou to osobní data, navíc údaje o tom, že je někdo nemocný, jsou skoro nejcitlivější data, která vůbec jsou. 

Teď máme vlastní self-reporting, uživatelé se nám můžou přihlásit – a hlásí se nám, což je super. Máme tak data, ze kterých můžeme vycházet. A máme další kanály. Díky spolupráci s chytrou karanténou jsme se dostali do call-scriptu (psaný postup, podle kterého operátoři callcentra postupují – pozn. redakce) v callcentru čísla 1212. To znamená, že se operátoři budou lidí ptát i na to, jestli náhodou nemají nainstalovanou aplikaci Mapy.cz. A pokud mají, zda nejsou ochotní sdílet data o svojí poloze. Pokud ten nakažený ochotný bude a opíše nám z aplikace její identifikátor, je to další kanál, jakým můžeme informace získat. 

Další varianta, jak bychom mohli získat data, je ta, že by se v rámci call-scriptu měla objevovat i otázka, jestli ten člověk nemá nějakou jinou historii polohy – třeba od Googlu nebo Applu. Pokud má a souhlasí s tím, že ji s námi nasdílí, mohli bychom se dostat i k těmto datům. Teď si v rámci našeho self-reportingu hrajeme s tím, že nakaženému uživateli umožníme tato data nahrát i manuálně. My si z nich pak vytáhneme údaje za poslední tři týdny.

Je ta spolupráce s chytrou karanténou oboustranná? Mohou operátoři trasovacího callcentra použít i lokační data z aplikace Mapy.cz?

Ne, oboustranná není. My uživatelům v podmínkách aplikace říkáme, že ta data s nikým jiným nesdílíme. Na začátku jsme se hygieniků ptali, jestli chtějí třeba mít možnost zpětné komunikace, to znamená, že by nakaženému uživateli přišla nějaká notifikace od hygieny, jestli souhlasí s tím, že by se hygienici podívali na jeho polohová data. Ale spolupráci s hygieniky se navázat nepodařilo. Každopádně teď podle podmínek data s nikým jiným nesdílíme. Pokud by došlo k tomu, že by je chtěl sám a dobrovolně s někým dalším sdílet, musel by k tomu dát nový souhlas. Ale zatím platí, že ani na případné vyžádání státu ta data nikomu vydávat nebudeme.

A jak to tedy funguje v rámci toho hovoru z callcentra?

Uživatel říká „mám aplikaci Mapy.cz a umožňuju, aby Mapy.cz použily moje lokační data jako historii nakaženého člověka“.

Aha, takže callcentrum pro vás jen získává ten případný souhlas s použitím dat.

Ano. Asi by bylo logičtější, kdyby ta data mohli hygienici taky využívat, ale jak jsem říkal, navázat takovou spolupráci se zatím nepodařilo. Hygienici se dlouho tvářili, že budou raději pracovat s tužkou a papírem. Jsou prostě odvětví, která se ještě moc nezdigitalizovala.

Jak u self-reportingu ověřujete, že si z vás někdo třeba jen nedělá legraci a že je skutečně pozitivně testovaný?

Člověk v rámci self-reportingu zadává údaje o tom, v jakém je stavu, od kdy má příznaky, kdy a kde byl testován a tak dále. A pokud chce, může přidat i kontakt, ať už telefon, nebo e-mail. Když nám kontakt předá, někdo jej obratem kontaktuje a snaží se s ním všechno projít a ověřit. Naši operátoři jsou ve spojení s callcentrem pro číslo 1212, naše call-scripty jsou inspirované jejich materiály.

A co když vám ten člověk kontakt nepředá?

Když ho nenapíše, můžeme ho v algoritmu použít i tak, ale dáme mu nižší váhu. Ten algoritmus je pravděpodobnostní, pracuje s tím, že člověk má nějakou pravděpodobnost, že je nakažený. Když ho máme ověřeného a má výsledky testů, je to dejme tomu 100 procent, pokud ne, jsou procenta nižší a algoritmus s tím dále počítá.

Jak potom vyhodnocujete, že někdo, kdo s vámi sdílí polohu, mohl být v kontaktu s někým nakaženým?

Vyhodnocuje to grafový algoritmus kontaktů lidí, který určuje na základě historie jejich polohy, jestli se mohli, nebo nemohli potkat. A nad ním je část, která vyhodnocuje to, jak se při kontaktu, který je definovaný polohou, časem a změnou polohy (jestli třeba dva lidé šli vedle sebe), zvýšila, nebo nezvýšila pravděpodobnost, že ze zdravého člověka je člověk infekční. Počítá samozřejmě i s tím, že kontaktů mohlo být víc, v průběhu dne, s různými lidmi a tak dál.

Jak přesný ten algoritmus je? Přece jen, když někomu napíšete, že byl v kontaktu s nakaženým, může to pro něj být docela stresující zpráva.

Zatím máme data jen za několik dní. Můžu tak vycházet jen z první testovací várky lidí, kteří se sami nahlásili jako infekční. Když nám data došla, dívali jsme se večer, že máme určitou množinu lidí, kteří mají zvýšenou pravděpodobnost, že se nakazili. A když jsme přišli druhý den ráno, tak se všichni tito lidé sami nahlásili. 

Byli jsme z toho sami překvapení, říkali jsme si, že máme systém nastavený možná až příliš přísně, protože všichni, koho jsme detekovali, se sami nahlásili jako nakažení. 

Teď ladíme citlivost algoritmu, protože je možné, že jsou lidé, kteří jsou bez příznaků, třeba ani nejdou na testy, jen zůstávají doma, ale přesto můžou někoho nakazit. Snažíme se aplikaci vyladit tak, aby aspoň část těchto lidí cítila, že mají nějakou odpovědnost. Na druhou stranu nechceme vyvolávat paniku, ta nemoc je velký strašák, chápu, že se lidé můžou cítit hodně stresovaní.

Jak vypadá notifikace, kterou potenciálně nakaženým lidem posíláte? Jak jste se vypořádali s tím, aby z ní nebylo možné odvodit, od koho se dotyčný nakazil?

Ta notifikace je hodně citlivá věc. Hodně jsme přemýšleli o tom, jak to udělat, aby člověk nebyl schopen identifikovat případného nakaženého, se kterým se setkal. Nechceme to pouštět ven, nakaženým lidem by to mohlo způsobit nepříjemnosti. My je nechceme identifikovat, ani zhruba. Upustili jsme nakonec i od záměru, že v notifikaci sdělíme datum, kdy ke kontaktu s nakaženým došlo. Říkáme jen, že se zvýšila pravděpodobnost, že k nakažení mohlo dojít.


Autor: Seznam.cz

Ukázka notifikace

Ale když třeba bydlím v nějaké malé obci, pořád můžu odhadnout, kdo ten nakažený byl.

S tím se asi nic dělat nedá. Ale na malých vesnicích myslím ani není nutné tipovat, tam to všichni vědí (smích). Přemýšleli jsme o tom, jak bychom tu notifikaci ještě víc zamaskovali, ale cílem je toho člověka varovat včas, nemůžeme mu ji poslat třeba za dva měsíce, aby si už nedokázal vzpomenout, s kým se potkal.

Nenabízí vaše aplikace lidem falešnou jistotu? „Nepřišlo mi žádné varování, tak jsem se určitě nikde nenakazil“.

Doufáme, že ne. Kdybychom chtěli dát lidem falešnou jistotu, mohli bychom jim ukázat nakažené na mapě, a oni by pak mezi nimi kličkovali jako v PacManovi (smích). To by asi byla ta skutečně falešná jistota, protože pak by ten člověk někde sáhnul na kliku, sáhl by si na tvář a stejně by to chytil. 

My na rovinu říkáme, že náš algoritmus je pravděpodobnostní, pracuje s určitou nejistotou, neříká, že je někdo stoprocentně zdravý, nebo nemocný. Říká jen, že pravděpodobnost toho, že se člověk mohl nakazit, je vyšší. Když člověk nedostane upozornění, nemusí to znamenat, že nakažený není. 

Algoritmus je závislý hlavně na tom, že se lidé účastní celého procesu, že se hlásí nakažení, že nám vyléčení ohlásí, že už nejsou infekční, abychom zbytečně nenotifikovali někoho dalšího. Algoritmus není stoprocentně jistý, takový podle mě ani neexistuje.


Autor: Seznam.cz

Tým Mapy.cz

Máte určený práh počtu zapojených lidí, pod kterým by algoritmus vůbec nedával smysl a nefungoval by?

Na začátku jsme si opravdu nebyli moc jistí. Sběr dat je hodně citlivá věc, lidé ho mohou vnímat negativně. A když jsme sběr spustili, napjatě jsme seděli u počítadla přihlášených lidí. Za první večer ten počet naskákal na sto tisíc a my si oddechli (smích). Teď, když se blížíme milionu, je algoritmus bez diskuse použitelný, vzorek je velký.

MM_influenceri eSport

Důležitá věc na závěr: co budete s nasbíranými daty dělat ve chvíli, kdy už je pro notifikování lidí nebudete potřebovat? Co se s nimi stane, až epidemie skončí?

Na tom, že u nás jsou data v bezpečí a že s nimi pracujeme jen v rámci toho, na čem jsme se s uživateli dohodli, je to celé postavené. Zklamat důvěru lidí by byla smrt nejen pro tuhle aplikaci, ale i pro celé Mapy.cz. Od začátku deklarujeme, že až epidemie skončí, data smažeme. Jediné, co si necháme, jsou zdrojáky aplikace. Myslím, že se ještě v budoucnu můžou hodit (smích).