Topik wawancara representatif

Bagaimana Cara Mengevaluasi Sistem Rekomendasi Secara Offline dan Online?

DataSulit
Tim Redaksi Offer.ccDipublikasikan Diperbarui

Pertanyaan

Sebuah feed menampilkan 10 rekomendasi per permintaan. Sebuah candidate ranker meningkatkan NDCG@10 pada log implicit-feedback historis. Bagaimana Anda memutuskan apakah akan meluncurkannya?

Pertanyaan dan kapan menggunakannya

Sebuah feed menampilkan 10 rekomendasi per permintaan. Sebuah candidate ranker meningkatkan NDCG@10 pada log implicit-feedback historis. Rancang evaluasi offline dan eksperimen online yang diperlukan untuk memutuskan apakah akan meluncurkannya. Cakup pembagian data (data split), candidate set, metrik pemeringkatan dan beyond-accuracy, bias eksposur, desain eksperimen, guardrail, serta investigasi ketika pemenang offline kalah secara online.

Ini adalah pertanyaan wawancara rekayasa machine learning dan data science yang representatif. Pertanyaan ini mengevaluasi keputusan model, bukan arsitektur dari keseluruhan platform rekomendasi. Skenario ini mengasumsikan implicit feedback seperti klik, penyimpanan (saves), atau waktu tonton (watch time). Log ini mencatat hasil untuk item yang diekspos oleh sistem lama; ketiadaan interaksi (silence) pada item yang tidak diekspos berstatus tidak diketahui (unknown), bukan negatif yang terverifikasi.

Apa yang dievaluasi oleh pewawancara

Jawaban dasar mencantumkan precision, recall, dan NDCG. Jawaban yang kuat pertama-tama mendefinisikan tindakan pengguna dan permukaan penayangan (serving surface), karena metrik yang sama dapat memiliki arti berbeda untuk hasil pencarian, beranda (home feed), atau “item serupa”. Jawaban tersebut kemudian membuat baseline dan kandidat dapat dibandingkan: batas waktu (time cutoff), pengguna, aturan kelayakan (eligibility rules), candidate pool, label, dan nilai K yang sama.

Sinyal berikutnya adalah apakah kandidat mengenali batasan dari logged feedback. Pembagian baris acak (random row split) dapat membocorkan perilaku masa depan ke dalam pelatihan. Negative sampling dapat mengubah urutan model. Log historis menguntungkan item yang dipilih oleh kebijakan sebelumnya dan mencampuradukkan preferensi dengan eksposur dan posisi. Evaluasi offline dapat menolak model yang lemah atau tidak aman, tetapi tidak dapat dengan sendirinya menetapkan efek kausal produk dari perubahan kebijakan tersebut.

Terakhir, pewawancara menginginkan proses peluncuran. Hal itu mencakup penetapan acak yang stabil (stable randomized assignment), pencatatan eksposur (exposure logging), hasil utama (primary outcome), guardrail sistem dan bahaya pengguna (user harm), perencanaan kekuatan statistik (power) dan durasi, kriteria rollback, pemeriksaan segmen, serta diagnosis metodis ketika hasil offline dan online tidak sejalan.

Pertanyaan untuk diklarifikasi sebelum menjawab

  • Keputusan pengguna mana yang harus ditingkatkan? Jika tujuannya adalah menemukan setidaknya satu item yang berguna dengan cepat, MRR mungkin lebih penting; jika setiap posisi dalam feed sepuluh item memberikan nilai, NDCG dan keterlibatan kumulatif (cumulative engagement) lebih cocok.
  • Bagaimana label didefinisikan dan dimatangkan (matured)? Klik, tontonan yang memenuhi syarat (qualified watch), penyimpanan, pembelian, atau ketidaksukaan eksplisit mewakili utilitas yang berbeda. Pembelian yang tertunda memerlukan jendela observasi yang matang.
  • Apakah ranker menilai seluruh katalog atau kandidat dari upstream retriever? Evaluasi harus mempertahankan batasan kandidat produksi. Ranker tidak dapat memulihkan item relevan yang tidak pernah disediakan oleh retrieval.
  • Item mana yang memenuhi syarat pada setiap waktu historis? Item yang dihapus, tidak tersedia, atau belum dibuat tidak boleh muncul dalam candidate set sebelumnya.
  • Bisakah produk menjalankan eksperimen acak? Jika tidak, kesimpulannya harus lebih berhati-hati. Propensitas yang dicatat dapat mendukung estimator kontrafaktual, tetapi hanya jika kebijakan lama memberikan dukungan yang memadai untuk pilihan kebijakan baru.
  • Hasil apa yang tidak boleh mengalami regresi? Latensi, error, penyembunyian (hides) atau laporan, konsentrasi konten, eksposur pemasok, dan kualitas hilir (downstream quality) dapat membatasi model bahkan ketika keterlibatan meningkat.

Kerangka jawaban 30 detik

“Saya tidak akan meluncurkannya hanya berdasarkan peningkatan NDCG@10 saja. Pertama, saya akan membekukan tujuan produk, label, K, point-in-time split, katalog yang memenuhi syarat, batasan pembuatan kandidat, dan baseline perbandingan. Pada contoh yang sama, saya akan melaporkan recall@10 dan NDCG@10, menambahkan cakupan (coverage) atau keragaman (diversity) jika produk membutuhkannya, serta membedah segmen pengguna baru, pengguna dengan data minim (sparse users), item baru, dan pasar utama. Saya akan memperlakukan item yang tidak diekspos sebagai tidak diketahui dan mendokumentasikan setiap negative sampling. Jika kandidat lolos pemeriksaan offline, saya akan menjalankan eksperimen acak tingkat pengguna dengan log penetapan dan eksposur, satu hasil utama bagi pengguna atau bisnis, guardrail latensi dan bahaya, minimum detectable effect serta durasi yang telah ditentukan sebelumnya, dan ambang batas rollback. Kemenangan offline membuat model memenuhi syarat untuk diuji; hasil online acaklah yang memutuskan apakah model tersebut meningkatkan produk.”

Solusi langkah demi langkah

Langkah 1: Tentukan keputusan sebelum memilih metrik

Tulis estimand satu baris: “Untuk permintaan feed yang memenuhi syarat dari populasi target, mengganti ranker saat ini dengan kandidat akan mengubah hasil utama pengguna selama horizon eksperimen sebesar berapa?” Ini menetapkan populasi, intervensi, hasil, dan jendela waktu. Hal ini juga mencegah pemilihan metrik apa pun yang kemudian terlihat menguntungkan.

Gunakan setidaknya ranker produksi dan baseline popularitas atau keterkinian (recency) sederhana. Baseline sederhana mendeteksi pipeline yang tampak canggih tetapi tidak dapat mengalahkan kebijakan yang murah. Pertahankan filter kelayakan dan pembuatan kandidat tetap konstan ketika pertanyaan secara spesifik mengenai ranker. Jika retrieval juga berubah, evaluasi hal tersebut sebagai perlakuan terpisah atau nyatakan hasilnya secara eksplisit sebagai perbandingan sistem end-to-end.

Langkah 2: Rekonstruksi contoh offline point-in-time

Untuk setiap permintaan evaluasi pada waktu t, buat fitur hanya dari informasi yang tersedia hingga t, gunakan katalog dan status kelayakan pada t, dan tempatkan interaksi selanjutnya di jendela label. Bagi berdasarkan waktu sehingga pelatihan mendahului validasi dan pengujian. Kelompokkan peristiwa terkait berdasarkan pengguna atau sesi ketika melintasi partisi akan membocorkan jawabannya. Bekukan definisi fitur, pemfilteran, deduplikasi, dan kematangan label sebelum memeriksa hasil kandidat.

Jalankan baseline dan kandidat pada pengguna, permintaan, candidate pool, label, cutoff, dan K yang sama. Laporkan jumlah traffic yang dikecualikan oleh fitur yang hilang atau label yang belum matang; jika tidak, sebuah model dapat “meningkat” dengan membuang kasus-kasus sulitnya secara diam-diam. Evaluasi irisan penting seperti pengguna baru versus pengguna lama, pengguna dengan data minim versus pengguna aktif (heavy users), item baru versus item mapan, lokal (locale), perangkat, dan kategori katalog.

Langkah 3: Cocokkan setiap metrik dengan klaim produk

Misalkan item relevan yang disimpan (held-out) adalah {A, C} dan pemeringkatan lima teratas adalah [A, B, D, C, E]. Precision@5 adalah 2 / 5, dan recall@5 adalah 2 / 2 = 1. NDCG memberi item pada peringkat 1 bobot lebih besar daripada item relevan pada peringkat 4, sehingga metrik ini menguji urutan serta keanggotaan. MRR berguna ketika hasil relevan pertama mendominasi pengalaman.

Nilai-nilai ini menjawab pertanyaan yang berbeda:

  • Recall@K: seberapa banyak set relevan berlabel yang masuk ke dalam K teratas.
  • Precision@K: berapa banyak dari K item yang ditampilkan diberi label relevan; log implisit dapat mengandung negatif palsu (false negatives).
  • NDCG@K: apakah item dengan perolehan lebih tinggi muncul lebih awal, dengan diskon peringkat.
  • MRR@K: seberapa awal item relevan berlabel pertama muncul.
  • Coverage, diversity, novelty, atau calibration: apakah kebijakan menayangkan katalog yang cukup, menghindari daftar yang berulang, mengekspos nilai penemuan (discovery value), atau menyelaraskan paduan konten dengan minat pengguna. Pilih hanya metrik yang terikat dengan risiko produk.

Tambahkan pengukuran penayangan (serving measures)—latensi, tingkat error dan fallback, ketersediaan fitur, serta distribusi skor—karena model offline yang tidak dapat memenuhi anggaran online tidak dapat diluncurkan. Tidak ada metrik offline tunggal yang menjadi pemenang universal.

Langkah 4: Buat bias logged-feedback terlihat

Sistem lama memilih apa yang dapat dilihat pengguna. Sebuah klik berarti eksposur dan tindakan positif; tidak ada klik dapat berarti ketidaktertarikan, posisi yang buruk, atau tidak adanya eksposur. Jangan mengubah setiap item katalog yang tidak teramati menjadi negatif yang pasti. Pemeringkatan katalog penuh (full-catalog ranking) adalah perbandingan paling bersih jika memungkinkan. Jika evaluasi mengambil sampel negatif (negative sampling), gunakan candidate pool, sampler, ukuran sampel, dan random seed yang sama untuk setiap model, laporkan hal tersebut, dan jangan membandingkan nilai metrik hasil sampling dengan nilai katalog penuh. Sampler negatif yang berbeda bahkan dapat membalikkan urutan model yang tampak.

Hasil offline tetap bergantung pada kebijakan yang dicatat. Jika propensitas eksposur acak dicatat, estimasi inverse-propensity, self-normalized, atau doubly robust dapat mengurangi bias kebijakan, tetapi metode tersebut tidak menciptakan bukti di mana kebijakan lama hampir tidak pernah mengekspos suatu item. Laporkan tumpang tindih (overlap) dan varians bobot, serta potong (clip) atau tolak estimator yang hasilnya didorong oleh beberapa bobot ekstrem.

Langkah 5: Ubah kandidat yang lolos evaluasi offline menjadi eksperimen online

Lakukan pengacakan berdasarkan unit yang stabil, biasanya pengguna atau akun, sebelum eksposur rekomendasi. Gunakan klaster seperti rumah tangga atau grup sosial ketika perlakuan satu orang dapat memengaruhi hasil orang lain. Catat penetapan, kelayakan, slate yang dihasilkan, posisi, eksposur, tindakan, versi model, dan fallback. Analisis berdasarkan perlakuan yang ditetapkan—intent to treat—sehingga kegagalan dan fallback tidak dihapus dari kelompok (arm) kandidat.

Pilih satu hasil utama bagi pengguna atau bisnis yang sesuai dengan tujuan yang dinyatakan. Tentukan sebelumnya minimum detectable effect, tingkat signifikansi, kekuatan statistik (power), alokasi, durasi, dan horizon perlakuan. Guardrail dapat mencakup latensi p95, error, penyembunyian, laporan, pengabaian (abandonment), konsentrasi konten, dan kualitas hilir. Sebelum membaca dampak, verifikasi keseimbangan rasio sampel (sample-ratio balance), persistensi penetapan, tingkat eksposur, kelengkapan telemetri, dan kematangan label yang sebanding.

Mulailah dengan peningkatan bertahap (ramp) kecil yang dapat dibatalkan, lalu perluas hanya selama guardrail tetap terjaga. Tentukan kondisi penghentian dan rollback sebelumnya. Musiman (seasonality) dan hasil yang tertunda dapat memerlukan siklus bisnis lengkap atau jendela observasi yang lebih panjang; mengintip hasil berulang kali dan berhenti pada hari yang menguntungkan akan membatalkan pengujian horizon tetap yang biasa.

Langkah 6: Diagnosis kemenangan offline yang kalah secara online

Selidiki batasannya secara berurutan daripada langsung membuang model tersebut:

  1. Integritas eksperimen: ketidaksesuaian rasio sampel (sample-ratio mismatch), penetapan yang tidak stabil, eksposur yang hilang, atau tingkat fallback yang tidak seimbang.
  2. Paritas penayangan (serving parity): fitur online, filter, pembuatan kandidat, kesegaran (freshness), latensi, dan versi model cocok dengan pemutaran ulang (replay) offline.
  3. Konstruksi evaluasi: kebocoran masa depan (future leakage), pembagian acak yang tidak realistis, candidate pool yang berbeda, atau sampler negatif yang menguntungkan secara bias.
  4. Ketidakcocokan tujuan: NDCG mengoptimalkan klik historis sementara produk menghargai kepuasan, retensi, pembelian, atau penemuan yang beragam.
  5. Bias kebijakan: kandidat mengeksplorasi item dan posisi yang tidak terwakili dalam log lama, sehingga label offline meremehkan atau salah menilai nilainya.
  6. Efek heterogen: keuntungan global menyembunyikan kerugian bagi pengguna baru, suatu pasar, kelas item, atau segmen bernilai tinggi.
  7. Dinamika: efek kebaruan (novelty) memudar, kreator atau pemasok beradaptasi, atau distribusi eksposur baru mengubah data pelatihan di masa depan.

Aturan keputusan memiliki tiga lapisan: bukti offline menyatakan kandidat masuk akal dan aman di bawah kondisi log yang diketahui; eksperimen online acak memperkirakan efek kausal produknya; pemantauan produksi memeriksa apakah efek tersebut bertahan saat pengguna, inventaris, dan loop umpan balik berubah.

Contoh jawaban yang kuat

“Pertama-tama saya akan membuat kedua ranker dapat dibandingkan. Batas evaluasi, item yang memenuhi syarat, output retrieval, label, pengguna, dan K=10 harus identik, dan semua fitur harus sudah ada pada saat permintaan dilakukan. Saya akan menggunakan test set di luar waktu (out-of-time) serta melaporkan pengecualian dan kematangan label. Di samping model produksi, saya akan mempertahankan baseline popularitas, karena kandidat kompleks yang tidak dapat mengalahkannya berarti belum siap.

NDCG@10 berguna untuk urutan, tetapi ini bukan keputusan peluncuran. Saya akan menambahkan recall@10, lalu ukuran spesifik produk seperti cakupan katalog dan keragaman dalam daftar (within-list diversity), ditambah latensi dan tingkat fallback. Hasil perlu dibedah untuk pengguna cold-start, pengguna dengan data minim, item baru, dan pasar penting. Saya juga akan menyatakan bagaimana data negatif dibentuk. Kebijakan historis menentukan eksposur, sehingga item yang tidak diekspos berstatus tidak diketahui; jika negatif disampel, setiap model harus menggunakan sampler yang sama dan angka-angkanya tidak dapat dibandingkan dengan metrik katalog penuh.

Jika kandidat lolos pemeriksaan tersebut, saya akan mengacak secara persisten berdasarkan pengguna. Penetapan dan eksposur dicatat sebelum hasil terjadi, dan analisis tetap menyertakan fallback dalam kelompok yang ditetapkan. Saya akan menentukan sebelumnya satu hasil utama, minimum detectable effect, kekuatan statistik, horizon, guardrail, dan kriteria rollback. Saya akan memverifikasi keseimbangan rasio sampel dan telemetri sebelum menginterpretasikan peningkatan (lift).

Jika NDCG offline meningkat tetapi hasil online turun, saya akan memeriksa integritas eksperimen dan paritas penayangan terlebih dahulu. Kemudian saya akan memeriksa kebocoran waktu, ketidaksesuaian kandidat dan sampling, kegagalan proksi metrik, bias eksposur, dan efek segmen. Hasil offline memberi kandidat hak untuk diuji dalam eksperimen; hanya hasil kausal online, bersama dengan guardrail, yang memberi hak untuk diluncurkan.”

Kesalahan umum

  • Meluncurkan hanya berdasarkan NDCG yang lebih tinggi → Kualitas pemeringkatan offline bergantung pada label historis dan tidak memperkirakan efek kausal produk → Gunakan itu sebagai sinyal penyaringan, lalu wajibkan hasil online acak dan guardrail.
  • Membagi baris interaksi secara acak → Perilaku pengguna atau status item di masa depan dapat bocor ke dalam pelatihan → Gunakan point-in-time split dan susun fitur, kelayakan katalog, serta label sebagaimana adanya pada saat itu.
  • Mengubah retrieval dan ranking secara bersamaan tanpa menyatakannya → Sumber peningkatan tidak dapat diidentifikasi → Pertahankan pembuatan kandidat tetap konstan untuk perbandingan ranker atau beri label perlakuan tersebut sebagai end-to-end.
  • Memperlakukan setiap item yang tidak teramati sebagai negatif → Banyak item yang tidak pernah diekspos → Bedakan non-tindakan yang diekspos dari item yang tidak diketahui dan dokumentasikan candidate set evaluasi.
  • Menggunakan sampel negatif yang berbeda untuk setiap model → Perbandingan mengubah tingkat kesulitan model maupun pengujian → Gunakan pool, sampler, ukuran, dan seed yang sama, atau beri peringkat pada katalog penuh.
  • Hanya melaporkan satu metrik agregat → Rata-rata global dapat menyembunyikan kegagalan cold-start atau kegagalan pasar → Laporkan irisan yang telah ditentukan sebelumnya dan ketidakpastian di samping metrik agregat.
  • Mengoptimalkan klik tanpa tujuan produk → Bias posisi atau clickbait dapat meningkatkan proksi sekaligus merusak kepuasan → Tentukan hasil utama dan guardrail bahaya sebelum pemilihan model.
  • Menghapus fallback dari analisis perlakuan → Ini menyembunyikan kegagalan penayangan yang nyata dan merusak pengacakan → Gunakan analisis intent-to-treat dan laporkan fallback sebagai guardrail.
  • Mengintip hasil hingga eksperimen menjadi positif → Penghentian yang tidak terencana dan berulang kali akan menggelembungkan positif palsu (false positives) → Tetapkan horizon dan rencana analisis atau gunakan desain sekuensial yang valid.
  • Langsung menyatakan kesenjangan offline-online sebagai “model drift” → Pencatatan yang rusak, masalah paritas, atau penetapan yang salah sering kali menghasilkan gejala yang sama → Periksa integritas eksperimen dan paritas penayangan sebelum perilaku model.

Pertanyaan lanjutan dan jawabannya

Pertanyaan lanjutan 1: Bagaimana jika Anda tidak dapat menjalankan eksperimen online?

Gunakan pemutaran ulang out-of-time, beberapa jendela historis, baseline yang kuat, pengujian irisan segmen, dan deployment shadow atau canary terbatas untuk mengurangi risiko operasional, tetapi nyatakan bahwa dampak kausal produk tetap belum terbukti. Jika propensitas acak telah dicatat dan kebijakan baru memiliki dukungan yang cukup, tambahkan estimasi IPS, self-normalized IPS, atau doubly robust dengan diagnostik tumpang tindih dan varians. Jangan menyajikannya sebagai izin untuk mengekstrapolasi di luar dukungan yang tercatat.

Pertanyaan lanjutan 2: Bagaimana Anda mengevaluasi pengguna baru dan item baru?

Buat kohor cold-start eksplisit pada batas waktu evaluasi. Cegah riwayat pengguna atau interaksi item di masa depan masuk ke dalam fitur. Bandingkan cakupan fallback, hasil sesi pertama, eksposur item baru, dan waktu hingga tindakan bermakna pertama. Metrik global yang didominasi oleh pengguna mapan dan item populer tidak menjawab pertanyaan cold-start.

Pertanyaan lanjutan 3: Bagaimana jika waktu tonton meningkat tetapi keragaman menurun?

Kembalilah ke tujuan dan batasan yang telah ditentukan sebelumnya. Jika keragaman melindungi kepuasan jangka panjang, kesehatan katalog, atau pilihan pengguna, perlakukan hal itu sebagai guardrail atau target optimasi dengan batasan (constrained optimization target) daripada merata-ratakan metrik yang tidak terkait setelah hasilnya keluar. Periksa distribusi konsentrasi dan eksposur berulang berdasarkan segmen, lalu uji reranker atau batasan sebagai perlakuan baru.

Pertanyaan lanjutan 4: Kapan Anda harus mengacak berdasarkan klaster alih-alih pengguna?

Gunakan klaster ketika perlakuan meluap (spillover) ke seluruh unit: profil rumah tangga berbagi layar, rekomendasi sosial memengaruhi teman, atau eksposur marketplace mengubah inventaris bersama. Mengacak individu akan melanggar independensi dan mengkontaminasi kelompok uji. Penetapan klaster mengurangi ukuran sampel efektif, sehingga perhitungan kekuatan statistik harus menyertakan korelasi intra-klaster.

Pertanyaan lanjutan 5: Bisakah evaluasi kontrafaktual menggantikan pengujian A/B?

Metode ini dapat menyaring kebijakan ketika propensitas tindakan diketahui dan tumpang tindih memadai. IPS mengoreksi eksposur dengan membobot imbalan yang diamati, normalisasi mandiri (self-normalization) menukar sedikit bias untuk kontrol varians, dan metode doubly robust menggabungkan model imbalan dengan pembobotan propensitas. Semuanya dapat gagal jika propensitas hilang, tumpang tindih buruk, bobot ekstrem, atau model imbalan tidak tepat, sehingga klaim peluncuran tetap memerlukan pengujian online acak.

Pertanyaan lanjutan 6: Bagaimana cara mendeteksi loop umpan balik yang berbahaya setelah peluncuran?

Pantau konsentrasi eksposur, jangkauan kreator atau pemasok, cakupan katalog, impresi berulang, dan kualitas hasil pada kohor-kohor berikutnya—bukan hanya keterlibatan langsung. Pertahankan versi model dan kebijakan dalam log, bandingkan komposisi data pelatihan dari waktu ke waktu, dan pertahankan kebijakan eksplorasi atau referensi kecil jika memungkinkan. Lakukan rollback atau batasi kebijakan ketika konsentrasi atau guardrail bahaya melanggar batas yang telah ditentukan.

Sumber publik

Pertanyaan terkait