Kun nykyään uutisoidaan tekoälystä ja koneoppimisesta, niin eturintamaan nousee kuvien tunnistus, itseohjautuvat autot tai vaikkapa tekstin kääntäminen tai sen kontekstin ymmärtäminen. Näiden mediaseksikkäiden aiheiden taakse jää aihealueita, joissa tekoälyllä on paljon annettavaa, mutta uutiskynnys ei ylity. Yksi näistä aiheista on erilaisten järjestelmien datan laadun parantaminen algoritmien avulla.
Ongelmia datan laadussa?
Datan laatuongelmat aiheuttavat erittäin suuria kustannuksia yrityksille vuosittain. Kustannuksia syntyy, kun dataa joudutaan parsimaan ja paikkailemaan erilaisissa järjestelmissä, integraatioissa, tietovarastoissa, jne. Lisäksi on huomioitava piilokustannukset, jotka syntyvät puutteellisen tai virheellisen datan perusteella tehdyistä vääristä päätöksistä tai päätösten lykkäämisestä. Ei ole tavatonta, että esimerkiksi tietovarastoprojektissa 10%:ia datan laatuongelmista aiheuttaa vaikka 50-70% kustannuksista. Itse muistan uraltani yhden projektin, jossa 95% datasta saatiin tietovarastoon nätisti 25 päivässä, mutta lopun 5%:n fiksaaminen sinne vei 120 päivää. Työmääräarviot eivät menneet ihan putkeen.
Miten koneoppiminen voisi sitten auttaa?
Case 1, puuttuvan datan paikkaus
Lukuisten tietojärjestelmien datoissa on puutteita, koska käyttäjät eivät syötä tietoja hyvistä ja sinnikkäistä ohjeistuksista huolimatta. Koneoppimista käyttämällä voi olla mahdollista täydentää nämä tiedot. Seuraavat esimerkit ovat oikeista tilanteista.
- CRM-järjestelmästä puuttui merkittävästi tietoja, joiden kirjaamisesta asiakkaat olivat itse vastuussa (web-portaalin kautta). Koneoppimismalliin tuotiin CRM datat ja kaikkien asiakkaiden ostohistoriat. Ostohistoriadataa hyödyntämällä voitiin luoda ennustamalli, joka osasi varsin tarkasti ennustaa asiakkaan puuttuvat tiedot. Markkinoinnin kannalta tämä oli hyvä asia, koska kohdentaminen menisi nyt todennäköisemmin oikein kuin puuttuvia tietoja hyödyntämällä. Sellainenkin asia paljastui, että ostohistoriasta ennustetut asiakasmuuttujat taisivat olla jopa tarkempia kuin asiakkaan omat merkinnät. Nehän oli tehty joskus asiakkuuden alussa ja sittemmin vanhentuneet.
- Eräässä tietojärjestelmässä oli puutteita erilaisten luokitusten (esim. tuoteryhmittelyt) merkinnässä. Käyttämällä järjestelmän muita tietoja koneoppimismalli pystyi erittäin tarkasti ennustamaan puuttuvan tiedon luokituksen.
Luulen että Facebook, Google ja muut vastaavat toimijat tekevät tätä aktiivisesti. Vaikket olisikaan antanut itsestäsi jotain tietoa, niin se on ennustettavissa web-käyttösi perusteella.
Case 2, virheellisen datan korjaus
Jälleen pari käytännön esimerkkiä.
- Kanta-asiakasrekisteri, johon on sama asiakas kirjattu lukuisia kertoja – ehkä pienillä eroilla kirjoitusasussa. Koneoppimista käyttämällä voimme löytää tehokkaasti nämä dublikaattiasiakkaat, jonka jälkeen asiakasrekisterin korjaus käy käden käänteessä. Tosin eräässä mediatalossa oli päädytty excelissä läpikäyntiin, ja aikaa oli varattu puolisen vuotta.
- Toinen esimerkki on myös asiakasrekisteristä, johon asiakkaan perustietoja on kirjoitettu väärin, esim. Matti Meikäläisestä on tullut Mati Meikälinen. Jälleen koneoppimisen keinoin voimme etsiä virheitä ja korjata niitä. Tässä tapauksessa malli voisi esimerkiksi ehdottaa, että oikea kirjoitusasu on “Matti Meikäläinen 98%”, “Matti Teikäläinen 93%”, … “Matti Nykänen 4%”. Lopun prosenttiluku viittaa mallin antamaan todennäköisyyteen oikeasta nimestä.
- Poikkeavien havaintojen etsintä ja mahdollisesti korjaus. Järjestelmiin syntyy vahingossa typoja, esim. iäksi tulee 1983 vuotta tai alennusprosentiksi 120%. Tällaiset kummajaiset toki löytää sql-kyselyillä, mutta se vaatii istumalihaksia ja koodaamista. Ohjelmointia ja koneoppimista hyödyntämällä voidaan kirjoittaa koodi, joka haarukoi isoja datamassoja lävitse ja palauttaa arviot poikkeavista havainnoista, jolloin ihmiset voivat päättää mitä tehdä niille. Joissakin tilanteissa on myös mahdollista on laittaa algoritmi korjaamaan datan suoraan.
Case 3, data-integraatiot ja tietovarastolataukset
Näillä osa-alueilla liikutellaan merkittävästi dataa päivästä toiseen. Virhehallinta datan tarkkailun suhteen on kuitenkin verrattain jäykkää. Jos mitään dataa ei siirry vaikka tietoliikennekatkosten vuoksi, niin niistä saadaan virheilmoituksia. Samoin muista triviaaleista virheistä. Mutta jos dataa siirtyykin esim. 80% normaalivolyymista tai siirtyvän datan sisältö poikkeaa olennaisesti aiemmasta (esim. hinnastossa tulisi pelkkiä nollia), niin yleensä tällaisia virheitä ei saada kiinni. Joskus tällaisten puutteiden huomaaminen voi kestää kauankin, jolloin korjaaminen tulee kalliiksi tai jopa mahdottomaksi. Esimerkiksi eräässä projektissa kaikki varastosaldot eivät siirtyneet pariin viikkoon, eikä niitä ollut enää mistään saatavilla jälkikäteen.
Arvaatte varmaan, että tähänkin löytyy ratkaisuja koneoppimista hyödyntämällä! Eikä se ole edes vaikeaa tai kovin kallista.
Tällä hetkellä myös ohjelmistorobotiikka on erittäin suosittu aihe. Tämä kirjoitus liittyy myös läheisesti siihen, koska koneoppimismallit usein upotetaan ohjelmistojen sisään, jotka niitä sitten käyttävät.
Jos nämä aiheet kiinnostavat, niin ole yhteyksissä.