1. Décomposition & Factorisation Matricielle
8. Factorisation de base
r̂ui = qi^T × pur̂ui = qiT pu = Σ(f=1 à k) [ qi,f × pu,f ]
Variables
- r̂ui : Note PRÉDITE (user u, item i)
- qi : Vecteur latents du film i
- pu : Vecteur latents de l'utilisateur u
- k : Dimension de l'espace latent
Exemple concret (k=3)
pu (toi) = [2, 9, 7] (comédie, action, émotion)
qi (Avengers) = [8, 9, 6]
r̂ui = (2×8) + (9×9) + (7×6) = 16 + 81 + 42 = 139 (≈ 5 étoiles)
9. Modèle avec Biais
r̂ui = μ + bu + bi + qi^T × pur̂ui = μ + bu + bi + qiT pu
Variables Ajoutées
- μ (mu) : Note moyenne globale
- bu : Biais de l'utilisateur (sévère/généreux)
- bi : Biais du film (popularité)
Exemple concret
μ = 3,5 | bu = +0,7 | bi = +1,0
qi^T × pu = 0,8 (normalisé)
r̂ui = 3,5 + 0,7 + 1,0 + 0,8 = 6,0 étoiles (max 5)
2. Modèles SVD Avancés
10. Funk SVD (Singular Value Decomposition)
A = U × Σ × VT
La décomposition SVD casse une grande matrice creuse en trois matrices denses.
Matrice A (grande) U (Users) Σ (Poids) V^T (Films) [5 2 ? 4 ...] [0.2 0.7 ...] [2.5 0 0 ] [0.1 0.2 ...] [5 ? 3 ? ...] = [0.2 0.8 ...] [0 1.8 0 ] [0.3 0.1 ...] [1 5 5 4 ...] [0.9 0.2 ...] [0 0 0.9] [0.2 0.4 ...] [... ... ... ... ...] [... ... ...] [... ... ... ] [... ... ...]
11. SVD++ (Améliorations avec Facteurs Implicites)
r̂ui = μ + bu + bi + qiT × [ pu + |N(u)|-1/2 × Σ(j ∈ N(u)) yj ]
SVD++ ajoute des facteurs implicites (yj). L'idée : "Les films que tu as notés disent quelque chose sur tes goûts, même si tu ne les notes pas explicitement."
Exemple de calcul SVD++ :
- Historique N(u) = {Avengers, Toy Story, Raiponce}. |N(u)| = 3. Normalisation = √(1/3) ≈ 0,577
- Explicite pu = [2.0, 9.0, 7.0]
- Implicites yj : Avengers=[0.5, 0.8, 0.7], ToyStory=[0.8, 0.1, 0.2], Raiponce=[0.6, 0.2, 0.8]
- Somme implicites = [1.9, 1.1, 1.7]
- Vecteur ajusté = [2.0 + (0.577×1.9), 9.0 + (0.577×1.1), 7.0 + (0.577×1.7)] = [3.1, 9.63, 7.98]
3. Optimisation & Apprentissage (SGD)
12. Fonction Coût (Objectif)
min Σ (rui - r̂ui)² + λ(Σ‖pu‖² + Σ‖qi‖² + Σbu² + Σbi²)
L'algorithme cherche à minimiser l'erreur d'entraînement tout en gardant les paramètres petits (régularisation λ) pour éviter le surapprentissage.
13. Descente de Gradient Stochastique (SGD)
eui = rui - r̂ui
bu := bu + γ(eui - λ·bu)
pu := pu + γ(eui·qi - λ·pu)
qi := qi + γ(eui·pu - λ·qi)
14. Le Compromis Biais-Variance (Régularisation λ)
Mémorise les données. Biais faible, Variance élevée.
Minimise l'erreur sur l'ensemble de test.
Modèle trop simple. Biais élevé, Variance faible.
Erreur
| Ensemble test
| /‾‾‾‾‾‾‾‾‾\
| / \___
| /
| /‾‾‾‾ Ensemble entraînement
|_/___________________ λ
λ=0 optimal élevé
4. Mesurer la Qualité (RMSE vs MAE)
15. RMSE
Root Mean Squared Error
RMSE = √[ (1/|T|) Σ (rui - r̂ui)² ]
- ✓ Pénalise lourdement les grandes erreurs (mise au carré).
- ✓ Benchmark Netflix : ~0.8 à 1.0
- ✓ À utiliser pour éviter à tout prix les recommandations catastrophiques.
16. MAE
Mean Absolute Error
MAE = (1/|T|) Σ |rui - r̂ui|
- ✓ Erreur linéaire (une erreur de 2 vaut 2x une erreur de 1).
- ✓ Plus intuitif pour comprendre l'erreur moyenne réelle.
- ✓ À utiliser quand toutes les erreurs ont un impact proportionnel.
17. Le duel illustré
Erreurs : [0.1, 0.1, 0.1, 0.1, 4.0]
RMSE = 1.79 | MAE = 0.88
Erreurs : [1.0, 1.0, 1.0, 1.0, 1.0]
RMSE = 1.00 | MAE = 1.00
Le RMSE punit le Modèle A beaucoup plus sévèrement à cause du carré appliqué à l'erreur de 4.0.