21. listopadu 2010

Google Prediction API aneb získejte více informací ze svých dat


Na letošní květnové konferenci Google I/O bylo představeno plno novinek (oproti loňskému roku kdy byl představen jeden produkt... No a kde je teď Wave a kde Lars :) Jedním z produktů, či spíše služeb je Google Prediction API. Ve snaze porozumět o co se jedná jsem se spokojil s jednoduchým příkladem - třeba přeložení jazyka. A s tím jsem žil několik měsíců. Chyba! V poslední týdnu jsem se začal o tuto problematiku více zajímat a objevuji zajímavou, zatím nepříliš známou službu. Takže si ji pojďme představit...


Ukázkové motivační business řešení
  1. Zjistěte jaké produkty Váš zákazník v historii nakoupili (např. víno, sýr, olivy, párátka,..)
  2. Porovnejte toto chování se všemi zákazníky a najděte ty s nejvíce podobnou preferencí
  3. Odeberte již koupené produkty a zaměřte se na ty zbylé (pokud je tam produkt vícekrát dejte mu větší váhu)
  4. Nabídněte svému zákazníkovi co bych mohl chtít/potřebovat
  5. Ve zkratce? Právě jste udělali doporučování produktů jako to dělá Amazon



Jak název vypovídá jedná se o předvídání či odhad budoucího vývoje z dat minulých a vztahy mezi nimi. Vše funguje jako ostatní Google produkty- formou služby a napojení na API. Tedy něco jako blackbox - černá skřínka, u které nevíte jak přesně funguje a v důsledku vás to možná ani nezajímá. Důležité je znát jaká data máte dát na vstup a jaká na výstup. Stejná paralela je s Gmailem, kde také nemusíte tušit jaké přesné procesy a funkce se o tuto službu starají, zajímá Vás jen z uživatelského hlediska funčknost.

Takže si nejdříve vytvoříte vzorek dat  - jedná se o obyčejný textový soubor s hodnotami odělenými čárkami (CSV) - co řádek to jeden vzorek. Tento soubor se nahraje do další nové služby - Google Storage for Developers. V té máte uložený své příhrádky (bucket) na soubory (object). Představte si to jako třídění do složek.

Poté je potřeba vytrénovat svoji umělou inteligenci,. To se dělá přes odesláním požadavků na speciální URL (předpokládá se že už máte auth. token)

POST https://www.googleapis.com/prediction/v1.1/training?data=prihradka%2Fdata


Počkejte chvíli než se data zpracují, celková délka je závislá na velikosti souboru. Data ke zpracování opět posílat na URL



POST https://www.googleapis.com/prediction/v1.1/training/prihradka%2Fdata/predict


s daty v těle


{"data":{
  "input" : {
    "mixture" : [ sloupec1,sloupec2 ] }}}

Zpátky dostanete výsledek, který se liší podle toho do jaké kategorie patří (tedy zda chceme data zařazovat do skupin nebo chceme předvídat nějaký vývoj)

Vytváření modelů se dělí do dvou kategorií:
  • klasifikační 
  • regresní
Klasifikační model
Jak název vypovídá, potřebujete klasifikovat data. Nejlépe si to ukážeme na příkladu. Představte si že máte emaily a ty potřebujete automaticky roztřídit. Např. emailová podpora/helplinka pro různé oblasti (vývoj, konzultace, školení, oprava, atd). Všechny texty emailů si oštítkujete kam patří a vytvoříme z nich textový soubor.

"vývoj", "Dobrý den, rád bych si nechal vyvinout"
"školení", "Objednávám školení"
"oprava", "Rozbil se mi počítač, pomozte"
"konzultace", "Sháním dobrou radu"
"školení", "Kolik stojí ten kurz Google Wave"
"konzultace", "Dobrý den, potřebuji poradit"

Čím více dat máte, tím bude výsledek přesnější. Opět nahrajeme na web (Google Storage) a necháme vytrénovat bázi. Poté pokud pošlete jakoukoliv větu, např.  "Je to rozbité potřebuji pomoc", systém vyhodnotí do jaké kategorie nejpravděpodobněji daná věta patří. (v našem případě by mohlo jít o sekci oprava). Velmi jednoduše si takto můžete třídit emaily do různých oddělení podle klíčových slov a vztahů mezi nimi.


Regresní model

Opět vstupem je textový CSV soubor, jenže v tomto případě se snažíte odhalit budoucí stav. Pokud máme data jako na obrázku níže, tak první hodnotou je velikost dané osoby (označeno jako Example Value). Zbývající data na řádku (featurese) tuto hodnotu určují. V našem případě jde o pohlaví, výšku otce, výšku matky a pak národnost. Cílem v případě regresního modelu vložit data (např. "M", 1.68, 1.8, "Czech"), tak aby nám to vrátilo na základě předchozích dat, odhadnout hodnotu výšky daného jedince.


Služba je zatím pouze na pozvánky, navíc potřebujete přístup do Google Storage for Developers, které je taky na pozvánky. Možných řešení nabízí velmi mnoho, viz pár nadhozených příkladu z Google prezentace níže.




Pokud chcete být první a máte chuť realizovat podobnou implementaci ve svém obchodě nebo projektu, ozvěte se mi na ivan@appsatori.eu . Můžeme se domluvit na spolupráci a analýza či implementace Vás může vyjít zdarma (jakožto ukázková případová studie s anonymizovanými daty)

/ dopl.:  pouze pro smysluplné a zajímavé projekty, vyhrazuji si právo výzvu zrušit /






    Zajímá tě více?

    18. listopadu 2010

    Punk's not dead!! A PageRank?

    Nadpis by mohl znít - PageRank is still not dead. V dnešní době jak jsou informace strukturovány, již nestačí používat staré algoritmy, což si uvědomuje i Google a snaží se přizpůsobovat

    Nápad na článek vznikl cca před uvedením nového Google indexu s názvem Caffeine, přesto bych se nebál říci že hlavní myšlenka zůstane zachována http://googleblog.blogspot.com/2010/06/our-new-search-index-caffeine.html

    Rychlý úvod
    Každý se chybně domnívá,že Google přišel s myšlenkou geniálního algoritmu se kterým porazil tehdejší konkurenci. Ano chytré provedení matematických zákonů hrálo svoji roli v úspěchu,úspěch tkvěl někde jinde

    V době před 10 lety lidé přistupovali k informacím naprosto rozdílným přístupem - přes katalogy a jeho kategorie. Vyhledávač v portálu primárně prohledával svoji databázi (která byla zpočátku plněna ručně) a na "celém internetu" vyhledával s velmi špatnými výsledky. Google tedy konkurenci neporazil, ale naopak vytvořil trh - na kterém byl první a nejlepší. Tím že se soustředil na jednu věc (organizace stránek, hodnocení důležitosti dle PageRanku), mu pomohlo k získání velkého náskoku. Odstupem času vidíme jak dobře vizionářské myšlení měli. Většina přístupů na stránky je řešena z vyhledávače... Nebo snad při nákupu nového fotoaparátu jde do elektronického obchodu cestou katalogu: Obchody > Elektronika > Fotoaparáty > Digitální fotoaparát ?

    PageRank
    PageRank je číslo - kvantifikovaná metrika či způsob jak ohodnotit kvalitu stránky. Paralelou je hodnocení kvality vědeckých prací. Pokud na Vás odkazuje kvalitní stránka, znamená to že jste hodnotnější než ostatní. V době kdy stránek bylo relativně málo, tak nejlepší výsledek často obsahoval hledanou frázi v těle stránky. Bohužel pro toto ohodnocení s postupem let příbývala další veličina - a to právě čas

    Pokud nyní vyhledáváte na internetu, často se na prvních pozicích objevuje sice kvalitní, ale zastaralý obsah.
    Největším problémem je měření jablek a hrušek, včetně toho jak ohodnotit co je nejkvalitnější napříč časem

    Na diagramu můžeme vidět dva pohledy - aktuálnost (v čase, novější je vpravo) a pak kvalita stránky (jako PageRank, vyšší je nahoře).

    V dnešní době pracují vyhledávače pouze s jednou úrovni (modrou) a tedy řadí podle PageRanku. Nastává zde problém pokud vznikají podobné stránky, které jsou v čase novější, nemají tak vysoky PageRank ale mohou být kvalitnější.

    Existují 4 variatny, ty 2 jednodušší z nich:
    • starou stránku s nízkým PageRankem můžeme rovnou vyřadit - koho by zajímalo něco neaktuálního navíc, nerelevantního (vlevo dole, přeškrtnuta)
    • novou stránku s vysokým PageRankem s radostí uvítáme - jde o akutální věc, která si za "krátkou dobu" dokázala získat pozornost, tudíž její kvalita byla ověřena (označena číslem 1)
    Jenže pak jsou další dvě varianty, mnohem složitější aneb jak porovnat mezi sebou v čase. (na obrázku "A" a "B"). Je to ta která na webu je 10 let, odkazují na ní plno stránek, jenže stále pracuje s daty pro IE 5.5
    nebo je to nová,aktuální -s nižším PageRankem.

    Důsledek
    V praxi to vypadá tak že pokud hledám např. něco spojené s JavaScriptem, dostáváme pěkné výsledky z pohledu PageRanku, jenže často se zastaralým časem v datu.. A novější stránky často musíte ručně omezovat

    Částečné řešení? Např. po spojení s daty ze sociálních sítí, tak jak to chystá udělat Bing s Facebook "lajky"
     Bringing Your Friends to Bing: Search Now More Social

    Nebo způsob, jak převést číslo z jedné úrovně do druhé. To by mohl být nový hledač..



    Zajímá tě více?

    9. listopadu 2010

    ChatSquare = chat k FourSquare venue / připravte se na Google Developer Day

    Tak jak to bývá, dobrý nápad nečeká dlouho na svoji realizaci. Před rokem  (prosinec 2009) jsem v rámci příprav marketingové studie pro Vodafone navrhnul chat založen na virtuálních místech. V té době to byl jen nápad, který neměl jasný model pro operátora (což chápu, mě se líbila ta myšlenka)  Zpětně jsem rád že dostává myšlenka konkrétní obrysy, ačkoliv u někoho jiného (v té době byl FourSquare u nás v plenkách a jako primární identitu jsem navrhoval Facebook - tedy takový malý Facebook places :-) A jak jsem to myslel? Chat/komunikaci s lidmi v okolí, se kterýma se neznáte, založeno primárně na školy, kdy můžete komunikovat se spolustudenty :)


    ChatSquare
    Před 14dny jsem objevil americký startup ChatSquare http://chatsq.com/ který toto plní dostatečně.


    Stačí provázat se svým účtem (primárně FourSquare ale nabízí se i možnost Facebook Places). Po přihlášení v jednoduché aplikaci můžete vybrat s kým chce komunikovat
    • s kýmkoliv napříč celým světem
    • s kýmkoliv v okolí
    • s lidmi k danému místu




    Připravte se na Google Developer Day
    Letošní GDD by mohl být zajímavý, pokud by účastníci mohli spoluchatovat, aniž by spamovali twitter - k čemuž v poslední době dochází. Nechme tedy Twitter na konkrétní zajímavé věci a domlouvání interních věcí (přebíhání mezi sály, hledání, doporučování, komentování) na této službě. Chatovací venue stejné jako tam kde se checknete...



    Chatujte na venue Vysoké školy ekonomické v Praze
    Jako mayor Vysoké školy ekonomické navrhuji na tomto místě s nejvíce checkiny v ČR (hned po Ruzyni)  používat tuto službu :) Bude to sranda a fajn k beta testování. Buďte prvními aktivním uživateli u nás!! Startujeme ve středu 10.11.



    Jak začít používat ?

    1) Z mobilu přistupte na adresu http://www.chatsq.com/
    2) Provažte s FourSquare účtem a vytvořte účet
    3) Najděte přátele a chatujte :)



    Zajímá tě více?