A kollaboratív szűrés (collaborative filtering) az ajánlórendszerek egyik legelterjedtebb algoritmikuscsaládja. Alapelve az, hogy hasonló preferenciákkal rendelkező felhasználók valószínűleg hasonló elemeket fognak kedvelni a jövőben is. Ez a megközelítés nem igényli az elemek tartalmának részletes leírását — kizárólag a felhasználók és elemek közötti interakciókat (értékelések, kattintások, vásárlások) veszi figyelembe.

Kollaboratív szűrés folyamatának vizualizációja

A kollaboratív szűrés felhasználói hasonlóságon alapuló ajánlási folyamata. Forrás: Wikimedia Commons, CC0.

A kollaboratív szűrés két fő típusa

Felhasználóalapú (user-based) kollaboratív szűrés

A felhasználóalapú megközelítésben a rendszer a célfelhazsnálóhoz hasonló felhasználókat (ún. "szomszédokat") keres. A hasonlóság mértékét leggyakrabban a kosinus-hasonlóság (cosine similarity) vagy a Pearson-féle korrelációs együttható segítségével számítják. Ha két felhasználó hasonlóan értékelt számos elemet, a rendszer feltételezi, hogy az egyik által magasra értékelt, a másik által még nem látott elemek is relevánsak lehetnek.

A módszer intuitív, de skálázhatósági problémákat vet fel: nagy felhasználói adatbázisoknál a szomszédkeresés számítási igénye arányosan nő. A NetflixPrize verseny (2006–2009) eredményei rámutattak, hogy önmagában a felhasználóalapú kollaboratív szűrés nem elegendő nagy méretű, ritka mátrixok kezelésére.

Elemalapu (item-based) kollaboratív szűrés

Az elemalapu megközelítést az Amazon.com fejlesztette ki a 2000-es évek elején, és Greg Linden, Brent Smith és Jeremy York által publikált tanulmányban írták le részletesen (2003). Ebben a modellben nem a felhasználók, hanem az elemek közötti hasonlóságot számítják elő, offline fázisban. A hasonlósági mátrix előzetes kiszámítása meggyorsítja az online ajánlási lépést.

Például: ha a "Mátrix faktorizáció" és a "Gépi tanulás alapjai" könyvek sok közös olvasóval rendelkeznek, akik mindkettőt hasonlóan értékelték, a rendszer a kettő között magas hasonlóságot rögzít. Egy olyan felhasználónak, aki az előbbit olvasta, az utóbbit fogja ajánlani.

Mátrix faktorizáció vizualizációja ajánlórendszerben

Mátrix faktorizáció: a felhasználó-elem mátrix alacsony rangú felbontása rejtett faktorokra. Forrás: Wikimedia Commons.

Mátrix-faktorizáció

A mátrix-faktorizáció a kollaboratív szűrés egyik leghatékonyabb modern változata. A módszer lényege, hogy a felhasználó-elem értékelési mátrixot két kisebb mátrixra bontja szét: egy felhasználói és egy elem-latens faktormátrixra. Ezek szorzata közelíti az eredeti mátrixot, miközben feltöltve a hiányzó értékeléseket.

A Singular Value Decomposition (SVD) és annak közelítő változatai (pl. SVD++, ALS — Alternating Least Squares) a Netflix-verseny eredményei után váltak elterjedtté. A Yehuda Koren, Robert Bell és Chris Volinsky által 2009-ben publikált összefoglaló tanulmány részletezi ezeket a technikákat.

// Egyszerűsített mátrix-faktorizáció ALS módszerrel // P: felhasználói faktor mátrix (m x k) // Q: elem-faktor mátrix (n x k) // R ≈ P × Q^T // Célfüggvény: minimalizálandó // min Σ (r_ui - p_u · q_i)² + λ(||p_u||² + ||q_i||²) // ahol λ: regularizációs paraméter

Hidegindítás és adatritkasság

A kollaboratív szűrés két ismert problémával küzd:

  • Hidegindítás (cold start): Új felhasználók vagy elemek esetén nincs elegendő interakciós adat az ajánlás elkészítéséhez. Az újfelhasználói hidegindítás kezelésére demográfiai adatokat vagy kezdeti felméréseket alkalmaznak egyes rendszerek.
  • Adatritkasság (sparsity): A legtöbb felhasználó az elérhető elemek töredékével lép interakcióba, így a mátrix rendkívül ritka. Az ALS és SGD (Stochastic Gradient Descent) alapú faktorizáció segít kezelni ezt a problémát.

Skálázhatóság és valós alkalmazások

A Spotify Discover Weekly funkciója, a YouTube videóajánlója és az Amazon termékajánló rendszere mind tartalmaz kollaboratív szűrési elemeket, általában hibrid architektúra részeként. A Spotify által publikált forrásokban (2015-ös recsys.acm.org előadás) leírják, hogyan alkalmazzák az implicit visszajelzéseken alapuló ALS faktorizációt a lejátszási listák elemzéséhez.

„Az ajánlórendszerek felhasználói értékelések nélkül is hatékonyan működhetnek, ha a felhasználói viselkedés implicit jelzéseit (kattintások, megtekintési idő, vásárlások) megfelelően kezelik." — Hu, Koren és Volinsky, 2008

Értékelési metrikák

A kollaboratív szűrők teljesítményét általában a következő mutatókkal mérik:

  • RMSE / MAE: Az előre jelzett és tényleges értékelések különbségének mérőszámai.
  • Precision@K és Recall@K: Az ajánlott elemek közül hány volt releváns az első K pozícióban.
  • NDCG (Normalized Discounted Cumulative Gain): A rangsorolás minőségét méri, figyelembe véve a relevancia fokozatait.

Az ACM RecSys konferencia (recsys.acm.org) évente ad otthont a legújabb kutatásoknak, amelyek ezeket az algoritmusokat tovább finomítják és valós alkalmazásokban tesztelik.

A cikkben szereplő algoritmusleírások általános ismeretterjesztő célokat szolgálnak. A konkrét implementációs részletek rendszerenként eltérhetnek. A hivatkozott tanulmányok nyilvánosan elérhetők az ACM Digital Library és a Google Scholar adatbázisában.