Vad är algoritmer och varför gör de människor obekväma?

”Algorithm” är ett ord som kastas runt mycket. Men när vi bygger konversationer kring YouTube eller Facebook-algoritmer, vad pratar vi egentligen om? Vad är algoritmer och varför klagar folk på dem så mycket?

Algoritmer är instruktioner för problemlösning

Vi lever i en värld där datorer bara förstås vagt, även om de genomsyrar varje ögonblick av våra liv. Men det finns ett område inom datavetenskap där alla kan förstå grunderna i vad som händer. Det området av datavetenskap kallas programmering.

Programmering är inte glamoröst arbete, men det är grunden för all datorprogramvara, från Microsoft Office till robocallers. Och även om dina kunskaper om programmering enbart härrör från dåliga 90-talsfilmer och off-beat nyhetsrapporter, behöver du förmodligen inte någon som förklarar för dig vad en programmerare gör. En programmerare skriver kod för en dator, och datorn följer instruktionerna för den koden för att utföra uppgifter eller lösa problem.

Tja, i datavetenskapens värld är en algoritm bara ett fint ord för kod. Varje uppsättning instruktioner som talar om för en dator hur man löser problem är en algoritm, även om uppgiften är superlätt. När du sätter på din dator följer den en uppsättning instruktioner för ”hur man slår på”. Det är en algoritm som fungerar. När en NASA-dator använder rå radiovågsdata för att återge ett fotografi av yttre rymden, är det också en algoritm som fungerar.

Ordet ”algoritm” kan användas för att beskriva alla instruktioner, även utanför datorområdet. Till exempel är din metod för att sortera bestick i en låda en algoritm, liksom din metod att tvätta händerna efter badrummet.

Men här är grejen: Nuförtiden tenderar ordet ”algoritm” att vara reserverat för några mycket specifika tekniska konversationer. Du hör inte folk prata om ”grundläggande matematik”-algoritmer eller ”MS Paint graffiti tool”-algoritmer. Istället hör du Instagram-användare klaga över vänförslagsalgoritmer eller sekretessgrupper som slår Facebooks datainsamlingsalgoritmer.

Om ”algoritm” är en samlande term för beräkningsinstruktioner, varför använder vi den då nästan uteslutande för att beskriva förvirrande, magiska och onda aspekter av den digitala världen?

De flesta använder ”algoritmer” och ”maskininlärning” omväxlande

Tidigare kallade programmerare och popkultur de flesta beräkningsinstruktioner som ”kod”. Detta förblir sant idag, för det mesta. Maskininlärning är det stora, grumliga området för datoranvändning där vi tenderar att använda ordet ”algoritm” istället för ”kod”. Detta har, förståeligt nog, bidragit till förvirringen och oroligheten kring ordet ”algoritm”.

Maskininlärning har funnits länge, men det har bara blivit en stor del av den digitala världen under de senaste 15 åren. Även om maskininlärning låter som en komplicerad idé, är det ganska lätt att förstå. Programmerare kan inte skriva och testa specifik kod för varje situation, så de skriver kod som kan skriva sig själv.

Se det som en mer praktisk form av artificiell intelligens. Om du kategoriserar tillräckligt många av din chefs e-postmeddelanden som skräppost, kommer din e-postklient att börja skjuta in alla din chefs e-postmeddelanden i skräppostmappen automatiskt. På samma sätt använder Google maskininlärning för att se till att YouTubes sökresultat förblir relevanta, och Amazon använder maskininlärning för att föreslå vilka produkter du ska köpa.

Självklart är maskininlärning inte helt okej. Namnet ”maskininlärning” låter läskigt nog att göra vissa människor obekväma, och några av de populära användningsområdena för maskininlärning är etiskt tveksamma. Algoritmerna som Facebook använder för att dataminera eller användare över webben är ett föga smickrande exempel på maskininlärning.

I pressen kommer du att få höra om ”Googles algoritm” för att rangordna sökresultat, ”YouTubes algoritm” för att rekommendera videor och ”Facebooks algoritm” för att bestämma vilka inlägg du ser på din tidslinje. Dessa är alla ämnen för tvist och debatt.

Varför algoritmer är kontroversiella

Lång division är en välbekant algoritm (bland många andra) för att dividera tal. Det är bara det att det utförs av skolbarn istället för datorer. Din Intel-processor använder en helt annan algoritm när den delar tal, men resultaten är desamma.

Tal-till-text använder i allmänhet maskininlärning, men ingen talar om ”tal-till-text-algoritmen” eftersom det finns ett objektivt korrekt svar som varje människa omedelbart kan känna igen. Ingen bryr sig om ”hur” datorn kommer på vad du sa eller om det är maskininlärning eller inte. Vi bryr oss bara om om maskinen fick rätt svar.

Men andra tillämpningar av maskininlärning har inte fördelen av att ha ett ”rätt” svar. Det är därför algoritmer har blivit ett vanligt samtalsämne i media.

En algoritm för att sortera en lista alfabetiskt är bara ett sätt att utföra en definierad uppgift. Men en algoritm som Googles för att på något sätt ”ranka de bästa webbplatserna för en sökning” eller YouTubes för att ”rekommendera den bästa videon” är mycket vagare och utför inte en definierad uppgift. Människor kan diskutera om den algoritmen ger de resultat den borde, och folk kommer att ha olika åsikter om det. Men, med vårt alfabetiska sorteringsexempel kan alla hålla med om att listan hamnar alfabetiskt sorterad som den ska. Det finns ingen kontrovers.

Hur ska vi använda ordet ”algoritm?”

Algoritmer är grunden för all mjukvara. Utan algoritmer skulle du inte ha en telefon eller dator, och du skulle förmodligen läsa den här artikeln på ett papper (faktiskt skulle du inte läsa den alls).

Men allmänheten använder inte ordet ”algoritm” som en samlingsterm för datorkod. Faktum är att de flesta antar att det finns en skillnad mellan en datorkod och en algoritm – men det är det inte. På grund av ordet ”algoritms” koppling till maskininlärning har dess betydelse blivit dimmig, men användningen har blivit mer specifik.

Ska du börja använda ordet ”algoritm” för att beskriva även de mest triviala bitar av datorkod? Förmodligen inte, eftersom inte alla förstår vad du menar. Språket förändras alltid, och det förändras alltid av en god anledning. Människor behöver ett ord för att beskriva den förvirrande, ogenomskinliga och ibland tvivelaktiga världen av maskininlärning, och ”algoritm” håller på att bli det ordet – för nu.

Med det sagt är det bra att komma ihåg att en algoritm (och maskininlärning) i sin kärna är ett gäng kod som är skriven för att lösa uppgifter. Det finns inget magiskt trick; det är bara en mer komplicerad iteration av programvaran som vi redan är bekanta med.

Källor: Skiffer, Wikipedia, GeeksforGeeks