BOW – rusetille solmittua koneoppimista

Tämä blogi sai tunnetusti alkunsa siitä, kun keräsin ATK-sanakirjaani kummallisia ja hassuja IT-alan lyhenteitä, jotka toivat ensimmäiseksi mieleen ajatuksen jostain aivan muusta kuin koodaamisesta. Näitä olivat muun muassa string ja suite, joista olen kirjoittanut ”Robotiikkaa sviitissä” –tekstissäni. Vaikka olen tässä välissä kirjoittanut monesta muusta aiheesta kuin teknologiajargonista, on ATK-sanakirjani edelleen voimissaan. Ei siis tarvitse huolestua. Teknologiaa ja tyyliä –blogissa on edelleen paikka teknologialle.

Tällä kertaa on sanakirjasta vuorossa lyhenne ”BOW”. Ensimmäinen mielleyhtymäni on jälleen kerran jotakin aivan muuta kuin teknologiaan liittyvää. Ajatuksiini piirtyy mielikuva kauniista rusetista esimerkiksi silkkipuserossa tai tyylikäs mies tummassa puvussa, rusetti kaulassa. Näin ei kuitenkaan ole enää. Eräs koneoppimisesta väitellyt kollegani piti yksi päivä esityksen aiheesta BOW – Bag of words ja sen jälkeen mielessä ovat pyörineet vain koneoppimisalgoritmit. Nyt kerron lyhyesti, mihin tämä termi liittyy.

BOW –koneoppimismalli on yksi NLP:n eli luonnollisen kielen tunnistamisen (Natural Language Processing) malli. Luonnollista kieltä esiintyy tunnetusti erilaisissa dokumenteissa paljon. Kun haluamme tehostaa rutiinimaisia toistuvia tehtäviä automatisoimalla niitä, tulee monessa kohtaa vastaan tilanteita, joissa robotin tai automaation tulisi pystyä tulkitsemaan luonnollista kieltä. Näitä on esimerkiksi potilaskertomuksissa, erilaisissa hakemuksissa, todistuksissa tai vaikka tuoteselosteissa. Tähän tarvitaan koneoppimista, jotta voidaan automatisoida laajempia kokonaisuuksia.

Tarkemmin BOW - Bag of words (suomennettuna esim. sanasäkki tai sanareppu) on koneoppimismalli, jossa sanoja ryhmitellään ja luokitellaan niiden esiintyvyyden mukaan tekstissä. Tätä ryhmittelyä tehdään siksi, että normaalisti koneoppimisalgoritmin on helpompaa käsitellä numeroita kuin sanoja. Kun sanat luokitellaan ”sanasäkkeihin”, tehdään niistä strukturoidumpaa dataa, ja sanojen ilmaantuvuuden mukaan niille voidaan antaa numeerisia arvoja. Näin koneoppimisalgoritmin on helpompaa käsitellä dataa eli tunnistaa sanoja ja niiden esiintyvyyttä jonkin dokumentin tekstimassassa.

Miksi tämä on tärkeää tietää? Koneoppiminen tulee koko ajan arkipäiväisemmäksi ja väitän, että hyvin monessa työssä on tärkeää ymmärtää, mitä automaatiolla voidaan tehdä paremmin. Meistä kaikkien ei tarvitse olla koodareita, mutta jokaisen, joka haluaa olla mukana rakentamassa kestävää ja parempaa maailmaa, pitää jollain tasolla pystyä keskustelemaan teknologiaa puhuvien ihmisten kanssa. Teknologia kun on se työkalu, millä tulevaisuuden ja jo tämän päivän haasteita ratkotaan. Edelleen teknologiasta puhutaan kuitenkin kovin monimutkaisesti ja siitä tehdään jo lähtökohtaisesti vaikeaselkoista. Minusta on tärkeää, että vaikeita asioita voidaan yksinkertaistaa ja tarkastella niitä eri kulmista. Siksi koneoppimiseenkin voi yhdistää tyylin ja solmia sen yhteen rusetilla.