Modèles de réseaux de neurones profonds

La section précédente vous a montré comment utiliser la factorisation matricielle pour apprendre les représentations vectorielles continues. Voici quelques limites de la factorisation matricielle:

  • La difficulté d'utiliser des caractéristiques secondaires (c'est-à-dire des caractéristiques autres que l'ID de requête/l'ID d'élément) Par conséquent, le modèle ne peut être interrogé qu'avec un utilisateur ou un élément présent dans l'ensemble d'entraînement.
  • Pertinence des recommandations. Comme vous l'avez vu dans le premier Colab, les articles populaires ont tendance à être recommandés pour tout le monde, en particulier lorsque vous utilisez le produit scalaire comme mesure de similarité. Il est préférable de capturer des centres d'intérêt spécifiques.

Les modèles de réseau de neurones profond (DNN) peuvent répondre à ces limites de la factorisation matricielle. Les DNN peuvent facilement intégrer des caractéristiques de requête et d'élément (en raison de la flexibilité de la couche d'entrée du réseau), ce qui peut aider à capturer les centres d'intérêt spécifiques d'un utilisateur et à améliorer la pertinence des recommandations.

DNN Softmax pour la recommandation

Un modèle DNN possible est softmax, qui traite le problème comme un problème de prédiction à classes multiples dans lequel:

  • L'entrée correspond à la requête de l'utilisateur.
  • La sortie est un vecteur de probabilité dont la taille est égale au nombre d'éléments dans le corpus, qui représente la probabilité d'interaction avec chaque élément. Par exemple, la probabilité de cliquer ou de regarder une vidéo YouTube.

Entrée

L'entrée d'un DNN peut inclure:

  • fonctionnalités denses (par exemple, la durée de visionnage et le temps passé depuis la dernière montre)
  • caractéristiques creuses (historique des vidéos regardées, pays, etc.)

Contrairement à l'approche de factorisation matricielle, vous pouvez ajouter des caractéristiques secondaires, telles que l'âge ou le pays. Nous allons indiquer le vecteur d'entrée par x.

Image montrant la couche d'entrée d'un réseau de neurones profond softmax
Image 1. La couche d'entrée, x.

Architecture du modèle

L'architecture du modèle détermine la complexité et l'expressivité du modèle. En ajoutant des couches cachées et des fonctions d'activation non linéaires (par exemple, ReLU), le modèle peut capturer des relations plus complexes dans les données. Toutefois, l'augmentation du nombre de paramètres rend généralement le modèle plus difficile à entraîner et plus coûteux à diffuser. Nous indiquerons la sortie de la dernière couche cachée par \(\psi (x) \in \mathbb R^d\).

Image montrant les couches cachées dans un réseau de neurones profond softmax
Image 2. La sortie des couches cachées, \(\psi (x)\).

Sortie softmax: distribution de la probabilité prévue

Le modèle mappe la sortie de la dernière couche, \(\psi (x)\), via une couche softmax à une distribution de probabilité \(\hat p = h(\psi(x) V^T)\), où:

  • \(h : \mathbb R^n \to \mathbb R^n\) est la fonction softmax, fournie par \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
  • \(V \in \mathbb R^{n \times d}\) est la matrice de pondérations de la couche softmax.

La couche softmax mappe un vecteur de scores \(y \in \mathbb R^n\) (parfois appelé logits) à une distribution de probabilité.

Image montrant une distribution de probabilité prédite dans un réseau de neurones profond softmax
Figure 3. La distribution de probabilité prédite, \(\hat p = h(\psi(x) V^T)\).

Fonction de perte

Enfin, définissez une fonction de perte qui compare les éléments suivants:

  • \(\hat p\): sortie de la couche softmax (distribution de probabilité)
  • \(p\), la vérité terrain, représentant les éléments avec lesquels l'utilisateur a interagi (par exemple, des vidéos YouTube sur lesquelles il a cliqué ou regardé) Cela peut être représenté par une distribution multi-hot normalisée (un vecteur de probabilité).

Par exemple, vous pouvez utiliser la perte d'entropie croisée, car vous comparez deux distributions de probabilité.

Image montrant la fonction de perte dans un réseau de neurones profond softmax
Figure 4. La fonction de perte.

Représentations vectorielles continues Softmax

La probabilité de l'élément \(j\) est donnée par\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), où \(Z\) est une constante de normalisation qui ne dépend pas de \(j\).

En d'autres termes, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\). La probabilité de journalisation d'un élément \(j\) est donc (jusqu'à une constante additive) le produit scalaire de vecteurs à deux dimensions \(d\), qui peuvent être interprétés comme des représentations vectorielles continues de requête et d'élément:

  • \(\psi(x) \in \mathbb R^d\) est le résultat de la dernière couche cachée. C'est ce que nous appelons l'intégration de la requête \(x\).
  • \(V_j \in \mathbb R^d\) est le vecteur de pondérations qui connecte la dernière couche cachée à la sortie j. C'est ce que nous appelons l'intégration de l'élément \(j\).
Image montrant des représentations vectorielles continues dans un réseau de neurones profond softmax
Figure 5. Élément intégré \(j\), \(V_j \in \mathbb R^d\)

DNN et factorisation matricielle

Dans le modèle softmax et le modèle de factorisation matricielle, le système apprend un vecteur de représentation vectorielle continue\(V_j\) par élément \(j\). Ce que nous avons appelé la matrice de représentation vectorielle continue des articles \(V \in \mathbb R^{n \times d}\) dans la factorisation matricielle est désormais la matrice des pondérations de la couche softmax.

Cependant, les représentations vectorielles continues des requêtes sont différentes. Au lieu d'apprendre une représentation vectorielle continue \(U_i\) par requête \(i\), le système apprend une correspondance entre la fonctionnalité de requête \(x\) et une représentation vectorielle continue \(\psi(x) \in \mathbb R^d\). Vous pouvez donc considérer ce modèle de DNN comme une généralisation de la factorisation matricielle, dans laquelle vous remplacez le côté de la requête par une fonction non linéaire \(\psi(\cdot)\).

Pouvez-vous utiliser les fonctionnalités de l'article ?

Pouvez-vous appliquer la même idée côté article ? Autrement dit, au lieu d'apprendre une représentation vectorielle continue par élément, le modèle peut-il apprendre une fonction non linéaire qui mappe les caractéristiques d'un élément à une représentation vectorielle continue ? Oui. Pour ce faire, utilisez un réseau de neurones à deux tours, composé de deux réseaux de neurones:

  • Un réseau de neurones mappe les caractéristiques de requête\(x_{\text{query}}\) pour interroger les représentations vectorielles continues.\(\psi(x_{\text{query}}) \in \mathbb R^d\)
  • Un réseau de neurones met en correspondance les caractéristiques d'un élément\(x_{\text{item}}\) et la représentation vectorielle continue de l'élément\(\phi(x_{\text{item}}) \in \mathbb R^d\)

La sortie du modèle peut être définie comme le produit scalaire de\(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Notez qu'il ne s'agit plus d'un modèle softmax. Le nouveau modèle prédit une valeur par paire \((x_{\text{query}}, x_{\text{item}})\)au lieu d'un vecteur de probabilité pour chaque requête \(x_{\text{query}}\).