Mieux connaître l‘offre immobilière avec Word2vec

Illustration des applications de la technique du plongement lexical chez SeLoger

Anindya Roy
SeLoger Datascience and Analytics

--

Le plongement lexical (en anglais, word embedding) est une manière de représenter des mots comme des vecteurs, typiquement dans un espace de quelques centaines de dimensions. Le vecteur représentant chaque mot est appris via un algorithme itératif, à partir d’une grande quantité de texte. L’algorithme essaie de positionner les vecteurs dans l’espace de manière à rapprocher les mots sémantiquement proches, et éloigner les mots sémantiquement distants.

Chez SeLoger, la technique du plongement lexical est utilisée pour mieux comprendre l’offre immobilière afin d’adapter les produits et les services. Dans cet article, nous en illustrons quelques applications en utilisant l’un des algorithmes de plongement lexical les plus célèbres : Word2vec.

1. L’algorithme Word2Vec

1.a. Un peu de théorie

L’algorithme Word2vec peut se résumer comme suit :

  • D’abord, chaque mot w du vocabulaire est associé à un vecteur initialisé aléatoirement :
  • Pour chaque mot w dans chaque phrase du corpus d’entraînement, une fenêtre de mots c autour du mot, dit contexte, est pris en compte. Typiquement, le contexte est de 5 à 10 mots.
  • Soit P(D = 1| c, w), la probabilité qu’un mot c soit dans le contexte d’un autre mot w. P(D = 1| c, w) est défini comme la sigmoïde du produit scalaire des vecteurs des deux mots :
  • A l’inverse, soit P(D = 0| c, w), la probabilité qu’un mot c ne soit pas dans le contexte d’un autre mot w. P(D = 0| c, w) est défini comme :
  • Ensuite, une fonction d’objectif d’optimisation L(V) est définie comme il suit :

à savoir la différence entre :

  1. la somme des logarithmes des probabilités P(D=1 | c, w) pour tous les mots w dans le corpus et tous les mots c dans leurs contextes, soit l’ensemble A de paires (w, c), et,
  2. la somme des logarithmes des probabilités P(D=0 | c′, w) pour tous les mots w dans le corpus et un échantillon aléatoire de mots chors de leur contextes, soit l’ensemble B de paires (w,c′). Cette approche s’appelle negative sampling ou l’échantillonnage négatif.
  • Le symbole V indique l’ensemble de tous les vecteurs v des mots w qui représente notre modèle et dont on essaie ici de chercher les valeurs optimales afin de maximiser la fonction d’objectif L(V).
  • L’approche de la descente de gradient (plus précisément, montée de gradient dans notre cas) est utilisé pour trouver les valeurs optimales de tous les vecteurs v correspondants aux mots w.
  • En faisant cela, on trouve les vecteurs qui rapproche les mots qui sont sémantiquement proches et qui éloigne les mots sémantiquement distants. C’est parce que les mots sémantiquement proches se trouvent souvent dans le même contexte.
  • Ces vecteurs sont les plongements lexicaux.

On peut utiliser la librairie Python open source gensim pour l'implémentation de Word2vec .

1.b. En pratique

L’algorithme word2vec est appliqué sur des descriptifs textes tirés des annonces immobilières dans notre base. Voici un exemple :

Villa de 110m², 4 chambres, 3 salles de bain. Beaucoup de charme. Au calme absolu, proche du centre-ville et de toutes commodités, cour intérieure, terrasse de 30m². Belle exposition Sud, vue panoramique sur mer.

Or, un descriptif texte brut est une séquence de caractères tandis que l’algorithme Word2vec s’applique sur des séquences de mots isolés. Du coup, les descriptifs doivent être d’abord découpés en mots isolés dits tokens. Cette approche dite tokenisation peut se faire de différentes façons selon le cas. Une tokenisation de base peut être implémentée comme suit :

Voici la sortie après la tokenisation :

['Villa', 'de', 'm', 'chambres', 'salles', 'de', 'bain', 'Beaucoup', 'de', 'charme', 'Au', 'calme', 'absolu', 'proche', 'du', 'centre', 'ville', 'et', 'de', 'toutes', 'commodites', 'cour', 'interieure', 'terrasse', 'de', 'm', 'Belle', 'exposition', 'Sud', 'vue', 'panoramique', 'sur', 'mer']

Soit ad_data représente la liste des descriptifs bruts et text_datala liste des déscriptifs tokénisés.

Les plongements lexicaux sont appris par l’algorithme Word2vec à partir de ces descriptifs tokénisés. L’ensemble de ces plongements lexicaux est aussi appelé le modèle Word2vec .

Le modèle peut être persisté sur disque :

2. Application sur les annonces immobilières

Le modèle ainsi créé permet d’explorer les relations sémantiques entre différentes notions spécifiques à l’immobilier : trouver des synonymes, qualifier un concept, trouver un intrus parmi une liste de concepts.

2.a. Trouver des synonymes

En retrouvant les mots les plus proches dans l’espace de plongements d’un mot donné en entrée, le modèle permet d’identifier des synonymes. Par exemple, pour le mot maison :

[('propriete', 0.7699100971221924),
('demeure', 0.7666690349578857),
('longere', 0.7325247526168823),
('batisse', 0.714929461479187),
('villa', 0.7136778831481934)]

Les mots les plus proches sont tous des types de maisons : le modèle a appris à rapprocher ces notions.

Ensuite, testons meulière, un type de maison spécifique qu’on rencontre particulièrement en Île-de-France :

Source: https://commons.wikimedia.org/wiki/File:23_Rue_Chesneau_Saint-R%C3%A9my-l%C3%A8s-Chevreuse_2.jpg
[('quercynoise', 0.8929086923599243),
('vigneronne', 0.8886078596115112),
('charentaise', 0.8866457939147949),
('agricoles', 0.8861927390098572),
('matha', 0.8771463632583618)]

Le modèle renvoie d’autres types de maisons (“quercynoise”, “vigneronne”, “charentaise”, …) dont les caractéristiques (pierre apparente, moellons, …) ne sont pas sans rappeler les meulières :

  1. Maison quercynoise
Source: https://commons.wikimedia.org/wiki/File%3AMaison_quercynoise_au_bourg_de_Mayrac.jpg

2. Maison vigneronne

Source: https://commons.wikimedia.org/wiki/File%3AChevigney%2C_vieille_maison_vigneronne.jpg

3. Maison charentaise

Source: https://commons.wikimedia.org/wiki/File%3ASmc_maison_charentaise.JPG

Au-delà de la notion de synonyme, le modèle est parvenu à capter la notion de composant (la pierre de taille par exemple) et a appris à rapprocher les concepts partageant un même composant.

2.b. Qualifier un concept

Ensuite, intéressons nous à une partie spécifique de la maison, par exemple la terrasse.

Il nous renvoie d’autres parties de la maison qui ressemblent à une terrasse.

[('loggia',  0.7683628797531128),
('balcon', 0.765031099319458),
('cour', 0.7153904438018799),
('veranda', 0.6810243725776672),
('donnant', 0.6466798186302185)]

Une autre partie de la maison : piscine

Le modèle trouve des mots ou concepts qui ont des caractéristiques en commun avec une piscine :

[('chauffee',   0.8212169408798218),
('pool', 0.7625634670257568),
('interieure', 0.7517303824424744),
('couverte', 0.7392628192901611),
('jacuzzi', 0.7313171625137329)]

2.c. Adjectifs

Ensuite, testons un adjectif, ensoleillé.

[('clair',       0.7369235157966614),
('agreable', 0.6812050342559814),
('entretenu', 0.6783103942871094),
('absolu', 0.6680794358253479),
('ensoleillee', 0.6667557954788208)]

et un autre adjectif, panoramique :

[('degagee',    0.9124640226364136),
('imprenable', 0.8999924659729004),
('dominante', 0.8524136543273926),
('mer', 0.8523256778717041),
('splendide', 0.7981457710266113)]

2.d. Trouver l’intrus

Ici, on teste si le modèle peut trouver le mot qui ne convient pas avec les autres mots. D’abord, on lui donne quelques parties de la maison :

'piscine'

Le modèle renvoie piscine, une partie extérieure de la maison, alors que les autres sont les parties intérieures.

Quelques villes:

'colmar'

Le modèle retourne alors une petite ville Colmar qui se distingue parmi les autres villes plus grandes.

3. Conclusion et perspectives

Cet article donne un premier aperçu du potentiel de l’approche par plongement lexical pour identifier des relations entre concepts : synonyme, qualificatif, intrus, …

Dans une app mobile ou sur un site web, c’est aussi l’un des prérequis pour optimiser un moteur de recherche en suggérant automatiquement des mots clés.

Dans le domaine de l’immobilier, connaître les relations entre des types, des parties ou des caractéristiques d’un bien fait partie des fondamentaux pour mieux estimer un marché ou un prix de vente.

La méthode Word2vec est une approche qui a la particularité de ne pas nécessiter de travail d’annotation manuelle préalable. En contrepartie, il est indispensable de disposer d’un corpus d’entraînement suffisamment grand.

La data science dans le domaine de l’immobilier vous intéresse ? Consultez nous offres d’emploi ici : http://www.groupe-seloger.com/rejoignez-laventure-seloger/offres-demploi/

Remerciements

Je tiens à remercier Julien Giraud, Charles Sauthier, Florent Guiocheau et victor mazzeo pour leur commentaires constructifs.

Bibliographie

--

--