Cómo realizamos la selección automática de productos similares

imagen



En artículos anteriores , hablé sobre cómo aprendimos a comparar productos de diferentes fuentes y completar una ficha de producto: características, imágenes, descripción. Y cuando se conocen los precios de los proveedores, los precios de los competidores y las características de los bienes, una continuación lógica fue la búsqueda de información sobre análogos o simplemente bienes similares en sus propiedades.



Esto se puede usar de diferentes maneras, por ejemplo, mostrar al cliente varios artículos similares en la ficha del producto, quizás le guste alguno más. Si algo está agotado, también será útil una lista de productos similares en existencia. La segunda opción es dar esta información a los empleados del call center para que puedan más rápidamente (o, en principio, poder) ofrecer análogos si el producto solicitado no está disponible, o el análogo se adapta mejor a los deseos del cliente.



¿Cómo puede saber si los productos son similares? Puede comparar las características, cuanto más emparejadas, más similares son los productos. Desafortunadamente, no funciona tan fácilmente. En la práctica, resulta que, por regla general, casi no hay productos donde se llenen todas las características. El 80% es un buen resultado. En segundo lugar, algunas características son más importantes que otras. Por ejemplo, un televisor de 65 "es completamente diferente de un televisor de 22", aunque ambos tienen 2 puertos USB. O, otro ejemplo, una caja de metal y una caja de aluminio están mucho más cerca entre sí que de plástico, aunque tienen tres significados diferentes.



Por lo tanto, para seleccionar productos similares, debemos resolver las siguientes tareas:



  1. Asignar características de peso. El tamaño de la diagonal es importante, la cantidad de puertos USB es menos importante.
  2. Determine el rango de valores de cada característica, y en él establezca la función de la distancia entre valores.
  3. Decidir una estrategia para manejar los casos en los que se conoce una característica de un producto, pero no de otro.
  4. Teniendo la distancia entre los valores de todas las características, calcule la distancia entre las mercancías.
  5. Piense en el rendimiento, calcular todos los pares de distancias tiene complejidad

    O(N2)

    Y si calcular 50 millones de distancias para 10 mil mercancías no parece un gran problema, entonces 50 mil millones para 300 mil ya es mucho.


Resolvamos estos problemas. Hasta cierto punto, será un trabajo de investigación.



Cómo determinamos los pesos de las funciones



Usamos dos ideas básicas con pesos.



  • Las características que inciden en el precio son importantes. Lo contrario no es necesariamente cierto. Por ejemplo, el color de un teléfono móvil es lo suficientemente importante, pero apenas afecta el precio.
  • Para identificar características importantes que no afectan el precio, asumimos que, en promedio, están mejor llenas.


Además, para cada categoría, asignamos pesos a todas las características. Para hacer esto, haga lo siguiente:



  1. Si la característica es numérica, entonces consideramos la correlación con el precio de Pearson.
  2. Si la enumeración es con una opción mutuamente excluyente (pero no con números), ordenamos sus elementos por el precio promedio de los bienes con este valor y calculamos la correlación con el precio de Spearman.
  3. Si se proporciona una opción múltiple, la reducimos a un conjunto de mutuamente excluyentes (sí / no), y calculamos la correlación de cada uno con el precio de Spearman. Reducimos el coeficiente resultante en función de la cantidad de opciones.
  4. Calculamos el porcentaje de valores llenos para cada una de las características y aumentamos o disminuimos su peso obtenido anteriormente.
  5. Los valores obtenidos se pueden utilizar como ponderaciones, pero en la práctica, el mejor resultado se obtiene si se vuelven a transformar de forma no lineal, conservando el orden.


Cada uno de los pasos tiene sus propios matices, por ejemplo, cómo calcular el precio si en un caso solo se conocen los precios al por menor, en el otro solo los precios al por mayor, y en el tercero tanto esos como otros. O una de las tiendas se equivocó con el precio y vende una mesita de noche al precio de un mueble de la misma serie.



¿Cómo calculamos la distancia entre mercancías?



Al elegir un algoritmo mediante el cual calcularemos la distancia entre los valores de una característica, debemos tener en cuenta cómo vamos a calcular la distancia entre mercancías, teniendo la distancia entre las características individuales y su peso. Mi intuición me dice que comience con solo una distancia en un espacio n-dimensional, es decir, la raíz cuadrada de la suma de los cuadrados de las distancias entre las características.



Además, la intuición dice que en este caso la función de la distancia entre valores debería ser distributiva, e incluso mejor, si se cumple la desigualdad del triángulo. No puedo probar la exactitud de tales requisitos, pero cumpliremos con estas condiciones.



Entonces, las siguientes funciones se pueden tomar en función de la distancia:



  • — , . , 35 , — 75 , 40 . .
  • — (, ?), . .
  • , .


Ahora sobre el rendimiento. En la práctica, resultó que en un tiempo razonable (hasta 5 minutos) podemos calcular distancias por pares entre 30 mil mercancías. Pero al mismo tiempo, en algunas categorías de productos hay más, por ejemplo, puede haber cien mil colchones en el catálogo, y en este caso estamos hablando de aumentar el tiempo empleado en 10 veces.



La optimización de este caso se ve así: ordenamos todos los productos por el valor de la característica con el mayor peso

O(Nlog(N))

Es mas rapido que

O(N2)

Luego dividimos todos los productos en grupos superpuestos (digamos, superpuestos en un 20%) y calculamos las distancias por pares dentro de cada grupo. Así, hasta 30 mil productos en una categoría, el tiempo de procesamiento aumenta a medida que

O(N2)

y a partir de 30 mil - cómo

O(Nlog(N))





resultados



Daré algunos ejemplos de los resultados de la búsqueda automática de productos similares utilizando este algoritmo (el primero de la tabla será el producto para el que estábamos buscando productos similares)













Bosch WLT24540OE

Bosch WLN24240OE

Samsung WW80K6210RW

Bosch WLT24460OE

Siemens WS12T440OE

Siemens WS12T540OE

Un tipo automático

automático

automático

automático

automático

automático

Ejecución de pie

de pie

de pie

de pie

de pie

de pie

Cargando ropa frontal

frontal

frontal

frontal

frontal

frontal

Carga máxima 7

7

ocho

7

7

7

Color blanco

blanco

blanco

blanco

blanco

blanco

Clase energética A +++

A +++

A +++

A +++

A +++

A +++

Clase de Spinning segundo

segundo

segundo

segundo

segundo

segundo

Numero de programas catorce

quince

catorce

quince



catorce

Color de trama plata

blanco

el negro

plata

plata

plata

Velocidad máxima de centrifugado 1200

1200

1200

1200

1200

1200

Indiana tiempo hasta el final del programa +



+

+

+



El consumo de energía 2300,00





2300,00

2300,00



Control de desequilibrio +

+

+

+

+

+

Cuerpo material el plastico

el plastico

el plastico

el plastico

el plastico

el plastico

Longitud del cable de alimentación 1,75

1,75









Incrustar









debajo de la encimera

Numero de tambores

1







1

Seleccionar la velocidad de centrifugado +

+

+

+

+

+

Cancelar giro +

+

+

+

+

+

Generador de burbujas



+







Todos los programas sintéticos

enjuague adicional

enjuague adicional

enjuague adicional

enjuague adicional

Lavado ecológico

Fecha de lanzamiento al mercado 2016

2016

2016

2015





Consumo de electricidad por ciclo 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

-











Estos ejemplos muestran que, en principio, el algoritmo hizo un buen trabajo y seleccionó en el primer caso lavadoras automáticas autónomas con carga horizontal de la misma profundidad con aproximadamente la misma carga máxima (no soy un gran especialista en lavadoras, pero son estas características las que me parecen importantes). En el segundo caso, también lavadoras automáticas independientes, pero con carga superior. El ancho y la profundidad de las opciones propuestas son los mismos. En ambos casos no se ofrecieron máquinas activadoras o empotrables, así como máquinas compactas de pared, aunque sí en catálogo.



Lo más probable es que un especialista en electrodomésticos grandes haya hecho un mejor trabajo (discutimos los resultados en diferentes categorías con los vendedores, aprobaron la mayoría de las opciones, pero también sugirieron opciones que no incluimos en el resultado). Al probar el resultado por mí mismo como comprador, encuentro útiles estas recomendaciones, no encontré errores graves en las expectativas.



Así, luego de la implementación de este algoritmo, teniendo como input solo el nombre del producto, podemos buscarlo automáticamente entre proveedores y competidores, completar sus características, seleccionar imágenes e incluso ofrecer análogos. Esto simplifica enormemente el trabajo de los administradores de contenido y de ventas.



All Articles