Dans les articles précédents , j'ai parlé de la façon dont nous avons appris à comparer des produits de différentes sources et à remplir une fiche produit - caractéristiques, images, description. Et lorsque les prix des fournisseurs, les prix des concurrents et les caractéristiques des produits sont connus, une suite logique a été la recherche d'informations sur des analogues ou des produits qui sont simplement similaires dans leurs propriétés.
Cela peut être utilisé de différentes manières, par exemple, montrer au client plusieurs positions similaires sur la fiche produit, peut-être qu'il en aimera une de plus. Si quelque chose est en rupture de stock, une liste de produits similaires en stock sera également utile. La deuxième option est de donner ces informations aux employés du centre d'appels afin qu'ils puissent rapidement (ou, en principe, pouvoir) proposer des analogues si le produit demandé n'est pas disponible, ou si l'analogique est mieux adapté aux souhaits du client.
Comment savoir si les produits sont similaires? Vous pouvez comparer les caractéristiques, plus les produits sont assortis, plus les produits sont similaires. Malheureusement, cela ne fonctionne pas aussi facilement. En pratique, il s'avère qu'en règle générale, il n'y a presque pas de produits dont toutes les caractéristiques sont remplies. 80% est un bon résultat. Deuxièmement, certaines caractéristiques sont plus importantes que d'autres. Par exemple, un téléviseur de 65 "est complètement différent d'un téléviseur de 22", bien que les deux disposent de 2 ports USB. Ou, autre exemple, un boîtier en métal et un boîtier en aluminium sont beaucoup plus proches l'un de l'autre que du plastique, bien qu'ils aient trois significations différentes.
Ainsi, pour sélectionner des produits similaires, nous devons résoudre les tâches suivantes:
- Attribuez des caractéristiques de poids. La taille diagonale est importante, le nombre de ports USB est moins important.
- Déterminez la plage de valeurs de chaque caractéristique, puis définissez la fonction de la distance entre les valeurs.
- Décidez d'une stratégie pour traiter les cas où une caractéristique est connue pour un produit, mais pas pour un autre.
- Ayant la distance entre les valeurs de toutes les caractéristiques, calculez la distance entre les marchandises.
- Pensez aux performances, le calcul de toutes les paires de distances est complexe Et si calculer 50 millions de distances pour 10 000 marchandises ne semble pas être un gros problème, alors 50 milliards pour 300 000, c'est déjà beaucoup.
Résolvons ces problèmes. Dans une certaine mesure, ce sera un travail de recherche.
Comment nous déterminons les poids des caractéristiques
Nous avons utilisé deux idées de base avec des poids.
- Les caractéristiques qui affectent le prix sont importantes. L'inverse n'est pas nécessairement vrai. Par exemple, la couleur d'un téléphone portable est assez importante, mais elle n'affecte guère le prix.
- Afin d'identifier les caractéristiques importantes qui n'affectent pas le prix, nous supposons qu'elles sont, en moyenne, mieux remplies.
De plus, pour chaque catégorie, nous attribuons des pondérations à toutes les caractéristiques. Pour ce faire, procédez comme suit:
- Si la caractéristique est numérique, alors nous considérons la corrélation avec le prix Pearson.
- Si l'énumération est avec un choix mutuellement exclusif (mais pas des nombres), alors nous ordonnons ses éléments par le prix moyen des marchandises avec cette valeur, et nous calculons la corrélation avec le prix Spearman.
- Si le choix multiple est fourni, alors nous le réduisons à un ensemble de mutuellement exclusifs (oui / non), et nous calculons la corrélation de chacun avec le prix selon Spearman. Nous réduisons le coefficient résultant en fonction du nombre d'options.
- Nous calculons le pourcentage de valeurs remplies pour chacune des caractéristiques et augmentons ou diminuons son poids obtenu précédemment.
- Les valeurs obtenues peuvent être utilisées comme poids, mais en pratique, le meilleur résultat est obtenu si elles sont à nouveau transformées non linéairement, en préservant l'ordre.
Chacune des étapes a ses propres nuances, par exemple, comment calculer le prix si dans un cas seuls les prix de détail sont connus, dans l'autre - uniquement les prix de gros et dans le troisième, les deux. Ou l'un des magasins s'est trompé sur le prix et vend une table de chevet au prix d'un meuble de la même série.
Comment calculons-nous la distance entre les marchandises
En choisissant un algorithme par lequel nous calculerons la distance entre les valeurs d'une caractéristique, nous devons garder à l'esprit comment nous allons calculer la distance entre les marchandises, en ayant la distance entre les caractéristiques individuelles et leur poids. Mon intuition me dit de commencer par juste une distance dans un espace à n dimensions, c'est-à-dire la racine carrée de la somme des carrés des distances entre les caractéristiques.
De plus, l'intuition dit que dans ce cas, la fonction de la distance entre les valeurs devrait être distributive, et même mieux, si l'inégalité triangulaire est remplie. Je ne peux pas prouver l'exactitude de ces exigences, mais nous nous conformerons à ces conditions.
Ensuite, les fonctions suivantes peuvent être prises en fonction de la distance:
- — , . , 35 , — 75 , 40 . .
- — (, ?), . .
- , .
Maintenant sur la performance. En pratique, il s'est avéré que dans un temps raisonnable (jusqu'à 5 minutes), nous pouvons calculer des distances par paire entre 30 000 marchandises. Mais dans le même temps, dans certaines catégories de produits, il y en a plus, par exemple, il peut y avoir cent mille matelas dans le catalogue, et dans ce cas, nous parlons d'augmenter le temps passé 10 fois.
L'optimisation de ce boîtier ressemble à ceci: nous commandons tous les produits en fonction de la valeur de la caractéristique avec le poids le plus élevé
C'est plus rapide que
Ensuite, nous divisons tous les produits en groupes qui se chevauchent (par exemple, se chevauchant de 20%), et calculons les distances par paires au sein de chaque groupe. Ainsi, jusqu'à 30000 produits dans une catégorie, le temps de traitement augmente à mesure que
et à partir de 30 mille - comment
résultats
Je vais donner plusieurs exemples de résultats de recherche automatique de produits similaires à l'aide de cet algorithme (le premier du tableau sera le produit pour lequel nous recherchions des produits similaires)
|
|
|
|
|
|
|
Bosch WLT24540OE
|
Bosch WLN24240OE
|
Samsung WW80K6210RW
|
Bosch WLT24460OE
|
Siemens WS12T440OE
|
Siemens WS12T540OE
|
|
Un type | automatique
|
automatique
|
automatique
|
automatique
|
automatique
|
automatique
|
Exécution | Sur pied
|
Sur pied
|
Sur pied
|
Sur pied
|
Sur pied
|
Sur pied
|
Chargement du linge | frontal
|
frontal
|
frontal
|
frontal
|
frontal
|
frontal
|
Charge maximale | sept
|
sept
|
huit
|
sept
|
sept
|
sept
|
Couleur | blanc
|
blanc
|
blanc
|
blanc
|
blanc
|
blanc
|
Classe énergétique | A +++
|
A +++
|
A +++
|
A +++
|
A +++
|
A +++
|
Cours de spinning | B
|
B
|
B
|
B
|
B
|
B
|
Nombre de programmes | Quatorze
|
quinze
|
Quatorze
|
quinze
|
|
Quatorze
|
Couleur des hachures | argent
|
blanc
|
le noir
|
argent
|
argent
|
argent
|
Vitesse d'essorage maximale | 1200
|
1200
|
1200
|
1200
|
1200
|
1200
|
Indiana le temps jusqu'à la fin du programme | +
|
|
+
|
+
|
+
|
|
Consommation d'énergie | 2300,00
|
|
|
2300,00
|
2300,00
|
|
Contrôle des déséquilibres | +
|
+
|
+
|
+
|
+
|
+
|
Matériau du corps | Plastique
|
Plastique
|
Plastique
|
Plastique
|
Plastique
|
Plastique
|
Longueur du cordon d'alimentation | 1,75
|
1,75
|
|
|
|
|
Intégration |
|
|
|
|
|
sous le comptoir
|
Nombre de tambours |
|
1
|
|
|
|
1
|
Sélection de la vitesse d'essorage | +
|
+
|
+
|
+
|
+
|
+
|
Annuler l'essorage | +
|
+
|
+
|
+
|
+
|
+
|
Générateur de bulles |
|
|
+
|
|
|
|
Tous les programmes | synthétiques
|
rinçage supplémentaire
|
rinçage supplémentaire
|
rinçage supplémentaire
|
rinçage supplémentaire
|
Éco-lavage
|
Date de lancement sur le marché | 2016
|
2016
|
2016
|
2015
|
|
|
Consommation d'électricité par cycle | 0,91
|
0,91
|
|
0,96
|
0,91
|
0,91
|
38,00
|
38,00
|
|
38,00
|
38,00
|
38,00
|
|
|
|
8100,00
|
|
|
8550,00
|
|
A
|
A
|
A
|
A
|
A
|
A
|
|
+
|
+
|
+
|
+
|
+
|
+
|
|
— | — |
|
— | — | — | |
56
|
56
|
56
|
56
|
|
56
|
|
77
|
78
|
75
|
78
|
76
|
77
|
|
— | — | — | — | — | — | |
— | — | — | — | — | — | |
|
|
|
|
|
165°
|
|
32,00
|
|
|
32,00
|
32,00
|
32,00
|
|
|
— | — | — | — | +
|
|
— | — | — | — | — | — | |
|
46,00
|
|
46,00
|
46,00
|
46,00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
+
|
+
|
+
|
+
|
+
|
|
|
|
|
— |
|
+
|
|
— |
|
|
— |
|
|
|
+
|
+
|
|
|
+
|
+
|
|
+
|
|
|
|
+
|
+
|
|
+
|
+
|
|
|
|
+
|
|
+
|
+
|
+
|
+
|
+
|
+
|
|
+
|
+
|
+
|
+
|
+
|
+
|
|
+
|
+
|
+
|
+
|
+
|
+
|
|
+
|
|
|
— |
|
+
|
|
|
|
|
|
|
— | |
|
|
|
|
|
|
|
84,80
|
84,80
|
85,00
|
84,80
|
84,80
|
84,80
|
|
59,80
|
59,80
|
60,00
|
59,80
|
59,80
|
60,00
|
|
44,50
|
44,60
|
45,60
|
44,40
|
44,60
|
44,60
|
|
48,60
|
48,60
|
|
48,60
|
47,40
|
|
|
65,00
|
63,00
|
67,00
|
64,00
|
65,00
|
63,00
|
|
- |
|
|
|
|
|
|
|
|
|
|
|
|
Hotpoint-Ariston WMTF 701 H CIS
|
Hotpoint-Ariston WMTL 601 L CIS
|
Gorenje WT62093 468938
|
Whirlpool AWE 7515/1
|
Zanussi ZWY51004WA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7
|
6
|
6
|
5.5
|
5.5
|
|
|
|
|
|
|
|
A+
|
A+
|
A+
|
A+
|
A+
|
|
C
|
C
|
C
|
C
|
C
|
|
18
|
18
|
18
|
11
|
|
|
|
|
|
|
|
|
1000
|
1000
|
900
|
1000
|
1000
|
|
2100,00
|
2100,00
|
|
2100,00
|
|
|
|
+
|
+
|
+
|
+
|
|
|
|
|
|
|
|
|
|
|
1
|
|
|
|
+
|
+
|
+
|
+
|
|
|
+
|
+
|
+
|
+
|
|
|
|
|
|
|
|
1,18
|
|
1,02
|
0,93
|
|
|
50,00
|
|
48,00
|
48,00
|
|
|
|
|
|
8674,00
|
|
|
A
|
A
|
A
|
A
|
A
|
|
— | — | — |
|
— | |
59
|
59
|
59
|
59
|
58
|
|
75
|
76
|
76
|
76
|
75
|
|
— | — | — |
|
— | |
— | — | — | — | — | |
|
|
|
|
|
|
— | — | — | — |
|
|
|
|
|
— |
|
|
|
|
|
42,00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
+
|
+
|
+
|
|
— | — | — | — |
|
|
A
|
A
|
|
|
|
|
|
+
|
|
+
|
|
|
|
|
|
+
|
|
|
+
|
+
|
+
|
+
|
+
|
|
+
|
+
|
+
|
+
|
|
|
— |
|
|
— |
|
|
— | — | — |
|
|
|
90,00
|
90,00
|
85,00
|
90,00
|
89,00
|
|
40,00
|
40,00
|
40,00
|
40,00
|
40,00
|
|
60,00
|
60,00
|
60,00
|
60,00
|
60,00
|
|
|
58,00
|
58,00
|
58,00
|
58,00
|
|
- |
|
|
|
|
|
Ces exemples montrent que, en principe, l'algorithme a fait du bon travail et a sélectionné dans le premier cas des machines à laver automatiques autonomes à chargement horizontal de même profondeur avec approximativement la même charge maximale (je ne suis pas un grand spécialiste des machines à laver, mais ce sont ces caractéristiques qui me semblent importantes). Dans le second cas - également des machines à laver automatiques autonomes, mais avec chargement par le haut. La largeur et la profondeur des options proposées sont les mêmes. Dans les deux cas, les activateurs ou les machines intégrées n'étaient pas proposés, ainsi que les machines compactes murales, bien qu'elles soient dans le catalogue.
Il est fort probable qu'un spécialiste du gros électroménager aurait pu faire un meilleur travail (nous avons discuté des résultats dans différentes catégories avec les vendeurs, ils ont approuvé la plupart des options, mais également suggéré des options que nous n'avons pas incluses dans le résultat). En essayant le résultat pour moi-même en tant qu'acheteur, je trouve ces recommandations utiles, je n'ai pas trouvé de grosses lacunes dans les attentes.
Ainsi, après la mise en œuvre de cet algorithme, n'ayant que le nom du produit en entrée, on peut le trouver automatiquement auprès des fournisseurs et concurrents, renseigner ses caractéristiques, sélectionner des images et même proposer des analogues. Cela simplifie grandement le travail des responsables de contenu et des responsables des ventes.