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
Bacaan yang Disarankan:
Jawaban:
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 ...
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:
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.
sumber
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.
sumber
Saya bertemu makalah ini hari ini:
Mungkin itu memberikan informasi tambahan.
sumber
(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 .])
sumber
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.
sumber
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.
sumber
Seseorang melakukan presentasi di Universitas kami mengenai hal serupa minggu lalu, dan mereferensikan sistem rekomendasi Amazon. Saya percaya bahwa itu menggunakan bentuk K-Means Clustering untuk mengelompokkan orang ke dalam kebiasaan membeli yang berbeda. Semoga ini membantu :)
Lihat ini juga: http://www.almaden.ibm.com/cs/people/dmodha/ml02.ps dan sebagai HTML .
sumber
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
sumber