Spaces:
Configuration error
Configuration error
|
Download README.md from TA-Bundle-Reranking-Faiz/README: direct link, hf CLI and curl.
- Browser
- Download file 16.5 kB
-
https://huggingface.co/spaces/TA-Bundle-Reranking-Faiz/README/resolve/main/README.md
- Command line
-
hf download hf://spaces/TA-Bundle-Reranking-Faiz/README/README.md
-
curl -L -o README.md https://huggingface.co/spaces/TA-Bundle-Reranking-Faiz/README/resolve/main/README.md
16.5 kB
| language: | |
| - id | |
| - en | |
| tags: | |
| - recommender-system | |
| - bundle-recommendation | |
| - popularity-bias | |
| - long-tail-exposure | |
| - controlled-reranking | |
| - collaborative-filtering | |
| - co-occurrence-graph | |
| title: Analisis Eksperimen TA | |
| # Pemerataan Eksposur Produk Long-Tail pada Sistem Rekomendasi Bundle melalui Simplified Two-Stage Recommendation dan Controlled Reranking Layer | |
| Repositori ini memuat implementasi penuh, catatan log eksekusi (`logs/`), pengujian unit otomatis (`tests/`), serta artefak hasil evaluasi (`data/processed/`) untuk penelitian Tugas Akhir mengenai **Sistem Rekomendasi Paket (*Bundle Recommendation*) Dua Tahap yang Disederhanakan (*Simplified Two-Stage Recommendation*) dengan Lapisan Pengurutan Ulang Terkontrol (*Controlled Reranking Layer*)**. | |
| Eksperimen dilakukan secara komprehensif pada dua dataset rilis **Amazon Review Data (2018)** yang memiliki karakteristik skala, kepadatan relasi graf (`also_buy` dan `also_view`), serta tingkat ketimpangan popularitas (*popularity bias*) yang kontras: | |
| 1. **Amazon `2018_Toys_and_Games`** *(Skala Menengah – Katalog Spesifik/Ceruk dengan Distribusi Relasi Graf Merata)* | |
| 2. **Amazon `2018_Movies_and_TV`** *(Skala Masif – Katalog Blockbuster dengan Dominasi Bias Popularitas Ekstrem)* | |
| --- | |
| ## 1. Analisis Eksperimen 1: Dataset `2018_Toys_and_Games` | |
| ### 1.1. Karakteristik Data, Sparsity, dan Distribusi Popularitas Awal (Hari 1) | |
| * **Penyaringan Skala Menengah:** Dari **8.201.231** baris interaksi mentah dan **633.883** metadata produk, proses deduplikasi dan *Iterative K-Core Filtering* menghasilkan **1.025 pengguna aktif ($|U|$)**, **3.399 produk ($|I|$)**, dan **48.318 interaksi bersih** (rata-rata $47,14$ transaksi per pengguna). | |
| * **Kekayaan Relasi Graf & Kategori Asli:** Terdapat **287 kategori unik** (yang membentuk **3.434 unit kategori/ceruk evaluasi** pada matriks evaluasi akhir). Setelah pembersihan *dangling edges*, tersisa **12.531 sisi `also_buy`** dan **3.375 sisi `also_view`** valid. | |
| * **Protokol Masking & Sparsity:** Pemisahan 80:20 mengunci **39.040 interaksi latih ($80,80\%$)** dan menyembunyikan **9.278 interaksi uji/masking ($19,20\%$)** dengan **0 kebocoran data (*Zero Leakage*)**. Matriks latih berukuran $1.025 \times 3.399$ memiliki tingkat **Sparsity sebesar 98,8794%**. | |
| * **Karakteristik Kurva Long-Tail:** Berdasarkan pembagian Pareto 20:30:50 pada *Train Set* (**680 HEAD : 1.020 MID : 1.699 TAIL**), **20% produk HEAD menguasai 33,70% dari total interaksi** (dengan rentang frekuensi $[0, 77]$). Angka $33,70\%$ ini menunjukkan bahwa meskipun terdapat bias popularitas, minat pengguna pada domain mainan dan permainan cukup tersebar ke berbagai produk spesifik/ceruk. | |
|  | |
| ### 1.2. Performa Stage 1 (UBCF) & Stage 2 (Co-occurrence Graph) (Hari 2) | |
| * **Stage 1 (Modified UBCF):** Rata-rata ambang kepuasan pengguna ($\bar{r}_u$) adalah **4,2153** (rentang $[2.61, 5.00]$). Matriks kemiripan pengguna ($1.025 \times 1.025$) mencatat **303.852 pasangan kemiripan aktif**, menghasilkan **3.444.935 prediksi valid** dengan **Seen-Item Leakage = 0**. Rata-rata setiap pengguna memiliki **15,13 item *Low-Rated* ($L_u$)** dan **23,11 item *High-Rated* ($H_u$)** (dengan 52 pengguna ditangani melalui *Uniform Rating Fallback*). | |
| * **Stage 2 (Co-occurrence Graph):** Graf berarah memiliki **3.399 simpul** dan **27.850 sisi aktif** (`buy` = 12.531, `view` = 3.375, `reverse` = 12.684), dengan rata-rata kemiripan kategori antar-item sebesar **0,3403**. | |
| * **Temuan Skenario 1 (Baseline Top-10):** Berkat padatnya jalur graf `also_buy`/`also_view` yang menghubungkan item *Low-Rated* langsung menuju item alternatif yang spesifik, model *Baseline Two-Stage* secara alami telah menghasilkan distribusi eksposur yang cukup seimbang yaitu **22,63% HEAD : 25,02% MID : 52,34% TAIL**, dengan **Recall@10 = 0.0340**, **NDCG@10 = 0.0494**, dan **Category Coverage@10 = 53,93%**. | |
| ### 1.3. Hasil Evaluasi Controlled Reranking Layer pada `2018_Toys_and_Games` (Hari 3) | |
| Audit *Fairness Guardrails* pada Langkah 6.1 mengonfirmasi **0 pelanggaran filter histori (`Seen-Item Violations = 0`)** dan **100% ketersediaan opsi kandidat HEAD maupun TAIL (1.025/1.025 pengguna)**. | |
| #### Gambar 1. Komparasi Hasil Eksperimen Antar-Skenario pada `2018_Toys_and_Games` | |
|  | |
| #### Gambar 2. Sensitivitas Grid Search $(\alpha, \beta)$ Skenario 3 pada `2018_Toys_and_Games` | |
|  | |
| #### Temuan Kunci pada `2018_Toys_and_Games`: | |
| 1. **Keunggulan Kualitas Posisi pada Skenario 2 (*Top-k Balancing*):** Penempatan 30% kuota *Head* di posisi atas, 40% prediksi personalisasi di tengah, dan 30% *Tail* di akhir berhasil meraih **NDCG@10 tertinggi (0.0497)** sekaligus menaikkan **Long-Tail Exposure@10 menjadi 56,10%** tanpa menurunkan *Category Coverage* (53,93%). | |
| 2. **Fenomena *Over-Penalization* pada Skenario 3 Deterministik:** Karena daftar kandidat *Baseline* pada *Toys_and_Games* sejak awal sudah memiliki proporsi *Head* yang rendah (22,63%), pemberian penalti deterministik $-\beta \cdot Pop(b)$ secara kaku mendorong daftar rekomendasi terlalu ekstrem ke arah item *Tail* (mencapai **88,12%** hingga **95,05%**). Akibatnya, item *Head* dan *Mid* yang relevan tereliminasi dan cakupan kategori menyempit dari 53,93% menjadi 43,59%. | |
| 3. **Kemenangan Mutlak Skenario 4 (*Full Controlled Reranking / Roulette Wheel*):** Mekanisme probabilistik berbobot terbukti menjadi solusi paling unggul pada dataset ini. Skenario 4 berhasil **meningkatkan akurasi tebakan masking melampaui Baseline** (**Recall@10 naik menjadi rata-rata 0.0360**, mencapai puncak **0.0381** pada *Trial 2*, dibandingkan *Baseline* 0.0340) sekaligus **melonjakkan Category Coverage@10 sebesar +14,83%** (dari 53,93% menjadi **68,76%**) dan menjaga **Long-Tail Exposure@10 di 55,47%**. | |
| --- | |
| ## 2. Analisis Eksperimen 2: Dataset `2018_Movies_and_TV` | |
| ### 2.1. Karakteristik Data Skala Masif, Extreme Sparsity, dan Efek Blockbuster (Hari 1) | |
| * **Penyaringan Skala Raksasa:** Dari **8.765.568** baris interaksi mentah dan **203.766** metadata produk, tahap pembersihan dan *Iterative K-Core Filtering* menghasilkan **24.786 pengguna aktif ($|U|$)**, **37.280 produk ($|I|$)**, dan **1.109.238 interaksi bersih** (rata-rata $44,75$ transaksi per pengguna). Ukuran ruang matriks interaksi mencapai **924.022.080 sel (~924 juta sel)**. | |
| * **Kepadatan Graf & Kategori Asli:** Terdapat **422 kategori unik** (membentuk **8.709 unit kategori/ceruk evaluasi** pada tahap evaluasi akhir) serta jaringan relasi asli yang sangat masif: **358.819 sisi `also_buy`** dan **173.447 sisi `also_view`** valid. | |
| * **Protokol Masking & Extreme Sparsity:** Pemisahan 80:20 mengisolasi **896.430 interaksi latih ($80,81\%$)** dan menyembunyikan **212.808 interaksi uji/masking ($19,19\%$)** dengan **Zero Leakage**. Matriks latih memiliki tingkat kekosongan yang sangat ekstrem yaitu **Sparsity = 99,9030%**. | |
| * **Bukti Empiris Dominasi Blockbuster (Popularity Bias Berat):** Pembagian Pareto 20:30:50 membagi katalog menjadi **7.456 HEAD : 11.184 MID : 18.640 TAIL**. Analisis distribusi pada *Train Set* membuktikan ketimpangan yang sangat tajam: **20% produk HEAD memonopoli 66,89% dari seluruh interaksi pengguna** (dengan frekuensi mencapai $1.120$ interaksi per produk). | |
|  | |
| ### 2.2. Skalabilitas Vektorisasi Stage 1–2 & Bias Popularitas pada Baseline (Hari 2) | |
| * **Efisiensi Vektorisasi Stage 1 (UBCF):** Dengan rata-rata ambang kepuasan pengguna $\bar{r}_u = \mathbf{4,1156}$, algoritma *Top-K Pruned Sparse Matrix Multiplication* (`scipy.sparse`) berhasil menyelesaikan perhitungan matriks kemiripan $24.786 \times 24.786$ (**4.944.639 pasangan kemiripan tersimpan** dari 69,95 juta pasangan aktif) dan menghasilkan **923.125.650 prediksi valid** hanya dalam waktu **~21 detik** dengan **Seen-Item Leakage = 0**. Rata-rata pengguna memiliki **12,88 item $L_u$** dan **23,60 item $H_u$** (2.591 pengguna ditangani oleh *Uniform Fallback*). | |
| * **Stage 2 (Co-occurrence Graph):** Graf berarah memuat **37.280 simpul** dan **626.500 sisi aktif** (`buy` = 358.819, `view` = 173.447, `reverse` = 252.130). Perakitan 50 kandidat *bundle* ($B=3$) untuk seluruh 24.786 pengguna diselesaikan menggunakan *Sparse Category Vectors* dalam waktu ~5 menit. | |
| * **Bukti Popularity Bias pada Skenario 1 (Baseline Top-10):** Tanpa intervensi *reranking*, rekomendasi *Baseline* terjebak dalam bias popularitas yang parah: **73,85% slot rekomendasi dikuasai oleh item HEAD**, **18,00% MID**, dan hanya menyisakan **8,16% untuk item TAIL**, dengan capaian **Recall@10 = 0.0466**, **NDCG@10 = 0.0703**, dan **Category Coverage@10 = 69,40%**. | |
| ### 2.3. Hasil Evaluasi Controlled Reranking Layer pada `2018_Movies_and_TV` (Hari 3) | |
| Audit *Fairness Guardrails* memastikan **0 pelanggaran histori (`Seen-Item Violations = 0`)** dan **100% ketersediaan kandidat HEAD serta TAIL untuk seluruh 24.786 pengguna**. | |
| #### Gambar 3. Komparasi Hasil Eksperimen Antar-Skenario pada `2018_Movies_and_TV` | |
|  | |
| #### Gambar 4. Sensitivitas Grid Search $(\alpha, \beta)$ Skenario 3 pada `2018_Movies_and_TV` | |
|  | |
| #### Temuan Kunci pada `2018_Movies_and_TV`: | |
| 1. **Efektivitas Skenario 2 (*Top-k Balancing*) dalam Menekan Monopoli Head:** Pembagian kuota 30:40:30 berhasil **meningkatkan Long-Tail Exposure@10 hampir 2,5 kali lipat** (dari 8,16% menjadi **20,24%**) dan menaikkan **Category Coverage@10 sebesar +4,66%** (menjadi **74,06%**), sembari mempertahankan **97,85% kemampuan Recall@10 Baseline** (0.0456 vs 0.0466). | |
| 2. **Peningkatan NDCG@10 & Keseimbangan Ideal pada Skenario 3 (*Popularity-Aware*):** | |
| * Pada bobot penalti ringan $(\alpha=0.9, \beta=0.1)$, pengurangan skor terhadap film *blockbuster* yang terlalu generik terbukti menggeser item *Mid/Tail* yang lebih sesuai dengan konteks pengguna ke peringkat atas, sehingga **NDCG@10 meningkat melampaui Baseline (0.0712 vs 0.0703)** sembari **melipatgandakan Long-Tail Exposure@10 menjadi 16,85%**. | |
| * Pada titik optimal $(\alpha=0.8, \beta=0.2)$, sistem mencapai keseimbangan proporsi katalog yang sangat ideal yaitu **35,54% HEAD : 31,95% MID : 32,51% TAIL** (**Long-Tail Exposure naik 4x lipat** dan **Category Coverage naik +8,32% menjadi 77,72%**). | |
| 3. **Rekor Cakupan Kategori Tertinggi pada Skenario 4 (*Roulette Wheel*):** Pendekatan sampling probabilistik Skenario 4 mencatatkan **Category Coverage@10 tertinggi di antara seluruh metode yaitu 81,02%** (naik **+11,62%** dari *Baseline*), meningkatkan **Long-Tail Exposure@10 lebih dari 3,3x lipat (27,57%)**, serta menunjukkan stabilitas antar-*trial* yang sangat kokoh (standar deviasi Recall dan NDCG hanya $\pm 0.0002$). | |
| --- | |
| ## 3. Analisis Komparatif Karakteristik Kedua Dataset (`2018_Toys_and_Games` vs. `2018_Movies_and_TV`) | |
| Pengujian lintas domain pada dua dataset dengan skala dan struktur distribusi yang berbeda memberikan pembuktian ilmiah mengenai bagaimana masing-masing mekanisme di dalam *Controlled Reranking Layer* beradaptasi terhadap karakteristik intrinsik data: | |
| ### Tabel 1. Matriks Komparatif Karakteristik & Perilaku Model Lintas Dataset | |
| | Dimensi Perbandingan | Dataset 1: `2018_Toys_and_Games` | Dataset 2: `2018_Movies_and_TV` | Implikasi & Analisis Ilmiah | | |
| | :--- | :--- | :--- | :--- | | |
| | **1. Skala Katalog & Pengguna** | **Menengah:** $1.025$ pengguna $\times 3.399$ produk ($48.318$ interaksi; $\sim 3,48$ juta sel matriks) | **Masif:** $24.786$ pengguna $\times 37.280$ produk ($1.109.238$ interaksi; $\sim 924$ juta sel matriks) | Membuktikan skalabilitas komputasi arsitektur *Vectorized Two-Stage + Reranking* dari jutaan hingga hampir 1 miliar sel matriks. | | |
| | **2. Tingkat Sparsity & Konsentrasi Popularitas Awal** | **Sparsity 98,88%** \| 20% produk HEAD menguasai **33,70%** interaksi (*Moderately Skewed*). | **Sparsity 99,90%** \| 20% produk HEAD memonopoli **66,89%** interaksi (*Heavily Skewed / Blockbuster Effect*). | Industri film/TV memiliki konsentrasi *popularity bias* dua kali lipat lebih tajam dibanding mainan/permainan yang lebih terfragmentasi berdasarkan usia/hobi. | | |
| | **3. Struktur Graf & Ruang Kategori** | **27.850 sisi berarah** \| 287 kategori unik (3.434 ceruk evaluasi). | **626.500 sisi berarah** \| 422 kategori unik (8.709 ceruk evaluasi). | Keduanya memiliki graf asli yang padat, namun pada `Movies_and_TV` simpul film populer menjadi *hub* raksasa yang menarik jalur pencarian graf ke arah item *Head*. | | |
| | **4. Perilaku Model Baseline (Skenario 1)** | Distribusi awal sudah cukup merata (**22,63% HEAD : 25,02% MID : 52,34% TAIL**); Recall@10 = **0.0340**, Cov@10 = **53,93%**. | Mengalami *Popularity Bias* ekstrem (**73,85% HEAD : 18,00% MID : 8,16% TAIL**); Recall@10 = **0.0466**, Cov@10 = **69,40%**. | Ketika *Train Set* didominasi 66,89% oleh item *Head* (`Movies_and_TV`), UBCF dan *Co-occurrence Graph* secara alami memperkuat bias tersebut menjadi 73,85% di rekomendasi akhir. | | |
| | **5. Efektivitas Skenario 2 (*Top-k Balancing* 30:40:30)** | Unggul dalam **memaksimalkan NDCG@10 (0.0497)** dan menaikkan Tail ke **56,10%**. | Sangat efektif sebagai **penyeimbang cepat (2,6 detik)**: menaikkan Tail **2,5x lipat (20,24%)** dan Coverage **+4,66%** dengan *loss* akurasi hampir nol. | Skema kuota kaku 30:40:30 berfungsi sebagai *safety net* yang menjamin batas minimum eksposur *Tail* sekaligus menjaga ketepatan posisi puncak lewat 40% slot prediksi. | | |
| | **6. Perilaku Skenario 3 (*Popularity-Aware* $\alpha, \beta$)** | Memicu *over-penalization* menuju Tail ekstrem (hingga 95,05%) karena *Baseline* sudah rendah *Head*. | **Sangat Efektif & Adaptif:** Pada $(0.9, 0.1)$ meningkatkan **NDCG@10 di atas Baseline (0.0712)**; pada $(0.8, 0.2)$ menciptakan proporsi sempurna **35,5% : 32,0% : 32,5%**. | Penalti linear $-\beta \cdot Pop(b)$ sangat krusial pada dataset berbias berat (`Movies_and_TV`) untuk meruntuhkan monopoli item *Head*, tetapi harus diatur ringan ($\beta \le 0.1$) pada dataset yang sudah seimbang. | | |
| | **7. Perilaku Skenario 4 (*Roulette Wheel Selection*)** | **Arsitektur Terbaik Mutlak:** Meningkatkan **Recall@10 di atas Baseline (0.0360 vs 0.0340)** dan melonjakkan **Coverage +14,83% (ke 68,76%)**. | Meraih **Category Coverage@10 Tertinggi (81,02%, naik +11,62%)** dan meningkatkan Tail **3,4x lipat (27,57%)** dengan variansi sangat stabil ($\pm 0.0002$). | Eksplorasi stokastik terbobot (*Roulette Wheel*) secara konsisten menjadi juara dalam memperluas cakupan kategori (*Category Coverage*) di kedua dataset tanpa terjebak pada penyempitan deterministik. | | |
| ### Kesimpulan Umum Penelitian | |
| 1. **Validasi Arsitektur Heuristik Dua Tahap:** Kombinasi *Modified User-Based CF* (dengan *Seen-Item Masking* $-\infty$) dan *Co-occurrence Graph* (`also_buy`/`also_view`) terbukti mampu merakit kandidat *bundle* yang relevan secara efisien dan stabil hingga skala hampir 1 miliar sel matriks tanpa membutuhkan *deep learning*. | |
| 2. **Panduan Pemilihan Strategi Reranking Berdasarkan Karakteristik Katalog:** | |
| * Untuk katalog dengan **dominasi popularitas ekstrem (*Blockbuster-Heavy* seperti `Movies_and_TV`)**, **Skenario 3 (*Popularity-Aware Reranking* pada $\alpha=0.9, \beta=0.1$ atau $\alpha=0.8, \beta=0.2$)** dan **Skenario 2 (*Top-k Balancing*)** adalah pilihan terbaik untuk merombak monopoli item *Head* (dari 73,85% menjadi ~35,54%), meningkatkan eksposur *long-tail* hingga 4 kali lipat, serta mendongkrak kualitas urutan (*NDCG@10*). | |
| * Untuk katalog dengan **preferensi ceruk yang tersebar (*Niche-Rich* seperti `Toys_and_Games`)** atau ketika tujuan utama sistem adalah **memaksimalkan keberagaman lintas kategori (*Category Coverage*)**, **Skenario 4 (*Full Controlled Reranking dengan Roulette Wheel Selection*)** merupakan metode paling superior karena mampu memperluas cakupan kategori sebesar **+11,62% hingga +14,83%** sekaligus meningkatkan peluang ditemukannya kembali item keranjang pengguna yang tersembunyi (*Recall@10* melampaui *Baseline*). | |
| --- |