Pada artikel sebelumnya , saya berbicara tentang bagaimana kami belajar bagaimana membandingkan produk dari sumber yang berbeda dan mengisi kartu produk - karakteristik, gambar, deskripsi. Dan ketika harga pemasok, harga pesaing dan karakteristik barang diketahui, kelanjutan logisnya adalah mencari informasi tentang analog atau sekadar barang serupa di propertinya.
Ini dapat digunakan dengan cara yang berbeda, misalnya, menunjukkan kepada pelanggan beberapa posisi yang sama pada kartu produk, mungkin dia akan menyukai beberapa lagi. Jika ada sesuatu yang kehabisan stok, daftar produk serupa dalam stok juga akan berguna. Pilihan kedua adalah memberikan informasi ini kepada karyawan pusat panggilan sehingga mereka dapat dengan cepat (atau, pada prinsipnya, dapat) menawarkan analog jika produk yang diminta tidak tersedia, atau analog lebih sesuai dengan keinginan klien.
Bagaimana Anda bisa tahu apakah produknya serupa? Anda bisa membandingkan karakteristiknya, semakin cocok, semakin mirip produknya. Sayangnya, ini tidak bekerja semudah itu. Dalam praktiknya, ternyata, sebagai aturan, hampir tidak ada produk yang diisi semua karakteristiknya. 80% adalah hasil yang bagus. Kedua, beberapa karakteristik lebih penting daripada yang lain. Misalnya, TV 65 "sama sekali berbeda dari TV 22", meskipun keduanya memiliki 2 port USB. Atau, contoh lain, casing logam dan casing aluminium lebih dekat satu sama lain dibandingkan dengan plastik, meskipun memiliki tiga arti yang berbeda.
Jadi, untuk memilih produk serupa, kita perlu menyelesaikan tugas-tugas berikut:
- Tetapkan karakteristik bobot. Ukuran diagonal itu penting, jumlah port USB kurang penting.
- Tentukan range nilai masing-masing karakteristik, dan di atasnya diatur fungsi jarak antar nilai.
- Tentukan strategi untuk menangani kasus ketika karakteristik diketahui untuk satu produk, tetapi tidak untuk produk lainnya.
- Memiliki jarak antar nilai semua karakteristik, hitung jarak antar barang.
- Pikirkan tentang kinerja, menghitung semua pasangan jarak memiliki kerumitan Dan jika menghitung 50 juta jarak untuk 10 ribu barang sepertinya bukan masalah besar, maka 50 miliar untuk 300 ribu sudah banyak.
Mari kita selesaikan masalah ini. Untuk beberapa hal, ini akan menjadi pekerjaan penelitian.
Bagaimana Kami Menentukan Bobot Fitur
Kami menggunakan dua ide dasar dengan bobot.
- Karakteristik yang mempengaruhi harga itu penting. Kebalikannya belum tentu benar. Misalnya, warna ponsel memang cukup penting, tetapi hampir tidak mempengaruhi harga.
- Untuk mengidentifikasi karakteristik penting yang tidak memengaruhi harga, kami berasumsi bahwa karakteristik tersebut, rata-rata, diisi dengan lebih baik.
Selanjutnya, untuk setiap kategori, kami memberikan bobot untuk semua karakteristik. Untuk melakukan ini, lakukan hal berikut:
- Jika karakteristiknya numerik, maka kami mempertimbangkan korelasi dengan harga Pearson.
- Jika pencacahan adalah dengan pilihan yang saling eksklusif (tetapi bukan angka), maka kami memesan elemennya dengan harga rata-rata barang dengan nilai ini, dan kami menghitung korelasi dengan harga Spearman.
- Jika ada pilihan ganda, maka kami menguranginya menjadi satu set yang saling eksklusif (ya / tidak), dan kami menghitung korelasi masing-masing dengan harga menurut Spearman. Kami mengurangi koefisien yang dihasilkan tergantung pada jumlah opsi.
- Kami menghitung persentase nilai yang diisi untuk masing-masing karakteristik dan menambah atau mengurangi bobotnya yang diperoleh sebelumnya.
- Nilai yang diperoleh dapat digunakan sebagai bobot, tetapi dalam praktiknya, hasil terbaik diperoleh jika diubah lagi secara nonlinier, menjaga urutan.
Masing-masing langkah memiliki nuansa tersendiri, misalnya bagaimana menghitung harga jika dalam satu kasus hanya diketahui harga eceran, di lain hanya harga grosir, dan di ketiga harga tersebut dan lainnya. Atau salah satu toko membuat kesalahan dengan harga dan menjual meja samping tempat tidur dengan harga lemari dari seri yang sama.
Bagaimana kita menghitung jarak antar barang
Memilih algoritma yang digunakan untuk menghitung jarak antara nilai-nilai karakteristik, kita perlu mengingat bagaimana kita akan menghitung jarak antara barang, memiliki jarak antara karakteristik individu dan beratnya. Intuisi saya memberi tahu saya untuk memulai hanya dengan jarak dalam ruang n-dimensi, mis. akar kuadrat dari jumlah kuadrat jarak antara karakteristik.
Lebih lanjut, intuisi mengatakan bahwa dalam hal ini fungsi jarak antar nilai harus distributif, dan lebih baik lagi, jika pertidaksamaan segitiga terpenuhi. Saya tidak dapat membuktikan kebenaran persyaratan tersebut, tetapi kami akan mematuhi ketentuan ini.
Maka fungsi-fungsi berikut dapat diambil sebagai fungsi jarak:
- — , . , 35 , — 75 , 40 . .
- — (, ?), . .
- , .
Sekarang tentang kinerja. Dalam prakteknya ternyata dalam waktu yang wajar (sampai 5 menit) kita bisa menghitung jarak berpasangan antara 30 ribu barang. Tetapi pada saat yang sama, dalam beberapa kategori barang ada lebih banyak, misalnya, mungkin ada seratus ribu kasur di katalog, dan dalam hal ini kita berbicara tentang menambah waktu yang dihabiskan sebanyak 10 kali lipat.
Pengoptimalan kasus ini terlihat seperti ini: kami memesan semua produk berdasarkan nilai karakteristik dengan bobot tertinggi
Ini lebih cepat dari
Kemudian kami membagi semua produk menjadi kelompok yang tumpang tindih (katakanlah, tumpang tindih dengan 20%), dan menghitung jarak berpasangan dalam setiap kelompok. Dengan demikian, hingga 30 ribu produk dalam satu kategori, waktu pemrosesan meningkat
dan mulai dari 30 ribu - caranya
hasil
Saya akan memberikan beberapa contoh hasil pencarian otomatis untuk produk serupa menggunakan algoritma ini (yang pertama di tabel adalah produk yang kami cari produk serupa)
|
|
|
|
|
|
|
| Bosch WLT24540OE
|
Bosch WLN24240OE
|
Samsung WW80K6210RW
|
Bosch WLT24460OE
|
Siemens WS12T440OE
|
Siemens WS12T540OE
|
|
| Sebuah tipe | otomatis
|
otomatis
|
otomatis
|
otomatis
|
otomatis
|
otomatis
|
| Eksekusi | berdiri bebas
|
berdiri bebas
|
berdiri bebas
|
berdiri bebas
|
berdiri bebas
|
berdiri bebas
|
| Memuat cucian | frontal
|
frontal
|
frontal
|
frontal
|
frontal
|
frontal
|
| Pemuatan maksimal | 7
|
7
|
delapan
|
7
|
7
|
7
|
| Warna | putih
|
putih
|
putih
|
putih
|
putih
|
putih
|
| Kelas energi | A +++
|
A +++
|
A +++
|
A +++
|
A +++
|
A +++
|
| Kelas spin | B
|
B
|
B
|
B
|
B
|
B
|
| Jumlah program | empat belas
|
limabelas
|
empat belas
|
limabelas
|
|
empat belas
|
| Warna penetasan | perak
|
putih
|
hitam
|
perak
|
perak
|
perak
|
| Kecepatan putaran maksimum | 1200
|
1200
|
1200
|
1200
|
1200
|
1200
|
| Ind. waktu hingga akhir program | +
|
|
+
|
+
|
+
|
|
| Konsumsi daya | 2300,00
|
|
|
2300,00
|
2300,00
|
|
| Kontrol ketidakseimbangan | +
|
+
|
+
|
+
|
+
|
+
|
| Bahan tubuh | plastik
|
plastik
|
plastik
|
plastik
|
plastik
|
plastik
|
| Panjang kabel listrik | 1.75
|
1.75
|
|
|
|
|
| Menyematkan |
|
|
|
|
|
di bawah meja
|
| Jumlah drum |
|
1
|
|
|
|
1
|
| Memilih kecepatan putaran | +
|
+
|
+
|
+
|
+
|
+
|
| Batalkan putaran | +
|
+
|
+
|
+
|
+
|
+
|
| Pembuat gelembung |
|
|
+
|
|
|
|
| Semua program | sintetis
|
bilasan tambahan
|
bilasan tambahan
|
bilasan tambahan
|
bilasan tambahan
|
eco wash
|
| Tanggal peluncuran pasar | 2016
|
2016
|
2016
|
2015
|
|
|
| Konsumsi listrik per siklus | 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
|
|
| - |
|
|
|
|
|
Contoh-contoh ini menunjukkan bahwa, pada prinsipnya, algoritme tersebut berfungsi dengan baik dan dipilih dalam kasus pertama mesin cuci otomatis yang berdiri sendiri dengan pemuatan horizontal dengan kedalaman yang sama dengan beban maksimum yang kira-kira sama (saya bukan spesialis yang hebat dalam mesin cuci, tetapi karakteristik inilah yang tampaknya penting bagi saya). Dalam kasus kedua - juga mesin cuci otomatis berdiri bebas, tetapi dengan pemuatan atas. Lebar dan kedalaman opsi yang diusulkan sama. Dalam kedua kasus tersebut, aktivator atau mesin built-in tidak ditawarkan, serta mesin yang dipasang di dinding, meskipun mereka ada dalam katalog.
Kemungkinannya adalah, spesialis peralatan besar dapat melakukan pekerjaan dengan lebih baik (kami mendiskusikan hasil dalam kategori yang berbeda dengan tenaga penjualan, mereka menyetujui sebagian besar opsi, tetapi juga menyarankan opsi yang tidak kami sertakan dalam hasil). Mencoba hasil untuk diri saya sendiri sebagai pembeli, saya menemukan rekomendasi seperti itu berguna, saya tidak menemukan kesalahan besar dalam harapan.
Jadi, setelah implementasi algoritma ini, yang hanya memiliki nama produk sebagai input, kami dapat secara otomatis menemukannya dari pemasok dan pesaing, mengisi karakteristiknya, memilih gambar, dan bahkan menawarkan analog. Ini sangat menyederhanakan pekerjaan manajer konten dan manajer penjualan.