Penciptaan sistem automatik untuk memerangi penceroboh di tapak (penipuan)

Selama kira-kira enam bulan yang lalu, saya telah mencipta sistem untuk memerangi penipuan (aktiviti penipuan, penipuan, dll.) tanpa sebarang infrastruktur awal untuk ini. Idea hari ini yang kami temui dan laksanakan dalam sistem kami membantu kami mengesan dan menganalisis banyak aktiviti penipuan. Dalam artikel ini, saya ingin bercakap tentang prinsip yang kami ikuti dan perkara yang kami lakukan untuk mencapai keadaan semasa sistem kami, tanpa menyelidiki bahagian teknikal.

Prinsip sistem kami

Apabila anda mendengar istilah seperti "automatik" dan "penipuan", kemungkinan besar anda mula berfikir tentang pembelajaran mesin, Apache Spark, Hadoop, Python, Aliran Udara dan teknologi lain dalam ekosistem Yayasan Apache dan medan Sains Data. Saya fikir terdapat satu aspek penggunaan alat ini yang biasanya tidak disebut: ia memerlukan prasyarat tertentu untuk disediakan pada sistem perusahaan anda sebelum anda boleh menggunakannya. Ringkasnya, anda memerlukan platform data perusahaan yang merangkumi tasik data dan storan. Tetapi bagaimana jika anda tidak mempunyai platform sedemikian dan masih perlu membangunkan amalan ini? Prinsip berikut, yang saya terangkan di bawah, telah membantu kami sampai ke tahap di mana kami boleh menumpukan pada menambah baik idea kami, dan bukannya mencari yang berkesan. Walau bagaimanapun, ini bukan "dataran tinggi" projek. Terdapat banyak lagi perkara dalam rancangan dari sudut teknologi dan produk.

Prinsip 1: Nilai Perniagaan Diutamakan

Kami meletakkan "nilai perniagaan" di barisan hadapan dalam semua usaha kami. Secara umum, mana-mana sistem analisis automatik tergolong dalam kumpulan sistem kompleks dengan tahap automasi dan kerumitan teknikal yang tinggi. Mencipta penyelesaian yang lengkap akan mengambil banyak masa jika anda menciptanya dari awal. Kami memutuskan untuk mengutamakan nilai perniagaan dan kedua kematangan teknologi. Dalam kehidupan sebenar, ini bermakna kita tidak menerima teknologi canggih sebagai dogma. Kami memilih teknologi yang paling sesuai untuk kami pada masa ini. Dari masa ke masa, nampaknya kita perlu melaksanakan semula beberapa modul. Ini adalah kompromi yang kami terima.

Prinsip 2: Kecerdasan tambahan

Saya yakin kebanyakan orang yang tidak terlibat secara mendalam dalam membangunkan penyelesaian pembelajaran mesin mungkin berfikir bahawa penggantian manusia adalah matlamatnya. Malah, penyelesaian pembelajaran mesin adalah jauh dari sempurna dan hanya di kawasan tertentu penggantian mungkin dilakukan. Kami meninggalkan idea ini dari awal atas beberapa sebab: data tidak seimbang tentang aktiviti penipuan dan ketidakupayaan untuk menyediakan senarai lengkap ciri untuk model pembelajaran mesin. Sebaliknya, kami memilih pilihan kecerdasan tambahan. Ini adalah konsep alternatif kecerdasan buatan yang memfokuskan pada peranan sokongan AI, menekankan fakta bahawa teknologi kognitif direka untuk meningkatkan kecerdasan manusia, bukan menggantikannya. [1]

Dengan mengambil kira perkara ini, membangunkan penyelesaian pembelajaran mesin yang lengkap dari awal akan memerlukan sejumlah besar usaha yang akan menangguhkan penciptaan nilai untuk perniagaan kami. Kami memutuskan untuk membina sistem dengan aspek pembelajaran mesin yang berkembang secara berulang di bawah bimbingan pakar domain kami. Bahagian rumit dalam membangunkan sistem sedemikian ialah ia perlu menyediakan penganalisis kami kajian kes bukan sahaja dari segi sama ada ini adalah aktiviti penipuan atau tidak. Secara umum, sebarang anomali dalam tingkah laku pelanggan ialah kes yang mencurigakan yang pakar perlu menyiasat dan entah bagaimana bertindak balas. Hanya beberapa kes yang direkodkan ini benar-benar boleh diklasifikasikan sebagai penipuan.

Prinsip 3: Platform Rich Insights

Bahagian paling sukar dalam sistem kami ialah pengesahan dari hujung ke hujung aliran kerja sistem. Penganalisis dan pembangun harus mendapatkan set data sejarah dengan mudah dengan semua metrik yang digunakan untuk analisis. Selain itu, platform data harus menyediakan cara mudah untuk menambah set penunjuk sedia ada dengan yang baharu. Proses yang kami buat, dan ini bukan hanya proses perisian, seharusnya memudahkan pengiraan semula tempoh sebelumnya, menambah metrik baharu dan menukar ramalan data. Kami boleh mencapai ini dengan mengumpul semua data yang dihasilkan oleh sistem pengeluaran kami. Dalam kes sedemikian, data secara beransur-ansur akan menjadi penghalang. Kami perlu menyimpan jumlah data yang semakin meningkat yang tidak kami gunakan dan melindunginya. Dalam senario sedemikian, data akan menjadi semakin tidak relevan dari semasa ke semasa, tetapi masih memerlukan usaha kita untuk mengurusnya. Bagi kami, penimbunan data tidak masuk akal, dan kami memutuskan untuk menggunakan pendekatan yang berbeza. Kami memutuskan untuk mengatur gudang data masa nyata di sekitar entiti sasaran yang ingin kami klasifikasikan dan hanya menyimpan data yang membolehkan kami menyemak tempoh terkini dan terkini. Cabaran dengan usaha ini ialah sistem kami adalah heterogen dengan pelbagai stor data dan modul perisian yang memerlukan perancangan yang teliti untuk berfungsi dengan cara yang konsisten.

Reka bentuk konsep sistem kami

Kami mempunyai empat komponen utama dalam sistem kami: sistem pengingesan, sistem pengiraan, analisis BI dan sistem penjejakan. Ia berfungsi untuk tujuan terpencil tertentu, dan kami mengasingkannya dengan mengikuti pendekatan pembangunan tertentu.

Penciptaan sistem automatik untuk memerangi penceroboh di tapak (penipuan)

Reka bentuk berasaskan kontrak

Pertama sekali, kami bersetuju bahawa komponen hanya perlu bergantung pada struktur data tertentu (kontrak) yang diluluskan di antara mereka. Ini memudahkan untuk menyepadukan antara mereka dan tidak mengenakan komposisi (dan susunan) komponen tertentu. Sebagai contoh, dalam beberapa kes ini membolehkan kami menyepadukan secara langsung sistem penerima dengan sistem penjejakan amaran. Dalam kes sedemikian, ini akan dilakukan mengikut kontrak pemberitahuan yang dipersetujui. Ini bermakna kedua-dua komponen akan disepadukan menggunakan kontrak yang boleh digunakan oleh mana-mana komponen lain. Kami tidak akan menambah kontrak tambahan untuk menambah makluman kepada sistem penjejakan daripada sistem input. Pendekatan ini memerlukan penggunaan bilangan kontrak minimum yang telah ditetapkan dan memudahkan sistem dan komunikasi. Pada asasnya, kami mengambil pendekatan yang dipanggil "Reka Bentuk Pertama Kontrak" dan menerapkannya pada kontrak penstriman. [2]

Penstriman Di Mana-mana

Menyimpan dan mengurus keadaan dalam sistem sudah pasti akan membawa kepada komplikasi dalam pelaksanaannya. Secara umum, keadaan mesti boleh diakses daripada mana-mana komponen, ia mesti konsisten dan memberikan nilai yang paling terkini merentas semua komponen, dan ia mesti boleh dipercayai dengan nilai yang betul. Selain itu, panggilan ke storan berterusan untuk mendapatkan keadaan terkini akan meningkatkan jumlah I/O dan kerumitan algoritma yang digunakan dalam saluran paip masa nyata kami. Oleh sebab itu, kami memutuskan untuk mengalih keluar storan keadaan, jika boleh, sepenuhnya daripada sistem kami. Pendekatan ini memerlukan semua data yang diperlukan dimasukkan ke dalam unit data yang dihantar (mesej). Sebagai contoh, jika kita perlu mengira jumlah bilangan beberapa pemerhatian (bilangan operasi atau kes dengan ciri tertentu), kita mengiranya dalam ingatan dan menjana aliran nilai tersebut. Modul bergantung akan menggunakan pembahagian dan penkelompokan untuk memisahkan strim mengikut entiti dan beroperasi pada nilai terkini. Pendekatan ini menghapuskan keperluan untuk mempunyai storan cakera yang berterusan untuk data tersebut. Sistem kami menggunakan Kafka sebagai broker mesej dan ia boleh digunakan sebagai pangkalan data dengan KSQL. [3] Tetapi menggunakannya akan mengikat penyelesaian kami dengan Kafka, dan kami memutuskan untuk tidak menggunakannya. Pendekatan yang telah kami pilih membolehkan kami menggantikan Kafka dengan broker mesej lain tanpa perubahan dalaman yang besar pada sistem.

Konsep ini tidak bermakna kami tidak menggunakan storan cakera dan pangkalan data. Untuk menyemak dan menganalisis prestasi sistem, kita perlu menyimpan sejumlah besar data pada cakera, yang mewakili pelbagai penunjuk dan keadaan. Perkara penting di sini ialah algoritma masa nyata tidak bergantung pada data tersebut. Dalam kebanyakan kes, kami menggunakan data yang disimpan untuk analisis luar talian, penyahpepijatan dan penjejakan kes dan keputusan tertentu yang dihasilkan oleh sistem.

Masalah dalam sistem kami

Terdapat masalah tertentu yang telah kita selesaikan pada tahap tertentu, tetapi ia memerlukan penyelesaian yang lebih bernas. Buat masa ini, saya hanya ingin menyebutnya di sini, kerana setiap item bernilai artikelnya sendiri.

  • Kami masih perlu menentukan proses dan dasar yang membantu menjana data yang bermakna dan relevan untuk analisis automatik kami, penemuan dan penerokaan data.
  • Pengenalan hasil analisis oleh seseorang dalam proses penalaan sistem secara automatik untuk mengemas kininya dengan data terkini. Ini bukan sahaja kemas kini kepada model kami, tetapi juga kemas kini kepada proses kami dan pemahaman yang lebih baik tentang data kami.
  • Mencari keseimbangan antara pendekatan deterministik IF-ELSE dan ML. Seseorang berkata: "ML ialah alat untuk mereka yang terdesak." Ini bermakna anda akan mahu menggunakan ML apabila anda tidak lagi memahami cara mengoptimumkan dan menambah baik algoritma anda. Sebaliknya, pendekatan deterministik tidak membenarkan pengesanan anomali yang tidak diramalkan.
  • Kami memerlukan cara mudah untuk menguji hipotesis atau korelasi kami antara metrik dalam data.
  • Sistem mesti mempunyai pelbagai peringkat hasil positif sebenar. Kes penipuan hanyalah sebahagian kecil daripada semua kes yang boleh dianggap positif untuk sistem. Sebagai contoh, penganalisis ingin menerima semua kes yang mencurigakan untuk semakan, dan hanya sebahagian kecil daripadanya adalah penipuan. Sistem ini mesti menyediakan penganalisis dengan berkesan dengan semua kes, sama ada penipuan sebenar atau hanya tingkah laku yang mencurigakan.
  • Platform data sepatutnya boleh mendapatkan semula set data sejarah dengan pengiraan yang dibuat dan dikira dengan cepat.
  • Penggunaan mudah dan automatik mana-mana komponen sistem dalam sekurang-kurangnya tiga persekitaran berbeza: pengeluaran, percubaan (beta) dan untuk pembangun.
  • Dan akhir sekali. Kita perlu mencipta platform penanda aras yang luas di mana kita boleh menganalisis model kita. [4]

rujukan

  1. Apakah Kepintaran Ditambah?
  2. Melaksanakan Metodologi Reka Bentuk API-First
  3. Kafka Berubah Menjadi "Pangkalan Data Penstriman Acara"
  4. Memahami AUCβ€”Keluk ROC

Sumber: www.habr.com

Tambah komen