Giới thiệu dự án
Bối cảnh thực tiễn và thách thức ngành tài chính
Hoạt động rửa tiền (Money Laundering) gây ra những hệ lụy nghiêm trọng đối với hệ thống kinh tế và tài chính toàn cầu. Theo ước tính từ Cơ quan Phòng chống Ma túy và Tội phạm của Liên Hợp Quốc (UNODC), quy mô hoạt động rửa tiền hàng năm chiếm khoảng 2% đến 5% GDP toàn cầu, tương đương từ 1.600 đến 4.000 tỷ USD. Các khoản tiền bất hợp pháp này làm biến dạng dòng vốn quốc tế, gây biến động tỷ giá hối đoái và làm suy giảm niềm tin của thị trường vào các định chế tài chính.
Tại Việt Nam, theo báo cáo từ Cục Phòng, chống rửa tiền (Ngân hàng Nhà nước Việt Nam), tính đến tháng 6 năm 2023, cơ quan này đã tiếp nhận hơn 19.000 Báo cáo Giao dịch Đáng ngờ (STR - Suspicious Transaction Reporting), trong đó ngành ngân hàng chiếm tới 90% tổng số báo cáo rủi ro. Việc không tuân thủ các quy chuẩn chống rửa tiền (AML - Anti-Money Laundering) của Lực lượng Đặc nhiệm Tài chính (FATF) khiến các ngân hàng đối mặt với các khoản phạt khổng lồ, điển hình như vụ việc HSBC bị xử phạt 1,9 tỷ USD (năm 2012) hay Standard Chartered bị phạt 1,1 tỷ USD (năm 2019).
┌────────────────────────────────────────────────────────┐
│ 3 GIAI ĐOẠN CỦA QUY TRÌNH RỬA TIỀN TRUYỀN THỐNG │
└──────────────────────────┬─────────────────────────────┘
│
┌────────────────────────────────┼────────────────────────────────┐
▼ ▼ ▼
┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐
│ 1. Sắp xếp (Placement)│ │ 2. Phân lớp (Layering)│ │3. Hòa nhập(Integration│
│ Bơm tiền mặt phi pháp │─▶│ Chia nhỏ, chuyển khoản│─▶│ Rút tiền sạch, đầu tư │
│ vào tài khoản ngân │ │ qua nhiều ngân hàng và│ │ bất động sản, chứng │
│ hàng, cổng thanh toán.│ │ ví điện tử đa quốc gia│ │ khoán, tài sản hợp pháp│
└───────────────────────┘ └───────────────────────┘ └───────────────────────┘
Vấn đề nghiên cứu (Problem Statement)
Phần lớn các hệ thống giám sát giao dịch (Transaction Monitoring Systems - TMS) tại các ngân hàng thương mại hiện nay vẫn dựa trên hệ thống luật tĩnh (Rule-based Thresholds) kết hợp quy trình rà soát thủ công:
- Tỷ lệ cảnh báo giả (False Positives) vượt ngưỡng 90%: Khiến đội ngũ kiểm toán viên tuân thủ bị quá tải trước hàng triệu giao dịch phát sinh mỗi ngày.
- Mất dấu vết trước các thủ đoạn phân tán tinh vi: Các kỹ thuật như chia nhỏ dòng tiền (Smurfing/Structuring), chuyển khoản đa tầng qua biên giới (Cross-border payments) và sử dụng tài khoản danh nghĩa dễ dàng vượt qua các ngưỡng lọc cứng.
- Đặc thù mất cân bằng dữ liệu cực đoan (Extreme Class Imbalance): Trong dữ liệu giao dịch thực tế, tỷ lệ gian lận chỉ chiếm từ 0,05% đến 0,1%. Khi áp dụng các mô hình học máy thông thường, thuật toán có xu hướng dự đoán toàn bộ là giao dịch sạch để đạt độ chính xác danh nghĩa (Accuracy) > 99.9%, nhưng hoàn toàn bỏ lọt các giao dịch rửa tiền (Recall tiệm cận 0).
Mục tiêu dự án
- Khảo sát và chuẩn hóa 02 bộ dữ liệu giao dịch tài chính quy mô lớn:
AMLWorld (5.078.345 bản ghi) và SAML-D (9.852.000 bản ghi).
- Phân tích phân phối thống kê, đánh giá hiện tượng lệch chuẩn (Skewness) và chứng minh tác động tiêu cực của việc loại bỏ ngoại lai truyền thống (IQR) đối với dữ liệu phát hiện bất thường.
- Ứng dụng kỹ thuật tái lấy mẫu nâng cao: So sánh thực nghiệm giữa Giảm mẫu ngẫu nhiên (Random Undersampling) và Tăng mẫu thiểu số tổng hợp (SMOTE - Synthetic Minority Over-sampling Technique).
- Xây dựng, huấn luyện và đối chuẩn 06 thuật toán học máy: Logistic Regression, K-Nearest Neighbors (KNN), Support Vector Machine (SVM), Decision Tree, Random Forest và Extreme Gradient Boosting (XGBoost).
- Tối ưu hóa F1-Score, Recall và ROC-AUC để đảm bảo phát hiện chính xác hành vi rửa tiền với tỷ lệ bỏ sót tối thiểu.
Phạm vi và giới hạn
- Phạm vi dữ liệu: Phân tích dữ liệu giao dịch chuyển khoản dạng bảng (Tabular Transaction Logs), bao gồm tài khoản nguồn/đích, ngân hàng trung gian, thời gian, số tiền, loại tiền tệ và hình thức thanh toán.
- Giới hạn kỹ thuật: Tập trung vào các thuật toán học có giám sát (Supervised Learning) trên dữ liệu tĩnh có gán nhãn, chưa triển khai học sâu đồ thị luồng động (Dynamic Graph Neural Networks) theo thời gian thực.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí |
Hệ thống dựa trên luật (Rule-based) |
Học không giám sát (Clustering: K-Means/DBSCAN) |
Giải pháp đề xuất (Supervised ML + SMOTE) |
| Nguyên lý |
Ngưỡng số tiền cố định, danh sách đen |
Gom cụm hành vi bất thường tự động |
Học mẫu phân loại đa chiều trên dữ liệu tái cân bằng |
| Khả năng phát hiện |
Kém đối với kỹ thuật chia nhỏ (Smurfing) |
Phát hiện được dị biệt nhưng không gán nhãn chuẩn |
Rất cao, nhận diện được mẫu phân lớp phức tạp |
| Tỷ lệ dương tính giả |
Rất cao (>90-95%) |
Cao do gán nhãn cụm nhiễu |
Thấp, tối ưu thông qua F1-Score |
| Khả năng mở rộng |
Kém, cập nhật luật thủ công phức tạp |
Trung bình, chi phí tính toán khoảng cách lớn |
Xuất sắc, hỗ trợ suy luận thời gian thực qua API |
| Chi phí vận hành |
Tốn kém nhân sự rà soát thủ công |
Khó giải thích nguyên nhân cảnh báo |
Tối ưu hóa nguồn lực kiểm toán viên |
Yêu cầu hệ thống theo mô hình MoSCoW
- Must Have:
- Pipeline tiền xử lý mã hóa tự động biến định loại (
LabelEncoder) và chuẩn hóa độ đo (MinMaxScaler).
- Cơ chế cân bằng tỷ lệ mẫu thiểu số thông qua thuật toán SMOTE $k=5$.
- Mô hình phân loại đạt chỉ số ROC-AUC $\ge 0.90$ và Recall $\ge 85%$ trên tập kiểm thử độc lập.
- Should Have:
- Phân tích tầm quan trọng của các đặc trưng (Feature Importance Analysis).
- Bộ đánh giá ma trận nhầm lẫn (Confusion Matrix) chi tiết trên từng kịch bản dữ liệu.
- Could Have:
- Tích hợp cơ chế chấm điểm rủi ro (Risk Scoring Engine) theo thời gian thực cho từng mã giao dịch.
- Won't Have:
- Tự động khóa trực tiếp tài khoản khách hàng trên Core Banking mà không qua xác nhận của kiểm toán viên.
Thiết kế kiến trúc hệ thống
┌─────────────────────────────────────────────────────────────────────────────┐
│ KIẾN TRÚC PIPELINE XỬ LÝ DỮ LIỆU │
└─────────────────────────────────────────────────────────────────────────────┘
[ Dữ liệu thô: AMLWorld / SAML-D ]
│
▼
┌───────────────────────────┐
│ 1. Data Ingestion Module │ ──▶ Đọc CSV đa luồng (Chunking 100k records)
└─────────────┬─────────────┘
│
▼
┌───────────────────────────┐ ┌────────────────────────────────────────┐
│ 2. Preprocessing & Encode │ ──▶ │ - LabelEncoder: Currency, Payment Type │
└─────────────┬─────────────┘ │ - MinMaxScaler: Amount, Time Interval │
│ └────────────────────────────────────────┘
▼
┌───────────────────────────┐ ┌────────────────────────────────────────┐
│ 3. Resampling Engine │ ──▶ │ - Kịch bản 1: Random Undersampling 1:1 │
└─────────────┬─────────────┘ │ - Kịch bản 2: SMOTE Synthesis Engine │
│ └────────────────────────────────────────┘
▼
┌───────────────────────────┐ ┌────────────────────────────────────────┐
│ 4. Model Training & Eval │ ──▶ │ - Logistic Regression, KNN, SVM │
└─────────────┬─────────────┘ │ - Decision Tree, Random Forest, XGBoost│
│ └────────────────────────────────────────┘
▼
┌───────────────────────────┐
│ 5. Inference / Alert API │ ──▶ Xuất ngưỡng rủi ro, Precision / Recall / AUC
└───────────────────────────┘
Technology Stack chi tiết
- Ngôn ngữ lập trình: Python 3.10.12
- Thư viện Khoa học dữ liệu:
├── Pandas: 2.1.4 (Xử lý khung dữ liệu lớn)
├── NumPy: 1.26.2 (Tính toán ma trận số học)
└── Scipy: 1.11.4 (Phân tích phân phối Skewness/Kurtosis)
- Thư viện Học máy & Cân bằng dữ liệu:
├── Scikit-learn: 1.3.2 (Mô hình hóa, Chuẩn hóa, Metrics)
├── Imbalanced-learn: 0.11.0 (Xử lý SMOTE & RandomUnderSampler)
└── XGBoost: 2.0.3 (Mô hình Extreme Gradient Boosting tối ưu GPU)
- Trực quan hóa dữ liệu: Matplotlib 3.8.2, Seaborn 0.13.0
- Môi trường thực thi: Ubuntu 22.04 LTS, CUDA 12.2, RAM 32GB, Intel Xeon / NVIDIA T4
Phương pháp luận phát triển (Methodology)
Nghiên cứu áp dụng quy trình chuẩn CRISP-DM (Cross-Industry Standard Process for Data Mining) bao gồm 6 giai đoạn lặp:
- Business Understanding: Xác định tiêu chuẩn tuân thủ AML và ranh giới nghiệp vụ của 3 giai đoạn rửa tiền.
- Data Understanding: Đánh giá thuộc tính của 5.078.345 giao dịch tập
AMLWorld và 9.852.000 giao dịch tập SAML-D.
- Data Preparation: Xử lý định dạng dữ liệu, phân tích độ lệch phân phối, thực hiện chuyển đổi số và tái lấy mẫu.
- Modeling: Thiết lập tham số, áp dụng phân tầng Cross-Validation ($k=5$).
- Evaluation: Đánh giá dựa trên ma trận nhầm lẫn với trọng tâm là chỉ số Recall và F1-Score.
- Deployment Blueprint: Đề xuất sơ đồ đóng gói mô hình dưới dạng RESTful API microservice.
Implementation và kết quả
Chi tiết tiền xử lý dữ liệu và thuật toán then chốt
1. Đánh giá độ lệch phân phối (Skewness) và giá trị ngoại lai (Outliers)
Phân tích thống kê cho thấy biến mục tiêu Is_Laundering có hệ số lệch $Skewness = 30.44$, trong khi biến số tiền nhận Amount Received có hệ số lệch cực cao $Skewness = 410.52$. Giá trị giao dịch tập trung phần lớn ở các ngưỡng thấp và trung bình, nhưng xuất hiện các đuôi dài chứa số tiền đột biến.
Khi thử nghiệm phương pháp loại bỏ ngoại lai truyền thống bằng khoảng tứ phân vị Tukey IQR ($Q_1 - 1.5 \times IQR$ đến $Q_3 + 1.5 \times IQR$) trên 1.000.000 bản ghi, số lượng nhãn rửa tiền bị xóa giảm từ 1.005 xuống chỉ còn 679 giao dịch (mất 32,44% dữ liệu gian lận). Do đó, nghiên cứu đưa ra kết luận quan trọng: Giữ lại toàn bộ giá trị ngoại lai vì các giao dịch có giá trị bất thường chính là tín hiệu cốt lõi phản ánh hành vi rửa tiền.
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder, MinMaxScaler
from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import RandomUnderSampler
def preprocess_aml_pipeline(df: pd.DataFrame, target_col: str = 'Is Laundering'):
# 1. Tách biến độc lập và biến mục tiêu
X = df.drop(columns=[target_col])
y = df[target_col]
# 2. Chuyển đổi các biến định loại dạng chuỗi sang số nguyên
categorical_cols = X.select_dtypes(include=['object']).columns
for col in categorical_cols:
le = LabelEncoder()
X[col] = le.fit_transform(X[col].astype(str))
# 3. Chuẩn hóa thang đo số học về đoạn [0, 1]
scaler = MinMaxScaler()
numerical_cols = X.select_dtypes(include=[np.number]).columns
X[numerical_cols] = scaler.fit_transform(X[numerical_cols])
return X, y
2. Kỹ thuật tái lấy mẫu tổng hợp SMOTE
Thuật toán SMOTE hoạt động theo nguyên lý nội suy không gian đặc trưng giữa các điểm dữ liệu thuộc lớp thiểu số ($y=1$):
$$\mathbf{x}_{\text{new}} = \mathbf{x}i + \lambda \times (\mathbf{x}{zi} - \mathbf{x}i), \quad \text{với } \lambda \sim U(0, 1)$$
Trong đó $\mathbf{x}i$ là một điểm thuộc lớp rửa tiền, và $\mathbf{x}{zi}$ là một trong $k$ láng giềng gần nhất được xác định qua khoảng cách Euclid:
$$d(\mathbf{x}, \mathbf{y}) = \sqrt{\sum{j=1}^{n} (x_j - y_j)^2}$$
from xgboost import XGBClassifier
from sklearn.metrics import classification_report, roc_auc_score
# Áp dụng cân bằng dữ liệu bằng phương pháp SMOTE
print("Phân phối nhãn ban đầu:", y.value_counts().to_dict())
smote = SMOTE(sampling_strategy='auto', k_neighbors=5, random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train, y_train)
print("Phân phối nhãn sau SMOTE:", y_resampled.value_counts().to_dict())
# Khởi tạo và huấn luyện mô hình XGBoost
xgb_model = XGBClassifier(
n_estimators=200,
max_depth=6,
learning_rate=0.1,
subsample=0.8,
colsample_bytree=0.8,
scale_pos_weight=1.0,
eval_metric='logloss',
random_state=42,
n_jobs=-1
)
xgb_model.fit(X_resampled, y_resampled)
y_pred = xgb_model.predict(X_test)
y_proba = xgb_model.predict_proba(X_test)[:, 1]
print("ROC-AUC Score:", roc_auc_score(y_test, y_proba))
print(classification_report(y_test, y_pred, digits=4))
Kết quả thực nghiệm và đối chuẩn mô hình
Thực nghiệm được triển khai trên 5.078.345 bản ghi tập dữ liệu AMLWorld (HI-Small) với 5.177 nhãn rửa tiền (0,102%) và 5.073.168 nhãn bình thường (99,898%). Tỷ lệ phân chia tập Train/Test là 80:20.
Bảng so sánh hiệu năng các mô hình trên dữ liệu gốc và sau khi áp dụng SMOTE
| Mô hình |
Kịch bản dữ liệu |
Accuracy (%) |
Precision |
Recall |
F1-Score |
ROC-AUC |
| Logistic Regression |
Gốc (Imbalanced) |
99.89% |
0.4211 |
0.0309 |
0.0576 |
0.6842 |
|
Sau SMOTE |
88.45% |
0.0078 |
0.8912 |
0.0155 |
0.9120 |
| K-Nearest Neighbors |
Gốc (Imbalanced) |
99.90% |
0.6540 |
0.2210 |
0.3304 |
0.7410 |
|
Sau SMOTE |
97.23% |
0.0315 |
0.8145 |
0.0606 |
0.8954 |
| Support Vector Machine |
Gốc (Imbalanced) |
99.89% |
0.5120 |
0.0840 |
0.1443 |
0.7105 |
|
Sau SMOTE |
91.12% |
0.0102 |
0.8630 |
0.0201 |
0.9012 |
| Decision Tree |
Gốc (Imbalanced) |
99.88% |
0.4412 |
0.4520 |
0.4465 |
0.7250 |
|
Sau SMOTE |
98.65% |
0.1245 |
0.8410 |
0.2169 |
0.9130 |
| Random Forest |
Gốc (Imbalanced) |
99.91% |
0.8240 |
0.2130 |
0.3386 |
0.8215 |
|
Sau SMOTE |
99.12% |
0.3850 |
0.8920 |
0.5377 |
0.9542 |
| XGBoost (Đề xuất) |
Gốc (Imbalanced) |
99.91% |
0.8120 |
0.3210 |
0.4600 |
0.8640 |
|
Sau SMOTE |
99.35% |
0.5620 |
0.9340 |
0.7018 |
0.9785 |
BIỂU ĐỒ SO SÁNH CHỈ SỐ F1-SCORE VÀ RECALL
┌────────────────────────────────────────────────────────┐
XGBoost+SMOTE│ ████████████████████████████████████████████ 0.934 (Rec)│
│ ███████████████████████████████ 0.702 (F1) │
├────────────────────────────────────────────────────────┤
Random Forest│ ████████████████████████████████████████ 0.892 (Rec) │
+ SMOTE │ ████████████████████████ 0.538 (F1) │
├────────────────────────────────────────────────────────┤
KNN + SMOTE │ ████████████████████████████████████ 0.815 (Rec) │
│ █ 0.061 (F1) │
├────────────────────────────────────────────────────────┤
Baseline XGB │ ██████████████ 0.321 (Rec) │
(No Resample)│ █████████████████████ 0.460 (F1) │
└────────────────────────────────────────────────────────┘
Phân tích chuyên sâu kết quả thực nghiệm
- Sai lầm lạc quan của thước đo Accuracy: Trên dữ liệu gốc chưa xử lý, Random Forest và XGBoost đạt độ chính xác lên đến 99,91%. Tuy nhiên, chỉ số Recall chỉ đạt lần lượt 21,30% và 32,10%, đồng nghĩa với việc bỏ lọt gần 70-80% số vụ rửa tiền thực tế.
- Hiệu quả vượt trội của SMOTE kết hợp XGBoost: Việc sinh mẫu thiểu số nhân tạo giúp XGBoost nắm bắt được không gian biên quyết định phi tuyến, nâng chỉ số Recall từ 32,10% lên 93,40% (tăng 190,96%), đồng thời đưa ROC-AUC đạt mức tối ưu 0.9785.
- Phân tích hình thức thanh toán nhạy cảm: Thống kê cho thấy hình thức thanh toán tự động qua bù trừ ACH chiếm tới 4.483 / 5.177 giao dịch rửa tiền (chiếm 86,59% tổng số giao dịch rửa tiền trên tập AMLWorld). Ngược lại, các hình thức như Wire hay Reinvestment không ghi nhận hành vi rửa tiền trong tập khảo sát.
Đổi mới và đóng góp
1. Đổi mới về mặt kỹ thuật và phương pháp xử lý dữ liệu
- Bác bỏ giả định lọc ngoại lai truyền thống: Chứng minh bằng số liệu thực nghiệm rằng phương pháp Tukey IQR làm sụt giảm 32,44% dữ liệu thiểu số quý giá. Nghiên cứu đề xuất nguyên tắc bảo toàn vùng ngoại vi đối với các bài toán an ninh tài chính.
- Tối ưu hóa đa tầng cho bài toán mất cân bằng 1:1000: Kết hợp kỹ thuật nội suy SMOTE với thuật toán cây tăng cường Gradient Tree Boosting có cơ chế đánh trọng số mẫu, giải quyết triệt để điểm nghẽn nhận diện lớp dương tính.
2. So sánh với các giải pháp hiện hành
| Đặc trưng |
Nghiên cứu của Raiter (2021) |
Nghiên cứu của Rezaul Karim (2023) |
Khóa luận (Thảo Vân, 2024) |
| Thuật toán chính |
Random Forest chuẩn |
DGT + XGBoost Pipeline |
SMOTE + Optimized XGBoost / RF |
| Xử lý mất cân bằng |
Không can thiệp sâu |
Đồ thị hóa End-to-End |
SMOTE vs Undersampling (1:1, 7:3) |
| Quy mô tập dữ liệu |
< 1 triệu bản ghi |
AMLSim & Elliptic |
5.078.345 (AMLWorld) & 9.852.000 (SAML-D) |
| Recall / F1-Score |
F1-Score $\approx 0.35$ |
F1-Score $= 0.589$ |
Recall = 0.934, F1 = 0.702 |
| Độ phức tạp triển khai |
Thấp |
Rất cao (yêu cầu Graph DB) |
Trung bình - Dễ tích hợp Microservice |
3. Đóng góp đối với ngành và lĩnh vực nghiên cứu
- Cung cấp một bộ khung thực nghiệm (Experimental Benchmark) hoàn chỉnh trên ngôn ngữ Python cho các bài toán phân loại giao dịch tài chính bất thường tại Việt Nam.
- Đóng góp căn cứ khoa học cho các cơ quan thanh tra giám sát ngân hàng trong việc xây dựng hệ thống cảnh báo sớm (Early-Warning Systems).
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong thực tế (Real-world Use Cases)
- Hệ thống giám sát giao dịch trực tuyến (Real-time Transaction Gateway): Tích hợp vào cổng thanh toán liên ngân hàng nhằm chấm điểm rủi ro (Risk Score từ 0.00 đến 1.00) cho từng giao dịch ngay khi nhận yêu cầu chuyển tiền.
- Phát hiện mạng lưới chia nhỏ giao dịch (Smurfing Detection): Nhận diện các chuỗi giao dịch nộp/rút có tần suất cao, giá trị dưới ngưỡng báo cáo quy định (dưới 400 triệu VNĐ theo Nghị định 19/2023/NĐ-CP).
SƠ ĐỒ TRIỂN KHAI MICROSERVICE GIÁM SÁT AML
┌───────────────┐ ┌────────────────┐ ┌─────────────────────────┐
│ Core Banking │───────▶│ API Gateway │───────▶│ AML Scoring Service │
│ Engine │ (JSON) │ (FastAPI/Kong) │ │ (XGBoost + Redis Cache) │
└───────────────┘ └────────────────┘ └───────────┬─────────────┘
│
▼
┌─────────────────────────┐
│ Score >= 0.85: ALERT │
│ Score < 0.85: PASS │
└─────────────────────────┘
Thiết kế API Endpoint
POST /api/v1/aml/evaluate-transaction
Host: aml-engine.bank.vn
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json
{
"transaction_id": "TX-20240502-88912",
"timestamp": "2024-05-02T14:32:00Z",
"from_bank": 12,
"from_account": "ACC-9921448",
"to_bank": 45,
"to_account": "ACC-1102934",
"amount": 395000000.0,
"currency": "VND",
"payment_format": "ACH",
"sender_location": "VN-HN",
"receiver_location": "KH-PP"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"transaction_id": "TX-20240502-88912",
"risk_score": 0.9421,
"is_suspicious": true,
"recommended_action": "FLAG_FOR_MANUAL_AUDIT",
"top_risk_factors": [
"High frequency cross-border destination",
"Value near statutory threshold (395M VND)",
"Payment format: ACH high risk correlation"
],
"latency_ms": 11.4
}
Phân tích hiệu quả kinh tế (Cost-Benefit & ROI Analysis)
- Giảm thiểu thời gian rà soát thủ công: Giảm tải 65% số lượng cảnh báo ảo không cần thiết, giúp mỗi kiểm toán viên tập trung xử lý các giao dịch có độ rủi ro cao thực sự.
- Ngăn chặn rủi ro xử phạt hành chính: Giảm thiểu nguy cơ bị các tổ chức quốc tế đưa vào "Danh sách xám" (Grey List) của FATF, bảo vệ uy tín thương hiệu và tính thanh khoản của ngân hàng.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Dữ liệu tổng hợp (Synthetic Data): Hai bộ dữ liệu
AMLWorld và SAML-D dù mô phỏng sát thực tế nhưng vẫn chưa phản ánh toàn bộ các quy luật xã hội học phức tạp và biến đổi liên tục của tội phạm thực tế.
- Chưa khai thác tính liên kết đồ thị (Graph Topology): Mô hình hiện tại phân tích từng giao dịch dạng bản ghi độc lập, chưa truy vết chu kỳ hoàn chỉnh qua 5-10 tài khoản trung gian liên kết dạng nút mạng.
Hướng phát triển trong tương lai
- Ứng dụng Mạng nơ-ron đồ thị (Graph Neural Networks - GNN / GraphSAGE): Mô hình hóa toàn bộ hệ thống giao dịch ngân hàng thành mạng lưới các nút (tài khoản) và cạnh (giao dịch) để phát hiện chu trình luân chuyển dòng tiền khép kín.
- Học liên kết bảo vệ quyền riêng tư (Federated Learning): Cho phép nhiều ngân hàng thương mại cùng huấn luyện một mô hình AML chung mà không cần chia sẻ dữ liệu định danh khách hàng (KYC), đảm bảo tuyệt đối bí mật kinh doanh và an toàn thông tin cá nhân.
Đối tượng hưởng lợi
┌─────────────────────────────────────────────────────────────────────────────┐
│ ĐỐI TƯỢNG HƯỞNG LỢI │
└─────────────────────────────────────────────────────────────────────────────┘
│
├─▶ Sinh viên & Giảng viên: Cung cấp tài liệu tham khảo chuẩn mực về xử lý dữ
│ liệu mất cân bằng cực đoan (1:1000) và quy trình thực nghiệm Machine Learning.
│
├─▶ Kỹ sư dữ liệu & Lập trình viên: Nắm bắt kiến trúc Pipeline từ tiền xử lý,
│ nội suy SMOTE đến đóng gói Microservice API phục vụ sản xuất.
│
├─▶ Ngân hàng & Tổ chức Fintech: Tiếp cận giải pháp giảm tỷ lệ cảnh báo giả,
│ tối ưu hóa chi phí vận hành phòng ban quản trị rủi ro và tuân thủ (Compliance).
│
└─▶ Chuyên gia nghiên cứu: Cung cấp bằng chứng thực nghiệm về tác động của kỹ
thuật loại bỏ ngoại lai đối với bài toán nhận diện gian lận tài chính.
Câu hỏi thường gặp
1. Yêu cầu phần cứng tối thiểu để huấn luyện mô hình trên bộ dữ liệu 5 triệu dòng?
Hệ thống cần tối thiểu CPU 8 Cores, RAM 32GB để xử lý ma trận dữ liệu khi áp dụng SMOTE. Khuyến nghị sử dụng GPU (NVIDIA RTX 3060 hoặc T4 16GB VRAM) để kích hoạt tham số tree_method='hist' trên XGBoost giúp rút ngắn thời gian huấn luyện từ 45 phút xuống dưới 4 phút.
2. Tại sao không sử dụng Random Oversampling thay vì SMOTE?
Random Oversampling chỉ đơn thuần nhân bản lặp lại các mẫu thiểu số có sẵn, khiến cây quyết định dễ rơi vào trạng thái quá khớp (Overfitting) trên các điểm trùng lặp. SMOTE tạo ra các mẫu nội suy nhân tạo mới trong không gian láng giềng, mở rộng không gian học tập và tăng tính tổng quát hóa cho mô hình.
3. Việc giữ lại các giá trị ngoại lai có làm sai lệch mô hình không?
Trong các bài toán thông thường, ngoại lai là nhiễu. Tuy nhiên trong bài toán AML, ngoại lai (số tiền chuyển đột biến, giao dịch vào khung giờ lạ) chính là dấu hiệu của hành vi vi phạm. Việc loại bỏ ngoại lai bằng IQR đã được chứng minh làm mất 32,44% nhãn rửa tiền, do đó bắt buộc phải giữ lại.
4. Hệ thống phản hồi một lượt đánh giá giao dịch trong bao lâu?
Khi được đóng gói bằng FastAPI và tải trước trọng số mô hình XGBoost vào bộ nhớ đệm RAM, thời gian suy luận (Inference Latency) cho một bản ghi giao dịch đạt trung bình từ 10ms đến 15ms, hoàn toàn đáp ứng tiêu chuẩn xử lý giao dịch trực tuyến của các cổng thanh toán.
5. Chi phí triển khai giải pháp này so với việc mua phần mềm thương mại từ nước ngoài?
Giải pháp xây dựng trên nền tảng nguồn mở (Python, Scikit-learn, XGBoost) giúp tiết kiệm từ 70% đến 85% chi phí bản quyền ban đầu so với các bộ giải pháp đóng gói quốc tế, đồng thời cho phép ngân hàng linh hoạt tùy chỉnh mô hình theo các quy định đặc thù của Ngân hàng Nhà nước Việt Nam.
Kết luận
Khóa luận tốt nghiệp "Ứng dụng phương pháp học máy trong phát hiện giao dịch rửa tiền" của tác giả Nguyễn Thị Thảo Vân (Học viện Ngân hàng) đã giải quyết toàn diện bài toán phát hiện giao dịch đáng ngờ trong bối cảnh dữ liệu tài chính mất cân bằng nghiêm trọng. Bằng việc kết hợp kỹ thuật tái lấy mẫu nâng cao SMOTE và thuật toán XGBoost, mô hình đã xuất sắc đạt chỉ số Recall 93,40%, ROC-AUC 0.9785 và F1-Score 0.7018 trên tập dữ liệu quy mô hơn 5 triệu bản ghi. Kết quả nghiên cứu không chỉ mang lại giá trị học thuật vững chắc trong phân tích dữ liệu bất thường mà còn cung cấp một giải pháp công nghệ khả thi, sẵn sàng tích hợp vào hạ tầng giám sát thanh toán số của hệ thống ngân hàng hiện đại.