0Pricing
Learn AI with Python · Pelajaran

Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item

Kemiripan pengguna, kemiripan item, metode ketetanggaan, kemiripan kosinus untuk peringkat.

Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa Itu Penyaringan Kolaboratif?

Penyaringan kolaboratif (CF) merekomendasikan item dengan mempelajari perilaku banyak pengguna. Gagasan utamanya: orang yang memiliki kesamaan pilihan di masa lalu cenderung memiliki kesamaan pilihan di masa depan. Metode ini tidak memerlukan deskripsi item, hanya riwayat interaksi.

Matriks Pengguna-Item

CF dimulai dari matriks pengguna-item dengan baris sebagai pengguna, kolom sebagai item, dan setiap sel berisi peringkat (atau kosong jika belum diberi peringkat). Matriks ini biasanya sangat renggang karena setiap pengguna hanya memberi peringkat pada sedikit item.

import pandas as pd

matrix = ratings.pivot_table(
    index="user_id", columns="item_id", values="rating"
)

Dua Jenis CF

  • Berbasis pengguna: cari pengguna yang mirip dengan Anda, lalu rekomendasikan hal-hal yang mereka sukai.
  • Berbasis item: cari item yang mirip dengan item yang Anda sukai, lalu rekomendasikan item tersebut.

Keduanya mengandalkan ukuran kesamaan antara baris (pengguna) atau kolom (item).

Kesamaan Kosinus

Kesamaan kosinus mengukur sudut antara dua vektor peringkat tanpa memperhitungkan besarnya nilai. Nilai yang mendekati 1 berarti selera sangat mirip, sedangkan nilai yang mendekati 0 berarti tidak berkaitan.

from sklearn.metrics.pairwise import cosine_similarity

filled = matrix.fillna(0)
user_sim = cosine_similarity(filled)  # user x user

Prediksi Berbasis Pengguna

Untuk memprediksi peringkat Anda terhadap suatu item, ambil rata-rata berbobot dari peringkat yang diberikan oleh pengguna yang mirip, dengan bobot berdasarkan tingkat kesamaan. Tetangga yang lebih mirip memiliki pengaruh lebih besar.

Rumus Prediksi

Peringkat prediksi = sum(similarity * neighbor_rating) / sum(similarity), dihitung atas tetangga yang telah memberi peringkat pada item tersebut. Mengurangkan rata-rata setiap pengguna terlebih dahulu (pemusatan rata-rata) mengoreksi perbedaan antara pengguna yang umumnya memberi peringkat tinggi atau rendah.

import numpy as np

def predict(sims, ratings_for_item):
    mask = ~np.isnan(ratings_for_item)
    if sims[mask].sum() == 0:
        return np.nan
    return np.dot(sims[mask], ratings_for_item[mask]) / sims[mask].sum()

Memilih Tetangga (k)

Alih-alih menggunakan semua pengguna, pertahankan hanya k tetangga yang paling mirip. Hal ini mengurangi gangguan dari pengguna yang tidak mirip dan mempercepat prediksi. k adalah hiperparameter yang dapat disetel.

Kesamaan Berbasis Item

CF berbasis item menghitung kesamaan antara kolom item, bukan antara baris pengguna. Rekomendasikan item yang paling mirip dengan item yang sudah disukai pengguna.

item_sim = cosine_similarity(filled.T)  # item x item

Mengapa Berbasis Item Lebih Stabil

Hubungan antaritem berubah secara perlahan: kesamaan antara dua film kurang lebih tetap. Selera pengguna dan basis pengguna berubah lebih cepat. Oleh karena itu, kesamaan berbasis item dapat dihitung sebelumnya dan digunakan kembali, sehingga menghasilkan rekomendasi yang lebih stabil dan mudah diskalakan. Itulah alasan Amazon terkenal memilih pendekatan ini.

Masalah Awal Dingin

CF kesulitan menangani pengguna atau item baru yang belum memiliki peringkat; tidak ada data untuk dibandingkan. Solusi umum mencakup meminta beberapa peringkat dari pengguna baru atau menggunakan metode berbasis konten sebagai mekanisme cadangan, yang akan dibahas nanti.

Menghasilkan Rekomendasi

Beri skor pada setiap item yang belum diberi peringkat untuk seorang pengguna, urutkan dari skor terbesar ke terkecil, lalu kembalikan N item teratas sebagai rekomendasi.

scores = {item: predict_for(user, item)
          for item in unrated_items(user)}
top_n = sorted(scores, key=scores.get, reverse=True)[:10]

Pemeriksaan Singkat

Uji pengetahuan Anda tentang penyaringan kolaboratif.

Ringkasan

Anda telah membangun CF pada matriks pengguna-item, menghitung kesamaan kosinus, memprediksi peringkat sebagai rata-rata berbobot berdasarkan kesamaan para tetangga, dan melihat alasan CF berbasis item lebih stabil daripada CF berbasis pengguna. Berikutnya: faktorisasi matriks dengan SVD.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item” gratis?

Ya — teks lengkap “Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item”?

Kemiripan pengguna, kemiripan item, metode ketetanggaan, kemiripan kosinus untuk peringkat. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item
  2. Faktorisasi Matriks dengan SVD
  3. Penyaringan Berbasis Konten
  4. Sistem Hibrida dan Metrik Evaluasi
← Kembali ke Learn AI with Python