09.08.2017

Voiko tekoälyä soveltaa tietovarastointiin?

Kävin toukokuussa Prosessipäivillä höpisemässä tietovarastoinnin ja tekoälyn/koneoppimisen yhteydestä. Nyt kun aihe on monella suunnalla aktiivinen, kirjoittelin siitä myös oman bloginsa.

Ajatuksena oli herätellä yleisöä pohtimaan ensinnäkin tekoälyn ja tietovarastoinnin nykytilaa, mutta ennen kaikkea mihin näitä kahta voisi yhdessä soveltaa. Alla varsinainen esitys sekä muutamia käyttötapauksia ja sovelluskohteita.

[slideshare id=75973994&doc=prosessipivt2017-korvaakotekolyperinteisentietovarastonnetti-170515055044&w=750]

Ei syvennytä tässä kirjoituksessa tekoälyyn tai moderniin tietovarastointiarkkitehtuuriin, vaan keskitytään enemmänkin neljään eri sovelluskohteeseen.

Tietomallinnus

Tietomallinnusta tehdään useammalla eri tasolla. Tyypillisesti luodaan jonkinlainen (ylätason) käsitemalli, ehkä pilotoidaan mallinnusta tietyssä liiketoiminnassa ja luodaan siitä osa-aluekohtainen käsitemalli, näistä edelleen looginen malli ja vielä fyysinen malli valittuun tietokantateknologiaan. Jokaisessa eri vaiheessa syntyy myös metatietoa, esimerkiksi tietovirtakuvauksia, rakennekuvauksia, käsitemääritelmiä ja niistä muodostettuja sanastoja.

Hyvän tavan mukaisesti mallinnusta tehdään tietomallinnusvälineessä (esim. ER/Studio, Enterprise Architect), jotta homma pysyy paremmin hanskassa, eivätkä hanskat huku toimittajan vaihtuessa.

Tämän lisäksi on olemassa erilaisia tapoja mallintaa tietoa. Perinteisesti tietovarastoja on mallinnettu Kimballin tähtimallin mukaisesti ja nykyisin entistä enemmän Lindstedin Data Vault -menetelmällä. Jälkimmäinen on hieman työläämpi, mutta siinä on omat etunsa ja tiettyjä vaiheita pyritään usein automatisoimaan.

tietomallinnus

Missä välissä koneoppiminen ja tekoäly sitten tulevat mukaan? Itse näen, että meillä on paljonkin mahdollisuuksia automatisoida mallinnusprosessia. Kone on mahdollista opettaa oppimaan rakenteita, muokkaamaan niitä lennossa, “ajattelemaan” kontekstia ja korjaamaan prosesseja. Oppiminen tapahtuu esimerkiksi loppukäyttäjän tekemien kyselyiden ja analyysien kautta.

Ei ehkä kovin kaukaista tulevaisuutta, että koneelta kysellään luonnollisella kielellä dataa ja se muodostaa tarvittavat tietorakenteet lennossa lähdejärjestelmiin perustuen. Tämän jälkeen tietovarastosta tuleekin enemmänkin musta laatikko, joka imaisee lähdejärjestelmien rakenteita sekä datoja ja muodostaa tuloksen loppukäyttäjän tarpeen mukaan. Ei meidän tarvitse sille tulevaisuudessa enää opettaa, että järjestelmän X taulun J8KA13KF sarake I0NYX5H1 pitäisi mapata tietovaraston F_SALES.SalesAmountEUR-kenttään.

Tällainen “tekoälykäs” tietoalusta pystyy toimimaan minimaalisella inhimillisellä ohjauksella, oppii kokemuksistaan ja tunnistaa piilossa olevia malleja tietovirroissa ja tietopyynnöissä. Se pystyy myös hakemaan itsenäisesti lisätietoa esimerkiksi datan laatua koskevan ongelman vahvistamiseksi tai vaikkapa tietojen hankkimiseksi vaihtoehtoiselta lähteeltä.

Datan laadunvalvonta

Datan laatu on ollut perinteisesti IT:n tehtäviä: on seurattu dataa, yritetty ymmärtää sen sisältöä (profilointi) ja luotu tietojen puhdistus- ja yhteensovitussääntöjä (standardointi). Koneoppimisella on paljonkin mahdollisuuksia datan laadun arvioinnissa.

Virheitä on ainakin kahdenlaisia:

  1. Järjestelmälliset virheet, jotka esiintyvät säännöllisesti tietyissä olosuhteissa
  2. Satunnaiset virheet, jotka tapahtuvat epäsäännöllisesti tietyissä olosuhteissa

Järjestelmälliset virheet ovat huonompi kandidaatti koneoppimiselle, sillä ongelman tunnistaminen vaatii tietämystä datan käytöstä. Käyttäjien onkin helpompi tunnistaa tällaisia virheitä, varsinkin jos ne esiintyvät usein.

Satunnaisia virheitä on puolestaan helpompi havaita tilastollisten menetelmien avulla. Tällainen voi olla vaikkapa äkillinen muutos datan arvoissa. Ihmisille tämän tyyppiset virheet helposti piiloutuvat suurien tietomäärien taakse varsinkin jos ne esiintyvät harvakseltaan.

Otetaan esimerkki. Meillä on runsaasti erilaisia dataa kerääviä järjestelmiä, kuten ERP, CRM, tuotanto, talous ja HR. Dataa integroidaan näiden järjestelmien välillä ja osa tiedoista siirretään myös tietovarastoon. Isossa organisaatiossa erilaisia automatisoituja datasiirtoja voi olla sadoista useisiin tuhansiin.

Miten varmistutaan, että dataa siirtyy oikea määrä?

dataaDW

Analytiikka seuraa siirrettävän datan volyymeja ja antaa varoituksen, jos dataa tulee liian vähän tai liikaa. Alla (ei niin kuvitteellinen) esimerkki myyntirivien seurannasta tuoteryhmittäin, jossa tässä tapauksessa tuoteryhmän myynti on tasaista ympäri vuoden. Dataa tulee yli sadasta eri kauppaliikkeestä ja joskus niiden latauksissa on ongelmia.

Tilastollinen malli luo automaattisesti luottamusvälit datavolyymin vaihtelulle. Mikäli toteutunut datavolyymi rikkoo luottamusvälin, niin siitä lähtee tiedote ylläpitoon. Alla esimerkkikuva oikeasta datasta laskettuna:

data_luottamusvälit

Punaisen raksin kohdalla osa tiedosta ei tullut lainkaan, joten volyymit putosivat. Usein tällainen virhe ei jää kiinni ETL-prosessissa, vaan se menee nätisti läpi, joskin pienemmillä datamäärillä. 

Pidemmälle vietynä tällainen malli ei pelkästään auta määrittämään ja parantamaan tiedon laatua, vaan tarjoaa myös älykkäämpiä suositeltuja toimenpiteitä tietojen laadulle sekä toiminnallisille parannuksille. Se pystyy myös luokittelemaan datan laatuongelman tyypin tai vakavuuden mukaan.

Datan standardointi

Kolmas hyvä sovelluskohde koneoppimiselle on datan standardointi.

Aika usein datan siivoamista tehdään käsityönä eli poistetaan duplikaatteja ja yhdistellään tietueita keskenään. Käsin tehtynä sääntöjen määrittäminen kestää, vaatii syvällistä ymmärrystä datasta ja on lisäksi kallista. Ymmärrettävästi tietolähteiden kasvaessa ja datan formaattien sekä tietotyyppien lisääntyessä sääntöjen rakentamisesta tuleekin äkkiä iso harjoitus. Lisäksi datan manuaalinen yhteensovittamisen tarkkuus on aina kyseenalaista.

Koneoppimisen avulla modernilla data-alustalla voidaan luoda matchaussääntöjä automaattisesti datasta. Järjestelmä myös oppii ja mukautuu käyttäjien käyttäytymiseen. Tämän tyyppistä toiminnallisuutta löytyy esimerkiksi Talendin Data Fabric -tuotteesta.

Datan paikkaaminen

Koneoppimista voidaan hyödyntää myös datan rikastamiseen tai paikkaamiseen ilman käyttäjän syötettä. On mahdollista laskea erilaisia segmentointiattribuutteja, arvioida asiakaspoistumaa, luottotappiota tai vaikkapa laskennallisesti täydentää asiakkaiden tietoja. Mika ja Ville ovat kirjoittaneet tästä aikaisemmin Louhian blogiin, kannattaa lukaista läpi.

Asiakkaiden tietojen täydentämiseen liittyen kannattaa muuten olla tarkkana. Kun seuraavan kerran törmäät Facebookissa tai vastaavassa kyselyyn, jossa sinua pyydetään vastaamaan “10 viattomaan kysymykseen”, kannattaa miettiä pari kertaa, vastaisiko. Silloin tällöin niissä taustalla olevat algoritmit muodostavat mallin, jotka pystyvät 10 vastatun kysymyksen perusteella ennustamaan ”100 syvällisen kysymykseen” liittyviä asioita. Tällöin sinusta tiedetäänkin aika paljon enemmän ja se iPhone jää kuitenkin saamatta.

voitaIphone

Share
Contact Person

Blog writer

Mika Aho

Bilot Alumni

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!