2 Support Vector Machine
3.2 Ứng dụng SVM để phân loại email và spam
Sự phát triển của các dịch vụ thông tin trên Internet và nhu cầu trao đổi thông tin làm cho hệ thống thư điện tử phát triển mạnh. Song song với sự phát triển đó, tình trạng thư rác ngày càng gây nhiều thiệt hại cho cộng đồng người sử dụng như: hao phí tài nguyên mạng máy tính, làm mất thời gian của người dùng và thậm chí có thể phát tán những thơng tin văn hóa độc hại. Vì vậy, vấn đề xây dựng các giải pháp tự động lọc và chống thư rác trở thành nhu cầu không thể thiếu. Hệ thống lọc thư rác dựa trên các phương pháp phân loại văn bản, tức là gán văn bản vào một số nhóm văn bản đã được biết trước.
Đối với bài toán lọc thư rác, đầu vào sẽ là các bức thư điện tử gửi trên mạng Internet. Ở mức độ đơn giản, chúng ta thấy rằng sẽ có hai nhóm văn bản là thư rác (spam mail) và thư sạch (email). Việc xác định nhóm thư rác thường khơng có một định nghĩa chính xác, nó thay đổi theo từng đối tượng và hoàn cảnh. Theo định nghĩa thơng thường, đó là các thư có nội dung văn hóa độc hại, các thư quảng cáo được phán tán với số lượng lớn, các thư tuyên truyền với mục đích xấu,. . . Vì vậy, một hệ thống phân loại tự động có khả năng học để thích nghi là cần thiết cho các hệ thống thư điện tử.
Phương pháp sử dụng kỹ thuật SVM khá hiệu quả trong việc phân loại thư rác, vì về bản chất nó vẫn là phương pháp sử dụng thống kê nên có những ưu điểm nhất định.
Tập dữ liệu chúng ta sử dụng sẽ có nguồn gốc từ một bộ sưu tập của email spam (là các email thương mại không được yêu cầu mà đến từ 1 bưu điện hoặc cá nhân đã đệ đơn thư rác) và các email (cái mà đến từ các tổ chức làm việc hoặc email cá nhân). Ở đây bộ sưu tập của chúng ta bao gồm 4,601 messages, trong đó có 1,813 thư rác và 2,788 email. Mỗi messages nhận về sẽ được chuyển thành biểu diễn vector của nó. Mỗi vector bao gồm 57 tọa độ ứng với 57 biến dùng để phân biệt email và thư rác. Trong đó, có 48 biến mà có dạng "word_freq_WORD", mà đưa ra tỷ lệ phần trăm của các từ trong email phù hợp WORD; 6 biến có dạng "word_freq_CHAR", đưa ra phần trăm của
các chữ trong email mà phù hợp CHAR; 3 biến độ dài, đo độ dài trung bình, độ dài lớn nhất, và tổng độ dài của chuỗi không bị gián đoạn của các chữ viết hoa liên tiếp. Ở đây, mỗi messages đã được gán nhãn vào 1 trong 2 lớp email hay thư rác. Và bài toán đặt ra là chúng ta sử dụng SVM để phân loại 4,601 messages vào 1 trong 2 lớp đó (bài tốn phân loại nhị phân) từ đó tìm ra tỷ lệ phân loại sai để xem mức độ chính xác của phương pháp.
Ở đây chúng ta áp dụng SVM khơng tuyến tính (R package libsvm) sử dụng một kernel RBF đối với 4,061 messages (2,788 email và 1,813 spam). Lời giải SVM phụ thuộc vào chi phí C của vi phạm ràng buộc và phương sai σ2 của kernel Gauss RBF. Bằng cách sử dụng phương pháp thử và sửa sai, chúng ta đã sử dụng lưới các giá trị cho C và γ = 1
σ2:
C = 10,80,100,200,500,10000
γ = 0.00001(0.00001)0.0001(0.0001)0.002(0.001)0.01(0.01)0.04
Trong hình, chúng ta có các giá trị của 10-fold CV (kiểm chứng chéo) tỷ lệ phân loại sai tương ứng vớiγ được liệt kê ở trên, trong đó mỗi đường cong (liên kết với tập các điểm) biểu diễn một giá trị khác nhau của C. Với mỗi C chúng ta thấy rằng đường cong phân loại sai CV/10 có các hình dạng tương tự: 1 giá trị cực tiểu cho γ rất gần 0 và cho các giá trị của γ xa 0thì các đường cong là có xu hướng đi lên. Trong tìm kiếm gốc, chúng ta tìm 1 cực tiểu CV/10 tỷ lệ
phân loại sai là 8.06% tại (C;γ) = (500,0.0002) và (1,000,0.0002). Chúng ta
thấy rằng mức độ tổng quát của tỷ lệ phân loại sai là có xu hướng giảm khi C
tăng và γ giảm đồng thời.
Một chi tiết điều tra cho C > 1000 và γ gần 0 đã tiết lộ tỷ lệ phân loại sai CV/10 là 6.91% tại C = 11,000 và γ = 0.00001 tương ứng với ước lượng 10 CV của tỷ lệ phân loại đúng:
0.9043,0.9478,0.9304,0.9261,0.9109, 0.9413,0.9326,0.9500,0.9326,0.9328
Lời giải này có 931 support vectơ (482 email, 449 spam)điều này có nghĩa là 1 tỷ lệ lớn (79.8%) của các messages (cụ thể là 82.7% email và 75.2% spam) khơng là điểm support. Trong 4601 messages thì có 2697 email và 1676 spam
được phân loại đúng (228 phân loại sai)thu được tỷ lệ sai số hiển thị là 4.96%.
So sánh với các tiếp cận khác dùng để phân lớp và lọc thư rác thì việc sử dụng SVM có nhiều tiện ích và phù hợp với nhu cầu của người dùng. Ở đây, tiêu chuẩn phân loại có thể được học từ các mẫu học riêng của từng cá nhân, vì thế vận dụng của mỗi cá nhân hay mỗi đơn vị có thể tạo ra được những cách lọc của riêng mình. Đồng thời sự mềm dẻo của nó cũng giúp dễ dàng cho việc điều chỉnh tương thích với sự xuất hiện của các loại thư rác mới. Trong khi các cơng cụ khác có thể phải tốn nhiều cơng sức khi phát triển các luật mới thì việc sử dụng SVM chỉ cần học lại trên tập mẫu mở rộng (chứa mẫu thư rác cũ và mới), nó sẽ tự động phát triển tiêu chuẩn lọc thích hợp với tình huống mới. Một chương trình như vậy khơng chỉ dựa trên cơ sở các mẫu thư rác mà người dùng đưa vào để huấn luyện mà nó cũng sử dụng cả mẫu thư mong muốn, chúng được xem như là các mẫu hợp lệ. Các đặc tính của thư mong muốn sẽ cho ta một hệ thống chỉ dẫn thứ hai, nó tăng cường khả năng phân lớp của hệ thống cho các thu phức tạp và khơng rõ ràng khi nó cho phép them một phạm trù phân loại thứ ba là “mong muốn đảm bảo” ngoài các phạm trù “spam đảm bảo” và “không rõ, không giống spam”. Do đó, sự phân lớp sẽ trở nên cụ thể rõ ràng hơn.