Bài báo trình bày một giải pháp cho vấn đề này dựa trên việc ứng dụng mô hình tối ưu hóa đa mục tiêu trong thiết kế các bộ lọc thư rác. Để đánh giá giải pháp, nhóm tác giả đã thực hiện thí nghiệm thiết kế các luật lọc thư rác cho phần mềm SpamAssassin sử dụng dữ liệu thư điện tử tiếng Việt. Kết quả thí nghiệm cho thấy phương pháp mới không chỉ cho kết quả tốt hơn so với các phương pháp hiện có mà còn cho phép đánh giá “sự thỏa hiệp” (tradeoff) giữa hai tỉ lệ nói trên khi thiết kế bộ lọc thư rác. Mời các bạn cùng tham khảo!
Trang 1Ứng dụng tối ưu hóa đa mục tiêu trong bài toán tự
động phân loại thư rác
Nguyễn Xuân Thắng1, Trần Quang Anh2, Trịnh Bảo Ngọc1 và Nguyễn Thanh Hà2
1: Đại học Hà Nội Email: {nxthang, ngoctb}@hanu.edu.vn
2: Học Viện Công Nghệ Bưu Chính Viễn Thông Email: tqanh@ptit.edu.vn; thanhha140589@gmail.com
Abstract— Một vấn đề còn tồn tại trong các hệ thống phân loại tự
động thư rác dựa trên nội dung là làm sao để cân bằng giữa độ
chính xác phân loại thư rác và tỉ lệ chặn nhầm thư hợp lệ khi
thiết kế các bộ lọc thư rác Bài báo trình bày một giải pháp cho
vấn đề này dựa trên việc ứng dụng mô hình tối ưu hóa đa mục
tiêu trong thiết kế các bộ lọc thư rác Để đánh giá giải pháp,
nhóm tác giả đã thực hiện thí nghiệm thiết kế các luật lọc thư rác
cho phần mềm SpamAssassin sử dụng dữ liệu thư điện tử tiếng
Việt Kết quả thí nghiệm cho thấy phương pháp mới không chỉ
cho kết quả tốt hơn so với các phương pháp hiện có mà còn cho
phép đánh giá “sự thỏa hiệp” (tradeoff) giữa hai tỉ lệ nói trên khi
thiết kế bộ lọc thư rác
Keywords- Lọc thư rác, tối ưu hóa đa mục tiêu, giải thuật di
truyền, SpamAssassin
I GIỚI THIỆU Ngày nay, thư điện tử đã trở thành một công cụ đắc lực
phục vụ cho nhu cầu trao đổi thông tin của các cơ quan, tổ
chức, doanh nghiệp cũng như mỗi cá nhân Tuy nhiên, thư điện
tử cũng đang bị lợi dụng để phát tán thư rác, lây lan virus máy
tính và lừa đảo trực tuyến, gây thiệt hại lớn cho người sử dụng
Nhiều giải pháp đã được đưa ra để đối phó với vấn nạn thư rác,
trong đó đáng kể nhất là các giải pháp tự động phân loại thư
rác dựa trên nội dung thông qua học máy Phương pháp này
cần có hai tập mẫu riêng biệt chứa các thư rác và các thư hợp lệ
đã được phân loại chính xác từ trước Từ các tập mẫu này, một
thuật toán học máy được sử dụng để trích chọn các đặc trưng
nội dung (thường là từ hoặc cụm từ) của thư rác, đánh trọng số
cho các đặc trưng và huấn luyện bộ phân loại tự động cho phép
phân loại các thư mới chưa xuất hiện trong hai tập mẫu Ưu
điểm của các giải pháp này là có tính linh hoạt và có hiệu quả
cao
Để đánh giá hiệu quả của một bộ lọc thư rác người ta
thường sử dụng hai tham số chính là độ chính xác phân loại thư
rác (Spam Detection Rate – SDR) và tỉ lệ chặn nhầm thư hợp lệ
(False Alarm Rate – FAR) Trong đó, SDR là tỉ số giữa số thư
rác mà bộ lọc phân loại được và tổng số thư rác đầu vào còn
FAR là tỉ lệ giữa số thư hợp lệ bị bộ lọc phân loại nhầm là thư
rác và tổng số thư hợp lệ đầu vào Một bộ lọc thư rác lý tưởng
sẽ có tỉ lệ SDR và FAR lần lượt là 100% và 0% Tuy nhiên các
quan sát thực tế trong quá trình xây dựng các bộ lọc thư rác cho
thấy các điều chỉnh để tăng tỉ lệ SDR cũng đồng thời làm tăng
tỉ lệ FAR và ngược lại việc giảm tỉ lệ FAR sẽ kéo theo giảm tỉ
lệ SDR Do đó vấn đề đặt ra khi thiết kế các bộ lọc thư rác là
cân nhắc “sự thỏa hiệp” (tradeoff) giữa hai tham số SDR và
FAR để tìm ra giải pháp phù hợp cho mỗi tình huống cụ thể
Hiện tại quy trình thiết kế bộ lọc thư rác theo phương pháp học máy gồm các bước như sau:
- Sử dụng các tập mẫu để huấn luyện bộ phân loại tự động
- Chọn một ngưỡng T dùng để xác định xem một thư mới có phải là thư rác hay không Thư mới được tách thành các đặc trưng và so sánh với các đặc trưng đã được ghi nhận bởi bộ huấn luyện Nếu tổng trọng số của các đặc trưng này lớn hơn giá trị T thì thư mới sẽ được phân loại là thư rác
- Tính toán các tham số SDR và FAR để đánh giá hiệu quả của bộ lọc
Theo quy trình trên giá trị của SDR và FAR phụ thuộc vào ngưỡng T và trọng số của các đặc trưng Để tìm ra bộ lọc có SDR và FAR phù hợp người dùng phải thử các giá trị T và trọng số khác nhau rồi lặp lại cả quy trình Lưu ý là quá trình huấn luyện bộ phân loại thường rất tốn thời gian do tập mẫu lớn Hơn nữa, quy trình chưa hỗ trợ việc đánh giá “sự thỏa hiệp” giữa SDR và FAR
Nhóm tác giả đề xuất giải pháp cho vấn đề trên bằng cách coi yêu cầu thiết kế bộ lọc thư rác là một bài toán tối ưu hóa đa mục tiêu trong đó ta cần tìm giá trị ngưỡng T và các trọng số của mỗi đặc trưng sao cho tham số SDR và FAR của bộ lọc thư rác là tối ưu Giải pháp này được áp dụng để thiết kế bộ lọc thư rác trên nền tảng phần mềm SpamAssassin [1] với các đặc trưng được trích chọn là các luật và trọng số của mỗi đặc trưng
là điểm của luật tương ứng Do đặc thù của bài toán tối ưu đa mục tiêu được mô tả trong bài báo là có không gian tìm kiếm lớn và nhiều chiều nên nhóm tác giả đề xuất sử dụng giải thuật tiến hóa đa mục tiêu (multi-objective evolutionary algorithm – MOEA) [9], cụ thể là giải thuật SPEA-II [10,11], để giải bài toán này Tuy SPEA-II không cho ra lời giải chính xác nhất, nhưng giải thuật này cho kết quả là tập các phương án thỏa hiệp (hay còn gọi là tập phương án tối ưu Pareto) [12] Từ đó, kết hợp thêm các tiêu chí khác, ta chọn được lời giải tốt nhất cho bài toán So sánh với các giải pháp hiện tại, giải pháp do nhóm tác giả đề xuất có hai ưu điểm như sau:
- Tìm được các bộ giá trị khác nhau của ngưỡng T và điểm của mỗi luật để xây dựng bộ lọc thư rác có tham số SDR
và FAR phù hợp với yêu cầu của người dùng mà không tốn thời gian huấn luyện lại bộ phân loại tự động
- Đưa ra tập nghiệm “thỏa hiệp” giữa các hai mục tiêu đem lại sự lựa chọn dễ dàng hơn cho người dùng khi phải cân nhắc giữa SDR và FAR
Phần còn lại của bài báo được tổ chức như sau: phần II trình bày về hệ thống lọc thư rác SpamAssassin Phần III phát
Trang 2biểu bài toán và đề xuất phương pháp giải Phần IV trình bày
các kết quả thí nghiệm và đánh giá hiệu quả của giải pháp
Phần V tóm tắt các kết quả nghiên cứu liên quan đến chủ đề
trình bày trong bài báo Cuối cùng, các kết luận được trình bày
trong phần VI
II BỘ LỌC SPAMASSASSIN
SpamAssassin là một hệ thống lọc thư rác được sử dụng
khá phổ biến do Apache Foundation phát triển SpamAssassin
phân loại thư rác dựa trên một tập các luật đã được định nghĩa
sẵn Mỗi luật được gán một điểm số cho trước Trong quá trình
lọc thư rác, tập luật này sẽ được áp dụng một cách tuần tự trên
mỗi thư cần phân loại để chấm điểm Khi tổng số điểm của một
thư vượt quá ngưỡng cho trước thì thư này sẽ bị phân loại là
thư rác Một ví dụ về luật dùng trong Spamassassin được mô tả
trong danh sách (1):
Body DEAR_FRIEND /^\s*Dear Friend\b/i
Describe DEAR_FRIEND Dear Friend? That’s not very dear
Score DEAR_FRIEND 0.542
Danh sách 1: Ví dụ một luật trong SpamAssassin
Ví dụ trên định nghĩa một luật có tên DEAR_FRIEND, khi
SpamAssassin áp dụng luật này trên một thư cần phân loại,
phần mềm sẽ kiểm tra xem thư có chứa mẫu chuỗi ký tự được
quy định trong biểu thức chính quy /^\s*Dear Friend\b/i hay
không Nếu thư có chứa chuỗi này thì số điểm 0.542 sẽ được
cộng vào tổng điểm số dùng để phân loại thư Cấu trúc cụ thể
của luật dùng trong SpamAssassin được trình bày cụ thể trong
[1,3] Một tập các luật như vậy cùng với điểm số của chúng sẽ
tạo thành một bộ lọc thư rác trên nền SpamAssassin
Quá trình xây dựng một bộ lọc thư rác cho SpamAssassin
được chia thành hai giai đoạn: xác định nội dung của các luật
(các mẫu chuỗi ký tự dùng trong biểu thức chính quy) và gán
điểm số cho mỗi luật Ở giai đoạn thứ nhất căn cứ vào hai tập
mẫu cho trước các đặc trưng của thư rác (từ hoặc cụm từ) được
trích chọn để hình thành nên nội dung của các luật của bộ lọc
Mỗi luật tương ứng với một từ hoặc cụm từ đặc trưng của thư
rác Dễ thấy nội dung của các luật sẽ phụ thuộc vào loại ngôn
ngữ sử dụng trong các thư ở tập mẫu, do đó sẽ có các luật khác
nhau dành riêng cho lọc thư rác tiếng Anh và lọc thư rác tiếng
Việt Trong các nghiên cứu trước đây[2,5,6], nhóm tác giả đã
trình bày cụ thể về vấn đề xây dựng các luật lọc thư rác tiếng
Việt và thư rác đa ngôn ngữ Bài báo này sử dụng các kết quả
tập luật lọc thư rác thu được từ các nghiên cứu đó
Ở giai đoạn thứ hai điểm số được gán cho mỗi luật, quá
trình này có ý nghĩa tương tương với việc gán trọng số cho mỗi
đặc trưng đã được trích chọn Hiện tại SpamAssassin sử dụng
một thuật toán học máy trên nền tảng mạng neural một
lớp[2,3] Trong đó mỗi nút mạng mô tả một luật, mỗi đầu vào
của mỗi nút thể hiện luật đó có xuất hiện trong một thư rác,
trọng số của mỗi nút là điểm của luật Sau khi kết thúc quá
trình huấn luyện toàn bộ tập luật sẽ được gán một điểm số
tương ứng Về cơ bản quá trình này có thể mô hình hóa dưới
dạng một bài toán tối ưu hóa đơn mục tiêu, với một ngưỡng T
cho trước quá trình huấn luyện sẽ gán điểm cho mỗi luật sao
cho tham số SDR của bộ lọc là lớn nhất khi tiến hành phân loại các thư trong tập huấn luyện
Đối chiếu với các bước của giải pháp tự động phân loại thư rác dựa trên nội dung thông qua học máy đã mô tả ở phần I thì giai đoạn một thực hiện việc trích trọn đặc trưng của thư rác thể hiện ở mỗi luật trong tập luật, còn giai đoạn hai thực hiện xác định trọng số của các đặc trưng này thể hiện ở điểm số của mỗi luật Dễ thấy khi xây dựng bộ lọc thư rác trên nền tảng SpamAssassin, điểm số của các luật có ảnh hướng lớn đến hiệu quả của bộ lọc vì điểm số của luật thể hiện độ quan trọng của luật đó trong quá trình phân loại thư Xác định điểm số cho các luật càng chính xác thì hiệu quả của bộ lọc thư rác càng cao và ngược lại
Gọi SDR0 và FAR0 là các giá trị mong muốn của hai tham
số SDR và FAR của bộ lọc thư rác cần thiết kế (với ý nghĩa bộ lọc đạt yêu cầu là bộ lọc có SDR ≥ SRD0 và FAR ≤ FAR0) Trong phương pháp xác định điểm số hiện tại, sau khi xác định ngưỡng T, điểm số của mỗi luật sẽ được tính toán để cho tham
số SDR của bộ lọc thu được là lớn nhất Tuy nhiên các khả năng sau có thể xảy ra sau khi thực thi xong thuật toán tính điểm số:
(1) Giá trị SDR của bộ lọc thu được không đạt yêu cầu (2) Giá trị FAR của bộ lọc thu được không đạt yêu cầu (3) Giá trị SDR và FAR đạt yêu cầu nhưng chưa phải là tối ưu
Để giải quyết vấn đề trên người dùng phải thử chọn các giá trị ngưỡng T khác, thực hiện lại thuật toán tính điểm và tiếp tục kiểm tra xem các tham số SDR và FAR của bộ lọc đã đạt yêu cầu chưa Quy trình này không chỉ gây tốn thời gian, tốn tài nguyên hệ thống mà còn chưa giải quyết triệt để vấn đề (3) do chưa xem xét đến giá trị của FAR trong quá trình tính điểm
Từ những phân tích nêu trên, nhóm tác giả đề xuất giải pháp coi bài toán xác định điểm cho các luật lọc thư rác là một bài toán tối ưu hóa đa mục tiêu trong đó ta cần tìm giá trị ngưỡng
T và các giá trị điểm số của mỗi luật sao cho giá trị tham số SDR và FAR của bộ lọc thu được là tối ưu Lưu ý rằng do mối quan hệ “thỏa hiệp” giữa SDR và FAR như đã nêu trong phần I nên sẽ rất khó tìm được một bộ giá trị của T và các điểm số sao cho SDR và FAR thực sự tối ưu (SDR=100% và FAR=0%), thay vào đó nhóm tác giả hướng tới việc tìm ra tập các phương
án thỏa hiệp (hay còn gọi là tập phương án tối ưu Pareto) [12]
Từ đó, kết hợp thêm các tiêu chí khác, ta chọn được lời giải tốt nhất cho bài toán
III PHÁT BIỂU BÀI TOÁN VÀ PHƯƠNG PHÁP GIẢI
A PHÁT BIỂU BÀI TOÁN
Giả sử tập mẫu ban đầu bao gồm tập thư rác S=(s1, s2, …,
sK) và tập thư hợp lệ H=(h1, h2, …, hL) Giả sử bộ lọc thư rác cần xây dựng bao gồm tập luật R=(r1, r2, …, rN), mỗi luật cần được xác định điểm tương ứng là một phần tử trong tập điểm X=(x1, x2, …, xN) Với mỗi luật r và mỗi thư điện tử e ta có thể xác định hàm so khớp m(r,e) như sau:
mr,e= 1 nếu đặc trưng r xuất hiện trong e0 ngược lại (1)
Tiếp theo tổng điểm của thư điện tử e được tính theo công thức sau:
Trang 3Scoree= m(ri,e)xi
N
i=1
(2)
Với mỗi giá trị ngưỡng T xác định, bộ lọc SpamAssassin sẽ kết
luận e là thư rác hay thư hợp lệ dựa trên công thức:
Spame= 1 nếu Score(e) ≥ T 0 ngược lại (3)
Từ đó các tham số SDR và FAR của bộ lọc thư rác được tính
theo các công thức:
SDR=K 1 Spam(si)
K
i=1
(4)
FAR=L 1 Spam(hi)
L
i=1
(5)
Do bản thân giá trị ngưỡng T cũng là một biến số nên ta sử
dụng x0để ký hiệu thay cho T Cuối cùng bài toán tối ưu hóa
đa mục tiêu được phát biểu như sau:
z1 = SDR(X) Max
z2 = FAR(X) Min, X=(xo, x1, …, xN) ∈ RN+1
với các ràng buộc: ximin≤xi≤ximax; i0 N (6)
Trong đó các giá trị SDR(X) và FAR(X) được tính theo các
công thức (4) và (5) Các giá trị ximin và ximax thể hiện khoảng
giá trị cho phép của biến xi
B TỐI ƯU HÓA PARETO
Thực tế hai mục tiêu của bài toán tối ưu hóa (6) không thể
đạt được đồng thời, do đó phương pháp tối ưu hóa Pareto [12]
được áp dụng để giải bài toán Ta xem xét bài toán tối ưu hóa
đa mục tiêu tổng quát với yêu cầu phải đồng thời tối thiểu hóa
P hàm mục tiêu – các mục tiêu loại tối đa hóa có thể được
chuyển thành loại tối thiểu hóa bằng cách nhân với -1:
zi = fi(X) Min, X=(x1, x2, …, xN) ∈ RN , i=1, 2, … P (P≥2)
với các ràng buộc: gjX; j=1 m
Một phương án khả thi X được gọi là vượt trội so với phương
án khả thi Y (ký hiệu X ≽ Y), nếu và chỉ nếu, zi(X) ≤ zi(Y)
(i=1, , P) và zj(X) < zj(Y) ở ít nhất một mục tiêu j Một
phương án được gọi là phương án tối ưu Pareto nếu nó không
bị vượt trội bởi bất cứ phương án nào khác trong không gian
phương án {X} Các giá trị hàm mục tiêu tương ứng của các
phần tử trong tập các phương án tối ưu Pareto nói trên tạo
thành đương biên Pareto (Pareto Front) trong không gian mục
tiêu
Các giải thuật tối ưu hóa đa mục tiêu lý tưởng sẽ tìm ra tất
cả các phương án trong tập tối ưu Pareto Tuy nhiên việc chứng
minh một tập hợp các phương án tìm được là tập tối ưu Pareto
thường không khả thi Do đó một cách tiếp cận thực tế thường
được chọn là tìm kiếm tập các phương án là thể hiện tốt nhất có
thể của tập tối ưu Pareto, một tập các phương án như vậy được gọi là tập Pareto được biết tốt nhất (Best-known Pareto set)
Ba tiêu chí sau đây thường được dùng để đánh giá một tập Pareto được biết tốt nhất:
- Là một tập con của tập tối ưu Pareto
- Các giá trị của hàm mục tiêu tương ứng của các phương án phải phân bố đều và đa dạng trên đường biên Pareto trong không gian mục tiêu
- Các giá trị của hàm mục tiêu tương ứng phải biểu thị toàn cảnh của đường biên Pareto
C CÁC GIẢI THUẬT TIẾN HÓA ĐA MỤC TIÊU
Với cách tiếp cận nói trên, việc giải bài toán tối ưu hóa đa mục tiêu được thực hiện thông qua quá trình tìm kiếm tập Pareto được biết tốt nhất Do đó các giải thuật tìm kiếm meta-heuristic mà cụ thể là các giải thuật tiến hóa sẽ là các công cụ đặc biệt phù hợp để giải quyết lớp bài toán này Thực tế các giải thuật tiến hóa đa mục tiêu như NSGA hay SPEA có thể thực hiện tìm kiếm tập Pareto được biết tốt nhất chỉ trong một lượt chạy Theo thống kê trong [13], các giải thuật tiến hóa chiếm 70% trong tổng số các phương pháp tối ưu hóa đa mục tiêu dựa trên meta-heuristic
Đã có nhiều giải thuật tiến hóa đa mục tiêu (MOEA) được công bố, trong [14] các tác giả trình bày tổng quan về các giải thuật này Điểm khác biệt chủ yếu giữa các giải thuật tiến hóa
đa mục tiêu nằm ở cách tính độ thích nghi cho mỗi cá thể (Fitness assignment), cách duy trì quần thể ưu tú (Elitism) và phương pháp để đa dạng hóa quần thể
Xếp hạng Pareto (Pareto ranking) là một phương pháp thường dùng để tính độ thích nghi của cá thể bằng cách gán thứ hạng 1 (độ thích nghi cao nhất) cho các cá thể không bị vượt trội trong quần thể và loại chúng ra khỏi danh sách xếp hạng, rồi tìm các cá thể không bị vượt trội mới để gán thứ hạng 2 và tiếp tục như vậy cho đến khi toàn bộ quần thể được xếp hạng Duy trì quần thể ưu tú là một vấn đề quan trọng trong tối ưu hóa đa mục tiêu sử dụng MOEA Trong ngữ cảnh của giải thuật MOEA, tất cả những cá thể không bị vượt trội được phát hiện bởi MOEA được coi như là những thành viên của quần thể ưu
tú Có hai chiến lược thường dùng để hiện thực việc duy trì quần thể ưu tú: (i) lưu trữ các cá thể ưu tú trong chính quần thể
và (ii) lưu trữ các cá thể ưu tú trong một danh sách thứ cấp bên ngoài quần thể và đưa chúng trở lại quần thể
Phương pháp chia sẻ độ thích nghi (Fitness sharing) được dùng để đa dạng hóa quần thể Phương pháp này khuyến khích tìm kiếm trên những vùng chưa biết của đường biên Pareto bằng cách giảm bớt độ thích nghi của các cá thể ở những vùng
có mật độ cao Các kỹ thuật khác nhau thường được dùng để ước lượng mật độ các cá thể xung quanh một cá thể đang xét như kỹ thuật đếm số vùng lân cận (niche count) hay kỹ thuật tính khoảng cách mật độ trong đó ước tính giá trị khoảng cách Euclide trung bình trong không gian mục tiêu của cá thể đang xét tới các láng giềng gần nhất thứ k (k-th nearest neighbor) của nó Khoảng cách mật độ cũng được dùng trong cơ chế chọn cha mẹ như sau: lấy ngẫu nhiên hai cá thể x và y; nếu chúng có cùng thứ tự (non-domination rank) thì cá thể nào có
Trang 4khoảng cách mật độ cao hơn sẽ được chọn; ngược lại cá thể có
mức thứ tự thấp hơn sẽ được chọn
D SỬ DỤNG MOEA ĐỂ GIẢI BÀI TOÁN
Nhóm tác giả lựa chọn giải thuật tiến hóa đa mục tiêu SPEA-II
để giải bài toán Trong phần tiếp theo chúng tôi mô tả một số
điểm chính trong quá trình sử dụng SPEA-II để giải bài toán
Biểu diễn nhiễm sắc thể: Bài toán yêu cầu tìm kiếm giá trị
ngưỡng T và điểm cho từng luật có trong bộ lọc thư rác
SpamAssassin sao cho các tham số SDR và FAR của bộ lọc
thu được là tốt nhất Do đó mỗi nhiễm sắc thể sẽ biểu diễn một
phương án khả thi để gán giá trị cho ngưỡng T và các luật có
trong bộ lọc Cụ thể mỗi nhiễm sắc thể sẽ là một vecto chứa
N+1 số thực (các gen) tương ứng với một phương án X=(xo, x1,
…, xN) ∈ RN+1 trong không gian phương án Giá trị của mỗi xi
phải nằm trong ngưỡng cho phép ximin≤xi≤ximaxđã xác định
trước Phương pháp mã hóa số thực (real-coded method) [14]
được chúng tôi sử dụng để biểu diễn mỗi nhiễm sắc thể
Tính toán giá trị hàm mục tiêu: Giá trị hàm mục tiêu của mỗi
nhiễm sắc thể được tính toán thông qua phần mềm
SpamAssassin Bộ lọc SpamAssassin tương ứng với nhiễm sắc
thể sẽ được sử dụng để kiểm tra các thư có trong tập mẫu bao
gồm tập thư rác S và tập thư hợp lệ H Từ kết quả kiểm tra ta
có thể tính được các tham số SDR và FAR của bộ lọc và từ đó
xác định được các giá trị hàm mục tiêu của nhiễm sắc thể Lưu
ý để cho đơn giản ta chọn giá trị hàm mục tiêu 1-SDR thay vì
SDR, như thế mục tiêu của bài toán sẽ là tối tiểu hóa hai hàm
mục tiêu FAR và 1-SDR
Cơ chế chọn lọc: Được được dùng để chọn các nhiễm sắc thể
cha mẹ cho việc sinh ra thế hệ tiếp theo Chúng tôi sử dụng cơ
chế chọn lọc dựa trên đấu loại trực tiếp (Binary Tournament
Selection) trong đó hai nhiễm sắc thể được chọn ngẫu nhiên từ
quần thể để tham gia đấu loại, nhiễm sắc thể nào có giá trị hàm
thích nghi tốt hơn sẽ là người chiến thắng
Phép toán lai tạo (Crossover operator): Hai nhiễm sắc thể cha
mẹ được chọn sẽ tạo ra hai nhiễm sắc thể con mới cho quần
thể Chúng tôi sử dụng phép toán lai tạo giả nhị phân
(Simulated Binary Crossover) để thực hiện quá trình này
Phép toán đột biến (Mutation operator): Chúng tôi chọn phép
đột biến đa thức (polynomial mutation operator) để biến đổi
nhiễm sắc thể nhằm tăng tính đa dạng của quần thể
Gán độ thích nghi: Phương pháp xếp hạng Pareto được dùng
để gán độ thích nghi cho mỗi nhiễm sắc thể có trong quần thể
Duy trình quần thể ưu tú: SPEA-II sử dụng một danh sách thứ
cấp để lưu trữ các nhiễm sắc thể ưu tú (là các phương án không
bị vượt trội như mô tả trong phương pháp tối ưu Pareto) của
quần thể Danh sách này sẽ được đưa lại vào quần thể trong
quá trình chọn lọc
Chia sẻ độ thích nghi: Sử dụng kỹ thuật tính khoảng cách mật
độ đã trình bày ở phần trên
IV KẾT QUẢ Nhóm tác giả thử nghiệm xây dựng bộ lọc thư rác
SpamAssassin với hai kịch bản sử dụng hai cơ sở dữ liệu thư
điện tử khác nhau chứa 300 thư và 750 thư do nhóm tác giả thu
thập từ nhiều nguồn khác nhau Trong mỗi kịch bản, tập thư
điện tử ban đầu được chia thành hai tập con gọi là tập mẫu và
tập kiểm tra Tập mẫu được dùng trong quá trình tìm kiếm bộ lọc có các tham số SDR và FAR tối ưu, còn tập kiểm tra được dùng để đánh giá bộ lọc khi hoạt động thực tế Cả tập mẫu và tập kiểm tra đều chứa các thư rác và các thư hợp lệ Bảng 1 mô
tả số lượng thư cụ thể dùng trong mỗi kịch bản
Kịch bản 1 (300 thư) Kịch bản 2 (750 thư) Mẫu Kiểm tra Mẫu Kiểm tra
Bảng 1: Số lượng thư điện tử dùng trong các kịch bản
Trong mỗi kịch bản thử nghiệm chúng tôi thực hiện thiết kế
bộ lọc gồm 30 luật và 100 luật để đảm bảo các thực nghiệm được thực hiện với số lượng thư và số lượng luật ở quy mô nhỏ
và quy mô lớn Dải giá trị hợp lệ được chọn cho ngưỡng T là [0,5]; cho điểm của mỗi luật là [0,2] Thuật toán SPEA-II được cài đặt để tính điểm cho mỗi luật có trong bộ lọc, các tham số của SPEA-II được mô tả trong bảng 2 (N có giá trị lần lượt là
30 và 100)
Tham số Giá trị Tham số Giá trị
Kích thước quần thể 100 Cận dưới của
Số lượng thế hệ 1000 Cận trên của
Số biến thực N+1 Xác suất đột biến 1/(N+1) Cận dưới của biến 1 0
Cận trên của biến 1 5
Bảng 2: Các tham số của thuật toán SPEA-II
Các thử nghiệm được chạy trên máy tính có cấu hình Intel Core i3-3120M 2.5GHz, RAM 4GB, OS Ubuntu 14.04 Để đảm bảo tính khách quan mỗi thử nghiệm được chạy 20 lần với các nhân ngẫu nhiên khác nhau, các số liệu trình bày trong bài báo là giá trị trung bình của kết quả thu được sau mỗi lần chạy Kết quả thử nghiệm được so sánh với phương pháp tính điểm tối ưu hóa đơn mục tiêu (SOOA) [2] của SpamAssassin trên cùng mẫu dữ liệu thư điện tử Để thực hiện so sánh, chúng tôi chọn 10 giá trị ngưỡng T phân bố đều trong khoảng [0,5], với mỗi giá trị ngưỡng phương pháp tính điểm hiện tại sẽ tính toán điểm của các luật để tối ưu hóa tham số SDR, giá trị của tham
số FAR của bộ lọc cũng được tính toán và so sánh với phương pháp đề xuất trong bài báo
Các kết quả thử nghiệm theo kịch bản thứ nhất (với tập chứa 300 thư) được trình bày trong hình 1 (bộ lọc có 30 luật)
và hình 2 (bộ lọc có 100 luật) Các kết quả thu được khi thiết
kế bộ lọc bằng phương pháp SOOA cũng được trình bày trong các hình vẽ này để tiện so sánh Các số liệu cho thấy bộ lọc thiết kế sử dụng SPEA-II có các tham số SDR và FAR tốt hơn
so với bộ lọc thiết kế bằng phương pháp SOOA Cụ thể đối với
bộ lọc có 30 luật, giả sử ta muốn thiết kế bộ lọc có FAR = 0%, thì kết quả tốt nhất mà phương pháp SOOA tìm được là (SDR=40,8%, FAR=0%) Trong khi đó sử dụng SPEA-II ta thu được bộ lọc có (SDR=60%, FAR=0%) Tương tự nếu ta chỉ quan tâm đến những bộ lọc có FAR ≤ 10% thì các kết quả tốt
Trang 5nhất mà SOOA tìm được là (67,7%, 10%) và (55,8%, 1,25%)
trong khi SPEA-II tìm ra những kết quả tốt hơn như (60%,
0%), (64,2%, 1,3%) và (68,3%, 5%)
Hình 1 Kết quả kịch bản thử nghiệm 1 với bộ lọc 30 luật
Hình 2 Kết quả kịch bản thử nghiệm 1 với bộ lọc 100 luật
Khi tăng số luật của bộ lọc lên thành 100 luật ta cũng thu được
các kết quả tương tự Phương pháp SPEA-II cho kết quả tốt
hơn SOOA trên cả hai phương diện tối ưu hóa riêng FAR hoặc
SDR Hơn nữa bằng việc khảo sát đường biên Pareto, người
dùng có thể cân nhắc việc đánh đổi giữa SDR và FAR để từ đó
tìm được giải pháp phù hợp với yêu cầu
Trên mặt phẳng tọa độ Đề-các tạo bởi hai trục SDR và
FAR, dễ thấy bộ lọc lý tưởng tương ứng với điểm có tọa độ
I(100,0) Gọi D là khoảng cách Euclide từ một điểm trên
đường biên Pareto đến điểm I, khi đó giá trị của D sẽ cho ta
thông tin ước lượng tương đối về chất lượng của bộ lọc thu
được (D càng nhỏ thì chất lượng bộ lọc càng cao) Bảng 3
trình bày 03 bộ lọc tốt nhất do SPEA-II tìm được và so sánh
chúng với phương pháp SOOA Các số liệu về SDR và FAD
khi thiết kế (sử dụng tập thư mẫu) và khi hoạt động thực tế (sử
dụng tập thư kiểm tra) cũng được trình bày trong bảng 3 Phân
tích kỹ hơn số liệu trình bày trong bảng 3 ta thấy khi bộ lọc chứa nhiều luật hơn thì SPEA-II cũng tìm được những kết quả tốt hơn Điều này thể hiện ở số lượng điểm tìm được trong tập đường biên Pareto (18 điểm và 31 điểm ứng với các trường hợp sử dụng 30 luật và 100 luật) và giá trị trung bình của khoảng cách D (51,3 và 47 ứng với các trường hợp sử dụng 30 luật và 100 luật)
Phương pháp SOOA
Bộ lọc 30 luật Bộ lọc 100 luật Thiết kế Thực tế Thiết kế Thực tế
SDR FAR SDR FAR SDR FAR SDR FAR
1 67,7 10,0 65,0 12,5 81,3 15 81,7 17,5
2 55,8 1,25 56,7 2,5 78,3 12,5 78,3 12,5
3 40,8 0 45,0 2,5 68,3 3,8 66,7 5,0
Phương pháp SPEA-II
Bộ lọc 30 luật Bộ lọc 100 luật Thiết kế Thực tế Thiết kế Thực tế
SDR FAR SDR FAR SDR FAR SDR FAR
1 72,5 12,5 71,7 12,5 82,5 13,8 83,3 15,0
2 71,0 10,0 71,7 10,0 80,8 12,5 80,0 12,5
3 73,3 16,3 73,3 17,5 80,0 11,3 80,0 10,0
Bảng 3: So sánh kết quả thu được khi sử dụng hai phương pháp SSOA
và SPEA-II trong kịch bản 1
Các kết quả thu được khi thử nghiệm theo kịch bản thứ hai với
số lượng thư mẫu lớn hơn cũng cho thấy các kết luận tương tự như trong kịch bản thứ nhất:
- SPEA-II cho các kết quả tốt hơn so với SOOA trên cả hai phương diện tối ưu hóa FAR hay SDR
- SPEA-II cho phép người dùng lựa chọn các thiết kế phù hợp nhất căn cứ vào đường biên Pareto tìm được
- Với bộ lọc sử dụng nhiều luật hơn thì SPEA-II tìm được các kết quả tốt hơn
Hình 3 và 4 mô tả kết quả thử ngiệm theo kịch bản thứ hai khi
sử dụng bộ lọc có 30 luật và 100 luật Bảng 4 tóm tắt các kết quả tốt nhất do SOOA và SPEA-II tìm ra trong thực nghiệm
Hình 3 Kết quả kịch bản thử nghiệm 2 với bộ lọc 30 luật
Trang 6Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Hình 4 Kết quả kịch bản thử nghiệm 2 với bộ lọc 100 luật
Phương pháp SOOA
Bộ lọc 30 luật Bộ lọc 100 luật
Thiết kế Thực tế Thiết kế Thực tế
SDR FAR SDR FAR SDR FAR SDR FAR
1 79,0 15,5 78,7 15,0 75,7 4,0 75,0 5,0
2 81,3 19,0 81,3 19,0 84,3 20,0 84,5 21,0
3 74,7 8,5 74,7 9,0 78,3 14,0 78,5 14,0
Phương pháp SPEA-II
Bộ lọc 30 luật Bộ lọc 100 luật
Thiết kế Thực tế Thiết kế Thực tế
SDR FAR SDR FAR SDR FAR SDR FAR
1 79,3 11,0 79,3 11,0 83,3 10,0 83,3 10,0
2 77,3 9,0 77,3 9,0 78,3 6,0 78,7 6,0
3 76,3 7,5 76,7 8,0 81,7 13,5 82,0 14,0
Bảng 3: So sánh kết quả thu được khi sử dụng hai phương pháp SSOA
và SPEA-II trong kịch bản 2
V CÁC NGHIÊN CỨU LIÊN QUAN
Cho tới nay đã có nhiều công trình nghiên cứu liên quan
đến vấn đề lọc thư rác như sử dụng các bộ lọc địa chỉ thư, các
bộ lọc nội dung sử dụng Bayesian hoặc SVM, sử dụng phương
pháp học máy [3], sử dụng mạng phức hợp [4] Trong vấn đề
phân loại thư rác dựa trên nội dung, ngôn ngữ sử dụng trong
thư điện tử có vai trò rất quan trọng Nhóm tác giả đã xuất bản
một số công trình nghiên cứu liên quan đến việc xây dựng các
bộ lọc thư rác cho từng loại ngôn ngữ (tiếng Trung [2], tiếng
Việt [6]) cũng như thiết kế các luật lọc thư đa ngôn ngữ [5]
Trong phần lớn các nghiên cứu hiện tại, việc tính điểm cho
các luật dùng trong bộ lọc SpamAssassin được thực hiện thông
qua việc giải bài toán tối ưu hóa đơn mục tiêu sử dụng giải
thuật di truyền hoặc mạng neural [2] Phương pháp tính điềm
do nhóm tác giả đề xuất trong bài báo thực hiện giải bài toán
tối ưu hóa đa mục tiêu nên có nhiều ưu điểm hơn so với
phương pháp cũ
Các giải thuật tiến hóa đa mục tiêu cũng được đã sử dụng
hiệu quả trong vấn đề lọc thư rác tiêu biểu là các nghiên cứu
ứng dụng MOEA để xác định các đặc trưng của mỗi luật [7]
hoặc tạo ra các luật phức hợp từ các luật cơ bản [8]
VI KẾT LUẬN Trong bài báo này, chúng tôi đề xuất phương pháp mới để tính điểm cho các luật trong quá trình thiết kế bộ lọc thư rác SpamAssassin Trong đó việc gán điểm cho mỗi luật được thực hiện thông qua giải bài toán tối ưu hóa đa mục tiêu đồng thời tối đa hóa tham số SDR và tối thiểu hóa tham số FAR của bộ lọc So sánh với phương pháp cũ, phương pháp mới có ưu điểm hơn vì nó không những tìm ra những kết quả tốt hơn mà còn cho phép người dùng lựa chọn những kết quả “thỏa hiệp” theo các tiêu chí cho trước Các thực nghiệm cũng được tiến hành với các kích thước khác nhau của tập thư điện tử mẫu và tập luật dùng trong bộ lọc Kết quả thực ngiệm đã minh chứng rõ các kết luận trình bày trong bài báo
TÀI LIỆU THAM KHẢO
[1] The Apache SpamAssassin Project SpamAssassin: The Powerful #1 Open-Source Spam Filter [Online] 2015 [Cited: 16 July 2015] http://spamassassin.apache.org/index.html
[2] Tran, Q A., Duan, H X Li, X., “Real-time statistical rules for spam detection”, IJCSNS International Journal of Computer Science and Network Security, VOL.6 No.2B, pp 178–184, 2006
[3] Schwartz A SpamAssassin O’Reilly, 2004
[4] Joseph S Kong, Behnam Attaran Rezaei, Nima Sarshar, Vwani P Roychowdhury, P Oscar Boykin, “Collaborative Spam Filtering Using E-Mail Networks” IEEE Computer 39(8): 67-73, 2006
[5] Minh Tuan Vu and F Jiang V.Q Tran Tran, Quang Anh, “Multilingual rules for spam detection” Proceedings of IB2COM 2012, pages 106–
110, 2012
[6] Nguyen T.A., Tran Q.A., Nguyen N.B., “Vietnamese spam detection based on language classification”, HUT-ICCE 2008 - 2nd International Conference on Communications and Electronics, 2008
[7] V Fernandes, I Yevseyeva, R Frantz, C Grilo, N Díaz, M Emmerich,
“An Automatic Generation of Textual Pattern Rules for Digital Content Filters Proposal, Using Grammatical Evolution Genetic Programming”, Procedia Technology, Volume 16, Pages 806-812, 2014
[8] I Yevseyeva, V Fernandes, D Ord´as, J M´endez “Optimising anti-spam filters with evolutionary algorithms” Expert Systems with Applications, 2013
[9] C A C Coello, “Evolutionary multi-objective optimization: A historical view of the field” IEEE Computational Intelligence Magazine, 1(1):28–36, 2006
[10] E Zitzler, L Thiele, and K Deb, “Comparision of multiobjective evolutionary algorithms: Emprical results” Evolutionary Computation, 8(1):173–195, 2000
[11] E Zitzler, M Laumanns, and L Thiele, “SPEA2: Improving the strength pareto evolutionary algorithm for multiobjective optimization”
In Evolutionary Methods for Design Optimization and Control with Applications to Industrial Problems, pp 95–100, 2001
[12] Marler, R.T and J.S Arora, “Survey of multi-objective optimization methods for engineering” Structural and Multidisciplinary Optimization, 26(6): pp 369-395, 2004
[13] A Konak, D W Coit, A E Smith, “Multi-objective optimization using genetic algorithms: A tutorial” J Reliability Engineering and System Safety, No 91, pp 992-1007, 2006
[14] V Lücken, Christian, B Barán, C Brizuela, "A survey on multi-objective evolutionary algorithms for many-multi-objective problems." Computational Optimization and Applications pp 707-756, 2014