Suosittelualgoritmit ovat yksi internetin megatrendeistä. Pohjimmiltaan ne ovat ennustuskoneita, laskentakaavoja käyttäjien mieltymysten löytämiseksi ja tyydyttämiseksi. Monen palvelun suosion salaisuus on juuri algoritmeissa, jotka luovat suosituksia.

Mikrobitti kirjoitti suosittelualgoritmeista laajan jutun.

Suosittelualgoritmi kertoo käyttäjälle, millaisesta sisällöstä hän tykkää ja penkoo sen esiin esiin ilman, että ihmisen tarvitsee sormea heilauttaa.

Yhteistoiminnallisissa suosituksissa perusongelma on sama: tiedetään, mitä mieltä osa käyttäjistä on osasta tuotteista, mutta läheskään kaikki eivät ole arvioineet kaikkea. Esimerkiksi käy seuraava matriisi eli taulukko elokuva-arvioista.

Tarvitaan menetelmä, jolla paikata aukot eli arvioida, mitä mieltä Jouni olisi vaikkapa The Man Who Fell To Earthista. Lisäksi ongelma kasvaa, kun käyttäjien ja tuotteiden määrä kasvaa – satatuhatta katsojaa ja tuhat elokuvaa synnyttää sadanmiljoonan alkion matriisin.

Apuun tulee matriisilaskenta. Eräs suosittu tapa on singular-value decomposition eli pääakselihajotelma, jolla matriisin sisältämä informaatio saadaan muunnettua toisenlaiseen muotoon. Samalla se tuo esiin tietoa, joka alkuperäisessä matriisissa peittyy monenlaiseen kohinaan eli ikään kuin puristaa esiin puhtaan näkemyksen siitä, miksi Jouni on antanut elokuville sellaisia arvosanoja kuin on.

Matematiikan kielellä ilmaistuna N × d -muotoiselle matriisille M on olemassa hajotelma M = U × Σ × VT:

Siinä V on d × r -ulotteinen ortonormaali matriisi, U on N × r -ulotteinen ortonormaali matriisi ja Σ on r × r -ulotteinen diagonaalinen matriisi, joka sisältää matriisin M ominaisarvot.