Ny innsikt og kunnskap med Data Science

Både privat og offentlig sektor besitter og produserer nå enormt mye data. For å håndtere de store datamengdene må man ta i bruk ulike vitenskapelige metoder, prosesser, algoritmer og systemer. 

Vitenskapen om å trekke ut kunnskap eller innsikt fra ulike typer data er det vi gjerne omtaler som «Data Science».

I praksis er data science et tverrfaglig fagfelt der man kombinerer fagfelt som datavitenskap, statistikk, informasjonsvitenskap, matematikk, visualisering, dataintegrasjon, grafisk design, dataarkitektur, etc.

Hvor kommet begrepet «Data Science» fra?

I 1962 beskrev John Tukey et fagfelt han kalte «dataanalyse», som ligner det vi i dag omtaler som Data Science. Selve begrepet Data Science dukket vssitnok opp på en forelesning i 1985 på det kinesiske vitenskapsakademiet C.F. i Beijing i Kina.

Jeff Wu brukte da begrepet Data Science for første gang som et alternativt navn for statistikk.

Data Science vs statistikk og dataanalyse. Hva er forskjellen ?

Statistikk legger ofte mest vekt på kvantitative data der man gjerne ønsker å beskrive noe. I motsetning til dette bruker en data scientists både kvantitative og kvalitative data (f.eks. bilder eller tale) og legger vekt på prediksjon og handling.

I den digitale tidsalderen har det blitt produsert mye innhold som inkluderer alt fra bilder og videoer til tekst og tall. For å finne dypere innsikt her, trengs det kompetanse som i dag sorterer under Data Science. Kanskje bør vi i dag se på statistikk som en del av Data Science-domenet og ikke omvendt.

Men det trenger i praksis ikke å være så store forskjeller. I mange prosjekter Sannsyn har vært involvert, så står statistiske beregninger helt sentralt.

Om vi avslutningsvis så ser på forskjellen på Data Science og dataanalyse, så kan vi si at en data scientist lager spørsmål og forsøker å spå fremtiden basert på store og uoversiktlige data, mens en dataanalytiker finner svar basert på eksisterende sett med spørsmål.

Hva er en Data scientist?

Data Science handler om å håndtere store datamender og inkluderer datarensing, forberedelse og analyser. En data scientist samler data fra flere kilder og bruker maskinlæring, prediktiv analyse og sentimentanalyse for å trekke ut kritisk informasjon fra de innsamlede datasettene. De forstår data fra et forretningssynspunkt og kan gi nøyaktige spådommer og innsikt som kan brukes til å styre kritiske forretningsbeslutninger.

Se hvorfor vi mener at det å finne en god data scientist nesten er som å finne en enhjørning:

Hva skal til for å bli en dyktig Data Scientist?

Dyktige Data Scientists er gjerne gode på analyse og programmering, men de har også nødvendig domenekunnskap. I praksis betyr dette:

  • Solid kunnskap om f.eks Python, R, Scala, SAS etc.
  • SQL-databaser
  • Evne til å jobbe med ustrukturerte data (f.eks fra forskjellige kilder som video og sosiale medier)
  • Forstå flere analytiske funksjoner
  • Kunnskap om maskinlæring
  • Forståelse for domenet og dermed kunne bruke sunn fornuft i jakten på meningsfylte funn.

Data Science er som nevnt høyere opp i teksten, et fellesbegrep som omfatter flere disipliner, herunder dataanalyse, data mining, maskinlæring og flere andre relaterte disipliner. Mens en data scientist forventes å forutsi fremtiden basert på tidligere mønstre, henter dataanalytikere ut meningsfull innsikt fra ulike datakilder. En data scientist lager spørsmål, mens en dataanalytiker finner svar på det eksisterende settet med spørsmål.

Hva er forskjellen på Data Science og maskinlæring?

Data science er som nevnt høyere opp et bredt begrep som inkluderer flere disipliner, inkludert maskinlæring. Hovedforskjellen mellom de to begrepene er at Data Science ikke bare fokuserer på algoritmer og statistikk, men også tar seg av hele databehandlingsmetoden. Dataanalyse og maskinlæring er to av mange verktøy og prosesser som brukes innen Data Science.

Analyser store tekstmengder med Text Mining

Text mining, noen ganger omtalt som text data mining, eller det vi på norsk gjerne kaller tekstanalyse, handler om å finne innsikt i store mengder tekst.

Text mining er en teknologi innen kunstig intelligens (AI) som muliggjør Natural language processing (NLP) ved at man transformerer den frie, ustrukturerte teksten i dokumenter og databaser til normaliserte, strukturerte data som deretter kan brukes til analyse eller maskinlæring.

Den strukturerte dataen skapt ved hjelp av text mining, kan igjen integreres i databaser, datavarehus eller BI-dashboards og kan brukes for deskriptive, preskriptive og prediktive analyser.

Sannsyn har lang erfaring med text mining og bistår flere av Norges største bedrifter med natural language processing, også på nordiske språk.

Et nevralt nettverk er nesten som en menneskehjerne

Dype kunstige nevrale nettverk» eller det vi ofte forkorter til «nevrale nettverk» (på engelsk deep neural network) kan defineres som en serie med algoritmer som prøver å gjenkjenne underliggende forhold i et datasett gjennom en prosess som noen ganger kan likne på den måten den menneskelige hjernen opererer på.

Nevrale nettverk har blitt sentralt i menneskehetens jakt på kunstig intelligens og brukes blant annet til tekstanalyse og bilde- og talegjenkjenning, der det ofte er vanskelig å formulere klare matematiske sammenhenger for å finne sammenhenger i dataen:

Trening av nevrale nettverk

Mens man tradisjonelt sett har brukt programmering for å gjøre datamaskinene smarte, bygger nevrale nettverk på ideen om å utvikle et selvlærende system. For at et nevralt nettverk skulle kunne lære å ta korrekte beslutninger, er det viktig å trene det nevrale nettverket (nevrale nettverk trenes opp istedet for å programmeres). Denne læreprosessen omtales ofte som dyp læring.

La oss ta et eksempel på hvordan man trener et nevralt nettverk:

Se for deg at du ønsker å identifisere en person basert på et bilde. Det man da vil gjøre er be systemet å matche et bilde med en database med navn og bilder av tusenvis av personer. Når systemet kommer med et svar, gir man beskjed til nettverket hva som var det riktige svaret og hvor stort avvik det var mellom systemets forslag og fasiten. Denne prosessen gjentas til systemet faktisk klarer å identifisere rett person. Les mer om trening av nevrale nettverk.

Det er nå en økende interesse for nevrale nettverk i markedet. En viktig årsak til dette er at vi omsider har fått store nok datamengder i kombinasjon med datamaskiner som er kraftige nok til å trene disse modellene.

Ingen språkforståelse uten Natural Language Processing (NLP)

«Natural Language Processing» (NLP) eller det man på norsk kan kalle analyse av naturlig språk, er blitt et essensielt verktøy for mange nye forretningsfunksjoner, fra chatbots og intelligente søk til analyser av store mengder dokumenter og artikler.

I dag finnes det enorme mengder ustrukturert og semi-strukturert innhold som kan gi betydelig innsikt, slik som for eksempel  e-post, sosiale medier, videoer, kundesupportforespørsler og nyhetsartikler. Å tolke slikt innhold maskinelt krever at man klarer å få datamaskinen til å forstå språk.

I praksis er dette ikke alltid like enkelt. Man skal ikke bare få datamaskinen til å forstå hvert enkelt ord, men også flertall, synonymer, sarkasme, gramatikk, stedsnavn, kontekst etc. Natural Language Processing (ofte forkortet «NLP») har i denne sammenhengen blitt avgjørende:

Natural Language Processing innebærer bruk av algoritmer for å identifisere og trekke ut essensen av språket, slik at de mer eller mindre ustrukturerte språkdataene kan bli konvertert til en form som datamaskiner kan forstå.

Ofte skiller vi mellom følgende former for språkanalyse:

  • Morfologi: Hvordan ord er bygget opp (f.eks skrivefeil, entall/flertallsord og kjønn på ord)
  • Syntaktisk analyse: Sammenhengen mellom ordene, altså hvordan setningene er bygd opp.
  • Semantisk analyse og pragmatikk: Når man har klart å forstå ordenes og setningenes oppbygning, er neste utfordring å forstå hva de egentlig handler om.

For å forstå det semi-strukturerte og ustrukturerte innholdet, brukes ofte teknikker som maskinlæringdyp læring og statistikk. Dette muliggjør for eksempel talegjenkjenning, dokument-oppsummeringer, kategorisering av tekst, oversettelser, identifisering av spam og autocomplete.

Dette er et fagfelt Sannsyn har lang erfaring med. Noe av det som gjør oss unike er at vi også har jobbet mye med Natural Language Processing for norsk språk.

Maskinlæring finnes i mange former – her er de viktigste

Maskinlæring eller det man på engelsk kaller «machine learning» handler om å identifisere mønstre i store mengder data for deretter å ta intelligente beslutninger (automatisering), men også forutse hendelser og resultater.

Autonome kjøretøy, tale- og lydgjenkjenning, målrettet reklame og anbefalinger (f.eks produkter, filmer og musikk) og prediksjon (forutse fremtidige hendelser) er i stor grad blitt mulig på grunn av maskinlæring.

Maskinlæring regnes ofte som et subdomene innen kunstig intelligens, men det er et er egentlig litt upresist da avansert maskinlæring også inneholder teknikker som ikke tilhører AI-feltet. På den annen side finnes det 100-150 forskjellige AI-teknikker, hvorav kun et fåtall av dem er maskinlæringsteknikker.

Hva er maskinlæring?

Maskinlæring kan sees på som generiske algoritmer som kan fortelle deg noe interessant om et datasett uten at du trenger å skrive egendefinert kode som er spesifikk for problemet. I stedet for å skrive kode, kan man si at du mater data til den generiske algoritmen, og den bygger egen logikk basert på dataene. Dette i motsetning til regelbaserte systemer der reglene er gitt av mennesker, gjerne basert på eksperterfaring, forretningslogikk eller regelverk:

Et eksempel på dette er en klassifiseringsalgoritme. Den samme klassifiseringsalgoritmen som ble brukt til å gjenkjenne håndskrevne tall, kan også brukes til å klassifisere e-post som er spam og ikke spam uten å endre en kode. Det er den samme algoritmen, men den blir matet med forskjellige treningsdata og kommer dermed med en annen klassifiseringslogikk.

  • Bank: Automatisert anbefalinger av potensielle handler og investeringer, handelsstrategier, robotrådgivere, analyse av kundeatferd, chatbots for kundetjenester, identitetsbekreftelse og svindeloppdagelse.
  • Offentlig sektor: Smart overvåking, avdekke trusler, «Smart Cities» og smarte forsyninger. AI-forbedret og personlig utdanning og opplæring, chatbots for informasjonsdistribusjon og inkludering av borgere.
  • Medier: Kundeanalyse, prognoser, trendanalyse, videoanalyse og datasyn (f.eks. i videospill).
  • Retail: Kundeanalyse, prognoser, forutse etterspørselstrender, redusere inntektsløp, supply chain management, lagerautomatisering, chatbots for kundetjenester og enklere check-outs.
  • Forsikring: Administrasjon av utbetalinger og oppdagelse av svindel, analyse av kundeatferd, automatisert forsikring, prising, samtaleplattformer for kundetjenester i samsvar med regelverk og handelsstrategier.
  • Energi: Predikere etterspørsel basert på AI-drevet analyse, prediktivt vedlikehold, dynamisk prising basert på forbruksanalyse levert av smarte målere, for eksempel chatbots for kundeservice.

Maskinlæringens historie

Maskinlæring baserer seg på statistiske modeller, matematisk optimalisering og algoritmer. Det er slik sett ikke et nytt fagfelt, men fagfelt har utvilsomt blitt mer aktuelt med kraftigere teknologi, mer avanserte algoritmer og stadig mer data.

Begrepet kunstig intelligens dukket opp for første gang i 1956, mens begrepet maskinlæring ble introdusert kort tid etter. Et av de første prosjektene innen maskinlæring ble igangsatt av Frank Rosenblatt så tidlig som i 1957  (kjent som «Preceptron»).

En annen milepæl fant sted i 1965 da Alexey Ivakhnenko skisserte det første dype nevrale nettverket og beskrev hvordan man kunne løse store utfordringer ved hjelp av maskinlæring. Deretter skjedde det lite innen dette fagfeltet frem til 1975 da Paul Werbos lanserte en løsning for å endre vektingen i nevrale nettverk (kjent som «Backpropagation»), noe som igjen er relevant for trening av nevrale nettverk. Paul Werbos arbeid var for øvrig viktig for Yann LeCun sin praktiske løsning for å identifisere håndskrift ved hjelp av en datamaskin (1989).

Flere typer maskinlæring

Maskinlæringsalgoritmer bygger matematiske modeller basert på eksempeldata eller treningsdata. Disse modellene brukes deretter til å ta beslutninger.

Vi skiller i hovedsak mellom to typer maskinlæring:

  • Supervised machine learning: Ved «veiledet læring» brukes algoritmer gjerne på merkede datasett som består av både spørsmål og svar, der modellen lærer seg å predikere riktig svar, gjerne basert på store mengder data. Classification og regression er to av de mest utbredte formene for supervised learning. Classification er evnen til å kategorisere et resultat (f.eks «rød» eller «grønn» – eller «sykdom» eller «ikke sykdom»), mens regression handler om å gi et eksakt svar (f.eks et beløp eller vekt, nyttig for eksempel om du skal predikere eiendomspriser). Nyttige algoritmer her kan være for eksempel lineær regressjon og nevrale nettverk.
  • Unsupervised machine learning: Ved «ikke-veiledet læring» brukes algoritmene på «umerkede» datasett, der man kun har eksempler på inputdata og ingen tilhørende output (det finnes altså ikke noe eksakt og riktig svar). Her må modellen forsøke å finne mønster og organisere innholdet. Clustering og associationer eksempler på denne typen maskinlærings-algoritmer. Clustering kan for eksempel brukes for å gruppere kunder etter kjøpsatferd, mens association for eksempel kan brukes for å beskrive typisk atferd (f.eks «kunder som har kjøpt dette produktet, kjøper ofte også dette»). Dyplæringsalgoritmer trenes gjerne opp med denne typen maskinlæring.

Kort sagt kan man si at supervised machine learning passer godt når man har god oversikt over problemområdet, en stor mengde tilgjengelig data med riktige svar og en viss forståelse av sammenhengen mellom input-data og output-data. Unsupervised learning er derimot mest aktuelt når det ikke finnes noe riktig svar og det i stedet handler om å se sammenhenger mellom forskjellige datapunkter.

I mange tilfeller er kun deler av dataen merket, da snakker vi gjerne om semi-supervised machine learning, hvilket er en blanding av supervised machine learning og unsupervised machine learning. Et eksempel på dette er et fotoarkiv, der kun deler av bildedatabasen er merket (f.eks med «hund», «katt» eller «Menneske»).

I tillegg har vi en tredje form for maskinlæring, reinforcement learning (såkalt «forsterkende læring»). Her bygges algoritmen sin modell basert på unsupervised machine learning, men får fortløpende tilbakemelding om beslutningen den foreslår er god eller dårlig.  Dette forklares best med et enkelt eksempel: Når du lærer å sykle, handler alt om å bli værende på sykkelen og ikke falle. Hjernen lærer seg hva som gjør at man faller (feil atferd) og hva som gjør at man blir værende på sykkelen (riktig atferd). Dette har for eksempel vært nyttig i utviklingen av sjakk-spill og selvkjørende biler.

Hva er «Kunstig intelligens» og hvorfor har det plutselig blitt så relevant?

Kunstig intelligens handler om å skape datamaskiner som er minst like smarte og kreative som menneskehjernen.

Begrepet kunstig intelligens (på engelsk “artificial intelligence”, ofte forkortet “AI”) ble brukt for første gang på en konferanse på Dartmouth University i USA i 1956.

Forskeren John McCarthy påpekte den gangen at kunstig intelligens ikke var en teknologi, men en hel vitenskap. Ja, vi vil hevde at «AI» er et enormt tverrfaglig bredt fagfelt med viktige bidrag fra både informatikk, matematikk, statistikk, nevrologi, psykologi og lingvistikk – der man har en rekke tilhørende konsepter og problemer, samt metoder for å løse dem.

En ganske vanlig definisjon på kunstig intelligens tar utgangspunkt i  EUs ekspertgruppes definisjon:

Kunstig intelligente systemer utfører handlinger, fysisk eller digitalt, basert på tolkning og behandling av strukturerte eller ustrukturerte data, i den hensikt å oppnå et gitt mål. Enkelte KI-systemer kan også tilpasse seg gjennom å analysere og ta hensyn til hvordan tidligere handlinger har påvirket omgivelsene.

Se også vår egen teknologidirektør Petter Egesund prate om kunstig intelligens og fortelle hvorfor det er så vanskelig å gi en god definisjon på kunstig intelligens:

Kunstig intelligens og maskinlæring er ikke det samme

Kunstig intelligens omtales ofte som et synonym til maskinlæring. Det er egentlig litt upresist da avansert maskinlæring også inneholder teknikker som ikke tilhører AI-feltet – og av de 100-150 forskjellige AI-teknikkene som finnes, er kun et fåtall maskinlæringsteknikker. 

En annen utfordring er at mye som omtales som AI-teknologi, i praksis bare er statistikk og matematikk. Begrepsforvirringen er utvilsomt stor.

Vanskelig å gjenskape menneskelig intelligens

For å beskrive hensikten med kunstig intelligens, er det relevant å se på menneskehjernen. Menneskeheten kan for eksempel resonnere, bruke strategi, kjenne igjen bilder/taler/lyd, løse problemer, håndtere usikkerhet, ta vare på og bruke kunnskap, vise sunn fornuft, planlegge for å nå et mål, lære av sine feil og kommunisere på et forståelig språk.

For et menneske er dette helt naturlige egenskaper, mens det er vanskelig å gjenskape i en IT-verden. Om vi i tillegg tar med oss at menneskeheten har en egen evne til å sjonglere mellom de ulike områdene og at det ikke finnes noen universell og felles definisjon på «intelligens», er det ingen tvil om at det er et krevende domene Sannsyn og andre «AI-selskaper» har beveget seg inn i.

I denne sammenhengen er det verdt å merke seg at kunstig intelligens som ligner menneskelig intelligens, ofte omtales som kunstig generell intelligens (på engelsk «Artificial General Intelligence») eller «sterk» KI. Annen kunstig intelligens kalles gjerne «svak» eller «smal». Vi må være så ærlig å si at dagens KI-løsninger stort sett er ganske «smale». Det betyr imidlertidig ikke at de ikke er effektive, men at det er snakk om spesifikke løsninger laget for å løse spesifikke oppgaver (f.eks bilde- eller tale gjenkjenning).

Når vi snakker om betydningen av kunstig intelligens, er det med andre ord på mange måter et stort tema der man fort vil ha behov for å definere hva intelligens egentlig er for noe for deretter å se se dette opp mot kunstig intelligens. Dette er åpenbart et stort og komplekst emne med klare paralleller til filosofiens univers.

Gjennombrudd for AI

Slik vi ser det er er drivkraften i kunstig intelligens algoritmer, der særlig utviklingen innen nevrale nettverk og dyp læring har fått stor betydning for jakten på kunstig intelligens.

Selv om kunstig intelligens i disse dager får mye oppmerksomhet, betyr det ikke at temaet er nytt. Kunstig intelligens har vært diskutert i mange år, men det er nå vi virkelig begynner å få fart på maskineriet. Det finnes selvsagt mange milepæler, men en av de store er utvilsomt da IBMs supermaskin Deep Blue slo sjakkgeniet Gary Kasparov i sjakk i 1996 og 1997.

Neste store milepæl er også fra brettspillets univers. Da selskapet DeepMind og deres AI-robot AlphaGo klarte å slå verdensmesteren i det svært avanserte brettspillet Go (denne spillmotoren ble senere knust av DeepMinds nye satsinger AlphaGo Master, AlphaGo Zero og AlphaZero), hadde menneskeheten omsider klart å lage en datamaskin som var både kreativ og selvlærende. Kanskje ikke så rart av DeepMind senere ble solgte til Google for et milliardbeløp.

Norske eksempler på kunstig intelligens

Det skjer nå mye spennende innen domenet kunstig intelligens, også her i Norge. Vi lister under opp en del eksempler på praktisk bruk av kunstig intelligens gjengitt i media de siste årene. Eksemplene er ikke nødvendigvis fra våre egne prosjekter, så detaljene vi gjengir er normalt basert på innholdet i artiklene vi lenker til:

Dyp læring er en grunnpilar i avanserte automatiseringsoppgaver

Dyp læring eller det man på engelsk kaller «deep learning» muliggjør avanserte automatiseringsoppgaver. 

Dyp læring er en læreprosess der man trener opp nevrale nettverk. Dette er sentralt innen maskinlæring og drømmen om å utvikle kunstig intelligens.

Dyp læring brukes i dag blant annet i forbindelse med simultanoversettelser mellom språk i sanntid og talegjenkjenning med smarthøytalere, men også innen medisin for å spesialtilpasse medisin til hver enkelt pasient eller for å hjelpe leger å lese medisinske bilder på jakt etter riktig diagnose.

Eksempler på dyp læring

La oss se på et enkelt eksempel på hvordan dyp læring eller «deep learning»  fungerer.

Se for deg at du skal spå prisen på en leilighet som skal selges. Da vil du som en voksen og erfaren person raskt etterspørre informasjon som kan påvirke prisen. Alt fra størrelse og antall rom til tilgang på parkeringsplass og plassering i byen vil trolig oppfattes som relevant. For å gjøre en slik markedsanalyse med mye input, vil hjernen raskt forsøke å dele informasjonen inn i ulike kategorier (f.eks geografi, tilgjengelighet til skole/kollektivtrafikk og familievennlighet), slik at det blir lettere å få oversikt. I tillegg kreves selvfølgelig en del prøving og feiling (livserfaring som mange vil kalle det) for å kunne gi et nøyaktig og godt prisestimat.

På samme fungerer dyp læring: Du må gi systemet masse input som deretter kategoriseres i et forsøk på å predikere output ved hjelp av masse prøving og feiling. For å lykkes med å analysere input og kategorisere denne informasjonen brukes nevrale nettverk.

Selv bruker vi i Sannsyn blant annet dyp læring for å predikere den fremtidige utviklingen til aksjefond for finansbransjen.

«Sort boks»

Når man snakker om kunstig intelligens, kommer man raskt inn på utfordringene med mangelen på transparens. Det kan for eksempel være en utfordring for en bankkunde som får avslag på et lån, der man i etterkant ikke kan svare godt på hvorfor kunden har fått avslått sin lånesøknad.

I disse tilfellene er det ofte dyplæringsalgoritmer som har vært i bruk. Man omtaler disse ofte som en «sort boks», der man ikke har innsyn i modellen og derfor ikke kan forklare hvorfor en gitt inndataverdi gir et gitt resultat.

Vi presiserer at normalt er metodene etterprøvbare og mulig å dokumentere, men det er viktig å være klar over utfordringen med den «sorte boksen». Særlig i de tilfeller der forklarbarhet er sentralt, anbefaler vi å bruke AI-teknikker som ikke skaper slike utfordringer.

Sannsyn og dyp læring

Sannsyn har jobbet med dyp læring og trening av nevrale nettverk i mange år og regnes som et av Norges mest erfarne selskaper på dette området.

De mest brukte rammeverkene for dyp læring, er utviklet av TensorFlow og PyTorch, utviklet av henholdsvis Google og Facebook.

Hvordan lykkes med data mining? Her er de 7 stegene

Det produseres nå enorme mengder data. Utfordringen er dermed ikke lenger tilgang på data, men å skille relevant data fra støy.

Data mining er et fagfelt innen data science, der man ofte bruker statistikk, kunstig intelligens og maskinlæring. Målet med data mining er å finne meningsfull informasjon i datasett og bruke denne informasjonen til å avdekke fremtidige mer eller mindre skjulte mønstre. Data mining er med andre ord relevant for alt fra varehandel til finans-bransjen.

Hvordan jobbe med data mining?

1. Integrere data: Det første som må gjøres er å samle og kombinere data fra alle forskjellige datakilder.

2. Velge data: Ikke alle dataene som er samlet er nyttige, så i dette trinnet velger vi bare dataene som er relevante.

3. Data-rensing: De valgte dataene kan inneholde feil, manglende verdier og inkonsekvens. Dette må fikses.

4. Datatransformasjon: Utjevning, aggregering og normalisering er noen teknikker som brukes for å transformere data til et forståelig format.

5. Data mining: Endelig kan du komme igang med din data mining og finne interessante mønstre.

6. Evaluering: Fjerne irrelevante data og gjøre forbedringer.

7. Ta den nye kunnskapen i bruk: Det siste trinnet i denne pros er å gjøre riktig bruk av kunnskapen som blir oppdaget i denne data mining-prosessen.

Hva er egentlig en algoritme?

En algoritme er en eksakt beskrivelse som forteller hvilke operasjoner som skal utføres og i hvilken rekkefølge for å oppnå et visst resultat.

Ordet algoritme stammer fra den persiske matematikeren og astronomen Muhammad ibn Musa al-Khwarizmi (den latinske formen av Al-Khwārizmī er Algoritmi). Han skrev på 800-tallet flere bøker, blant annet boken Al-jabr wa’l muqabalah. Den inneholdt en beskrivelse, altså det vi nå gjerne kaller en algoritme, for hvordan visse annengradsligninger kunne løses.

På samme måte kan man se på en kakeoppskrift som en algoritme, der man får en eksakt oppskrift på hvordan man skal lage en bestemt kake.

En algoritme trenger med andre ord ikke å være relatert til big data, digitalisering, programmering og kunstig intelligens, selv om det nok er det folk flest i dag  forbinder med algoritmer.

Algoritmer og kunstig intelligens

Ordet algoritme har som nevnt sin opprinnelse i matematikkens verden, men har nå fått sitt oppsving mye takket være økt fokus på kunstig intelligens. Ordet algoritme har nesten blitt et synonym til kunstig intelligens. I praksis har de fleste algoritmer lite med selvtenkende datamaskiner å gjøre.

I hovedsak skiller man gjerne mellom:

  • Tradisjonelle algoritmer: Her vil output du får ut, være direkte relatert til input du har gitt og de reglene du har satt opp.
  • Maskinlæringsalgoritmer: Her brukes input for å prøve og feile og deretter brukes den nye erfaringen (output) som input for ytterligere prøving og feiling. På den måten blir algoritmen bare klokere og klokere.

Et lite hjertesukk fra oss i Sannsyn: Når vi snakker om algoritmer innen maskinlæring, er det ofte snakk om bruk av nevrale nettverk der man har som mål å etterlikne menneskehjernens måte å jobbe på. Men maskinlæringsalgoritmer kan også inkludere for eksempel regresjonsanalyse og ikke «AI», og da er det ikke lenger kunstig intelligens som gjelder, men «bare» avansert statistisk analyse.

Eksempler på algoritmer

De mest kjente algoritmene finner vi nok hos Facebook og Google. Når teknologigigantene gjør endringer i sine algoritmer, får det ofte store konsekvenser for hva hvilke nyheter folk får opp i sin nyhetsstrøm og hvilke søkeresultater man får opp i søkemotoren.

På liknende måte brukes algoritmer på nettsider (f.eks nettbutikker og nyhetsnettsider) for å gi deg som besøkende produkt- og artikkel-anbefalinger. Algortimene forsøker i denne sammehengen å gi deg mest mulig relevant innhold, blant annet basert på din kjøps- og navigasjonshistorikk.

– Solr er en fantastisk søkemotor og potensialet er enda større

Mange av landets nettbutikker, nettaviser og universiteter benytter Solr som søkemotor. Solr-ekspert Petter Egesund mener mange av nettsidene har et stort forbedringspotensial.

Da utvikleren Yonik Seeley jobbet med et internprosjekt i medieselskapet CNET Networks på midten av 2000-tallet, ante han lite om hvor viktig resultatet av hans arbeid ville bli.

For å gjøre en lang historie kort: Målet til unge Yonik Seeley var å lage en god søkemotor til CNET sine egne nettsider. Tidlig i 2006 gikk CNET live med søket og donerte samtidig kildekoden til Apache Software Foundation. I dag er Solr er en av to store open soure-databaser for å søke i tekst (den andre er Elastic Search).

Solr brukes i dag av mange av verdens største selskaper, inkludert Disney, Netflix, eBay og BestBuy. Også svært mange norske virksomheter har tatt i bruk Solr, inkludert Finn.no, Universitet i Oslo, ARK Bokhandel og Sprell.

Ingen over, ingen ved siden

Etter hvert har det også kommet mange kommersielle aktører på banen som tilbyr kurs, konsulenthjelp, skreddersøm, videreutvikling og support relatert til Solr.

Det norske selskapet Sannsyn AS er et slikt selskap. Petter Egesund, teknologidirektør og medgründer i Sannsyn, har jobbet med tekstsøk i nærmere tyve år.

– De fleste databaser støtter tekst på en eller annen måte, men Solr gir svært bra resultater, mye takket være stadig mer funksjonalitet og et lojalt community med et stort antall brukere, bidragsytere og programmerere.

Noe av det som gjør Solr populært er at søkemotoren er svært konfigurerbar og har gode verktøy for å vekte og justere søk i større datamengder.

Stadig testing og tuning

Sannsyn har bistått en rekke universiteter, nettaviser og nettbutikker med tekstanalyser og Solr-søk.

– Å sette opp Solr er ingen kunst og er ofte noe man kan gjøre uten ekstern bistand. Utfordringen er å ta i bruk alle mulighetene som ligger i teknologien. Det krever ofte mer Solr-kompetanse enn det man har internt i en bedrift.

For bedrifter som ønsker å forbedre sitt søk, anbefaler Egesund at man ikke iverksetter ett omfattende søkeprosjekt, men heller jobber i flere faser med stadig testing og tuning.

– Et typisk Solr-prosjekt kan grovt sett deles inn i tre deler. I første fase jobber vi med vektinger, tuning og språklige støttefunksjoner i søket. Deretter jobber vi med semantisk analyse og vekting av salg/popularitet i auto-complete og søkeresultat. I tredje og siste fase forsøker vi å personalisere søket mest mulig til hver enkelt bruker.

Store søkeforbedringer kan gjøres på noen uker, men det hele avhenger av nåsituasjon og ambisjonsnivå.

– Å jobbe med søk er både utfordrende og morsomt. Et nettsidesøk kan alltid bli litt bedre, smiler Egesund.

Lanserer egenutviklet plugin til Solr

Sannsyn leverer ikke bare Solr-rådgiving, i disse dager er Sannsyn også i ferd med å lansere en egen plugin til Solr.

– Solr er rett og slett en fantastisk søkemotor, men ingen er perfekt. Den største svakheten til Solr er at man som nettside-eier ikke får vite om søket fungerer eller ikke. Den mangler et statistisk apparat som gir innsikt i trender, nulltreff, svartid, antall feil, lengde på treffliste og så videre, sier Egesund.

– Videre mangler Solr funksjonalitet for semantiske søk og algoritmene den er basert på, forstår ikke intensjonen bak et søk.

Løsningen som kalles for TellusR og beta-testes i disse dager hos flere av Sannsyns kunder før den etter hvert skal lanseres internasjonalt.