Bài học chính
Là sàn giao dịch tiền điện tử lớn nhất thế giới, điều quan trọng là chúng tôi có một hệ thống phát hiện rủi ro nhanh nhưng không ảnh hưởng đến độ chính xác.
Thách thức mà chúng tôi gặp phải là đảm bảo các mô hình của chúng tôi luôn sử dụng thông tin cập nhật, đặc biệt là khi phát hiện hoạt động tài khoản đáng ngờ trong thời gian thực.
Để đạt được tính nhất quán mạnh mẽ hơn và tốc độ sản xuất cao hơn, giờ đây chúng tôi đưa ra các giả định hợp lý về dữ liệu của mình và kết hợp các quy trình theo lô và quy trình phát trực tuyến của chúng tôi.
Khám phá cách quy trình kỹ thuật tính năng của chúng tôi tạo ra các tính năng mạnh mẽ, nhất quán để phát hiện các giao dịch rút tiền gian lận trên nền tảng Binance.
Bên trong quy trình máy học (ML) của chúng tôi — mà bạn có thể tìm hiểu thêm trong bài viết trước — gần đây, chúng tôi đã xây dựng một quy trình kỹ thuật tính năng tự động chuyển dữ liệu thô thành các tính năng trực tuyến có thể tái sử dụng và có thể chia sẻ trên tất cả các mô hình liên quan đến rủi ro.
Trong quá trình xây dựng và thử nghiệm quy trình này, các nhà khoa học dữ liệu của chúng tôi đã gặp phải một vấn đề hấp dẫn về tính nhất quán của tính năng: Làm cách nào để chúng tôi tạo ra các bộ tính năng trực tuyến chính xác thay đổi linh hoạt theo thời gian?
Hãy xem xét tình huống thực tế này: Một sàn giao dịch tiền điện tử — trong trường hợp này là Binance — đang cố gắng phát hiện các hoạt động rút tiền gian lận trước khi tiền rời khỏi nền tảng. Một giải pháp khả thi là thêm một tính năng vào mô hình của bạn để phát hiện thời gian đã trôi qua kể từ thao tác cụ thể cuối cùng của người dùng (ví dụ: đăng nhập hoặc liên kết với thiết bị di động). Nó sẽ trông giống như thế này:
user_id|last_bind_google_time_diff_in_days|...
1|3,52|...
Thách thức của việc thực hiện
Số lượng khóa cần thiết để tính toán và cập nhật các tính năng trong cửa hàng tính năng trực tuyến là không thực tế. Việc sử dụng một đường truyền phát trực tuyến, chẳng hạn như Flink, sẽ là không thể vì nó chỉ có thể tính toán những người dùng có hồ sơ đến Kafka vào thời điểm hiện tại.
Như một sự thỏa hiệp, chúng tôi có thể sử dụng quy trình hàng loạt và chấp nhận một số độ trễ. Giả sử một mô hình có thể tìm nạp các tính năng từ cửa hàng tính năng trực tuyến và thực hiện suy luận theo thời gian thực trong khoảng một giờ. Đồng thời, nếu phải mất một giờ để một cửa hàng tính năng hoàn tất việc tính toán và nhập dữ liệu, thì về mặt lý thuyết, quy trình xử lý hàng loạt sẽ giải quyết được vấn đề.
Thật không may, có một vấn đề rõ ràng: sử dụng quy trình hàng loạt như vậy rất tốn thời gian. Điều này khiến cho việc hoàn tất trong vòng một giờ là không khả thi khi bạn là sàn giao dịch tiền điện tử lớn nhất thế giới xử lý khoảng một trăm triệu người dùng và giới hạn TPS cho việc ghi.
Chúng tôi nhận thấy rằng cách tốt nhất là đưa ra các giả định về người dùng của mình, từ đó thu hẹp lượng dữ liệu đi vào kho tính năng của chúng tôi.
Giảm bớt vấn đề với các giả định thực tế
Các tính năng trực tuyến được đưa vào theo thời gian thực và liên tục thay đổi vì chúng đại diện cho phiên bản cập nhật nhất của môi trường. Với người dùng Binance đang hoạt động, chúng tôi không thể sử dụng các mô hình có tính năng lỗi thời.
Điều bắt buộc là hệ thống của chúng tôi phải gắn cờ mọi giao dịch rút tiền đáng ngờ càng sớm càng tốt. Bất kỳ sự chậm trễ nào được thêm vào, thậm chí chỉ trong vài phút, có nghĩa là có thêm thời gian để kẻ ác ý thoát khỏi tội ác của chúng.
Vì vậy, vì mục đích hiệu quả, chúng tôi cho rằng những lần đăng nhập gần đây có rủi ro tương đối cao hơn:
Chúng tôi nhận thấy (250 ngày + 0,125[độ trễ 3/24] ngày) gây ra lỗi tương đối nhỏ hơn (1 ngày + 0,125[độ trễ 3/24] ngày).
Hầu hết các hoạt động sẽ không vượt quá một ngưỡng nhất định; giả sử là 365 ngày. Để tiết kiệm thời gian và tài nguyên máy tính, chúng tôi bỏ qua những người dùng chưa đăng nhập trong hơn một năm.
Giải pháp của chúng tôi
Chúng tôi sử dụng kiến trúc lambda, bao gồm một quy trình trong đó chúng tôi kết hợp các quy trình hàng loạt và quy trình phát trực tuyến để đạt được tính nhất quán mạnh mẽ hơn về tính năng.
Giải pháp trông như thế nào về mặt khái niệm?
Đường dẫn hàng loạt: Thực hiện kỹ thuật tính năng cho cơ sở người dùng lớn.
Đường ống truyền phát: Khắc phục thời gian trễ đường ống hàng loạt cho các lần đăng nhập gần đây.
Điều gì sẽ xảy ra nếu một bản ghi được nhập vào cửa hàng tính năng trực tuyến trong khoảng thời gian trễ khi nhập hàng loạt?
Các tính năng của chúng tôi vẫn duy trì tính nhất quán cao ngay cả khi bản ghi được nhập trong khoảng thời gian trì hoãn nhập hàng loạt kéo dài một giờ. Điều này là do cửa hàng tính năng trực tuyến mà chúng tôi sử dụng tại Binance trả về giá trị mới nhất dựa trên thời gian sự kiện mà bạn chỉ định khi truy xuất giá trị.
Gia nhập đội ngũ của chúng tôi!
Quan tâm đến việc sử dụng công nghệ máy học để bảo vệ hệ sinh thái tiền điện tử lớn nhất thế giới và người dùng của nó? Hãy xem Binance Engineering / AI trên trang tuyển dụng của chúng tôi để biết cơ hội việc làm.
Để biết thêm thông tin, hãy đọc các bài viết hữu ích sau:
(Blog) Sử dụng MLOps để xây dựng quy trình học máy toàn diện theo thời gian thực
(Blog) Xem xét kỹ hơn về Cửa hàng tính năng học máy của chúng tôi
