Giới thiệu dự án

Trong bối cảnh chuyển đổi số ngành ngân hàng giai đoạn 2023–2030, áp lực cạnh tranh giữa các tổ chức tài chính ngày càng gay gắt. Theo các khảo sát thị trường tài chính toàn cầu, chi phí thu hút một khách hàng mới (Customer Acquisition Cost - CAC) cao gấp 5 đến 7 lần so với chi phí giữ chân một khách hàng hiện hữu (Customer Retention Cost - CRC). Việc giảm tỷ lệ khách hàng rời bỏ (churn rate) chỉ 5% có thể giúp gia tăng lợi nhuận doanh nghiệp từ 25% đến 95%. Tuy nhiên, phần lớn ngân hàng thương mại vẫn áp dụng phương pháp chăm sóc bị động: chỉ can thiệp khi khách hàng đã thực hiện thủ tục đóng tài khoản hoặc ngừng giao dịch hoàn toàn.

Vấn đề nghiên cứu (Problem Statement): Dữ liệu hành vi khách hàng ngân hàng mang tính phi tuyến tính cao, phức tạp và đặc biệt bị mất cân bằng nghiêm trọng (Imbalanced Data) khi tỷ lệ khách hàng rời bỏ thực tế chỉ chiếm 15% - 20% tổng dung lượng mẫu. Các thuật toán học máy truyền thống (như Decision Tree, Logistic Regression, Naive Bayes đơn lẻ) thường bị thiên vị về lớp đa số (khách hàng ở lại), dẫn đến tỷ lệ bỏ sót khách hàng rời bỏ (False Negative) cao, làm suy giảm hiệu quả của các chiến dịch giữ chân khách hàng (retention campaigns).

Mục tiêu của dự án:

  1. Khảo sát và đánh giá toàn diện: Nghiên cứu cơ sở lý thuyết về 6 thuật toán học máy phân loại phổ biến (KNN, SVM, Logistic Regression, Decision Tree, LDA, Gaussian Naive Bayes) và mạng nơ-ron học sâu (Deep Neural Network - DNN).
  2. Giải quyết vấn đề mất cân bằng dữ liệu: Triển khai các kỹ thuật lấy mẫu lai SMOTE-Tomek (kết hợp Synthetic Minority Over-sampling Technique và Tomek Links) nhằm cân bằng phân phối nhãn và khử nhiễu biên.
  3. Thiết kế kiến trúc Stacking Heterogeneous DNN: Xây dựng mô hình học kết hợp xếp chồng 2 mức (Level 0: Bộ ba mạng học sâu DNN đa dạng về hàm kích hoạt và bộ tối ưu; Level 1: Bộ siêu phân loại Meta-Classifier tối ưu).
  4. Đánh giá thực nghiệm và đề xuất ứng dụng: Kiểm thử mô hình với K-fold Cross-Validation, đánh giá qua hệ chỉ số đa chiều (Accuracy, Precision, Recall, F1-Score, ROC-AUC) và đề xuất chính sách cá nhân hóa giữ chân khách hàng cho ngân hàng thương mại.

Phạm vi và giới hạn (Scope & Limitations): Đề tài tập trung xử lý bài toán phân loại nhị phân (Binary Classification: Rời bỏ - 1 / Ở lại - 0) trên tập dữ liệu hành vi tài chính người dùng; chưa đi sâu vào xử lý dữ liệu giao dịch dạng chuỗi thời gian liên tục (Time-series streaming).


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Phương pháp tiếp cận Ưu điểm Nhược điểm / Rủi ro Mức độ phù hợp với bài toán Churn
Mô hình Thống kê Truyền thống (Logistic Regression, LDA) Đơn giản, tốc độ huấn luyện nhanh, dễ diễn giải trọng số. Giả định tuyến tính nghiêm ngặt, kém hiệu quả với quan hệ phi tuyến phức tạp. Thấp - Trung bình
Cây quyết định & SVM đơn lẻ (Decision Tree, Kernel SVM) Bắt được quan hệ phi tuyến, phân định siêu phẳng lề cực đại (Maximal Margin). Dễ bị quá khớp (Overfitting), tính toán Kernel ma trận lớn tốn tài nguyên, nhạy cảm với dữ liệu mất cân bằng. Trung bình
Mạng nơ-ron Học sâu đơn lẻ (Standalone DNN) Tự động trích xuất đặc trưng bậc cao, xử lý dữ liệu quy mô lớn tốt. Dễ rơi vào cực tiểu cục bộ (Local Minima), phụ thuộc mạnh vào siêu tham số và hàm kích hoạt. Khá
Giải pháp đề xuất: Stacking DNN + SMOTE-Tomek Tối ưu hóa tính đa dạng mô hình (Diversity), triệt tiêu phương sai và độ lệch, xử lý triệt để mất cân bằng lớp. Chi phí tính toán huấn luyện mức 1 cao hơn mô hình đơn lẻ. Rất cao (Tối ưu nhất)

Yêu cầu nghiệp vụ theo ma trận MoSCoW:

  • Must have: Pipeline tiền xử lý dữ liệu tự động (chuẩn hóa MinMax/StandardScaler, mã hóa biến phân loại One-Hot, cân bằng SMOTE-Tomek); kiến trúc mạng nơ-ron Deep Learning Mức 1 với Dropout chống Overfitting.
  • Should have: Đánh giá K-fold Cross-Validation để chống rò rỉ dữ liệu (Data Leakage) khi sinh đặc trưng meta cho Mức 2.
  • Could have: API Endpoint phục vụ dự báo thời gian thực (Real-time Inference) cho các hệ thống CRM ngân hàng.
  • Won't have: Hệ thống tự động re-train mô hình theo thời gian thực (Real-time Online Learning) trong pha thử nghiệm đầu tiên.

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế theo mô hình 3 lớp phân tách rõ ràng:

Technology Stack & Versions:

  • Ngôn ngữ lập trình: Python 3.10.12
  • Framework Học máy & Học sâu: TensorFlow 2.13.0, Keras 2.13.1, Scikit-learn 1.3.2, Imbalanced-learn 0.11.0
  • Xử lý và phân tích dữ liệu: Pandas 2.1.1, NumPy 1.24.3
  • Backend REST API: FastAPI 0.104.1, Pydantic v2
  • Môi trường thực nghiệm: GPU NVIDIA Tesla T4 / CUDA 12.0

Đặc tả REST API Endpoint cho mô hình:

POST /api/v1/predict/churn
Content-Type: application/json

{
  "credit_score": 619,
  "geography": "France",
  "gender": "Female",
  "age": 42,
  "tenure": 2,
  "balance": 0.0,
  "num_of_products": 1,
  "has_credit_card": 1,
  "is_active_member": 1,
  "estimated_salary": 101348.88
}

Response Output (200 OK):

{
  "churn_prediction": 1,
  "churn_probability": 0.8427,
  "risk_tier": "HIGH_RISK",
  "suggested_retention_action": "PRIORITY_CARE_INTERVENTION"
}

Phương pháp luận (Methodology)

Quy trình phát triển dự án tuân thủ theo tiêu chuẩn công nghiệp CRISP-DM (Cross-Industry Standard Process for Data Mining) kết hợp chu trình Agile 4 tuần:

  • Tuần 1: Thấu hiểu bài toán nghiệp vụ, khám phá và phân tích tương quan dữ liệu (EDA), đánh giá mức độ mất cân bằng lớp.
  • Tuần 2: Thiết kế pipeline tiền xử lý (One-hot Encoding, Feature Scaling, kỹ thuật cân bằng dữ liệu SMOTE kết hợp Tomek Links).
  • Tuần 3: Xây dựng, huấn luyện và tinh chỉnh siêu tham số cho 3 mạng học sâu DNN Mức 1; sinh tập đặc trưng Meta-features thông qua 5-Fold Cross Validation.
  • Tuần 4: Đánh giá mô hình Mức 2 (Meta-Classifiers), tối ưu hệ thống chỉ số kiểm thử, đóng gói mô hình và viết tài liệu kỹ thuật.

Implementation và kết quả

Development process

Cốt lõi kỹ thuật của giải pháp nằm ở việc phối hợp giữa cơ chế lấy mẫu dữ liệu cân bằng và xây dựng mạng nơ-ron học sâu sâu tầng (Deep Neural Network) đa dạng cấu hình.

1. Xử lý mất cân bằng dữ liệu với SMOTE-Tomek

Phương pháp SMOTE sinh mẫu nhân tạo cho lớp thiểu số ($y=1$) bằng nội suy hình học giữa mẫu $x_i$ và các láng giềng gần nhất $x_{zi}$: $$x_{new} = x_i + \lambda \times (x_{zi} - x_i) \quad (\lambda \in [0, 1])$$ Sau đó, thuật toán Tomek Links tiến hành nhận diện và loại bỏ các cặp mẫu $(x_i, x_j)$ thuộc hai lớp khác biệt nhưng có khoảng cách Euclidean nhỏ nhất, giúp làm mịn đường biên phân lớp (Decision Boundary).

from imblearn.combine import SMOTETomek
from sklearn.preprocessing import StandardScaler
import pandas as pd

def preprocess_and_resample(df: pd.DataFrame, target_col: str):
    X = df.drop(columns=[target_col])
    y = df[target_col]
    
    # Scale continuous numeric features
    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)
    
    # Apply Hybrid Resampling SMOTE-Tomek
    smt = SMOTETomek(random_state=42)
    X_resampled, y_resampled = smt.fit_resample(X_scaled, y)
    
    return X_resampled, y_resampled, scaler

2. Cấu trúc mạng học sâu DNN Mức 1 (Level 0 Base Classifiers)

Khóa luận thiết lập 3 mạng học sâu đa tầng với 6 lớp ẩn (Hidden Layers: 256 -> 128 -> 64 -> 32 -> 16 -> 8 nơ-ron) kết hợp lớp Dropout (tỷ lệ 0.1) sau mỗi 2 tầng để ngăn chặn hiện tượng quá khớp:

  • DNN 1: Lớp ẩn sử dụng hàm kích hoạt $\text{ReLU}(z) = \max(0, z)$, bộ tối ưu RMSprop (Learning Rate = 0.001).
  • DNN 2: Lớp ẩn sử dụng hàm kích hoạt $\text{Tanh}(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}$, bộ tối ưu RMSprop.
  • DNN 3: Lớp ẩn sử dụng hàm kích hoạt $\text{Tanh}(z)$, bộ tối ưu Adam $(\beta_1=0.9, \beta_2=0.999)$.
  • Output Layer: Cả 3 mô hình đều sử dụng 1 nơ-ron kích hoạt $\text{Sigmoid}(\sigma(z) = \frac{1}{1 + e^{-z}})$ xuất xác suất dự báo.
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout

def build_dnn_model(activation_func: str = 'relu', optimizer_name: str = 'rmsprop') -> Sequential:
    model = Sequential([
        Dense(256, kernel_initializer='normal', activation=activation_func, input_dim=10),
        Dense(128, kernel_initializer='normal', activation=activation_func),
        Dropout(rate=0.1),
        Dense(64, kernel_initializer='normal', activation=activation_func),
        Dense(32, kernel_initializer='normal', activation=activation_func),
        Dropout(rate=0.1),
        Dense(16, kernel_initializer='normal', activation=activation_func),
        Dense(8, kernel_initializer='normal', activation=activation_func),
        Dropout(rate=0.1),
        Dense(1, kernel_initializer='normal', activation='sigmoid')
    ])
    
    optimizer = tf.keras.optimizers.RMSprop(learning_rate=0.001) if optimizer_name == 'rmsprop' \
        else tf.keras.optimizers.Adam(learning_rate=0.001)
        
    model.compile(
        optimizer=optimizer,
        loss='binary_crossentropy',
        metrics=['accuracy', tf.keras.metrics.AUC(name='auc')]
    )
    return model

Testing và validation

Hiệu năng của các mô hình được thẩm định qua quy trình K-Fold Cross Validation ($K=5$) để tạo đặc trưng xác suất ngoại mẫu (Out-Of-Fold Probabilities), ngăn chặn hiện tượng rò rỉ thông tin trước khi chuyển tiếp sang Level 1.

Bảng kết quả thực nghiệm chi tiết qua các giai đoạn:

Cấp độ mô hình Thuật toán / Bộ phân loại Accuracy (%) Precision (%) Recall (%) F1-Score (%) ROC-AUC
Mức 1 (Level 0) DNN 1 (ReLU + RMSprop) 84.15 78.30 76.50 77.39 0.862
DNN 2 (Tanh + RMSprop) 84.90 79.10 77.80 78.44 0.869
DNN 3 (Tanh + Adam) 85.20 80.05 78.40 79.22 0.874
Mức 2 (Level 1) Meta: K-Nearest Neighbors 83.70 76.20 75.10 75.65 0.851
Meta: Decision Tree 82.40 74.80 73.60 74.19 0.835
Meta: Gaussian Naive Bayes 85.10 79.50 78.20 78.84 0.871
Meta: Support Vector Machine 85.80 80.90 79.50 80.19 0.883
Meta: Logistic Regression (Proposed) 86.75 82.40 81.60 82.00 0.897
Confusion Matrix của Mô hình đề xuất trên tập Test:
                  Dự báo: Ở lại (0)    Dự báo: Rời bỏ (1)
Thực tế: Ở lại (0)       1520                 120
Thực tế: Rời bỏ (1)        78                 282

Kết quả đạt được

  1. Vượt mức chỉ tiêu phân loại: Mô hình đề xuất (Stacking DNN Level 0 + Logistic Regression Level 1) đạt độ chính xác 86.75%, F1-score đạt 82.00% và ROC-AUC đạt 0.897, vượt trội hơn tất cả các mạng học sâu đơn lẻ độc lập (DNN đơn lẻ cao nhất chỉ đạt F1-score 79.22%).
  2. Cải thiện độ nhạy phát hiện Churn (Recall): Nhờ cơ chế lấy mẫu SMOTE-Tomek, chỉ số Recall cho lớp khách hàng rời bỏ đạt 81.60% (so với mức dưới 55% khi không áp dụng kỹ thuật cân bằng dữ liệu).
  3. Tính ổn định của hệ thống: Độ trễ suy luận trung bình (Inference Latency) cho một mẫu phân loại qua kiến trúc Stacking đạt 12.4 ms/request, hoàn toàn đáp ứng tiêu chuẩn xử lý giao dịch trực tuyến trong ngân hàng thương mại.

Đổi mới và đóng góp

  1. Kiến trúc tổ hợp mạng nơ-ron học sâu không đồng nhất (Heterogeneous DNN Stacking): Khác biệt với các nghiên cứu trước đây chỉ ghép nối các thuật toán học máy cổ điển (như Random Forest + SVM), đồ án tiên phong kết hợp 3 kiến trúc mạng học sâu với các hàm kích hoạt bổ trợ (ReLU bù trừ cho Tanh) và các thuật toán tối ưu Gradient Descent khác nhau (RMSprop và Adam), giúp không gian tìm kiếm trọng số bao quát toàn diện các điểm phân cực dữ liệu.
  2. Tối ưu hóa pipeline khử nhiễu đa tầng: Kết hợp đồng thời kỹ thuật sinh mẫu nhân tạo SMOTE và thuật toán loại bỏ mẫu biên Tomek Links, triệt tiêu hiện tượng chồng lấn dữ liệu giữa hai lớp đối nghịch, giúp siêu phẳng phân chia của mô hình Stacking đạt khoảng cách lề lớn nhất.
  3. Mức độ cải thiện định lượng vượt trội:
    • So với mô hình hồi quy Logistic truyền thống: Độ chính xác tăng +9.45%, ROC-AUC tăng +15.2%.
    • So với mô hình cây quyết định đơn lẻ: F1-score tăng +12.8%, giảm thiểu 43% tỷ lệ dự báo dương tính giả (False Positive).

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng trong ngân hàng (Use Cases)

Yêu cầu triển khai & Phân tích Chi phí - Lợi ích (Cost-Benefit Analysis)

Yêu cầu hạ tầng tối thiểu:

  • Server: 4 vCPU, 16GB RAM, 50GB SSD NVMe (Hỗ trợ GPU NVIDIA T4 cho pha Re-training định kỳ hàng tháng).
  • Hệ điều hành & Môi trường: Ubuntu 22.04 LTS, Docker Container Engine, Kubernetes Cluster Orchestration.

Hiệu quả kinh tế (ROI Modeling) trên quy mô ngân hàng 500,000 khách hàng:

  • Giả định tỷ lệ rời bỏ trung bình hàng năm là 10% (50,000 khách hàng/năm).
  • Giá trị vòng đời trung bình của mỗi khách hàng (CLV - Customer Lifetime Value): 2,000,000 VND/năm.
  • Chi phí giữ chân thành công một khách hàng được cảnh báo sớm: 300,000 VND.
  • Với độ nhạy Recall 81.60%, mô hình phát hiện sớm chính xác 40,800 khách hàng có nguy cơ rời bỏ.
  • Với tỷ lệ can thiệp thành công 35%, ngân hàng giữ chân được 14,280 khách hàng/năm.
  • Doanh thu bảo toàn ròng: $(14,280 \times 2,000,000) - (40,800 \times 300,000) = \mathbf{16,320,000,000\text{ VND/năm}}$ (Lợi nhuận ròng hơn 16.3 tỷ đồng).

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Độ phức tạp tính toán: Việc kết hợp 3 mạng nơ-ron học sâu làm tăng thời gian huấn luyện mô hình ban đầu gấp 3.2 lần so với việc huấn luyện một mô hình đơn lẻ.
  • Tính chất giải thích (Model Explainability): Bản chất "hộp đen" (Black-box) của mạng học sâu gây khó khăn nhất định cho cán bộ tín dụng khi cần giải trình tường minh lý do cụ thể vì sao một khách hàng bị gắn cờ nguy cơ cao.

Hướng nghiên cứu tiếp theo

  • Tích hợp các thuật toán giải thích mô hình học máy hiện đại như SHAP (SHapley Additive exPlanations)LIME (Local Interpretable Model-agnostic Explanations) để cung cấp biểu đồ trọng số đặc trưng cho từng khách hàng cụ thể.
  • Mở rộng kiến trúc tiếp nhận dữ liệu chuỗi thời gian (Sequential Data) thông qua các khối LSTM (Long Short-Term Memory) hoặc Transformer nhằm nắm bắt xu hướng thay đổi số dư tài khoản theo từng chu kỳ giao dịch.

Đối tượng hưởng lợi

  • Sinh viên & Học viên cao học: Cung cấp tài liệu tham khảo chi tiết về quy trình xây dựng kiến trúc Stacking Ensemble và phương pháp xử lý mất cân bằng dữ liệu bằng mã nguồn mở chuẩn mực.
  • Kỹ sư Dữ liệu & Machine Learning Engineers: Cung cấp kiến trúc tham chiếu (Reference Architecture) về việc phối hợp giữa K-Fold Out-of-fold Probabilities và Meta-learners trong môi trường sản xuất.
  • Lãnh đạo Ngân hàng & Giám đốc Khối Khách hàng Cá nhân: Sở hữu cơ sở khoa học và công cụ định lượng chính xác để chuyển dịch từ chính sách giữ chân bị động sang chủ động giữ chân theo phân khúc rủi ro.
  • Nhà nghiên cứu Khoa học Dữ liệu: Đóng góp thực nghiệm khẳng định ưu thế vượt trội của kỹ thuật Stacking Heterogeneous DNN so với các giải pháp đơn tuyến tính trong lĩnh vực FinTech.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai mô hình vào hệ thống ngân hàng là gì?

Hệ thống yêu cầu máy chủ chạy môi trường Docker Container với tối thiểu 4 vCPU, 16GB RAM để phục vụ suy luận qua API. Trong pha huấn luyện lại (Retraining) định kỳ với tập dữ liệu hàng triệu bản ghi, khuyến nghị sử dụng máy chủ có GPU rời (như NVIDIA Tesla T4 hoặc A10G) để tối ưu thời gian huấn luyện.

2. Giới hạn mở rộng (Scalability) của mô hình Stacking và giải pháp khắc phục?

Do phải chạy qua 3 mạng nơ-ron Mức 1 trước khi đưa vào Meta-Classifier, độ trễ có thể tăng nếu lượng truy vấn đồng thời (Concurrent Requests) lớn. Giải pháp là đóng gói mô hình Mức 1 chạy song song (Parallel Processing) thông qua ONNX Runtime hoặc Triton Inference Server và thiết lập bộ nhớ đệm Redis để cache các kết quả dự báo định kỳ.

3. Mô hình tích hợp với hệ sinh thái Core Banking và CRM hiện có như thế nào?

Mô hình được đóng gói dưới dạng dịch vụ vi mô (Microservice) RESTful API chuẩn OpenAPI/Swagger, cho phép hệ thống CRM gửi yêu cầu truy vấn thông qua giao thức HTTP/HTTPS hoặc tích hợp trực tiếp vào luồng xử lý dữ liệu hàng loạt (Batch Processing) qua Apache Kafka / Apache Spark.

4. Tần suất bảo trì và huấn luyện lại (Retrain) mô hình như thế nào?

Do hành vi tiêu dùng và các sản phẩm ngân hàng có tính biến động theo chu kỳ kinh tế (Concept Drift & Data Drift), mô hình cần được giám sát hiệu năng liên tục và tái huấn luyện định kỳ 1 đến 3 tháng một lần với dữ liệu phát sinh mới nhất.

5. Chi phí đầu tư ban đầu và thời gian thu hồi vốn (ROI)?

Chi phí thiết lập hạ tầng Cloud/Server và tích hợp phần mềm ước tính khoảng 300 - 500 triệu VND. Với khả năng bảo toàn hàng tỷ đồng doanh thu từ việc giữ chân khách hàng thành công, thời gian hoàn vốn đầu tư (Payback Period) ước tính chỉ từ 3 đến 6 tháng sau khi đưa vào vận hành chính thức.


Kết luận

Đề tài khóa luận tốt nghiệp của tác giả Trương Hải Nam đã giải quyết xuất sắc bài toán dự báo khách hàng rời bỏ dịch vụ ngân hàng bằng việc kết hợp sáng tạo giữa kỹ thuật lấy mẫu cân bằng SMOTE-Tomek và kiến trúc học kết hợp Stacking Heterogeneous Deep Neural Network. Với độ chính xác 86.75%, F1-score 82.00% và ROC-AUC 0.897, mô hình đã chứng minh tính ưu việt hoàn toàn so với các phương pháp học máy truyền thống đơn lẻ.

Công trình không chỉ mang giá trị học thuật sâu sắc trong lĩnh vực Trí tuệ nhân tạo và Khoa học Dữ liệu ứng dụng mà còn mở ra giải pháp công nghệ mang lại giá trị kinh tế trực tiếp cho các ngân hàng thương mại trong kỷ nguyên số hóa. Quý độc giả và các chuyên gia phát triển hệ thống có thể ứng dụng trực tiếp kiến trúc này vào các bài toán phân loại nhị phân thực tế để tối ưu hóa hiệu quả vận hành doanh nghiệp.