Factorisation matricielle

La factorisation matricielle est un modèle de représentation vectorielle continue simple. Étant donné le matrice de commentaires A \(\in R^{m \times n}\), où \(m\) est la nombre d'utilisateurs (ou de requêtes) et \(n\) correspond au nombre d'éléments, le modèle apprend:

  • Une matrice de représentation vectorielle continue des utilisateurs \(U \in \mathbb R^{m \times d}\) où la ligne i correspond à la représentation vectorielle continue de l'utilisateur i.
  • Une matrice de représentation vectorielle continue des éléments \(V \in \mathbb R^{n \times d}\) où la ligne j est la représentation vectorielle continue de l'élément j.

Illustration de la factorisation matricielle à l'aide de l'exemple de film récurrent.

Les représentations vectorielles continues sont apprises de sorte que le produit \(U V^T\) est un la bonne approximation de la matrice de rétroaction A. Notez que la \((i, j)\) l'entrée de \(U . V^T\) est simplement le produit scalaire \(\langle U_i, V_j\rangle\) des représentations vectorielles continues de l'utilisateur \(i\) et l'élément \(j\), dont vous souhaitez qu'ils soient proches de \(A_{i, j}\).

Choisir la fonction objectif

La distance au carré est une fonction objectif intuitive. Pour ce faire, minimiser la somme des erreurs quadratiques sur toutes les paires d'entrées observées:

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2.\]

Dans cette fonction objectif, vous additionnez uniquement les paires observées (i, j), c'est-à-dire, sur des valeurs non nulles dans la matrice de rétroaction. Toutefois, seule la somme sur les valeurs d'un n'est pas une bonne idée ; la matrice de toutes les valeurs aura une perte minimale et de produire un modèle incapable d'émettre des recommandations efficaces ce qui se généralise mal.

Illustration représentant trois matrices: la factorisation matricielle observée uniquement, la factorisation pondérée et la décomposition des valeurs singulières.

Vous pourriez peut-être traiter les valeurs non observées comme zéro et les additionner les entrées de la matrice. Cela correspond à la réduction Frobenius au carré distance entre \(A\) et son approximation \(U V^T\):

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \|A - U V^T\|_F^2.\]

Vous pouvez résoudre ce problème quadratique via La décomposition des valeurs singulières (SVD) de la matrice. Toutefois, La SVD n'est pas non plus une excellente solution, car dans les applications réelles, matricielle \(A\) peut être très creuse. Par exemple, pensez à toutes les vidéos sur YouTube par rapport à l'ensemble des vidéos visionnées par un utilisateur donné. La solution \(UV^T\) (qui correspond à l'approximation du modèle) de la matrice d'entrée) sera probablement proche de zéro, ce qui se traduira par une les performances de généralisation.

En revanche, la factorisation matricielle pondérée décompose l'objectif en deux sommes:

  • Somme sur les entrées observées.
  • Une somme sur des entrées non observées (traitées comme des zéros).

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2 + w_0 \sum_{(i, j) \not \in \text{obs}} (\langle U_i, V_j\rangle)^2.\]

Ici, \(w_0\) est un hyperparamètre qui pondère les deux termes afin que l’objectif ne soit pas dominé par l’un ou l’autre. Le réglage de cet hyperparamètre est très important.

\[\sum_{(i, j) \in \text{obs}} w_{i, j} (A_{i, j} - \langle U_i, V_j \rangle)^2 + w_0 \sum_{i, j \not \in \text{obs}} \langle U_i, V_j \rangle^2\]

où \(w_{i, j}\) est une fonction de la fréquence de la requête i et de l'élément j.

Réduire la fonction objectif

Voici quelques algorithmes courants permettant de minimiser la fonction objectif:

  • Descente de gradient stochastique (SGD) est une méthode générique permettant de minimiser les fonctions de perte.

  • La technique des moindres carrés alternés pondérés (WALS) est spécialisée dans ce cas de figure. un objectif particulier.

L'objectif est quadratique dans chacune des deux matrices U et V. (Remarque : mais que le problème n'est pas conjointement convexe). WALS s'initialise les représentations vectorielles continues de manière aléatoire, puis en alternant entre:

  • Correction \(U\) et résolution de \(V\).
  • Correction \(V\) et résolution de \(U\).

Chaque étape peut être résolue avec exactitude (par la solution d'un système linéaire) être distribuées. La convergence de cette technique est garantie, car chaque étape la perte est garantie.

SGD et WALS

Les méthodes SGD et WALS présentent des avantages et des inconvénients. Consultez les informations ci-dessous pour les comparer:

SGD

Très flexible, peut utiliser d'autres fonctions.

Peuvent être parallélisés.

Plus lent : la convergence n'est pas aussi rapide.

Plus difficile de gérer les entrées non observées (besoin pour utiliser l'échantillonnage négatif ou la gravité).

WALS

S'appuie uniquement sur les carrés de perte.

Peuvent être parallélisés.

Converge plus rapidement que les SGD.

Les entrées non observées sont plus faciles à gérer.