کلاهبرداری فقط یک مزاحمت نیست؛ بلکه یک صنعت 12.5 میلیارد دلاری است. طبق دادههای FTC در سال 2024، ضررهای گزارش شده ناشی از کلاهبرداری به شدت افزایش یافته است، به طوری که کلاهبرداریهای سرمایهگذاری به تنهایی تقریباً نیمی از کل این مبلغ را تشکیل میدهند.
برای توسعهدهندگان و معماران سیستم، چالش دوگانه است:
سیستمهای مبتنی بر قوانین سنتی ("اگر مقدار > 10,000 دلار، آن را پرچمگذاری کن") بسیار شکننده هستند. آنها مثبتهای کاذب تولید میکنند و بردارهای حمله در حال تکامل را از دست میدهند.
در این راهنمای مهندسی، ما یک سیستم دفاعی دو لایه خواهیم ساخت. ما یک مدل XGBoost با سرعت بالا برای نظارت بر تراکنش و یک موتور NLP مبتنی بر BERT برای تشخیص اسپم پیادهسازی خواهیم کرد، و همه اینها را در یک معماری میکروسرویس بومی ابر قرار میدهیم.
بیایید بسازیم.
ما در حال ساخت یک کار دستهای که شبانه اجرا میشود نیستیم. کلاهبرداری در میلیثانیهها اتفاق میافتد. ما به یک موتور استنتاج بلادرنگ نیاز داریم.
سیستم ما از دو خط لوله متمایز تشکیل شده است که به یک موتور تصمیمگیری مرکزی تغذیه میشوند.
هنگام کار با دادههای مالی جدولی (مقدار، زمان، مکان، شناسه دستگاه)، XGBoost در حال حاضر پادشاه تپه است. در معیارهای ما، به دقت 98.2% و صحت 97.6% دست یافت و در هر دو سرعت و قابلیت اطمینان از جنگل تصادفی پیشی گرفت.
کلاهبرداری نادر است. اگر 100,000 تراکنش داشته باشید، شاید فقط 30 مورد کلاهبرداری باشد. اگر مدلی را با این دادهها آموزش دهید، هر بار فقط "مشروع" را حدس میزند و به دقت 99.9% میرسد در حالی که هر مورد کلاهبرداری را از دست میدهد.
راه حل: ما از 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 بهترین تعادل را ارائه داد:
عصر بررسی دستی کلاهبرداری به پایان رسیده است. با افزایش حجم تراکنشها، تنها دفاع مقیاسپذیر هوش مصنوعی است.
با ترکیب XGBoost برای دادههای تراکنش ساختاریافته و BERT برای دادههای ارتباطی بدون ساختار، ما یک سپر قوی ایجاد میکنیم که از کاربران نه تنها در برابر ضرر مالی، بلکه در برابر مهندسی اجتماعی که پیش از آن رخ میدهد محافظت میکند.
گامهای بعدی برای توسعهدهندگان:
\ \


