Em artigos anteriores , falei sobre como aprendemos a comparar produtos de diferentes fontes e preencher um cartão de produto - características, imagens, descrição. E quando os preços dos fornecedores, os preços dos concorrentes e as características dos bens são conhecidos, uma continuação lógica foi a busca por informações sobre análogos ou bens que são simplesmente semelhantes em suas propriedades.
Isso pode ser usado de diferentes maneiras, por exemplo, mostrar ao cliente vários itens semelhantes no cartão do produto, talvez ele goste de mais algum. Se algo estiver fora de estoque, uma lista de produtos semelhantes em estoque também será útil. A segunda opção é dar esta informação aos funcionários do call center para que eles possam rapidamente (ou, a princípio, poder) oferecer os analógicos caso o produto solicitado não esteja disponível, ou o analógico seja mais adequado aos desejos do cliente.
Como você pode saber se os produtos são semelhantes? Você pode comparar as características, quanto mais combinadas, mais semelhantes são os produtos. Infelizmente, não funciona tão facilmente. Na prática, verifica-se que, via de regra, quase não existem produtos onde todas as características são preenchidas. 80% é um bom resultado. Em segundo lugar, algumas características são mais importantes do que outras. Por exemplo, uma TV de 65 polegadas é completamente diferente de uma TV de 22 polegadas, embora ambas tenham 2 portas USB. Ou, outro exemplo, uma caixa de metal e uma caixa de alumínio são muito mais próximos um do outro do que de plástico, embora tenham três significados diferentes.
Assim, para selecionar produtos semelhantes, precisamos resolver as seguintes tarefas:
- Atribua características de peso. O tamanho da diagonal é importante, o número de portas USB é menos importante.
- Determine a faixa de valores de cada característica, e nela defina a função da distância entre os valores.
- Decida uma estratégia para lidar com casos em que uma característica é conhecida para um produto, mas não para outro.
- Tendo a distância entre os valores de todas as características, calcule a distância entre as mercadorias.
- Pense no desempenho, calcular todos os pares de distância tem complexidade E se calcular 50 milhões de distâncias para 10 mil mercadorias não parece um grande problema, então 50 bilhões para 300 mil já é muito.
Vamos resolver esses problemas. Até certo ponto, este será um trabalho de pesquisa.
Como determinamos os pesos dos recursos
Usamos duas idéias básicas com pesos.
- As características que afetam o preço são importantes. O contrário não é necessariamente verdadeiro. Por exemplo, a cor de um telefone celular é importante o suficiente, mas dificilmente afeta o preço.
- Para identificar características importantes que não afetam o preço, presumimos que sejam, em média, mais bem preenchidas.
Além disso, para cada categoria, atribuímos pesos a todas as características. Para fazer isso, faça o seguinte:
- Se a característica for numérica, consideramos a correlação com o preço da Pearson.
- Se a enumeração tem uma escolha mutuamente exclusiva (mas não números), então ordenamos seus elementos pelo preço médio dos bens com esse valor e calculamos a correlação com o preço de Spearman.
- Se a escolha múltipla for fornecida, então a reduzimos a um conjunto mutuamente exclusivo (sim / não) e calculamos a correlação de cada um com o preço de Spearman. Reduzimos o coeficiente resultante dependendo do número de opções.
- Calculamos a porcentagem de valores preenchidos para cada uma das características e aumentamos ou diminuímos seu peso obtido anteriormente.
- Os valores obtidos podem ser usados como pesos, mas na prática o melhor resultado é obtido se eles forem novamente transformados de forma não linear, preservando a ordem.
Cada uma das etapas tem suas próprias nuances, por exemplo, como calcular o preço, se em um caso apenas os preços de varejo são conhecidos, no outro - apenas os preços de atacado, e no terceiro, ambos. Ou uma das lojas errou no preço e vende uma mesinha de cabeceira ao preço de um armário da mesma série.
Como calculamos a distância entre as mercadorias
Escolhendo o algoritmo pelo qual calcularemos a distância entre os valores da característica, precisamos ter em mente como vamos calcular a distância entre as mercadorias, tendo a distância entre as características individuais e seu peso. Minha intuição me diz para começar com apenas uma distância no espaço n-dimensional, ou seja, a raiz quadrada da soma dos quadrados das distâncias entre as características.
Além disso, a intuição diz que, neste caso, a função da distância entre os valores deve ser distributiva, e ainda melhor, se a desigualdade do triângulo for mantida. Não posso provar a exatidão de tais requisitos, mas cumpriremos essas condições.
Então, as seguintes funções podem ser tomadas em função da distância:
- — , . , 35 , — 75 , 40 . .
- — (, ?), . .
- , .
Agora, sobre desempenho. Na prática, descobriu-se que em um tempo razoável (até 5 minutos) podemos calcular distâncias aos pares entre 30 mil mercadorias. Mas ao mesmo tempo, em algumas categorias de produtos existem mais, por exemplo, pode haver cem mil colchões no catálogo, e neste caso estamos falando em aumentar o tempo gasto em 10 vezes.
A otimização deste caso é assim: nós ordenamos todos os produtos pelo valor da característica com o maior peso
Isso é mais rápido do que
Em seguida, dividimos todos os produtos em grupos sobrepostos (digamos, sobrepostos em 20%) e calculamos as distâncias aos pares dentro de cada grupo. Assim, até 30 mil produtos em uma categoria, o tempo de processamento aumenta conforme
e a partir de 30 mil - como
resultados
Darei vários exemplos de resultados da pesquisa automática de produtos semelhantes usando esse algoritmo (o primeiro na tabela será o produto para o qual estávamos procurando produtos semelhantes)
|
|
|
|
|
|
|
| Bosch WLT24540OE
|
Bosch WLN24240OE
|
Samsung WW80K6210RW
|
Bosch WLT24460OE
|
Siemens WS12T440OE
|
Siemens WS12T540OE
|
|
| Um tipo | automático
|
automático
|
automático
|
automático
|
automático
|
automático
|
| Execução | autônomo
|
autônomo
|
autônomo
|
autônomo
|
autônomo
|
autônomo
|
| Carregando roupa | frontal
|
frontal
|
frontal
|
frontal
|
frontal
|
frontal
|
| Carga máxima | 7
|
7
|
oito
|
7
|
7
|
7
|
| Cor | branco
|
branco
|
branco
|
branco
|
branco
|
branco
|
| Classe energética | A +++
|
A +++
|
A +++
|
A +++
|
A +++
|
A +++
|
| Aula de spin | B
|
B
|
B
|
B
|
B
|
B
|
| Número de programas | quatorze
|
quinze
|
quatorze
|
quinze
|
|
quatorze
|
| Cor de hachura | prata
|
branco
|
o preto
|
prata
|
prata
|
prata
|
| Velocidade máxima de giro | 1200
|
1200
|
1200
|
1200
|
1200
|
1200
|
| Ind. tempo até o final do programa | +
|
|
+
|
+
|
+
|
|
| Consumo de energia | 2300,00
|
|
|
2300,00
|
2300,00
|
|
| Controle de desequilíbrio | +
|
+
|
+
|
+
|
+
|
+
|
| Material do corpo | plástico
|
plástico
|
plástico
|
plástico
|
plástico
|
plástico
|
| Comprimento do cabo de alimentação | 1,75
|
1,75
|
|
|
|
|
| Embedding |
|
|
|
|
|
sob a bancada
|
| Número de tambores |
|
1
|
|
|
|
1
|
| Selecionando a velocidade de rotação | +
|
+
|
+
|
+
|
+
|
+
|
| Cancelando rotação | +
|
+
|
+
|
+
|
+
|
+
|
| Gerador de bolhas |
|
|
+
|
|
|
|
| Todos os programas | sintéticos
|
enxágue adicional
|
enxágue adicional
|
enxágue adicional
|
enxágue adicional
|
lavagem ecológica
|
| Data de lançamento no mercado | 2016
|
2016
|
2016
|
2015
|
|
|
| Consumo de eletricidade 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
|
|
| - |
|
|
|
|
|
Estes exemplos mostram que, em princípio, o algoritmo fez um bom trabalho e selecionou no primeiro caso máquinas de lavar automáticas autônomas com carregamento horizontal da mesma profundidade com aproximadamente a mesma carga máxima (não sou um grande especialista em máquinas de lavar, mas são essas características que me parecem importantes). No segundo caso - também máquinas de lavar automáticas autônomas, mas com carregamento superior. A largura e a profundidade das opções propostas são as mesmas. Em ambos os casos não foram oferecidos máquinas ativadoras ou embutidas, bem como máquinas compactas de parede, embora estejam no catálogo.
Provavelmente, um especialista em eletrodomésticos de grande porte poderia ter feito o trabalho melhor (discutimos os resultados em diferentes categorias com os vendedores, eles aprovaram a maioria das opções, mas também sugeriram opções que não incluímos no resultado). Ao experimentar o resultado para mim como comprador, considero úteis essas recomendações, não encontrei falhas grosseiras nas expectativas.
Assim, após a implementação deste algoritmo, tendo apenas o nome do produto como entrada, podemos localizá-lo automaticamente em fornecedores e concorrentes, preencher suas características, selecionar imagens e até oferecer análogos. Isso simplifica muito o trabalho dos gerentes de conteúdo e gerentes de vendas.