Hashing Trick - apa yang sebenarnya terjadi

12

Ketika algoritme ML, misalnya Vowpal Wabbit atau beberapa mesin faktorisasi memenangkan persaingan tingkat klik ( Kaggle ), menyebutkan bahwa fitur 'hash', apa artinya sebenarnya bagi model? Katakanlah ada variabel yang mewakili ID dari internet add, yang mengambil nilai seperti '236BG231'. Kemudian saya mengerti bahwa fitur ini di-hash ke integer acak. Tapi, pertanyaan saya adalah:

  • Apakah integer sekarang digunakan dalam model, sebagai integer (numerik) ATAU
  • Apakah nilai hash sebenarnya masih diperlakukan seperti variabel kategori dan satu-panas-disandikan? Jadi trik hashing hanya untuk menghemat ruang entah bagaimana dengan data besar?
B_Miner
sumber

Jawaban:

7

Peluru kedua adalah nilai dalam hashing fitur. Hashing dan satu pengodean panas untuk data yang jarang menghemat ruang. Tergantung pada hash algo Anda dapat memiliki berbagai tingkat tabrakan yang bertindak sebagai semacam pengurangan dimensi.

Juga, dalam kasus spesifik hasg fitur Kaggle dan satu bantuan pengkodean panas dengan ekspansi fitur / rekayasa dengan mengambil semua tupel yang mungkin (biasanya hanya urutan kedua tetapi kadang-kadang ketiga) dari fitur yang kemudian di hash dengan tabrakan yang secara eksplisit membuat interaksi yang sering diprediksi sedangkan fitur individual tidak.

Dalam kebanyakan kasus, teknik ini dikombinasikan dengan pemilihan fitur dan regularisasi jaring elastis dalam LR bertindak sangat mirip dengan NN satu lapisan tersembunyi sehingga kinerjanya cukup baik dalam kompetisi.

cwharland
sumber
Jadi satu-hot-encoding masih digunakan, hanya pada nilai-nilai hash * yang seperti yang Anda katakan menghemat ruang dan dapat menyebabkan pengurangan dimensi (diberikan tabrakan). Apakah itu benar?
B_Miner
1
One Host Encoding bukan bagian yang diperlukan dari fitur hashing tetapi sering digunakan bersama karena membantu sedikit baik dengan daya prediksi. Salah satu cara untuk memikirkan satu pengkodean panas adalah mengubah fitur dari satu set nilai diskrit N menjadi sejumlah pertanyaan biner N. Mungkin itu tidak penting bagi saya tahu jika fitur J adalah 2 atau 3 hanya itu bukan 4. One Hot membuat perbedaan itu spesifik. Ini sangat membantu dengan model linier sedangkan pendekatan ensemble (seperti RF) akan memindai titik-titik putus pada fitur untuk menemukan perbedaan itu.
cwharland