Travis Green, vedoucí vývoje Google Prediction API

Travis Green, vedoucí vývoje Google Prediction API | foto: Pavel Kasík, Technet.cz

Google: Když máte hodně dat, můžete předpovídat budoucnost i chuť piva

  • 97
San Francisco (Od zvláštního zpravodaje Technet.cz) - Pomocí volně dostupného nástroje může kdokoli využít algoritmů společnosti Google k předpovídání budoucnosti. Nesmíme ale zapomenout na náhodu, připomíná Travis Green, šéf vývoje Google Prediction API.

Strojové předvídání budoucnosti

Strojové učení - snaha o uspořádání rozličných vstupů

Prediction API vychází ze statistické analýzy dostupných dat a strojového učení. Systém umožní předvídat nejpravděpodobnější výsledek dané situace na základě částečných dat a předchozích výsledků.

Čím lépe někoho znáte, tím lépe dokážete předvídat jeho přání nebo náladu. Internetové obchody nebo vyhledávače nás takto zkoušejí přečíst už dlouho. Když jsme si koupili cédéčko s Beatles, doporučí nám Pink Floyd, protože mnoho lidí si kupuje CD obou skupin.

"V podstatě neexistuje žádné omezení toho, co lze nebo nelze předvídat," říká Travis Green, šéf týmu vyvíjejícího Google Prediction API. "Když máte relevantní data, můžete dosáhnout přesnosti hraničící s náhodou v systému."

Tím, že Google dává Prediction API k dispozici všem programátorům, chce povzbudit fantazii tvůrců služeb k novým aplikacím této strojové inteligence.

Na konferenci Google I/O 2011 jsme se čtyřiadvacetiletým Travisem Greenem mluvili o možnostech počítačových předpovědí, jejich výhodách a rizicích.

Když máte dostatek dat, získáte kvalitní předpovědi

K čemu slouží Google Prediction API? Dá se říci, že Google pomáhá předvídat budoucnost?
Velice jednoduše lze říci, že Google Prediction API je cloudová služba specializovaná na strojové učení. Učí se vzorce v dostupných datech, třeba o tom, co kdo kdy kde koupil, a z těchto vzorů se učí a předvídá další data. Umí předvídat, o co by se mohl zajímat nový zákazník. Tenhle druh předpovědí se dá uplatnit skoro kdekoli.

Jde o převratnou službu, nebo jsou tu podobné nástroje k dispozici už dlouho?
Samotné strojové učení není žádnou novinkou. Řekněme, že tak před dvaceti lety už se etablovalo jako svébytné odvětví, do té doby bylo možné spíše teoreticky, málokdo měl dostatek výpočetní kapacity.

My jsme první, kdo nabízí API, tedy programátorské knihovny, které může kdokoli zdarma využít. Můžete tedy vytrénovat svou vlastní "umělou inteligenci" na svých vlastních datech.

Mohli bychom predikci vysvětlit třeba na spamovému filtru, který už dnes všichni znají?
Ano, to je asi nejjednodušší predikce, každý ji zná. Počítači někdo řekl, které e-maily jsou nevyžádaná pošta, a on se podle toho snaží poznat, zda je ten který nový e-mail spamový.

Dalším příkladem je to, co Google dělá už od začátku: vyhledávání. Když zadáte vyhledávači dotaz, musí vyhledávač předvídat, co je pro vás důležité, a co důležité není. Musí výsledky seřadit podle dostupných indicií, což je samozřejmě mnohem komplikovanější, a nebudu, ani nemůžu, zacházet do detailů. Naše Prediction API v podstatě zpřístupňuje tyto léty ověřené techniky širší vývojářské veřejnosti.

Také filtry, které odstraňují škodlivý obsah z výsledků vyhledávání, se neustále učí, a jde tak o předvídání v našem slova smyslu.

Travis Green diskutuje s programátory na Google I/O 2011

Jak dlouho už Google vyvíjíte Prediction API?
U Googlu jsem teď rok a stejně tak dlouho Google na této službě pracuje. Ze začátku jsme ani nevěděli, jak a zda budou lidé službu používat. Jen jsme věděli, že má Google skvělé algoritmy na učení se z dat, a že by bylo zajímavé tyto funkce zpřístupnit.

Naslouchali jsme požadavkům: chceme, aby to bylo přesnější, rychlejší, chceme nahrávat své vlastní rozhodovací modely. Na tyto připomínky reagujeme a systém vylepšujeme. Nyní jsme představili galerii dat, takže pokud uživatelé dovolí, mohou jejich data pomoci zpřesnit předpovědi pro ostatní. (Ve výchozím nastavení jsou všechna data, která nahrajete, přístupná pouze vám. - pozn. red.)

Jaká je vaše oblíbená věc, kterou umí Prediction API předvídat?
Moc se mi líbí služba, kterou teď testuje Ford. Auto podle času a dne v týdnu odhaduje, kam asi jedete a jaký bude provoz, a podle toho vám nabídne trasu. Může to přispět k nižší spotřebě paliva a lepšímu využití času i možností auta (např. u hybridního motoru).

Firma Ford testuje použití předpovídání a sledování vzorů chování pro ekologičtější provoz automobilů
Firma Ford testuje použití předpovídání a sledování vzorů chování pro ekologičtější provoz automobilů

Firma Ford testuje použití předpovídání a sledování vzorů chování pro ekologičtější provoz automobilů

Neřekl bych, že jsem nadšený ze samotného Prediction API, spíš se stále raduji z nových aplikací, které díky němu lidé vytvoří. Spoustu z těchto použití bohužel nemůžu uvést, slíbili jsme, že zachováme plné soukromí našich uživatelů. Ale mohu vám říci, že se s Google Prediction API na internetu setkáváte častěji, než si myslíte.

Co je to API?

API (zkratka pro Application Programming Interface) označuje v informatice rozhraní pro programování aplikací. Tento termín používá softwarové inženýrství. Jde o sbírku procedur, funkcí či tříd nějaké knihovny (ale třeba i jiného programu nebo jádra operačního systému), které může programátor využívat. Zdroj: Wikipedia

Nějaká vtipná použití vašeho API? Něco obecného, žádná jména...
Někdo zkusil seřadit uživatele Twitteru podle jejich aktivity: papouškové pořád po někom něco opakují, kreativci vytvářejí nový obsah. To bylo celkem vtipné.

Já jsem zase dělal na službě, která uživatelům doporučuje druhy piva podle toho, která piva nebo jídla jim chutnají. Je to složitější úkol, než se zdá. A Google Prediction API se k tomu hodí.

Google používá predikci třeba v Google Readeru nebo Gmail Priority Inboxu...
Ano, to jsou stejné technologie. Nedá se říci, že Google používá přímo naše API, spíš čerpáme ze stejných postupů a knihoven. Jednoduše řečeno, pomocí našeho API můžete vytvořit velice podobné služby.

K předpovídání potřebujete hodně dat

Předpovídání nezní jako věda, ale jako věštění z křišťálové koule. Jakým požadavkům musejí data vyhovovat, aby se z nich dalo něco předvídat? Je třeba jasné, že nemůžete předvídat hod šestistěnnou kostkou, ať byste měl dat, kolik chtěl...
To je důležitá poznámka, ne všechno lze předvídat. Každá data budou mít nějakou náhodnou odchylku, a to je teoretický limit úspěšnosti naší predikce.

Systém nemůže předvídat, když nemá k dispozici ta správná data. Můžete předvídat skoro cokoli, ale je otázkou, jaká data máte k dispozici. Když nevíte, co má uživatel rád, nemůžete mu doporučit, co by se mu mohlo líbit.

Travis Green, vedoucí vývoje Google Prediction API

To souvisí s cílem Googlu, shromáždit všechna data a učinit je prohledávatelnými...
To ano, ale data, která uživatelé nahrají k nám, Google neshromažďuje, přístup k nim máte jenom vy. Pouze pokud se rozhodnete dát je k dispozici ostatním, můžete tak učinit prostřednictvím našich nových galerií dat.

Vysvětlí mi systém, proč tu kterou předpověď udělal, nebo se dostanu jen k výsledkům? Třeba to, že lidé si vybírají knížku na základě autora, zatímco na ceně jim tolik nezáleží apod.
Tyto informace v současné době přístupné nejsou. Dalo by se to ale implementovat, zkrátka byste modelování rozdělil do diskrétních skupin a poté je kombinoval, pak byste zjistil, co je pro predikci nejdůležitější. Můžete si udělat jednotlivý prediktivní model podle ceny, další podle autora, jiný podle předchozích objednávek. Ale to je trochu zdlouhavé.

Ale zase by tak uživatel získal nejen predikci, ale i nějaký kontext, nějaké porozumění...
Ano, to je pravda. Náš model to dělá automaticky. Uživatel se příliš nemusí starat o porozumění modelu či o kontext, model se bude podle nových dat okamžitě adaptovat a zlepšovat.

Ale často je potřeba vědět, proč něco děláte, nestačí, že to vyšlo na počítači.
Rozhodně.

Vidíte nějaká nebezpečí těchto prediktivních modelů? Je jasné, že výrobce nožů nemůže být zodpovědný za vraždu nožem spáchanou...
...přesně touhle metaforou jsem se chystal odpovědět...

...ale stejně, pokud někomu dáte jenom kladivo, všechno mu začne připadat jako hřebík. Co když začnou lidé na tyto predikce příliš spoléhat a přestanou samostatně myslet?
Myslím, že k tomu máme ještě daleko. Lidé jsou chytří, opravdu chytří. A lidé budou vždy muset udělat důležité kroky, které počítač nezvládne.

Ale lidé jsou také neuvěřitelně líní. Dokážu si představit, že kvůli spoléhání se na počítačové predikce se nikdo ani nezeptá na nějakou důležitou otázku.
Ano, chápu co tím myslíte. Jednou z věcí, kterou svému týmu stále opakuji, je: ujistěte se, že je v tom algoritmu trochu náhody. Maličko. Jen tak, aby to celé nezapadlo do vyjetých kolejí. V některých problémech to je obtížnější než jinde. Takže třeba když doporučujeme pět knih, dáme tam nejrelevantnější čtyři a tu pátou vybereme náhodně.

Na to jsem se chtěl také zeptat. Co si myslíte o protikladu hledání a objevování (anglicky: search and discovery)? Myslím, že i při nejlepším algoritmu získáte jen očekávané výsledky, což je vhodné pro hledání, nikoli pro objevování. Třeba při doporučování hudby.
Tam vám to ale nedoporučí jen skladby, které už znáte, ale i skladby, které se líbí lidem, co s vámi sdílí váš vkus. Věci, které se líbí lidem, kterým se líbí podobné věci, jako vám.

A nemyslíte, že tyhle služby fungují jen proto, že do nich pořád vstupují noví uživatelé? Jakmile tu službu budou používat všichni, tak se uživatelé rozskupinkují na zájmové skupiny, ty se polarizují, a členové těchto skupin se budou vzájemně upevňovat ve svém vkusu, bez možnosti objevit něco z vnějšku.

Máte pravdu, vím přesně, co myslíte. Je třeba to mít při návrhu systému na paměti a do této pasti nespadnout. Často stačí trochu náhody a lze se tomu vyhnout úplně, někdy je potřeba se proti tomu pojistit.

To je přesně důvod, proč nabízíme naše API. Programátoři se teď můžou soustředit na tyto důležité otázky návrhu systému a nezabývat se detailními principy predikce jako takové, nemuset řešit jednotlivé algoritmy.

Nejde o to, co jsi řekl, ale jak jsi to řekl...

Analýza sentimentu

Analýza sentimentu (anglicky sentiment analysis) odhaduje emoční záměr či vyznění určitého textu. Dokáže tedy například určit, že věta "Už mám toho deště plné zuby" je negativně zabarvená, zatímco věta "Tak to je dost dobrý!" obsahuje chválu.

Využití nachází například při monitorování toho, jak zákazníci vnímají určitou značku a jak se na její vrub vyjadřují na sociálních sítích.

Podívejme se na analýzu sentimentu. Jak funguje? Dokáže detekovat i humor, ironii a sarkasmu?
Analýzu sentimentu jsme vyvinuli jako takový dílčí projekt. Zatím ji nabízíme spíše jako ukázku, abychom povzbudili představivost lidí, chceme, aby přemýšleli, k čemu všemu by byla užitečná.

Mezitím pracujeme s našimi partnery na vylepšení analýzy sentimentu, rozšíření na další jazyky a další kontexty. Třeba v kontextu Facebooku se lidé vyjadřují za použití jiného rejstříku jazyka.

Plánujete uveřejnit analýzu sentimentu také formou API?
To je náš cíl, chceme, aby využití bylo stejně jednoduché, jako je tomu u Prediction API.

Nemyslíte, že lidé začnou psát věty schválně tak, aby je počítač nepochopil? Stejně jako rozesílači spamu si napřed ověří, že běžný systém jejich dopis odfiltruje.
Ano, to se dá očekávat. Je to otázka kontinuální adaptace modelu a případně i lepšího filtrování. Spoléháme i na další ukazatele a zpětnou vazbu uživatelů.

Myslíte, že bych mohl využít Prediction API i na vyhledávání zajímavých novinek pro naše čtenáře?
Rozhodně, to by mělo fungovat docela dobře. Můžete použít kategorizaci: "dobré téma", "průměrné téma", "šlo by to", "nevhodné téma". A nebo rovnou sledovat čtenost. Je dobré vyhnout se binárním kategoriím, ty předpovědím moc nesvědčí.

A co říkáte na to, že jste se krátce po studiích dostal na vedoucí pozici u společnosti Google? Nezávidí vám spolužáci?
V mém oboru to není až tak výjimečné, aby velká společnost najímala mladé absolventy. Jsem ale velice vděčný, uvědomuju si, že to bylo štěstí. A mým úkolem není jen vést lidi, ale být jakýmsi mezičlánkem (angl. interface) mezi programátory a veřejností.

Děkuji za rozhovor a těším se, až mi vaše nástroje začnou doporučovat všechno možné...
(smích) Až narazím na nějaký vtipný příklad, který budu moci zveřejnit, dám vám vědět.