Saytda buzg'unchilarga qarshi kurashning avtomatik tizimini yaratish (firibgarlik)

Taxminan olti oy davomida men buning uchun dastlabki infratuzilmasiz firibgarlikka (firibgarlik faoliyati, firibgarlik va h.k.) qarshi kurashish tizimini yaratdim. Bizning tizimimizda topgan va amalga oshirgan bugungi g‘oyalar ko‘plab firibgarlik harakatlarini aniqlash va tahlil qilishga yordam beradi. Ushbu maqolada men texnik qismga kirmasdan, biz amal qilgan tamoyillar va tizimimizning hozirgi holatiga erishish uchun nima qilganimiz haqida gapirmoqchiman.

Bizning tizimimiz printsiplari

"Avtomatik" va "firibgarlik" kabi atamalarni eshitganingizda, siz Apache Foundation ekotizimidan va Data Science sohasidan mashina o'rganish, Apache Spark, Hadoop, Python, Airflow va boshqa texnologiyalar haqida o'ylay boshlaysiz. Menimcha, ushbu vositalardan foydalanishning odatda tilga olinmaydigan bir jihati bor: ulardan foydalanishni boshlashdan oldin ular korxona tizimingizda muayyan shartlarni talab qiladi. Qisqasi, sizga ma'lumotlar ko'li va omborini o'z ichiga olgan korporativ ma'lumotlar platformasi kerak. Ammo sizda bunday platforma bo'lmasa va hali ham ushbu amaliyotni rivojlantirish kerak bo'lsa-chi? Quyida men baham ko'rgan quyidagi tamoyillar bizga g'oyalarimizni takomillashtirishga e'tibor qaratishimiz mumkin bo'lgan nuqtaga erishishimizga yordam berdi. Biroq, bu loyiha platosi emas. Rejada texnologik va mahsulot nuqtai nazaridan hali ko'p narsalar mavjud.

1-tamoyil: Birinchi navbatda biznes qiymati

Biz barcha harakatlarimizda "biznes qiymatini" birinchi o'ringa qo'yamiz. Umuman olganda, har qanday avtomatik tahlil tizimi avtomatlashtirish va texnik murakkablik darajasi yuqori bo'lgan murakkab tizimlar guruhiga kiradi. To'liq yechim yaratish, agar siz uni noldan yaratsangiz, ko'p vaqt talab etadi. Biz biznes qiymatini birinchi o'ringa, texnologik to'liqlikni ikkinchi o'ringa qo'yishga qaror qildik. Haqiqiy hayotda bu ilg'or texnologiyani dogma sifatida qabul qilmasligimizni anglatadi. Ayni paytda biz uchun eng mos texnologiyani tanlaymiz. Vaqt o'tishi bilan biz ba'zi modullarni qaytadan amalga oshirishimiz kerakdek tuyulishi mumkin. Bu biz qabul qilgan kelishuv.

2-tamoyil: Kengaytirilgan intellekt

Ishonchim komilki, mashinani o'rganish bo'yicha echimlarni ishlab chiqishda chuqur ishtirok etmaydigan ko'pchilik odamlarni almashtirish maqsad deb o'ylashlari mumkin. Aslida, mashinani o'rganish echimlari mukammal emas va faqat ma'lum sohalarda almashtirish mumkin. Biz bu g‘oyani boshidan bir necha sabablarga ko‘ra rad etdik: firibgarlik faoliyati to‘g‘risidagi muvozanatsiz ma’lumotlar va mashinani o‘rganish modellari uchun xususiyatlarning to‘liq ro‘yxatini taqdim eta olmaslik. Aksincha, biz rivojlangan razvedka variantini tanladik. Bu sun'iy intellektning muqobil kontseptsiyasi bo'lib, u sun'iy intellektning yordamchi roliga qaratilgan bo'lib, kognitiv texnologiyalar uning o'rnini bosmasdan, balki inson intellektini oshirishga qaratilganligini ta'kidlaydi. [1]

Shuni inobatga olgan holda, boshidanoq mashinani o'rganish bo'yicha to'liq yechimni ishlab chiqish katta kuch talab qiladi va bu bizning biznesimiz uchun qiymat yaratishni kechiktiradi. Biz domen mutaxassislarimiz rahbarligida iterativ ravishda o'sib borayotgan mashinani o'rganish aspektiga ega tizim yaratishga qaror qildik. Bunday tizimni ishlab chiqishning qiyin tomoni shundaki, u bizning tahlilchilarimizga nafaqat bu firibgarlik yoki yo'qligini ko'rsatadigan holatlarni taqdim etishi kerak. Umuman olganda, mijozlar xatti-harakatlaridagi har qanday anomaliya shubhali holat bo'lib, mutaxassislar qandaydir tarzda tekshirishlari va javob berishlari kerak. Ushbu xabar qilingan holatlarning faqat bir qismi haqiqatan ham firibgarlik sifatida tasniflanishi mumkin.

3-tamoyil: Rich Analytics Platform

Tizimimizning eng qiyin qismi bu tizimning ish jarayonini oxirigacha tekshirish. Tahlilchilar va ishlab chiquvchilar tahlil uchun ishlatiladigan barcha ko'rsatkichlar bilan tarixiy ma'lumotlar to'plamini osongina olishlari kerak. Bundan tashqari, ma'lumotlar platformasi mavjud ko'rsatkichlar to'plamini yangilari bilan to'ldirishning oson usulini ta'minlashi kerak. Biz yaratgan jarayonlar va bu shunchaki dasturiy ta'minot jarayonlari emas, bizga oldingi davrlarni osongina qayta hisoblash, yangi ko'rsatkichlarni qo'shish va ma'lumotlar prognozini o'zgartirish imkonini berishi kerak. Bizning ishlab chiqarish tizimimiz yaratadigan barcha ma'lumotlarni to'plash orqali bunga erishishimiz mumkin. Bunday holda, ma'lumotlar asta-sekin noqulaylik tug'diradi. Biz foydalanmayotgan ma'lumotlarning ortib borayotgan miqdorini saqlashimiz va ularni himoya qilishimiz kerak. Bunday stsenariyda ma'lumotlar vaqt o'tishi bilan ko'proq ahamiyatsiz bo'lib qoladi, lekin baribir uni boshqarish uchun bizning sa'y-harakatlarimizni talab qiladi. Biz uchun ma'lumotlarni yig'ish mantiqiy emas edi, shuning uchun biz boshqacha yondashuvni tanlashga qaror qildik. Biz tasniflamoqchi bo'lgan maqsadli ob'ektlar atrofida real vaqt rejimida ma'lumotlar do'konlarini tashkil etishga va faqat eng so'nggi va tegishli davrlarni tekshirishga imkon beruvchi ma'lumotlarni saqlashga qaror qildik. Ushbu harakatning qiyinligi shundaki, bizning tizimimiz turli xil bo'lib, bir nechta ma'lumotlar ombori va izchil ishlash uchun ehtiyotkorlik bilan rejalashtirishni talab qiladigan dasturiy modullarga ega.

Tizimimizning dizayn tushunchalari

Bizning tizimimizda to'rtta asosiy komponent mavjud: qabul qilish tizimi, hisoblash, BI tahlili va kuzatish tizimi. Ular o'ziga xos, alohida maqsadlarga xizmat qiladi va biz ularni maxsus dizayn yondashuvlariga rioya qilish orqali izolyatsiya qilamiz.

Saytda buzg'unchilarga qarshi kurashning avtomatik tizimini yaratish (firibgarlik)

Shartnoma asosidagi dizayn

Avvalo, biz komponentlar faqat ular o'rtasida o'tkaziladigan ma'lum ma'lumotlar tuzilmalariga (shartnomalarga) tayanishi kerakligiga kelishib oldik. Bu ular o'rtasida integratsiyani osonlashtiradi va tarkibiy qismlarning ma'lum bir tarkibini (va tartibini) yuklamaydi. Misol uchun, ba'zi hollarda bu bizga qabul qilish tizimini ogohlantirishni kuzatish tizimi bilan bevosita integratsiya qilish imkonini beradi. Bunday holatda, bu kelishilgan ogohlantirish shartnomasiga muvofiq amalga oshiriladi. Bu shuni anglatadiki, ikkala komponent ham har qanday boshqa komponent foydalanishi mumkin bo'lgan shartnoma yordamida birlashtiriladi. Kirish tizimidan kuzatuv tizimiga ogohlantirishlar qo'shish uchun biz qo'shimcha shartnoma qo'shmaymiz. Ushbu yondashuv oldindan belgilangan minimal miqdordagi shartnomalardan foydalanishni talab qiladi va tizim va aloqalarni soddalashtiradi. Asosan, biz "Shartnomani birinchi loyihalash" deb nomlangan yondashuvni qo'llaymiz va uni oqimli shartnomalarga qo'llaymiz. [2]

Hamma joyda oqim

Tizimdagi holatni saqlash va boshqarish muqarrar ravishda uni amalga oshirishda qiyinchiliklarga olib keladi. Umuman olganda, holat har qanday komponentdan kirish mumkin bo'lishi kerak, u izchil bo'lishi va barcha komponentlar bo'yicha eng dolzarb qiymatni ta'minlashi va to'g'ri qiymatlar bilan ishonchli bo'lishi kerak. Bundan tashqari, so'nggi holatni olish uchun doimiy xotiraga qo'ng'iroqlarga ega bo'lish, real vaqt rejimida ishlatiladigan kirish-chiqarish operatsiyalari sonini va algoritmlarning murakkabligini oshiradi. Shu sababli, biz davlat xotirasini, agar iloji bo'lsa, tizimimizdan butunlay olib tashlashga qaror qildik. Ushbu yondashuv barcha kerakli ma'lumotlarni uzatiladigan ma'lumotlar blokiga (xabarga) kiritishni talab qiladi. Misol uchun, agar biz ba'zi kuzatishlarning umumiy sonini (muayyan xususiyatlarga ega operatsiyalar yoki holatlar soni) hisoblashimiz kerak bo'lsa, biz uni xotirada hisoblaymiz va bunday qiymatlar oqimini hosil qilamiz. Bog'liq modullar oqimni ob'ektlarga bo'lish va eng so'nggi qiymatlarda ishlash uchun bo'lim va to'plamdan foydalanadi. Ushbu yondashuv bunday ma'lumotlar uchun doimiy disk xotirasiga ega bo'lish zaruratini yo'q qildi. Tizimimiz Kafkadan xabar brokeri sifatida foydalanadi va u KSQL bilan ma'lumotlar bazasi sifatida ishlatilishi mumkin. [3] Ammo undan foydalanish bizning yechimimizni Kafka bilan bog'lab qo'ygan bo'lardi va biz uni ishlatmaslikka qaror qildik. Biz tanlagan yondashuv tizimda katta ichki o‘zgarishlarsiz Kafkani boshqa xabar brokeriga almashtirish imkonini beradi.

Bu kontseptsiya biz diskni saqlash va ma'lumotlar bazalaridan foydalanmasligimizni anglatmaydi. Tizim ish faoliyatini sinab ko'rish va tahlil qilish uchun biz turli ko'rsatkichlar va holatlarni ifodalovchi katta hajmdagi ma'lumotlarni diskda saqlashimiz kerak. Bu erda muhim jihat shundaki, real vaqt algoritmlari bunday ma'lumotlarga bog'liq emas. Aksariyat hollarda biz saqlangan ma'lumotlardan tizim ishlab chiqaradigan muayyan holatlar va natijalarni oflayn tahlil qilish, disk raskadrovka va kuzatish uchun foydalanamiz.

Bizning tizimimizning muammolari

Muayyan muammolar borki, biz ularni ma'lum darajada hal qildik, ammo ular yanada chuqurroq o'ylangan yechimlarni talab qiladi. Endi men ularni shu erda eslatib o'tmoqchiman, chunki har bir nuqta o'z maqolasiga arziydi.

  • Biz hali ham avtomatlashtirilgan ma'lumotlarni tahlil qilish, ochish va tadqiq qilish uchun mazmunli va tegishli ma'lumotlarni to'plashni qo'llab-quvvatlovchi jarayonlar va siyosatlarni belgilashimiz kerak.
  • Inson tahlili natijalarini tizimni so'nggi ma'lumotlar bilan yangilash uchun avtomatik sozlash jarayoniga kiritish. Bu nafaqat modelimizni yangilash, balki jarayonlarimizni yangilash va ma'lumotlarimizni tushunishimizni yaxshilashdir.
  • IF-ELSE va MLning deterministik yondashuvi o'rtasidagi muvozanatni topish. Kimdir: "ML - umidsizlar uchun vosita", dedi. Bu sizning algoritmlaringizni qanday optimallashtirish va yaxshilashni endi tushunmasangiz, ML dan foydalanmoqchi bo'lishingizni anglatadi. Boshqa tomondan, deterministik yondashuv kutilmagan anomaliyalarni aniqlashga imkon bermaydi.
  • Bizning farazlarimizni yoki ma'lumotlardagi o'lchovlar o'rtasidagi korrelyatsiyani tekshirishning oddiy usuli kerak.
  • Tizim bir necha darajali haqiqiy ijobiy natijalarga ega bo'lishi kerak. Firibgarlik holatlari tizim uchun ijobiy deb hisoblanishi mumkin bo'lgan barcha holatlarning faqat bir qismidir. Misol uchun, tahlilchilar tekshirish uchun barcha shubhali ishlarni olishni xohlashadi va ularning faqat kichik bir qismi firibgarlikdir. Tizim haqiqiy firibgarlikmi yoki shunchaki shubhali xatti-harakatmi, qat'i nazar, tahlilchilarga barcha holatlarni samarali taqdim etishi kerak.
  • Ma'lumotlar platformasi tezda yaratilgan va hisoblangan hisob-kitoblar bilan tarixiy ma'lumotlar to'plamini olish imkoniyatiga ega bo'lishi kerak.
  • Tizim komponentlaridan istalganini kamida uch xil muhitda osongina va avtomatik ravishda o'rnating: ishlab chiqarish, eksperimental (beta) va ishlab chiquvchilar uchun.
  • Va nihoyat, lekin eng kam emas. Biz modellarimizni tahlil qilishimiz mumkin bo'lgan boy ishlash sinov platformasini yaratishimiz kerak. [4]

Manbalar

  1. Kengaytirilgan intellekt nima?
  2. API-First dizayn metodologiyasini joriy qilish
  3. Kafka "Voqealar oqimi ma'lumotlar bazasi" ga aylanadi
  4. AUC - ROC egri chizig'ini tushunish

Manba: www.habr.com

a Izoh qo'shish