Exemple de génération de représentations vectorielles continues

Cet exemple montre comment générer les représentations vectorielles continues utilisées dans une mesure de similarité supervisée.

Imaginez que vous ayez le même ensemble de données sur le logement que vous avez utilisé pour créer une mesure manuelle de similarité :

FonctionnalitéType
PrixEntier positif
Taille Valeur à virgule flottante positive en mètres carrés
Code postalInteger
Nombre de chambresInteger
Type de maisonUne valeur de texte issue de "maison individuelle", "maison individuelle", "appartement" ou "copropriété"
Garage0/1 pour non/oui
ColorisCatégorique multivalente: une ou plusieurs valeurs parmi les couleurs standards "blanc", "jaune", "vert", etc.

Prétraiter les données

Avant d'utiliser les données de caractéristiques en entrée, vous devez prétraiter les données. Les étapes de prétraitement sont basées sur les étapes que vous avez suivies pour créer manuellement une mesure de similarité. Vous trouverez ci-dessous un récapitulatif :

FonctionnalitéType ou distributionAction
PrixDistribution de Poisson Procédez à une quantification et à un scaling à [0,1].
TailleDistribution de Poisson Procédez à une quantification et à un scaling à [0,1].
Code postalCategorical Convertir en longitude et latitude, quantifier et mettre à l'échelle jusqu'à [0,1].
Nombre de chambresInteger Coupez les anomalies et mettez-les à l'échelle jusqu'à [0,1].
Type de maisonCategorical Convertir en encodage one-hot.
Garage0 ou 1 Ne modifiez aucune valeur.
ColorisCategorical Convertir en valeurs RVB et traiter en tant que données numériques.

Pour en savoir plus sur l'encodage one-hot, consultez la page Représentations vectorielles continues: données d'entrée catégorielles.

Choisir un prédicteur ou un encodeur automatique

Pour générer des représentations vectorielles continues, vous pouvez choisir un auto-encodeur ou un prédicteur. N'oubliez pas que vous avez choisi par défaut un auto-encodeur. Vous choisissez plutôt un prédicteur si des caractéristiques spécifiques de votre ensemble de données déterminent la similarité. Pour plus d'exhaustivité, examinons les deux cas.

Entraîner un prédicteur

Vous devez choisir ces caractéristiques comme étiquettes d'entraînement pour votre DNN, car elles sont importantes pour déterminer la similarité entre vos exemples. Supposons que le prix est le plus important pour déterminer la similitude entre les maisons.

Choisissez le prix comme étiquette d'entraînement, puis supprimez-le des données de caractéristiques d'entrée pour le DNN. Entraînez le DNN en utilisant toutes les autres caractéristiques en tant que données d'entrée. Pour l'entraînement, la fonction de perte est simplement la MSE entre le prix prédit et le prix réel. Pour savoir comment entraîner un DNN, consultez la page Entraîner les réseaux de neurones.

Entraîner un auto-encodeur

Pour entraîner un auto-encodeur sur notre ensemble de données, procédez comme suit:

  1. Assurez-vous que les couches cachées de l'auto-encodeur sont plus petites que les couches d'entrée et de sortie.
  2. Calculez la perte pour chaque sortie, comme décrit dans Mesure de similarité supervisée.
  3. Créez la fonction de perte en additionnant les pertes pour chaque sortie. Veillez à pondérer la perte de manière égale pour chaque caractéristique. Par exemple, comme les données de couleur sont traitées en RVB, pondérez chacune des sorties RVB au tiers.
  4. Entraînez le DNN.

Extraire les représentations vectorielles continues à partir du DNN

Après avoir entraîné votre DNN, qu'il s'agisse d'un prédicteur ou d'un encodeur automatique, extrayez la représentation vectorielle continue d'un exemple du DNN. Extrayez la représentation vectorielle continue en utilisant les données de caractéristiques de l'exemple en entrée et lisez les sorties de la couche cachée finale. Ces sorties constituent le vecteur de représentation vectorielle continue. N'oubliez pas que les vecteurs de maisons similaires doivent être plus proches les uns des autres que les vecteurs de maisons différentes.

Ensuite, vous verrez comment quantifier la similarité pour des paires d'exemples à l'aide de leurs vecteurs de représentation vectorielle continue.