La page précédente a expliqué comment incorporer une couche softmax dans un de neurones pour un système de recommandation. Cette page examine de plus près les données d'entraînement de ce système.
Données d'entraînement
Les données d'entraînement softmax sont constituées des caractéristiques de requête \(x\) et un vecteur d'éléments avec lesquels l'utilisateur a interagi (représenté sous la forme distribution de probabilités \(p\)). Elles sont indiquées en bleu dans comme illustré ci-dessous. Les variables du modèle sont les pondérations dans les différentes couches. Ils sont marqués en orange dans les cas suivants : du chiffre. Le modèle est généralement entraîné à l'aide de n'importe quelle variante la descente de gradient stochastique.
Échantillonnage négatif
Puisque la fonction de perte compare deux vecteurs de probabilité \(p, \hat p(x) \in \mathbb R^n\) (la vérité terrain et la sortie du modèle), en calculant la le gradient de perte (pour une seule requête \(x\)) peut être égal à beaucoup plus cher si le corpus \(n\) est trop volumineux.
Vous pouvez configurer un système pour calculer les gradients uniquement sur les éléments positifs (éléments actifs dans le vecteur de vérité terrain). Toutefois, si le système ne s'entraîne que sur des paires positives, le modèle peut être plié, car expliqué ci-dessous.
Le modèle peut apprendre à placer les représentations vectorielles continues requête/élément d'un objet couleurs les unes par rapport aux autres (en capturant correctement la similarité au sein de couleur), mais les représentations vectorielles continues de couleurs différentes peuvent se retrouver dans la même région de l'espace de représentation vectorielle, par hasard. Ce phénomène, connu comme pliée, peut donner lieu à de fausses recommandations: au moment de la requête, le modèle peut prédire de manière incorrecte un score élevé pour un élément à partir d'une un autre groupe.
Les exemples négatifs sont les éléments libellés "non pertinents". à une requête donnée. En montrant les exemples négatifs du modèle pendant l'entraînement, les représentations vectorielles continues de différents groupes doivent être écartées les unes des autres.
Au lieu d'utiliser tous les éléments pour calculer le gradient (qui peut être trop important cher) ou n'utiliser que des éléments positifs (ce qui rend le modèle pliage), vous pouvez utiliser l'échantillonnage négatif. Plus précisément, vous calculez gradient approximatif, à l'aide des éléments suivants:
- Tous les éléments à inclure (ceux qui figurent dans le libellé cible)
- Un échantillon d'éléments négatifs (\(j\) dans \({1, …, n}\))
Il existe différentes stratégies pour échantillonner les mots clés à exclure:
- Vous pouvez effectuer un échantillonnage uniforme.
- Vous pouvez définir une probabilité plus élevée pour les éléments j dont score \(\psi(x) . V_j\). Intuitivement, ce sont des exemples qui contribuent le plus au gradient) ; ces exemples sont souvent appelés "mots clés négatifs".
Comparaison entre la factorisation matricielle et softmax
Les modèles de DNN résolvent de nombreuses limites de la factorisation matricielle, mais sont généralement plus coûteux à entraîner et à interroger. Le tableau ci-dessous résume certains des les différences importantes entre les deux modèles.
Factorisation matricielle | Softmax DNN | |
---|---|---|
Fonctionnalités de requête | Difficile à inclure. | Peut être incluse. |
Démarrage à froid | Gestion difficile du vocabulaire des requêtes ou des éléments. Certaines méthodes heuristiques peuvent être utilisées (par exemple, pour un nouvelle requête, représentations vectorielles continues moyennes de requêtes similaires). | Gère facilement les nouvelles requêtes. |
Pliage | Vous pouvez facilement réduire le risque de pliage en ajustant la pondération non observée dans la méthode WALS. | Facile à plier. Nécessaire telles que l'échantillonnage négatif ou la gravité. |
Évolutivité de l'entraînement | Évolutivité facile à très grande échelle (peut-être des centaines de millions d'articles ou plus), mais seulement si la matrice d'entrée est creuse. | Plus difficiles à faire évoluer vers les très grands volumes et des corpus. Certaines techniques peuvent être utilisées, telles que le hachage, échantillonnage négatif, etc. |
Évolutivité de l'inférence | Les représentations vectorielles continues U et V sont statiques et un ensemble de candidats peut être précalculé et stocké. | Les représentations vectorielles continues d'éléments V sont statiques
et peuvent être stockées.
La représentation vectorielle continue de la requête doit être calculé au moment de la requête, ce qui rend le modèle plus onéreux sont diffusées. |
En résumé :
- La factorisation matricielle est généralement la meilleure option pour les grands corpus. Il est plus facile à faire évoluer, moins coûteux à interroger et moins sujet aux pliages.
- Les modèles de DNN peuvent mieux capturer les préférences personnalisées, plus difficiles à entraîner et plus coûteux à interroger. Il est préférable d'utiliser des modèles DNN à la factorisation matricielle pour l'évaluation, car les modèles DNN peuvent utiliser plus de fonctionnalités pour mieux capturer la pertinence. De plus, il est généralement acceptable pour le pliage des modèles DNN, car vous vous intéressez principalement classer un ensemble pré-filtré de candidats qui sont considérés comme pertinents