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.

Prinsip 1: Nilai Bisnis First

We sijine "nilai bisnis" ing ngarep kabeh efforts kita. UmumΓ©, sistem analisis otomatis kalebu klompok sistem kompleks kanthi otomatisasi lan kerumitan teknis sing dhuwur. Nggawe solusi lengkap bakal mbutuhake wektu akeh yen sampeyan nggawe saka awal. Kita mutusake kanggo ngetrapake nilai bisnis dadi nomer loro lan kelengkapan teknologi nomer loro. Ing urip nyata, iki tegese kita ora nampa teknologi canggih minangka dogma. Kita milih teknologi sing paling apik kanggo kita saiki. Sajrone wektu, bisa uga kita kudu ngetrapake maneh sawetara modul. Iki minangka kompromi sing ditampa.

Prinsip 2: intelijen ditambah

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]

Amarga iki, ngembangake solusi pembelajaran mesin sing lengkap wiwit wiwitan mbutuhake upaya gedhe, sing bakal nundha nggawe nilai kanggo bisnis kita. Kita mutusake kanggo mbangun sistem kanthi aspek pembelajaran mesin sing terus berkembang kanthi tuntunan para ahli domain. Bagean sing tantangan kanggo ngembangake sistem kasebut yaiku kudu menehi analis babagan kasus ora mung babagan kegiatan penipuan utawa ora. UmumΓ©, sembarang anomali ing prilaku pelanggan minangka kasus curiga sing spesialis kudu neliti lan nanggapi piye wae. Mung bagian sekedhik saka kasus sing dilapurake iki sing bisa diklasifikasikake minangka penipuan.

Prinsip 3: Platform Analitik Kaya

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.

Nggawe sistem otomatis kanggo nglawan penyusup ing situs kasebut (penipuan)

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]

Streaming nang endi wae

Nyimpen lan ngatur negara ing sistem mesthi bakal nyebabake komplikasi sajrone implementasine. UmumΓ©, negara kudu bisa diakses saka komponen apa wae, kudu konsisten lan nyedhiyakake nilai paling anyar ing kabeh komponen, lan kudu dipercaya kanthi nilai sing bener. Kajaba iku, telpon menyang panyimpenan terus-terusan kanggo njupuk status paling anyar bakal nambah jumlah operasi I/O lan kerumitan algoritma sing digunakake ing saluran pipa wektu nyata. Amarga iki, kita mutusake kanggo mbusak panyimpenan negara, yen bisa, rampung saka sistem kita. Pendekatan iki mbutuhake kabeh data sing perlu dilebokake ing blok data sing dikirim (pesen). Contone, yen kita kudu ngetung jumlah total sawetara pengamatan (jumlah operasi utawa kasus karo ciri tartamtu), kita ngetung ing memori lan generate stream saka nilai kasebut. Modul gumantung bakal nggunakake partisi lan batching kanggo pamisah stream menyang entitas lan operate ing nilai paling anyar. Pendekatan iki ngilangi kabutuhan panyimpenan disk sing terus-terusan kanggo data kasebut. Sistem kita nggunakake Kafka minangka makelar pesen lan bisa digunakake minangka basis data karo KSQL. [3] Nanging nggunakake solusi kasebut bakal ngikat solusi kita karo Kafka, lan kita mutusake ora nggunakake. Pendekatan sing kita pilih ngidini kita ngganti Kafka karo broker pesen liyane tanpa owah-owahan internal utama ing sistem kasebut.

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.
  • Kita butuh cara sing gampang kanggo nguji hipotesis utawa korΓ©lasi antarane metrik ing data.
  • 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]

referensi

  1. Apa Augmented Intelligence?
  2. Ngleksanakake Metodologi Desain API-First
  3. Kafka Ngowahi Dadi "Database Streaming Acara"
  4. Pangertosan AUC - ROC Curve

Source: www.habr.com

Add a comment