Tantangan Industri vs Kaggle. Apakah mengumpulkan lebih banyak pengamatan dan memiliki akses ke lebih banyak variabel lebih penting daripada pemodelan mewah?


56

Saya harap judulnya cukup jelas. Di Kaggle, sebagian besar pemenang menggunakan susun dengan kadang-kadang ratusan model dasar, untuk memeras beberapa% ekstra MSE, keakuratan ... Secara umum, menurut pengalaman Anda, seberapa pentingkah pemodelan mewah seperti menumpuk vs sekadar mengumpulkan lebih banyak data dan lebih banyak fitur untuk data?


4
Itu sepenuhnya tergantung pada apakah Anda menginginkan aliran yang dapat digeneralisasikan yang berguna yang dapat dilatih kembali dengan cepat (atau penargetan ulang ke dataset baru atau fitur baru), atau hanya memenangkan kompetisi Kaggle tertentu (pada dataset statis tertentu, dengan eksploitasi kebocoran, 'fitur ajaib' dan semua). Untuk yang pertama, suatu algoritma yang mendapatkan akurasi rata-rata yang sama dengan waktu pelatihan yang jauh lebih rendah dan pada dataset yang lebih kecil adalah 'lebih baik'. Bayangkan jika Kaggle mulai menghukum persyaratan perhitungan / memori yang berlebihan atau waktu pelatihan, atau memperhitungkannya sebagai bagian dari skor pengiriman (saya sarankan mereka sudah melakukannya).
smci

2
Diambil dari "Menerapkan pembelajaran mendalam ke masalah dunia nyata" oleh Rasmus Rothe: "[...] dalam skenario dunia nyata, ini kurang tentang menunjukkan bahwa algoritma baru Anda memeras tambahan 1% dalam kinerja dibandingkan dengan metode lain. adalah tentang membangun sistem yang kuat yang menyelesaikan tugas yang dibutuhkan dengan akurasi yang cukup. "
beatngu13

Jawaban:


77

Sebagai latar belakang, saya telah melakukan peramalan toko seri waktu SKU untuk penjualan ritel selama 12 tahun sekarang. Puluhan ribu deret waktu melintasi ratusan atau ribuan toko. Saya suka mengatakan bahwa kami telah melakukan Big Data sejak sebelum istilah tersebut menjadi populer.×

Saya secara konsisten menemukan bahwa satu-satunya hal terpenting adalah memahami data Anda . Jika Anda tidak memahami driver utama seperti Paskah atau promosi, Anda akan menemui ajal. Cukup sering, ini berujung pada pemahaman bisnis yang cukup baik untuk mengajukan pertanyaan yang benar dan mengatakan yang tidak diketahui dari yang tidak diketahui .

Setelah Anda memahami data Anda, Anda perlu bekerja untuk mendapatkan data yang bersih . Saya telah mengawasi cukup banyak junior dan pekerja magang, dan satu hal yang belum pernah mereka alami dalam semua statistik dan kelas ilmu data mereka adalah seberapa banyak omong kosong yang ada dalam data yang Anda miliki. Maka Anda perlu kembali ke sumber dan mencoba untuk mendapatkannya untuk menghasilkan data yang baik, atau mencoba untuk membersihkannya, atau bahkan hanya membuang beberapa barang. Mengubah sistem yang sedang berjalan untuk menghasilkan data yang lebih baik bisa sangat sulit.

Setelah Anda memahami data Anda dan benar-benar memiliki data yang agak bersih, Anda dapat mulai mengutak-atiknya. Sayangnya, pada saat ini, saya sering menemukan diri saya kehabisan waktu dan sumber daya.

Saya pribadi adalah penggemar berat kombinasi model ("susun"), setidaknya dalam arti abstrak , kurang begitu menyukai rekayasa fitur mewah, yang sering melintasi garis ke wilayah - dan bahkan jika model pelamun Anda berkinerja sedikit lebih baik rata-rata, kita sering menemukan bahwa prediksi yang benar-benar buruk menjadi lebih buruk dengan model yang lebih kompleks. Ini adalah dealbreaker di lini bisnis saya. Satu ramalan yang benar-benar buruk dapat menghancurkan kepercayaan pada seluruh sistem, jadi kekokohan sangat tinggi dalam daftar prioritas saya. Jarak tempuh Anda mungkin beragam.

Dalam pengalaman saya, ya, kombinasi model dapat meningkatkan akurasi. Namun, keuntungan yang sangat besar dibuat dengan dua langkah pertama: memahami data Anda, dan membersihkannya (atau mendapatkan data bersih di tempat pertama).


4
@bendl, YMMV berarti Mileage Anda Bervariasi . Pernyataan kalimat sebelum ini mungkin atau mungkin tidak lebih atau kurang benar dalam keadaan yang berbeda.
Orphev

2
Saya juga bekerja di ritel melakukan peramalan tingkat SKU / Lokasi untuk ~ seri waktu :-). Tetapi saya bertanya-tanya apakah yang kita lakukan dianggap sebagai "Big Data" atau tidak. Meskipun set data keseluruhan berada dalam kisaran data besar, model peramalan biasanya diterapkan pada pengelompokan data yang lebih kecil (bahkan setelah menggunakan metode peramalan hierarki) dan teknik yang diperlukan untuk pemrosesan data besar yang benar (misalnya MapReduce, hashing data, dll. .) tidak pernah dipanggil. DeepAR Amazon tampaknya benar-benar data besar, dan saya curiga itu sama hypenya dengan sains. 106
Skander H.

2
Sudahlah pengalaman kelas saja. Ada banyak praktisi industri yang berpengalaman terutama dengan konteks rasio sinyal terhadap noise yang tinggi seperti pengenalan gambar dan mencoba menerapkan metode yang sama untuk proses sosial yang bising seperti merekrut, demi Tuhan.
Brash Equilibrium

2
@ Orphev Dengan kata lain, pernyataan ini mungkin terlalu cocok untuk situasi saya dan tidak menyamaratakan dengan baik. : P
JAD

2
(+1) Sehubungan dengan masalah pembersihan data dengan lulusan baru, juga patut dicatat bahwa selama pendidikan formal saya, mudah untuk keluar berpikir bahwa pembersihan data adalah hal yang buruk . Yaitu, pembersihan data dapat sangat mempengaruhi tingkat kesalahan tipe I (terutama jika ada bias dalam proses pembersihan) dan kami diajarkan tentang bahaya pembersihan data. Pelajaran ini tidak salah, tetapi saya tidak berpikir pendidikan formal saya menekankan manfaat pembersihan data, terutama dalam hal pemodelan prediktif.
Cliff AB

42

Saya tidak bisa berbicara untuk seluruh industri, tentu saja, tetapi saya bekerja di industri dan telah bersaing di Kaggle sehingga saya akan berbagi POV saya.

Pertama, Anda benar untuk mencurigai bahwa Kaggle tidak sama persis dengan apa yang dilakukan orang di industri. Ini adalah permainan, dan tunduk pada permainan, dengan banyak batasan gila. Misalnya, dalam kompetisi Santander yang sedang berjalan :

  1. Nama-nama fitur secara hash dibuat untuk menyembunyikan artinya
  2. Set "pelatihan" secara artifisial terbatas untuk memiliki lebih sedikit baris daripada kolom secara khusus sehingga pemilihan fitur, ketahanan, dan teknik regularisasi akan sangat diperlukan untuk kesuksesan.
  3. Perangkat yang disebut "tes" memiliki distribusi yang sangat berbeda dari perangkat pelatihan dan keduanya jelas bukan sampel acak dari populasi yang sama.

Jika seseorang memberi saya set data seperti ini di tempat kerja, saya akan segera menawarkan untuk bekerja dengan mereka di fitur engineering sehingga kami bisa mendapatkan fitur yang lebih berguna. Saya akan menyarankan kita menggunakan pengetahuan domain untuk memutuskan kemungkinan istilah interaksi, ambang batas, strategi pengkodean variabel kategorikal, dll. Mendekati masalah dengan cara itu jelas akan lebih produktif daripada mencoba mengekstrak makna dari file knalpot yang dihasilkan oleh insinyur basis data tanpa pelatihan dalam ML.

Lebih jauh, jika Anda belajar, katakanlah, bahwa kolom numerik tertentu sama sekali bukan numerik, melainkan kode ZIP, Anda dapat pergi dan mendapatkan data dari sumber data pihak ketiga seperti Sensus AS untuk menambah data Anda. Atau jika Anda memiliki kencan, mungkin Anda akan menyertakan harga penutupan S&P 500 untuk hari itu. Strategi augmentasi eksternal semacam itu membutuhkan pengetahuan terperinci dari kumpulan data spesifik dan pengetahuan domain yang signifikan tetapi biasanya memiliki hasil yang jauh lebih besar daripada peningkatan algoritmik murni.

Jadi, perbedaan besar pertama antara industri dan Kaggle adalah bahwa dalam industri, fitur (dalam arti data input) dapat dinegosiasikan.

Perbedaan kelas kedua adalah kinerja. Seringkali, model akan digunakan untuk produksi dalam salah satu dari dua cara: 1) prediksi model akan dihitung sebelumnya untuk setiap baris dalam tabel database yang sangat besar, atau 2) aplikasi atau situs web akan mengirimkan model tersebut satu baris data tunggal dan perlu prediksi dikembalikan secara real-time. Kedua kasus penggunaan membutuhkan kinerja yang baik. Untuk alasan ini, Anda tidak sering melihat model yang lambat untuk memprediksi atau menggunakan sejumlah besar memori seperti K-Nearest-Neighbors atau Extra Random Forests. Regresi logistik atau jaringan saraf, sebaliknya, dapat mencetak batch rekaman dengan beberapa perkalian matriks, dan perkalian matriks dapat sangat dioptimalkan dengan perpustakaan yang tepat.Walaupun saya bisa mendapatkan AUC +0.001 jika saya menggunakan model non-parametrik lainnya, saya tidak akan melakukannya karena prediksi throughput dan latensi akan turun terlalu banyak.

Ada dimensi keandalan untuk ini juga - menumpuk empat perpustakaan pihak ke-3 yang berbeda, katakanlah LightGBM , xgboost , catboost , dan Tensorflow (pada GPU , tentu saja) mungkin memberi Anda pengurangan 0,01 pada MSE yang memenangkan kompetisi Kaggle, tetapi empat pustaka berbeda untuk diinstal, digunakan, dan didebug jika ada yang salah. Sangat bagus jika Anda bisa mengerjakan semua hal di laptop Anda, tetapi menjalankannya di dalam wadah Docker yang berjalan di AWS adalah cerita yang sama sekali berbeda. Sebagian besar perusahaan tidak ingin memimpin tim devops kecil hanya untuk menangani masalah penyebaran semacam ini.

Yang mengatakan, menumpuk itu sendiri tidak selalu merupakan masalah besar. Faktanya, menumpuk beberapa model berbeda yang semuanya berkinerja sama dengan baik tetapi memiliki batas keputusan yang sangat berbeda adalah cara yang bagus untuk mendapatkan benjolan kecil di AUC dan benjolan besar dalam ketahanan. Hanya saja, jangan membuang begitu banyak kitchen sink ke dalam ansambel heterogen Anda sehingga Anda mulai memiliki masalah penyebaran.


Catatan kecil, saya pikir poin Anda # 2 tidak ada di akhir kalimat?
mbrig

20

Dari pengalaman saya, lebih banyak data dan lebih banyak fitur yang lebih penting daripada model paling fanciest, paling ditumpuk, paling dicari, yang dapat dihasilkan.

Lihatlah kompetisi periklanan online yang terjadi. Model yang menang sangat rumit sehingga mereka akhirnya menghabiskan waktu seminggu penuh untuk berlatih (pada dataset yang sangat kecil, dibandingkan dengan standar industri). Di atas semua itu, prediksi dalam model ditumpuk lebih panjang daripada dalam model linier sederhana. Pada topik yang sama, ingatlah bahwa Netflix tidak pernah menggunakan algoritma 1M $ karena biaya teknik .

Saya akan mengatakan bahwa kompetisi sains data online adalah cara yang baik bagi perusahaan untuk mengetahui "apa akurasi tertinggi (atau metrik kinerja apa pun) yang dapat dicapai" menggunakan data yang mereka kumpulkan (pada beberapa titik waktu). Perhatikan bahwa ini sebenarnya adalah masalah sulit yang sedang dipecahkan! Namun, di industri, pengetahuan lapangan, perangkat keras, dan kendala bisnis biasanya menghambat penggunaan "pemodelan mewah".


2
Benar, juga bisa jadi kasus bahwa proses pengumpulan data selalu berkembang. Yang berarti bahwa algoritma yang saat ini digunakan akan usang (di atas biaya teknik atau waktu pelatihan seperti yang Anda tunjukkan). Dengan demikian, algoritma yang lebih sederhana, lebih cepat dan lebih fleksibel akan dibutuhkan.
Tom

4
Saya mendengar salah satu poin utama dari postingan ini diringkas sebagai "pemilihan variabel yang baik akan selalu mengalahkan pemilihan model yang baik '
aginensky

14

Penumpukan secara signifikan meningkatkan kompleksitas dan mengurangi interpretabilitas. Keuntungannya biasanya relatif kecil untuk membenarkannya. Jadi, sementara ensembling mungkin banyak digunakan (misalnya XGBoost), saya pikir susun relatif jarang di industri.


1
Poin bagus. Interpretabilitas sangat penting dalam aplikasi saya (manajer toko ingin memahami mengapa ramalan itu seperti apa adanya), sehingga model yang sulit ditafsirkan memiliki masalah.
S. Kolassa - Reinstate Monica

Terima kasih atas wawasan pribadi Stephan. Sementara saya menganggap bahwa interpretabilitas menderita atau menghilang ketika kompleksitas model tumbuh, saya tidak memikirkan kendala waktu yang pasti lebih mendesak dalam sebuah perusahaan. Pemodelan mewah mungkin memiliki rasio terburuk (akurasi diperoleh) / (waktu yang dihabiskan).
Tom

8

Dalam pengalaman saya mengumpulkan data dan fitur yang baik jauh lebih penting.

Klien yang bekerja dengan kami biasanya memiliki banyak data, dan tidak semuanya dalam format yang mudah diekspor atau mudah dikerjakan. Batch data pertama biasanya tidak terlalu berguna; itu adalah tugas kita untuk bekerja dengan klien untuk mencari tahu data apa yang kita perlukan untuk membuat model lebih berguna. Ini adalah proses yang sangat berulang.

Ada banyak eksperimen yang sedang berlangsung, dan kami membutuhkan model yang:

  1. Cepat berlatih
  2. Cepat untuk memprediksi (Juga seringkali merupakan persyaratan bisnis)
  3. Mudah diinterpretasikan

Butir 3) sangat penting, karena model yang mudah diinterpretasikan lebih mudah untuk berkomunikasi dengan klien dan lebih mudah ditangkap jika kita melakukan kesalahan.


7

Inilah sesuatu yang tidak banyak muncul di Kaggle: the

  • lebih banyak variabel yang Anda miliki dalam model Anda, dan
  • semakin kompleks hubungan antara variabel-variabel dan output,

semakin banyak risiko yang akan Anda hadapi selama model itu. Waktu biasanya dibekukan dalam kompetisi Kaggle, atau ada jendela waktu pendek di masa depan di mana nilai set tes masuk. Dalam industri, model itu mungkin berjalan selama bertahun-tahun. Dan yang mungkin diperlukan hanyalah satu variabel berubah menjadi kacau agar seluruh model Anda masuk neraka, bahkan jika itu dibangun dengan sempurna. Saya mengerti, tidak ada yang mau menonton kontes di mana pesaing dengan hati-hati menyeimbangkan kompleksitas model dengan risiko, tetapi di luar sana dalam suatu pekerjaan, bisnis dan kualitas hidup Anda akan menderita jika ada yang salah dengan model yang Anda tangani. Bahkan orang yang sangat pintar pun tidak kebal. Ambil contoh, kegagalan prediksi Google Pantau Flu Dunia . Dunia berubah, dan mereka tidak melihatnya datang.

Untuk pertanyaan OP, " Secara umum, dalam pengalaman Anda, seberapa pentingkah pemodelan mewah seperti menumpuk vs hanya mengumpulkan lebih banyak data dan lebih banyak fitur untuk data? " Yah, saya secara resmi sudah tua, tetapi jawaban saya adalah bahwa kecuali Anda memiliki infrastruktur pemodelan benar-benar kuat, lebih baik untuk memiliki model langsung, dengan serangkaian variabel minimal, di mana hubungan input-to-output relatif mudah. Jika variabel hampir tidak meningkatkan metrik kerugian Anda, tinggalkan saja. Ingat itu pekerjaan. Dapatkan tendangan Anda di luar pekerjaan di kontes Kaggle di mana ada insentif "pulang atau pulang".

Satu pengecualian adalah jika situasi bisnis menuntut tingkat kinerja model tertentu, misalnya jika perusahaan Anda perlu mencocokkan atau mengalahkan kinerja pesaing untuk mendapatkan beberapa keuntungan (mungkin dalam pemasaran). Tetapi ketika ada hubungan linier antara kinerja model dan keuntungan bisnis, peningkatan kompleksitas biasanya tidak membenarkan keuntungan finansial (lihat " Netflix tidak pernah menggunakan Algoritma $ 1 Juta karena biaya Rekayasa " - permintaan maaf kepada @ RUser4512 karena mengutip hal yang sama artikel). Namun dalam kompetisi Kaggle, perolehan tambahan itu bisa menggerakkan Anda ratusan peringkat saat Anda melewati solusi terdekat.


3

Sebuah jawaban singkat yang merupakan kutipan yang saya sukai dari buku Gary Kasparov, Deep Thinking

Proses yang cerdas mengalahkan pengetahuan yang unggul dan teknologi yang unggul

Saya bekerja terutama dengan data keuangan time-series, dan proses dari mengumpulkan data, membersihkannya, memprosesnya, dan kemudian bekerja dengan pemilik masalah untuk mencari tahu apa yang sebenarnya ingin mereka lakukan, untuk kemudian membangun fitur dan model untuk mencoba dan mengatasi masalah dan akhirnya secara retrospektif memeriksa proses untuk meningkatkan untuk waktu berikutnya.

Seluruh proses ini lebih besar dari jumlah bagian-bagiannya. Saya cenderung mendapatkan kinerja generalisasi yang 'dapat diterima' dengan regresi linier / logistik dan berbicara dengan para pakar domain untuk menghasilkan fitur, cara yang menghabiskan waktu lebih baik daripada menghabiskan waktu terlalu menyesuaikan model saya dengan data yang saya miliki.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.