4. Haku sisällön perusteella 4.. Johdanto Tietokantojen yhteydessä perinteinen kyselyn käsite on hyvin määritelty. Tiedonlouhinnassa on kyse edellistä yleisimmistä, mutta vähemmän täsmällisistä kyselyistä. Olkoon esimerkkinä lääketieteellinen data, jossa on potilastietoa, kuten demografista (ikä, sukupuoli jne.), verikokeiden tuloksia ja muita fysiologisia testituloksia sekä biolääketieteellisiä aikasarjoja ja röntgenkuvia. Lääkäriä kiinnostaisi tietää, sisältääkö sairaalan tietokanta ketään samankaltaista potilasta ja myönteisessä tapauksessa tämän diagnoosit, hoidot ja tulokset. Ongelman vaikea osa on määritellä samanlaisuus potilaiden joukossa eri datatyyppeihin pohjautuen (tässä monimuuttujaiset, aikasarjat ja kuvadata). Tarkan täsmäyksen käsite on tällöin jokseenkin epätarkoituksenmukainen, koska on sangen epätodennäköistä, että olisi toista täsmälleen samanlaista potilasta käytettyjen mittausten suhteen. 4. luku 580 Tarkastellaan em. kaltaisia ongelmia ja varsinkin niihin liittyen teknisiä ongelmia, joihin on vastattava kyselyiden mahdollistamiseksi yleismuotoisista datajoukoista: Etsi datajoukosta k kohdetta, jotka ovat samanlaisimmat määrätyn kyselyn tai kohteen kanssa. Esimerkkejä voivat olla: Satelliittikuvatietokannasta etsitään maasta kuvia, jotka sisältävät todisteita tulivuorenpurkauksista Keski Amerikassa. Etsitään tietoverkosta dokumentteja, jotka käsittelevät tietoa Tampereen ravintoloista. 4. luku 58 Tällaista hakumuotoa pidetään vuorovaikutteisena tiedonlouhintana, koska käyttäjä vaikuttaa suoraan datan tutkimiseen määrittämällä kyselyjä ja tulkitsemalla tuloksia prosessin kuluessa. Tämä on vastakohtainen tilanne verrattuna moniin ennustavan ja kuvaavan tiedonlouhinnan tehtäviin. Tavallisesti on esimerkkitapaus sille, mitä pyritään etsimään, kyselyhahmo Q. Siitä johdetaan, mitkä tietokannan muut kohteet ovat samanlaisimmat sen kanssa. Lähestymistapa tunnetaan hakuna sisällön perusteella. Tunnetuin sovellus on tekstihaku. Kyselyhahmo Q on yleensä suppea (kyselysanojen lista) ja se täsmätään suuren dokumenttien joukon kanssa. 4. luku 582 Keskitytään lähinnä tekstidokumentteihin, koska tämä on tunnetuin ja kypsin sovellusalue. Yleisen ongelman voidaan ymmärtää käsittävän kolme peruskomponenttia: miten määritellään kohteiden välinen samanlaisuusmitta, miten toteutetaan laskennallisesti tehokas hakualgoritmi (tunnettaessa samanlaisuusmitta) ja miten sisällytetään käyttäjän palaute ja vuorovaikutus hakuprosessiin. Pohditaan pääasiassa ensimmäistä ja kolmatta kysymystä; toista tarkasteltiin luvussa 2. 4. luku 583
Haku sisällön perusteella nojautuu voimakkaasti samanlaisuuden tai sen vastakohdan etäisyyden käsitteeseen. Luvussa 2 käsiteltiin erilaisia etäisyyksiä. Näistä on hyvä huomata, esim. euklidisesta, että kysymys on matemaattisista etäisyysfunktioista, jotka eivät välttämättä vastaa intuitiota samanlaisuudesta ihmisen näkökulmasta. Esim. tekstidokumenttien yhteydessä semanttinen sisältö voi olla merkittävä. 4. luku 584 4.2. Hakujärjestelmien arviointi 4.2.. Haun tehokkuuden arvioinnin vaikeus Luokittelussa ja regressiossa mallin suorituskykyä voidaan aina arvioida objektiivisesti estimoimalla sen tarkkuutta kokeellisesti. Haussa sisällön perusteella suorituskykyarvioinnin ongelma on vaikeampi. Perimmäinen vaikeus on se, että hakusysteemin hyvyys määrätään haetun informaation hyödyllisyydellä. Sovelluksissa tällainen mitta on luonteeltaan subjektiivinen. Haku on käyttäjäkeskeistä ja vuorovaikutteista, mikä tekee suorituskykyarvioinnista vaikeaa. Joitakin melko objektiivisia menetelmiä voidaan arviointia varten kuitenkin antaa tehtäessä ensin muutama yksinkertaistus. Oletetaan, että jokaiselle kyselylle on olemassa tieto (binääri luokitteluarvo), mikä kohde on relevantti kyseiselle kyselylle. Käytännön kannalta tällainen arvo on luonnollisesti yksinkertaistus, sekä arvon binäärisyys että oletus sen olemassaolosta jokaiselle tapaukselle. 4. luku 585 4.2. Täsmällisyys vastaan palautus Arvioidaan jonkin hakualgoritmin suorituskykyä määrätyn kyselyn Q tilanteessa riippumattomalla datajoukolla. Tämän kohteet on luokiteltu etukäteen joko relevanteiksi tai epärelevanteiksi kyselyn Q suhteen. Oletetaan luonnollisesti, että testidataa ei ole käytetty hakualgoritmin suorituskyvyn säätämiseen. Voidaan siis ajatella algoritmin yksinkertaisesti luokittelevan kohteet kyselyn Q suhteen, jolloin todelliset luokka arvot ovat tietysti piilossa algoritmilta, mutta ovat käytettävissä testitulosten arvioimiseksi tavanomainen testaustilanne. Jos algoritmi käyttää etäisyysmittaa (kohteen ja kyselyn välillä) arvioidakseen joukon kohteet, se parametrisoidaan tavallisesti kynnysarvolla T. Algoritmi palauttaa K T lajiteltua kohdetta, jotka ovat lähempänä kuin kynnysarvon T verran kyselyä Q. 4. luku 586 Kynnysarvon muuttaminen mahdollistaa algoritmin suorituskyvyn muuttamisen. Kynnysarvon ollessa matala, luokitellaan kohteita säästeliäästi relevanteiksi, mutta joitakin ehkä relevantteja saatetaan menettää. Sen ollessa korkea palautetaan enemmän kohteita, mutta mahdollisuus kasvaa, että ne eivät ehkä ole relevantteja. Olkoon datajoukossa N kohdetta, ja hakualgoritmi palauttaa K T mahdollisesti relevanttia. Algoritmin suorituskyky on ilmaistavissa taulukon 4.. mukaisesti, jossa N = TP + FP + FN + TN on kohteiden kokonaismäärä, TP + FP = K T on algoritmin hakemien kohteiden määrä ja TP + FN on relevanteiksi leimattujen kohteiden määrä. Täsmällisyys (precision) määritellään niiden kohteiden osuutena haetuista, jotka ovat oikeasti relevantteja, ts. TP / (TP + FP). Palautus (recall) määritellään haettujen oikeasti relevanttien osuutena kaikista datajoukon relevanteista kohteista, ts. TP / (TP + FN). Näille käsitteille on olemassa muitakin nimikkeitä, mutta näitä käytetään tässä yhteydessä. 4. luku 587
todellisuus: relevantti todellisuus: epärelevantti algoritmi: relevantti algoritmi: epärelevantti TP FN Taulukko 4.. Kaavakuva neljästä mahdollisesta tuloksesta haulle, jossa dokumentteja nimetään relevanteiksi tai epärelevanteiksi kyselyn Q suhteen. Sarakkeet vastaavat todellista tilannetta ja rivit algoritmin päättelyä. Lyhenteet TP, FP, FN ja TN viittaavat oikeaan positiiviseen, väärään positiiviseen, väärään negatiiviseen ja oikeaan negatiiviseen päättelyyn. Täysin oikein toimiva algoritmi tuottaisi tuloksen halkaisijalta, jolloin olisi FP = FN = 0. FP TN Näiden kahden käsitteen välillä on vastakkainen vaikutus. Kun saatujen kohteiden lukumäärää K T nostetaan nostamalla kynnysarvoa, palautusarvon voidaan odottaa kasvavan (enimmillään tietysti ), kun taas täsmällisyysarvon voidaan odottaa vähenevän. Ajettaessa hakualgoritmia eri kynnysarvoilla T saadaan palautus ja täsmällisyysarvopareja. Nämä kuvataan käytännössä, ei yhden kyselyn suhteen, vaan keskimääräisenä suorituskykynä kyselyjen joukon suhteen (esim. kuva 4..). Tämä vastaa suoraan nk. ROC kuvausta (receiver operating characteristic), tosin akselit on nimetty eri tavoin. 4. luku 588 4. luku 589 0.8 0.6 täsmällisyys 0.4 0.2 algoritmi C algoritmi A algoritmi B 0.2 0.4 0.6 0.8 palautus Kuva 4.. Kuvitteellinen esimerkki täsmällisyys palautuskäyristä kolmen hypoteettisen algoritmin tapauksessa. Algoritmilla A on suurimmat täsmällisyysarvot muihin verrattuna pienillä palautusarvoilla, kun taas algoritmilla B on suurimmat täsmällisyysarvot suurilla palautusarvoilla. Algoritmi C on yleisesti huonompi kuin muut. Käyrät ovat tyypillisiä tekstidokumenttialgoritmien tapauksessa, missä 50 % täsmällisyys ja palautusarvo sattuvat algoritmille B. 4. luku 590 4.3. Tekstihaku Tekstipohjainen informaation etsiminen on perinteisesti nimetty informaationhauksi (IR, information retrieval), ja se on käynyt entistäkin tärkeämmäksi tietoverkkojen ja näissä hakukoneiden tulon jälkeen. Tekstin katsotaan koostuvan kahdesta perusyksiköstä, nimittäin dokumentista ja termistä. Edellinen mielletään sekä perinteiseksi kirjaksi tai lehtiartikkeliksi että yleisemmin miksi tahansa rakenteiseksi tekstisegmentiksi, jossa on lukuja, osia, kappaleita, tai jopa sähköpostiviestiksi, wwwsivuksi, ohjelman lähdekoodiksi jne. Termi voi olla sana, sanapari tai fraasi dokumentissa, esim. tieto tai tiedonlouhinta. Tekstikyselyt ymmärretään informaationhaussa termien joukkona. Vaikka dokumentit ovat kyselyjä paljon pitempiä, voidaan molemmat mieltää ja esittää yksikköinä, joiden välinen etäisyys lasketaan. 4. luku 59
4.3.. Tekstin esitysmuotoja Merkittävissä määrin on tutkittu dokumenttien yleisiä esitysmuotoja, jotka tukevat kykyä säilyttää mahdollisimman paljon semanttista sisältöä datasta ja etäisyysmittojen laskentaa kyselyjen ja dokumenttien välillä tehokkaalla tavalla. Informaationhaussa ei lähdetä liikkeelle semantiikan käsittelystä tekoälyn tässä keskeisen alueen, luonnollisen kielen ymmärtämisen valossa, koska siinä törmättäisiin vaikeisiin kysymyksiin esim. homonyymeistä (samalla sanalla eri merkityksiä) ja synonyymeistä (eri sanoja saman käsitteen ilmaisemiseksi). Sitä vastoin tarkastellaan yksinkertaisia termien täsmäyksiä ja esiintymiä. 4. luku 592 Dokumentin sisältö kuvataan tavallaan termien esiintymismääriä esittävällä vektorilla. Oletetaan, että on etukäteen määrätty termien t j joukko, j =,,T, hakua varten. Joukon koko voi olla melko suuri (esim. T = 50000 termiä). Jokainen yksittäinen dokumentti D i, i =,, N, esitetään termivektorina D i = (d i, d i2,, d it ), missä d ij edustaa jotakin informaatiota j:nnen termin esiintymästä i:nnessä dokumentissa. Yksittäiset arvot d ij ovat termien painoarvoja (termivektorin komponentteja). Boolen esityksenä painoarvot ilmaisevat, esiintykö vai ei määrätyt termit dokumentissa (d ij =, jos esiintyy, ja d ij = 0, jos ei). Reaaliarvoisina ne voivat merkitä termien esiintymismääriä tai suhteellisia frekvenssejä dokumenteissa. 4. luku 593 4.3.2. Kyselyjen ja dokumenttien täsmääminen Useimpia luvussa 2 esitettyjä etäisyysmittoja voidaan käyttää dokumenttienkin yhteydessä. Yksi laajasti sovellettu mitta tässä yhteydessä on kosinietäisyys, jossa kosinimitta d c vähennetään :stä. T dikd jk d (, ) = k= c Di D j. T T 2 2 d ik d jk k= k= Tämä on kahden vektorin välisen kulman kosini (ekvivalentisti niiden välinen pistetulo, kun vektorit on normoitu yksikkövektorin pituisiksi). Se kuvastaa samanlaisuutta termikomponenttien suhteellisen jakauman mielessä. Kysely on esitettävissä loogisena Boolen funktiona soveltuvalle termien osajoukolle. Tyypillinen kysely voisi olla data AND mining AND NOT(coal). Perushaku käsittää tällöin käänteistiedoston selaamisen dokumenttien löytämiseksi, jotka tarkasti täsmäävät kyselyn kanssa. Perustilanteeseen voidaan lisätä mm. painokertoimia osoittamaan joidenkin termien suhteellista tärkeyttä. Boolen esityksen puutteena on, ettei se mahdollista semantiikkaa käsitteelle etäisyys kyselyjen ja dokumenttien välille ja täten dokumenttien asettamista arvojärjestykseen niiden relevanttiuden suhteen. Toisinaan on myös vaikeaa esittää Boolen kyselyinä käyttäjän (ihmisen) esittämiä kysymyksiä. 4. luku 594 4. luku 595
Vektoriavaruusesityksessä kysely ilmaistaan painoarvojen vektorina. Ne termit, jotka eivät esiinny kyselyssä, määrätään implisiittisesti nolliksi. Yksinkertaisin kyselymuoto asettaa yksikköpainon jokaiselle kyselyn termille. Käyttäjä voi antaa yleisemmän, termin suhteellisen tärkeyden osoittavan arvon (tyypillisesti väliltä [0,]). Käytännössä näiden asettaminen voi olla hankalaa, joten on muodostettu laskennallisia keinoja sellaisten arvojen asettamiseksi (esim. relevanssipalaute). Olkoon d ik painoarvo (komponentti), k =,,T, dokumentissa D i. Informaationhaussa on käytetty useita erilaisia (ad hoc) menettelyjä määrätä painoarvot niin, että relevantit dokumentit saisivat korkeamman sijan arvojärjestyksessä kuin epärelevantit. Boolen arvon käyttäminen dokumentissa esiintyvälle termille on taipuvainen suosimaan laajoja dokumentteja (relevanttien asemesta) yksinkertaisesti, koska laajat dokumentit todennäköisemmin sisältävät kyseisen termin. 4. luku 596 Eräs painoarvojen laskentatapa on osoittautunut erityisen hyväksi. Kyse on TF IDF painoarvoista, joissa TF tarkoittaa termin frekvenssiä, so. jokainen termivektorin komponentti kerrotaan termin esiintymisfrekvenssillä dokumentissa. Tämä lisää usein esiintyvien termien painoarvoa. Toisaalta, jos jokin termi esiintyy usein monessa dokumentissa, TF painoarvoilla saattaa olla vähän erottelukykyä haussa, ts. se kasvattaa palautusta, mutta saattaa aiheuttaa huonon täsmällisyyden. Käänteinen dokumenttifrekvenssi (IDF) painoarvo parantaa erottelukykyä. Se määritellään arvona log(n/n j ) eli termin j sisältävien dokumenttien (n j ) osuuden käänteisluvun logaritmina koko dokumenttijoukkoon N nähden. IDF painoarvot suosivat termejä, jotka esiintyvät melko harvoissa dokumenteissa, ts. sillä on erottelukykyä. Logaritmista IDF painoarvoa käytettäessä pelkän IDF:n asemesta tekee siitä epäherkän dokumenttien lukumäärälle N. 4. luku 597 4.4. Automaattiset suosittelijajärjestelmät 4.5. Dokumenttien ja tekstin luokittelu Yhden käyttäjän mieltymysten mallintamisen sijasta voidaan yleistää tilanteeseen, missä tietokannassa on informaatiota useiden käyttäjien kiinnostuksesta suureen määrään kohteita. Yhteissuodatuksen menetelmä on yksinkertainen lähestymistapa. Olkoon esimerkkinä sovellus, jossa käyttäjä haluaa ostaa määrätyn musiikkityypin CD levyn tietoverkon kautta. Mahdollisesti lukuisat muut käyttäjät ovat ostaneet saman CD levyn ja on todennäköistä, että ainakin osalla heistä on samanlainen musiikkimaku. Tätä voidaan yleistää eri suuntiin. Pidetään käyttäjien kiinnostuksen kohteista ja ostoista vektoriesitystä yllä. Tällaisten välillä lasketaan sitten etäisyyksiä samanlaisuusmetriikoilla. Vertailemalla näiden tuloksia suosittelija algoritmi voi esittää suosituksia mahdollisesti käyttäjää kiinnostavista kohteista. Koska termivektorit ovat tavallisesti hyvin suuridimensioisia (esim. 0000 termiä tai enemmän), luokittelumenetelminä tulevat kyseeseen pääasiassa valintamenetelmät. Luokittelupuut eivät ole tällöin tarpeeksi informatiivisia, puhumattakaan monikerroksisista perseptron neuroverkoista, jotka eivät ole käytännössä mahdollisiakaan suoritettaviksi niin suurille dimensioille. Bayesin luokittelijat tai erinäiset painoarvojen lineaarikombinaatiot toimivat melko hyvin dokumenttiesityksille, koska ne voivat yhdistää tietoa monesta piirteestä suhteellisen yksinkertaisella (lineaarilla) tavalla. 4. luku 598 4. luku 599
4.6. Kuvanhaku 4.6.. Kuvien ymmärtäminen Kuva ja videodatan merkitys on kasvanut viime aikoina merkittävästi. Haku sellaisen datan yhteydessä on monesti erityisen hyödyllistä. Esim. voidaan tutkia lääketieteessä radiologisten kuvien samanlaisuutta. Ihminen oppii hämmästyttävän hyvin erottamaan ja muistamaankin kuvia. Algoritmisesti tämä on erittäin vaikea ongelma, mikä on todettu usean vuosikymmenen tutkimuksissa hahmontunnistuksessa ja konenäössä. Niinpä useimmat menetelmät perustuvat melko matalantason visuaalisiin vihjeisiin. 4.6.2. Kuvanesitysmuodot Alkuperäinen pikselidata voidaan abstrahoida piirre esityksiksi hakutarkoituksia varten. Piirteet esitetään primitiivien suhteen. Näitä ovat väri ja tekstuuripiirteet. Kuten dokumenteilla, alkuperäiset kuvat muunnetaan standardimaisempaan muotoon datamatriiseiksi, joissa rivit (kohteet) esittävät kuvia ja sarakkeet (muuttujat) kuvien piirteitä. Tällainen esitysmuoto on yleensä paljon epäherkempi skaalaukselle ja siirroille kuin välittömät pikseliesitykset. Toisaalta ne saattavat olla vain vähäisissä määrin invariantteja valon, varjon, katsomissuunnan jne. suhteen. Yleensä kuvien piirteet lasketaan ja talletetaan etukäteen kuvatietokantaan hakuja varten. Etäisyyslaskenta voidaan sitten suorittaa näiden piirreavaruuksien suhteen. Kuvien piirredata talletetaan näin N d datamatriisiin, jossa kukin kuva on esitetty d dimensioisena piirrevektorina. 4. luku 600 4. luku 60 4.6.3. Kuvakyselyt Tekstidatan tapaan kuvien abstraktin esityksen luonne (lasketut piirteet) määräävät olennaisesti, mitä kysely ja hakutyyppejä voidaan suorittaa. Kyselyt voivat olla kahdentyyppisiä. Kyselyssä esimerkin mukaan annetaan esimerkkikuva tai luonnos kiinnostavan kohteen muodoista. Piirteet lasketaan sitten näistä ja etsitään piirteiden avulla täsmääviä kuvia tietokannasta. Vaihtoehtoisesti kysely voidaan esittää suoraan piirreesityksenä. Esim. etsitään kuvia, joilla on 50 % alastaan punaista väriä ja jotka sisältävät määrätyntyyppistä tekstuuria. Tällöin vain piirteiden osajoukkoa on käytetty kyselyssä, joten vastaavia muuttujia on käytettävä etäisyyslaskennassakin. Piirrevektoreiden käyttö kuvilla on melko samantapaista kuin tekstihaussa. Nyt hyödynnetään kuitenkin usein reaaliarvoisia muuttujia. 4. luku 602 4.7. Aikasarjat ja sekvenssien haku Hahmojen tehokas löytäminen aikasarjoista ja sekvenssidatasta on lukuisissa yhteyksissä tarpeellista, mutta vaikea ongelma. Esimerkkejä ovat asiakkaiden etsiminen, joiden kulutustottumukset ovat samanlaisia annetun ajan mittaan, samanlaisten epätyypillisten sensorisignaalien tapahtumien reaaliaikainen seuranta ja vikadiagnostiikka esim. lentokoneessa ja kohinainen (häiriöitä sisältävä) täsmäys proteiinisekvenssien osajonoista. Sekvenssidata voi olla yksidimensioista tai kaksidimensioista (kuvadataa). Aikasarjoissa dataa on mitattu ajan suhteen, jolloin jokainen havainto on indeksoitu aikamuuttujan t suhteen. Yleensä näytteiden välillä on vakiomittainen aikaintervalli, jolloin voidaan aika määrittää kokonaisluvuilla väliltä [,T]. Kukin mittaus voi olla myös monimuuttujainen. Sovellusaloja on lukemattomia, kuten talous, lääke, luonnon ja teknisistä tieteistä. Sekvenssidatan käsite on yleisempi kuin aikasarjojen riippuessaan muusta kuin ajasta. Esim. molekyylibiologiassa proteiineja indeksoidaan paikan mukaan sekvensseihin. 4. luku 603
Perinteinen aikasarjamallintaminen perustuu globaaleihin lineaareihin malleihin. Esimerkkinä on Box Jenkinsin autoregressiiviset mallit, joissa nykyinen arvo y(t) mallinnetaan aiempien arvojen y(t k) painotetulla lineaarikombinaatiolla sekä lisätyllä kohinalla seuraavasti y( t) = k αi y( t i) + e( t), i= missä α:t i ovat painokertoimia ja e(t) kohina (tavallisesti oletettu nollakeskiarvoisena normaalijakautuneeksi) ajanhetkellä t. Käsite autoregressio tulee regressiomenetelmän käytöstä saman muuttujan aiemmille arvoille. Luvun tekniikat soveltuvat parametrien α i estimointiin. Mallirakenteen (arvon k) määrääminen perustuu mm. ristiinvalidointiin. Tätä voidaan yleistää käyttäen epälineaarisuutta (g(.)) hyväksi muodolla k y( t) = g i y( t i) α + e( t). i= 4. luku 604