Pengacakan

Pertimbangan Praktis

Buat pipeline pembuatan data Anda dapat direproduksi. Misalnya, Anda ingin menambahkan fitur untuk melihat pengaruhnya terhadap kualitas model. Untuk eksperimen yang adil, set data Anda harus identik, kecuali untuk fitur baru ini. Jika pembuatan data tidak dapat direproduksi, Anda tidak dapat membuat set data ini.

Dengan semangat tersebut, pastikan setiap pengacakan dalam pembuatan data dapat dijadikan deterministik:

  • Meterbitkan generator angka acak (RNG). Penyemaian memastikan bahwa RNG menghasilkan nilai yang sama dalam urutan yang sama setiap kali Anda menjalankannya, sehingga membuat ulang set data.
  • Gunakan kunci hash invarian. Hashing adalah cara umum untuk memisahkan atau mengambil sampel data. Anda dapat melakukan hashing pada setiap contoh, dan menggunakan bilangan bulat yang dihasilkan untuk memutuskan pembagian mana untuk menempatkan contoh. Input ke fungsi hash Anda tidak boleh berubah setiap kali Anda menjalankan program pembuatan data. Jangan gunakan waktu saat ini atau angka acak dalam hash Anda, misalnya, jika Anda ingin membuat ulang hash secara on demand.

Pendekatan sebelumnya berlaku untuk pengambilan sampel dan pembagian data Anda.

Pertimbangan untuk Hashing

Bayangkan lagi, Anda telah mengumpulkan kueri Penelusuran dan menggunakan hashing untuk menyertakan atau mengecualikan kueri. Jika kunci hash hanya menggunakan kueri, lalu selama beberapa hari data, Anda akan selalu menyertakan kueri tersebut atau selalu mengecualikannya. Selalu menyertakan atau selalu mengecualikan kueri itu buruk karena:

  • Set pelatihan Anda akan melihat kumpulan kueri yang kurang beragam.
  • Set evaluasi Anda akan sulit, karena tidak akan tumpang-tindih dengan data pelatihan Anda. Pada kenyataannya, pada waktu penayangan, Anda akan melihat beberapa traffic live dalam data pelatihan, sehingga evaluasi Anda akan mencerminkan hal tersebut.

Sebagai gantinya, Anda dapat melakukan hashing pada kueri + tanggal, yang akan menghasilkan hashing yang berbeda setiap hari.

 

Visualisasi animasi yang menunjukkan bahwa hashing hanya pada kueri menyebabkan data masuk ke bucket yang sama setiap hari, tapi hashing pada kueri ditambah waktu kueri menyebabkan data masuk ke bucket yang berbeda setiap hari. Tiga bucket ini adalah Pelatihan, Evaluasi, dan Diabaikan.