App: pipeline phát hiện gian lận bằng đồ thị
Xây pipeline chống gian lận: đồ thị giao dịch, đặc trưng egonet và centrality, luật watchtower, đánh giá precision recall trên dữ liệu gán nhãn.
Chuyên giaThuật toán ~120 phút
Ôn lại trước khi học
Giới thiệu
Bài này xây pipeline soi giao dịch đáng ngờ. Nhìn quan hệ chuyển tiền là thấy vòng gian lận.
Kiến thức cần nhớ
Đồ thị giao dịch là gì
- Mỗi tài khoản là 1 nút, mỗi chuyển tiền là 1 cạnh có hướng.
- Cạnh giữ số tiền, thời gian và kênh giao dịch.
- Ví dụ đời thường: vẽ sơ đồ ai chuyển cho ai để truy vết.
- Xử lý được 1 triệu giao dịch là đạt.
Đặc trưng egonet và centrality
- Egonet là lân cận 1-2 hop quanh 1 tài khoản.
- Bậc vào ra lệch mạnh là dấu hiệu gom hoặc quạt tiền.
- PageRank lan độ đáng ngờ từ tài khoản xấu sang lân cận.
- Ví dụ đời thường: ai chơi với nhiều kẻ xấu thì cũng đáng nghi.
Luật watchtower và chấm điểm
- Luật vòng tròn: A chuyển B chuyển C rồi về A trong thời gian ngắn.
- Luật quạt tiền: 1 nguồn xả ra nhiều tài khoản mới.
- Luật gom tiền: nhiều nguồn dồn về 1 đích.
- Điểm rủi ro 0-100, cao thì đưa vào hàng đợi điều tra.
Ví dụ
- Input: vòng A-B-C-A trong 10 phút. Output: luật vòng tròn bắt, điểm trên 80.
- Giải thích: tiền đi vòng khép kín là mẫu rửa tiền điển hình.
- Input: tài khoản lương vào chi tiêu ra bình thường. Output: điểm dưới 20, không cảnh báo.
- Giải thích: hành vi đều đặn không khớp mẫu gian lận nào.
💻 Bài tập
Ngôn ngữ: Python 3 với networkx (hoặc igraph nếu cần nhanh), pandas. Dùng code ngày 44, 72, 73. Nộp vào day-130-fraud/.
Bài 1: Nạp dữ liệu và dựng đồ thị
- Sinh 1.000.000 giao dịch trên 100.000 tài khoản
(from, to, amount, ts, channel). Cài sẵn 3 kiểu gian lận có nhãn:- Vòng tròn: A -> B -> C -> A trong 1 giờ, số tiền gần bằng nhau.
- Quạt ra: 1 tài khoản chuyển cho 20 tài khoản mới mở trong 10 phút.
- Gom vào: 30 tài khoản chuyển về 1 đích trong 1 ngày.
- Dựng đồ thị có hướng, cạnh gộp theo cặp
(from, to)với tổng tiền và số lần. - In thời gian nạp và bộ nhớ. Mục tiêu: dưới 60 giây.
Bài 2: Đặc trưng và luật
| Đặc trưng/Luật | Cách tính |
|---|---|
in_degree, out_degree, tỉ lệ vào/ra | Theo cửa sổ 24 giờ |
pagerank_suspicion | Personalized PageRank từ 50 tài khoản đã biết xấu |
cycle_rule | Tìm chu trình độ dài 3-4 trong 1 giờ (DFS giới hạn độ sâu) |
fan_out_rule | Ra tới trên 15 tài khoản có tuổi dưới 7 ngày trong 10 phút |
fan_in_rule | Trên 25 nguồn khác nhau trong 24 giờ |
Điểm rủi ro 0-100: tổng có trọng số của luật và đặc trưng. Viết rõ trọng số và lý do trong README.md.
Bài 3: Đánh giá và điều tra (nâng cao)
- Precision, recall, F1 cho từng kiểu gian lận với ngưỡng điểm 70.
- Vẽ đường precision-recall theo ngưỡng.
- Với 5 tài khoản điểm cao nhất, xuất báo cáo điều tra: lý do (luật nào kích hoạt, số liệu), hình egonet 2 bước.
- Đo thời gian chấm điểm 1 giao dịch mới (cập nhật tăng dần, không tính lại toàn bộ).
✅ Tiêu chí hoàn thành
- Nạp 1 triệu giao dịch dưới 60 giây.
- Mỗi luật có test với dữ liệu nhỏ cài sẵn.
- Bảng precision/recall/F1 theo kiểu gian lận.
- 5 báo cáo điều tra có hình và lý do.
❓ Câu hỏi ôn tập
- Đồ thị giao dịch dựng từ log thế nào?
- Egonet quanh 1 tài khoản cho biết điều gì?
- 3 luật watchtower bắt mẫu hình nào?
- Precision và recall đo chất lượng pipeline ra sao?
🌕 Bạn đã hoàn thành ngày 130. Làm hết bài tập phía trên rồi sang ngày tiếp theo.