Anatomi sistem rekomendasi. Bagian satu

Saya bekerja sebagai ilmuwan data di CleverDATA . Kami terlibat dalam proyek pembelajaran mesin, dan salah satu permintaan paling sering untuk pengembangan solusi pemasaran berbasis pembelajaran mesin adalah pengembangan model rekomendasi.

Pada artikel ini, saya akan berbicara tentang sistem rekomendasi, mencoba memberikan gambaran paling lengkap dari pendekatan yang ada, dan menjelaskan dengan jari bagaimana algoritma bekerja. Beberapa materi didasarkan pada kursus yang baik pada sistem rekomendasi dari laboratorium MovieLens (yang kebanyakan orang kenal dengan dataset yang sama untuk rekomendasi pengujian), sisanya berasal dari pengalaman pribadi. Artikel ini terdiri dari dua bagian. Yang pertama menjelaskan pernyataan masalah dan memberikan ikhtisar algoritma rekomendasi sederhana (tapi populer). Pada artikel kedua saya akan berbicara tentang metode yang lebih maju dan beberapa aspek praktis implementasi.

Sumber

Tinjau dan pernyataan masalah


Tugas dari sistem pemberi rekomendasi adalah untuk memberi tahu pengguna tentang suatu produk yang mungkin paling menarik baginya pada waktu tertentu. Klien menerima informasi, dan layanan menghasilkan uang dari penyediaan layanan berkualitas. Layanan belum tentu penjualan langsung dari barang yang ditawarkan. Layanan ini juga dapat menghasilkan komisi atau hanya meningkatkan loyalitas pengguna, yang kemudian diterjemahkan menjadi iklan dan pendapatan lainnya.

Bergantung pada model bisnis, rekomendasi dapat menjadi dasarnya, seperti, misalnya, dengan TripAdvisor, atau sekadar layanan tambahan yang nyaman (seperti, misalnya, di beberapa toko pakaian online), yang dirancang untuk meningkatkan Pengalaman Pelanggan dan membuat navigasi katalog lebih banyak nyaman

Personalisasi pemasaran online adalah tren yang jelas dalam dekade terakhir. Menurut McKinsey , 35% dari pendapatan Amazon atau 75% dari pendapatan Netflix berasal dari produk yang direkomendasikan, dan persentase ini kemungkinan akan tumbuh. Sistem rujukan adalah tentang apa yang ditawarkan klien untuk membuatnya bahagia.

Untuk mengilustrasikan seluruh variasi layanan rekomendasi, saya akan memberikan daftar karakteristik utama yang dapat digunakan untuk menggambarkan sistem rekomendasi.

  1. Subjek rekomendasi - apa yang direkomendasikan.

    Ada banyak variasi di sini - bisa berupa barang (Amazon, Ozon), artikel (Arxiv.org), berita (Surfingbird, Yandex.Zen), gambar (500px), video (YouTube, Netflix), orang (Linkedin, LonelyPlanet), musik (Last.fm, Pandora), daftar putar, dan lainnya. Secara umum, Anda dapat merekomendasikan apa pun.
  2. Tujuan dari rekomendasi ini adalah mengapa direkomendasikan.

    Misalnya: membeli, memberi informasi, melatih, membuat kontak.
  3. Konteks rekomendasi adalah apa yang sedang dilakukan pengguna saat ini.

    Misalnya: menonton barang, mendengarkan musik, berbicara dengan orang.
  4. Sumber rekomendasi adalah siapa yang merekomendasikan:

    - audiens (nilai rata-rata restoran di TripAdvisor),
    - Pengguna yang tertarik
    - komunitas ahli (kadang-kadang ketika datang ke produk yang kompleks, seperti, misalnya, anggur).
  5. Tingkat personalisasi .

    Rekomendasi non-pribadi - ketika Anda direkomendasikan sama seperti orang lain. Mereka memungkinkan penargetan berdasarkan wilayah atau waktu, tetapi tidak memperhitungkan preferensi pribadi Anda.

    Opsi yang lebih maju adalah ketika rekomendasi menggunakan data dari sesi Anda saat ini. Anda telah melihat beberapa produk, dan di bagian bawah halaman Anda ditawarkan yang serupa.

    Rekomendasi pribadi menggunakan semua informasi yang tersedia tentang klien, termasuk riwayat pembeliannya.
  6. Transparansi

    Orang-orang lebih mempercayai rekomendasi tersebut jika mereka benar-benar mengerti bagaimana itu diterima. Jadi ada risiko yang lebih kecil untuk masuk ke sistem "tidak bermoral" yang mempromosikan barang-barang berbayar atau menempatkan barang-barang yang lebih mahal lebih tinggi dalam peringkat. Selain itu, sistem rekomendasi yang baik itu sendiri harus dapat menangani ulasan yang dibeli dan menipu penjualan.

    Omong-omong, manipulasi juga tidak disengaja. Misalnya, ketika blockbuster baru dirilis, hal pertama yang dilakukan para penggemar adalah, oleh karena itu, peringkatnya bisa sangat ditaksir terlalu tinggi untuk beberapa bulan pertama.
  7. Format rekomendasi .

    Ini bisa berupa jendela sembulan, daftar yang diurutkan muncul di bagian tertentu situs, pita di bagian bawah layar, atau yang lainnya.
  8. Algoritma

    Meskipun banyak algoritma yang ada, semuanya bermuara pada beberapa pendekatan dasar, yang akan dijelaskan nanti. Yang paling klasik adalah algoritma Summary-based (non-personal), Content-based (model berdasarkan deskripsi produk), Collaborative Filtering (kolaboratif filtering), Matrix Factorization (metode berdasarkan dekomposisi matriks) dan beberapa lainnya.


Sumber

Di pusat dari setiap sistem rekomendasi adalah apa yang disebut matriks preferensi. Ini adalah matriks, pada satu sumbu di mana semua klien layanan (Pengguna) disisihkan, dan di sisi lain, objek rekomendasi (Item). Di persimpangan beberapa pasangan (pengguna, item), matriks ini diisi dengan peringkat (Peringkat) - ini adalah indikator yang diketahui dari minat pengguna terhadap produk ini, dinyatakan pada skala tertentu (misalnya, dari 1 hingga 5).


Pengguna biasanya mengevaluasi hanya sebagian kecil dari produk yang ada di katalog, dan tugas sistem rekomendasi adalah untuk meringkas informasi ini dan memprediksi sikap pelanggan terhadap produk lain yang tidak diketahui apa-apa. Dengan kata lain, Anda harus mengisi semua sel kosong pada gambar di atas.

Pola konsumsi orang berbeda, dan produk baru tidak harus direkomendasikan. Anda dapat menunjukkan posisi berulang, misalnya, untuk mengisi kembali stok. Menurut prinsip ini, dua kelompok barang dibedakan.

  • Diulang Misalnya, shampo atau pisau cukur yang selalu dibutuhkan.
  • Unik Misalnya, buku atau film yang jarang didapat kembali.

Jika produk tidak dapat secara eksplisit ditugaskan ke salah satu kelas, masuk akal untuk menentukan diizinkannya pembelian berulang secara individual (seseorang pergi ke toko hanya demi selai kacang dari merek tertentu, dan bagi seseorang penting untuk mencoba semua yang ada di katalog).

Konsep "bunga" juga subyektif. Beberapa pengguna hanya memerlukan barang-barang dari kategori favorit mereka (rekomendasi konservatif), sementara seseorang, sebaliknya, lebih responsif terhadap produk atau kelompok produk yang tidak standar (rekomendasi berisiko). Misalnya, hosting video dapat merekomendasikan pengguna hanya episode baru dari seri favoritnya, dan secara berkala dapat melemparkannya ke pertunjukan baru atau bahkan genre baru. Idealnya, Anda harus memilih strategi untuk menampilkan rekomendasi untuk setiap klien secara terpisah, menggunakan pemodelan kategori klien.

Peringkat pengguna dapat diperoleh dengan dua cara:

  • peringkat eksplisit - pengguna menempatkan peringkat produk, meninggalkan ulasan, menyukai halaman,
  • peringkat tersirat - pengguna tidak secara eksplisit mengungkapkan sikapnya, tetapi kesimpulan tidak langsung dapat diambil dari tindakannya: ia membeli produk - yang berarti dia menyukainya, membaca deskripsi untuk waktu yang lama - itu berarti ada minat, dll.

Tentu saja, preferensi eksplisit lebih baik - pengguna sendiri mengatakan bahwa dia menyukainya. Namun, dalam praktiknya, tidak semua situs memberikan kesempatan untuk secara eksplisit menyatakan minat mereka, dan tidak semua pengguna memiliki keinginan untuk melakukannya. Kedua jenis peringkat ini paling sering digunakan sekaligus dan saling melengkapi dengan baik.

Penting juga untuk membedakan antara istilah Prediksi (memprediksi tingkat minat) dan Rekomendasi itu sendiri (menunjukkan rekomendasi). Apa dan bagaimana menampilkan adalah tugas terpisah yang menggunakan taksiran yang diperoleh pada langkah Prediksi, tetapi dapat diimplementasikan dengan cara yang berbeda.

Kadang-kadang istilah "rekomendasi" digunakan dalam arti yang lebih luas dan merujuk pada optimasi apa pun, apakah itu merupakan pilihan klien untuk pengiriman iklan, menentukan harga penawaran yang optimal atau hanya memilih strategi komunikasi terbaik dengan klien. Dalam artikel itu, saya membatasi diri pada definisi klasik dari istilah ini, menunjukkan pilihan produk yang paling menarik bagi klien.

Rekomendasi yang tidak dipersonalisasi


Mari kita mulai dengan rekomendasi yang tidak dipersonalisasi, karena merupakan yang termudah untuk diterapkan. Di dalamnya, minat potensial pengguna hanya ditentukan oleh peringkat rata-rata produk: "Semua orang menyukainya, jadi Anda akan menyukainya." Sebagian besar layanan bekerja berdasarkan prinsip ini ketika pengguna tidak masuk ke sistem, misalnya, TripAdvisor yang sama.

Rekomendasi dapat ditampilkan dengan cara yang berbeda - seperti spanduk di sisi deskripsi produk (Amazon), sebagai hasil dari permintaan yang diurutkan berdasarkan parameter tertentu (TripAdvisor), atau yang lainnya.

Peringkat produk juga dapat ditampilkan dalam berbagai cara. Ini mungkin bintang di sebelah produk, jumlah suka, perbedaan antara suara positif dan negatif (seperti biasanya dilakukan di forum), proporsi peringkat tinggi atau bahkan histogram peringkat. Histogram adalah cara yang paling informatif, tetapi mereka memiliki satu kelemahan - sulit untuk membandingkan satu sama lain atau mengurutkan, ketika Anda perlu membuat daftar produk.


Masalah mulai dingin


Cold start adalah situasi yang khas ketika data yang cukup belum diakumulasikan untuk sistem rekomendasi untuk bekerja dengan benar (misalnya, ketika suatu produk baru atau jarang dibeli). Jika peringkat rata-rata dihitung dengan perkiraan hanya tiga pengguna (igor92, xyz_111 dan oleg_s), penilaian seperti itu jelas tidak akan dapat diandalkan, dan pengguna memahami hal ini. Seringkali dalam situasi seperti itu, peringkat secara artifisial disesuaikan.

Cara pertama adalah untuk menunjukkan bukan nilai rata-rata, tetapi rata-rata dihaluskan (Damped Mean). Artinya adalah: dengan sejumlah kecil peringkat, peringkat yang ditampilkan lebih cenderung ke beberapa jenis indikator "rata-rata" yang aman, dan segera setelah cukup banyak peringkat baru dikumpulkan, penyesuaian "rata-rata" berhenti bekerja.

Pendekatan lain adalah menghitung interval kepercayaan untuk setiap peringkat. Secara matematis, semakin banyak perkiraan, semakin sedikit variasi rata-rata dan, oleh karena itu, lebih percaya pada kebenarannya. Dan sebagai peringkat, Anda dapat menampilkan, misalnya, batas bawah interval (Batas CI Rendah). Pada saat yang sama, jelas bahwa sistem seperti itu akan cukup konservatif, dengan kecenderungan untuk meremehkan peringkat untuk produk-produk baru (kecuali, tentu saja, ini sangat populer).

Karena perkiraan terbatas pada skala tertentu (misalnya, dari 0 hingga 1), cara biasa menghitung interval kepercayaan tidak berlaku di sini: karena ekor distribusi yang mencapai tak terbatas dan simetri interval itu sendiri. Ada cara alternatif dan lebih akurat untuk menghitungnya - Wilson Confidence Interval . Dalam hal ini, interval asimetris dari jenis ini diperoleh.


Pada gambar di atas, peringkat horizontal dari peringkat rata-rata diplot, dan vertikal adalah penyebaran di sekitar rata-rata. Warna menunjukkan ukuran sampel yang berbeda (jelas, semakin besar sampel, semakin kecil interval kepercayaannya).

Masalah cold start sama relevan untuk rekomendasi yang tidak dipersonalisasi. Pendekatan umum di sini adalah untuk mengganti apa yang tidak dapat dihitung saat ini dengan berbagai heuristik (misalnya, ganti dengan nilai rata-rata, gunakan algoritma yang lebih sederhana, atau tidak menggunakan produk sama sekali sampai data dikumpulkan).

Relevansi rekomendasi


Dalam beberapa kasus, penting juga untuk mempertimbangkan β€œkesegaran” dari rekomendasi. Ini terutama berlaku untuk artikel atau posting forum. Entri baru harus sering menekan bagian atas. Untuk melakukan ini, gunakan faktor redaman. Di bawah ini adalah beberapa rumus untuk menghitung peringkat artikel di situs media.

Contoh perhitungan peringkat di majalah berita Hacker:

di mana U = upvotes, D = downvotes, dan P (Penalty) - penyesuaian tambahan untuk penerapan aturan bisnis lainnya

Perhitungan peringkat di Reddit:

di mana U = jumlah suara yang mendukung, D = jumlah suara yang menentang, T = waktu perekaman. Istilah pertama memperkirakan "kualitas rekaman", dan yang kedua membuat koreksi waktu.

Jelas, formula universal tidak ada, dan setiap layanan menciptakan formula yang paling baik memecahkan masalahnya - itu diverifikasi secara empiris.

Rekomendasi berbasis konten


Rekomendasi pribadi menyarankan penggunaan maksimum informasi tentang pengguna itu sendiri, terutama tentang pembelian sebelumnya. Salah satu yang pertama adalah pendekatan penyaringan berbasis konten. Dalam kerangka pendekatan ini, deskripsi produk (konten) dibandingkan dengan minat pengguna yang diperoleh dari peringkat sebelumnya. Semakin banyak produk memenuhi minat ini, semakin tinggi minat potensial pengguna dievaluasi. Persyaratan yang jelas di sini adalah bahwa semua produk dalam katalog harus memiliki deskripsi.

Secara historis, subjek rekomendasi berbasis Konten sering kali merupakan barang dengan deskripsi yang tidak terstruktur: film, buku, artikel. Tanda-tanda tersebut mungkin, misalnya, deskripsi teks, ulasan, pemeran, dan lainnya. Namun, tidak ada yang mencegah penggunaan tanda numerik atau kategorikal biasa.

Fitur tidak terstruktur dijelaskan dengan cara yang khas untuk teks - vektor dalam ruang kata-kata ( model Vector-Space ). Setiap elemen dari vektor tersebut adalah fitur yang berpotensi mencirikan minat pengguna. Demikian pula, suatu produk adalah vektor dalam ruang yang sama.

Ketika pengguna berinteraksi dengan sistem (katakanlah, ia membeli film), deskripsi vektor barang yang dibeli olehnya digabungkan (diringkas dan dinormalisasi) menjadi vektor tunggal dan, dengan demikian, vektor minatnya terbentuk. Selanjutnya, cukup untuk menemukan produk yang uraiannya paling dekat dengan vektor minat, yaitu. memecahkan masalah menemukan dan tetangga terdekat.

Tidak semua elemen sama pentingnya: misalnya, kata-kata serumpun, jelas, tidak membawa muatan apa pun. Oleh karena itu, ketika menentukan jumlah elemen yang cocok dalam dua vektor, semua pengukuran pertama-tama harus ditimbang dengan signifikansinya. Tugas ini diselesaikan oleh transformasi TF-IDF , yang terkenal di Text Mining , yang memberikan bobot lebih untuk kepentingan yang lebih jarang. Kebetulan minat semacam itu lebih penting dalam menentukan kedekatan dua vektor daripada kebetulan populer.


Prinsip TF-IDF di sini sama berlaku untuk atribut nominal biasa, seperti, misalnya, genre, sutradara, bahasa. TF - ukuran pentingnya atribut bagi pengguna, IDF - ukuran "kelangkaan" atribut.

Ada seluruh keluarga transformasi serupa (misalnya, BM25 dan yang serupa), tetapi pada dasarnya mereka semua mengulangi logika yang sama dengan TF-IDF: atribut langka harus memiliki bobot lebih ketika membandingkan produk. Gambar di bawah ini menggambarkan bagaimana berat TF-IDF tergantung pada TF dan IDF. Sumbu horisontal terdekat adalah DF: frekuensi atribut di antara semua produk, sumbu horizontal jauh adalah TF: logaritma frekuensi atribut pengguna.


Beberapa poin yang dapat diperhitungkan selama implementasi.

  • Saat membuat presentasi ruang vektor, alih-alih kata-kata individual, Anda dapat menggunakan sirap atau n-gram (pasangan kata, tripel, dll.). Ini akan membuat model lebih rinci, tetapi lebih banyak data akan dibutuhkan untuk pelatihan.
  • Di tempat yang berbeda dari deskripsi produk, berat kata kunci mungkin berbeda (misalnya, deskripsi film dapat terdiri dari judul, deskripsi singkat dan deskripsi terperinci).
  • Deskripsi produk dari pengguna yang berbeda dapat diberi bobot berbeda. Misalnya, kami dapat memberikan bobot lebih kepada pengguna aktif yang memiliki banyak peringkat.
  • Demikian pula, Anda dapat menimbang dan produk. Semakin tinggi peringkat rata-rata suatu objek, semakin besar bobotnya (mirip dengan PageRank ).
  • Jika deskripsi produk memungkinkan tautan ke sumber eksternal, maka Anda dapat menjadi bingung dan menganalisis juga semua informasi pihak ketiga yang terkait dengan produk.

Dapat dilihat bahwa penyaringan berbasis konten hampir sepenuhnya mengulangi mekanisme pencocokan dokumen permintaan yang digunakan dalam mesin pencari seperti Yandex dan Google. Satu-satunya perbedaan adalah dalam bentuk permintaan pencarian - ini adalah vektor yang menggambarkan minat pengguna, dan ada kata kunci dari dokumen yang diminta. Ketika mesin pencari mulai menambahkan personalisasi, perbedaannya semakin terhapus.

Sebagai ukuran kedekatan dua vektor, jarak cosinus paling sering digunakan.


Ketika penilaian baru ditambahkan, vektor minat diperbarui secara bertahap (hanya untuk elemen-elemen yang telah berubah). Saat menghitung ulang, masuk akal untuk memberikan perkiraan baru sedikit lebih berat, karena preferensi dapat bervariasi.

Penyaringan kolaboratif (opsi berbasis pengguna)


Kelas sistem ini mulai aktif berkembang di tahun 90-an. Sebagai bagian dari pendekatan, rekomendasi dihasilkan berdasarkan minat pengguna lain yang sejenis. Rekomendasi tersebut adalah hasil dari "kolaborasi" banyak pengguna. Oleh karena itu nama metode.

Implementasi klasik dari algoritma ini didasarkan pada prinsip k tetangga terdekat. Dengan jari - untuk setiap pengguna, kami mencari k yang paling mirip dengannya (dalam hal preferensi) dan melengkapi informasi tentang pengguna dengan data yang diketahui tentang tetangganya. Jadi, misalnya, jika diketahui bahwa tetangga Anda yang berminat senang dengan film "Darah dan Beton," dan Anda belum menontonnya karena alasan tertentu, ini adalah kesempatan yang bagus untuk menawarkan film ini kepada Anda untuk ditonton pada hari Sabtu.


Gambar di atas menggambarkan prinsip metode ini. Dalam matriks preferensi, pengguna disorot dengan warna kuning yang ingin kami tentukan peringkat untuk produk baru (tanda tanya). Tiga tetangga terdekatnya disorot dengan warna biru.

"Persamaan" dalam hal ini adalah sinonim untuk "korelasi" kepentingan dan dapat dipertimbangkan dalam banyak hal (selain korelasi Pearson, ada juga jarak kosinus, ada jarak Jacquard, jarak Hamming, dll.).

Implementasi klasik dari algoritma memiliki satu minus yang jelas - itu buruk dalam penerapannya karena kompleksitas kuadratik.Memang, seperti metode tetangga terdekat, ia membutuhkan perhitungan semua jarak berpasangan antara pengguna (dan mungkin ada jutaan pengguna). Mudah untuk menghitung bahwa kompleksitas menghitung matriks jarak akan menjadiO(n2m)di mana n adalah jumlah pengguna dan m adalah jumlah produk. Dengan satu juta pengguna, minimum 4TB diperlukan untuk menyimpan raw distance matrix.

Masalah ini sebagian dapat diselesaikan dengan membeli besi berkinerja tinggi. Tetapi jika Anda mendekati dengan bijak, lebih baik untuk memperkenalkan koreksi ke dalam algoritma:

  • perbarui jarak tidak dengan setiap pembelian, tetapi dengan batch (misalnya, sekali sehari),
  • Jangan menghitung ulang matriks jarak sepenuhnya, tetapi perbarui secara bertahap,
  • memilih untuk algoritma iteratif dan perkiraan (mis. ALS).

Agar algoritma menjadi efektif, penting bahwa beberapa asumsi terpenuhi.

  • Selera orang tidak berubah dengan waktu (atau perubahan, tetapi untuk semua orang sama).
  • Jika selera orang bertepatan, maka mereka bertepatan dalam segala hal.

    Misalnya, jika dua klien lebih suka film yang sama, maka mereka juga menyukai buku yang sama. Ini sering terjadi ketika produk yang direkomendasikan adalah homogen (misalnya, hanya film). Jika tidak demikian, maka beberapa pelanggan mungkin memiliki preferensi makanan yang sama, dan pandangan politik secara langsung berlawanan - di sini algoritme akan kurang efektif.

Lingkungan pengguna di ruang preferensi (tetangganya), yang akan kami analisis untuk menghasilkan rekomendasi baru, dapat dipilih dengan berbagai cara. Kita dapat bekerja dengan semua pengguna sistem secara umum, kita dapat menetapkan batas kedekatan tertentu, kita dapat memilih beberapa tetangga secara acak atau mengambil n tetangga yang paling mirip (ini adalah pendekatan yang paling populer).

Para penulis MovieLens sebagai jumlah optimal tetangga memberikan angka 30-50 tetangga untuk film dan 25-100 untuk rekomendasi sewenang-wenang. Jelas di sini bahwa jika kita mengambil terlalu banyak tetangga, kita akan mendapatkan lebih banyak peluang dari kebisingan acak. Dan sebaliknya, jika kita mengambil terlalu sedikit, kita akan mendapatkan rekomendasi yang lebih akurat, tetapi lebih sedikit produk yang direkomendasikan.

Tahap penting dalam persiapan data adalah normalisasi estimasi.

Standardisasi Data (penskalaan)


Karena semua pengguna mengevaluasi secara berbeda - seseorang menempatkan lima berturut-turut, dan Anda jarang mengharapkan empat dari seseorang - lebih baik untuk menormalkan data sebelum menghitung, mis. mengarah ke skala tunggal sehingga algoritma dapat dengan benar membandingkannya satu sama lain.

Secara alami, estimasi yang diprediksi akan perlu diterjemahkan ke dalam skala asli dengan transformasi terbalik (dan, jika perlu, bulat ke bilangan bulat terdekat).

Ada beberapa cara untuk menormalkan:

  • centering (mean-centering) - dari peringkat pengguna kami cukup mengurangi peringkat rata-rata,

    * hanya relevan untuk matriks non-biner
  • standardisasi (skor-z) - selain pemusatan, kami membagi peringkatnya dengan standar deviasi pengguna,

    * di sini, setelah konversi balik, peringkat dapat melampaui skala (mis., misalnya, 6 pada skala lima poin), tetapi situasi seperti itu cukup langka dan mereka diselesaikan hanya dengan membulatkan ke perkiraan terdekat yang dapat diterima.
  • standardisasi ganda - pertama kali kami menormalkan peringkat pengguna, kedua kalinya - peringkat produk.

    Jika film "The Best Movie" memiliki peringkat rata-rata 2.5, dan pengguna memberikannya 5, maka ini adalah faktor kuat yang menunjukkan bahwa film tersebut jelas sesuai dengan seleranya.

"Kesamaan" atau korelasi preferensi dua pengguna dapat dipertimbangkan dengan cara yang berbeda. Bahkan, kita hanya perlu membandingkan dua vektor. Kami daftar beberapa yang paling populer.

  1. β€” , .


    β€” , .

    50 / min(50, Rating intersection) damping factor, .


  2. β€” , .. , . .



  3. . , β€” , .



    β€” , (.. ), . , .

Perkembangan yang menarik dari pendekatan kolaboratif adalah apa yang disebut rekomendasi berbasis Kepercayaan, yang memperhitungkan tidak hanya kedekatan orang sesuai dengan minat mereka, tetapi juga kedekatan "sosial" mereka dan tingkat kepercayaan di antara mereka. Jika misalnya kita melihat bahwa di Facebook gadis secara berkala mengunjungi halaman dengan rekaman audio temannya, maka dia mempercayai selera musiknya. Oleh karena itu, rekomendasi kepada gadis itu dapat sepenuhnya mencampur lagu-lagu baru dari daftar putar teman.


Justifikasi rekomendasi


Adalah penting bahwa pengguna mempercayai sistem rekomendasi, dan untuk ini harus sederhana dan dapat dimengerti. Jika perlu, penjelasan rekomendasi yang dapat dipahami harus selalu tersedia (dalam penjelasan terminologi bahasa Inggris).

Sebagai bagian dari penjelasan, menyenangkan untuk menunjukkan penilaian produk tetangga, sesuai dengan atribut mana (misalnya, aktor atau sutradara), ada kebetulan, serta menampilkan kepercayaan sistem dalam penilaian (kepercayaan). Agar tidak membebani antarmuka, Anda dapat memasukkan semua informasi ini ke tombol "Tell me more".

Sebagai contoh:

  • "Kamu mungkin suka filmnya ... karena diputar di sana ... dan ..."
  • "Pengguna dengan selera musik yang serupa menilai album ... 4.5 dari 5."

Ringkasan


Ini akan mengakhiri bagian pertama artikel. Kami memeriksa pernyataan umum masalah, berbicara tentang rekomendasi non-pribadi, menggambarkan dua pendekatan klasik (berbasis konten dan penyaringan kolaboratif), dan juga menyentuh pada topik rekomendasi yang menguatkan. Secara umum, kedua pendekatan ini cukup memadai untuk membangun sistem rekomendasi siap-produksi. Pada bagian selanjutnya, saya akan melanjutkan tinjauan dan berbicara tentang metode yang lebih modern, termasuk yang melibatkan jaringan saraf dan pembelajaran yang mendalam, serta tentang model hybrid.

Sementara itu, lihat lowongan kami.

Source: https://habr.com/ru/post/id420499/


All Articles