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ị

  1. 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.
  2. 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.
  3. 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ậtCách tính
in_degree, out_degree, tỉ lệ vào/raTheo cửa sổ 24 giờ
pagerank_suspicionPersonalized PageRank từ 50 tài khoản đã biết xấu
cycle_ruleTìm chu trình độ dài 3-4 trong 1 giờ (DFS giới hạn độ sâu)
fan_out_ruleRa tới trên 15 tài khoản có tuổi dưới 7 ngày trong 10 phút
fan_in_ruleTrê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)

  1. Precision, recall, F1 cho từng kiểu gian lận với ngưỡng điểm 70.
  2. Vẽ đường precision-recall theo ngưỡng.
  3. 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.
  4. Đ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.

Bớt paste mù, hiểu sâu từng dòng mình viết.

180 Days Challenge. 180 ngày cai nghiện vibe code.