Ứng dụng hệ miễn dịch nhân tạo trong lọc thư rác

Một phần của tài liệu Hệ miễn dịch nhân tạo và ứng dụng cho lọc thư rác (Trang 49 - 56)

Chương 3 CÀI ĐẶT THỬ NGHIỆM

3.1. Ứng dụng hệ miễn dịch nhân tạo trong lọc thư rác

Cuộc đối đầu giữa những kẻ gửi thư rác và các bộ lọc thư rác dường như là không thể chấm dứt. Những người phát triển phần mềm lọc thư rác thì cố gắng tìm hiểu một đặc điểm riêng nào đó của thư rác và dựa trên những đặc điểm này để lọc thư rác. Nhưng những kẻ phát tán thư rác (spammers) thích nghi rất nhanh với các biện pháp ngăn ngừa thư rác, chỉ một thời gian không lâu sau những kẻ gửi thư rác này lại tìm ra được cách khắc phục những đặc điểm đó. Như vậy, nó sẽ trở thành một vòng luẩn quẩn. Một bộ lọc tốt phải là một bộ lọc kết hợp được các phương pháp lọc để có thể phát huy thế mạnh của mình và khắc phục những nhược điểm của các phương pháp khác.

Xu hướng của một công cụ lọc thư rác hiệu quả phải đảm bảo yêu cầu tối thiểu như bộ lọc có thể lọc được nhiều loại thư rác với độ chính xác cao.

3.1.1. Phát biểu bài toán

Từ bộ CSDL gồm các email SPAM và email HAM, tác giả sử dụng thuật toán hệ miễn dịch nhân tạo để thiết kế một hệ thống lọc thư rác có khả năng học tốt và hiệu suất cao. Hệ thống gồm hai quá trình sau:

- Quá trình huấn luyện

Input: 5.000 email HAM được chọn ngẫu nhiên từ CSDL TREC'07 để huấn luyện, ℓ và r.

Output: bảng băm A biểu diễn tập bộ dò dạng r-chunk - Quá trình phân biệt self/nonself (HAM/SPAM)

Input: 9 bộ test với mỗi bộ test gồm 1.000 email ngẫu nhiên được thay đổi tỷ lệ HAM/SPAM tương ứng từ 10% đến 90%

Output: Các giá trị TP, TN, FP, FN tương ứng với mỗi bộ test và ba giá trị trung bình DR (Detection Rate), FPR (False Positive Rate), Acc (Accuracy).

Trong đó

+ TP: Số lượng email SPAM kết luận đúng + TN: Số lượng email HAM kết luận đúng

+ FP: Số lượng email HAM kết luận sai thành SPAM + FN: Số lượng email SPAM kết luận sai thành HAM và các giá trị trung bình được tính như sau:

DR = TP/(TP + FN) FPR = FP/(TN + FP)

Acc = (TP + TN) / (TP + TN + FP + FN) 3.1.2. Cơ sở dữ liệu TREC'07

Những số liệu về thư rác đã được các chuyên gia, tổ chức hoạt động một cách tích cực bằng các phương pháp khác nhau đã thống kê, xây dựng các cơ sở dữ liệu về thư rác nhằm mục đích cung cấp thông tin, tạo nguồn dữ liệu thử nghiệm cho việc thiết kế các bộ lọc thư rác thông qua các kĩ thuật phát hiện và ngăn chặn thư rác.

Bộ dữ liệu TREC'07 lưu trữ 75,419 thư điện tử trong đó có 50,199 SPAM và 25,220 HAM. TREC'07 là một trong những bộ dữ liệu về thư điện tử lớn và uy tín nhất hiện nay, rất nhiều nhà khoa học trên thế giới đã và đang

sử dụng bộ dữ liệu này để đánh giá các phương pháp lọc thư rác của mình.

Chính vì vậy, tác giả đã chọn bộ dữ liệu TREC'07 để thử nghiệm trên hệ thống và đánh giá kết quả với một số phương pháp học máy khác.

3.1.3. Thiết kế phần mềm

Phương pháp lọc thư rác được sử dụng phổ biến trong hầu hết các máy chủ email hiện nay đó là phương pháp dựa trên việc thiết lập các quy tắc SpamAssassin và phương pháp thống kê Bayesian. Tuy vậy, các phương pháp này thường chiếm một lượng tài nguyên lớn của máy chủ khi thực hiện quá trình xác minh các thư điện tử gửi đến là email SPAM và email HAM, đặc biệt là đối với những máy chủ có nhiều người dùng và lượng thư điện tử trao đổi là lớn. Phần này trình bày một phương pháp lọc thư rác khá hiệu quả và có thể giảm tải việc tính toán cho máy chủ email rất nhiều. Đó là phương pháp lọc thư rác dựa trên hệ miễn dịch nhân tạo. Đây là một hướng tiếp cận mới và đang được các nhà khoa học trên thế giới quan tâm phát triển.

Ý tưởng của phương pháp là tìm cách xây dựng chương trình lọc thư rác dựa trên thuật toán AIS có khả năng phát hiện cao. Quá trình thiết kế phần mềm được thực hiện như sau:

Bước 1: Đọc 5.000 email HAM và 5.000 email SPAM ngẫu nhiên từ TREC'07.

Bước 2: Tiền xử lý dữ liệu cho tập các email.

Bước 3: Đọc nội dung 5.000 email HAM sau khi xử lý dưới dạng nhị phân độ dài ℓ.

Bước 4: Áp dụng thuật toán CHUNK_DETECTOR_NSA để sinh tập bộ dò.

Bước 5: Tiến hành kiểm thử với bộ dữ liệu test là 1.000 email được lấy ngẫu nhiên từ 10.000 email ban đầu và tính toán các tham số DR, FPR, Acc.

3.1.4.Phân tích thuật toán

3.1.4.1. Quá trình tiền xử lý dữ liệu

Trước khi huấn luyện các email được đưa qua bước tiền xử lý như sau:

+ Loại bỏ các thẻ định dạng HTML trong email

+ Loại bỏ các từ nối câu và các từ không có ý nghĩa trong email.

+ Các ký tự số vì không nói lên được ý nghĩa của email.

+ Chuyển toàn bộ nội dung email sang dạng nhị phân 3.1.4.2. Quá trình huấn luyện

Input: 5.000 email HAM đã được xử lý.

Output: Tập bộ dò r-chunk Thuật toán:

Đọc lần lượt từng email dưới dạng nhị phân độ dài ℓ, với mỗi dãy nhị phân chia thành ℓ-r+1 dãy con với độ dài r để tiến hành xây dựng bảng băm A.

Sau khi xây dựng xong bảng băm, tiến hành đọc các giá trị 0 trên bảng băm, với mỗi vị trí 0 sẽ xây dựng được một bộ dò r-chunk tương ứng bằng cách chuyển giá trị hàng sang dạng nhị phân độ dài r và giá trị cột chính là vị trí cần so khớp.

Kết thúc quá trình huấn luyện ta được tập bộ dò r-chunk và lưu lại thành file r_chunk.txt

Quá trình này được áp dụng theo thuật toán CHUNK_DETECTOR_NSA đã được trình bày trong mục 2.3.1.

3.1.4.3. Quá trình phân biệt self/non-self:

Input: Tập bộ dò r-chunk, tập email test gồm m email HAM và n email SPAM (m + n = 1000 email)

Output: Các đánh giá DR, FPR và Acc.

Thuật toán:

- Đọc tệp tin r_chunk.txt để lấy ra toàn bộ tập bộ dò - Sử dụng các độ đo sau: TP, TN, FP, FN

- Kiểm tra các email HAM

+ Đọc lần lượt từng email trong m email HAM dưới dạng nhị phân độ dài ℓ.

+ Tồn tại một xâu con có độ dài r trong ℓ-r+1 xâu mà khớp với một bộ dò trong tập bộ dò r-chunk thì tăng giá FP lên một đơn vị (tương ứng với việc kết luận nhầm email đó thành SPAM) ngược lại tăng giá trị TN lên một đơn vị (tương ứng với việc kết luận đúng email đó là HAM).

- Kiểm tra các email SPAM

+ Đọc lần lượt từng email trong n email SPAM dưới dạng nhị phân độ dài ℓ.

+ Tồn tại một xâu con có độ dài r trong ℓ-r+1 xâu mà khớp với một bộ dò trong tập bộ dò r-chunk thì tăng giá TP lên một đơn vị (tương ứng với việc kết luận đúng email đó là SPAM) ngược lại tăng giá trị FN lên một đơn vị (tương ứng với việc kết luận nhầm email đó là HAM).

- Các cách đánh giá DR, FPR, Acc được tính theo công thức ở trên.

3.1.5. Giao diện chương trình và kết quả

Giao diện chính của chương trình với 5 nút lệnh:

- Edit: dùng để chỉnh sửa lại email (loại bỏ header của email) - Random Test: sinh bộ test ngẫu nhiên cho email

- Self: Tiến hành đọc các email dùng để huấn luyện - Make Detector: dùng để tạo bộ dò

- Scan: Dùng để quét phân loại các email HAM/SPAM

Hình 3.1. Giao diện chương trình lọc spam trên bộ CSDL TREC'07 Hình dưới mô tả quá trình huấn luyện và quá trình phân loại 1.000 email bao gồm 500 email HAM và 500 email SPAM.

Hình 3.2. Kết quả quá trình test

Kết quả của 9 bộ test đạt được như trong bảng sau:

Bảng 3.1. Kết quả khi chạy chương trình với 9 bộ test

HAM SPAM TP FP FN TN DR FPR Acc

100 900 894 0 6 100 99.33% 0% 99.40%

200 800 793 0 7 200 99.13% 0% 99.30%

300 700 695 0 5 300 99.29% 0% 99.50%

400 600 596 0 4 400 99.33% 0% 99.60%

500 500 496 0 4 500 99.20% 0% 99.60%

600 400 399 0 1 600 99.75% 0% 99.90%

700 300 297 0 3 700 99.00% 0% 99.70%

800 200 200 0 0 800 100.00% 0% 100.00%

900 100 100 0 0 900 100.00% 0% 100.00%

Average 99.45% 0% 99.67%

3.1.6. Đánh giá

- Về độ chính xác: Chương trình đã đạt được độ chính xác xấp xỉ 100% và phát hiện đúng tuyệt đối một email là HAM.

- Về mặt thời gian chạy: Chương trình Apply NSA for SPAM Filtering chỉ mất trung bình 29 giây để huấn luyện dữ liệu gồm 5.000 email và 10 giây để phân biệt 1.000 email là HAM hoặc SPAM. Chương trình được viết bằng ngôn ngữ C# trong bộ Visual Studio 2013, trên nền .Netframework 4.5 với hệ điều hành Windows 8.1 Pro, Chip Core i5 3210M 2.5GHz, RAM DDR3 2GB.

Bảng 3.2. So sánh kết quả

DR FPR Acc

Trong [10] 98.09% 0% 98.82%

Apply NSA for SPAM Filtering 99.45% 0% 99.67%

- Kết quả này đã được công bố trên tạp chí Khoa học công nghệ của Đại học Thái Nguyên tập (số 135 (05), 2015, trang 185).

Một phần của tài liệu Hệ miễn dịch nhân tạo và ứng dụng cho lọc thư rác (Trang 49 - 56)

Tải bản đầy đủ (PDF)

(75 trang)