Pemfilteran kolaboratif

Untuk mengatasi beberapa keterbatasan pemfilteran berbasis konten, penyaringan kolaboratif menggunakan kesamaan antara pengguna dan item secara bersamaan untuk memberikan rekomendasi. Hal ini memungkinkan untuk mendapatkan rekomendasi yang tidak terduga; yaitu, penyaringan kolaboratif dapat merekomendasikan item kepada pengguna A berdasarkan minat pengguna serupa B. Selain itu, embedding bisa dipelajari secara otomatis, tanpa mengandalkan fitur rekayasa tangan.

Contoh rekomendasi film

Pertimbangkan sistem rekomendasi film di mana data pelatihan terdiri dari matriks umpan balik di mana:

  • Setiap baris mewakili seorang pengguna.
  • Setiap kolom mewakili sebuah item (film).

Masukan tentang film dibagi ke dalam salah satu dari dua kategori:

  • Eksplisit— pengguna menentukan seberapa besar mereka menyukai film tertentu dengan memberikan rating numerik.
  • Implisit— jika pengguna menonton film, sistem akan menyimpulkan bahwa pengguna tertarik.

Untuk menyederhanakan, kita akan mengasumsikan bahwa matriks umpan balik adalah biner; yaitu, sebuah nilai angka 1 menunjukkan minat pada film.

Saat pengguna mengunjungi beranda, sistem akan menyarankan film berdasarkan:

  • kemiripan dengan film yang pernah disukai pengguna sebelumnya
  • film yang disukai pengguna serupa

Demi ilustrasi, mari kita rancang beberapa fitur untuk film dijelaskan dalam tabel berikut:

Film Rating Deskripsi
The Dark Knight Rises PG-13 Batman berusaha menyelamatkan Kota Gotham dari pemusnahan nuklir dalam sekuel ini untuk The Dark Knight, yang ditetapkan di DC Dunia komik.
Harry Potter dan Batu Bertuah PG Seorang anak laki-laki yatim mengetahui bahwa dia adalah seorang penyihir dan telah mendaftar Sekolah Hogwarts Witchcraft and Wizardry, tempat dia melakukan pertempuran pertamanya melawan Lord Voldemort yang jahat.
Shrek PG Raksasa yang menyenangkan dan sahabat keledainya memulai misi untuk menyelamatkan Putri Fiona, di kastilnya oleh seekor naga.
Triplets of Belleville PG-13 Saat Champion pengendara sepeda profesional diculik selama Tour de France, neneknya dan anjingnya yang kelebihan berat badan melakukan perjalanan ke luar negeri untuk menyelamatkannya, dengan bantuan trio penyanyi jazz lansia.
Memento R Seorang amnesia berusaha mati-matian untuk menyelesaikan pembunuhan istrinya dengan membuat tato petunjuk ke tubuhnya.

Penyematan 1D

Misalkan kita menetapkan skalar untuk setiap film \([-1, 1]\) yang menjelaskan apakah film tersebut ditujukan untuk anak-anak (nilai negatif) atau orang dewasa (nilai positif). Misalkan kita juga menetapkan skalar untuk setiap pengguna di \([-1, 1]\) yang menjelaskan minat pengguna pada film anak-anak (mendekati -1) atau dewasa film (mendekati +1). Produk dari embedding film dan pengguna penyematan harus lebih tinggi (mendekati 1) untuk film yang diharapkan oleh pengguna untuk menyukainya.

Gambar yang menampilkan beberapa film dan pengguna yang disusun sepanjang ruang embedding satu dimensi. Posisi setiap film di sepanjang sumbu ini menjelaskan apakah ini film anak-anak (kiri) atau film dewasa (kanan). Posisi pengguna menggambarkan minat terhadap film anak-anak atau dewasa.

Pada diagram di bawah ini, setiap tanda centang mengidentifikasi film yang ditonton pengguna. Pengguna ketiga dan keempat memiliki preferensi yang dijelaskan dengan baik oleh fitur ini—pengguna ketiga lebih memilih film untuk anak-anak dan pengguna keempat lebih memilih film untuk orang dewasa. Namun, yang pertama dan kedua pengguna preferensi tidak dijelaskan dengan baik oleh fitur tunggal ini.

Gambar matriks masukan, dengan baris sesuai dengan pengguna, dan kolom sesuai dengan film. Setiap pengguna dan setiap film dipetakan ke embedding satu dimensi (seperti yang dijelaskan dalam gambar sebelumnya), sehingga hasil dari dua embedding tersebut mendekati nilai kebenaran dasar dalam matriks masukan.

Penyematan 2D

Satu fitur tidak cukup untuk menjelaskan preferensi semua pengguna. Untuk mengatasi masalah ini, mari tambahkan fitur kedua: sejauh mana film blockbuster atau arthouse. Dengan fitur kedua, kita sekarang bisa merepresentasikan setiap film dengan embedding dua dimensi berikut:

Gambar yang menampilkan beberapa film dan pengguna yang disusun pada ruang embedding dua dimensi. Posisi setiap film di sepanjang sumbu horizontal menjelaskan apakah ini film anak-anak (kiri) atau film dewasa (kanan); posisinya di sepanjang sumbu vertikal menjelaskan apakah ini adalah film blockbuster (atas) atau film arthouse (bawah). Posisi pengguna mencerminkan minat mereka di setiap kategori.

Kita sekali lagi menempatkan pengguna dalam ruang penyematan yang sama untuk matriks umpan balik: untuk setiap pasangan (pengguna, item), kita ingin dari penyematan pengguna dan penyematan item agar dekat ke 1 ketika pengguna menonton film, dan ke 0 jika sebaliknya.

Gambar matriks masukan yang sama. Kali ini, setiap pengguna dan setiap film dipetakan ke embedding dua dimensi (seperti yang dijelaskan dalam gambar sebelumnya), sehingga hasil titik dari dua embedding tersebut mendekati nilai kebenaran dasar dalam matriks masukan.

Dalam contoh ini, kita merekayasa embeddings secara manual. Dalam praktiknya, embedding dapat dipelajari secara otomatis, yang merupakan kecanggihan pemfilteran kolaboratif jaringan. Dalam dua bagian berikutnya, kita akan membahas model yang berbeda untuk mempelajari embedding ini, dan cara melatihnya.

Sifat kolaboratif dari pendekatan ini terlihat jelas ketika model mempelajari embedding yang berbeda. Misalkan vektor embedding untuk film bersifat tetap. Lalu: model ini dapat mempelajari vektor embedding bagi pengguna untuk menjelaskannya dengan sebaik-baiknya preferensi mereka. Akibatnya, embedding pengguna dengan preferensi serupa akan berdekatan. Demikian pula, jika {i>embedding<i} untuk pengguna bersifat tetap, kemudian kita dapat mempelajari embeddings film untuk menjelaskan matriks umpan balik dengan baik. Akibatnya, embedding film yang disukai oleh pengguna serupa akan mirip ruang embedding.

Menguji pemahaman Anda

Model ini merekomendasikan aplikasi belanja kepada pengguna karena dia baru-baru ini menginstal aplikasi serupa. Contoh penyaringan apakah ini?
Pemfilteran berbasis konten
Bagus! Pemfilteran berbasis konten tidak melihat pengguna lain.
Pemfilteran kolaboratif
Pemfilteran kolaboratif mempertimbangkan pengguna lain. Di kolom skenario tertentu, kita hanya memperhatikan satu pengguna.