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.
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ó: 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.