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. szeptember 28., kedd

Lágy számítások XML adatkezelésben és deduplikációban

.
Eddig még sose tettem ilyet ezen a blogon, remélem nem túlságosan "necces" meg "gáz", hogy most ilyenre van hangulatom.

Ajánlom ezt a blogposztot...
* a Sztaki ifj. Benczúr András és Lukács András vezette adatbányász csapatának, akiknek eddig sosem tudtam eléggé megköszönni, hogy megengedték személyes részvételemet műhelymunka keretében való egyes témábavágó, - ennek a posztnak az alapját is képező cikkhez hasonlatos típusú - cikkek ismertetésén. Sőt, amikor kérdést tettem fel, akkor sem tették ki a szűrömet.
* Sidló Csabának, akinek a DeDup témában való cikkismertetéseit/előadásait mindig is külön rákészülve, és ami fő, élvezettel hallgathattam az elmúlt évek során.
* Fekete Zsoltnak, aki élményszámbamenően hatékony kérdéseket és felvetéseket tud megejteni a cikkek széles skáláján/spektrumán.
* Gáspár-Papanek Csabának (blog), irányomba való jóindulatáért, segítőkészségéért.
* Kovács Gyulának és Arató Bencének, akiknek a legutóbbi sikeres DeDup-projektemet köszönhetem, aminek során, síma notebookon, 100% vegytiszta Oracle-környezetben, teljes céges deduplikálást 70 másodperces, teljes magánszemélyes deduplikálást 20 perces futásidőre tudtam optimalizálni, érdekes akviziciós ügyfélkonszolidáció keretében.

Nem akármilyen könyv jelent meg és került ragadozó kezeim közé, a fenti tárgybeli (angol) címmel Soft Computing in XML Data Management, a Springer kiadónál, idén 2010-ben, 363 oldalon, 130 euróért (uszkve 40.000 forint).

Az összesen 12 cikk, egyenletesen három nagy témába sorolódik:
1. Fuzzy típusú határozatlanság XML-ek vonatkozásában
2. Rugalmasság az XML típusú adatmenedzsmentben
3. Néhány fejlesztés és alkalmazás a témában

Mielőtt belevágnánk egy kis bevezető a címhez.

A soft computing magyarul lágy számítások a mesterséges intelligencia és ezen keresztül az adatbányászat kulcsfontosságú területe, eredendően olyan típusú nehéz (matematikai) problémákra - amelyek explicit meg nyers erő módszerekkel nehezen kezelhetők - vázolt egyfajta alternatív megoldási lehetőséget. Klasszikusan a (1) Fuzzy, (2) Neurális háló, (3) Evolúciós/Genetikus algoritmusok illetve ezek tetszőleges kombinációi tartoztak bele, mára a wikipedia szerint például még a Bayes háló is beletartozik, számomra némileg meglepő módon. A blogposzt címében lévő könyv alapvetően egyébként a fuzzy vonulatot tárgyalja /azért van benne Bayes háló is :o)/. A lágy számításos témáról az 1922-es születésű, műegyetemi professzor emeritus, Retter Gyula írt szenzációs, friss, két - ráadásul  magyar nyelvű - könyvet.
(1) Fuzzy, neurális genetikus, kaotikus rendszerek : bevezetés a "lágy számítás" módszereibe
(2) Kombinált fuzzy, neurális, genetikus rendszerek

Az XML, mint a neve is mutatja egy Markup Language-féleség, nagyszerű tulajdonságai - teljesség igénye nélkül:
* text-formátum
* félig-strukturáltság
* különbségképzési lehetőség
* szintaktikai meg valamilyen fokú szemantikai konzisztencia biztosítása
Nem véletlen hogy mára széles körben nagyon jól használható formátumnak bizonyult.Többek közt adatok tárolására is. De nemcsak szimplán relációs világban megszokott rekordok tárolására jó. Kottázó programok(!) szabványos kimenete is például. Ad absurdum multimédiás és/vagy bináris adatokat is tudhat hordozni.Az Oracle rdbms-ben külön keletkezett XMLtype típusú mezőféleség speciális funkcionalitással, stb.

A könyv első mondhatni bevezető és felcsigázó része:
(1) cikk például a fuzzy adatokat tartalmazó XML adatforrások fuzzy reprezentációjához használható XMLschema lehetőségeit vesézi. Ez önmagában cikk nélkül is egy érdekes gondolat, akkor is ha eddigi életemből a fuzzy-vonulat eléggé kimaradt.
(2) cikk a fuzzyval megspékelt(beágyazott) relációs adatbázisról szól, fuzzy DTD-vel való leképzéssel
(3) cikkben a fuzzy halmazok és hasonlósági relációk szintén egy érdekes téma.
(4) De mindezeket übereli a könyv ezen részének zárófejezete: adatintegráció XML-ek segítségével. Egy ponton túl, ahonnan a relációs ábrázolás már nehézkes, amikor már nem csak az adatok hanem a befoglaló struktúráik is lehetnek képlékenyek, kézenfekvően merülnek fel a XML nyújtotta félig-strukturáltság előnyei, speciális szabályrendszerrel megspékelve. (Érdekesség: integrációs algoritmus alapjának az XQuery-t választották a cikk szerzői!!!!)

A könyv második részében olyan témák kerülnek elő, hogy
(1) ha már az adatok és strukturáik kevéssé fixek (horribile dictu heterogén környezetből származóan), akkor a rajtuk való keresés és join is más megközelítést igényel, ha eredményre akarunk jutni.
(2) cikk azt feszegeti, hogy az XQuery-ből hogyan lesz fuzzy XQuery.
(3) Egy további lehetőség az XML nyújtotta rugalmassági előnyök kiaknázására, amikor relációs adatokat XML-leképezve (ez ugye eléggé könnyedén megtehető, pláne, hogy szigorúbb struktúrából könnyebb áttérni egy megengedőbb struktúrába) egy bővített funkcionalitású lekérdezési interface-t lehet adni az a leképzett adatokra.
(4) Végül a könyv ezen részét lezáró, az első rész szintén utolsó cikkével nagyban harmonizáló deduplikációs cikkfinomság, de erről külön szeretnék beszélni, hiszen őmiatta születik ez a blogposzt.

A könyv harmadik részére megjön az igény, hogy a már meglévő újszerű tárolású és tálalású adataink köré most már kész alkalmazást is kellene építeni.
(1) Itt lehet említeni például  a Fuzzy Process Modellek részére XML-alapú adatcserét.
(2) Sőt lehet XML-alapú keretrendszert építeni inkomplett és inkozisztens adatok menedzselésére (a cikkben konkréten egy klinikai rendszerként).
(3) Sőt nagyot álmodva komplett Fuzzy Adatbázis Architektúra is konstruálható (Alliance), fuzzy-logika technikákkal, XML-bázison.
(4) A könyvet lezáró utolsó cikkben már az indexelés vonatkozásai is hangsúlyt kapnak, a szemantikai feltárással egyetemben.

És akkor nézzük a második rész negyedik amúgy 32(!) oldalas cikkét:

An Overview of XML Duplicate Detection Algorithms.

A magyarul DeDuplikálás vagy röviden DeDup életem meghatározó feladata, élménye. Több ilyen projektben dolgoztam, még többet láttam. Egyszer talán lesz mód, hogy megírjam ebbéli élményeimet, tapasztalataimat.Már többször nekikezdtem egyébként, hogy valamit megírjak belőle ezen a blogon, de akárhonnan közelítettem, mindig túl sok volt az anyag, mindig túlnőttem a képzeletben magam elé állított kereteket, így eddig minden ilyen irányú próbálkozásom kudarcba fulladt.

Pár dolgot viszont mindenképpen érdemes magyarázólag és előljáróban említeni a továbbiakhoz.

(1) Ha az egyik informatikai rendszerben egy urat Szalamander Gáborként, egy másikban Szalamander G.ként tárolják, miközben az anyja neve, személyigazolványszáma stb megegyezik, akkor triviálisan egy és ugyanazon húsvér ember adatai vannak különféleképpen tárolva. Persze nemcsak rövidítés, hanem elírástól elkezdve a legkülönfélébb hibákig sokféle eltérés lehet a rögzített adatokban.Kézenfekvően merül fel a feladat, hogy az egy emberhez tartozó különféle adatrekordokat kapcsoljuk valahogy össze a rekordokban lévő természetes, ám nem feltétlen kitöltött adatok illetve nem feltétlen egzakt egyezés alapján (mivel az amúgy egyébként preciz rögzítésű valamint 100%-os kitöltöttségük miatt jól használható informatikai egész azonosítók eltérnek, így azok nem használhatók a feladatban).Az előbbiek (természetes adatok) alapján a deduplikálásnak komoly nyelvspecifikus vonzatai is vannak, ami magyar nyelvterület esetén - mint sok mindenben így itt is - tudhatnak komoly kihívásokba ütközni (egy példa; Ausztráliában összehasonlíthatatlanul egyszerűbb a lakcímek kezelése)

(2) Ha van egy nagy táblánk, amiben minden húsvér ember minden rekordja szerepel, akkor adatbányász terminológiával élve kezdetben csoportosítást kell végezni a rekordokra, újabb rekordok megjelenésekor meg osztályozást.

(3) A számítógépes/algoritmikus DeDup elméletileg bizonyíthatóan sosem lehet 100%-ban tökéletes. Elsőfajú hibaként tévesen is kerülhet be egy rekord a rekordcsoportba, másodfajú hiba szerint maradhat is ki rekord egy rekordcsoportból.Az ilyen problémák kiküszöbölésére humán erőforrást (brrr) szoktak alkalmazni.

(4) Két adatrekordról eldönteni adatösszevetéssel, hogy akkor most ők egy ember két rekordja szintén nagyon nehéz feladat (gépileg is és kézzel is), alapvetően szabályrendszert szoktak megadni rá. Mivel az elsőfajú hiba a sokkal inkább üldözendő, ezért az ilyen közelítő szabályrendszer alapvetően "szigorú" és kevésbé megengedő szokott lenni (egy csaló ember rekordját egy VIP ember rekordjával nem "praktikus" összevonni). Az összevont/csoportosított rekordokból meghatározni egy "legjobb rekordot" megint nagyon nehéz feladat, amit megint csak közelítőleg lehet megoldani.

(5) A nyers erő (brute force) algoritmus szerint minden rekordot mindenkivel összehasonlítva négyzetes lesz az algoritmus műveletigénye. Mivel többszázezres deduplikálandó ügyfélállományok még Magyarországon sem ritkák, ezért ez az út a lehetetlenség útja, az óriási és elvégezhetetlen számítási igény miatt.

(6) Belátható, hogy a mindent mindennel összehasonlítás túlnyomórészt felesleges is. Tehát az igazi feladat minden szükséges hasonlítást elvégezni a a hasonlítások számának minimalizálásával.


És akkor most már nézzük a DEDUPLIKÁCIÓS CIKKet néhány részletében.

A célkitűzése egyfelöl egy új reprezentáció megadása a deduplikálásra, a hatásosság(=effectiveness) szofisztikáltság értelemben és a hatékonyság(=efficiency) azaz mondjuk most így műveletigény csökkentés jegyében. Majd összehasonlítóan megvizsgál három létező rendszert (DogmatiX, XMLDup, SXNM), amelyek különféle módokon egyensúlyoznak a hatékonyság és eredményesség között. Az első és harmadik struktúra-vezérelt metódus, a közbülső pedig Bayes-hálós.

A cikk nagyságrendi adata szerint 2002 óta évi 600 milliárd dollárt költenek adatminőségi problémákra csak az USÁ-ban. Azaz összevethetőség szempontjából megjegyezhető: a teljes magyar adósság többszörösen belefér ekkora éves(!) összegbe.

Az adatintegráció három lépése:
(1) Séma-megfeleltetés/illesztés és - leképezés (schema matching, schema mapping).
Idetartozik, hogy ha az egyik forrásban név mellett csak az anyja neve van, a másikban meg csak a telefonszám, akkor a közös sémában mindkettő plusz attribútum fog szerepelni
Idetartozik, hogy például ugyf_tel attribútumban (és nem egy másikban) van a szükséges telefonszám adat.
Idetartoznak olyan finomságok is, ha az egyik adatforrásban külön vannak a család- és keresztnevek egy másikban egyben Magyar nyelvterületen olyan típusú "örömökkel", mint például Hunné Zoltán Erika.
(2) A duplikátum-detektálás ezen a fenti közös sémára hozott adatokon.
(3) Az adatfúzió, amikor a szükséges sorok összevonódnak (közös azonosítót kapnak).

Az angol szakirodalomban 1959-től kezdve időrendi sorrendben a következő terminológiák sorolódnak fel a deduplikálásra. :o)
* record linkage
* entity identification
* deduplication
* duplicate detection
* object matching
* entity resolution
* fuzzy duplicate identification
* object consolidation
* reference reconciliation
* object identification

Mivel XML-ben vannak az adatok, rögtön merül fel a kérdés mit nyerünk és veszítünk a relációs módihoz képest.
Előny: sokkal flexibilisebben, korlátok nélkül tárolódhatnak benne az adatok, illetve a hierarchikus (fa)struktúra révén kellemesebb műveletigényű deduplikáló algoritmus lehetősége csillan meg.
Hátrány: jóval nehezebb maga a deduplikálás, az alábbi két probléma mentén
(A) candidate-description ambiguity (én most így mondom, adatszintű többértelműség)
(B) structural diversity (strukturális különbözőség)

Szakirodalom alapján az alábbiak hozhatók fel XML-centrikusan szemlélve a hagyományos deduplikálás történelmi előzményeként. A komponensek kvázi tetszőleges kombinációja megtalálható a cikkben, olykor irodalmi jegyzékes hivatkozással is. :o)
ADAT: (1) relációs tábla (2) Fa például XML-adat (3) Gráf például XML kulcsreferenciák.
ALGORITMUS: (1) Iteratív (2) klaszterező split and merge alapon (3) gépi tanuló algoritmus, ahol a modell is, a hasonlóságmérték (=similarity) is tanulás tárgya
ALGORITMUS FÓKUSZ: (1) Hatásosság, minőség (2) Hatékonyság (3) Skálázhatóság

XML-alapú deduplikálás történelmi előzményei:
* Úgynevezett közelítő (approximate) XML-join, saját - tree edit - távolság-fogalommal.
* Vektorokra leképzés, cosinus távolsággal
* Súlyozott hasonlósági mértékek lineáris kombinációja deduplikációs mezők fontossága alapján
* Ezután robbanásszerűen szaporodtak az olyan XML-alapú deduplikálások, amik egyre jobban támaszkodtak az XML-sajtosságaira (struktúra, szemantika)

Nézzük akkor a beveztőben említett és a cikk fókuszában lévő három algoritmust/rendszert:

Itt egy ábra két node-dal, IMDB filmadatbázisból:



I. DogmatiX Framework

(A) candidate definition, azaz a duplikátum-jelöltek (alap)definiciója, azaz megmondani, hogy az XML-ben mely csomópontok képezik a hasonlítgatások tárgyát. Régi relációs terminológiában annak megmondása, hogy mely mezők alapján hasonlítunk két ügyfél-rekordot (például anyja neve alapján igen, átlagegyenlege alapján nem)

(B) duplication definition, azaz mikor kell összevonni két egyedet (és mikor nem). Természetesen minden fentebb definiált jelöltre megadva. Ez ebben a DogmatiX-ben praktikusan egy Xquery-kifejezés lesz. A query egy (text,xpath) párosba fog leképződni, aminek a hivatalos neve, Object Description (=OD). Példa: U-> ("John S.", /mv/dr/text()) illetve U*-> ("J.Smith", /mv/dr/text()). A dolog első ránézésre ijesztőnek néz ki, de könnyedén algoritmizálható r-távolságban lévő (1) ősökkel, (2) leszármazottakkal illetve (3) k db legközelebbi leszármazottra vett szélességi kereséssel.

(C) duplication detection, azaz hogyan kell duplikátumot találni. Első lépés a szükséges hasonlítások csökkentése egy filter függvénnyel, amely arányt számol a jól ismert IDF-fel (=Inverse Document Frequency) méghozzá egy adott - fentebb definiált - OD és az összes OD vonatkozásában. Pontosabban softIDF-et (attól soft, hogy vannak csak lényegében hasonló elemek, amiket azonosnak vesz). Ezután az - amúgy egy küszöbértéktől függő - filter után minden pár hasonlítódik egymással. Az U és U* hasonlósága (normalizált edit distance), a következőképpen néz ki (a konkrét fenti példánkban)

Sim(U,U*)=softIDF(Pros and Cons)/(softIDF(Pros and Cons)+softIDF(John S.)+softIDF(J.Smith))

Struktúra-vezérelt XML-távolság

Egy javítás lehetséges az előzőhöz képest, mégpedig egy speciális távolságfogalommal, az úgynevezett átfedések koncepció alapján  (=overlay). A fenti ábrán U és U* minden node-ja megfeleltetés révén átfedésbe hozható egymással, az U* egyszem AC2-jét leszámítva (annak nincs párja U-ban).

Egy átfedés akkor komplett, ha nem része másik átfedésnek.
Az átfedés költsége a mappelt node-os string-hasonlítások Levenshtein-távolságainak (~edit distance) összege.
Egy átfedés akkor optimális, ha komplett és nincs más átfedés, alacsonyabb átfedési költséggel.

A mélyben egy rekurzív algoritmus dolgozik gyökérből lefelé haladóan. A node-párosítás pedig az operációkutatásból ismert hozzárendelési problémánál ismeretes úgynevezett magyar módszer alapján történik.

Az állítás az, hogy a téves összevonások jobban elkerülhetők így (bőven elhihető), de meglepő módon kvázi ugyanolyan sőt akár még inkább könnyedén számolható az egész DogmatiX-es cucc az előző távolságfogalommal. Ezt mondjuk én most így hirtelen nem látom át, a cikk meg nem részletezi miért is.


II. SXNM—Sorted Neighborhood for XML Duplicate Detection

Ez a bottom-up metódus úgy próbálja csökkenteni a szükségtelen összehasonlítgatásokat, hogy miután minden hasonlítandó tényezőre kiszámol egy generált kulcsot - például: U{"Pros and Cons", 1983}->PRO83, U*{"Pros and Cons", 1984}->PRO84 - a kapott kulcsokat egyszer még a kezdetek kezdetén lerendezi és minden elemen egyszer végigmenve, minden elemnek csak a közvetlen - fixen rögzített - környezetétbe hasonlítgat bele.(Mj: A módszer magyar nyelvterületen ebben a formában bukásra van ítélve, ugyanis a kedves hölgyek férjhez mehetnek és felvehetik férjük nevét -> Salm Gizella, Matula Gizella). Persze a rendezés utáni műveletigény látványosan csökken a nyers erős módszer négyzetes műveletigényéhez képes O(nlog(n)).

A DogmatiX-hez hasonlóan az OD-k megkonstruálhatók, annyi a nóvum, hogy az OD-hez még relevancia is kapcsolódik pluszba. A hasonlóság elemzés is ugyanúgy mehet Levenshtein-távolságok aggregálásával (súlyozott összeg). Bár a cikk szerzői bedobják az egyébként szintén ismert és használatos Jaccard-távolságot is.


III. Bayes Networks for XML Duplicate Detection (XMLDup)




A cikk abból a tételből indul ki, hogy két node deduplikálandó, ha értékeik azonosak, és a gyerekeik is deduplikálandók - mily meglepő az előzmények után :o) A fenti körmentes irányított gráfos ábra mutat egy példát, hogy hogyan is néz ki ez a korábbi példára vetítve.A bottom-up módszer kellemetessége abban nyílvánul meg, hogy a teljes node-halmaz helyett az egymástól független fontos node-okat veszi csak górcső alá.







Ezek után a klasszikus Bayes háló számolását alkalmazva, node-ok közti "valszínűségpropagálás" a hagyományos módon számolódik, ahogy a fenti ábrán is látszik, mv11 gyökér-node esetén. Ha a kapott érték 0-hoz közeli, akkor teljes a különbözőség, ha 1-hez, akkor meg egyezés áll fenn. Karakterfűzér-hasonlításra e cikk szerzői is a (normalizált) Levenshtein-távolságot használták.


FUTÁSI TAPASZTALATOK:

Adatbázisok:




Hát az látható, hogy túl nagy fába nem vágódik a fejsze.;) Az adatbázisok nagyjából fele-fele arányban tartamaznak duplikátumokat és "szingliket".

IMDB: véletlenszerű válogatás a közismert filmes adatbázisból, attribútumok: title, director, author, year, movie key, rating, genre, keywords, cast member, runtime, country, language, certification

Restaurant. Fodor’s and Zagat’s restaurant guides adatbázisa, attribútumok: name,
address, city, type, phone, code, geographic coordinates

Cora: könyvtári információs adatbázis, attribútumok.: author, title, venue name, volume, date

FreeDB: Ez az audiólemezek népszerű szöveges adatbázisa, kevesebb duplikátummal, attribútumok:  artist, disc title, category, genre, year, CD extra information, track titles

IMDB+FilmDienst:. Véletlenszerű 500 film kiszedése a két adatbázisból. Integrálás után az attribútumok: year, title, aka-title, info, genre, actor


Rendszerek összehasonlítása

A szokásos precision és recall százalékos mértékek alapján

Precision: korrektül eltalált duplikátumok aránya a tesztelendő rendszer által duplikátumnak minősítettekhez képest..

Recall: korrektül eltalált duplikátumok aránya a valós duplikátumokhoz képest.


Futási idők



Nem meglepő módon tarolt az SXNM, ami a deduplikálás minősége helyett inkább a performanciára összepontosított.


DeDuplikálás minősége























A függőleges tengelyre kerül a precision, a vízszintesre meg a recall.Mivel az a jó, ha minden duplikátum megvan és tökéletes duplikátum azonosítás mellett, ezért a cél, a teljes "négyszög" elérése. Az a rossz, ha valaki minél kevésbé tudja a [1,1] négyszöget kifeszíteni. A leggyorsabb SXNM látnivalóan gyengélkedik a deduplikálási minőség terén.


Végső következtetések

(1) Az eredményes deduplikálást nagyban befolyásolja az adatbázisokban lévő hibák típusa. Erre én is tettem személyes megjegyzést/kiegészítést az SXNM elméleti taglalása kapcsán.

(2) DogmatiX nagyon jó deduplikálási minőséget adott, (többiekhez képest) nem annyira rossz futási idők mellett.

(3) A cikk szerzői szerint alapvető hátrány a cikkbeli módszereknél, a különféle paraméterek, súlyok, küszöbértékek, hasonlóságok nem túl egzakt mivolta. (Mj.: szerintem nyugodtan mondhatjuk, hogy ez általános téma egészét érintő probléma és nem specifikus és konkrét módszerek problémája)

(4) Jó lenne elmozdulni a minél egzaktabb és automatikusabb feldolgozás irányába.

+1 blogposztírói morfondírozás

Érdekesek ezek a tudományos kísérleti cuccok. Próbálnak demó méretű adatbázisokon ötleteket kipróbálni több-kevesebb sikerrel. Miközben itthon is, évek óta, nap mint nap, többszázeres ügyfélállományokon kell elviselhető teljes deduplikálást produkálni.

Amit én alapvetően hiányolok az a párhuzamosítás gondolatának teljes mellőzése. Holott skálázhatóság mellett kevésbé lenne releváns a felesleges párosítási igények radikális redukálása - de jó szópáros... :o)))

Mindazonáltal a DogmatiX IDF-es ötlete elött le a kalappal. Az mindentől függetlenül zseniális gondolat egy józan paraszti ész szerint is reális XML-es gondolatkör apropóján.

2010. szeptember 24., péntek

KDD 2010 konferencia díjnyertes cikkei

.
KDD 2010 hírek szerint az innováció és technikai kategóriában az alábbi két cikk lett a legjobb (ebben a sorrendben). Erről a két cikkről írnék pár szót a múltkori KDD-s poszt és az ott említett beszámoló folytatásaként:

1.
Connecting the Dots Between News Articles

Elérkezett a szép új világ. Nem kis megdöbbenésemre a fenti cikkben egy olyan téma kerül teritékre, aminek már a kiindulását sem értem. Már a mögötte lévő motivácó sem világos számomra. Kommentekben szívesen fogadok ötleteket, hogy miről is lehet itt szó.

Így első olvasatra a szerzők mesterségesen konstruáltak egy problémát, amibe ugyan érdekes gondolatokat gyömöszöltek bele, meg tanulságos reprezentációt abszolváltak, mégis nekem van annyira kulcsfontosságú magának az alapproblémának a megértése, hogy addig nem küzdök l'art pour l'art a mélyebb megértéssel, amíg nem tudom, hogy mit mihez kell kötni.

Miről is van szó...

Adva vannak cikkek. És még csak nem is a könnyebb verzióban (tagelve), hanem pörén, ahogy megírták őket. A feladat, az lenne, hogy mondjuk lakásár-csökkenésről publikáló cikktől eljussunk további cikkeken át mondjuk az egészségügyi reformos döntésről szóló cikkig (Amerikáról beszélünk). Néhány peremfeltétel mellett, úgy mint például, idősorban egymás utániaknak kell lenni a cikkeknek, koherens kapcsolatnak kell a cikek között lenni stb. Azt persze látni kell mindez csak múltra vonatkozik, tehát az nem cél, hogy a másodlagos jelzáloghitel-anomáliákról szóló cikk alapján még időben lehessen következtetni a globális pénzügyi válságra. ;)

Az én kósza gondolataim mi is lehetne motiváció, a cikkbeli példa alapján.

(1) A Google Pagerankes algoritmusa helyett valamiféle tartalom-összefüggés szerinti asszociálás algoritmizálása mint esetleg végcél.

(2) Ha egy felhasználó keres egy témában, és nem gondol egy aspektusra, akkor egy ilyen fentebb vázolt információs lánc révén ráakadhat valamire, amiből ihletet meríthet.

De hangsúlyozom fogalmam sincs. Ahogy arról sem, hogy hogyan kaphatott "best paper" díjat a cikk. Egyáltalán elégséges-e egy ilyen díjhoz egy mesterséges probléma részére konstruált érdekes reprezentáció és rá adott megoldás esetleges frapánssága.

Ha rosszindulatúan cinikus akarnék lenni, akkor ez az egész engem arra a gyerekkori játékunkra emlékeztet, hogy sorbanülve, a lánc egyik végéről indulva egymás fülébe súgunk és amit hallunk azt továbbadjuk a másiknak. És röhögünk a végén egy jó nagyot, hogy mi marhassággá torzul a kiinduló mondat.



2.
Large Linear Classification When Data Cannot Fit In Memory

Ennek kapcsán két érdekes felvetés tud felmerülni.

(1) Van-e egyáltalán olyan probléma ami nem tud elférni értelmes reprezentációval a mai nagyságú memóriákban? A kérdést nyitvahagyva, két szempont azért idesorolható (A) nagytömegű multimédiás adatok adatbányászata. (B) GPU-s algoritmusok, ahol nagyságrenddel kisebb a rendelkezésre álló memória.

(2) A cikk peremfeltételei alapján kézenfekvően merül fel (bennem) a párhuzamos programozásra való asszociálás. Mint az afelé vezető út egyik potenciális állomása. Hiszen amit (A) batchben (B) kisebb feladatokra bontva, (C) véletlen elemi adat elérés nélkül (csak adatblokkal dolgozva) el lehet végezni azt lehet esélyes elvégezni párhuzamosan is, természetesen megfelelő adminisztrálás mellett.

A szerzők nem cifrázták, rögtön az egyik legnehezebb probémát vették alapul (SVM). Az semmi, de a tesztjeik is szépen muzsikáltak a LIBLINEAR-ral hasonlítva. A tesztelés kivitelezhetőségében segítségükre volt a tény, hogy teljesen memóriában is futattható SVM, meg dekomponáltan is. Így az eredmények tényleg összevethetők.

Konklúzió? Ennek a cikknek a díját értem. :o) Még akkor is, ha a cikkben ígért további általánosítás lehetőségének mikéntjét a magam részéről nem látom át.

2010. szeptember 22., szerda

Ingres VectorWise a RapidMiner előszobájában

.
A társblogon Prekopcsák Zoltán írása alaposan felcsigázta személyemet egyik konkrét információjával.

A jövő évre várható még a RapidMiner alapszoftver 6-os verziója...Az Ingres céggel szövetkezve pedig szorosan mellé integrálják az Ingres VectorWise adatbázis-kezelőt

Az idő szoritásában ugyan, de nem álltam meg, hogy egy picit ne nézzek utána a témának szakmai kiváncsiságomnak, meg régi rdbms-es énem emlékeinek engedve.

Az Ingres egy nagyon jól hangzó márkanév (volt) az adatbázisos világban, amit elsősorban élenjáró nagyszerű innovációjának köszönhetett. A nagy Oracle is csomó dolgot vett át tőlük (hash, ami nagy tábláknál hatékonyabb elérést ad az indexekkel szemben, vagy a CBO/=Cost-Based Optimizing/ az RBO-val/=Rule-Based Optimizing/ szemben). Ezek ma már alapvetőknek számítanak az iparban. Az rdbms-piac sajátosságai (pl.: óriási tehetetlenségi erők) következtében a 90-es évek végére az Informix, aztán meg az Oracle mindkettőt lenyomta a piacon. De ez mit sem von le az Ingres szakmai értékeiből. Aki Ingres-essel találkoztam az mind élvezettel dolgozott vele és beszélt róla.

A társblogos poszt nyomán egyből felcsillant a szemem, hogy akkor egy (open source) adatbányász tool kap egy open source rdbms-t maga alá. Hogy az milyen frankó lesz, mert előfeldolgozás címén (amiben a Rapid Miner, hogy is mondjam finoman -> küzd még kihivásokkal), komplett flexibilis szabványos rdbms-es, szabványos sql-motoros - házon belüli - megoldást kap, gyakorlatilag mondhatni minden igényt kielégítve. Na ez a megközelítésem a felhasználói funkcionalitásos megközelítés. És ahogy jobban utánanéztem a témának, be kellett lássam némileg tévedtem várakozásaimban.

Ugyanis ez az Ingres VectroWise egy performanciára végsőkig kihegyezett analitikus platformos célszerszám, teljesen zöldmezős alapokról felépítve, felpörgetett korunk követelményeit és trendjeit/lehetőségeit figyelembevéve.  Beáldoznak vagy még nem implementáltak sql-világban megszokott dolgokat - némi deja vu a régi select alkérdés nélküli MySql v4 elötti világra -, részint fordítási hibákat részint lassabb futási időket implikálva. Cserébe, ami működik az viszont - ígéret szerint - nagyon, kvázi csodával határos módon - hatékonyan működik. Funkcionalitás kontra performancia. Az Ingres VectorWise a performanciát tűzte ki a zászlajára.

Nézzük, hogyan milyen építőkockákkal akarja ezt a hatékonyságnövelést elérni az Ingres VectorWise:

* Ilyen építőkocka a modern CPU-k azon tulajdonságának kihasználása, hogy vektorokat már jobban kezel mint különálló elemi adatokat. Egyáltalán is megjegyezhető, hogy nagytömegű adatelérésben a háttértár adatblokkjainak elérése a leggyengébb láncszem analitikus adatelérésnél: vagy a leglassabb, vagy a legdrágább (EMC-típusú winchester-szekrényekre gondoljunk elsősorban, amit aranyárban mérnek). A processzorok viszont önmagukban is gyorsak, és darabszám alapján skálázhatók felfelé. Tehát adott az ötlet toljunk át minél több feladatot most így mondom a winchesterekről a processzorok felé.

* Ilyen építőkocka az oszlopalapú tárolás az eléréshatékonyság érdekében. Itt ugye arról van szó, hogy egy 1-5-ig kategóriákat tároló oszlop tárolása egészen másképp néz ki, mint egy változó hosszúságú karakterfűzér tárolása. Analitikus adatelérésnél meg nem egy rekord összes adatára vagyunk kiváncsiak egymás után, hanem a rekordok egy attribútumát szeretnénk egybe látni, aztán a következő attribútumát.

* Ilyen építkocka a radikális adattömörítés lehetősége, köszönhetően például éppen az oszlopalapú tárolásnak is. Hatékony tömörítésnél kevesebb adatblokkot kell felolvasni adatelérésnél a háttértárból némi plusz processzor erőforrás beáldozása árán: de hiszen éppen ez volt az eredeti szándék is.

Ilyenkor kézenfekvő az asszociálás a Netflix-verseny adatbázisára. Ott ugye 1-5-ig voltak ratingek százmilliónyian. Ha jól tévedek kicsomagolva ostromolta a 2GB-ot, amit tömörítve lehetett leszedni a Netflix-verseny honlapjáról, talán 100MB-os nagyságrendben.

Na most egy ilyen Ingres VectorWise típusú szerkezet azt ígérheti hosszú távon, hogy kvázi ki sem kell csomagolni - csak kvázi kovertálni - a letöltött Netflix tömörített adatállományt. A konverzió (adatbázisba töltés) nem úszható meg ugyan, viszont méretben azért összemérhető tömörítvényen is lehet kvázi rdbms-operációkat és analitikus adatelérést kezdeményezni. És persze aztán meg adatbányászkodni rajta.

* Ilyen építkocka a speciális indexépítési és -elérési módok. Például tömörített adatblokkra minimális és maximális érték. Hogy fel se kelljen olvasni szükségtelen blokkokat. Stb.

Két érdekesség:
(1) Egyelőre csak Linuxon érhető el az Ingres VectorWise, de ígéret szerint hamarosan jön - a ráadásul 64-bites - Windows verzió.
(2) Nem ennél az Ingres-cuccnál hanem a rendes Ingresnél láttam, hogy illesztik az Oracle világban fogalomnak számító TOAD-ot. Na attól dobtam egy hátast. :o)

PS: Tudom hogy helyenként sok kvázit írtam, de lássuk be egy csökkentett funkcionalitású sql nem teljes sql, egy adatbázisba töltés sem szimpla konverzió,még ha menedzseri szemlélet keretében el is lehet sütni.

(Gráfelméleti) különbség a férfi és női agy között



Ma kaptam egy Youtube-videó ajánlását. És hogy ne csak komoly dolgok legyenek itt a blogon ezt kivételesen megosztom. 10 perces videó, egy amerikai komikus(?) Mark Gungor beszél érthető angolsággal, de a videó magyar feliratos tehát mindenki élvezheti. Június 13. óta közel 70.000-n látták, ami magyar nyelvterületen nem kevés.


A férfi agy és a női agy



2010. szeptember 19., vasárnap

IBM SPSS Modeler v14 - első benyomások

Kicsit hatásvadásztam a címben. :o)

Mint a képen is látható, ez bizony még a régi logó, sőt a régi márkanév. Pontosabban a régebbi. Ugyanis már nem a nagyon jól kitalált Clementine, és még nem a címbeli IBM SPSS, hanem közbülső, tulajdonképpen pár hónapot megélt márkanév. A PASW egyébként a Predictive Analytics SoftWares-ből jön.


A dolog firtatása azért lehetséges egyébként, mert az IBM SPSS Statistics v19-es változata, már nem PASW hanem IBM SPSS logó alatt fut, IBM-es splash-képernyővel, Eclipse-szel felszerelve, jelentősen meghízva.

Nem is mondtam pedig evvel kellett volna kezdenem. Hálás köszönet az SPSS Magyarországnak, hogy rendelkezésemre bocsátott a tárgybeli termékükből egy használható trial-verziót. Ezért jár nekik egy hatalmas piros pont, íme: * És hozzá:
IBM SPSS Clementine/Modeler - SAS Miner = 1:0
Ugyanis ebben az a kevésbé érdekes hogy Clementine-ból kaptam trialt, sokkal inkább az, hogy annó a SAS-tól bár kértem hasonlót írásban, kétszer is, ráadásul árajánlat formájában (tehát nem kunyerálásként), de még csak válaszra sem méltattak. Ők valószínűleg túl magas parnasszuson vannak már ahhoz, hogy az olyan pórnéppel kínlódjanak meg vesztegessék rá drága idejüket, ahová én is tartozom.

Clementine - remélem nem haragszik meg senki, de én így fogok rá emlékezni és hivatkozni továbbra is, mondhatni a mainstreammel szembemenve, legalábbis egyelőre. Különben is a Modeler egy vagy két "l"-je engem halálra idegesít, annál is inkább mert gyarló módon nem tudom, hogy az angol terminológia mikor szereti az egyiket vagy másikat használni.

Az új Clementine-ban két párját ritkítóan nagyszerű finomság van.

(1) Először láttam, hogy a setup DVD-n (ami csak a desktop változatot tartalmazza, a nagyszerűségesen szimpatikus in database miningot is magábafoglaló server változatot nem) egyben van fenn a x86-os és x64-es változat, persze dupla akkora helyet követelve magának a lemezen. Így már érthető az is, hogy miért nem elég már a régimódi CD a telepítéshez. ;)

Ez sokkal fontosabb feature, mint az ember felületes első ránézés után gondolná. Ugyanis, ha van területe az informatikának, ahol a 64-bites architektúra előnyei kidomborodnak, az az adatbányászat, azon belül például az apriori-s alapvetően memóriában dolgozó algoritmusok. 64-bites architektúra sokkal nagyobb címzéstartománnyal bír, következésképpen sokkal nagyobb munkamemória címezhető meg. Persze nem mintha ezt is nem lehetne kinőnie egy adatbányásznak . ;)

Mivel a Clementine java-alapú eszköz, így elvben nem nagyon volt akadálya eddig sem az x64-es futtató engine-nek, bizonyára eddig is létezett. Csak velem szembe most jött először ilyen :o)

(2) Régi nagy vágyam oldódott meg. A táblázatok scrollbarjai végre görgethetők középső egérgombbal. Ez a korai java-sdk-knak volt egy korlátja. Mostanra(?) sikerült végre eltüntetni ezt a hiányosságot.

Ezek kis dolgok. Annyira kicsik, hogy a What's New leírásban nem is kapott helyet, ha jól láttam. De számomra rendkívül fontosak. :o)

És akkor nézzük, hogy a What's New milyen számomra szubjektíve izgalmas újdonságokat ír.Betűhíven lefordítani nem akarnám a dolgot, részint sok is, unalmas is, van erre más alkalmasabb ember is.

Látnivalóan megváltozott a nyitó wizard is. Egy új finomsággal bővült. PASW Modeler Advantage. Vannak olyan "elvetemült" felhasználók, akik mindenféle verziózott csoportmunka keretében az adatbányász streamjeiket (zip tömörítvény PMML-es str-állományokat) nem filerendszerben (mint én), hanem repository meg egyéb helyeken tárolják, meg onnan nyitják meg. Na őket ez biztos lázba fogja hozni. :o)




Látnivalóan megváltozott a kinézet (ami visszaállítható a régire). Ha a középső egérgomb használhatóságának ez az ára, ám legyen. :o) /Csak poén, senki ne vegye komolyan/







Változott a terminológia (egyszerre a Statisticsben és Clementine-ban). Teljes mértékben az előnyére, szerintem. Például a
* TYPE -> MEASUREMENT LEVEL
* DIRECTION -> ROLE
* RANGE -> CONTINUOS
* DISCRETE ->CATEGORICAL
* SET -> NOMINAL
* ORDERED SET -> ORDINAL
* IN -> INPUT
* OUT -> TARGET

Új node-ként bejött az XML. Ebben az a nagyon szimpatikus számomra, hogy míg a régről megszokott .SAV, egy teljesen zárt bináris állomány, addig ez az XML úgy nyílt és ASCII formátum, hogy szintaktikai és valamilyen fokú szemantikai konzisztencia garantálható hozzá.

Új nodeként bejött a LINEAR node, szintén nagyon szimpatikus finomságként. A hagyományos folytonos célváltozós lineáris regressziót lehet boostinggal finomítani (á lá ensemble), hogy az iteratíve további tanítás során a célváltozóhoz további magyarázóváltozók kapcsolhatók. Ily módon a performancia(futási idő) és a modellfinomság széles spektrumán lehet szánkázni. :o)

Bagging és boosting okosságaival azonban a neurális háló illetve a döntési fák is kiegészültek. Classification & Regression Tree, Quest, Chaid, sőt az előbbi kettő felnőtt a CHAID-hez nagy adathalmazok tekintetében is.

Neurális háló ugyanazt az algoritmust kapta, mint ami volt a Statisticsben. Ez mondjuk nem tudom mennyire jó hír. Azért a Clementine-nak nagyon jó neurális hálója volt, míg a régi SPSS neurális hálója árban is, paraméterezhetőségben is, robosztusságban is, stabilitásban is inkább csak követni igyekezett az eseményeket.

Megszünt a GRI-node. Megmondom őszintén én egyszer kísérleteztem annó evvel a node-dal, és az nagyon balul sült el, mert nem bírtam kikeveredni a hibaüzenetek tengeréből. Ez persze bőven lehetett az én hibám is. Az viszont érdekes, hogy az IBM SPSS azt ajánlja, használjunk helyette APRIORI-t, noha abban nem lehet folytonos magyarázóváltozó. Persze ez nem olyan tragédia mint elsőre látszik, hiszen folytonos változókat lehet BIN-elni. Csak hát egy drága eszköztől nyílván nem fapados hackeléseket vár el az ember.

In Database Miningban megjelent a Microsoft Time Series meg Sequence Clustering illetve az Oracle Attribute Importance metódus támogatása. Az előbbi azért érdekes, mert a társblog is megemlítette, hogy a Microsoft zárt nehezen átlátható algoritmusai olykor meglepően jól teljesítenek (döntési fa). Az utóbbi Oracle-s cucc meg azért, mert a számomra legalábbis meglepő MDL=Minimum Description Length algoritmust használja. Egyszer pár hete neki ugrottam a guglinak, hogy ameddig a szemem bírja megnézzem mit is írnak erről. Nekem az jött le, hogy
(1) Van amikor szenzációsan teljesít és van amikor egyáltalán nem
(2) A fentiek éppen ezért nem teszik könnyűvé általános célú eszközzé előléptetését.

Update database on export, olyan update, ami nem droppal és újralétrehozással nyit. Az mind semmi, de új mezővel egészíthető ki a tábla. Mezőtörlésről itt sem szól a fáma. Valahogy a táblák csak nőnek az exabyte-ok világban. :o)

Model nuggetek/"gyémántok" automatikusan hozzáadódnak a streamhez, ahogy kikalkulálódtak. És persze ez is kikapcsolható akinek nem tetszik.

Runtime prompt session és stream paraméterekhez.

A kedvenc olvasmányom az Algorithms Guide 428 oldalról lecsökkent 368 oldalra. Bejöttek az Ensembles algoritmusok, Linear node algoritmusa (hurrá) és bővült két fejezetre a neurális háló körüli dolgok.. Mások például Generealized Rule Induction meg ugye kihullottak.

2010. szeptember 14., kedd

Intelligens ügyfélszolgálati rendszert vezet be a Vodafone

.
Az alább következő blogposzt már v1.1-es verziójú és egyelőre egy darabig véglegesnek is tekinthető. A tegnapihoz képest jelentős javítást az indokolja, hogy a hír mögötti új hangbányászati illetve -felismerési technológiára az elmúlt pár órában lett egy pici rálátásom, már nem kell annyira a sötétben tapogatóznom.Mivel v1.1-et írtam és nem v9.0-t nagy csodát senki ne várjon! ;)

Friss tegnapi tárgybeli hír két forrásból is, a második (indexes) cikk kommenteket is tartalmaz, ennyiben érdekesebb. :o)
 
Intelligens ügyfélszolgálati rendszert vezet be a Vodafone (index.hu)

A gépek figyelnek, ha a Vodafone-t hívjuk (privatbankar.hu)

A Vodafone Magyarország és a Montana Tudásmenedzsment Kft. intelligens ügyfélszolgálati rendszert vezet be a mobiltávközlési társaságnál, a valós idejű ügyfélkiszolgálás egy folyékonybeszéd-felismerő szoftveres megoldáson alapul, s első lesz a magyar piacon

A kedden Budapesten sajtótájékoztatón bemutatott megoldás a telefonáló beszédének elemzésével automatikusan meghatározott kategóriákba sorolja a hívást. A rendszer képes lesz olyan statisztika előállítására is, amely megmutatja az ügyfélszolgálat kihasználtságát és a leggyakoribb kérdéseket. A kategóriáknak köszönhetően hatékonyabban lehet majd a munkát megszervezni, a munkatársakat beosztani, így az ügyfél gyorsabb és pontosabb megoldást kaphat problémájára.

A Montana által vezetett fejlesztést az Európai Unió és a magyar állam összesen 218,4 millió forinttal támogatja. A kutatás-fejlesztés révén a Vodafone először alkalmazhat majd hangfelismerő rendszert call centerében. A projekt teljes bekerülési költsége 336 millió forint.

A projekt két év alatt, 2012 első negyedévének végére éri el a kívánt eredményt.

NÉZZÜK AKKOR, mit lehet ennyi infóból kihámozni.

* Nincs új a nap alatt: következzenek a történelmi előzmények

Régi vágy a szakmában a szöveg (text) és a hang (voice) kölcsönös megfeleltetése. Míg azonban a szöveg felolvasása hanggá régóta és jó minőségben létezik, úgymond könnyű feladat. A másik irány vagyis a hangzó szöveg írott szöveggé alakítása jóval nehezebb feladat. A historikus előzményeket is figyelembevéve vannak különböző nehézségi fokozatok:

- Nem mindegy, hogy például Bőzsöny Ferenc szép magyar beszédét CD-minőségben kell dekódolni írott szöveggé, avagy szegedi tájszólásos ember recsegős és/vagy háttérzajos vonalas- vagy mobiltelefonról érkező hangját.

- Nem (feltétlen) mindegy a nyelv, különös tekintettel arra, hogy a magyar nyelv agglutináló (ragozó) nyelv, szemben az ebből a szemponból jóval egyszerűbb angol nyelvvel. Nem is véletlen, hogy angol nyelvterületen előbb voltak sikerek a témában.

- Nem mindegy, hogy egy szöveghez kapcsolódik-e érzelmi analízis. Nyílván az olyan ügyfélre jobban kell figyelni, aki ordít és/vagy dühös, pláne, ha kiemelt jó ügyfélről van szó. Vagy olyan esetben, amikor a cég call-centeres ügyintézője vált véletlenül "bicskanyitogató" módba.

- Nem mindegy, hogy csak kategóriákba kell-e sorolni egy hanganyagot, avagy hangról-hangra dekódolni kell azt.

- A friss indexes hír szövegből derül ki egy érdekes feladat, nevezetesen megkísérelni azonosítani a gyakori kérdéseket/problémákat. Ez a fenti kategórizálásos problémánál nehezebb csoportosítási/osztályozási feladat. Ide eljutni is hírértékű lenne (magyar nyelvterületen, gyenge minőségű telefonos hanganyag esetén).

- Végül nem mindegy, hogy
+ teljesen általános, spontán, hétköznapi, szűkebb szókincsű(?) folyamatos beszéd folyamatos online valós-idejű konverziójáról van-e szó
+ egy konferencia moderátorának félig spontán beszédének szöveggé alakításáról van-e szó
+ egy tévés hírcsatorna híradósának előre megírt szövegéről van-e szó.
Érezhető, hogy egyfelöl könnyebbedik a feladat, másfelöl más-más a pontossági követelmény és a várható felhasználás.


* Magyar nyelvterület eddigi eredményeinek áttekintése (amiről én tudok)

- A témában - hangsúlyozottan az én tudtommal, és alapvetően két éves emlékeimre támaszkodva -, legelőször két éve a Nextent robbantott. Ők a Szegedi Tudományegyetem egyik műhelyében kikísérletezett tudományos kutatást hoztak fel termékszintre. Ebben van érzelmi analízis is. Alapvetően szócentrikus metódus, lényegi működése, hogy előre megadott szavakat keres rossz minőségű telefonos hangfile-okban. A módszer mélyében egy nem publikus módon módosított/feltalált SVM (kernel-módszer) algoritmus húzódik. A módszer akkor lehet előnyös a teljes hang->szöveg konverzióval szemben, ha a felismerendő szavak tényleg nagyon nagy megbízhatósággal felismerődnek és akkor hátrányos, ha a teljes hang-szöveg konverzió átlagosan is nagyon magas megbízhatóságú. Ebben az esetben akkor már csak árversenyben tudhat jobbat adni a szófelismeréses módszerű szoftver (technológiai értelemben nem).

Itt egy korabeli két évvel ezelötti  indexes cikk egy létező, kapható folyamatosan fejlesztett termékről, szintén kommentekkel, amik persze mutatnak némi áthallást a friss kommentekkel. ;)
A hangulatunkat is elemzik a call centerek

Itt a magyar fejlesztésű termék honlapja:
Voice Miner

- Nem sokra rá jött a magyar piacra a nagy konkurens izraeli Nice cég, amelyik rohamtempóban próbálta meg angol nyelvterületen már létező megoldását adaptálni magyar nyelvterületre. Olykor övön aluli módszereket is alkalmazva: ügyfél által súlyos pénzekért megvásárolt call center system által speciális file-formátumban tárolt hanganyagokhoz nem engedte a saját pénzes ügyfeleit hozzáférni, saját tulajdonának tekintve azt.

- A harmadik legfrissebb szerepelő a BME-vel együttműködő Netxtenthez hasonlóan magyar Aitia.

Összefoglalva tehát ez egy többszerepelős piac, más-más fókuszokkal, súlypontokkal, előélettel.


* Azt azért látni kell a friss hírek kapcsán, hogy:

- Nem szabad elfelejteni, amiről hírt kaptunk a fentebbiek szerint, az egyelőre csak terv. 2012-re várható eredmény a projekttől. Ez egy kötelező kommüniké volt, a támogatás miatt.

- Ügyfélszolgálati kihasználtsági mutatókhoz, egyéb hang-, szöveg- és adatbányászati megoldásoktól független technológiák is rendelkezésre állnak.

- 336 millió forint nekem nagyon kevésnek tűnik egy fullos megoldáshoz. Bár kétségtelenül lehet belőle valamilyen eredményt szállítani. :o)

- Egyébként az "szép" lehet az egész történetben, hogy az ügyfelek fogják megfizetni vásárolt szolgáltatásokon keresztül ezt a drága call centeres technológiát: mármint hogy gépekkel lehet majd társalogni nem kevés várható potenciális probléma árán, miközben a minél tökéletesebb hangfelismerés egyéb célokra is használható lesz.

- Az indexes cikk kommentjeiből egyértelműen kiderül két reakció
(1) szkepticizmus
(2) azonnal előkerül a nagy testvér figyel típusú adatvédelmi aggodalom.


* Folyékonybeszéd-felismerő

Ez eredendően elég tág határok között értelmezhető: lehet csak annyiról szó, hogy képes a program megkülönböztetni az élőbeszédet a zenétől például. Egészen addig elmenve, hogy a hangot képes valós időben text-állománnyá lekonvertálni illetve szövegbányászatilag feldolgozni. Na ez utóbbit én a saját tapasztalatom alapján egészen egyszerűen nem hiszem el -> írtam tegnap. Ma meg saját szememmel láttam egy AITIÁ-s demót, és nem hittem a szememnek, azt hittem káprázik.

Egy nő telefonált egy internetszolgáltatóhoz talán, és ahogy mondta tök normál sebességgel a szöveget t-é-n-y-l-e-g azonnal íródott ki a (magyar) szöveg a képernyőre, elképesztő pontossággal. Volt a szövegben pár xyz de lényegtelen volt (az sem kizárt, hogy recsegés következményeként), én így hasraütve a lényeget illetően 99%-os pontosságot mondanék rá. (Nyilván ez egy jól kiválasztott minta volt, lehetnek jóval gyengébb minták is) Részemről maximális respect, technológiai megvalósíthatósági értelemben lenullázódott a szkepticizmusom.Ha nem demó-, hanem éles üzemi körülmények között látom, akkor azt mondom, hogy komplett kiérlelt a technológia. Amennyi kevéske infóm nekem van, annak alapján azt mondom a Nextent megoldásának fel van adva a lecke, egy erős konkurens érkeztével.


* AITIÁ-s technológiai háttér

Természetesen egy ilyen impresszív élmény után megpróbáltam utánajárni mi lehet a háttérben. Nyilván sok infó azért nem elérhető angolul sem, rövid idő alatt nem lehet csodát tenni egy ilyen blogposztban, ráadásul én sosem dolgoztam a témában. Hiába áll szívemhez közel a hangbányászat is, mint speciális adatbányászat, ha olykor még a terminológiával sem vagyok tisztában a fentiek miatt. Ami nekem lejött nagyon röviden:

- Mivel folyamatos beszéd detektálásáról van szó, szó nem lehet szavak detektálásáról. Vesznek mondjuk egy 10 másodperces hangrészletet azt elemzik. Próbálják megtalálni a neki megfelelő szöveget. Próbálnak benne detektálni szünetet. Ha analógiával akarnék élni, a szövegbányászatban ismert n-gram technikához hasonlítanám. Ami nóvum, az az, hogy ezek az elemek a felismerés során egyre "értelmesednek" illetve hálózatot, praktikusan például Bayes hálózatot alkothatnak, rákövetkezési valószínűségekkel "súlyozva". Óriási szakmai gyönyörűség ha más nem is, csak ilyen felismerési hálózatokkal foglalkozhatni. :o)

- Minden például 10 másodperces hanganyag legelőszöris átesik egy lényeg/jellemző-kiemelésen (->feature extraction).Az így kapott jellemzővektor illesztődhet aztán szótárban előzetesen meglévő mintákhoz.

Kétféle szótár van:

+ Akkusztikai alapú: jellemző nyelvspecifikus fonémák jellemzővektorainak szótára. Ez alapjában egy sok helyről összelapátolt cucc, van benne Bőzsöny Ferenc típusú hanganyagtól kezdve háttérzajos, meg spontán benyögéses anyag is.A szótár bővíthető, a kritikus pont a hanganyagok leképzése algoritmus szemponból már kezelhető jellemzővektorokra. Amúgy a képbányászok is alapvetően ilyen - esetükben nyilván képspecifikus - jellemzővektorokkal dolgoznak egyébként.

+ Nyelv(tan)i alapú: itt jön a szavak - emlegetett és valószínűségekkel megfűszerezett - Bayes hálózata.

A poén az, hogy a kettő összefűzhető: a akkusztikai verzióból kapott statisztikai valószínűségek (eloszlások) megfeleltethetők a nyelvi verzióval, ezáltal azok kvázi beágyazhatók ez utóbbiba. Ha működik, elmondhatatlan szépségű elképzelés.

- Kulcskérdés a hangzó szöveg megtalálásának konfidencia szintje (nem mindegy, hogy legjobb közelítéssel avagy pontosan találjuk el mit mondtak), mindezt kettős célkitűzéssel. (1) Minél magasabb legyen, és (2) minél pontosabban megadható. Az az ígéret, hogy ebben van az egyik nagy dobás.Sikerült egy olyan számítási módszert találni ami kvázi egyetlen valós számot rendel megfeleltetésekhez és a megfeleltések optimális aggregálása után jönnek a döbbenetes eredmények. Na ez a konfidencia-számolás meg a másik óriási szakmai gyönyörűség. :o)

- A felismerési hálózatkonfiguráció révén tehát, egyre értelmesebbre leképzett hangfoszlánydarabkákhoz valós számmal reprezentált hasonlóságmértékünk lehet. A következő kérdés hogyan kell legjobbat választani? Egy véges bármilyen nagy szótár/korpus nem elégséges mindehhez. Ezért jön a következő nagy ötlet. Egy olyan felismerő hálózatot generálni, ami minden jellemzővektor-sorozathoz jól illeszkedik. Én ebből az állításból azt értem, hogy miért jó és örömteli. Viszont ha nekem kéne egy ilyen hálózatot generálnom, így első belegondolás után ebbe beletörne a bicskám, olyan nehézségűnek hangzik, méretre is, kezelhetőségre is.

- Konfidencia-konklúzió tehát, hogy a hang+nyelv illesztés, illetve a mindenhez illeszkedő hálózat együttesen tudhat kellően jól artikulált és argumentált konfidencia eredményt adni.

- Egy dologról nem esett szó: hogyan tud ez valós-időben menni. Természetesen fogalmam sincs.Úgy képzelem a jellemzővektoros összehasonlítás, pláne valamiféle indexes támogatással nem egy nagy dolog. Utána a Bayes hálózat valószínűség szorzásai, összeadásai megint nem elviselhetetlen műveletigényűek. És a legvégső aggregálásnál sem látok szorzás összeadásnál bonyolultabb műveletet, és belőlük sem sokat. Azaz a valós-idejű működést tudom a legjobban elképzelni az egész fenti történetből, működhetőség szempontjából.


* Végül itt egy már működő érdekes webes alkalmazás/honlap a csapattól.Itt videókban lehet szöveget keresni.
Mindroom

Köszönet mindenkinek a blogposzthoz nyújtott különféle segítségért.

2010. szeptember 10., péntek

Nyugdíjrendszer, mint időzített bomba

.
Friss cikk az indexen: Nem lesznek nyugdíjak, ha a Fidesz nem lép

A kormánynak több ponton is hozzá kellene nyúlnia a magánnyugdíjrendszerhez. A leglényegesebb reformlépés az lenne, ha végleges döntés születne a pénztári formáról.
Na ez a nyugdíj téma az eddig, ami legtávolabb áll a blog adatbányász orientáltságától. Ha nagyon akarnék mégis valamiféle analógiát eröltetni, akkor azt mondanám, hogy a magyar társadalom hálózatában lévő honpolgárok olyan jelentőségű nehéz ügye/kérdése ez, amire oly kevés érdemi hatásuk volt és van.

Életem korábbi szakaszában kétszer is dolgoztam nyugdíjpénztári projekten (informatikusként), közelről láttam mind a II.pillért (magánnyugdíjpénztár), mind a III.pillért (önkéntes nyugdíjpénztár). Noha van némi rálátásom, és hozzá sok-sok negatív tapasztalatom, távolról sem állítanám, hogy szakértője vagyok a kérdésnek. Sőt éppen ellenkezőleg:  az itt következő tárgy(=domain)szintű sorok, saját laikusnak mondható gondolatmenetem következményei.

Ha van téma, akkor a nyugdíj az, amiben kevés pesszimistább "armegeddonista" van kis hazánkban, mint én.

Amit a cikkhez tennék hozzá (nem túl lényeges módon):

* Tényleg kiugróan magas a működési költség, de ehhez rendesen hozzátette a magáét az állam, a PSZÁF, a bürokrácia, a piaci szereplők mohósága, no meg ne hallgassuk el: az informatika

* Nem szeretem a mai közgazdászok által gyakran folytatott gyakorlatot, hogy utólag visszafele magyaráznak történéseket, de a nyugdíjrendszer átszabásáról annó is lehetett tudni, hogy
(a) nagyon nehéz probléma, pláne "en passant" (menet közben) változtat(gat)va.
(b) nagyon rosszul és alapvetően politikusi önérdekből, semmint a dolgozó emberek érdekvédelmében nyúltak hozzá. Összhangban avval, hogy a rendszerváltás forgatagában voltak ugye egyéb szempontok is, amiért fontosabb volt sürgösen megcsinálni, semmint jól (lásd még privatizáció).

És az még csak a kisebbik baj, hogy a válság miatt is egy ekkora csődtömeg halmozódott fel mára. De én nem igazán látok koherensen védhető kiutat a jelenlegi kulimászból, ha csak nem sikerülne derült égből villámcsapásszerűen rendezni az eddig felgyülemlett igen nagy számlát, és értelmes elfogadható tabula rasat teremteni.

TÉTEL(em): Minimum kétféle módon lehet rendszerszinten gondoskodni az idős emberek valamiféle központosított ellátásáról. (1) felosztó-kirovó típusú biztosításos alapon (2) egyéni névre szóló nyugdíj számlás alapon. Én azt állítom, szigorúan tilos a kettőt keverni, és bármiféle átjárást tenni a kettő között (kommentekben szívesen fogadom az ellenérveket).

Az én felfogásomban, az "államfilozófia" függvényében az (1) vagy deklaráltan kötelező vagy opcionális (2) a mindenképpen opcionálisan választható.

A legdurvább/legkomplexebb eset az, ha egy 50 éves ember korábban az (1) szerint fizetett, de szeretne (2)-be menni. Az én felfogásomban, az 50 éves korával arányosan biztosított marad (1) szerint, nem fizet több járulékot az (1)-be, de az őt képviselő (2) sem kap az (1)-től semennyi pénzt. És minden (2)-ben következő történés teljesen addicionálisan hozzáadódik/rárakódik (1)-re (vagy plusz, vagy minusz előjellel, persze).

Ugyanis ez az (1) és (2) teljesen különböző minőségek. Az alma és a körte látnivalóan különbözőek. Ha valaki biztosítást fizet (most azt hagyjuk, hogy kötelezően), az ne akarjon egyéni számlás tőkét csinálni belőle. És megfordítva, az egyéni számla előnyei és hátrányai között nincs a biztosításos megosztott felelősségválallás.

Én egyébként - a fent említett tabula rasa esetén - abból indulok ki, hogy az állam (a szintén említett államfilozófia jegyében) nem hagyhat tömegesen meghalni idős embereket, tehát valamiféle állami nyugdíjmenedzselésre szükség van: erre mondom, hogy az (1)-nek az kötelezőnek illik lennie, a megosztott társadalmi felelősségválallás jegyében.

És persze azonnal célszerűnek túnik ennek továbbgondolásakor, hogy ez az (1) a demográfiai helyzettel dinamikusan korreláló kell legyen. Azaz romló demográfiai viszonyok közepette "megszorítás" címén igenis kell (lehetőleg minél finomabb léptékben, ha kell akár sűrűbben is) csökkenjen az (1)-es típusú nyugdíj, azaz nem megvárni meg görgetni a felhalmozódott többszáz milliárdos hiányt. Bármennyire is szomorú meg vérlázító az idevágó potenciális indoklás: de ha közös az (1) típusú felelősségvállalás, akkor közös a demográfiai viszonyok romlása miatti felelősség is.

A (2)-n belül a magánnyugdíjpénztárakat én teljes egészében mellőzném, sőt ki sem találtam volna őket (semmi előnyét nem látom, csak a kárát: de szívesen fogadok ellenvéleményeket ez ügyben is), és csak az önkénteseket hagynám meg, a legkiterjesztettebb jogosítványokkal. Ide az fizessen be (pluszba), aki nyugdíj alapon akarja biztosítani a nyugdíjas jövöjét, akar vállalni némi kockázatot, és reménykedik egy értelmesebb magasabb hozamban, ami az (1) típusú állami nyugdíjt kiegészíti. És persze az itteni halmozás teljes mértékben örökölhető lenne.

Végezetül, ha azt fogadnánk el az államfilozófia jegyében  (számomra kevéssé szimpatikus módon), hogy a piacgazdaságos értelemben "kicsi" államnak nem feladata a magatehetetlenné vált és/vagy idős polgárairól valamilyen szinten gondoskodni (csak az adójukat beszedni, amíg lehetett). Ezen vezérlőelv esetén, akkor viszont az egész nyugdíj témát a magánszektorba kéne adni egyetlen "pillérként". Ekkor az állam lepasszolja magáról teljes egészében a feladatot, és "majd a piac mindent megold".Persze nem kis kérdés ennél a forgatókönyvnél az, hogy átmenetként az eddigi nyugdíjjárulékfizetők nyugdíjával mi legyen: valószínűleg a jövőbeni jelentős állami tehercsökkenés fejében iziben és azonnal kellene nagyon mélyen zsebbe nyúlni, hogy piaci szereplőhöz lehessen passzolni a problémát..

2010. szeptember 6., hétfő

Frissebb adatbányász könyvek az amazon.com-on.



1.
The Top Ten Algorithms in Data Mining
Price: 64 USD
Hardcover: 232 pages
Publication Date: April 9, 2009
Publisher: Chapman & Hall
CRC Data Mining and Knowledge Discovery Series
Xindong Wu (Editor) - Vipin Kumar (Editor) 

Topics:
* classification
* clustering
* statistical learning
* association analysis
* link mining

Algorithms:
01.C4.5
02.k-Means
03.SVM
04.Apriori
05.EM(=Expectation Maximization)
06.PageRank
07.AdaBoost
08.kNN
09.Naive Bayes
10.CART


2.
PMML in Action
Unleashing the Power of Open Standards for Data Mining and Predictive Analytics

Price: 32 USD
Hardcover: 188 pages
Publication Date: May 18, 2010
Publisher: CreateSpace

ADAPA

Példák adatfile-okkal(zementis.com-on)


3.
Temporal Data Mining

Price: 54 USD
Hardcover:395 pages
Publication Date: March 10, 2010
Publisher: Chapman and Hall/CRC



























Szerzői blog


4.
Springer Optimization and Its Applications
Data Mining and Knowledge Discovery via Logic-Based Methods:
Theory, Algorithms, and Application

Price: 124 USD
Hardcover: 350 pages
Publication Date: June 28, 2010, 1st Edition
Publisher:  Springer

This monograph focuses on the development and use of a novel approach, based on mathematical logic.


5.
Synthesis Lectures on Data Mining and Knowledge Discovery
Ensemble Methods in Data Mining:
Improving Accuracy Through Combining Predictions

Price: 28 USD
Hardcover: 126 pages
Publication Date: February 24, 2010
Publisher: Morgan and Claypool Publishers

Ensemble methods combine multiple models into one usually more accurate than the best of its components.

Ensembles can provide a critical boost to industrial challenges
* investment timing
* drug discovery
* fraud detection
* recommendation systems
* where predictive accuracy is more vital than model interpretability.

Ensembles are useful with all modeling algorithms, but this book focuses on decision trees to explain them most clearly.

After describing trees and their strengths and weaknesses, the authors provide an overview of regularization -- today understood to be a key reason for the superior performance of modern ensembling algorithms.

The book continues with a clear description of two recent developments:
* Importance Sampling (IS)
* Rule Ensembles (RE).

IS reveals classic ensemble methods
* bagging
* random forests
* boosting

REs->linear rule models derived from decision tree ensembles. They are the most interpretable version of ensembles

Snippets of code in R are provided to illustrate the algorithms


6.
Machine Learning: An Algorithmic Perspective

Price: 62 USD
Hardcover: 406 pages
Publication Date: April 1, 2009, 1st Edition
Publisher: Chapman & Hall

The book covers
* neural networks
* graphical models
* reinforcement learning
* evolutionary algorithms
* dimensionality reduction methods
* the important area of optimization

2010. szeptember 5., vasárnap

Software Testing: Interview Questions

.
Világ életemben érdekelt a minél hatékonyabb (magyarán minél gazdaságosabb és egyúttal minél eredményesebb) tesztelés roppant nehéz informatikai témája. Halkan megjegyzem - saját és ezért biztosan vitatható véleményként -, hogy annyira nehéznek tartom a szervezeti szinten és ipari léptékben jól működő tesztelést, hogy már-már művészetnek vélem a dolgot.

Én átfogó és jó szakirodalmat nem nagyon láttam hozzá: magyar nyelvterületen semmiképpen, de angol nyelvterületen sem igazán (pedig biztos van). Kezembe akadt viszont az alábbi - nem túl nagy és ezáltal megterhelő: 220 oldalas, viszont ehhez képest elég drága: 52 USD - roppant érdekesnek tűnő tárgyban jelzett című könyv, aminek már a publikus tartalomjegyzéke is lenyügöző számomra, pláne így, hogy kvázi koncentrált kivonatként informál a könyv mondandójáról (téma terjedelmének felmérését is megtámogatva).

A könyv erénye, hogy a témát rendesen körbejárja egyéb részeiben (sőt amúgy egyébként még CD-ROM is tartozik a könyvhöz). Beszél
* a tesztelők szervezetbe illeszkedéséről,
* sőt a tesztelők hierarchiájáról külön is,
* tesztelés-specifikus (álláshirdetéses) önéletrajzi fogásokról,
* a szakmai interjút megelőző általános interjúkérdésekről,
* fizetési  rangsorba való behelyezkedési lehetőségekről,
* állásinterjú-ratingelésről
* csupa praktikus tudnivalókról.

És mivel korszerűnek mondható (2008-as a frissített kiadás), olyan hot topicok is megvannak benne, mint például CMMI.

B -> Basic
I  -> Intermediate
A-> Advanced

Software Testing: Interview Questions

Chapter 1 - Software Testing Basics
(B) In which software life cycle phase does testing occur?
(B) Can you explain the PDCA cycle and where testing fits in?
(B) What is the difference between white box, black box, and gray box testing?
(B) What is the difference between a defect and a failure?
(B) What are the categories of defects?
(B) What is the difference between verification and validation?
(B) How does testing affect risk?
(B) Does an increase in testing always improve the project?
(I) How do you define a testing policy?
(B) Should testing be done only after the build and execution phases are complete?
(B) Are there more defects in the design phase or in the coding phase?
(B) What kind of input do we need from the end user to begin proper testing?
(B) What is the difference between latent and masked defects?
(B) A defect which could have been removed during the initial stage is removed in a later stage. How does this affect cost?
(I) Can you explain the workbench concept?
(B) What’s the difference between alpha and beta testing?
(I) Can you explain the concept of defect cascading?
(B) Can you explain how one defect leads to other defects?
(B) Can you explain usability testing?
(B) What are the different strategies for rollout to end users?
(I) Can you explain requirement traceability and its importance?
(B) What is the difference between pilot and beta testing?
(B) How do you perform a risk analysis during software testing?
(B) How do you conclude which section is most risky in your application?
(B) What does entry and exit criteria mean in a project?
(B) On what basis is the acceptance plan prepared?
(B) What’s the relationship between environment reality and test phases?
(B) What are different types of verifications?
(B) What’s the difference between inspections and walkthroughs?
(B) Can you explain regression testing and confirmation testing?
(I) What is coverage and what are the different types of coverage techniques?
(A) How does a coverage tool work?
(B) What is configuration management?
(B) Can you explain the baseline concept in software development?
(B) What are the different test plan documents in a project?
(B) How do test documents in a project span across the software development lifecycle?
(A) Can you explain inventories?
(A) How do you do analysis and design for testing projects?
(A) Can you explain calibration?
(B) Which test cases are written first: white boxes or black boxes?
(I) Can you explain cohabiting software?
(B) What impact ratings have you used in your projects?
(B) What is a test log?
(I) Explain the SDLC (Software Development LifeCycle) in detail?
(I) Can you explain the waterfall model?
(I) Can you explain the big-bang waterfall model?
(I) Can you explain the phased waterfall model?
(I) Explain the iterative model, incremental model, spiral model, evolutionary model and the V-model?
(I) Explain unit testing, integration tests, system testing and acceptance testing?
(I) What’s the difference between system testing and acceptance testing?
(I) Which is the best model?
(I) What group of teams can do software testing?

Chapter 2 - Testing Techniques
(B) Can you explain boundary value analysis?
(B) What is a boundary value in software testing?
(B) Can you explain equivalence partitioning?
(B) Can you explain how the state transition diagrams can be helpful during testing?
(B) Can you explain random testing?
(B) Can you explain monkey testing?
(B) What is negative and positive testing?
(I) Can you explain exploratory testing?
(A) What are semi-random test cases?
(I) What is an orthogonal arrays?
(I) Can you explain a pair-wise defect?
(I) Can you explain decision tables?
(B) How did you define severity ratings in your project?

Chapter 3 - The Software Process
(B) What is a software process?
(I) What are the different cost elements involved in implementing a process in an organization?
(B) What is a model?
(B) What is a maturity level?
(B) Can you explain process areas in CMMI?
(B) Can you explain tailoring?

Chapter 4 - CMMI
(B) What is CMMI and what’s the advantage of implementing it in an organization?
(I) What’s the difference between implementation and institutionalization?
(I) What are different models in CMMI?
(I) Can you explain staged and continuous models in CMMI?
(I) Can you explain the different maturity levels in a staged representation?
(I) Can you explain capability levels in a continuous representation?
(I) Which model should we use and under what scenarios?
(A) How many process areas are present in CMMI and what classification do they fall in?
(B) Can you define all the levels in CMMI?
(I) What different sources are needed to verify authenticity for CMMI implementation?
(I) Can you explain the SCAMPI process?
(I) How is appraisal done in CMMI?
(I) Which appraisal method class is best?
(I) Can you explain the importance of PII in SCAMPI?
(A) Can you explain implementation of CMMI in one of the key process areas?
(B) What are all the process areas and goals and practices?
(A) Can you explain all the process areas?

Chapter 5 - Six Sigma
(B) What is Six Sigma?
(I) Can you explain the different methodology for the execution and the design process stages in Six Sigma?
(I) What are executive leaders, champions, master black belts, green belts, and black belts?
(I) What are the different kinds of variations used in Six Sigma?
(A) Can you explain standard deviation?
(B) Can you explain the fish bone/Ishikawa diagram?

Chapter 6 - Metrics
(B) What is meant by measures and metrics?
(I) Can you explain how the number of defects are measured?
(I) Can you explain how the number of production defects are measured?
(I) Can you explain defect seeding?
(I) Can you explain DRE?
(B) Can you explain unit and system test DRE?
(I) How do you measure test effectiveness?
(B) Can you explain defect age and defect spoilage?

Chapter 7 - Automated Testing
(B) What are good candidates for automation in testing?
(B) Does automation replace manual testing?
(I) Which automation tools have you worked with and can you explain them briefly?
(I) How does load testing work for websites?
(A) Can you give an example showing load testing for Websites?
(I) What does the load test summary report contain?
(I) Can you explain data-driven testing?
(I) Can you explain table-driven testing?
(I) How can you perform data-driven testing using Automated QA?

Chapter 8 - Testing Estimation
(B) What are the different ways of doing black box testing?
(B) Can you explain TPA analysis?
(A) Can you explain function points?
(B) Can you explain an application boundary?
(B) Can you explain the elementary process?
(B) Can you explain the concept of the static and dynamic elementary processes?
(I) Can you explain FTR, ILF, EIF, EI, EO, EQ, and GSC?
(A) How can you estimate the number of acceptance test cases in a project?
(A) Can you explain how TPA works
(A) How do you create an estimate for black box testing?
(A) How do you estimate white box testing?
(A) Is there a way to estimate acceptance test cases in a system?

2010. szeptember 4., szombat

Encyclopedia of Optimization

.
A fenti tárgybeli címmel jelentetett meg tavaly a Springer egy könyvet.

Néhány adat hozzá:

* 1.700 euró
* 4.700 oldal, 613 ábrával, 247 táblázattal
* 19 szerkesztő, egy magyar hangzású névvel Terlaky Tamás
* 1.000+ több contributor (magyarán akik betűk írásával résztvettek a projektben)
* 500+ oldalas tárgymutató

Jó lehet a fenti tárgyból szigorlatozni... ;)

2010. szeptember 2., csütörtök

KDD MLG Workshop, 2010 - Hírek másodkézből

.
Sajnos nem lehettem ott a neves eseményen, ahol az akadémiai és üzleti világ körülbelül 900 embere tolongott információért. Viszont láttam olyan embert, aki ott lehetett. :o)

Előszöris, MLG! Ez nem más mint Mining and Lerning Graph, azaz gráfok (adat)bányászata. A Workshop igen szellemesen fogalmazta meg a legfontosabb 'hot topic'-okat, tulajdonképpen ennek leírásáért is születik ez a blog-bejegyzés.

(1) Időben változó gráfok tanulása, modellezése
(2) Rejtett változós modellek gráfoknál
(3) Skálázás nagy gráfokra (lásd még bioinformatika)
(4) Gráfok vizualizációja
(5) Gráfalgoritmusok validálása
(6) Gyakori részgráfok keresése.

A poén az, hogy általánosságban is ezek a 'hot topic'-ok, a 'gráf' szó elhagyásával.

Így első ránézésre, meg az információs sokk csillapodása után, az én szőrszálhasogató vénám azt súgja /nemkicsit képzavar? :o)/, hogy a fenti témák nem egyforma súlyúak. Miközben az (1), (3), (6)-ról maximálisan elhiszem, hogy komoly fejlődési pontenciált tartalmaznak, nehéz és létező problémák, addig a többivel vannak horderő és kiérleltségi problémák.

Az (1) időben változó gráfoknál, ahol az idővel egyszerre változhat (szünhet meg illetve keletkezhet) csúcs, él, topic/cimke, sőt a topic-ok korrelációja is változhat, ezt lemodellezni, az valós probléma és nem kis kihívás. Az egyik Workshopon előadó cikkíró performanciális gondok miatt a legdurvább esetet kénytelen volt 2000 gráfcsúcsról 500 gráfcsúcsra leredukálni. Miközben úgy tűnt a párhuzamosításban rejlő lehetőségekkel nem foglalkozott.

(2) Rejtett változós gráfoknál nem igazán fogtam fel a "rejtett változó" értelmét. Én értem, hogy a gráfélekhez valószínűségek voltak rendelve, meg SVD(=Singular Value Decompsition) analógia miatt a látens szemantikiai indexelés is képbekerül, meg az LDA(=Latent Dirichlet Allocation)-ban is ott a rejtett kulcsszó. De nekem valahogy csak az jött le, hogy itt gráfklaszterezésről van szó, ahol a klaszterek kezdetben nyílvánvalóan rejtettek, azt' mondhatni semmi több. Valahogy csak terminológiai különbségeket bírtam felfedezni, ha próbáltam az alapproblémát hétköznapira lefordítani. Persze ez túlzott szimplifikáció, azért ennél szinesebb a téma.

Ami még lejött nekem, hogy míg egy neurális hálónál csak az elgoritmus fekete doboz, itt gyakorlatilag minden. A klaszterek, az algoritmus, sőt maga a végeredmény kiértékelése sem ad túl sok fogodzót. Magyarán csomó adatból számolunk valamit, amit mind interpretálni, mind mérni, nagyon nehéz. Elképzeltem, hogy egy ilyen modellt, ha el kéne adnom az üzleti életben, hát lehet, hogy felkopna az állam. :o) De legyünk optimisták, fejlődhet ez még emberbarátibb irányba.

(3) A gráfok vizualizációja egyértelműen nem az én témám (se régen, se aktuálisan, se a jövőben). :o) Én már ott megvagyok lőve, hogy ugye eleve képernyőn akarjuk megjeleníteni a gráfokat. Ott eleve nem lehet sok gráfcsúcsot megjeleníteni. Magyarán kisméretű a probléma, azt számol ki az ember, amit akar (megjelenítési koordinátákhoz). Ilyenekre vannak függvénykönyvtárak; egész egyszerűen nem látom a fejlődési potenciált az ügyben. De ha ezen továbblépünk is, az hogy egy gráfot hogyan jelenítünk meg, mi szép és mi nem szép, az annyira szubjektív, hogy már fájdalmas.

Az alapprobléma megfogalmazása azért szép:
* Gráfcsúcsok ne legyenek egymáshoz se túl közel, se túl távol
* Gráfcsúcsok egyenletesen oszoljanak el a képen
* Az élhosszak is egyenletesen oszoljanak el.
* Minél kevésbé messék egymást az élek.

Fizikai analógia: legyen rugó minden él, ha elengedjük a rendszert, amit felvesz formát, közel úgy nézzen ki a gráf. Számolási műveletigénye ennek a legtragikusabb, de optimalizálás után is köbös. Egy trendi módi: SSN-LDA.

Érdekes ötlet: vizualizáció, mint információ-visszakeresési probléma (arra való visszavezetés)

Érdekes és szellemes - objektíven számolható - minőségmérés, a gráfvizualizációra:
Közelebb kerül, aminek távolabb kéne kerülni (precision)
Távolabbra kerül, aminek közelebbnek kéne (recall)
Bennem némileg analógiát kelt a klaszterezés minőség mérésére (klaszteren belüli és klaszterek közötti távolságok aránya)

Számomra új távolság fogalom: Hellinger távolság.

Én ehhez azt tenném hozzá, szubjektíve, hogy amit én elvárok egy gráfvizualizációtól, az nem más, mint
* Nagyon gyorsan lehessen mindkét irányba zoomolni
* Könnyen lehessen csúcsokba beleklikkelni, további információkért.
Ennek szép példáját láttam a Sixtepben

(5) A gráf algoritmusok validálása témában én már ott meg voltam lőve, hogy mi volt a KDD Worshopon gráfspecifikus, sőt magát az egész témafelvetést nem értettem. Úgy látszik ma nehézfejű napom volt. De a legfőbb problémám ott volt, hogy fekete dobozként kellett elképzelni, mind a problémát, mind a rajta dolgozó algoritmust. Csak az képezte vizsgálat tárgyát, hogy a végeredmény mennyire jó. Ahol én már azt sem értettem, hogy ez miért validálás.

Azért sikerült egy idevágó alapproblémát kicsikarni, hogy némileg el lehessen az egészet képzelni: képzeljük el, hogy van diákok hálózata, ahol a diákok a csúcsok, az élek reprezentálják, mondjuk a barátságot. Akkor van él valamilyen súllyal/valószínűséggel, ha két diák barát. Cimkézzük meg a csúcsokat aszerint, hogy dohányzik-e a diák vagy sem. Kezdetben pár csúcs cimkézett, feladat cimkézzük meg a maradékot. A feladat értelmes gráfon belül is, meg gráfok között is.

2010. szeptember 1., szerda

Klímaváltozás: előrejelzési visszásságok

.
Az indexen nemrég jelent meg egy cikk a tárgybeli témában.

Már Lomborg szerint is probléma a klímaváltozás

És mivel már én is foglalkoztam a témával korábban itt a blogon, így aktuális az egész ügyet ismét elővenni. :o)

Miután évekig a szkeptikusok táborát erősítette, Bjørn Lomborg most azt mondja, hogy a legfontosabb helyre kell tenni a klímaváltozás elleni küzdelmet. Legújabb könyvében arról ír a koppenhágai gazdasági iskola professzora, hogy évente százmilliárd dollárt kellene a klímaváltozás elleni harcra fordítani.
Tegyük most félre a pikirt, rosszindulatú feltételezést, hogy a tudós esetleg részt akar venni a bizniszben, az erőforrások tűzközelségében. Az viszont már lényeges lehet, hogy az indexes cím viszont félrevezető, több dolog miatt is:

(1) A "fontosság" és a "költségigény" nem feltétlen korrelál egymással. Lehet fontosabb egy dolog, ami jóval kevesebb erőforrást igényel és lehet a klímatéma kevésbé fontos, ami viszont iszonyat pénzeket.

(2) Nem mindegy, hogy valami elismerten probléma-e, vagy csak egy problémalista végén van-e.

(2) A klímaszkeptikusok jelentős része nem tagadja a globális felmelegedést. És egyikük sem örül a tömeges szén-dioxid és metán légkörbe kerülésének, sem annak módjának (AGW=Antropogen Global Warming).Ők csak azt mondják, hogy nem mindegy hogy milyen érveléssel, mire költenek pénzt, milyen előrejelzés és hatásvizsgálat alapján, és mennyire használják "bunkóként" egyes vitatható tárgybeli érveléseket. Magyarán igenis lehet értelmesen pénzt költeni a témára ebben nincs vita. Ilyen értelemben abszolút szenzációhajhász az egész indexes tálalás.

Az én klímaaggódó definicióm a következő. Az aki szerint
(1) van, létezik globális felmelegedés
(2) alapvetően emberi eredetű ez a globális felmelegedés (AGW=Antropogen Global Warming)
(3) AGW elmélete szerint a nem-vízgőz jellegű üvegházhatást okozó molekulák (széndioxid, metán, stb.) földfelszínről légkörbe bocsátása egyfelöl egy pozitív visszacsatolásos folyamatot indított be (több molekula légkörbe -> még melegebb földfelszín), másfelöl e molekulák koncentrációja már túllépett egy kritikus értékek (390 ppm), ami visszafordíthatatlanná (irreverzibilissé) tette az egész mechanizmust, következésképpen, a pozitív visszacsatolás exponencialitása révén, körülbelül 60 éves távlatra vonatkozó előrejelzése szerint a földi globális átlaghőmérséklet 2 fokos emelkedésével az élővilág jelentős része, 5-7 fokos emelkedéssel pedig az ember is eltűnik a földről, maximum kb. ha hangyák maradnak. (Jelenleg száz év távlatában 0-6-0.7 fokos a globális átlaghőmérséklet-emelkedés számításaik szerint)
(4) A kvázi egyetlen kármentő utat a széndioxid, metán és társaik levegőbejutásának akadályozásában látják, ami jelentős érdeksérelmet okoz a kínai, idiai jelentős hátrányból induló jelentősen növekvő gazdaságnak.

A klímaszkeptikus elsősorban valamelyik fenti pontot cáfolja (esetleg többet is), de azzal nem szokott vitatkozni, hogy a
(1) fossziliákat kialakulásukhoz képest (200 millió év), túl gyorsan égettük el (200 év)
(2) fossziliákat értelmesen kellene elégetni (ami megmaradt)
(3) alternatív energiaforrások, és egyéb témákba érdemes kutatási pénzeket invesztálni

A friss indexes cikknek azonban van előzménye (2008.május 6.)

Stöckkert Gábor interjúja Bjorn Lomborggal: Kiotó rossz ötlet volt

Tárgyunk szempontjából itt vannak az érdekesebb dolgok. ;) Azt gondolom megéri a fáradságot elolvasni és magunkban végiggondolni az egész kérdést, specifikusan is, általánosan is. Fontos, folyamatosan ismétlődő motívumok felbukkanása miatt is. Mégha egy kicsit megkésve is (cikk íráshoz képest több mint két évvel később).

- A leggyakoribb kritika a könyvéről az, hogy ön szelektál az adatok között, a pesszimista forgatókönyvekkel nem foglalkozik. Jó példa erre a tengerszint emelkedése, amit ön az ENSZ klímabizottsága, az IPCC jelentésére hivatkozva 30 centiméterben határoz meg. Csakhogy ebben a jelentésben a legrosszabb forgatókönyv 59 centiméterrel számol, és az azóta megjelent újabb modellek többsége ennél is többet, legalább másfél métert jósol.

- Igazuk van azoknak, akik azt mondják, szelektíven használok fel adatokat. Nem véletlenül válogatok: a tengerszint emelkedésére rengeteg modell és vélemény létezik, a NASA szakértője, James Hansen például öt métert jósol. És sok olyan tudóst ismerek, akik bőven egy méter alá becslik az emelkedést, csak ők nem kerülnek be a napi hírekbe, mert a félméteres emelkedés nem olyan jó sztori, mint az ötméteres. Az IPCC jelentésében szereplő 18-59 centiméterrel viszont több száz szakember, mondhatni a tudományos többség egyetért, és a 30 centiméter ennek az intervallumnak a középértéke.
Na most ugye ebben a fenti gyöngyszemben pár dolgon azért el lehet mélázni.

(1) Tengerszint emelkedés előrejelzésére 0.3m, 0.59m, 1.5m, 5m. Azért a laikus is érzi, hogy itt valami nem stimmel. És az óvatos szkeptikus gondolkodásnak meglehet a létjogosultsága, ha már százmilliárd dollárt kéne szánni a témára. A korábbi posztom idevágóan pont erről szólt (most csak röviden): diszkrét adatok alapján, pozitív visszacsatolásos exponenciális felfutás nagyságrendjének előrejelzését, exponenciális felfutás elött előrejelezni, egyszerűen nonszensz: a fele és duplája közé sem lehet hitelesen 'belőni' a dolgot.

(2) Az én szerény véleményem szerint az előrejelzések közül egyébként tényleg érdemes szelektálni, és nem például átlagot számolni rá, ahogy teszi Lomborg is. Ugyanis az előrejelzések között érezhetően kellenek rosszak is legyenek.

Nem gondolom, hogy mindig a legrosszabb forgatókönyvekkel kell számolni
Újabb (tanulságos) aranyköpés. :o) Ma már egyébként egyfajta divat armageddonistának lenni. A mondás üzenete számomra:

(1) Először is tán meg kellene vizsgálni, hogy minek mekkora a valószínűsége. Aztán gondolkodni csak különféle forgatókönyvekben. Nem a forgatókönyvek "rosszasságából" kéne visszafele következtetni.Persze elvben nem zárom ki a kölcsönhatás miatti iteratív elemzést, de itt nem kicsi a tét, óriási bizonytalanságok mellett.

(2) Másodszor érdemes szem elött tartani a örökbecsű, közismert, szakállas viccet.
Malacka elindul a nyuszi felé, hogy kölcsönkérje tőle a vasalót. Az úton egyfolytában morfondirozik magában:
-Lehet, hogy nem is adja oda, és akkor hiába keltem útra
Malacka megy tovább
- Áh. Biztos nem fogja odaadni.
Malacka ismét csak megy tovább.
- Tuti nem fogja odaadni, mert én sem kínáltam meg múltkor sütivel.
Malacka megérkezik a nyuszikához, idegileg tök felspanolva:
- Tudod mit nyuszika! B@zd meg a vasalódat!
Magyarán nem kéne fejben lejátszani teljesen komplex dolgokat, pláne nem időben messzire vetítve.

- Azért ez nem a legjobb hasonlat. A globális felmelegedés létezik, az egész világra hat és az emberi tevékenység miatt ekkora mértékű, mindezt ön is elismeri. Megtehette volna, hogy az IPCC mind a hat forgatókönyvét alapul veszi a könyvben levezetett elemzéseihez.

- Őszintén megmondom, nem akartam nagyon hosszú könyvet írni. Az alapvető mondanivalómon nem változtatott volna, ha az összes forgatókönyvet számításba veszem.
Pestiesen szólva, azért ez nem semmi. ;) Tegyük félre a kérdezővel kapcsolatos udvariasságot és téma iránti alázatot érintő kérdéseket. Azt viszont fontos leszögezni:

(1)  Globális felmelegedés tényében sincs konszenzus. Sőt van, aki már a mérési módszertant is kifogásolja, nemhogy a mérésekből kalkulált számokat.

(2) Az hogy feltétlen emberi eredetű lenne-e a felmelegedés, az vita tárgyát képezi. Az meg külön említésre méltó részlet, hogy a szibériai permafrost metán problémája viszont nem antropogén.

(3) Az viszont hátast dobás eglatáns példája, hogy azért szelektálunk, mert rövid könyv írása van célkeresztben.

Ugyanakkor rengeteget költünk ezekre az elérhetetlen célokra, és ettől jól érezzük magunkat. Ha ezzel a pénzzel a megfelelő kutatásokat – mindenekelőtt az alternatív energiaforrások fejlesztését – támogatnánk, hosszú távon sokkal jobban járnánk. Nem biztos, hogy rögtön jól éreznénk magunkat, de 2050-re több eredménye lenne egy ilyen tervnek, mint bármilyen teljesíthetetlen szén-dioxid-kibocsátási korlátozásnak.

Ez viszont klasszikus klímaszkeptikus álláspont. Csak azt nem értem mi változott a tudósban mára, ez ügyben. ;)

- Önt sokan nem szeretik, egy honlapon a könyveiben található hibák olvashatók összegyűjtve.

- Ismerem azt az oldalt, egy munkanélküli dán biológus üzemelteti, aki valamiért engem személyes ellenségének tart. És azt mondom, jó, hogy létezik ez az oldal, mert ez is hozzájárul az értelmes párbeszédhez. A gazdájával ugyan személyesen nem tartom a kapcsolatot, de a nyilvánosság előtt különböző fórumokon már közel tíz éve vitázunk annak ellenére, hogy a nézetei más téren is távol állnak tőlem ? ő például ellenzi, hogy leszbikusok is vállalhassanak gyereket. Néhány apróságban igazat adtam neki, de úgy gondolom, többnyire téved, és úgy érzem, akármit mondhatok, azzal ő ellenkezni fog.
Egyébként ő volt az ellenem tudományos tisztességtelenség miatt indult eljárás egyik fő támogatója, és nem titkolta, hogy politikai okai is vannak annak, hogy engem támad. Az ügyemben eljáró bizottság egyetlen érvet sem vett át tőle, nem találták elég meggyőzőnek.
Erre a témára nem vesztegetnék sok szót. Most azon átlépve, hogy mi köze a szexuális beállítottságnak a klímaváltozáshoz, csak annyit jeleznék, hogy a heterószexuális Miskolczi Ferenc is megjárta a klímatémában az egzisztenciális ellehetetlenítés poklát.Ha nagy a tét, durvulnak a résztvevő játékosok

- Az Index olvasottsági statisztikáit figyelve azt látom, hogy az embereket egyre kevésbé érdeklik a klímaváltozásról szóló hírek, holott mindenkit érint a jelenség.

- Ezen nem vagyok meglepődve. Az embereknek égetőbb problémái vannak: a gazdaság, a munkanélküliség, az oktatás, egészségügy, háborúk, és így tovább. A klímaváltozással hasonló történt, mint a madárinfluenzával. Az emberek jól megijedtek tőle, aztán belefáradtak abba, hogy a csapból is ez folyik. A madárinfluenza most is legalább olyan probléma, mint néhány éve, mégsem hallunk róla annyit. A klímaváltozással is riogatták az embereket, nem csoda, hogy elfordultak tőle. De legalább túl vagyunk az ijedtségen, most már elkezdhetnénk értelmesen beszélni a jelenségről.

Abszolút kulcskérdés. Elég analógiaként a sertés influenza és az ellene kifejlesztett nagy (költségvetési) pénzeket mozgató vakcina körüli visszásságokra gondolni (lefizetett WHO-sok). Ebben az a tragédia, hogy:

(1) Ilyen pályán mozogva egyre kevésbé lehet majd tisztán látni, és tényleg bele lehet fáradni, tömeges méretekben

(2) Nem kéne felejteni a farkassal riogatós mesét. Egyszer tényleg lehet nagy baj és lehet tragédia a vége. Nem kéne játszadozni és visszaélni lényeges kérdésekben.

Al Gore és az IPCC kapták tavaly a Nobel békedíjat. Mit szól ehhez?

Néhány ember dönt a díj odaítéléséről, és ez a döntés kicsit a gazdag nyugat-európai országok aktuális szándékát tükrözte.

Azt gondolom perdöntő motívum felismerni (nem csak itt a klíma témában), kevés ember irdatlan nagy hatását.