Nggawe sistem otomatis kanggo nglawan penyusup ing situs kasebut (penipuan)
Sajrone nem sasi pungkasan, aku wis nggawe sistem kanggo nglawan penipuan (kegiatan penipuan, penipuan, lan liya-liyane) tanpa infrastruktur awal kanggo iki. Gagasan saiki sing wis ditemokake lan ditindakake ing sistem mbantu kita ndeteksi lan nganalisa akeh kegiatan penipuan. Ing artikel iki, aku pengin ngomong babagan prinsip sing kita tindakake lan apa sing ditindakake kanggo nggayuh kahanan sistem saiki, tanpa mlebu ing bagean teknis.
Prinsip sistem kita
Yen sampeyan krungu istilah kaya "otomatis" lan "penipuan," sampeyan bisa uga mikir babagan machine learning, Apache Spark, Hadoop, Python, Airflow, lan teknologi liyane saka ekosistem Apache Foundation lan lapangan Ilmu Data. Aku mikir ana salah sawijining aspek nggunakake alat kasebut sing ora biasa disebutake: mbutuhake prasyarat tartamtu ing sistem perusahaan sampeyan sadurunge bisa digunakake. Ing cendhak, sampeyan butuh platform data perusahaan sing kalebu tlaga lan gudang data. Nanging kepiye yen sampeyan ora duwe platform kasebut lan isih kudu ngembangake praktik iki? Prinsip-prinsip ing ngisor iki sing dakkandhakake ing ngisor iki wis mbantu kita tekan titik ing ngendi kita bisa fokus kanggo nambah ide tinimbang nemokake sing bisa digunakake. Nanging, iki dudu plato proyek. Isih akeh perkara ing rencana kasebut saka sudut pandang teknologi lan produk.
Aku yakin umume wong sing ora melu ngembangake solusi pembelajaran mesin bisa uga mikir yen ngganti manungsa minangka tujuane. Nyatane, solusi machine learning adoh saka sampurna lan mung ing wilayah tartamtu bisa diganti. Kita nolak ide iki wiwit wiwitan amarga sawetara alasan: data sing ora seimbang babagan kegiatan penipuan lan ora bisa nyedhiyakake dhaptar lengkap fitur kanggo model pembelajaran mesin. Ing kontras, kita milih opsi intelijen sing ditingkatake. Iki minangka konsep alternatif saka intelijen buatan sing fokus ing peran pendukung AI, nandheske kasunyatan manawa teknologi kognitif dimaksudake kanggo ningkatake kecerdasan manungsa tinimbang ngganti. [1]
Bagian sing paling tantangan ing sistem kita yaiku verifikasi end-to-end alur kerja sistem. Analis lan pangembang kudu gampang entuk set data historis kanthi kabeh metrik sing digunakake kanggo analisis. Kajaba iku, platform data kudu menehi cara sing gampang kanggo nglengkapi set metrik sing wis ana karo sing anyar. Pangolahan sing digawe, lan iki ora mung pangolahan piranti lunak, kudu gampang ngetung maneh periode sadurunge, nambah metrik anyar lan ngganti ramalan data. Kita bisa entuk iki kanthi nglumpukake kabeh data sing digawe sistem produksi kita. Ing kasus iki, data mboko sithik bakal dadi gangguan. Kita kudu nyimpen akeh data sing ora digunakake lan nglindhungi. Ing skenario kaya mengkono, data bakal dadi luwih ora relevan saka wektu, nanging isih mbutuhake upaya kanggo ngatur. Kanggo kita, data hoarding ora masuk akal, mula kita mutusake kanggo njupuk pendekatan sing beda. Kita mutusake kanggo ngatur toko data wektu nyata ing sekitar entitas target sing pengin diklasifikasikake, lan mung nyimpen data sing ngidini kita mriksa periode paling anyar lan relevan. Tantangan kanggo upaya iki yaiku sistem kita heterogen, kanthi pirang-pirang toko data lan modul piranti lunak sing mbutuhake perencanaan sing ati-ati supaya bisa digunakake kanthi konsisten.
Konsep desain sistem kita
Kita duwe papat komponen utama ing sistem kita: sistem ingestion, komputasi, analisis BI lan sistem pelacakan. Dheweke ngladeni tujuan khusus, terisolasi, lan kita tetep diisolasi kanthi ngetutake pendekatan desain tartamtu.
Desain adhedhasar kontrak
Kaping pisanan, kita sarujuk yen komponen mung kudu ngandelake struktur data tartamtu (kontrak) sing diwarisake ing antarane. Iki nggampangake kanggo nggabungake ing antarane lan ora ngetrapake komposisi tartamtu (lan urutan) komponen. Contone, ing sawetara kasus iki ngidini kita kanggo langsung nggabungake sistem intake karo sistem nelusuri tandha. Ing kasus kasebut, iki bakal ditindakake miturut kontrak tandha sing disepakati. Iki tegese loro komponen bakal digabungake nggunakake kontrak sing bisa digunakake komponen liyane. Kita ora bakal nambah kontrak tambahan kanggo nambah tandha kanggo sistem nelusuri saka sistem input. Pendekatan iki mbutuhake panggunaan jumlah kontrak minimal sing wis ditemtokake lan nyederhanakake sistem lan komunikasi. Intine, kita njupuk pendekatan sing diarani "Desain Pertama Kontrak" lan ditrapake kanggo kontrak streaming. [2]
Konsep iki ora ateges kita ora nggunakake panyimpenan disk lan database. Kanggo nguji lan nganalisa kinerja sistem, kita kudu nyimpen jumlah data sing signifikan ing disk sing makili macem-macem metrik lan negara. Titik penting ing kene yaiku algoritma wektu nyata ora gumantung marang data kasebut. Umume kasus, kita nggunakake data sing disimpen kanggo analisis offline, debugging lan nelusuri kasus lan asil tartamtu sing diasilake sistem.
Masalah sistem kita
Ana masalah tartamtu sing wis ditanggulangi nganti tingkat tartamtu, nanging mbutuhake solusi sing luwih wicaksana. Saiki aku mung pengin sebutno kene amarga saben titik worth artikel dhewe.
Kita isih kudu nemtokake proses lan kabijakan sing ndhukung akumulasi data sing migunani lan relevan kanggo analisis, panemuan, lan eksplorasi data otomatis.
Penggabungan asil analisis manungsa menyang proses nyetel sistem kanthi otomatis kanggo nganyari karo data paling anyar. Iki ora mung nganyari model kita, nanging uga nganyari proses kita lan nambah pangerten data kita.
Nemokake imbangan antarane pendekatan deterministik saka IF-ELSE lan ML. Ana sing ngomong, "ML minangka alat kanggo wong sing nekat." Iki tegese sampeyan pengin nggunakake ML yen sampeyan ora ngerti carane ngoptimalake lan nambah algoritma. Ing sisih liya, pendekatan deterministik ora ngidini deteksi anomali sing ora diantisipasi.
Sistem kasebut kudu duwe sawetara tingkat asil positif sing bener. Kasus penipuan mung sebagian cilik saka kabeh kasus sing bisa dianggep positif kanggo sistem kasebut. Contone, analis pengin nampa kabeh kasus curiga kanggo verifikasi, lan mung bagean cilik saka penipuan. Sistem kasebut kudu kanthi efisien nampilake kabeh kasus menyang analis, preduli saka penipuan sing nyata utawa mung prilaku sing curiga.
Platform data kudu bisa njupuk set data historis kanthi petungan sing digawe lan diwilang kanthi cepet.
Gampang lan kanthi otomatis masang komponen sistem apa wae ing paling ora telung lingkungan sing beda: produksi, eksperimen (beta) lan kanggo pangembang.
Lan pungkasan nanging ora paling. Kita kudu mbangun platform testing kinerja sing sugih sing bisa nganalisa model kita. [4]