প্রতারণা শুধুমাত্র একটি বিরক্তিকর বিষয় নয়; এটি একটি $১২.৫ বিলিয়ন শিল্প। ২০২৪ সালের এফটিসি তথ্য অনুসারে, প্রতারণার কারণে রিপোর্ট করা ক্ষতি ব্যাপকভাবে বৃদ্ধি পেয়েছে, যেখানে শুধুমাত্র বিনিয়োগ প্রতারণাই মোট অর্ধেকের কাছাকাছি।
ডেভেলপার এবং সিস্টেম আর্কিটেক্টদের জন্য, চ্যালেঞ্জটি দ্বিমুখী:
ঐতিহ্যগত নিয়ম-ভিত্তিক সিস্টেম ("যদি পরিমাণ > $১০,০০০, তাহলে ফ্ল্যাগ করুন") খুব ভঙ্গুর। তারা ভুল পজিটিভ তৈরি করে এবং বিবর্তিত আক্রমণ ভেক্টর মিস করে।
এই ইঞ্জিনিয়ারিং গাইডে, আমরা একটি দ্বি-স্তর প্রতিরক্ষা সিস্টেম তৈরি করব। আমরা লেনদেন নিরীক্ষণের জন্য একটি উচ্চ-গতির XGBoost মডেল এবং স্প্যাম সনাক্তকরণের জন্য একটি BERT-ভিত্তিক NLP ইঞ্জিন বাস্তবায়ন করব, সবকিছু একটি ক্লাউড-নেটিভ মাইক্রোসার্ভিস আর্কিটেকচারে মোড়ানো।
চলুন নির্মাণ করি।
আমরা এমন একটি ব্যাচ জব তৈরি করছি না যা রাতারাতি চলে। প্রতারণা মিলিসেকেন্ডে ঘটে। আমাদের একটি রিয়েল-টাইম ইনফারেন্স ইঞ্জিন প্রয়োজন।
আমাদের সিস্টেমে দুটি পৃথক পাইপলাইন রয়েছে যা একটি কেন্দ্রীয় সিদ্ধান্ত ইঞ্জিনে ফিড করে।
টেবিলার আর্থিক ডেটা (পরিমাণ, সময়, অবস্থান, ডিভাইস আইডি) নিয়ে কাজ করার সময়, XGBoost বর্তমানে সেরা। আমাদের বেঞ্চমার্কে, এটি ৯৮.২% নির্ভুলতা এবং ৯৭.৬% প্রিসিশন অর্জন করেছে, গতি এবং নির্ভরযোগ্যতা উভয় ক্ষেত্রেই র্যান্ডম ফরেস্টকে ছাড়িয়ে গেছে।
প্রতারণা বিরল। যদি আপনার ১০০,০০০ লেনদেন থাকে, হয়তো মাত্র ৩০টি প্রতারণামূলক। যদি আপনি এই ডেটা দিয়ে একটি মডেল প্রশিক্ষণ দেন, এটি প্রতিবার "বৈধ" অনুমান করবে এবং ৯৯.৯% নির্ভুলতা অর্জন করবে যখন প্রতিটি প্রতারণার ঘটনা মিস করবে।
সমাধান: আমরা প্রশিক্ষণের সময় SMOTE (সিনথেটিক মাইনরিটি ওভার-স্যাম্পলিং টেকনিক) বা ক্লাস ওয়েটিং ব্যবহার করি।
এখানে লেনদেন স্কোরিংয়ের জন্য XGBoost ক্লাসিফায়ার সেট আপ করার পদ্ধতি।
import xgboost as xgb from sklearn.model_selection import train_test_split from sklearn.metrics import precision_score, recall_score, f1_score import pandas as pd # 1. Load Data (Anonymized Transaction Logs) # Features: Amount, OldBalance, NewBalance, Location_ID, Device_ID, TimeDelta df = pd.read_csv('transactions.csv') X = df.drop(['isFraud'], axis=1) y = df['isFraud'] # 2. Split Data X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 3. Initialize XGBoost # scale_pos_weight is crucial for imbalanced fraud data model = xgb.XGBClassifier( objective='binary:logistic', n_estimators=100, learning_rate=0.1, max_depth=5, scale_pos_weight=10, # Handling class imbalance use_label_encoder=False ) # 4. Train print("Training Fraud Detection Model...") model.fit(X_train, y_train) # 5. Evaluate preds = model.predict(X_test) print(f"Precision: {precision_score(y_test, preds):.4f}") print(f"Recall: {recall_score(y_test, preds):.4f}") print(f"F1 Score: {f1_score(y_test, preds):.4f}")
কেন XGBoost জয়ী:
প্রতারণা প্রায়শই একটি লিঙ্ক দিয়ে শুরু হয়। "আপনার KYC আপডেট করতে এখানে ক্লিক করুন।" \n এটি সনাক্ত করতে, আমাদের ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP) প্রয়োজন।
আমরা নাইভ বেইজ (হালকা, দ্রুত) এবং BERT (ডিপ লার্নিং) তুলনা করেছি।
একটি প্রোডাকশন পরিবেশের জন্য, আমরা একটি প্রি-ট্রেইনড ট্রান্সফর্মার মডেল ফাইন-টিউন করি।
from transformers import BertTokenizer, BertForSequenceClassification import torch # 1. Load Pre-trained BERT model_name = "bert-base-uncased" tokenizer = BertTokenizer.from_pretrained(model_name) model = BertForSequenceClassification.from_pretrained(model_name, num_labels=2) def classify_message(text): # 2. Tokenize Input inputs = tokenizer( text, return_tensors="pt", truncation=True, padding=True, max_length=512 ) # 3. Inference with torch.no_grad(): outputs = model(**inputs) # 4. Convert Logits to Probability probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1) spam_score = probabilities[0][1].item() # Score for 'Label 1' (Spam) return spam_score # Usage msg = "Urgent! Your account is locked. Click http://bad-link.com" score = classify_message(msg) if score > 0.9: print(f"BLOCKED: Phishing Detected (Confidence: {score:.2%})")
সনাক্তকরণ ব্যবস্থা ছাড়া অর্থহীন। এই আর্কিটেকচারের সবচেয়ে উদ্ভাবনী অংশ হল হস্তক্ষেপ লজিক।
আমরা শুধু প্রতারণা লগ করি না; আমরা ব্যবহারকারীর যাত্রা বাধাগ্রস্ত করি।
ওয়ার্কফ্লো:
নোট: স্ট্যান্ডার্ড ইমেইল ফিল্টারের বিপরীতে যা আইটেমগুলিকে জাঙ্ক ফোল্ডারে সরিয়ে দেয়, এই সিস্টেমটি ক্লিক এবং গন্তব্যের মধ্যে বসে, ব্যবহারকারীকে কখনও দূষিত পেলোড লোড করা থেকে বাধা দেয়।
যখন এটি প্রোডাকশনে ডেপ্লয় করা হয়, "নির্ভুলতা" একটি অহংকারের মেট্রিক। আপনাকে প্রিসিশন এবং রিকল দেখতে হবে।
আমাদের গবেষণায়, XGBoost সেরা ভারসাম্য প্রদান করেছে:
ম্যানুয়াল প্রতারণা পর্যালোচনার যুগ শেষ। লেনদেনের পরিমাণ বিস্ফোরিত হওয়ার সাথে, একমাত্র স্কেলেবল প্রতিরক্ষা হল AI।
কাঠামোগত লেনদেন ডেটার জন্য XGBoost এবং অকাঠামোগত যোগাযোগ ডেটার জন্য BERT সংযুক্ত করে, আমরা একটি শক্তিশালী ঢাল তৈরি করি যা ব্যবহারকারীদের শুধুমাত্র আর্থিক ক্ষতি থেকে নয়, বরং এর আগে ঘটে যাওয়া সামাজিক প্রকৌশল থেকেও রক্ষা করে।
ডেভেলপারদের জন্য পরবর্তী পদক্ষেপ:
\ \


