"Algoritm" är ett ord som slängs 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 så mycket på dem?
Algoritmer är instruktioner för problemlösning
Vi lever i en värld där datorer bara förstås vagt, trots att de genomsyrar varje ögonblick i 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 datavetenskap kallas programmering.
Programmering är inte glamoröst arbete, men det är grunden för all datorprogramvara, från Microsoft Office till robokallare . Och även om din kunskap om programmering enbart härrör från dåliga 90-talsfilmer och off-beat nyhetsrapporter, behöver du förmodligen ingen att förklara 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 snyggt ord för kod. Alla instruktioner som berättar för en dator hur man löser problem är en algoritm, även om uppgiften är superlätt. När du slår på datorn följer den en uppsättning instruktioner om hur du slår på. Det är en algoritm på jobbet. När en NASA-dator använder rå radiovågsdata för att göra ett fotografi av yttre rymden är det också en algoritm på jobbet.
Ordet "algoritm" kan användas för att beskriva vilken uppsättning instruktioner som helst, även utanför datorns område. 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 att ha använt badrummet.
Men här är saken: Dessa dagar tenderar ordet "algoritm" att vara reserverat för några mycket specifika tekniska konversationer. Du hör inte människor prata om "grundläggande matematik" -algoritmer eller "MS Paint graffiti-verktyg" -algoritmer. Istället hör du Instagram-användare som klagar över algoritmer för förslag på vänner eller integritetsgrupper som baserar Facebooks algoritmer för datainsamling.
Om "algoritm" är ett samlingsbegrepp för beräkningsinstruktioner, varför använder vi det nästan uteslutande för att beskriva förvirrande, magiska och onda aspekter av den digitala världen?
De flesta använder "Algoritmer" och "Machine Learning" omväxlande
Tidigare hänvisade programmerare och popkultur till de flesta beräkningsinstruktioner som "kod". Detta är fortfarande sant idag, för det mesta. Maskininlärning är det stora, molniga området för datorer där vi brukar använda ordet "algoritm" istället för "kod". Detta har, förståeligt nog, bidragit till förvirring och oro 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 själv.
Tänk på det som en mer praktisk form av artificiell intelligens. Om du kategoriserar tillräckligt med din chefs e-postmeddelanden som skräppost, kommer din e-postklient att börja skjuta alla dina chefs e-postmeddelanden automatiskt i skräppostmappen. På samma sätt använder Google maskininlärning för att se till att YouTube-sökresultat förblir relevanta, och Amazon använder maskininlärning för att föreslå vilka produkter du ska köpa.
Naturligtvis är maskininlärning inte allt bra och dandy. Namnet ”maskininlärning” låter läskigt nog för att göra vissa människor obekväma, och några av de populära användningsområdena för maskininlärning är etiskt ifrågasatta. Algoritmerna som Facebook använder för att data-gruva eller användare över webben är ett osmakande exempel på maskininlärning.
I pressen kommer du att höra om "Googles algoritm" för rankning av sökresultat, "YouTubes algoritm" för att rekommendera videor och "Facebooks algoritm" för att bestämma vilka inlägg du ser i din tidslinje. Dessa är alla ämnen av tvist och debatt.
RELATERAD: Problemet med AI: Maskiner lär sig saker, men kan inte förstå dem
Varför algoritmer är kontroversiella
Long division är en bekant algoritm (bland många andra) för att dela nummer. Det är bara att det utförs av skolbarn istället för datorer. Din Intel-processor använder en helt annan algoritm när den delar upp siffror, men resultaten är desamma.
Tal-till-text använder i allmänhet maskininlärning, men ingen talar om "algoritmen" för tal-till-text eftersom det finns ett objektivt korrekt svar som varje människa kan känna igen. Ingen bryr sig om "hur" datorn räknar ut vad du sa eller om det är maskininlärning eller inte. Vi bryr oss bara om maskinen fick rätt svar.
Men andra tillämpningar av maskininlärning har inte fördelen med att ha ett ”rätt” svar. Det är därför algoritmer har blivit ett vanligt ämne för samtal 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 Google för att på något sätt "rangordna de bästa webbplatserna för en sökning" eller YouTube för "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 som den borde, och människor kommer att ha olika åsikter om det. Men med vårt alfabetiska sorteringsexempel kan alla komma överens om att listan slutar sorteras alfabetiskt som den ska. Det finns ingen kontrovers.
Hur ska vi använda ordet "algoritm?"
Algoritmer är grunden för all programvara. Utan algoritmer skulle du inte ha en telefon eller dator och du skulle antagligen 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 ett samlingsbegrepp för datorkod. I själva verket antar de flesta att det finns en skillnad mellan en datorkod och en algoritm - men det finns det inte. På grund av ordet "algoritmens" koppling till maskininlärning har dess betydelse blivit dimmig, men ändå har användningen blivit mer specifik.
Ska du börja använda ordet "algoritm" för att beskriva även de mest triviala bitarna med datorkod? Förmodligen inte, eftersom inte alla förstår vad du menar. Språket förändras alltid och det ändras alltid av goda skäl. Människor behöver ett ord för att beskriva den förvirrande, ogenomskinliga och ibland tvivelaktiga världen av maskininlärning, och "algoritm" blir det ordet - för nu.
Med detta sagt är det bra att komma ihåg att en algoritm (och maskininlärning) i grunden är en massa 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 känner till.
Källor: Skiffer , Wikipedia , GeeksforGeeks