Magamról

Saját fotó
Főiskolai, majd egyetemi diplomamunkáimtól kezdve világ életemben, adatok, adatbázisok, adattárházak (leginkább Oracle) környékén mozogtam. Mostanság adattárházasként, adatbányászként élem napjaimat.

2010. augusztus 30., hétfő

Kérdés-felelet alapú kereső

.
Az index-címlap mai vezércikke az alábbi:

Jó kérdésre hülye válasz

Ezzel a kérdezz-felelek keresővel, mint témával sose foglalkoztam, még gondolati szinten sem, pedig szenzációs és érdekes téma. A cikkben említett közösségi támogatásról is csak egy konkrét projekt esetében hallottam, a Yahoonak volt egy képfelismerős / képaláírás-generálós története, ahol, ha két ember ugyanazt mondta, akkor elfogadták képaláírásnak.

Pár gondolat, ami eszembejut így reggeli elött:

* A legnagyobb részét a projektnek - a szövegbányászatot - most abszolút nem említeném, ez volt / van / lesz, hatalmas téma. Ennél a tárgybeli projektnél "csak" fel kell használni a téma arzenálja nyújtotta támogatást.

* Két technika merül fel azonnal a feladatban /mint a jelszótöréseknél :o)/ -> az algoritmus alapú és a szótár alapú technika. Az egyik amikor algoritmikusan meg akarjuk érteni, a gép számára értelmezhetővé akarjuk tenni például a "mi a szerelem" típusú kérdést. A másik amikor például konkrét kérdésre a konkrét válasz megvan a neten, akkor ezeket csak lajstromba kell venni és az összes rokon módon feltett kérdést csak pluszba rájuk kell irányítani (meg persze kezelni a bábeli nyelvzavar örökölt problémáját).

* Mi a fenti bulletpoint üzenete? Hogy érdemes végiggondolni mekkora alapkincs (szótár) áll a rendelkezésre kérdés-válasz gyűjtésre. Az intuició azt súgja (legalábbis e blog írójának), hogy alapvetően és először alulról felfelé érdemes építkezni (minél automatikusabban). Hozzátéve, hogy fölülről-lefelé való építkezéseknél célszerű minél hatékonyabban bevonni az emberi közösséget.

* A következő gondolatom a témában, ami csak közvetetten derül ki az indexes cikkből, hogy nem válogatás nélkül dolgoznám fel szövegbányászattal a netes dokumentumokat (azok irdatlan és nagyon zajos mennyisége miatt) kérdés-feleletek után nyomozva, hanem
(1) venném a már meglévő kérdezz-felelek adatbázisokat
(2) aztán venném a hagyományos keresők keresőkifejezéseit
(3) míg legvégül a természetes emberi nyelv szókincsét.
(+1) az ezutáni következő lépésen meg ráérek a következő témabeli poszt írásakor gondolkodni. :o)

* Mi esik át a szitán a fenti menetrend alapján? Hát az olyan kérdések, amik értelmesek,  van is rájuk válasz, csak még nem tették fel. Én viszont azt mondom, az első fázisnak a már feltett kérdéseknek kellene lenniük. És számomra kérdés, szükséges-e egyáltalán egy ilyen projekt keretében foglalkozni a potenciális kérdésekkel. (Az persze nyilvánvaló, hogy a folyamatosan érkező új kérdésekk persze bővítést jelentenek, nem ezt feszegetem e bekezdésben).

* Legvégső esetben meg a kérdezz-felelek símán átcsaphatna normál keresőbe, ha nem sikerül választ adni (ehhez persze algoritmikusan fel kéne ismerni a jól nem megválszolható kérdéseket illetve kellene generálni egy hagyományos keresőkifejezést. Ez egy igen izgalmas alprojekt lehetne.

* A definitive kérdezz-felelek adatbázisok már eleve kérdés-feleleteket tartalmaznak, ugye, ott maximum az összefűzés (merge), hiperlinkelés és a többnyelvűség lehet csak a probléma (nagy vonalakban).

* Azt gondolom triviális: keresőkifejezés-alapú kérdezz-felelek keresőt a Google Corporation tudna építeni leggyorsabban és leghatékonyabban, és ami fő alapvetően közösségi támogatást nem igénylően, tök automatikusan. A guglinak ugyanis óriási adatbázisa van/lehet a már eddig neki feltett kérdésekről:

(1) Összes feltett keresőkifejezés (darabszámmal)
(2) A feltett kérdésre adott találati oldal(ak)
(3) A találati oldalakon egymás utáni klikkelések, különösen az utolsó klikkelés
(4) IP-címről indult-e új keresés
(5) Leszűrni mely oldalakon találnak választ a kereső felhasználók (gyakoribb kérdéseknél)
Stb.

* Ha már említettem az irdatlan mennyiséget és a zajt: miért is a keresőkifejezések alapján érdemes elkezdeni bővíteni a kérdezz-felelek alapadatbázist? Mert legyünk durvák van a nyelvünkben durván egymillió szó, ami szófajokba szervezhetők, és van használati gyakoriságuk. Ha el kezdenénk generálni az értelmes kérdéseket (pl.: "van-e élet a halál után" típusúakat), az nem egy beláthatatlan feladat. A rettenet feladat az ahhoz kötödik, hogy a világban lévő minimum exabyte méretű információtenger van, ami rohamosan nő is. Igenám, de annak nagy része zaj és szemét, és lássuk be értelmes ember kérdése alig-alig vezet bele.

* Összefoglalva tehát, nagyon sok információ van, ezek túlnyomórészt atomiak, rájuk egyszerű kérdéseket generálni ("hány betű van a taxi szóban"), viszont nagy részére a kutya sem kiváncsi. Nemkicsit szemfényvesztés tehát az indexes cikkben a százmilliárdok említése. A másik véglet, hogy vannak az értelmes, egyre komplexebb és/vagy több alakú kérdések kérdések, amikre jó lenne választ találni, ezekből jóval kevesebb van, viszont a kérdés-válasz generálás is nehezebb feladat.

* Itt érkeztünk el tehát a következő fázishoz, hogy a kérdéseket tehát alaposan rendszerezni kell. Hogy ne mondjam hierarchiába / taxonómiába szervezni őket, súlyozással / priorizálással kombinálva.
(1) Mik a különböző alakú de azonos kérdések
(2) Mik a gyakori kérdések,
(3) Mely kérdések kérdeznek atomi vagy összetett információra
Stb.

* Informatikusként / programozóként, azért nem lenne lehetetlen feladat egy ekkora projekt keretén belül, mondjuk egy programozási nyelvre egy értelemesen használható hierarchizált / hiperlinkelt FAQ / GYÍK generálása.

* Érdekes kérdés a közösségi támogatás bevonásának kérdése. Ott ugyanis nemcsak a hogyan a kérdés, hanem a hibaszűrést, a zajszűrést, a projekt elleni 'támadó' fellépést is megfelelően kell menedzselni.

* Persze van a dolognak létjogosultsága, hiszen az emberek szeretnek kérdéseket megválaszolni (meg válaszokat minősíteni (ratingelni), és adott esetben olyan minőségű válasz születhet humán erőforrás billentyűzetéből, amit programból generálni sosem lesz esélyes.

Végül, de nem utolsósorban a társblog mai szenzációs posztja egy kis derühöz: :o))

Képes illusztráció a PhD-ről

2010. augusztus 27., péntek

Előrejelzés. Kinek higgyen az ember?

.
Az index.hu friss cikke kiváló apropót nyújt arra, hogy egy régi fixa ideámról szóljak pár szót a blog keretei között.

Rémes hónapok várnak ránk

Ismét megszólalt a válságot már idejekorán megjósoló professzor, Nouriel Roubini. A jósprofesszor ezúttal az újabb gazdasági recesszió valószínűségét 40 százalékra tette, amit elsősorban a megszűnő kormányzati gazdaságélénkítő programok negatív hatásaival és a jegybank gyengülő hatékonyságával magyaráz.

Lépjünk túl az index.hu azon slamposságán, hogy pontosan milyen válságot is jósolt meg a professzor (amit a cikkben globális pénzügyi válságként aposztrofálnak)

Nézzük meg, hogy csak az indexen belül Roubini hogyan szerepelt, a 2008 nyárvégi Lehmann Brothers bedőlés elött. Persze kézenfekvően merül fel a kérdés, miért jövök itt az index.hu-val. Egyrészt mert rendszeren belül akarnám vizsgálni a dolgot, akkor is, ha adott konkrétumban a sajtóorgánum éppenséggel téved (rosszul hangsúlyoz). Másrészt mert az index.hu, a magyarországi online mainstream sajtó jellegzetes képviseletében, jelentős hatást gyakorol a magyar emberek véleményformálására, reakcióira (a híreivel, tálalásával). Különben sem vállalkozhatok egy blogposzt keretében mélyebb elemzésére, csak problémát szeretnék felvetni.

Mivel szerencsére elég jellegzetes neve van az úrnak, így könnyű a keresés.

Nyakunkon a pénzügyi válság? (2006.július 3.)

A régió országainak gazdasági-pénzügyi problémáival foglalkozik a Financial Times mai internetes kiadásának egyik cikke, külön kiemelve a lap szerint szinte minden fronton sebezhető Magyarországot - írja a Portfolio.hu. A neves brit lap utal rá, hogy a forint a május 29.-június 29. közötti időszakban mintegy 8,5 százalékot vesztett értékéből az euróval szemben, ami azt jelzi, hogy hazánk Európa legsebezhetőbb gazdasága. A kérdés csak az, hogy ez a probléma mennyire marad magyar határokon belüli, vagy mennyire bizonyul fertőzőnek az EU más felzárkózó gazdaságai számára - jegyzi meg a cikk.

Az FT Christian Menegatti és Nouriel Roubini 2005-ös tanulmányára hivatkozva kiemeli, hogy a 14 vizsgált kelet- és dél-európai feltörekvő gazdaság mindegyike jelentős folyó fizetési mérlegdeficittel rendelkezett. Ezek mellett több országban az államháztartás is magas hiányt mutatott.

Magyar üzletemberek nélkül Davosban (2007.január 25.)

Természetesen a szakértők rámutatnak a kockázatokra is: a New York Egyetem professzora, Nouriel Roubini előadásában kifejezésre juttatta azon aggodalmát, hogy kemény földet éréssel végződik az amerikai gazdaság szárnyalása.

Öt év múlva jöhet a válság (2007.május 21)

Ugyanakkor beléptek más jellegű kockázatok is, melyeket az extrém nagyságú likviditás és a hatalmas eszközbuborék képvisel – állítja viszont Nouriel Roubini, a New York-i Roubini Global Economics LLC elnöke.

Az első cikk emleget pénzügyi válságot de más kontextusban és azt firtatva, hogy éppen az olyan sebezhető kicsik mint mi, dönthetjük romba a világot.

Lehmann Brothers bedőlése elött 19 hónappal szintén(?) megkondulnak a vészharangok. Az események valóban "kemény földetérésben" kulmináltak. Mondjuk nem derül ki, hogy miért is vélekedett így a professzor. Nem belemenve a részletekbe, így ebben a formában csak 50-50% az előrejelzés beteljesülésének esélye, hiszen vagy igen vagy nem a végeredmény.

Lehmann Brothers bedőlése elött 15 hónappal már konkrétum is kerül elő. Az amerikai másodlagos jelzáloghiteles subprime válság motivumai bukkanak fel. Ehhez viszont nem kötödik válságjelzés.

Ha össze akarnánk foglalni mit tekintünk komolyan vehető előrejelzésnek, akkor tehát meg kéne követelni 
(1) egy eseményt (válság)
(2) egy időpontot valamilyen hibahatárral (hiszen válság mindig volt és lesz)
(3) valamilyen alátámasztó érvelést (hiszen világvégét egy jehovás is tud előrejelezni).
(+1) Plusz elvben mindehhez kapcsolódna utólag egy kiértékelés is, az időpont után.

Na ha ezzel megvolnánk akkor jön a következő lépés. Hány ilyen időpont elötti előrejelzés van a világban? Azt hiszem mondhatjuk, hogy
(1) nagyon sok
(2) a totális nemtől a teljes igenig a teljes spektrumot felölelően.
Ezekből kéne választanunk valahogy véleményünk megformálásakor.

A következő probléma, hogy ha valaki egyszer jelzett jól előre, akkor az ő szavára érdemes-e jobban odafigyelni. Miért is garancia egy sikeres előrejelzés egy további sikeres előrejelzéshez? Vagy megfordítva aki egyszer tévedett az legközelebb is téved?

Ugyanide vágó hasonlatos probléma (lásd még idősorok), az a divatos irány, ami igyekszik a hasonló típusú komplex folyamatokba ciklusokat belelátni ( Martin Armstrong: It's Just Time , Kondratieff hullámok ). Ez ugye megkönnyíti az előrejelzést hiszen (most durván szólva) a sinus görbénél is tudjuk mikor vevődik fel a maximum/minimum. De kérdés, hogy a ciklus valóban adekvát ciklus-e, örökéleten át tart-e, és ha nem akkor nem most generálódik-e kivétel. Azaz itt sem vagyunk beljebb a saját értékelésünkkor.

Most nem foglalkoznék az olyan pszichológiai vetületekkel mint önbeteljesítő jóslatok vagy az Antalffy Tibor tipusú armageddonistákkal. (Noha személy szerint én is sokszor inkább felhősen látom a jövő egét)

A kérdés azonban fennáll. Milyen előrejelzéseknek higgyünk?

Adatbányászként az alábbi analógiára támaszkodom. Az adatoknak mindig jobban lehet hinni mint az előrejelzésnek. :o) Hiszen ha már az adat is rossz, akkor azonnal nincs értelme a ráépülő előrejelzésről beszélni. (Az olyan komolytalanságokat most hagyjuk figyelmenkívül, hogy valaki rossz adat alapján jelez előre jól.)

Magyarán és lefordítva, mindig az érvelésekből érdemes szerintem kiindulni (és függetlenül attól, hogy ki mondja). Mennyire támaszkodik érvényes elvekre, mennyire jól súlyoz/priorizál, ha van mögötte adatos elemzés, az mennyire elfogadható stb. Az meg hogy egy földön mint emberek hálózatán végigfut-e egy rengés (mint például a mondjuk most így nagyvonalúan: 2008-cal induló globális pénzügyi válság) vagy pláne, hogy ez mikor következik be, azt az üveggömbbel dolgozó cigányjósasszony is ugyanolyan 'hitelesen' tudja prezentálni. Vannak annyira komplexek a (nyugati) gazdasági és társadalmi viszonyok, hogy ez mondhatni lehetetlen legyen (hitelesen).

Van viszont egy aspektus ami mellett nem mehetek el szó nélkül. A "befektetők" (akiket az index is előszeretettel emleget, és aki névtelen láthatatlan tömeg), azok
(1) szeretnek különféle konkrét elemzésekre támaszkodni, többnyire ösztön- semmint objektív komolyanvehető alapokon fogadják el őket (vagy hogy éppen melyikre fizetnek elő).
(2) Ami ennél is súlyosabb probléma a befektető aktorok együttesen óriási rengéseket tudnak előidézni a világban, rámutatva golyóbisunk emberiségének óriási sérülékenységére, egyúttal teret adva a másodvonalbeli politológia iránt érzékenyeknek egy jó kis ideológizálásra saját koncepcióik hirdetésére.

2010. augusztus 18., szerda

Prediktálás: pontosság vagy stabilitás?

.
Egy kicsit egyre cikibb, emiatt egyre inkább szégyellem magam, hogy az összes jó témát a szakmai társblog veti fel: én meg csak itt reflektálok (párhuzamosan és hosszúságtól függetlenül). Talán annyiban megbocsátható, hogy ez a valami, amit próbálok itt a felszínen tartani, az egyfelöl eléggé perifériális, másfelöl szeretném a tárgybeli egy-két mondatomat egy helyen látni, nem pedig hozzászólásokban szétszórva, általam is nehezen követhetően. Halkan jegyzem meg azt a további potenciális enyhítő körülményt, hogy még az sem kizárt, hogy meglehet vannak akik irántam való jóindulatból próbálják meg kúsza soraimon átrágni magukat (olykor reflektálásba is torkollóan), nem pedig a téma iránti szoros kapcsolódásból. (Nekik egyébként külön köszönet ezért, ezúton is)

Mennyire pontos a prediktív modellem?

Nem kizárt, hogy hülyeség a fenti címbeli terminológiai kötözködésem, az is lehet, hogy a szakmai életben tök egyedül vagyok vele /vállalom :o)/, de én sose pontosságban, hanem tágabb kontextusban mindig, pontosságot magába foglalóan stabilitásban gondolkodom, a prediktív modellek esetében.

Persze lehetne [pontosság;stabilitás] párban gondolkodni, csak ezzel meg az a bajom, hogy a pontosság és a stabilitás az én érzésem szerint - fordított arányban - összefügg, azaz ha sikerül javítani (pusztán csak algoritmikus alapokon) a pontosságon, akkor esélyesen sikerül rontani a stabilitáson. Egyszer ezt az egész gondolatmenetet jó lenne egy külön blogposztban vesézni, itt elöljáróban röviden arra utalnék csak, hogy az én (biztosan vitatható) intuicióm szerint minden feladatnak megvan a maga prediktálási pontossági potenciálja, amin algoritmikusan relevánsan csak lokálisan lehet javítani, a stabilitás oltárán való áldozással. (Ha új magyarázó változót vezetünk be, sőt ha egy meglévő magyarázó változó megy tönkre/torzul - lásd még "change point detection"; ezek már újabb feladatoknak tekinthetők, ebben a kontextusban.)

A pontosság eleve nem egy két tizedes jegyre megadott effektív konkrét százalék, hiszen annak semmi értelme a téma jellegéből fakadóan. Eleve egy intervallumot érdemes megadni rá, amibe aztán egyes modellkiértékeléseknél vagy sikerül beletrafálni vagy nem.

Zárójelben: a pontosságot - tárgyunk szempontjából másik - bántó aspektusa a prediktív modellezés során bekövetkező túltanulás. Hiába érek el jó pontosságot, ha releváns túltanulással érem el, akkor a hajamra kenhetem.

Ha absztrahálunk (hogy mindenki jobban érthesse), akkor van egy (ideális esetben értelmes) tanító adathalmazunk, arra tudunk prediktív modellt építeni. Aztán van x darab kéznél lévő validáló teszt adathalmazunk, amin mindenféle okosságot tudunk csinálni (prediktálás/modellkiértékelés, visszamérés, finomhangolás), és van y darab jövőbeli adathalmazunk, amiről adott konkrét perpillanatban halvány lila segédfogalmunk sincs. A nyílvánvaló cél, hogy a jövőbeli ismeretlen adthalmazainkon működjenek jól a modelljeink, illetve detektáljuk ha már nem működnek jól és tudjunk érdemben reagálni (visszacsatolással) e történésekre, ne adj isten egyenesen valós időben humán és/vagy szoftveres eszközökkel (real-time decision management).

Rögtön felmerül a kérdés mi a jobb stratégia? Kitalálni (kifizetni) egy prediktív modellt, ami elég gyenge mutatókkal, de a rohanó idő mellett is akár évekig stabilan működik (például logisztikus regressziós modell alkalmazásával sokszor van erre bőven esély), avagy megcélozni pofásabb prediktálási mutatókat (olyan 'hazardírozós' algoritmusokkal mint SVM), jóval nagyobb instabilitás mellett és felkészülni érdemben az instabilitás menedzselésére (folyamatmenedzsment). (Nyílván egy adatbányászversenyen ez így nem merül fel konkrét problémaként ott a versenykiírás szerinti teszthalmazo(ko)n kell legjobban teljesíteni)

Eszembejut adalékként, a jövőbeli adathalmazok való totális információhiányára, egy szerintem jó példa, nevezetesen a Netflix I. videótékás adatbányászverseny, ahol volt validáló meg teszt adathalmaz továbbá a versenyben élenjáróknak egy külön olyan plusz teszthalmaz, amiről semmi infomációjuk nem volt. Ha jól meggondoljuk teljesen jogos ez a "körülményesség", hiszen a konkrét versenyben egy teszt adathalmaz is hordoz olyan modellépítésnél akár fel is használható plusz információkat (mint a konkrét esetben) hogy kik milyen filmeket néztek meg. Egy korrekt kiértékelésnél az ilyen anomáliákat természetes módon érdemes szűrni.

Konklúzió? Lehet, hogy még a stabilitás sem megfelelően korrekt / teljes fogalom? :o)))))))))))