Probability & Statistics in Spam Filtering
Xác suất trong lọc spam
Công ty nào đang ứng dụng Xác suất và thống kê?
Mỗi ngày Gmail chặn khoảng 15 tỷ email rác — tức khoảng 10 triệu thư mỗi phút. Với 1,8 tỷ người dùng, đây là dịch vụ email lớn nhất thế giới và cũng là mục tiêu hàng đầu của các chiến dịch spam.
Bộ lọc Gmail dùng xác suất Bayes để tính điểm spam cho từng email trong mili-giây. Bài này cho bạn tự tay nhấn thử hộp thư và xem Gmail “suy nghĩ” như thế nào.
Đọc 5 tiêu đề dưới đây. Với mỗi email, chọn spam hay ham (email thật). Sau khi chọn hết, bạn sẽ thấy ngay mình đã đọc đặc trưng nào.
Chào bạn, bạn là khách hàng may mắn. Bấm vào link dưới đây để nhận miễn phí trong 24 giờ...
Chào bạn, cảm ơn đã mua hàng tại Shopee. Bạn có thể xem chi tiết đơn hàng trong ứng dụng.
Chúng tôi phát hiện hoạt động bất thường. Vui lòng đăng nhập trong vòng 12 giờ qua đường link này để tránh mất tài khoản.
Kính gửi quý phụ huynh, trường kính mời quý vị tham dự buổi họp lớp vào lúc 8h sáng thứ Bảy. Trân trọng.
Cơ hội duy nhất! Không cần kinh nghiệm. Đăng ký hôm nay nhận ngay combo khoá học đầu tư miễn phí.
Vấn đề công ty cần giải quyết
Email rác chiếm hơn một nửa tổng email toàn cầu. Nội dung spam thay đổi liên tục — từ quảng cáo thuốc giả, lừa đảo tài chính đến phishing (giả danh ngân hàng để đánh cắp thông tin).
Thách thức cốt lõi: phân biệt spam và email thật trong mili-giây, khi kẻ gửi spam liên tục đổi chiêu. Chặn nhầm → mất email quan trọng. Lọt spam → người dùng bực. Mỗi sai sót nhỏ nhân lên với 1,8 tỷ người dùng.
Cách Xác suất và thống kê giải quyết vấn đề
Lọc Bayes — nền tảng xác suất.Năm 2002, Paul Graham công bố bài “A Plan for Spam” đặt nền móng cho lọc spam bằng xác suất. Với mỗi từ trong email, hệ thống ước lượng P(spam | từ) dựa trên tần suất từ đó xuất hiện trong spam và trong email thật. Nhiều từ gộp lại cho ra xác suất tổng — nếu vượt ngưỡng 0,9 thì đánh dấu là spam.
Vòng phản hồi người dùng.Khi bạn bấm “Báo cáo spam” hoặc kéo email từ thư rác về hộp chính, Gmail cập nhật tiên nghiệm (prior) cho từng mẫu từ. Hàng tỷ phản hồi mỗi ngày giúp mô hình liên tục cải thiện.
TensorFlow nâng cấp mạng nơ-ron (2019). Google tích hợp TensorFlow vào bộ lọc, cho phép mạng nơ-ron học đặc trưng phức tạp hơn Bayes thuần. Kết quả: chặn thêm 100 triệu spam mỗi ngày so với trước đó.
RETVec — bộ mã hoá bền vững (2023). RETVec chuyển văn bản thành vector trực tiếp từ byte, chỉ với 200.000 tham số. Nó miễn nhiễm với chiêu lẩn tránh như chèn ký tự vô hình, thay chữ bằng emoji, hoặc dùng ký tự nhìn giống nhau. RETVec tăng 38% phát hiện, giảm 19,4% chặn nhầm, tiết kiệm 83% tài nguyên.
Giả sử bạn có một email. Bật từng công tắc dưới đây để mô phỏng “email này có đặc trưng đó”. Thanh điểm spam sẽ nhảy theo — đây là cách Gmail cộng dồn bằng chứng.
Trước khi đọc nội dung, Gmail dự đoán khoảng 30% email đến là spam. Bằng chứng từ các công tắc bên dưới sẽ cập nhật con số đó.
Đáng ngờ — cần kiểm tra thêm
Mỗi đặc trưng bật lên, Gmail cộng thêm một “điểm” vào log-odds. Càng nhiều đặc trưng, điểm càng cao. Đến khi điểm vượt ngưỡng, email bị đưa vào Spam.
Gmail cập nhật niềm tin của mình từng bước — như cách bạn kết luận “trời sắp mưa” sau khi thấy mây đen, gió mạnh, nhiệt độ giảm.
Trước khi đọc nội dung, Gmail nghĩ: trong tất cả email đến hộp thư, khoảng 30% là spam (tỷ lệ này khác nhau tuỳ người dùng và tuỳ ngày).
Bạn nhận một email có từ 'trúng thưởng' với P('trúng thưởng' | spam) = 80%, P('trúng thưởng' | email thật) = 5%. Tỷ lệ spam trong hộp thư là 40%. Áp Bayes, P(spam | 'trúng thưởng') gần nhất với giá trị nào?
Con số thật
Nếu không có Xác suất và thống kê, app sẽ ra sao?
Không có mô hình xác suất, hệ thống lọc chỉ có thể dùng danh sách đen (blacklist — chặn địa chỉ cố định) hoặc luật cứng (rule-based — kiểm từ khoá cố định). Cả hai đều dễ qua mặt: kẻ gửi spam chỉ cần đổi địa chỉ hoặc thay từ là lọt qua.
Lọc Bayes thay đổi cục diện bằng cách tính xác suất từ dữ liệu thực và tự cập nhật liên tục. Mô hình thống kê thích nghi với chiêu mới mà không cần lập trình viên viết thêm luật. Đây chính là sức mạnh của xác suất có điều kiện: biến kinh nghiệm quá khứ thành dự đoán tương lai.
- Mỗi email được Gmail chấm một điểm spam từ 0 đến 100. Ngưỡng 90% là biên giới vào Spam.
- Mỗi đặc trưng (từ khoá, tên miền, viết hoa) cộng thêm một chút vào điểm. Nhiều đặc trưng nhỏ cộng lại thành kết luận chắc chắn.
- Prior (tỷ lệ spam ban đầu) và likelihood (bằng chứng trong email) đều quan trọng. Quên một cái, kết quả sai lệch.
- Bayes không đoán mò — nó cập nhật niềm tin dựa trên dữ liệu, giống cách bạn kết luận trời sắp mưa từ nhiều dấu hiệu nhỏ.