#33 – Miten paranneltu neuroverkko ratkaisi tilitapahtumien kategorisoinnin haasteen?

Tässä jaksossa 33 Kristianin luona vierailee Principal Data Scientist Juha Vesanto OP:n Tietopääoma ja Finanssiäly -yksiköstä. Juha avaa podcast-kuulijoille projektia, jossa etsittiin ratkaisua tilitapahtumien kategorisointiin OP:n Talouden tasapaino -palvelua varten.

Tässä jaksossa Kristian ja Juha keskustelevat muun muassa siitä,

  • millaisia haasteita tilitapahtumien kategorisoinnissa on datan käsittelyn näkökulmasta,
  • miten OP:n tiimi onnistui ratkaisemaan kategorisoinnin problematiikan ja
  • millaisia hulvattomia yleistyksiä neuroverkkomalli teki ja miten ongelma saatiin ratkaistua.

Katso tästä, mitä edellinen jakso käsitteli >>

Mitä tarkoittaa tilitapahtumien kategorisointi ja mihin sitä tarvitaan?

Tilitapahtumien kategorisointi tarkoittaa tilitapahtumien luokittelua. Tätä ominaisuutta tarvittiin OP Mobiili -sovelluksessa, jotta asiakas näkisi, miten oma rahankäyttö jakautuu. OP:n sovelluksessa on käytössä 17 eri kategoriaa, joihin kuuluvat esimerkiksi asuminen, terveys, vakuutukset ja harrastukset. Äkkiseltään luulisi, että tilitapahtumien kategorisointi olisi helppo homma Data Scientistille. Siihen liittyy kuitenkin yllättävän monta ongelmaa.

Kategorisoinnin monta haastetta

Kategorisoinnin ensimmäinen haaste tässä projektissa oli määrittely. Juha kertoo esimerkin: “Esimerkiksi kuuluuko taksimatka ajoneuvoihin ja liikenteeseen vai matkailuun?” On tapahtumia, joista ihmiset ovat eri mieltä siitä, mihin kategoriaan ne kuuluvat.

Toinen ongelma kategorisoinnin kannalta oli se, että maksunsaajan nimi määritti kategorian. Esimerkiksi “Prisma” viittasi päivittäistavaraostoksiin, mutta ei aina. Se ei myöskään ollut hyvä yksilöivä termi, koska löytyi 432 maksunsaajaa, joiden nimessä oli “prisma”.

“Helmikuussa katsoin, että 83 miljoonan maksutapahtuman joukossa oli 5,2 miljoonaa erilaista maksunsaajaa. Ne kaikki pitää käsitellä jollain tavalla”, Juha täsmentää ja lisää: “Tieto maksunsaajasta tulee monesta eri lähteestä. Se tieto, mitä nähdään, saattaa olla peräisin kassakoneesta, luottolaitoksen rekisteristä, asiakas on itse saattanut kirjoittaa sen tai se voi olla tyhjä.”

Miten kategorisoinnin ongelmaa lähdettiin ratkomaan?

Ensiksi ongelmaa lähestyttiin avainsanojen kautta. Sitten keväällä 2018 tehtiin pilotti sadan käyttäjän kanssa. Sen perusteella oli selvää, että

A) kategorisoinnin tarkkuus ei ollut riittävän hyvä, vaan esiin tuli väärin kategorisoituja tapahtumia

B) käyttäjät halusivat itse valita kategorian, koska olivat eri mieltä algoritmin kanssa.

“Kun annettiin asiakkaille mahdollisuus vaikuttaa kategorisointiin, meille avautui mahdollisuus saada opetusdataa. Ihmiset kertoivat meille, mikä oikea kategoria on ja seurattiin sitä. Se ei ole ihan näin yksinkertaista, koska ihmiset ovat keskenään eri mieltä ja toiset tekevät kategorisointia paljon ja toiset tekevät sitä vain satunnaisesti”, Juha toteaa.

Tämä menetelmä oli kuitenkin liian riskialtis, eikä se laskennallisena tekniikkana soveltunut vaihtoehdoksi. Seuraavaksi lähdettiin hakemaan koneoppivaa ratkaisua.

“Nyt käytössä on neuroverkko, jota on paranneltu listoilla, kuten tilinumeroillla, joista tiedetään, millaiselle toimijoille ne kuuluvat. Päädyttiin käyttämään vektoroitua mallia, jota käytetään paljon NLP-malleissa”, Juha kertoo.

Mitä tapahtui, kun neuroverkko laitettiin tekemään kategorisointeja?

“Malli omaksui sovinistisia piirteitä. Esimerkiksi kun toiminimellä toimiva yrittäjä maksaa laskua kortilla, maksunsaajana on usein henkilön oma nimi. Aika iso osa tämän tyyppisistä yrittäjistä, jotka tekevät paljon laskutusta on liikennealan yrittäjiä ja erilaisia kauneus- ja terveydenhoitoalan yrittäjiä. Tilastollisesti niille on yhteistä, että taksiyrittäjät ovat miehiä ja kampaamoyrittäjät naisia. Malli oppi, että jos maksun vastaanottaja on mies, kyseessä on taksikuski. Jos vastaanottaja on nainen, kyseessä on kampaaja”, Juha muistelee.

Tämä ratkaistiin siten, että algoritmi pakotettiin kategorisoimaan kyseinen maksutapahtuma luokittelemattomaksi. “Se ei saanut enää arvata, vaan sen piti tietää vastaus. Sitten odotettiin käyttäjien palautetta ja että tarpeeksi moni on samaa mieltä, onko Matti Möttönen kampaaja vai taksikuski”, Juha kertoo.

Kuuntele Juhan ja Kristianin keskustelu kokonaisuudessaan Spotifysta >>

Jakson sisältö

  • Haasteet tilitapahtumien kategorisoinnissa datan käsittelyn näkökulmasta
  • Miten OP:n tiimi onnistui ratkaisemaan kategorisoinnin haasteet?
  • Tilitapahtumien kategorisoinnin tekninen toteutus, laskenta ja alusta
  • Millaisia hulvattomia yleistyksiä neuroverkkomalli teki ja miten ongelma saatiin ratkaistua

Jakson kesto: 22:29 min

Jatketaan keskustelua sosiaalisessa mediassa! Verkostoidu Juhan ja Kristianin kanssa

Twitterissä: @kluoma

LinkedInissä: Juha Vesanto & Kristian Luoma