Praproses Diam-diam Membuang Sinyalnya

Ada satu tahap dalam pekerjaan semacam ini yang hampir semua orang anggap sebagai kerja bersih-bersih yang membosankan: praproses — pembersihan, penskalaan, dan pembentukan ulang data sebelum data itu sampai ke bagian yang benar-benar melakukan pembelajaran. Saya memperlakukannya persis seperti itu, sebagai tugas netral yang harus diselesaikan sebelum pekerjaan sesungguhnya dimulai. Tahap itu tidak netral, dan memperlakukannya sebagai netral membuat saya membayar mahal. Satu transformasi rutin yang saya terapkan, tanpa berpikir dua kali, diam-diam membuang justru informasi yang paling saya butuhkan, dan kemudian saya menghabiskan berminggu-minggu kebingungan karena sistemnya tampak buta terhadap sesuatu yang jelas-jelas ada di depan mata.

Selama itu, saya mencari di tempat yang salah. Saya terus menginterogasi bagian-bagian yang canggih, yakin bahwa kegagalannya berada di suatu tempat dalam kepintaran itu. Kegagalan itu telah terjadi jauh lebih awal, di bagian yang bahkan tidak pernah saya anggap sebagai sebuah keputusan.

Praproses terasa netral. Padahal tidak.

Ketika Anda menormalkan, menskalakan, menghaluskan, atau membentuk ulang data, hal itu benar-benar terasa seperti membersihkan — seperti mengelap meja sebelum mulai memasak. Netral, higienis, jelas benar. Perasaan itulah jebakannya, karena setiap operasi tersebut sebenarnya adalah sebuah keputusan: keputusan tentang informasi mana yang dipertahankan dan informasi mana yang dibuang.

Praproses “standar” sangat menggoda di sini, karena kata standar membuatnya terdengar seperti default yang sudah pasti dan netral, alih-alih sebuah pilihan. Padahal transformasi standar hanyalah sekumpulan default yang dipilih oleh seseorang, di suatu tempat, untuk kasus yang generik. Tertanam dalam setiap transformasi itu ada asumsi tentang apa yang penting dan apa yang tidak — dan asumsi-asumsi itu, yang sangat masuk akal secara umum, bisa jadi sepenuhnya, dan secara katastrofik, keliru untuk masalah spesifik Anda. Anda mewarisi asumsi itu tanpa pernah ditunjukkan keberadaannya, karena ia datang menyamar sebagai rutinitas.

Transformasi yang menghapus maknanya

Dalam kasus saya — dan saya sengaja menjaganya tetap umum — sebuah langkah normalisasi yang sepenuhnya rutin justru meratakan sejenis informasi yang, untuk masalah saya yang khusus, kebetulan merupakan bagian yang bermakna. Transformasinya sendiri benar. Itu standar. Itu jenis hal yang direkomendasikan setiap tutorial sebagai sesuatu yang sudah semestinya. Dan untuk masalah saya, transformasi itu menghapus sinyalnya sambil dengan setia mempertahankan derau.

Ini adalah penemuan yang benar-benar merendahkan hati, karena artinya model itu sama sekali tidak pernah gagal belajar. Model itu telah dibutakan sebelum datanya tiba. Dengan tangan saya sendiri, saya telah menghapus pembeda yang relevan saat proses pembersihan, lalu mendudukkan sistem di hadapan hasil yang telah dikosongkan itu dan bertanya-tanya mengapa ia tidak bisa melihat sesuatu yang sudah tidak ada lagi di sana.

Anda tidak bisa mempelajari apa yang tidak bisa Anda lihat

Inilah prinsip yang seharusnya sudah jelas tetapi tidak: model hanya pernah bisa bekerja dengan apa yang selamat dari praproses. Apa pun yang dihapus transformasi Anda sebelum datanya tiba, hilang begitu saja, secara permanen, sejauh menyangkut segala sesuatu di hilir. Tidak ada kecanggihan apa pun di kemudian hari yang bisa memulihkan informasi yang sudah dihapus sebelumnya. Anda tidak bisa menalar kembali ke sebuah pembeda yang sudah Anda hapuskan.

Jadi saya telah menjalankan seluruh upaya ini secara terbalik. Saya terus mencoba membuat model lebih pintar, memberinya kapasitas lebih besar, membantunya menemukan polanya — padahal masalah sebenarnya adalah saya telah membuang pola itu di hulu dan kini meminta model menemukan kembali sesuatu yang saya hapus sendiri. Ada semacam kekejaman yang aneh dalam menuntut sebuah sistem menemukan apa yang sudah Anda singkirkan dari jangkauannya, lalu menyalahkannya karena gagal.

Setiap transformasi bersifat hilang-informasi dan beropini

Kebenaran umum di balik ini adalah bahwa tidak ada yang namanya transformasi netral. Setiap pembentukan ulang data mengistimewakan sebagian aspeknya dan menekan aspek lainnya; itulah arti dari mentransformasi data. Penskalaan, pada dasarnya, menyatakan bahwa magnitudo absolut tidak penting. Penghalusan menyatakan bahwa detail jangka pendek tidak penting. Masing-masing adalah opini tentang masalah Anda — sebuah klaim tentang apa yang merupakan sinyal dan apa yang merupakan derau — dan masing-masing ditegaskan secara diam-diam, sebagai default, sebelum Anda sempat menyetujui atau menolaknya.

Keheningan itulah bagian yang berbahaya. Default berbahaya justru karena Anda tidak mengalaminya sebagai pilihan. Sebuah keputusan yang disajikan sebagai tugas remeh tidak mendapat pengawasan yang layak diterima sebuah keputusan. Anda tidak akan pernah menerima “bagian ini tidak penting” sebagai pernyataan sambil lalu tentang masalah Anda — tetapi itulah persis yang Anda terima, tanpa diteliti, setiap kali Anda menerapkan transformasi standar tanpa menanyakan apa asumsinya.

Lihat datanya sebelum dan sesudah

Disiplin yang lahir dari ini nyaris memalukan saking dasarnya: benar-benar lihat apa yang dilakukan praproses Anda terhadap data. Bandingkan sebelum dan sesudah setiap langkah. Lihat, secara konkret, apa yang berubah dan apa yang lenyap. Tanyakan, untuk setiap transformasi, “apa yang baru saja ini hapus, dan apakah saya benar-benar mampu kehilangannya?”

Ini pekerjaan yang membosankan, dan terasa jelas-jelas tidak sepadan dengan martabat masalah yang menarik. Tetapi perbandingan yang hambar dan tidak glamor inilah tempat sebagian keputusan paling berkonsekuensi dalam seluruh pipeline diambil secara diam-diam — diambil oleh default, oleh inersia, oleh rekomendasi sebuah tutorial, tanpa ada seorang pun yang benar-benar memutuskan apa-apa. Memilih untuk melihat berarti memilih mengubah kembali default yang diam itu menjadi pilihan yang kasatmata dan dapat diperiksa.

Bagian yang terasa murah menyembunyikan kesalahan yang mahal

Pada titik ini dalam proyek, hal ini mengeras menjadi pola yang saya lihat di mana-mana. Langkah-langkah yang terasa murah dan membosankan — praproses, konfigurasi, default yang sederhana — justru di situlah kesalahan yang mahal dan tak terlihat menumpuk, justru karena kemurahannya itulah yang membebaskannya dari pengawasan. Bagian yang glamor dan sulit mendapat seluruh perhatian yang cermat. Sistem perpipaannya hanya mendapat asumsi dan sebuah angkat bahu.

Dan sistem perpipaan itulah tempat airnya sebenarnya mengalir. Default yang salah dalam langkah yang membosankan tidak mengumumkan dirinya sebagai sesuatu yang penting; ia hanya diam-diam meracuni segala sesuatu di hilir sementara setiap mata terpaku pada mesin menarik di atasnya. Ketidaksesuaian antara di mana masalah berada dan ke mana perhatian tertuju, saya kini yakin, adalah salah satu sumber paling andal dari berbulan-bulan yang terbuang sia-sia dalam seluruh usaha ini.

Pelajaran yang lebih dalam: curigailah kata “cuma”

Yang akhirnya saya bawa pulang adalah kecurigaan yang mendalam terhadap satu kata kecil: cuma. Ini cuma normalisasi. Ini cuma membersihkan data. Ini cuma transformasi standar, cuma praproses, cuma rutinitas. Kata itu, “cuma,” justru di situlah bahayanya bersembunyi. Itu adalah penanda linguistik dari sebuah langkah yang sudah Anda putuskan sejak awal untuk tidak dipikirkan — sebuah bendera yang Anda tancapkan di tanah untuk memberi tahu diri sendiri bahwa tidak ada apa pun di sini yang layak diperiksa.

Sangat sering ada sesuatu di sana yang layak diperiksa. Kini, ketika sesuatu gagal dengan cara yang tidak masuk akal, salah satu pertanyaan paling awal saya bukan lagi tentang bagian yang pintar sama sekali. Pertanyaannya adalah: apa yang saya lakukan terhadap data ini, di langkah-langkah membosankan tadi, sebelum bagian yang menarik sempat melihatnya? Lebih dari sekali, jawabannya adalah bahwa saya telah membuang justru hal yang sedang saya cari, lalu memberi label perbuatan itu “cuma bersih-bersih.”

— Tidak ada sinyal, tidak ada imbal hasil, bukan nasihat investasi.