← Blog · Tutorial · 9 min read
Rekomendasi yang relevan bisa menaikkan pendapatan dua digit. Tutorial ini menunjukkan cara membangun mesin rekomendasi dari sederhana hingga personal.
A 30-minute scoping call. We listen, ask three questions, tell you if we can help.
Book a callDi e-commerce, perhatian pelanggan adalah komoditas yang paling cepat habis. Seorang pembeli yang membuka aplikasi Anda punya niat samar—mungkin mencari sepatu, mungkin sekadar melihat-lihat—dan dalam hitungan detik ia memutuskan apakah katalog Anda relevan atau tidak. Mesin rekomendasi yang baik mengubah niat samar itu menjadi keranjang belanja. Yang buruk membuatnya pergi.
Bukan hipotesis bahwa rekomendasi mendorong pendapatan. Pemain besar global secara konsisten melaporkan bahwa sebagian besar penjualan datang dari item yang direkomendasikan, bukan dari pencarian langsung. Untuk e-commerce Indonesia—dengan katalog jutaan SKU, perilaku pembeli yang sangat sensitif promo, dan musim belanja seperti Harbolnas dan Ramadan—rekomendasi yang relevan bisa menjadi pembeda antara margin tipis dan pertumbuhan dua digit. Tutorial ini menunjukkan cara membangunnya dari yang sederhana hingga yang personal, lengkap dengan jebakan yang khas di pasar Indonesia.
Sebelum bicara arsitektur, pahami tiga keluarga pendekatan. Banyak tim langsung melompat ke *deep learning* padahal masalah mereka selesai dengan metode sederhana.
Ide intinya: "pelanggan yang mirip dengan Anda menyukai produk ini." Sistem belajar dari pola interaksi—siapa membeli/mengklik apa—tanpa perlu memahami isi produk. Pendekatan ini kuat karena menangkap selera tersembunyi yang sulit dijelaskan dengan atribut produk. Kelemahannya adalah masalah *cold start*: produk baru tanpa interaksi dan pengguna baru tanpa riwayat tak punya sinyal.
Pendekatan ini merekomendasikan produk yang mirip dengan yang sudah disukai pengguna, berdasarkan atribut: kategori, brand, harga, deskripsi, gambar. Karena bersandar pada konten produk, ia menangani produk baru dengan baik. Tapi cenderung membatasi pengguna dalam "gelembung" selera yang sempit—jika Anda hanya melihat sepatu hitam, Anda terus disodori sepatu hitam.
Sistem produksi yang serius hampir selalu hybrid: menggabungkan sinyal collaborative dan content-based untuk saling menutupi kelemahan. Hybrid menjadi pilihan default begitu Anda melewati tahap eksperimen awal.
Aturan praktis: mulai dari yang paling sederhana yang memberi nilai. Banyak toko mendapat kenaikan konversi signifikan hanya dari "produk sering dibeli bersama" sebelum menyentuh model machine learning rumit.
Mesin rekomendasi modern di skala besar nyaris selalu memakai arsitektur dua tahap, karena tidak mungkin menilai jutaan produk untuk setiap permintaan dalam puluhan milidetik.
Tahap 1 — Candidate Generation (Retrieval). Dari katalog jutaan item, kecilkan menjadi beberapa ratus kandidat yang berpotensi relevan. Tahap ini mengutamakan kecepatan dan *recall*, bukan presisi. Teknik umum: *approximate nearest neighbor* atas embedding produk/pengguna, aturan ko-okurensi ("dibeli bersama"), dan filter populeritas per kategori.
Tahap 2 — Ranking. Dari ratusan kandidat, urutkan dengan model yang lebih kaya fitur untuk memilih beberapa yang ditampilkan. Di sini Anda boleh memakai model yang lebih berat karena hanya menilai ratusan, bukan jutaan, item. Model ranking mempertimbangkan fitur kontekstual: waktu, perangkat, riwayat sesi, harga relatif, ketersediaan stok, bahkan ongkos kirim.
Pemisahan ini penting secara praktis: Anda bisa mengiterasi model ranking dengan cepat tanpa menyentuh infrastruktur retrieval, dan sebaliknya.
Di jantung retrieval modern ada *embedding*—representasi numerik yang menempatkan produk dan pengguna dalam ruang vektor di mana kedekatan berarti relevansi. Produk yang sering dibeli bersama, atau yang punya deskripsi serupa, berakhir berdekatan dalam ruang ini. Pengguna direpresentasikan oleh rata-rata atau ringkasan produk yang berinteraksi dengannya.
Pendekatan embedding memberi dua keuntungan praktis. Pertama, ia menyatukan sinyal: deskripsi teks, gambar produk, kategori, dan pola perilaku bisa digabung menjadi satu representasi. Kedua, ia memungkinkan *approximate nearest neighbor search* yang sangat cepat di atas jutaan item—syarat mutlak untuk memenuhi anggaran latensi puluhan milidetik. Untuk e-commerce dengan katalog visual kuat seperti fashion, embedding gambar sering menambah relevansi yang tak tertangkap oleh atribut teks saja. Inilah fondasi yang membuat rekomendasi terasa "memahami" produk, bukan sekadar mencocokkan tag.
Cold start adalah momok nyata di e-commerce Indonesia yang katalognya terus berputar cepat—produk fashion musiman, flash sale, seller baru tiap hari. Ada tiga varian dan masing-masing punya solusi:
Pengguna baru. Untuk pengunjung yang belum punya riwayat, sandarkan pada sinyal konteks: produk tren, populer di wilayah/kota mereka, atau berdasarkan kategori pertama yang mereka lihat. Tambahkan *onboarding* ringan—"pilih minat Anda"—untuk pengguna yang mau.
Produk baru. Manfaatkan content-based: produk baru diembed dari atribut dan deskripsinya, lalu dicocokkan dengan preferensi pengguna meski belum ada satu pun interaksi.
Sistem baru (cold start organisasi). Saat baru meluncurkan rekomendasi tanpa data historis melimpah, mulai dari aturan sederhana (best-seller per kategori, sering dibeli bersama) sambil mengumpulkan data interaksi untuk model yang lebih canggih.
Kuncinya: jangan menampilkan kotak kosong. Selalu ada *fallback* berbasis populeritas atau tren yang masuk akal.
Tidak semua rekomendasi perlu real-time, dan memaksakan real-time di mana-mana membakar biaya infrastruktur tanpa hasil sepadan.
Batch cocok untuk rekomendasi yang berubah lambat: "rekomendasi untukmu" di beranda yang dihitung ulang setiap beberapa jam. Murah, sederhana, dan cukup untuk banyak kasus.
Real-time dibutuhkan ketika konteks sesi sangat menentukan. Jika pengguna baru saja mengklik tiga produk kamera dalam sesi ini, rekomendasi harus segera beradaptasi—menunggu batch berikutnya berarti kehilangan momen niat beli. Personalisasi berbasis sesi (*session-based recommendation*) inilah yang paling berdampak pada konversi di e-commerce.
Arsitektur pragmatis: precompute kandidat dan embedding secara batch, lalu lakukan ranking real-time yang ringan dengan menggabungkan sinyal sesi yang baru. Anda mendapat manfaat real-time tanpa biaya menghitung ulang segalanya secara langsung.
Inilah area di mana banyak tim menipu diri sendiri. Metrik offline yang bagus tidak menjamin dampak bisnis.
Sebelum menyentuh pengguna nyata, uji model pada data historis. Metrik umum: *precision@k* dan *recall@k* (seberapa banyak rekomendasi yang relevan di posisi teratas), serta NDCG yang menghargai item relevan di urutan atas. Evaluasi offline berguna untuk menyaring model buruk dengan cepat dan murah.
Tapi waspadai jebakannya: data historis bias terhadap apa yang *sudah* direkomendasikan sistem lama. Model yang "mereproduksi masa lalu" terlihat bagus secara offline tapi tidak menemukan peluang baru.
Kebenaran hanya muncul di A/B test dengan pengguna nyata. Ukur metrik bisnis langsung:
Click-through rate pada slot rekomendasi
Conversion rate dari rekomendasi
Revenue per session dan average order value
Metrik retensi jangka panjang—apakah pengguna kembali
Hati-hati terhadap optimasi jangka pendek yang merusak jangka panjang. Mesin yang hanya mengejar klik bisa terjebak merekomendasikan *clickbait* murah yang menaikkan CTR tapi menurunkan kepercayaan dan nilai pesanan. Selalu pantau metrik bisnis hulu, bukan hanya engagement.
Mesin rekomendasi yang menyalin contoh dari pasar Barat sering meleset di Indonesia karena beberapa karakteristik lokal:
Sensitivitas harga dan promo. Pembeli Indonesia sangat responsif terhadap diskon, cashback, dan gratis ongkir. Sinyal promo dan harga relatif sering lebih prediktif daripada kemiripan selera murni. Masukkan ini sebagai fitur ranking.
Musiman kuat. Ramadan, Lebaran, Harbolnas (12.12), dan gajian akhir bulan menciptakan lonjakan dan pergeseran preferensi yang tajam. Model yang tak menyadari musim akan ketinggalan.
Mobile-first dan jaringan terbatas. Mayoritas trafik dari ponsel dengan koneksi bervariasi. Rekomendasi harus ringan dan cepat dimuat; latensi tinggi membunuh konversi.
Ragam geografis. Selera dan ketersediaan logistik berbeda antara Jabodetabek dan luar Jawa. Pertimbangkan ketersediaan stok di gudang terdekat dan estimasi ongkir dalam ranking—merekomendasikan produk yang ongkirnya mahal ke daerah tertentu hanya menambah frustrasi.
Memasukkan sinyal lokal ini sering memberi lompatan konversi yang lebih besar daripada mengganti arsitektur model dengan yang lebih canggih. Selain itu, perhatikan ketersediaan dan logistik sebagai filter keras: tidak ada gunanya merekomendasikan produk yang stoknya habis, atau yang estimasi pengirimannya berhari-hari ke wilayah pengguna. Memasukkan sinyal ketersediaan dan ongkir nyata ke dalam ranking sering kali lebih berdampak pada konversi akhir daripada penyempurnaan model relevansi, karena ia langsung memangkas rekomendasi yang berakhir dengan kekecewaan saat checkout.
Satu jebakan halus yang merusak nilai jangka panjang adalah *over-personalization*—sistem yang terlalu patuh pada riwayat sehingga hanya menyodorkan variasi dari apa yang sudah dibeli. Pengguna yang baru membeli kulkas tidak butuh sepuluh rekomendasi kulkas lain; ia mungkin butuh aksesori, atau kategori sama sekali berbeda.
Sistem yang sehat menyeimbangkan *eksploitasi* (merekomendasikan yang jelas relevan) dengan *eksplorasi* (memperkenalkan item baru yang berpotensi disukai). Diversitas dan kebaruan adalah metrik kualitas tersendiri, bukan gangguan. Tanpa eksplorasi, sistem terjebak dalam *feedback loop* yang menyempitkan katalog efektif Anda dan membuat pengguna bosan. Untuk pasar Indonesia yang katalognya luas dan beragam, mendorong penemuan produk baru sering membuka kategori pendapatan yang sebelumnya tak tersentuh oleh pembeli tertentu.
Kesalahan halus lain adalah memperlakukan semua slot rekomendasi sama. Padahal "rekomendasi untukmu" di beranda, "produk serupa" di halaman produk, "sering dibeli bersama" di keranjang, dan "lengkapi pesananmu" di checkout melayani tujuan yang berbeda dan menuntut logika berbeda. Slot keranjang harus mengutamakan produk komplementer dengan harga lebih rendah (aksesori, baterai, garansi), sementara slot halaman produk mengutamakan alternatif yang sebanding. Slot beranda mengutamakan personalisasi dan penemuan. Menyetel setiap slot pada tujuannya—bukan menjalankan satu logika seragam di mana-mana—sering menghasilkan kenaikan konversi tanpa mengubah model inti sama sekali. Mulailah dengan memetakan tujuan bisnis setiap slot sebelum memilih sinyal yang menggerakkannya.
Pada akhirnya, mesin rekomendasi dinilai oleh CFO, bukan data scientist. Bingkai keberhasilan dalam bahasa bisnis: kenaikan *revenue per visitor*, *average order value*, dan kontribusi rekomendasi terhadap total GMV. Tetapkan baseline yang jelas sebelum peluncuran sehingga uplift bisa diatribusikan secara jujur, dan hindari klaim berlebihan yang tak tahan audit.
Penting juga menghitung biaya total: infrastruktur retrieval, penyimpanan embedding, dan beban inferensi real-time. Sebuah sistem yang menaikkan konversi 5 persen tapi memakan biaya komputasi besar mungkin kalah ekonomis dibanding sistem batch yang lebih sederhana dengan uplift 3 persen.
Salah satu kesalahan paling mahal adalah memulai dari arsitektur paling canggih. Tim yang berhasil hampir selalu menempuh jalur bertahap, di mana setiap tahap memberi nilai sebelum melangkah ke kompleksitas berikutnya.
Tahap 1 — Aturan sederhana. Mulai dari "best-seller per kategori", "sering dibeli bersama", dan "produk yang baru dilihat". Tanpa machine learning sama sekali, ini sering sudah menaikkan konversi dan membangun infrastruktur penyajian rekomendasi yang akan dipakai tahap berikutnya.
Tahap 2 — Collaborative filtering. Setelah ada cukup data interaksi, tambahkan rekomendasi berbasis pola "pengguna mirip menyukai". Ini lompatan relevansi pertama yang signifikan.
Tahap 3 — Hybrid dengan embedding. Gabungkan sinyal collaborative dan content-based, tangani cold start dengan baik, dan mulai personalisasi yang sesungguhnya.
Tahap 4 — Ranking real-time berbasis sesi. Tambahkan adaptasi seketika terhadap perilaku sesi, fitur kontekstual, dan optimasi terhadap metrik bisnis langsung.
Keuntungan pendekatan bertahap: Anda membuktikan nilai dan membangun kepercayaan organisasi di setiap langkah, sambil mengumpulkan data yang dibutuhkan tahap berikutnya. Melompat langsung ke tahap empat tanpa fondasi data dan tanpa infrastruktur eksperimen adalah resep untuk proyek yang mahal dan mandek.
Mesin rekomendasi adalah salah satu investasi AI dengan ROI paling cepat terbukti di e-commerce—asal dibangun sesuai realitas pasar Indonesia dan diukur dengan A/B test yang jujur. Jebakannya bukan pada kekurangan model canggih, melainkan pada cold start yang tak ditangani, evaluasi offline yang menyesatkan, dan sinyal lokal seperti promo dan musiman yang terlewat.
Sainskerta Solusi Nusantara merancang dan membangun sistem personalisasi e-commerce end-to-end—dari arsitektur retrieval-ranking hingga eksperimen A/B yang menghubungkan rekomendasi ke GMV. Jika Anda ingin mengetahui dari mana memulai dan berapa uplift yang realistis untuk katalog Anda, hubungi tim kami lewat halaman Kontak untuk menjadwalkan sesi konsultasi. Kami akan membantu memetakan jalur tercepat dari katalog statis menjadi etalase yang beradaptasi pada setiap pengunjung.