Kesimpulan Utama
Sebagai bursa kripto terbesar di dunia, sangatlah penting bagi kita untuk memiliki sistem deteksi risiko yang cepat namun tidak mengurangi akurasi.
Tantangan yang kami hadapi adalah memastikan model kami selalu menggunakan informasi terkini, terutama saat mendeteksi aktivitas akun mencurigakan secara real-time.
Untuk mencapai konsistensi fitur yang lebih kuat dan kecepatan produksi yang lebih tinggi, kami kini membuat asumsi yang masuk akal tentang data kami dan menggabungkan pipeline batch dan streaming kami.
Temukan bagaimana jalur rekayasa fitur kami menciptakan fitur yang kuat dan konsisten untuk mendeteksi penarikan penipuan di platform Binance.
Di dalam pipeline pembelajaran mesin (ML) kami — yang dapat Anda pelajari lebih lanjut di artikel sebelumnya — kami baru-baru ini membuat pipeline rekayasa fitur otomatis yang menyalurkan data mentah ke dalam fitur online yang dapat digunakan kembali dan dapat dibagikan ke semua model terkait risiko.
Dalam proses pembuatan dan pengujian pipeline ini, data scientist kami menghadapi masalah konsistensi fitur yang menarik: Bagaimana cara kami membuat kumpulan fitur online akurat yang berubah secara dinamis seiring waktu?
Pertimbangkan skenario dunia nyata ini: Pertukaran kripto — dalam hal ini, Binance — mencoba mendeteksi penipuan penarikan sebelum uang meninggalkan platform. Salah satu solusi yang mungkin dilakukan adalah menambahkan fitur ke model Anda yang mendeteksi waktu yang telah berlalu sejak operasi spesifik terakhir pengguna (misalnya, masuk atau mengikat ponsel). Ini akan terlihat seperti ini:
user_id|last_bind_google_time_diff_in_days|...
1|3.52|...
Tantangan Implementasi
Jumlah kunci yang diperlukan untuk menghitung dan memperbarui fitur di toko fitur online tidak praktis. Menggunakan saluran streaming, seperti Flink, tidak mungkin dilakukan karena saat ini saluran tersebut hanya dapat menghitung pengguna dengan catatan yang masuk ke Kafka.
Sebagai kompromi, kita dapat menggunakan pipa batch dan menerima beberapa penundaan. Katakanlah sebuah model dapat mengambil fitur dari toko fitur online dan melakukan inferensi real-time dalam waktu sekitar satu jam. Pada saat yang sama, jika penyimpanan fitur memerlukan waktu satu jam untuk menyelesaikan penghitungan dan penyerapan data, pipeline batch — secara teori — akan menyelesaikan masalah tersebut.
Sayangnya, ada satu masalah yang mencolok: menggunakan pipa batch seperti itu sangat memakan waktu. Hal ini membuat penyelesaian dalam waktu satu jam menjadi tidak mungkin dilakukan ketika Anda adalah bursa kripto terbesar di dunia yang menangani sekitar seratus juta pengguna dan batas TPS untuk penulisan.
Kami menemukan bahwa praktik terbaik adalah membuat asumsi tentang pengguna kami, sehingga mengurangi jumlah data yang masuk ke penyimpanan fitur kami.
Meringankan Masalah Dengan Asumsi Praktis
Fitur online diserap secara real-time dan terus berubah karena mewakili versi lingkungan terkini. Dengan pengguna aktif Binance, kami tidak dapat menggunakan model dengan fitur yang ketinggalan jaman.
Sistem kami harus segera menandai setiap penarikan yang mencurigakan. Setiap penundaan tambahan, bahkan beberapa menit, berarti lebih banyak waktu bagi aktor jahat untuk melarikan diri dari kejahatannya.
Jadi, demi efisiensi, kami berasumsi login baru-baru ini memiliki risiko yang relatif lebih tinggi:
Kami menemukan (250 hari + 0,125[3/24 penundaan] hari) menghasilkan kesalahan yang relatif lebih kecil dibandingkan (1 hari + 0,125[3/24 penundaan] hari).
Sebagian besar operasi tidak akan melebihi ambang batas tertentu; katakanlah 365 hari. Untuk menghemat waktu dan sumber daya komputasi, kami menghilangkan pengguna yang belum login selama lebih dari setahun.
Solusi Kami
Kami menggunakan arsitektur lambda, yang memerlukan proses di mana kami menggabungkan pipeline batch dan streaming, untuk mencapai konsistensi fitur yang lebih kuat.
Seperti apa solusinya secara konseptual?
Batch Pipeline: Melakukan rekayasa fitur untuk basis pengguna yang besar.
Streaming Pipeline: Memperbaiki waktu tunda pipeline batch untuk login terbaru.
Bagaimana jika rekaman dimasukkan ke dalam penyimpanan fitur online di antara waktu tunda dalam penyerapan batch?
Fitur kami tetap mempertahankan konsistensi yang kuat bahkan ketika catatan diserap selama periode penundaan penyerapan batch satu jam. Ini karena toko fitur online yang kami gunakan di Binance mengembalikan nilai terbaru berdasarkan event_time yang Anda tentukan saat mengambil nilai.
Bergabunglah dengan Tim Kami!
Tertarik menggunakan pembelajaran mesin untuk melindungi ekosistem kripto terbesar di dunia dan penggunanya? Lihat Binance Engineering / AI di halaman karir kami untuk lowongan pekerjaan.
Untuk informasi lebih lanjut, baca artikel bermanfaat berikut:
(Blog) Menggunakan MLOps untuk Membangun Pipeline Machine Learning End-to-End Secara Real-time
(Blog) Melihat Lebih Dekat Toko Fitur Machine Learning Kami