28.08.2018 / Mika Laukkanen

Tässä on kollega Ville Niemijärven kirjoitus analytiikan (nykyään tekoäly tai koneoppiminen) hyödyntämisestä vuodelta 2014. Ajattelin hieman päivittää sitä ja laittaa uudelleen jakoon, kun aihe on ajankohtaisempi kuin artikkelin ilmestymisvuonna. Kukapa muuten tietää, että millä termillä näitä ratkaisuja kutsutaan seuraavan neljän vuoden päästä?


Asiakaspoistuma-analyysi (eng. churn) tarkoittaa analytiikan prosessiketjua, jossa selvitetään mitkä asiakkaat ovat vaarassa poistua, millä todennäköisyydellä ja miksi. Poistuma tarkoittaa sitä kun asiakas lopettaa sopimuksen palveluntarjoajan kanssa tai yksinkertaisesti lopettaa asioimisen yrityksessä. Voidaan puhua myös asiakaspidosta (eng. retention). Termi liittyy läheisesti myös asiakkuuden elinkaaren arvon määrittämiseen (customer life-cycle value) ja nykypäivän yhteen muotitermiin; customer journey. Itse näkisin kuitenkin, että kyseessä on enemmänkin yksinkertaisesti paremmasta asiakashallinnasta ja huolenpidosta…

Poistuma-analyysi sopii hyvin sopimusliiketoimintaan, esimerkiksi sähköyhtiöille, puhelin- ja internet operaattoreille, kuntosaliketjuille tai lehtitaloille. Mutta poistuma-analyysiä voidaan tehdä myös vähittäiskaupassa, jos vain asiakas tunnistetaan (kanta-asiakasjärjestelmän avulla). Tällöin pitää vain päättää milloin asiakas on poistunut? Mikä on riittävän pitkä aika, että asiakas ei ole käynyt kaupassa, jotta voidaan päätellä hänen vaihtaneen vakiokauppaansa.

Tässä kirjoituksessa käydään läpi asiakaspoistuma-analyysiä ja miten se tehdään käytännössä. Lähestymme aihetta yleisestä yksityiseen. Lopussa näytämme kädestä pitäen miten homma tehdään alusta loppuun.

Asiakaspoistuma-analyysin tuotto on helppo laskea

Kaikessa analytiikkatyössä tulee laskea mitä saamme analyysistä irti, mikä on investoinnin ROI, paljonko jää viivan alle. Jollei investointi tuota moninkertaisesti enemmän kuin analyysi ja tiedon keräys maksaa, ei sitä kannata tehdä.

Asiakaspoistuman osalta tämä on erittäin helppoa tehdä. Otetaan esimerkki sähkön myynnistä.

Sähköyhtiöllä on 100 000 asiakasta. Keskimääräinen laskutus per asiakas on 1000e/vuosi. Nopea selvitys sähköyhtiön sopimuskannasta kertoo, että keskimäärin vuodessa sopimuksen lopettaa 8% asiakkaista.

Tämä tarkoittaa, että asiakkaita poistuu 8000 kpl/vuosi. Rahassa tämä on siis 8000kpl*1000e=8 miljoonaa euroa. Tuo on se potti, jota lähdemme pienentämään ja sitä kautta tekemään asiakkaallemme lisää rahaa.

Osa näistä 8000:sta poistuu luonnollisen poistuman kautta, osa vaihtaa kaupunkia. Ja sitten on se osa joka vaihtaa palveluntarjoajaa koska yrityksen tuote, palvelu tai hinta ei ole riittävän hyvä. Tai kilpailijalla on parempi. Kutsuttakoon tätä laadulliseksi poistumaksi.

Kun menemme asiakkaalle, teemme aina vastaavan laskelman ja arvioimme asiakkaan kanssa yhdessä, mikä on tuon laadullisen poistuman osuus ja kuinka paljon on realistista saada pienennettyä sitä. Sähköyhtiöiden osalta voimme katsoa julkisesta datasta, esim. THL:ltä, mikä on muuttoliike kunnasta pois päin ja paljonko poistuu jalat edellä. Näin emme joudu arvailemaan vaan meillä on faktaa laskelmien taustalla. Sanottakoon esimerkkinä, että sähköyhtiön tapauksessa 3% on luonnollista/muuttopoistumaa ja loput 5% on laadullista poistumaa. Poistumaa, johon voimme vaikuttaa. Tähän iskemme kyntemme.

Entä jos voimme pudottaa tuota 5% poistumaa vaikka vain yhden prosenttiyksikön? Tämä tarkoittaisi 1000 asiakasta ja miljoonaa euroa vuodessa lisämyyntiä. Jos analyysi maksaa 20 000 euroa, on investoinnin tuotto aika huima. Se on jotain sellaista, jota kannattaisi kaikkien tavoitella.

Mitä dataa poistuma-analyysi tarvitsee?

Ensiksi otamme historiatietoa eli tietoa jo poistuneista ja ei-poistuneista asiakkaista. Toisin sanoen sähköyhtiön tapauksessa luemme sopimustietokantaa ja sähkönkulutustietoja (yhä yleisemmin tietovarastoa tai edistyneimmissä yrityksessä erikseen toteutettua analytiikkakantaa) ja haemme sieltä mahdollisimman pitkän historian, mahdollisimman monelta asiakkaalta. Mitä enemmän sitä parempi. Historia-aineistoon otetaan mukaan asiakkaiden taustatietoja sekä käyttäytymiseen liittyvää tietoa.

Taustatietoja ovat esimerkiksi

  • alue/kaupunki/postinumero
  • demografiatiedot (tulo- ja koulutustaso)
  • sukupuoli
  • ikä
  • asiakkuuden kesto
  • talotyyppi, koko, lämmitysmuoto jne. toimialaspesifistä tietoa

Käyttäytymiseen liittyviä tietoja ovat esimerkiksi:

  • kulutus- ja laskutushistoria (esim. keskimääräinen kulutus per kk)
  • ostetut tuotteet (eli millainen sopimus)
  • reklamaatiota, asiakaspalautteet, yhteydet asiakaspalveluun
  • maksuhäiriöt
  • muut toimialaspesifit tiedot
  • Ja lopuksi se tärkein tieto: onko asiakas poistunut vai ei (K/E)

Monilta yrityksiltä ei löydy kaikkia näitä tietoja, olen nähnyt yrityksiä joilla asiakkaista tiedetään käytännössä vain numero ja osoite. Ei edes nimeä tai sitä onko kyseessä yritys- vai henkilöasiakas. Ennen kuin analytiikkaa päästään hyödyntämään täysillä, on edessä usein systemaattinen tiedon keräämisvaihe ja mahdollisesti muutokset lähdejärjestelmiin/tietovarastoon.

Ennen analyysia emme tiedä mitkä tiedot ovat relevantteja ja vaikuttavat poistumisen takana ja sen selvittäminen onkin koko homman ydin.

Miten poistuma-analyysi tehdään?

Kun tiedot on kasassa, jaamme datan kahteen eri settiin: opetusdataan ja testidataan (esimerkiksi suhteessa 60-40). Mainittakoon että data voitaisiin jakaa myös kolmeen eri settiin: opetus-, testi- ja validointidata. Joka tapauksessa, opetusdatan avulla muodostamme ennustemallin, käyttäen liiketoimintaongelmaan sopivaa analytiikka-algoritmia (esim. gradient boosting, neuroverkko, logistinen regressio, naive-bayes). Parhaan mallin löytäminen vaatii useita iteraatioita.

Työ vaatii analytiikkasoftan. Itse suosimme Pythonia ja R:ää, jotka sitten voivat pyöriä vaikkapa Azuren tai AWS:n pilvessä.

Muodostunutta ennustemallia testataan testidataa vasten. Koska testidata on historiadataa, tiedämme onko asiakas poistunut vai ei. Testin voisi ajatella siten, että peitämme tuon poistuma-tiedon ja kuvittelemme, että kyseessä olisi täysin uutta dataa. Annamme mallin tehdä ennusteen eli kertoa todennäköisyydet poistua kullekin asiakkaalle. Tämän jälkeen tarkastamme tuloksen ja arvioimme mallin tarkkuuden. Näin varmistamme toimiiko malli ja kannattaako sitä hyödyntää uutta dataa vasten vai pitääkö sitä parantaa.

Asiakaspoistuma-analyysin tulokset

Poistuma-analyysi tuottaa nipun tuloksia, esim.:

  1. Kaikki nykyiset asiakkaat listattuna poistumatodennäköisyyden mukaan
  2. Selittävät tekijät poistuman taustalla
  3. Ennustemallin hyvyyden kriteerit (AUC, Confusion matrix..)

asiakaspoistuma_tulos

Ensimmäinen tarkoittaa siis konkreettista listaa, jonka voit heittää myynti-/asiakaspalveluyksikölle tai soittokoneistolla ja käskeä kontaktoimaan heti aluksi akuuteimmat top 100 poistujaa.

Toinen tuotos eli selittävät tekijät antavat tulkinnan ilmiölle. Ne kertovat miksi asiakkaat poistuvat. Nämä tulokset on erittäin arvokasta tietoa niin asiakaspalvelulle, myynnille kuin tuotepäälliköille, liiketoiminnan kehittämiselle ylipäätään.

Analyysissä voi tulla esille, että hinta ei olekaan merkittävä tekijä poistuman taustalla vaan huono asiakaspalvelu tai tietylle asiakassegmentille sopimaton tuotepaletti (esim. sähköyhtiöltä puuttuu ekosähkö valikoimastaan). Riippuen valitusta menetelmästä, tulee eroja miten suoraviivaisesti näitä selittäviä tekijöitä voidaan tulkita. Esimerkiksi syvän neuroverkon (deep learning) tulkinta on huomattavasti monimutkaisempaa kuin logistisen regression antamisen tulosten.

Parhaimmassa tapauksessa analyysin tuotoksista voidaan generoida sääntökoneisto ja sisällyttää se esimerkiksi asiakaspalvelun työpöydälle tai CRM-järjestelmään. Säännöt voivat olla yksinkertaisuudessaan kertoimia ja IF-lauseita ja voidaan toteuttaa esimerkiksi SQL-komentoina. Analytiikan tulokset kirjoitetaankin usein takaisin joko operatiivisiin järjestelmiin tai tietovarastoon.

Kolmas tuotos kertoo, että miten tarkka ja hyvä malli on. Ei mennä tässä siihen matematiikkaan tarkemmin. Kannattaa vaan tietää, että siihen on suhteellisen objektiiviset keinot käytössä.

Analyysistä toimintaan

Analytiikan pitää johtaa toimintaan. Sen pitää tuottaa tulosta. Tämä erottaa sen perinteisemmästä raportoinnista ja business intelligencestä, jossa tuijotetaan enemmänkin raportteja ja taulukoita. Näytti käppyrät mitä tahansa, hommia jatketaan kuten ennenkin. Kunnes ollaan karilla tai kortistossa.

Poistuma-analyysissa toiminta tarkoittaa monta asiaa, esimerkiksi:

  1. kontaktoidaan poistumariskissä olevat asiakkaat
  2. pyritään pitämään heidät tai parhaimmassa tapauksessa tekemään lisämyyntiä
  3. kehitetään asiakaspalvelun laatua
  4. kehitetään tuotteita/palveluita vastaamaan paremmin kysyntää
  5. ennakoidaan liikevaihdon muutos kun tiedetään ennuste tulevasta poistumasta

Miksi yritys ei tee asiakaspoistuma-analyysiä?

Olemme tehneet vuosien varrella valtavan määrän eri analytiikan sovelluksia ja projekteja. Asiakaspoistuma-analyysi on antanut näistä todennäköisesti parhaimmat tulokset, varsinkin jos mitataan euroissa asiakkaiden saamaa hyötyä. Menetelmä on helppo ja suhteellisen nopea toteuttaa, se on helppo ymmärtää ja tulokset ovat käsin kosketeltavat.

Silti yllättävän harva yritys todella hyödyntää sitä. Syyt ovat moninaiset lähtien tietämättömyydestä aina itsepetokseen.

Surullisin on itseriittoisen sinnikäs toteamus, että ei meidän asiakkaat poistu muuta kuin manan majoille tai hinnan perässä, ne pihit penteleet.

Yrityksen tuotteessa ei ole kuulema mitään vikaa. Palvelu on priimaa ja markkinaosuus olisi 100% jos vain kilpailijat eivät myisi arvelluttavan halvalla sekundatuotteitaan. Jostain syystä liikevaihto kuitenkin mataa.

Uuden asiakkaan hankinta on aina kalliimpaa kuin vanhan pitäminen. Parhaimmassa tapauksessa tekemämme asiakaspoistuma-analyysin tuloksena kontaktoiduille asiakkaille saatiin myytyä aivan pöljänä lisää tavaraa. Asiakkaat eivät aina ole siis tyytymättömiä palveluun, he ovat vain herkkiä myynnille. Sinun kannattaa olla silloin ensimmäisenä paikalla.


 


7.06.2018 / Lasse Ruokolainen

Kun toimarimme Mika Laukkanen alkuvuodesta alkoi vihjailla osallistumisesta Bilot:in järjestämään hackathoniin, en oikein tiennyt mitä tästä olisi pitänyt ajatella. Eihän tällaisella (entisellä) pitkän linjan akateemisella tutkijalla ollut mitään hajua koko käsitteestä.
Tiedossa oli kuulemma erinäisten asiakkaiden sparraamista AI:n saralla – vieläpä suurelta osin omalla ajalla, joten suhtauduin ajatukseen, sanotaanko, melko avoimesti.

 

Kahden vuorokauden uneton rutistus, pitsa- ja kokispalkalla…

Kun häkki sitten polkaistiin käyntiin huhtikuun alkupuolella, oli kuvio ehtinyt jo kirkastua melkoisesti. Etenkin, kun pääsin osallistumaan häkkiin osallistuvien asiakkaiden potentiaalisten bisnesongelmien ennakkokartoitukseen.

Kyseessä oli huolella järjestetty, kahden kuukauden häkki, jossa ratkottiin koneoppimisen ja tekoälyn turvin Reiman, Altian, Raision ja KONEen liiketoimintaongelmia. Kisaan lähdettiin Bilotin konsulteista ja Louhian Data Science -tiimin jäsenistä kootuin joukkuein.
Itse osallistuin KONEen ja Raision joukkueisiin.

Hissi

 

 

 

Kuten arvata saattaa, tavoitteet olivat melko erilaiset – toisessa keississä keskityttiin hisseihin ja toisessa maidontuotantoon. Tämä tarjosi, ainakin allekirjoittaneelle, kaksi erilaista oppimiskokemusta.

 

 

 

Se tuskin on kenellekään yllätys, että suurimmat haasteet liittyivät näissäkin projekteissa dataan.
Ei niin että se olisi ollut huonoa, mutta datan hankkimiseen, yhdistelyyn ja muokkaamiseen saatiin taas kulumaan leijonan osa häkkiin uponneista työtunneista. Loput ajasta käytettiin analytiikan hiomiseen ja varsinkin käyttöliittymien kehittämiseen; kysehän oli kuitenkin ennen kaikkea tekoälyratkaisuista, ei pelkästä analytiikasta.

 

… vai lähdetäänkö Piilaaksoon?

Lopulta, tämän viikon tiistaina, koitti suuri päivä, jolloin asiantunteva, ulkopuolinen tuomaristo laittoi häkin lopputulokset Voittoparemmuusjärjestykseen.

Hienojen esittelyiden jälkeen saatoin joukkuetovereineni jopa hieman hymyillä, kun team-Raisio julistettiin voittajaksi.

Kaikki joukkueet pystyivät osoittamaan itselleen ja asiakkaille, että lyhyessäkin ajassa voidaan saada aikaan melko päräyttäviä ratkaisuja. Tämä olikin tässä häkissä mainetta ja kunniaa (hienoja palkintoja unohtamatta) tärkeämpää.
Näille ratkaisuille voidaan osoittaa konkreettisia ja merkittäviä liiketoimintahyötyjä!

Saavutettu lopputulos oli varmasti vasta alku, jonka pohjalta voidaan tulevaisuudessa kehittää todellisia tuotantoratkaisuja.

Lopetan pariin melko kulahtaneeseen fraasiin. Minusta tuntuu, että aletaan jo melko hyvin ymmärtää, että: don’t underestimate the power of data science. Tämän harjoituksen perusteella olen myös vahvasti sitä mieltä, että parempi data-ukko (tai akka) häkissä kuin yksin kotona koodia vääntämässä.

 

Lue lisää Bilotin Mathias Hjeltin blogi Hackathoneista ja pistä 29.8 kalenteriin – pääset kuulemaan lisää hackatonista Dixital X -tapahtumassa.


5.06.2018 / Nanni Koski

Mitä data scientistin tulee osata? Kuinka saada ajatus itämään siitä, millaisiin asioihin data scientist törmää työssään? Kuinka esittää asiat realistisesti? Ja kuinka saada koulutettavan käsitys toiminnan kokonaiskuvasta kukkimaan pidempään kuin pöytään kannettu tulppaanikimppu?

Interverkko

Näitä minä mietin tänään, kun suunnittelen uutta sisältöä meidän Data Sciencen perusteet -kurssille.

Tunne datasi

Turhaan ei sanota, että data scientistin työstä 80-90 % kuluu datan tutkimisessa, muuttujien selvittämisessä ja datan muokkaamisessa. Koulutettavan pitäisi siis tuntea pääsevänsä dataan sisälle. Kynsien alle kuuluukin jäädä multaa ja tarpeeksi perinpohjaisesti tutkimalla joukosta löytää aina matoja. Mitä paremmin datan tuntee, sitä enemmän herää kysymyksiä. Jos kaikki tuntuu helpolta, asiaa ei ole ajatellut tarpeeksi. Tai ehkä toinen data scientist on käynyt laittamassa datan kuntoon ennalta.

Valmiin siistin datan antaminen vie kaiken tutkimisen riemun (ja tuskan) ja latistaa kokemusta. Kuitenkin koulutuksessa halutaan tarjota muutakin sisältöä kuin datan muokkaamista lapiolla ja kuokalla. Tästä syystä myös koulutuksen valmistelussa suurin osa ajasta menee siihen, että löytää käyttöön sopivan datan. Jonkin nopeasti sisäistettävän, sisällöltään kiinnostavan, vapaasti saatavan, sopivan kokoisen, jossa on hyviä muuttujia. Ja tällaisen löytäessään saattaa joutua keräämään reaaliaikaista tietoa viikon, ennen kuin pääsee katsomaan, tuleeko datasta kiinnostavia tuloksia.

Dataan tutustuminen vaatii työtä

Tunne liiketoimintasi

Kun data on sisäistetty, tulee myös ymmärtää mihin datalla pyritään vastaamaan. Tai oikeastaan nämä kulkevat käsi kädessä. On hyvä ymmärtää jo aluksi liiketoiminnan ydin, jotta data voidaan muokata oikeaan suuntaan. Joskus nähdään jo ennalta, etteivät datan muuttujat voi tuoda lisäymmärrystä. Ehkä mukaan voisi liittää toiminnan kannalta relevanttia avointa dataa? Toisinaan tavoitteena on havainnollistaa data liiketoiminnan tarpeisiin.

Datasta voi siis tuottaa hyötyä liiketoiminnalle monella tavalla. Visuaalinen tarkastelu voi nostaa esille toiminnan ongelmakohtia ja eri näkökulmien yhdistäminen voi tuottaa uutta tietoa. Usein maalina on koneoppimisen hyödyntäminen, mutta paljon oppii myös matkalla siihen.

Ahaa-elämys

Tunne itsesi

Kouluttaja luo puitteet koulutuksen onnistumiselle. Aiheeseen perehtyneisyyden ja innostuksen kuuluu näkyä, sillä tavalla tuodaan positiivisuutta koulutuspäivään. Valitsemalla datan, joka innostaa sisällöllisesti ja muuttujiltaan myös itseä, saa kurssiin lisää eloa ja energiaa.

Tavoitteena innostuminen

Ennen kuin sukellan penkomaan Internetin loputonta datatarjontaa, esitänkin kysymyksen: Mikä sinua kiehtoo data sciencen maailmassa? Kurssipalautteen perusteella voi aina kehittää koulutusta, mutta parasta on, jos voi tuntea yleisönsä jo etukäteen.

 

 

 

 

 


11.04.2018 / Lasse Ruokolainen

 

Mika Laukkanen sivusi aiemmin blogikirjoituksessaan ylisovittamista (http://www.louhia.fi/2017/10/23/koneoppiminen-vaatii-osaamista/). Ajattelin että tästä aiheesta voisi kirjoittaa vähän laajemminkin, koska se on yksi isoimmista ennustavaan analytiikkaan liittyvistä haasteista.

 

Over-fitting vaanii joka nurkan takana

Ylisovittaminen eli over-fitting tarkoittaa yksinkertaisesti sitä, että malli sopii dataan liian hyvin. Joku voisi tässä kysyä, että miten niin liian hyvin? Eikö hyvä ”istuvuus” ole nimenomaan tavoite?

No kyllähän se on, mutta tässä pitää silti olla tarkkana. Ongelma on nimittäin se, että kun ennustemalli opetetaan historiadatalla, voi malli sopia täydellisesti dataan (eli ennustaa vasteen ilman virhettä), mutta ennustaa silti hyvin huonosti uusia havaintoja.

Mistä tämä sitten johtuu?
No siitä, että mallin opettamiseen käytetty data ei edusta kattavasti laajempaa havaintopopulaatiota. Tämä taas voi johtua joko datassa olevasta satunnaiskohinasta, aineiston suhteellisen pienestä koosta, tai siitä että eri luokkamuuttujien tasojen välisiä kombinaatioita on paljon, mikä pienentää efektiivistä otoskokoa.

Koska oikeassa datassa on aina epätarkkuuksia ja aineistojen koko sekä ominaisuudet taas voivat vaihdella melkoisesti tilanteesta riippuen, on analyytikon syytä olla aina varuillaan.

Se ketään ei vie väkisin, saa kukin valita

Vaikka ylisovittaminen on yleinen vaara, ei hätää, sen estämiseksi on hyviä standardiratkaisuja.

Holdout menetelmä
Analyytikolla pitäisi olla ihan selkärangassa, että kun lähdetään tekemään ennustemallia, data jaetaan (yleensä) satunnaisotannalla kahteen (tai useampaan) osaan.

Suurin osa datasta käytetään mallin opettamiseen ja lopulla havainnoilla testataan, kuinka hyvin malli pystyy yleistämään opetusdatan ulkopuolelle.

Käytän tässä esimerkkinä saksalaista luotonantoaineistoa (https://archive.ics.uci.edu/ml/datasets/statlog+(german+credit+data), joka käsittää taustatietoa 1000:sta velallisesta sekä tiedon siitä onko velan hoito laiminlyöty vai ei (default = vastemuuttuja).

Jaan aineiston satunnaisesti niin, että opetusdata kattaa 70% riveistä ja käytän tätä osadataa random forest luokittelijan opettamiseen (loput 30% säästetään mallin testaukseen).

Saadun luokittelijan tarkkuus on erinomainen; tarkkuus = 100 % ja AUC = 1.0. Toisin sanoen, malli pystyy täydellisesti erottelemaan ”huonot” luotonottajat ”hyvistä”.

Jos tilanne olisi se, että olisin käyttänyt koko aineiston mallin opettamiseen ja tyytyväisesti vienyt loistavan mallin tuotantoon — sehän osasi täydellisesti erotella ns. jyvät akanoista, olisin tehnyt pahan virheen. Nimittäin, kun mallia käytetään ennustamaan testidatan vastemuuttujaa, on tulos selvästi kehnompi: tarkkuus = 75%, AUC = 0.80.

Eli kun mallille näytetään dataa mitä se ei ole aiemmin ”nähnyt”, ei yksilöitä kyetäkään enää luokittelemaan yhtä tarkasti. Tämä on tyyppiesimerkki ylisovittamisesta.

Ristiin validointi
Vaikka yllä kuvattu menetelmä paljastaa ylisovittamisen, on riskinä kuitenkin iterointi testidataa vastaan — eli testataan jokaisen mallin hyvyys erikseen testidatalla, josta Mika aiemmin varoittikin.

Suositeltavampaa onkin, että opetusdata pilkotaan sisäisesti useaan eri opetus- ja testidataan ja toistetaan yllä kuvattu prosessi kullekin ositukselle. Tätä menetelmää kutsutaan ristiin validoinniksi (CV = cross validation).

Tekemällä kominkertaisen CV:n yllä käytetyllä opetusdatalla, saadaan opetusdatan ennustetarkkuudeksi 76% (AUC = 0.78). Tätä realistisempaa tarkkuutta (joka vastaa itse asiassa hyvin sitä mikä saatiin testidatalle) voidaankin sitten verrata eri mallien antamaan tarkkuuteen, ilman että opitaan samalla epäsuorasti testidatasta.

 

Kaidalla tiellä, poissa kiusauksista

Vaikka käyttämääni random forest luokittelijaa pidetäänkin yleisesti varsin vahvana menetelmänä, tässä kohtaa ongelmaksi nousee aineiston pienuus.

Liian pieni aineisto koituu helposti edistyneiden koneoppimisalgoritmien kohtaloksi juuri siksi että ne toimivat hyvin isoilla aineistoilla (esim. neuroverkko toimii kyseisellä aineistolla suurin piirtein yhtä huonosti).

Analyytikon ei siksi ole syytä ylenkatsoa yksinkertaisempia menetelmiä, joiden pitäisi oikeastaan muodostaa vertailukohta edistyneemmille menetelmille.

Esimerkiksi, naïvi Byes luokittelija (joka käytännössä laskee vain ehdollisia todennäköisyyksiä datasta) antaa koko opetusdatalle vähintäänkin yhtä hyvän ennustetarkkuuden kuin ristiin validoitu random forest (tarkkuus = 75%, AUC = 0.80) ja ylioppii varsin maltillisesti (testidatalla: tarkkuus = 71%, AUC = 0.73).

Jopa tavallinen logistinen regressio pärjää vertailussa varsin hyvin (opetusdata: tarkkuus = 75%, AUC = 0.77), eikä juurikaan yliopi (testidata: tarkkuus = 71%, AUC = 0.75). Näillekin menetelmille on toki todellisuudessa hyvä tehdä CV, varmuuden vuoksi. Eihän näiden mallien ennustetarkkuus toki päätä huimaa, mutta pessimisti ei tässäkään kohtaa pety; tuotannossa ylioptimistinen ennuste vasta korpeaakin.

Kolmen eri ennustemallin ROC-käyrät. Opetus- ja testidata on kuvattu eri väreillä. Katkoviiva kuvaa ennustetta, joka on yhtä hyvä kuin arvaaminen.

 

 

Pidä mieli avoinna ja paita puhtaana

Mitäkö opimme tästä harjoituksesta?
Ainakin kaksi asiaa:
(1) älä hätiköi ja (2) KISS (Keep It Simple Stupid).

Molemmat pointit ovat varsin oleellisia. Kun miettii tarkkaan mitä on tekemässä, eikä lähde tekemään jotain ongelmaan sopimatonta, välttyy helpommin aika monelta muultakin sudenkuopalta kuin ylisovittamiselta.

Joten ei muuta kuin Marko Haavistoa ja Poutahaukkoja hyräillen kohti uusia pettymyksiä.


23.10.2017 / Mika Laukkanen

Tässä taannoin meille tuli projekti, jossa asiakas oli tehnyt koneoppimisharjoituksen (ennustemallinnus) erään toisen kumppanin kanssa. Asiakas oli skeptinen tulosten suhteen ja halusi ns. toisen mielipiteen, mutta eri ohjelmistolla tehtynä. Joskaan senhän ei pitäisi vaikuttaa olennaisesti tuloksiin. Jo heti alkuvaiheessa huomattiin, että homma olikin alunperin mennyt pieleen väärin muodostetun opetus- ja testiaineiston vuoksi.  Alkuperäinen tekijä ei tullut huomioineeksi, että ko. aineistossa rivitkin korreloivat keskenään ajallisesti, jonka vuoksi perinteinen satunnaisotos ei toiminut järkevästi. Tulokset olivat siis kuralla, mutta onneksi eivät tuotantokäyttöön vietynä. Siellä vahingot olisi mitattu euroissa.

Virheiden tekeminen on helppoa

Kun tehdään koneoppimismalleja, niin moni asia voi mennä pieleen. Tätä ei tietenkään tulisi todeta tämän positiivisen pöhinän ja hypen huipulla. Joka tapauksessa, tässä pari esimerkkiä missä voi mennä Strömsöön ohitse.

Opetusdata on virheellisesti toteutettu.  Esimerkiksi, tehdään ennustemalli proteiinin käytöstä urheilijoilla ja kerätään opetusdata vain juoksija-foorumilta. Kun mallin tuloksia soveltaa muualla, esim. pakkotoisto-foorumin jäsenillä, niin se ei todennäköisesti toimi. Opetusdata ei ollut ns. edustava otos. Tämä oli trviaali esimerkki, mutta käytännössä näitä tilanteita voi olla vaikeaa tunnistaa.

Toinen esimerkki vaikka aikasarjojen käytöstä. Jos trendimäisiä aikasarjoja tuuppaa malleihin, niin niistähän saa keskenään hienoja selitysasteita ja korrelaatioita. Jotka ovat siis harhaa. Trendit pitäisi poistaa esim. erotuksilla. Kaikki tilastotieteilijät tietävät tämän, mutta asiaa ei välttämättä opeteta esim. “Analytiikka Softa XYZ:n” kurssilla.

Kolmas esimerkki. Ennustetaan asiakaspoistumaa perustuen historiadataan. Dataan on otettu mukaan asiakkaan viimeisin sopimustilanne. Tämähän toimii jos ko. asiakas ei enää palannut asiakkaaksi. Jos taas palasi ja otti toisen sopimuksen, niin homma menee keturalleen. Dataan on tullut tulevaisuudesta “vuoto”. Datan pitää siis kuvata tilannetta, joka asiakkaalla on ollut silloin, kun sen asiakkuutensa lopetti.

Kaiken kaikkiaan opetusdatan muodostuksessa voi tehdä lukuisia kämmejä, jotka voivat viedä myöhemmmiltä tuloksilta pohjan pois. Haastavaa tästä tekee se, että jos data on pielessä, niin mitkään parhaat käytännöt ja nerokkaat algoritmit eivät tilannetta jatkossa pelasta. 

Mallin ylisovitus (overfitting).  Skippaan tässä mallien overfittauksen helpon (teknisen) osuuden. Vakavampi overfittauksen muoto syntyy, kun käytössä on suhteellisen vähän dataa ja se on jaettu vain opetus- ja testiaineistoksi (ei siis erillistä validation datasettiä). Sitten valitaan jokin ML-algoritmi, sanotaanko vaikka RandomForest ja aletaan mallintaa iteratiivisesti – eli tarkastellaan testiaineiston tuloksia aina yhdessä opetusaineiston tulosten kanssa. Ja tätä tehdään, kunnes löytyy malli, joka toimii upeasti molemmilla dataseteillä.

Ongelma vaan on, että noin tehtynä mallia kehitettiin epäsuorasti testidatalla eikä se välttämättä yleistykään odotetulla tavalla. Luultavasti monet osakemarkkinoiden backtestaukset on sössitty juuri näin. On etsitty “väkisin” säännöt, jotka toimivat historiadatan kanssa.

Virheiden merkitys, nollasta miljooniin..

Miten iso merkitys tuollaisilla virheillä voi olla?

Otetaan yksi esimerkki tilanteesta, jossa merkitys on vähäinen. Eli yritys N tekee puhelinkampanjoita ja soittelee täysin satunnaisesti ihmisille. Jos tähän tekisi ennustemallin, joka ei toimisi, niin tulos tuskin huonontuisi tuosta satunnaissoittelusta. Toki menisi aikaa ja rahaa turhan mallin kehitykseen, mutta business ei kärsisi.

Vahinkoa sen sijaan syntyy jos vaikka yritys X muuttaa tuotteiden hinnoittelua virheelliseen malliin perustuen, ja kysyntä tippuu 10%:ia ensimmäisen kuukauden aikana.

Tai että yritys Y muuttaa ostoprosessejaan perustuen koneoppimiseen, mutta virheellisen datan vuoksi tuli tilattua Teddy-karhuja 100 konttia liikaa. Ne jaetaan sitten seuraavana jouluna yhteistyökumppaneille tai ilmaisen muoviämpärin täytteenä.

Virheet saattavat siis tulla kalliiksi. Siksi onkin järkevää pilotoida mallien toimivuutta oikeassa ympäristössä, mutta rajatusti. Jos tuotannossa tulevat tulokset eivät vastaa mallinnuksen aikaisia tuloksia, niin sitten kannattaa selvitellä syyt siihen.

Osaamisen merkitys

Osaamisen merkitystä on vaikeaa ylikorostaa tällä osa-alueella. Sen voisi oikeastaan jakaa kolmeen osaan.

  1. Ohjelmistojen käyttäminen. Ohjelmistoja on helppo oppia käyttämään, mutta se on vasta lähtötaso. Sama kuin viivoittimen käyttö arkkitehdille. Väittäisin  että pätevän data-analyytikon ammattitaidosta vain 10-20%:ia on ohjelmistojen (esim. R, Python, Azure ML, Watson, RapidMiner) käyttöön liittyvää.
  2. Koneoppimisen eri osa-alueiden riittävän syvällinen osaaminen (data, training/test/validation, ennuste- ja klusterointimenetelmät, ylioppiminen, ristiinvalidointi, muuttujien valinta, parametrien optimointi, muuttujien normalisointi, standardointi, .. jne…)
  3. Toistojen määrä – mitä enemmän taustalla on erilaisilla dataseteillä ja menetelmillä ratkottuja ongelmia, sitä parempi tuntuma hommaan on. Onneksi tässä ei tarvitse aina odottaa uutta projektia, vaan harjoitella voi monenlaisella datalla (esim. http://archive.ics.uci.edu/ml/index.php).

Meidän omissa koulutuksissa opetetaan lähinnä perusteita eikä kenellekään jaeta “tekoälymestarin” hattua 1-2 päivän kurssin jälkeen. Mutta siellä saa kuitenkin tuntuman siitä, että mitä koneoppimisen ratkaisuissa pitää huomioida, millaisia ongelmia niillä voi ratkoa ja pääsee tietysti itsekin tekemään vähän malleja. Useimmille tämä taso riittävä, koska he haluavat vain ymmärtää asiaa paremmin – eivät tulla “tekoälymestareiksi”.

Mutta on joukkoon sattunut niitäkin, joilla lamppu on syttynyt. Heille ollaan suositeltu Courseran Machine Learning kurssia. Se on on online-kurssi, sisältää hyvän opetuksen ja materiaalit eikä maksa mitään. Miinuksena tietysti tässä kiireisessä maailmassa on, että sehän kestää jopa viikkoja..

 


16.05.2017 / Ville Niemijärvi

Vähittäiskauppiaat ja kaupan alaa tuntevat huomio

Teimme jo pari vuotta sitten mainonnan optimoinnin -sovelluksen. Kyseessä on joukko algoritmeja, jotka opettamalla voidaan kertoa mitä tuotteita mainoskampanjaan kannattaa laittaa, jotta siitä saataisiin mahdollisimman suuri tuotto.

Se toimii niin perinteisessä printtimainonnassa, suoramainonnassa kuin web-mainonnassa. Missä tahansa tilanteessa missä kauppiaalla on iso määrä tuotteita, joista pitäisi päättää mitkä laittaa kampanjaan saadakseen eniten myyntiä.

Analysoimme tilastollisten mallien avulla historiamyyntiä ja menneitä kampanjoita, joiden pohjalta kauppias saa tietää:

  • Mitkä tuotteet ovat nosteessa ja mitkä laskussa?
  • Mille tuotteille mainonnalla on suurin vaikutus?
  • Mitkä tuotteet aiheuttavat suurimman ostoskorin eli nostavat myös muiden tuotteiden myyntiä?

Lopputuloksena on siis älykäs mainonnan suunnittelijan työväline, joka tarjoaa automaattisesti parhaimmat tuotteet kuhunkin kampanjaan.

Emme koodanneet vielä varsinaista käyttöliittymää vaan upotimme sovelluksen ensiksi QlikView:iin ja integroimme sen R:ään. Sitten teimme sen Azuren pilveen, jotta voimme tarjota sitä SaaS -palveluna. Ihan oikea käytännön sovelluskohde koneälylle tai data sciencelle. Se ratkaisee konkreettisen ongelman ja tuottaa lisämyyntiä, joka voidaan vielä todentaa.

Testasimme mainonnan optimointia kourallisella vähittäiskaupan asiakkaita, tulokset olivat todella hyviä.

Kohtasimme dataan liittyviä haasteita, niitä ratkottiin, algoritmeja ja sovellusta muokattiin. Myimme palvelun yhdelle tukkukaupalle, kiinnostusta oli usealla vähittäiskaupalla.

Myyntiponnistelut jäivät kuitenkin vähiin ja hautautuivat muiden päivätöiden sekaan. Piti laskuttaa ja uuden tuotteen vieminen markkinoille, vaikka kuinka hyvä tahansa, ei ole helppoa. Tuote ei breikannut. Se jäi pöytälaatikkoon. Ei siksi, että se olisi huono tai etteikö se toimisi. Emme vain osanneet ja ehtineet myydä sitä.

Uskon kuitenkin, että käsissämme on valtava potentiaali. Tai sitten ei.

Kokeilenkin nyt uudestaan. Tämä blogikirjoitus on välimuoto markkinakartoitusta ja myyntiä. Toisaalta jos joku haluaa pölliä tästä hyvän idean ja toteuttaa itse, siitä vain.

Hyviä ideoita ei kannata pantata itsellä. Pöytälaatikossa ne eivät hyödytä ketään.

Eli kaikki vähittäiskauppaa tuntevat. Arvostaisin kovasti jos voisitte auttaa ja kertoa:

  • Onko tällaiselle palvelulle tarvetta?
  • Onko kampanjasuunnittelussa ja mainonnassa petrattavaa isosti? Onko business riittävän suuri?
  • Kannattaako tätä lähteä myymään isosti?
  • Miten sitä pitäisi kehittää?
  • Ostaisitko tämän?

Mennään siis suoraan asiaan. Kerron seuraavasti miten mainonnan optimoinnilla voidaan tehdä miljoonia lisämyyntiä.

Ongelma: mainoskampanjat eivät tuota

Olen tehnyt yli 10 vuotta töitä vähittäiskaupan analytiikan ja raportoinnin parissa usean eri ketjun kanssa. Minua on kiinnostanut erityisesti mainostaminen, oli kyse verkkobannereista tai sanomalehdessä olevasta kokosivun mainoksesta.

Lehtimainos

Ongelma mainoskampanjoissa on käsittääkseni seuraava:

  • tuotteita pienemmälläkin kauppaketjulla on kymmeniä tuhansia, joillain nimikkeitä löytyy useita satojatuhansia
  • miten löytää satojentuhansien tuotteiden joukosta ne 10 tai 20 jotka tuovat suurimman myynnin tai katteen?
  • joissakin ketjuissa mainostettavat tuotteet toistavat itseään: kahvi, olut, vessapaperi ja sesonkiin liittyvät tuotteet eli vappuna simaa ja serpentiiniä, kesällä grillitarpeita jne.
  • mainostajat pelaavat varman päälle, jolloin tämä tarkoittaa, että esimerkiksi kahvia myydään miinuskatteella.

Mainonta ei ole siis kovin optimoitua. Se perustuu varman päälle pelaamiselle, tuotteiden myymiselle tappiolla tai sitten mututuntumaan.

Ja toki myös vuosien henkilökohtaiseen kokemukseen, joka on äärimmäisen arvokasta mutta harvemmin jaettavissa muille.

Lähdin pohtimaan miten mainoskampanjoihin löydettäisiin edistyneen analytiikan avulla parhaiten myyvät tuotteet.

Ratkaisu: algoritmit löytävät parhaiten myyvät tuotteet

Ensimmäinen ajatukseni oli etsiä kampanjaan ne tuotteet, joilla on nouseva kysynnän trendi. Eli miksi mainostaa tuotteita, joita kukaan ei osta muutenkaan tai joka on väistyvä.

Toisaalta piti tietää mikä tuote myy juuri mainostettavalla viikolla. Eihän esimerkiksi pääsiäissesonkituotteita, kuten mämmiä, osteta koko vuonna laisinkaan. Joten pelkän trendin katsominen ei riittäisi.

Aikasarja-analyysin avulla saamme myyntiennusteen ja tuotteen kysynnän trendin

Olimme tehneet Louhialla paljon myynnin ja kysynnän ennusteita. Hyödyntäen aikasarja-analyysiä. Toisin sanoen otetaan tuotteen (tai minkä tahansa asian) menekki usealta vuodelta taaksepäin ja pyöräytetään se algoritmin läpi. Lopputuloksena saamme kysynnän ennusteen valitulle ajanjaksolle, esimerkiksi mainosviikolle.

sales_prediction_Qlikview_R_sarimax_louhia

Tämä on lähes aina tarkempi vaihtoehto kuin laskea vuosien välistä keskiarvoa tai verrata vain edelliseen vuoteen (tai viikkoon/kuukauteen).

Aikasarja-analyysi kertoo myös tuotteen kysynnän trendin eli mihin suuntaan kysyntä menee: laskeeko se, pysyykö samana vai nouseeko.

Tätä voidaan hyödyntää myös mainonnassa, ehkä laskevan kysynnän tuotteeseen ei kannata tuhlata mainosrahoja. Tai sitten juuri sitä pitää buustata ja piristää sen myyntiä oikea-aikaisella mainoskampanjalla.

Mainoskampanjan vaikutus tuotteen myyntiin

Aikasarja-analyysin oheistuotoksena saamme ns. kovariantin avulla tietää mikä on mainonnan vaikutus kysyntään. Tai minkä tahansa muunkin ulkopuolisen tekijän.

Mainoskampanjan tuoma noste näkyy piikkeina myynnissä.

Jos vain tuote (tai vastaava tuote) on ollut riittävästi historian aikana mainoksessa, pystymme kertomaan sen perusmyynnin (baseline, myynti ilman mainosta) ja mainonnan tuoman nosteen.

Ja tämä tietenkin suhteutettuna ko. ajanjaksoon.

Esimerkki: Muumivaippoja myydään toukokuussa keskimäärin 5500€/viikko.

Kun muumivaipat ovat lehtimainoksessa, nousee niiden myynti 8000€/viikko.

Mainonnan vaikutus on siis 2500€/viikko eli n. 45% buusti.

Tämä itsessään on jo valtavan informatiivistä ja arvokasta tietoa mainostajalle ja auttaa löytämään ne tuotteet, joilla saadaan valtavasti lisämyyntiä.

Mutta emme olleet tyytyväisiä ihan vielä.

Ostoskorianalyysin avulla maksimoidaan ostoskorin suuruus

Olimme tehneet myös ostoskorianalyysejä monesti. Ostoskorianalyysin avulla tiedetään mitä muita tuotteita mainostettavan tuotteen ohella myydään ja millä todennäköisyyksillä.

Eli jos asiakkaan ostoskorissa on Muumivaipat, kertoo ostoskorianalyysi millä todennäköisyydellä koriin eksyy myös pilttipurkki, äidinmaidonvastike tai six-pack keskiolutta.

Mainonnassa tätä voidaan hyödyntää siten, että laitetaan mainokseen sellaisia tuotteita, jotka imevät sinne mahdollisimman paljon muitakin tuotteita. Toisin sanoen kasvatetaan ostoskorin kokoa oikeilla sisäänheittotuotteilla.

On hölmöä mainostaa tuotetta, vieläpä miinuskatteella, jos asiakkaat tulevat ja ostavat vain tuon yhden tuotteen.

Päätimme siis yhdistää aikasarja-analyysin ja ostoskorianalyysin.

Näin aikasarja-analyysin ja ostoskorianalyysin yhdistelmällä saatiin tietää:

  • millä tuotteilla on suurin myynti tulevilla viikoilla (myyntiennuste)
  • millä tuotteilla mainonnan vaikutus on suurin (kampanjan tuoma noste)
  • mitkä tuotteet keräävät mahdollisimman paljon muita tuotteita (ostoskorianalyysi)
  • mikä on mainoksen tuoma noste näille ostoskorista löytyville lisätuotteille

Tulokset

Kun myyntihistoria siis ajettiin näiden kahden algoritmin läpi, saatiin tuloksena optimaalisin mainostettavien tuotteiden setti, joka tuo suurimman myynnin.

Tai katteen. Tai asiakasmäärän. Mikä nyt mainostajaa eniten kiinnostaa.

Alla oleva kuva esittää kuvitteellisen tilanteen, jossa Partioaitta (ei asiakassuhdetta) käyttäisi mainonnan optimointia.

Mainonnan optimointi Louhia Analytics Oy

Esimerkki:

Mainoskampanjan suunnittelijalle esitetään järjestyksessä eniten lisämyyntiä (tai katetta) tuovat tuotteet.

Tai vaihtoehtoisesti hän voi hakea tiettyjä tuotteita ja vertailla niitä keskenään ja simuloida mikä olisi mainoksen kokonaistuotto tällä tuotekokoonpanolla.

Tässä esimerkissä Fjällräven Kånken repun laittaminen mainokseen nostaa ko. tuotteen myyntiä 186% eli 7310€.

Tämän lisäksi Fjällräven Kånken repun kanssa ostetaan erityisesti neljää yllä esitettyä tuotetta. Näistä saadaan tuotteiden normaaliin perusmyyntiin nähden lisämyyntiä yhteensä n. 8554€. Huom: ilman, että ne itse ovat mainoksessa.

Koska Fjällräven Kånken oli mainoksessa, toi se lisämyyntiä yhteensä 15 864€.

Tässä esimerkissä meillä on siis yksi suositeltu tuote mutta käytännössä mainonnan optimointi kertoo tuotteiden kokonaisvaikutuksen kaikille tuotteille eli kampanjan suunnittelija voi valita sen täydellisen tuotekombon, oli tilaa sitten viidelle tai kymmenelle tuotteelle.

Tuoden mukaan tietenkin oman asiantuntemuksen ja näin tehden mainoksesta vieläkin paremman.

Mainonnan optimointi yhdistää siis:

  • aikasarja-analyysin, joka kertoo paljonko tuotetta tullaan myymään tulevaisuudessa eli esimerkiksi kampanjaviikolla
  • mainonnan vaikutuksen tuotteen myyntiin eli mikä on mainoksen noste (lift)
  • ostoskorianalyysin, joka kertoo mitä tuotteita myydään mainostettavan tuotteen kanssa yhdessä ja mikä on niiden saama noste

Kaikki tämä automatisoituna, vaikka kerran yössä ja integroituna esimerkiksi business intelligence -työvälineeseen tai tuotuna vaikka sitten asiakkaan ERP:hen tai Exceliin.

Louhian mainoskampanjan optimointi 2

Lisämausteet: hintajousto, somepöhinä, menestyskampanjan resepti

Lähdimme jatkokehittämään ratkaisuamme, tehdäksemme siitä vieläkin paremman.

Hintajoustoanalyysi kertoo kannattaako tuotetta laittaa alennukseen

Saimme palautetta eräältä ketjulta. He haluavat mainostaessaan tietää kannattaako tuote laittaa alennukseen ja kuinka suureen. Eli mikä olisi sopiva alennus, jotta tuotteesta todella tulee sisäänheittotuote.

No problem.

Lisäsimme mukaan hintajoustoanalyysin, joka kertoo alennusprosentin vaikutuksen tuotteen kysyntään. Näin mainostaja tietää riittääkö normihinta, 5% alennus vai pitääkö laittaa kunnon jytky ja pudottaa hinta puoleen.

Suomen kattavin somedata mainonnan tukena

Tutustuimme myös kumppanimme Futusomen kautta somedataan ja sen käyttö kampanjoinnissa on kiinnostanut jo vuosia. Tähän liittyen olemme tehneet myös useita harjoituksia ja pystyneet näyttämään, että somedatan perusteella voidaan ennustaa tuotteen kysyntää.

Toisaalta somedatan avulla voidaan katsoa etukäteen onko tuotteen ympärillä pöhinää tai jälkikäteen aiheuttiko mainoskampanja keskustelua ja miten tämä korreloi myynnin kanssa.

Mikä on menestyskampanjan resepti ja voidaanko se toistaa?

Itseä on aina kiinnostanut onko tuotteiden lisäksi jotain muuta tekijää, joka toistuu niissä mainoskampanjoissa, jotka menestyvät.

Valittu media (printti, display, tv, radio), ajankohta, sesonki, tuotteiden määrä, kuvien määrä, koko, väri jne.

Joten lisäsimme mainonnan optimointiin lisäoptioksi mahdollisuuden selvittää ja oppia, mitkä mainokset toimivat ja miksi.

Tämän avulla voidaan selvittää menestyskampanjan resepti ja toistaa se.

Näin palvelumme eri komponentit hahmottuivat ja täydellisen mainoskampanjan kertova konsepti oli valmis.

 

Louhian mainoskampanjan optimointi
Louhian mainoskampanjan optimointipalvelun osa-alueet

 

Kiinnostaako mainonnan optimointi vähittäiskauppoja?

Palataan blogin alussa esitettyihin kysymyksiin.

  • Onko teidän mielestä tässä konseptissa tai tuotteessa ideaa?
  • Onko business case riittävän iso eli onko mainonnan suunnittelussa petrattavaa ja paljon?
  • Mitä ongelmia tai haasteita teille tulee mieleen ratkaisun käyttöönotossa yrityksessänne?
  • Ostaisitteko palvelun?

Kaikki kommentit, ideat ja ajatukset ovat erittäin tervetulleita ja otetaan kiitollisina vastaan.

Jos olet kiinnostunut juttelemaan palvelusta lisää, ota yhteyttä (+358 50 326 4989 / Ville).


6.04.2017 / Juha Kostamo

Myyntigongin kolinaa ja avautuvien kuohuviinipullojen generoimaa pauketta.

On tullut vuosien mittaan tehtyä myyntiä ja kauppaakin on syntynyt. Joskus enemmän ja joskus vähemmän.

Jotta syntyy kauppaa, niin täytyy tehdä tarjouksia asiakkaille. Riippuen toimialasta ja tarjottavasta ratkaisusta, yhtä kauppaa kohden pitää tehdä 5-15 tarjousta.

Tarjouksien, varsinkin hyvälaatuisten, tekeminen on investointi ja mikään ei inhota myyntimiestä tai -naista enemmän kuin se, että omasta mielestä hyvälaatuinen ja asiakastarpeesta lähtevä tarjous ei voitakkaan. Silloin herää kysymys, että mitkä tekijät tai osa-alueet tarjouksessa kaatoivat kaupan mahdollisuuden tai  mitä osa-alueita olisi pitänyt säätää ja miten paljon, jotta kaupat olisivat tulleet kotiin? Tämä voi olla oikeastikin sellainen tuhannen taalan kysymys.

Voiko analytiikkaa hyödyntää tämän tyyppisen ongelman ratkaisussa? Kyllä voi.

Otetaan tarkastelun kohteeksi täysin kuvitteellinen teollista tukkukauppaa harrastava yritys. Yritys ei myy muttereita, vaan hieman laajempia kokonaisuuksia. Tuotekokonaisuus on konfiguroitavissa, joka johtaa siihen, että erilaisia tuoteyhdistelmiä on useita. Yrityksellä on myös palveluliiketoimintaa ja varaosamyyntiä. Toimintaa on kaikissa Pohjoismaissa ja sitä kautta myös varastoja.  Pääomaa on varastoissa kiinni reilusti, liikaa.

Yrityksellä on paljon ja ostohistorialtaan ja luokittelultaan (avainasiakkaita, hyviä ja kehitettäviä) eritasoisia asiakkaita, jotka sijaitsevat ympäri Pohjoismaita.

Yrityksellä on käytettävissään pitkältä ajalta tarjoushistoriaa: mitä tarjottu (laajuus), kenelle, milloin, mistä toimitus, paljonko maksaa, syntyikö kaupat yms. Koska kaikki tarjoukset eivät päädy kauppaan, niin yrityksessä herää tarve selvittää mitkä muuttujat vaikuttavat/selittävät kaupan syntymiseen. Asiakkaalla on myös hypoteesi: kuinka varastointi-, toimitusvarmuus ja hinta vaikuttavat tarjouksen läpimenoon?

Dataa on ja myös kykeneviä datatieteilijöitä eli ryhdytään töihin.

Kuten yleensäkin datan määrä ja laatukaan eivät pelkästään riitä analysoinnin aloittamiseksi eli ensin data laitetaan mallinnuksen vaatimaan asentoon ja viritetään työkalut toimimaan, tässä tapauksessa käytetään R- kieltä.

Dataa ajetaan erilaisten tilastollisten mallien läpi ja havaitaan, että parhaiten dataa selittää logistinen regressiomalli.

Logistinen regressio (engl. logistic regression) on tilastollinen malli, joka on erityistyyppi tavanomaisesta regressiomallista. Logistisessa regressiomallissa selitettävä muuttuja on dikotominen eli kaksiluokkainen muuttuja. Selitettävä muuttuja saa arvon 0 tai 1 siten, että se muuttujan luokka, jota halutaan ennustaa, saa arvon 1.

Logistisella regressioanalyysillä mallinnetaan vastemuuttujan ja selittävien muuttujien suhdetta. Toisin kuin tavanomaisessa regressiomallissa, vasteen odotusarvo on riski. Riski on todennäköisyys, että jokin tapahtuma tapahtuu suhteessa siihen, että se ei tapahdu.

Tässä tapauksessa dataa tutkailemalla tunnistetaan selittäviksi muuttujiksi  mm. tarjouksen laajuus, tuotteiden saatavuus varastossa, hinta, historiallinen hintasensitiivisyys, asiakkaan erilaiset ominaispiirteet ja joitakin muita.

Koska tätä blogia lukee meidän kilpailijoiden lisäksi myös liiketoimintaihmisiä, niin laitetaan pikakelaus päälle…

Iteratiivisen tekemisen ja yrityksen liiketoimintaihmisten kanssa käytyjen keskustelujen jälkeen datatieteilijöiden päällysmiehen päästä nousee valkoista savua ja hän saa kutsun tulla esittelemään tuloksia yrityksen johtoryhmälle.

Päällysmiehen esitys alkaa seuraavalla kalvolla:

Blogi_taulukko

Johtoportaan jäsenten Facebook- päivitykset ja Tinder- pyyhkäisyt vaihtuvat lasittuneisiin katseisiin, hallitsemattomiin nyökkäilyihin ja ymmärrystä imitoiviin ääntelyihin.

Onneksi päällysmies on ollut kaukaa viisas ja on kutsunut Louhian liiketoimintakonsultin paikalle muuttamaan kalvolla olevat numerot yrityksen liiketoimintaa koskeviksi havainnoiksi. Lasittunut katse kirkastuu ja mieli avautuu.
Dataa tutkimalla on löydetty yrityksen avainasiakkaiden osalta hintasensitiivisyyspisteitä (hinnan ylitys pudottaa kaupan todennäköisyyden merkittävästi), on tunnistettu tarjouksen laajuuteen liittyviä vaikutuksia, on tunnistettu tuotteiden toimitusaikojen ja saatavuuden yhteys tarjouksen läpimenoon ja on tunnistettu asiakkaiden ominaisuuksien yhteys kaupan todennäköisyyteen.

Yritys tekee saman tien muutoksia omaan hinnoittelustrategiaansa ja tunnistaa uusia analytiikan hyödyntämisalueita.

Tuhannen taalan kysymykseen tuli miljoonan dollarin vastaus.

 

 

 

 


28.03.2017 / Mika Laukkanen

Auton myyntihinnan arviointiin on useita mahdollisuuksia. Yksinkertaisinta lienee käydä katsomassa mitä vastaavilla ominaisuuksilla varustetut autot maksavat netissä, ja asettaa hinta oman fiiliksen mukaan alle, keskiarvoon tai vaikka ylitse. Tämä metodi on varmaan riittävän tarkka tapa hinnoitella auto ellei kyseessä ole jonkinlainen erikoiskappale tai muuten harvinainen ajopeli.

Mutta onnistuuko myyntihinnan ennustaminen data-analytiikan (machine learning, statistics) keinoin? Intuitiivinen vastaus on –  ”tietysti onnistuu”, mutta kyseessä ei ole ihan yksinkertainen ennusteongelma.

Lue koko juttu Louhian artikkeliosastolta!


 


9.12.2016 / Mika Laukkanen

5.9.2018

Pian on kaksi vuotta kulunut tämän artikkelin kirjoittamisesta. Vaikka tuolloin oli jo kaikki merkit ilmassa, niin eipä olisi arvannut millaisiin mittasuhteisiin tekoälyasiat nousevat. Ennustaminen on vaikeaa. Kahden vuoden aikana on tapahtunut paljon edistystä, mutta edelleen ollaan pitkän tien alussa. Selvää vain on, että kelkasta poisjäänti ei ole vaihtoehto.


Tekoälystä on kirjoitettu viime aikoina todella paljon. Oikeastaan ei mene päivääkään ilman uutta tekoälyuutista. Kuulemma Slushissakin sijoittajien mielenkiinto kohdistui erityisesti tälle osa-alueelle. Erilaisia hypejä tulee ja menee, mutta tällä kertaa uskon, että kyse on enemmästä.  Asiasta joka muuttaa maailmaa vielä radikaalisti. Vaikka kehitystyö on kestänyt vuosikymmeniä, niin mielestäni ollaan edelleen alkutekijöissä – samassa tilanteessa kuin autoteollisuus oli 1900-luvun alkupuolella, kun ensimmäiset autot saapuivat kuluttajien iloksi.

Kannattaa myös huomata, että kehitys ei mene lineaarisesti. Tähän pisteeseen pääsy ehkä vei 60 vuotta, mutta lähivuosina kehitystä voi tapahtua enemmän kuin edellisenä 60 vuotena yhteensä.

Tässä blogissa tekoäly terminä kattaa erilaiset algoritmipohjaiset Machine Learningiin perustuvat ja automatisoidut ratkaisut. Niiden pohjaltahan nykyiset tekoälyt toimivat. Käytän myös termiä AI välillä tekoälyn sijasta, joten koettakaa pysyä mukana.

Miksi juuri nyt?

Ei ole sattumaa, että AI-ratkaisujen ja niiden uutisoinnin määrä on kasvanut reipasta tahtia. Ala on mennyt viime vuosina eteenpäin vauhdilla, jonka on mahdollistanut mm. seuraavat tekijät.

Big Data (pilvi) – oppiakseen algoritmit tarvitsevat dataa, jota on enemmän saatavilla kuin koskaan aiemmin. Aikanaan alan tutkijat joutuivat itse simuloimaan keinotekoista dataa, koska oikeaa ei ollut saatavilla. Olikohan niin, että vuonna 1980 gigan tallentaminen maksoin noin miljoonan? Ja vaikka dataa olisi ollut generoinut tai muuten saanut tuon gigan, niin mikään tietokone ei todennäköisesti olisi jaksanut pyörittää sitä riittävän tehokkaasti.

Laskentakapasiteetin kasvu (pilvi). Käytännössä AI-ratkaisujen ytimessä ovat erilaiset neuroverkot, joiden opettaminen vaatii merkittävää laskentakapasiteettia. Ei tarvita kummoistakaan ongelmaa ja big dataa, kun neuroverkon pyörittäminen tulee tehokkaallakin läppärillä mahdottomaksi.

Algoritmien ja niiden soveltamisen kehittyminen. Erityisesti Deep Learningiin perustuvat ratkaisut ovat tuoneet isoja harppauksia tekoälyn kehityksessä. Esimerkiksi seuraavissa kohteissa.

  • Kokeilepa Google haun puheentunnistusta, jonka AI-algoritmi vaihdettiin viime vuonna. Sen tarkkuus on aika uskomaton. Tuttuni sanoi, että se saa selvää 4 vuotiaankin puheesta. Eli rattiin ei ole asiaa, jos Google ei ymmärrä puhettasi.
  • Kuvien tunnistus on ottanut isoja harppauksia ja pari viikkoa sitten oli uutinen, että tekoäly lukee paremmin huulilta kuin ihminen. Kannattaa peittää se web-kamera, koska tekoäly lukee myös kasvojen ilmeitä. Tiedä vaikka tulevaisuudessa läppäri toimisi henkilökohtaisena psykologina. ”PC: Mikäs se nyt Mikaa harmittaa näin aamusta?” ”M: Ei mikään..” – ”PC: Nyt et taida nyt puhua ihan totta..”.
  • Kielenkääntäminen. Youtubesta löytyy videoita, joissa tekoäly kääntää lennosta esim. englanninkielistä seminaaria kiinaksi. Viivettä ehkä sekunnin verran. Tekeekö tämä vieraiden kielien opiskelusta jatkossa vain ahkerien huvia? Odotan tästä ratkaisua pakkoruotsin osalta.
  • Vielä parisen vuotta sitten AI-asiantuntijoiden käsitys oli, että GO-shakissa tekoäly voi voittaa parhaan ihmisen noin 10 vuoden kuluessa (normishakissa tämä tapahtui 1996). Kävi kuitenkin niin, että AlphaGo teki temput ja voitti parhaan ihmispelaajan alkuvuodesta 2016. Taustalla oleva tiimi oli tehnyt uskomatonta työtä yhdistellessään innovatiivisesti eri AI-metodeja taustalla.
  • Uutisten mukaan IBM-Watson päätyy 99%:sesti samoihin diagnooseihin kuin syöpälääkärit, mutta on löytänyt 30%:ia enemmän hoitovaihtoehtoja. Eikä niitä syötä kukaan Watsonille manuaalisesti. Se lukee kaiken alalla kirjoitetun materiaalin (julkaisut, tutkimustulokset, jne), jonka kehittäjät päättävät sille antavat. Sieltä se sitten poimii asiat ja pysyy ajan tasalla. Tri Housella on vakava kilpailija.

Kehitys on siis nopeaa ja AI-ratkaisut tulevat yhä useammalle alueelle. Usein emme kuitenkaan huomaa niitä, koska ne ovat ‘verhottuna’ ohjelmistojen ja palveluiden sisään. Ne ovat siis lähes näkymättömiä käyttäjille.

AI-ratkaisujen liiketoimintamallit?

Erityisesti meitä datan ja algoritmien kanssa puuhailevia kiinnostaa, että millaisia liiketoimintamalleja tekoäly tuo mukanaan. Tuleeko jostakin kaiken kattava yleinen tekoäly, joka osaa ratkaista lähes kaikki haasteet vai onko meillä miljoonia pieniä tekoälyjä, jotka hallitsevat jonkin kapean osa-alueen?

Itse uskon, että vastaus molempiin on kyllä, mutta aikaperspektiivit ovat erilaiset.

Ainakin seuraavat 10 vuotta tullaan kehittämään suppeita (narrow) tekoälyjä, jotka ratkovat jonkin spesifin osa-alueen haasteita (esim. optimoivat reittejä, ennustavat vikaantumista, kohdentavat mainontaa).

Yleisen tekoälyn (ratkoo mitä vaan haasteita) kehittämiseen tarvitaan resursseja, joita todennäköisesti löytyy lähinnä jättiyrityksiltä, kuten Googlelta, Microsoftilta, IBM:ltä tai Applelta. Ehkäpä nämä jätit poimivat parhaat palat noista suppeista tekoälyistä ja liittävät ne omiin kehitysprojekteihinsa. Aikataulu yleisen tekoälyn kehittymisen osalta voi olla pitkä, esim. kymmeniä vuosia. Sitä ei varmaan kukaan pysty arvioimaan tarkasti.

Liiketoimintamallien osalta on ainakin kolme päävaihtoehtoa (ml. asiakas ja AI-ratkaisun toimittaja).

  • Yritys hankkii oman tiimin tälle osa-alueelle ja sitoutuu pitkäaikaiseen kehitykseen. Tämä sopii hyvin isoille yrityksille, joiden liiketoiminnan kannalta datan hyödyntäminen on kriittistä. Tällaisia yrityksiä ovat esimerkiksi teleoperaattorit, rahoituslaitokset ja vakuutusyhtiöt. Tässä mallissa AI-ratkaisujen ulkoisella toimittajalla voi olla lähinnä konsultatiivinen rooli tai softan myynti.
  • AI-ratkaisujen räätälöity ostaminen toimittajalta. Tämä on ehkä tyypillisin skenaario. Asiakkaalla on ongelma X, johon toimittaja tarjoaa ratkaisua. Yleensä tämä tehdään projektina ja asiakkaan omistamaan ympäristöön. AI-ratkaisujen toimittajalle tämä tarkoittaa räätälöityjä projekteja.
  • AI-ratkaisun hankinta palveluna (pilvestä). Suomessa tällä osa-alueella on vielä varsin vähän tarjontaa, mutta maailmalta löytyy hyviä esimerkkejä. Itse näkisin niin, että (Microsoftia lainaten) tämä todella demokratisoi tekoälyn, eli tuo sen kaikkien ulottuville. AI-ratkaisujen toimittajan täytyy tässä vaihtoehdossa tuotteistaa palvelut pitkälle, koska projekteja ei voi täysin räätälöidä. Myös ansaintamalli poikkeaa räätälöidyistä projekteista.

Jokaisella vaihtoehdolla on omat plussat ja miinukset, mutta yksi asia on kuitenkin varmaa – aloittamatta ja tekemättä ei mikään valmistu, eli kannattaa selvittää AI:n potentiaaliset hyödyt.

Eräs pointti AI:n hyödyntämisestä

Usein yritykset lähtevät etsimään (AI) business caseja, joissa isot kertatuotot olisivat mahdollisia (~ miljoona lisämyyntiä). Joskus sellaisiakin löytyy, mutta ei aina. Tämä taas saattaa lannistaa ja luovutetaan jo ennen lähtölaukausta.

Edellä mainittu lähestymistapa ei kuitenkaan ole ainoa. Vaihtoehtoisesti voidaan etsiä pieniä ja maltillisia (AI) business caseja ratkaistavaksi, jotka kuitenkin tehostavat toimintaa. Esimerkiksi siirtäen manuaalisia työvaiheita AI-ratkaisun tehtäväksi.

Jälkimmäisessä lähestymistavassa on tärkeää huomata, että business hyöty ei välttämättä tule siitä, että tekoäly tekisi työn ihmistä tarkemmin tai paremmin. Se kuitenkin voi tehdä työn murto-osassa siitä ajasta mikä kuluu ihmiseltä. Kaksi esimerkkiä.

  • Talouspäällikkö laskee tuotealuekohtaisia budjetteja ensi vuodelle ottaen raportointijärjestelmästä viime vuoden lukuja pohjalle.  Työ kestänee tunteja. Kevyt AI-ratkaisu laskee tarkemmat ennusteet budjetin pohjaksi sekunneissa.
  • Hakemuksen käsittelijältä kuluu tunti tehtävässä, josta AI-ratkaisu suoriutuu silmänräpäyksessä. Tai sitten AI voisi ohjata hakemukset suoraan oikeille käsittelijöille, vaikeat kokeneille ja helpot aloittelijoille.

Kannattaa siis miettiä, että AI-ratkaisulla oikeasti tavoittelee ja millä aikajänteellä. Nopeita pikavoittoja on mukava saada, mutta pitkäjänteinen pienien etujen kumulatiivinen kerääminen voi kuitenkin olla se paras vaihtoehto.