Lensa ML

Merancang Feed Rekomendasi

Langkah 1 dari 6: Kenapa Tidak Menilai Semua Item?

Anggaran latency memaksa retrieval sebelum ranking

Latency
31 ms
Recall
0.87
Feed P@10
0.72
Kategori
4.5
Hari uji
6
Desain untuk 10M pengguna · 1M item · 1.000 req/s · anggaran 100 ms
Recall, precision, dan kategori diukur pada data contoh
Waktu per request feed (skala log)Nilai semua item100 sRetrieval, lalu rank31 msanggaran 100 ms1 ms100 ms10 s17 menit27.8 jamFunnel, sesuai skala terhadap anggaranretrieval 10 msrank 200 20 msre-rank 1.0 ms
Item di katalog (M)1M
Biaya ranker per item0.10 ms
Anggaran latency per request100 ms
Request feed per detik saat puncak1,000
Pengguna terdaftar10M
Nilai semua item
100 s
Funnel
31 ms
Core ranker, semua item
100k
Core ranker, funnel
20

Menilai semua 1M item dengan ranker butuh 100 s per request, 1.000 kali anggaran, dan 1.000 request per detik akan membuat 100k core terus sibuk. Retrieval lebih dulu memangkas katalog menjadi 200 kandidat, yaitu item yang layak dinilai dengan teliti, sehingga seluruh request hanya butuh 31 ms.

Asumsi
Waktu retrieval (pencarian ANN + user tower)10 ms
Satu kemiripan item-item di re-ranker1.0 µs
Biaya ranker0.10 ms per itemWaktu pada satu core. Core sibuk = request/s × item yang dinilai × biaya
Dunia contoh300 pengguna · 1,000 itemSelera tersembunyi 8 dimensi ditambah noise, 8 kategori, seed 7. Recall, precision, dan keragaman diukur di sini, bukan pada 1 juta item
Item relevantop 20 sebenarnya20 afinitas sebenarnya tertinggi tiap pengguna, kunci jawaban untuk recall dan precision
Model two-towerrank-2 SVDPendekatan dot product 2-D terbaik untuk afinitas sebenarnya. Model yang dilatih dari klik akan lebih buruk
Noise rankerσ = 0.16 × √(0.1 ms ÷ cost)Disimulasikan: ranker yang lebih mahal melihat lebih banyak feature, jadi skornya lebih dekat ke afinitas sebenarnya
Kumpulan re-ranktop 100MMR hanya mengurutkan ulang bagian atas daftar hasil ranking
Feedback loopK = 10 · 40 rondeDisimulasikan, seed 11. Prior dihitung sebagai K impression
Targetrecall ≥ 0.8 · P@10 ≥ 0.6 · ≥ 4 kategori · ≤ 14 hariDitetapkan untuk kebutuhan ini, bukan standar industri
Tidak dimodelkanfeature fetch, caching, position biasWaktu retrieval mewakili jaringan dan pencarian feature
Semua konstanta adalah asumsi untuk kebutuhan ini, ditetapkan 25 Oktober 2026.

Seret Item di katalog ke 100 juta dan Biaya ranker per item ke maksimum. Batang penilaian penuh tumbuh sampai berjam-jam, sementara funnel tetap dekat anggaran, karena biaya funnel bergantung pada jumlah kandidat N, bukan ukuran katalog. Angka core adalah request per detik × item yang dinilai × biaya per item, yaitu komputasi yang akan terus sibuk saat puncak. Katalog sepuluh kali lebih besar melipatkan angka ini sepuluh kali untuk penilaian penuh dan tidak mengubah funnel.

Langkah 2 dari 6: Candidate Generation

Dua tower dan dot product menemukan N teratas

Latency
31 ms
Recall
0.87
Feed P@10
0.72
Kategori
4.5
Hari uji
6
Desain untuk 10M pengguna · 1M item · 1.000 req/s · anggaran 100 ms
Recall, precision, dan kategori diukur pada data contoh
Vector item dari item tower, arah pengguna #1sumbu 1 ≈ popularitas →
diambil (top 200)relevan, ditemukanrelevan, terlewatpanah putih: vector pengguna
recall terhadap N, semua 300 pengguna contoh00.5101.000 = seluruh katalog contoh
Kandidat yang diambil (N)200
Pengguna contoh#1 dari 300
Recall, semua pengguna
0.87
Pengguna #1 ditemukan
20 dari 20
Porsi katalog contoh
20%
Waktu ranking
20 ms

Model two-tower mempelajari satu vector per pengguna dan satu per item, sehingga dot product keduanya memprediksi afinitas. Retrieval mengambil semua item di seberang garis putus-putus, yaitu 200 teratas menurut dot product. Di sini ia menemukan 87% dari 20 item relevan tiap pengguna (diukur pada data contoh), karena 2 dimensi tidak bisa memuat 8 selera tersembunyi.

Vector ini adalah SVD rank-2 dari afinitas sebenarnya, hasil terbaik yang bisa dicapai model two-tower 2-D. Pada katalog 1 juta item, N yang sama adalah porsi yang jauh lebih kecil, jadi recall-nya akan lebih rendah.
Asumsi
Waktu retrieval (pencarian ANN + user tower)10 ms
Satu kemiripan item-item di re-ranker1.0 µs
Biaya ranker0.10 ms per itemWaktu pada satu core. Core sibuk = request/s × item yang dinilai × biaya
Dunia contoh300 pengguna · 1,000 itemSelera tersembunyi 8 dimensi ditambah noise, 8 kategori, seed 7. Recall, precision, dan keragaman diukur di sini, bukan pada 1 juta item
Item relevantop 20 sebenarnya20 afinitas sebenarnya tertinggi tiap pengguna, kunci jawaban untuk recall dan precision
Model two-towerrank-2 SVDPendekatan dot product 2-D terbaik untuk afinitas sebenarnya. Model yang dilatih dari klik akan lebih buruk
Noise rankerσ = 0.16 × √(0.1 ms ÷ cost)Disimulasikan: ranker yang lebih mahal melihat lebih banyak feature, jadi skornya lebih dekat ke afinitas sebenarnya
Kumpulan re-ranktop 100MMR hanya mengurutkan ulang bagian atas daftar hasil ranking
Feedback loopK = 10 · 40 rondeDisimulasikan, seed 11. Prior dihitung sebagai K impression
Targetrecall ≥ 0.8 · P@10 ≥ 0.6 · ≥ 4 kategori · ≤ 14 hariDitetapkan untuk kebutuhan ini, bukan standar industri
Tidak dimodelkanfeature fetch, caching, position biasWaktu retrieval mewakili jaringan dan pencarian feature
Semua konstanta adalah asumsi untuk kebutuhan ini, ditetapkan 25 Oktober 2026.

Geser Pengguna contoh dan lihat batas putus-putus berputar bersama panah putih. Setiap item di seberang garis punya dot product yang lebih tinggi dengan vector pengguna itu daripada item mana pun sebelum garis, itu sebabnya retrieval bisa memakai index approximate nearest neighbor, bukan menilai item satu per satu. Cincin merah menandai item relevan yang ditempatkan vector 2-D di belakang garis. Menambah dimensi akan menangkap lebih banyak; menambah kandidat juga menangkapnya, dengan bayaran biaya ranking.

Langkah 3 dari 6: Ranking

Skor lebih kaya per item, dibayar per kandidat

Latency
31 ms
Recall
0.87
Feed P@10
0.72
Kategori
4.5
Hari uji
6
Desain untuk 10M pengguna · 1M item · 1.000 req/s · anggaran 100 ms
Recall, precision, dan kategori diukur pada data contoh
200 kandidat pengguna #1: afinitas sebenarnya dan skor ranker000.50.511top 10 menurut skor ranker, di atas garis iniafinitas sebenarnya (probabilitas klik) · cincin teal = relevan
Biaya ranker per item (murah ke kaya feature)0.10 ms
Pengguna contoh#1 dari 300
Noise ranker σ (simulasi)
0.160
Precision@10, semua pengguna
0.80
Waktu ranking
20 ms
Total request
31 ms

Ranker menilai tiap kandidat dengan feature yang lebih kaya daripada yang sanggup dibayar retrieval. Dalam simulasi ini, skornya adalah afinitas sebenarnya ditambah noise yang mengecil seiring naiknya biaya. Dengan 0,10 ms per item, precision@10, yaitu porsi top 10 yang relevan, bernilai 0,80 pada data contoh. Recall membatasinya: item yang terlewat retrieval tidak bisa di-rank.

Asumsi
Waktu retrieval (pencarian ANN + user tower)10 ms
Satu kemiripan item-item di re-ranker1.0 µs
Biaya ranker0.10 ms per itemWaktu pada satu core. Core sibuk = request/s × item yang dinilai × biaya
Dunia contoh300 pengguna · 1,000 itemSelera tersembunyi 8 dimensi ditambah noise, 8 kategori, seed 7. Recall, precision, dan keragaman diukur di sini, bukan pada 1 juta item
Item relevantop 20 sebenarnya20 afinitas sebenarnya tertinggi tiap pengguna, kunci jawaban untuk recall dan precision
Model two-towerrank-2 SVDPendekatan dot product 2-D terbaik untuk afinitas sebenarnya. Model yang dilatih dari klik akan lebih buruk
Noise rankerσ = 0.16 × √(0.1 ms ÷ cost)Disimulasikan: ranker yang lebih mahal melihat lebih banyak feature, jadi skornya lebih dekat ke afinitas sebenarnya
Kumpulan re-ranktop 100MMR hanya mengurutkan ulang bagian atas daftar hasil ranking
Feedback loopK = 10 · 40 rondeDisimulasikan, seed 11. Prior dihitung sebagai K impression
Targetrecall ≥ 0.8 · P@10 ≥ 0.6 · ≥ 4 kategori · ≤ 14 hariDitetapkan untuk kebutuhan ini, bukan standar industri
Tidak dimodelkanfeature fetch, caching, position biasWaktu retrieval mewakili jaringan dan pencarian feature
Semua konstanta adalah asumsi untuk kebutuhan ini, ditetapkan 25 Oktober 2026.

Seret Biaya ranker per item dari 0,01 ke 0,5 ms dan lihat awan titik merapat ke diagonal. Tiap titik adalah satu kandidat: probabilitas klik sebenarnya di sumbu mendatar, skor ranker di sumbu tegak. Titik di diagonal dinilai sempurna. Cincin teal menandai 20 item relevan pengguna; yang jatuh di bawah garis putus-putus tidak masuk feed. Precision naik cepat di awal lalu mendatar, sementara waktu ranking tumbuh lurus seiring biaya.

Langkah 4 dari 6: Re-ranking untuk Feed

Menukar sedikit relevansi dengan keragaman lewat MMR

Latency
31 ms
Recall
0.87
Feed P@10
0.72
Kategori
4.5
Hari uji
6
Desain untuk 10M pengguna · 1M item · 1.000 req/s · anggaran 100 ms
Recall, precision, dan kategori diukur pada data contoh
Feed pengguna #1, huruf = kategorirankedDDDDDDDDHDλ = 0.70DDDHADDDADgaris teal = item long-tailsemua 300 pengguna contoh, menurut λ0480%50%100%λ = 01kategori dalam feed · relevansi hilang
Bobot relevansi λ (1 = urutan rank, 0 = paling beragam)0.70
Item per feed (k)10
Pengguna contoh#1 dari 300
Kategori di top 10
4.5
Porsi long-tail
7.6%
Relevansi hilang
2.5%
Feed P@10
0.72

Maximal marginal relevance (MMR) menyusun feed satu slot demi satu slot. Tiap pilihan memaksimalkan λ × relevansi − (1 − λ) × kemiripan tertingginya dengan item yang sudah dipilih. Di sini kategori naik dari 3,6 ke 4,5 dengan 2,5% relevansi hilang. Porsi long-tail, yaitu item di luar 20% teratas menurut popularitas, hanya bergeser dari 8,5% ke 7,6%: keragaman kategori tidak sama dengan menjangkau item yang kurang populer.

Asumsi
Waktu retrieval (pencarian ANN + user tower)10 ms
Satu kemiripan item-item di re-ranker1.0 µs
Biaya ranker0.10 ms per itemWaktu pada satu core. Core sibuk = request/s × item yang dinilai × biaya
Dunia contoh300 pengguna · 1,000 itemSelera tersembunyi 8 dimensi ditambah noise, 8 kategori, seed 7. Recall, precision, dan keragaman diukur di sini, bukan pada 1 juta item
Item relevantop 20 sebenarnya20 afinitas sebenarnya tertinggi tiap pengguna, kunci jawaban untuk recall dan precision
Model two-towerrank-2 SVDPendekatan dot product 2-D terbaik untuk afinitas sebenarnya. Model yang dilatih dari klik akan lebih buruk
Noise rankerσ = 0.16 × √(0.1 ms ÷ cost)Disimulasikan: ranker yang lebih mahal melihat lebih banyak feature, jadi skornya lebih dekat ke afinitas sebenarnya
Kumpulan re-ranktop 100MMR hanya mengurutkan ulang bagian atas daftar hasil ranking
Feedback loopK = 10 · 40 rondeDisimulasikan, seed 11. Prior dihitung sebagai K impression
Targetrecall ≥ 0.8 · P@10 ≥ 0.6 · ≥ 4 kategori · ≤ 14 hariDitetapkan untuk kebutuhan ini, bukan standar industri
Tidak dimodelkanfeature fetch, caching, position biasWaktu retrieval mewakili jaringan dan pencarian feature
Semua konstanta adalah asumsi untuk kebutuhan ini, ditetapkan 25 Oktober 2026.

Atur λ ke 0, lalu kembali ke 1. Pada 0, feed mengambil item paling berbeda yang bisa ditemukan, jadi kategori naik mendekati 8 dan relevansi anjlok. Kurva menunjukkan rentang yang berguna: antara sekitar 0,6 dan 0,8, kategori naik lebih cepat daripada relevansi turun. Kemiripan di sini adalah cosine antar-vector item tersembunyi. Di produksi, kemiripan sering berasal dari item embedding atau aturan sederhana, misalnya paling banyak dua item dari satu kreator.

Langkah 5 dari 6: Feedback Loop

Klik hanya datang dari yang ditampilkan feed

Latency
31 ms
Recall
0.87
Feed P@10
0.72
Kategori
4.5
Hari uji
6
Desain untuk 10M pengguna · 1M item · 1.000 req/s · anggaran 100 ms
Recall, precision, dan kategori diukur pada data contoh
Simulasi: 300 pengguna contoh, masing-masing 10 item per ronde00.51ronde 140CTR · katalog tampil · Gini impression · putus-putus: tanpa eksplorasi
Ronde40
Laju eksplorasi ε (porsi slot untuk item acak)10%
CTR, ronde 40
42.1%
Gini impression
0.89
Katalog yang pernah tampil
100%
CTR dengan ε = 0
46.2%

Memberikan 10% slot ke item acak mengorbankan 4,2% CTR pada ronde 40 dan menampilkan 100% katalog, bukan 8% (simulasi). Koefisien Gini impression, yang bernilai 0 saat semua item tampil merata dan 1 saat satu item mengambil semuanya, turun dari 0,97 ke 0,89. Model berikutnya dilatih dari log yang lebih luas ini.

Simulasi. Tiap estimasi dimulai dari prediksi two-tower dan diperbarui dari klik pengguna itu: (klik + 10 × prior) ÷ (impression + 10). P(klik) adalah afinitas sebenarnya.
Asumsi
Waktu retrieval (pencarian ANN + user tower)10 ms
Satu kemiripan item-item di re-ranker1.0 µs
Biaya ranker0.10 ms per itemWaktu pada satu core. Core sibuk = request/s × item yang dinilai × biaya
Dunia contoh300 pengguna · 1,000 itemSelera tersembunyi 8 dimensi ditambah noise, 8 kategori, seed 7. Recall, precision, dan keragaman diukur di sini, bukan pada 1 juta item
Item relevantop 20 sebenarnya20 afinitas sebenarnya tertinggi tiap pengguna, kunci jawaban untuk recall dan precision
Model two-towerrank-2 SVDPendekatan dot product 2-D terbaik untuk afinitas sebenarnya. Model yang dilatih dari klik akan lebih buruk
Noise rankerσ = 0.16 × √(0.1 ms ÷ cost)Disimulasikan: ranker yang lebih mahal melihat lebih banyak feature, jadi skornya lebih dekat ke afinitas sebenarnya
Kumpulan re-ranktop 100MMR hanya mengurutkan ulang bagian atas daftar hasil ranking
Feedback loopK = 10 · 40 rondeDisimulasikan, seed 11. Prior dihitung sebagai K impression
Targetrecall ≥ 0.8 · P@10 ≥ 0.6 · ≥ 4 kategori · ≤ 14 hariDitetapkan untuk kebutuhan ini, bukan standar industri
Tidak dimodelkanfeature fetch, caching, position biasWaktu retrieval mewakili jaringan dan pencarian feature
Semua konstanta adalah asumsi untuk kebutuhan ini, ditetapkan 25 Oktober 2026.

Tekan Putar pada ε = 0, lalu ulangi pada 10%. Tanpa eksplorasi, cakupan berhenti di bawah 10% katalog dalam simulasi ini, karena item yang tidak pernah ditampilkan model tidak pernah bisa diklik, dan estimasinya tidak pernah berubah. Eksplorasi adalah perbaikan termurah: sebagian kecil slot menampilkan item yang belum pasti bagi model. Metode bandit memilih slot itu lebih cermat daripada pilihan acak, dan koreksi off-policy memberi bobot ulang pada klik di log saat model berikutnya dilatih.

Langkah 6 dari 6: Offline dan Online, lalu Tinjauan

Durasi A/B test dan desain dibandingkan dengan kebutuhan

Latency
31 ms
Recall
0.87
Feed P@10
0.72
Kategori
4.5
Hari uji
6
Desain untuk 10M pengguna · 1M item · 1.000 req/s · anggaran 100 ms
Recall, precision, dan kategori diukur pada data contoh
✓Latency retrieval + rank + re-rank ≤ 100 ms31 ms
✓Recall ≥ 0.8, data contoh0.87
✓Precision@10 feed ≥ 0.6, data contoh0.72
✓Keragaman ≥ 4 kategori, data contoh4.5
✓Durasi uji ≤ 14 hari6 hari
Hari A/B test terhadap minimum detectable effect02040batas 14 hari0.5%lift 10%lift relatif pada laju klik yang ingin dideteksi
Laju dasar p₁ (porsi pengguna yang mengklik)5.0%
Minimum detectable effect (lift relatif)2.0%
Tingkat signifikansi α (dua sisi)0.05
Power (1 − β)80%
Pengguna harian (porsi pengguna terdaftar)3M (30%)
Porsi traffic dalam uji (kedua arm)10%
n = (1.96 + 0.84)² × [p₁(1−p₁) + p₂(1−p₂)] ÷ (p₂ − p₁)², p₂ = 5.10%
hari = 2 × 752,700 ÷ 300,000 per hari = 5.0
Pengguna per arm
753k
Pengguna uji per hari
300k
Hari uji
6

Semua target terpenuhi: 31 ms per request, recall 0,87 dan precision feed 0,72 pada data contoh, 4,5 kategori per feed, dan uji 6 hari. Metrik offline seperti recall dan precision dihitung dari data log, yang hanya berisi apa yang ditampilkan model lama. A/B test online membagi pengguna aktif antara desain lama dan baru, dan menjadi pemeriksaan terakhir.

Asumsi
Waktu retrieval (pencarian ANN + user tower)10 ms
Satu kemiripan item-item di re-ranker1.0 µs
Biaya ranker0.10 ms per itemWaktu pada satu core. Core sibuk = request/s × item yang dinilai × biaya
Dunia contoh300 pengguna · 1,000 itemSelera tersembunyi 8 dimensi ditambah noise, 8 kategori, seed 7. Recall, precision, dan keragaman diukur di sini, bukan pada 1 juta item
Item relevantop 20 sebenarnya20 afinitas sebenarnya tertinggi tiap pengguna, kunci jawaban untuk recall dan precision
Model two-towerrank-2 SVDPendekatan dot product 2-D terbaik untuk afinitas sebenarnya. Model yang dilatih dari klik akan lebih buruk
Noise rankerσ = 0.16 × √(0.1 ms ÷ cost)Disimulasikan: ranker yang lebih mahal melihat lebih banyak feature, jadi skornya lebih dekat ke afinitas sebenarnya
Kumpulan re-ranktop 100MMR hanya mengurutkan ulang bagian atas daftar hasil ranking
Feedback loopK = 10 · 40 rondeDisimulasikan, seed 11. Prior dihitung sebagai K impression
Targetrecall ≥ 0.8 · P@10 ≥ 0.6 · ≥ 4 kategori · ≤ 14 hariDitetapkan untuk kebutuhan ini, bukan standar industri
Tidak dimodelkanfeature fetch, caching, position biasWaktu retrieval mewakili jaringan dan pencarian feature
Semua konstanta adalah asumsi untuk kebutuhan ini, ditetapkan 25 Oktober 2026.

Turunkan Minimum detectable effect dari 2% ke 1%, dan durasi uji kira-kira menjadi empat kali lipat, karena ukuran sampel tumbuh sebesar satu per kuadrat selisihnya. Menaikkan porsi traffic memperpendek uji, tetapi menempatkan lebih banyak pengguna pada desain yang belum terbukti. Tiap pengguna dihitung sekali, di satu arm, jadi uji yang berjalan berhari-hari juga harus mencakup pola mingguan. Recall dan precision offline murah dihitung dan berguna memilih kandidat; A/B test menentukan mana yang dirilis.

Bagaimana feed rekomendasi dirancang?

Feed rekomendasi memilih segelintir item untuk tiap pengguna dari katalog yang terlalu besar untuk dinilai seluruhnya. Sistem produksi membagi kerja ini menjadi beberapa tahap: retrieval menyaring jutaan item menjadi beberapa ratus kandidat, ranker menilai kandidat itu dengan teliti, dan re-ranker mengurutkan ulang bagian atas daftar demi keragaman dan aturan bisnis. Tiap tahap memakai bagiannya dari anggaran latency, biasanya sekitar 100 ms per request.

Studi kasus ini merancang feed untuk 10 juta pengguna dan 1 juta item pada 1.000 request per detik. Latency, komputasi, dan durasi A/B test adalah aritmetika pasti. Recall, precision, dan keragaman diukur pada contoh sederhana ber-seed berisi 300 pengguna dan 1.000 item yang selera aslinya diketahui, jadi setiap pengukuran bisa dicek dengan kunci jawabannya. Akurasi ranker dan feedback loop adalah simulasi, dan diberi label begitu di halaman.

Ide utama

  • Ranker yang terjangkau untuk beberapa ratus item jauh terlalu lambat untuk sejuta item, jadi feed mengambil kandidat dulu dan hanya melakukan ranking pada kandidat itu.
  • Model two-tower memberi pengguna dan item vector yang dot product-nya memprediksi afinitas, sehingga retrieval menjadi nearest-neighbor search.
  • Recall saat retrieval membatasi semua tahap sesudahnya: item yang tidak terambil tidak bisa di-rank atau ditampilkan.
  • Biaya ranker per item berlipat sesuai jumlah kandidat, jadi ranker yang lebih kaya dan kandidat yang lebih banyak berebut anggaran latency yang sama.
  • Maximal marginal relevance menukar sedikit relevansi dengan keragaman; keragaman kategori saja tidak otomatis menjangkau item yang kurang populer.
  • Feed hanya mengumpulkan klik dari yang ditampilkannya, jadi tanpa eksplorasi, log dan model berikutnya menyempit ke sebagian kecil katalog.
  • Metrik offline memilih desain yang akan diuji; A/B test yang ukurannya disesuaikan dengan efek terkecil yang layak dideteksi menentukan desain yang dirilis.

Pertanyaan umum

Kenapa sistem rekomendasi memakai dua tahap, retrieval dan ranking?

Menilai semua item dengan model kaya berbiaya ukuran katalog × biaya per item: 1 juta item dengan 0,1 ms per item berarti 100 detik per request. Retrieval memakai model murah yang skornya bisa dicari lewat index, jadi ia mengembalikan beberapa ratus kandidat dalam hitungan milidetik. Ranker kaya lalu hanya memakai anggarannya untuk kandidat itu. Sistem YouTube tahun 2016 menjelaskan pembagian ini, dengan candidate generation yang mengisi ranking network terpisah.

Apa itu model two-tower?

Dua neural network, satu untuk pengguna dan satu untuk item, masing-masing memetakan input-nya ke vector berukuran sama. Prediksi afinitas adalah dot product kedua vector. Vector item bisa dihitung lebih dulu dan disimpan di vector index, jadi saat request datang, hanya vector pengguna yang dihitung, dan index mengembalikan item dengan dot product terbesar.

Berapa lama A/B test rekomendasi sebaiknya berjalan?

Cukup lama untuk mencapai ukuran sampel bagi efek terkecil yang layak dideteksi. Dengan laju klik dasar 5%, lift relatif 2%, α = 0.05, dan power 80%, tiap arm butuh sekitar 753.000 pengguna. Dengan 300.000 pengguna uji per hari, itu berarti 6 hari. Dalam praktiknya, uji umum dijalankan dalam hitungan minggu penuh, supaya perilaku hari kerja dan akhir pekan sama-sama tercakup.

Kenapa feed rekomendasi terus menampilkan item populer?

Klik hanya datang dari item yang ditampilkan feed, dan model hanya belajar dari klik itu. Item yang tampil lebih awal mengumpulkan bukti dan mempertahankan tempatnya, sedangkan item yang tidak pernah tampil tetap dengan estimasi awalnya. Dalam simulasi studi kasus ini, feed tanpa eksplorasi hanya pernah menampilkan kurang dari 10% katalog. Memberikan sebagian kecil slot untuk eksplorasi mengorbankan sebagian click-through rate dan memperluas hal yang bisa dipelajari model berikutnya.

Penjelasan terkait

Referensi

  1. Covington, Adams, and Sargin (2016), "Deep Neural Networks for YouTube Recommendations", RecSys
  2. Yi et al. (2019), "Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations", RecSys
  3. Carbonell and Goldstein (1998), "The Use of MMR, Diversity-Based Reranking for Reordering Documents and Producing Summaries", SIGIR
  4. Chen et al. (2019), "Top-K Off-Policy Correction for a REINFORCE Recommender System", WSDM
  5. Kohavi, Longbotham, Sommerfield, and Henne (2009), "Controlled Experiments on the Web: Survey and Practical Guide", Data Mining and Knowledge Discovery

Terakhir diperbarui