Mesure de similarité supervisée

Au lieu de comparer des données de caractéristiques combinées manuellement, vous pouvez réduire les données de caractéristiques à des représentations appelées représentations vectorielles continues, puis comparer les représentations vectorielles continues. Les représentations vectorielles continues sont générées en entraînant un réseau de neurones profond (DNN) supervisé sur les données de caractéristiques. Les représentations vectorielles continues mappent les données de caractéristiques à un vecteur dans un espace de représentation vectorielle continue. En règle générale, l'espace de représentation vectorielle présente moins de dimensions que les données des caractéristiques de manière à capturer une structure latente de l'ensemble de données. Les vecteurs de représentation vectorielle continue pour des exemples similaires, tels que les vidéos YouTube regardées par les mêmes utilisateurs, se retrouvent dans un même espace proche. Nous verrons comment la mesure de similarité utilise cette "proximité" pour quantifier la similarité pour des paires d'exemples.

N'oubliez pas que nous abordons l'apprentissage supervisé uniquement pour créer une mesure de similarité. La mesure de similarité, manuelle ou supervisée, est ensuite utilisée par un algorithme pour effectuer un clustering non supervisé.

Comparaison des mesures manuelles et supervisées

Ce tableau indique quand utiliser une mesure de similarité manuelle ou supervisée en fonction de vos besoins.

ExigenceManuelSupervisés
Éliminez les informations redondantes dans les caractéristiques corrélées. Non, vous devez examiner séparément les corrélations entre les caractéristiques. Oui, DNN élimine les informations redondantes.
Fournir des insights sur les similitudes calculées Oui Non, les représentations vectorielles continues ne peuvent pas être déchiffrées.
Convient aux petits ensembles de données avec peu de fonctionnalités. Oui, il est facile de concevoir une mesure manuelle avec quelques caractéristiques. Non, les petits ensembles de données ne fournissent pas suffisamment de données d'entraînement pour un DNN.
Convient aux ensembles de données volumineux comportant de nombreuses fonctionnalités. Non, il est très difficile d'éliminer manuellement les informations redondantes de plusieurs fonctionnalités, puis de les combiner. Oui, le DNN élimine automatiquement les informations redondantes et combine les caractéristiques.

Procédure pour la mesure de similarité supervisée

La figure suivante montre comment créer une mesure de similarité supervisée:

Données de caractéristiques d'entrée. Sélectionnez DNN: auto-encodeur ou prédicteur.
      Extrayez les représentations vectorielles continues. Choisissez la mesure: distance (point), produit (cosinus) ou distance euclidienne.
Figure 1: Étapes à suivre pour créer une mesure de similarité supervisée

Vous avez déjà appris la première étape. Cette page présente l'étape suivante, et les pages suivantes décrivent les étapes restantes.

Choisir un DNN basé sur les étiquettes d'entraînement

Réduisez vos données de caractéristiques aux représentations vectorielles continues en entraînant un DNN qui utilise les mêmes données de caractéristiques à la fois en entrée et en tant qu'étiquettes. Par exemple, dans le cas de données d'auto-promotion, le DNN utiliserait des caractéristiques telles que le prix, la taille et le code postal pour prédire ces caractéristiques. Afin d'utiliser les données de caractéristiques pour prédire les mêmes données de caractéristiques, le DNN est contraint de réduire les données de caractéristiques d'entrée aux représentations vectorielles continues. Vous allez utiliser ces représentations vectorielles continues pour calculer la similarité.

Un DNN qui apprend les représentations vectorielles continues des données d'entrée en prédisant les données d'entrée proprement dites est appelé auto-encodeur. Étant donné que les couches cachées d'un auto-encodeur sont plus petites que les couches d'entrée et de sortie, l'auto-encodeur est obligé d'apprendre une représentation compressée des données de caractéristiques d'entrée. Une fois le DNN entraîné, vous devez extraire les représentations vectorielles continues de la dernière couche cachée pour calculer la similarité.

Comparaison entre un auto-encodeur et un DNN prédicteur.
       Les entrées de départ et les couches cachées sont identiques, mais la sortie est filtrée par la caractéristique clé du modèle de prédicteur.
Figure 2: Comparaison entre un auto-encodeur et un prédicteur.

Un auto-encodeur est le moyen le plus simple de générer des représentations vectorielles continues. Toutefois, un auto-encodeur n'est pas le choix optimal lorsque certaines caractéristiques pourraient être plus importantes que d'autres pour déterminer la similarité. Par exemple, pour les données internes, supposons que le prix est plus important que le code postal. Dans ce cas, n'utilisez que la caractéristique importante comme étiquette d'entraînement pour le DNN. Étant donné que ce DNN prédit une caractéristique d'entrée spécifique au lieu de prédire toutes les caractéristiques d'entrée, il est appelé un DNN prédicteur. Suivez les instructions ci-dessous pour choisir une caractéristique comme libellé:

  • Préférez les caractéristiques numériques aux caractéristiques catégorielles comme étiquettes, car la perte est plus facile à calculer et à interpréter pour les caractéristiques numériques.

  • N'utilisez pas de caractéristiques catégorielles \(\lesssim\) à cardinalité comme étiquettes. Dans ce cas, le DNN ne sera pas contraint de réduire vos données d'entrée aux représentations vectorielles continues, car un DNN peut facilement prédire des étiquettes catégorielles à faible cardinalité.

  • Supprimez la caractéristique que vous utilisez comme étiquette de l'entrée du DNN. Sinon, le DNN prédirea parfaitement la sortie.

En fonction de votre choix d'étiquettes, le DNN obtenu est un DNN d'auto-encodeur ou un DNN prédicteur.

Fonction de perte pour le DNN

Pour entraîner le DNN, vous devez créer une fonction de perte en procédant comme suit:

  1. Calculez la perte pour chaque sortie du DNN. Pour les sorties :
    • Numérique, utiliser l'erreur quadratique moyenne (MSE)
    • Catégorie catégorielle unie, utilisez la perte logistique. Notez que vous n'aurez pas à implémenter vous-même la perte de journaux, car vous pouvez la calculer à l'aide d'une fonction de bibliothèque.
    • Catégorique multivalent, utilisez softmax cross entropie loss. Notez que vous n'aurez pas à implémenter vous-même la perte d'entropie croisée softmax, car vous pouvez la calculer à l'aide d'une fonction de bibliothèque.
  2. Calculez la perte totale en additionnant la perte pour chaque sortie.

Lorsque vous additionnez les pertes, assurez-vous que chaque caractéristique contribue proportionnellement à la perte. Par exemple, si vous convertissez des données de couleur en valeurs RVB, vous avez trois sorties. En additionnant la perte pour trois sorties, la perte pour la couleur est pondérée trois fois plus que les autres caractéristiques. Multipliez plutôt chaque sortie par 1/3.

Utiliser DNN dans un système en ligne

Un système de machine learning en ligne dispose d'un flux continu de nouvelles données d'entrée. Vous devrez entraîner votre DNN avec les nouvelles données. Toutefois, si vous réentraînez votre DNN à partir de zéro, vos représentations vectorielles continues seront différentes, car les DNN sont initialisés avec des pondérations aléatoires. À la place, démarrez toujours le DNN avec les pondérations existantes, puis mettez-le à jour avec de nouvelles données.