Bagaimana cara kerja Fitur Rekomendasi Amazon?

144

Teknologi apa yang ada di balik layar teknologi rekomendasi Amazon? Saya percaya bahwa rekomendasi Amazon saat ini adalah yang terbaik di pasar, tetapi bagaimana mereka memberi kami rekomendasi yang relevan?

Baru-baru ini, kami telah terlibat dengan proyek sejenis rekomendasi, tetapi pasti ingin tahu tentang masuk dan keluarnya teknologi rekomendasi Amazon dari sudut pandang teknis.

Masukan apa pun akan sangat dihargai.

Memperbarui:

Paten ini menjelaskan bagaimana rekomendasi yang dipersonalisasi dilakukan tetapi tidak terlalu teknis, sehingga akan sangat baik jika beberapa wawasan dapat diberikan.

Dari komentar Dave, Analisis Afinitas membentuk dasar untuk semacam Mesin Rekomendasi. Juga di sini ada beberapa bacaan yang bagus di Topik

  1. Demystifying Market Basket Analysis
  2. Analisis Keranjang Pasar
  3. Analisis Afinitas

Bacaan yang Disarankan:

  1. Penambangan Data: Konsep dan Teknik
Rachel
sumber
3
Apakah Anda mencoba menyaring tumpukan paten mereka? google.com/patents
Dolph
Ya, saya memang melakukan Paten tetapi itu tidak terlalu teknis dan akan sangat menghargai beberapa wawasan tentang aspek teknis dari mekanisme ini
Rachel
1
@ Dave: Pertanyaan ini terbuka sekarang dan saya akan sangat menghargai jika Anda dapat memberikan lebih banyak wawasan tentang teknologi di balik arsitektur mesin rekomendasi dan fungsionalitas yang digunakan Amazon untuk memberikan rekomendasi.
Rachel
1
Saya tidak akan menyebut sistem rekomendasi Amazon "yang terbaik" atau bahkan berguna. Anda memesan mouse, disarankan untuk membeli yang lain juga. Mengapa pengguna normal membutuhkan dua tikus sekaligus ???
1
@ Rachel: Mengingat bahwa Anda tahu sistem Amazon dipatenkan dan Anda ingin mengembangkan sesuatu yang serupa, saya bahkan tidak akan melirik paten mereka --- dan tentu saja tidak memandang mereka juga tidak melindungi Anda, tapi ini awal.

Jawaban:

105

Ini adalah seni dan sains. Bidang studi yang khas berkisar pada analisis keranjang pasar (juga disebut analisis afinitas) yang merupakan bagian dari bidang penambangan data. Komponen khas dalam sistem seperti itu meliputi identifikasi item driver utama dan identifikasi item afinitas (peningkatan penjualan, cross selling).

Perlu diingat sumber data yang harus mereka miliki ...

  1. Troli belanja yang dibeli = uang nyata dari orang sungguhan yang dihabiskan untuk item nyata = data yang kuat dan banyak darinya.
  2. Item ditambahkan ke troli tetapi ditinggalkan.
  3. Eksperimen penetapan harga online (pengujian A / B, dll.) Di mana mereka menawarkan produk yang sama dengan harga yang berbeda dan melihat hasilnya
  4. Eksperimen pengemasan (pengujian A / B, dll.) Di mana mereka menawarkan produk yang berbeda dalam "bundel" yang berbeda atau diskon berbagai pasangan item
  5. Daftar Keinginan - apa yang ada di dalamnya khusus untuk Anda - dan secara agregat daftar itu dapat diperlakukan sama dengan aliran data analisis keranjang lainnya
  6. Situs rujukan (identifikasi dari mana Anda berasal dapat mengisyaratkan item menarik lainnya)
  7. Dwell times (berapa lama sebelum Anda mengklik kembali dan memilih item yang berbeda)
  8. Dinilai oleh Anda atau orang-orang di jejaring sosial / lingkaran pembelian Anda - jika Anda menilai hal-hal yang Anda sukai, Anda mendapatkan lebih banyak dari apa yang Anda sukai dan jika Anda mengonfirmasi dengan tombol "saya sudah memilikinya" mereka membuat profil Anda yang sangat lengkap
  9. Informasi demografis (alamat pengiriman Anda, dll.) - mereka tahu apa yang populer di area umum Anda untuk anak-anak Anda, diri sendiri, pasangan Anda, dll.
  10. segmentasi pengguna = apakah Anda membeli 3 buku dalam bulan yang terpisah untuk balita? kemungkinan memiliki anak atau lebih .. dll.
  11. Pemasaran langsung klik melalui data - apakah Anda mendapatkan email dari mereka dan mengklik? Mereka tahu email mana itu dan apa yang Anda klik dan apakah Anda membelinya.
  12. Klik jalur di sesi - apa yang Anda lihat terlepas dari apakah itu masuk ke keranjang Anda
  13. Frekuensi melihat item sebelum pembelian akhir
  14. Jika Anda berurusan dengan toko batu bata dan mortir, mereka mungkin memiliki riwayat pembelian fisik Anda juga (yaitu mainan di kami atau sesuatu yang sedang online dan juga toko fisik)
  15. dll. dll.

Untungnya, orang-orang berperilaku sama secara agregat sehingga semakin mereka tahu tentang populasi yang membeli pada umumnya semakin baik mereka tahu apa yang akan dan tidak akan menjual dan dengan setiap transaksi dan setiap peringkat / daftar harapan menambah / menelusuri mereka tahu bagaimana untuk lebih pribadi menyesuaikan rekomendasi. Ingatlah bahwa ini kemungkinan hanya sampel kecil dari pengaruh penuh dari apa yang akhirnya dalam rekomendasi, dll.

Sekarang saya tidak memiliki pengetahuan orang dalam tentang bagaimana Amazon melakukan bisnis (tidak pernah bekerja di sana) dan semua yang saya lakukan adalah berbicara tentang pendekatan klasik untuk masalah perdagangan online - saya dulu adalah PM yang bekerja pada data mining dan analitik untuk Microsoft produk yang disebut Commerce Server. Kami mengirim alat Server yang memungkinkan orang untuk membangun situs dengan kemampuan yang sama .... tetapi semakin besar volume penjualan, semakin baik data semakin baik modelnya - dan Amazon lebih besar. Saya hanya bisa membayangkan betapa asyiknya bermain dengan model dengan data sebanyak itu di situs yang didorong oleh perdagangan. Sekarang banyak dari algoritma tersebut (seperti prediktor yang dimulai pada server perdagangan) telah pindah untuk hidup langsung dalam Microsoft SQL .

Empat langkah besar yang harus Anda miliki adalah:

  1. Amazon (atau pengecer mana pun) sedang melihat data agregat untuk banyak transaksi dan banyak orang ... ini memungkinkan mereka untuk bahkan merekomendasikan dengan sangat baik untuk pengguna anonim di situs mereka.
  2. Amazon (atau peritel canggih mana pun) melacak perilaku dan pembelian siapa pun yang login dan menggunakannya untuk lebih menyempurnakan data agregat massa.
  3. Seringkali ada cara untuk mengendarai data yang terkumpul dan mengambil kendali "editorial" dari saran untuk manajer produk dari jalur tertentu (seperti beberapa orang yang memiliki vertikal 'kamera digital' atau 'novel romantis' vertikal atau serupa) di mana mereka benar-benar adalah ahli
  4. Sering ada penawaran promosi (yaitu sony atau panasonic atau nikon atau canon atau sprint atau verizon membayar uang tambahan kepada pengecer, atau memberikan diskon yang lebih baik dengan jumlah yang lebih besar atau hal-hal lain dalam jalur tersebut) yang akan menyebabkan "saran" tertentu meningkat ke atas lebih sering daripada yang lain - selalu ada beberapa logika bisnis yang masuk akal dan alasan bisnis di balik ini ditargetkan untuk membuat lebih banyak pada setiap transaksi atau mengurangi biaya grosir, dll.

Dalam hal implementasi aktual? Hampir semua sistem online besar bermuara pada beberapa rangkaian pipa (atau implementasi pola filter atau alur kerja, dll. Anda menyebutnya apa yang Anda inginkan) yang memungkinkan konteks dievaluasi oleh serangkaian modul yang menerapkan beberapa bentuk logika bisnis.

Biasanya pipa yang berbeda akan dikaitkan dengan setiap tugas terpisah pada halaman - Anda mungkin memiliki satu yang merekomendasikan "paket / peningkatan penjualan" (yaitu membeli ini dengan barang yang Anda lihat) dan yang menggunakan "alternatif" (yaitu membeli ini alih-alih dari hal yang Anda lihat) dan lainnya yang menarik item yang paling dekat hubungannya dari daftar keinginan Anda (berdasarkan kategori produk atau serupa).

Hasil dari pipa-pipa ini dapat ditempatkan pada berbagai bagian halaman (di atas scroll bar, di bawah scroll, di sebelah kiri, di kanan, font berbeda, gambar ukuran berbeda, dll.) Dan diuji untuk melihat perform terbaik. Karena Anda menggunakan modul plug-and-play yang bagus dan mudah digunakan yang mendefinisikan logika bisnis untuk pipa-pipa ini, Anda berakhir dengan moral yang setara dengan blok-blok lego yang membuatnya mudah untuk memilih dan memilih dari logika bisnis yang ingin Anda terapkan ketika Anda membangun pipa lain yang memungkinkan inovasi lebih cepat, lebih banyak eksperimen, dan pada akhirnya keuntungan yang lebih tinggi.

Apakah itu membantu sama sekali? Harapan itu memberi Anda sedikit wawasan tentang bagaimana ini bekerja secara umum untuk hampir semua situs e-commerce - bukan hanya Amazon. Amazon (dari berbicara dengan teman-teman yang telah bekerja di sana) sangat didorong oleh data dan terus mengukur keefektifan pengalaman pengguna dan harga, promosi, pengemasan, dll. - mereka adalah peritel online yang sangat canggih dan cenderung berada di ujung tombak banyak algoritme yang mereka gunakan untuk mengoptimalkan laba - dan itu kemungkinan adalah rahasia kepemilikan (Anda tahu seperti rumus untuk rempah-rempah rahasia KFC) dan dikhianati seperti itu.

Dave Quick
sumber
1
Iya. Itu banyak membantu saya dan saya sangat menghargai masukan Anda tentang topik ini.
Rachel
wawasan menakjubkan
Shobi
28

Ini tidak terkait langsung dengan sistem rekomendasi Amazon, tetapi mungkin bermanfaat untuk mempelajari metode yang digunakan oleh orang-orang yang bersaing dalam Netflix Prize , sebuah kontes untuk mengembangkan sistem rekomendasi yang lebih baik menggunakan data pengguna Netflix. Banyak informasi yang baik ada di komunitas mereka tentang teknik penambangan data secara umum.

Tim yang menang menggunakan campuran rekomendasi yang dihasilkan oleh banyak model / teknik yang berbeda. Saya tahu bahwa beberapa metode utama yang digunakan adalah analisis komponen utama, metode tetangga terdekat, dan jaringan saraf. Berikut beberapa makalah dari tim pemenang:

R. Bell, Y. Koren, C. Volinsky, " Solusi BellKor 2008 untuk Hadiah Netflix ", (2008).

A. Töscher, M. Jahrer, " Solusi BigChaos untuk Hadiah Netflix 2008 ", (2008).

A. Töscher, M. Jahrer, R. Legenstein, " Peningkatan Algoritma Berbasis Lingkungan untuk Sistem Rekomendasi Skala Besar ", Lokakarya SIGKDD tentang Sistem Rekomendasi Skala Besar dan Kompetisi Hadiah Netflix (KDD'08), ACM Press (2008) .

Y. Koren, " Solusi BellKor untuk Hadiah Utama Netflix ", (2009).

A. Töscher, M. Jahrer, R. Bell, " Solusi BigChaos untuk Hadiah Utama Netflix ", (2009).

M. Piotte, M. Chabbert, " The Pragmatic Theory solution untuk Netflix Grand Prize ", (2009).

Makalah 2008 berasal dari Hadiah Kemajuan tahun pertama. Saya sarankan membaca yang sebelumnya terlebih dahulu karena nanti membangun di atas karya sebelumnya.

Justin Peel
sumber
2
Apa yang saya sukai dari jawaban ini adalah ia menunjuk pada fakta bahwa tidak ada jawaban "sempurna" dan bahwa orang-orang terus berinovasi di bidang ini - selalu ada ruang untuk perbaikan dan seiring waktu perubahan dan metode baru diterapkan pada masalah yang dihadapinya. akan terus dipecahkan secara berbeda. Dan jika Anda membaca tautan terperinci Anda dapat melihat bagaimana ada "campuran" dari beberapa pendekatan untuk prediksi dalam masing-masing pesaing besar untuk hadiah. Referensi yang bagus.
Dave Quick
20

(Disclamer: Saya dulu bekerja di Amazon, meskipun saya tidak bekerja di tim rekomendasi.)

Jawaban ewernli haruslah jawaban yang benar - tautan kertas ke sistem rekomendasi asli Amazon, dan dari apa yang dapat saya katakan (baik dari pengalaman pribadi sebagai pembelanja Amazon dan pernah bekerja pada sistem serupa di perusahaan lain), sangat sedikit yang berubah: di intinya, fitur rekomendasi Amazon masih sangat didasarkan pada pemfilteran kolaboratif item-ke-item.

Lihat saja bentuk rekomendasi yang diambil: di halaman depan saya, semuanya berupa "Anda melihat X ... Pelanggan yang juga melihat ini juga melihat ...", atau serangkaian item yang mirip dengan hal-hal lain Saya sudah membeli atau melihat sebelumnya. Jika saya secara khusus membuka halaman "Disarankan untuk Anda", setiap item menjelaskan mengapa disarankan bagi saya: "Disarankan karena Anda membeli ...", "Disarankan karena Anda menambahkan X ke daftar keinginan Anda ...", dll. Ini adalah tanda klasik dari penyaringan kolaboratif item-ke-item.

Jadi, bagaimana cara kerja penyaringan kolaboratif item-ke-item? Pada dasarnya, untuk setiap item, Anda membangun "lingkungan" dari item terkait (misalnya, dengan melihat item apa yang dilihat bersama atau item yang dibeli bersama - untuk menentukan kesamaan, Anda dapat menggunakan metrik seperti indeks Jaccard ; korelasi adalah kemungkinan lain, meskipun saya curiga Amazon tidak menggunakan data peringkat sangat banyak). Lalu, setiap kali saya melihat item X atau melakukan pembelian Y, Amazon menyarankan saya hal-hal di lingkungan yang sama dengan X atau Y.

Beberapa pendekatan lain yang berpotensi digunakan oleh Amazon, tetapi kemungkinan tidak, dijelaskan di sini: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -dengan-amazons-rekomendasi-sistem /

Banyak hal yang dijelaskan Dave hampir pasti tidak dilakukan di Amazon. (Diberi peringkat oleh orang-orang di jejaring sosial saya? Tidak, Amazon tidak memiliki data sosial saya. Bagaimanapun, ini akan menjadi masalah privasi yang sangat besar, jadi akan sulit bagi Amazon untuk melakukannya bahkan jika mereka memiliki data tersebut: orang tidak ingin teman mereka tahu buku atau film apa yang mereka beli. Informasi demografis? Tidak, dalam rekomendasi tidak ada yang menyarankan mereka melihat ini. [Tidak seperti Netflix, yang melakukan apa yang ditonton orang lain di daerah saya menonton .])

Jason R
sumber
Amazon selama bertahun-tahun membuka lingkaran pembelian - yang merupakan tren pembelian anonim berdasarkan nama domain perusahaan dan kode pos. Harus ada setidaknya 50 pembeli yang berbeda dalam lingkaran pembelian sebelum Anda bisa mendapatkan informasi tentang hal itu - jadi amazon tentu menyimpan, melacak dan menggunakan informasi itu untuk membantu diri mereka sendiri (dan orang lain) memahami apa yang populer. Anda dapat melihat pembelian CD, elektronik, dan buku di daerah Anda atau di perusahaan Anda. Mereka terpapar dari 1999-2002. forum.dvdtalk.com/archive/t-122436.html bahkan memiliki salinan dan tempel teks dari amazon yang menjelaskannya.
Dave Quick
3

Saya tidak memiliki pengetahuan tentang algoritma Amazon secara khusus, tetapi satu komponen dari algoritma semacam itu mungkin akan melibatkan pelacakan kelompok item yang sering dipesan bersama, dan kemudian menggunakan data itu untuk merekomendasikan item lain dalam grup ketika pelanggan membeli beberapa bagian dari kelompok.

Kemungkinan lain adalah melacak frekuensi barang B yang dipesan dalam N hari setelah memesan barang A, yang dapat menunjukkan korelasi.

hari baru tiba
sumber
2

Sejauh yang saya tahu, ini menggunakan Penalaran Berbasis Kasus sebagai mesin untuk itu.

Anda dapat melihat di sumber-sumber ini: di sini , di sini dan di sini .

Ada banyak sumber di google yang mencari alasan amazon dan berbasis kasus.

coelhudo
sumber
0

Jika Anda ingin tutorial langsung (menggunakan sumber terbuka R) maka Anda bisa melakukan lebih buruk daripada melalui ini: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e

Ini adalah versi dioptimalkan run-time dari karya lain: http://www.salemmarafi.com/code/collaborative-filtering-r/

Namun, variasi kode pada tautan pertama berjalan JAUH lebih cepat, jadi saya sarankan menggunakan itu (saya menemukan satu-satunya bagian lambat dari kode yoshiki146 adalah rutin terakhir yang menghasilkan rekomendasi di tingkat pengguna - butuh sekitar satu jam dengan data saya di mesin saya).

Saya mengadaptasi kode ini untuk berfungsi sebagai mesin rekomendasi untuk pengecer tempat saya bekerja.

Algoritma yang digunakan adalah - seperti yang orang lain katakan di atas - penyaringan kolaboratif. Metode CF ini menghitung matriks kesamaan cosinus dan kemudian memilah berdasarkan kesamaan itu untuk menemukan 'tetangga terdekat' untuk setiap elemen (band musik dalam contoh yang diberikan, produk ritel dalam aplikasi saya).

Tabel yang dihasilkan dapat merekomendasikan band / produk berdasarkan band / produk lain yang dipilih.

Bagian kode selanjutnya selangkah lebih maju dengan pemfilteran kolaboratif berbasis USER (atau pelanggan).

Output dari ini adalah tabel besar dengan 100 band / produk teratas yang direkomendasikan untuk pengguna / pelanggan tertentu

ChrisD
sumber
1
Meskipun tautan ini dapat menjawab pertanyaan, lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini dan memberikan tautan untuk referensi. Jawaban hanya tautan dapat menjadi tidak valid jika halaman tertaut berubah. - Dari Ulasan
Kos
Benar ... Algoritma yang digunakan adalah - seperti yang orang lain katakan di atas - penyaringan kolaboratif. Metode CF ini menghitung matriks kesamaan cosinus dan kemudian memilah berdasarkan kesamaan itu untuk menemukan 'tetangga terdekat' untuk setiap elemen (band musik dalam contoh yang diberikan, produk ritel dalam aplikasi saya). Tabel yang dihasilkan dapat merekomendasikan band / produk berdasarkan band / produk lain yang dipilih. Bagian kode selanjutnya selangkah lebih maju dengan pemfilteran kolaboratif berbasis USER (atau pelanggan). Output dari ini adalah tabel besar dengan 100 band / produk teratas yang direkomendasikan untuk pengguna / pelanggan tertentu
ChrisD
harap edit jawaban Anda dan tambahkan informasi ini di sana, bukan di bagian komentar, terima kasih
Kos