Hiện nay, thư rác đang là một vấn đề lớn trong cộng đồng người dùng Internet, nó gây nhiều phiền toái cho người dùng và gây thiệt hại về kinh tế. Bài báo này trình bày một phương pháp lọc thư rác dựa trên nội dung thư sử dụng mô hình mạng Neural nhân tạo. Qua kết quả thực nghiệm cho thấy đây là một phương pháp khá hiệu quả để xử lý vấn đề về thư rác.
Trang 1ỨNG DỤNG MÔ HÌNH MẠNG NEURAL TRUYỀN THẲNG ĐA LỚP
TRONG BÀI TOÁN NHẬN DẠNG THƯ RÁC
Tóm tắt: Hiện nay, thư rác đang là một vấn đề lớn trong cộng đồng người dùng
Internet, nó gây nhiều phiền toái cho người dùng và gây thiệt hại về kinh tế Bài báo này trình bày một phương pháp lọc thư rác dựa trên nội dung thư sử dụng mô hình mạng Neural nhân tạo Qua kết quả thực nghiệm cho thấy đây là một phương pháp khá hiệu quả để xử lý vấn đề về thư rác.
I GIỚI THIỆU
Thư điện tử (Email) là một phương tiện giao tiếp rất đơn giản, tiện lợi và hiệu quả đối với cộng đồng người sử dụng dịch vụ này của Internet Chính vì những lợi ích do Email mang lại nên số lượng thư trao đổi trên Internet ngày càng tăng, và một số không nhỏ trong đó là thư rác (Spam)
Spam thường được gửi với số lượng rất lớn từ các cá nhân hoặc các tổ chức với mục đích quảng cáo hoặc ăn cắp thông tin cá nhân của người nhận và không được người dùng mong đợi Theo nhiều thống kê, thư rác chiếm khoảng hơn một nửa lượng thư lưu thông trên toàn thế giới và đây là nguồn lây lan virus nhanh nhất [3] Thiệt hại do chúng gây ra rất lớn đối với sự phát triển Internet nói chung và người sử dụng thư điện tử nói riêng Vì vậy một yêu cầu đặt ra cho những nhà cung cấp dịch vụ thư điện tử và những người sử dụng là cần có các phần mềm nhằm ngăn chặn thư rác Đã có nhiều giải pháp lọc thư rác được đề xuất nghiên cứu và áp dụng [8] Phương pháp đầu tiên phải kể đến là phân loại thư rác theo từ khóa, nghĩa là dựa vào những từ hay cụm từ có trong tiêu đề thư hoặc nội dung thư để lọc Ưu điểm của phương pháp này là thuật toán đơn giản, cơ sở dữ liệu nhỏ nên tốn ít tài nguyên của hệ thống Tuy nhiên để đạt hiệu quả trong việc sử dụng đòi hỏi người dùng phải liên tục phải cập nhật cơ sở dữ liệu cho phù hợp với sự thay đổi của Spam Một phương pháp lọc thư rác cổ điển khác là phương pháp phân loại dùng danh sách trắng/đen Bộ lọc này sẽ không chấp nhận những email từ những địa chỉ không có trong danh sách những địa chỉ email hoặc địa chỉ IP tốt (danh sách trắng) Ngược lại những Email gửi từ những địa chỉ không mong muốn (danh sách đen) sẽ được coi là Spam Để phương pháp này đạt hiệu quả cao đòi hỏi phải cập nhật danh trắng/đen liên tục
Trang 2chính vì vậy phương pháp này trở nên không hiệu quả đối với sự tấn công của những kẻ đưa địa chỉ vào danh sách trắng và chối bỏ địa chỉ khỏi danh sách đen Nhằm khắc phục những nhược điểm trên, phương pháp lọc SpamAssassin ra đời, phương pháp này bao gồm một tập các chương trình lọc, các luật để xác định và đánh dấu thư rác Để xác định một thư mới đến có phải là thư rác hay không nó dùng các chương trình lọc để đánh dấu trên cơ sở nội dung của thư sau đó dựa trên tập các luật được xác định trước và những kí hiệu dấu câu đặc biệt xem thư có vi phạm các luật này không và tính điểm đối với từng thư Từ kết quả thu được, xác định được một thư là rác hay thư thường Phương pháp này
có ưu điểm là khả năng phát hiện Spam rất cao, tuy nhiên khối lượng tính toán lớn khi phải xử lý những email lớn [1,2] vì vậy tốn nhiều tài nguyên của hệ thống
Hiện nay nội dung và hình thức của spam thay đổi rất nhanh và đa dạng đo đó các phương pháp trên đều tỏ ra kém linh hoạt, khả năng thích ứng không cao Đặc điểm nhận dạng Spam ngày càng không dễ thấy, vì thế mà việc nhận dạng một email có phải là spam hay không một cách tự động cần có một quá trình tự nhận thức, đúc rút tri thức kinh nghiệm
từ nhiều email nhận được trong quá khứ Một mô hình như vậy rất thích hợp sử dụng mạng neural Bài báo này trình bày giải pháp ứng dụng mạng neural truyền thẳng đa lớp
và giải thuật lan truyền ngược trong bài toán nhận dạng thư rác
II MÔ HÌNH MẠNG NUERAL TRONG BÀI TOÁN NHẬN DẠNG THƯ RÁC
Spam thường có khuôn dạng biến đổi, đa dạng về hình thức nhưng nếu dùng một phương pháp phân tích, thống kê nội dung của các spam thích hợp có thể tìm ra những đặc tính riêng, khá ổn định [8] Do đó một mạng neural được huấn luyện trên một tập mẫu
đã được phân tích và thống kê theo những đặc tính riêng đó sẽ trở thành bộ lọc spam tương đối ổn định
Như chúng ta đã biết ứng dụng một mô hình mạng neural cụ thể thường được chia làm hai giai đoạn: Huấn luyện và kiểm tra mẫu mới [5] Tỷ lệ phát hiện Spam thành công của mạng neural phụ thuộc rất nhiều vào tập mẫu nếu tập mẫu này được phân tích và thống kê với đầy đủ các đặc trưng của Spam Một tập mẫu tốt phải là một tập mẫu đủ lớn, chứa tất
cả các Spam điển hình, với các đặc trưng của spam được thống kê và phân tích rõ ràng Đối với bài toán nhận dạng thư rác bằng việc sử dụng mạng neural chỉ tốn thời gian huấn
Trang 3luyện ban đầu nhưng thời gian đáp ứng cho một email mới đem vào kiểm tra là khá nhanh
Với những phân tích nêu trên, việc áp dụng mạng neural để giải quyết bài toán nhận dạng thư rác là hoàn toàn khả thi Nhiệm vụ chính của bài toán là thiết kế một mạng neural để huấn luyện trên một tập mẫu thu thập từ thực tế Mỗi mẫu dữ liệu huấn luyện là thông tin
về đặc điểm có được qua phân tích, thống kê từ một email thực tế, hoặc là spam hoặc không Kết quả sau khi huấn luyện là một mạng nơron với các trọng số và bias đã được hiệu chỉnh tương ứng với chỉ tiêu thực hiện đề ra và mạng neural sẽ được dùng để kiểm tra một email bất kỳ xem có phải là spam hay không Như vậy để giải quyết bài toán nhận dạng thư rác với mô hình mạng neural cần thực hiện qua 3 giai đoạn như sau [4,5,6,7]:
Giai đoạn 1: Thiết kế mạng neural dựa trên cơ sở phân tích dữ liệu xác định các đặc
điểm của Spam (đầu vào của mạng neural)
Giai đoạn 2: Huấn luyện cho mô hình mạng neural đã thiết kế
Giai đoạn 3: Kiểm tra huấn luyện trên mẫu mới
Dữ liệu huấn
Luyện
Mạng Neural với các tham
số khởi trị ban đầu
Mạng Nơ ron với các tham số đã hiệu chỉnh, có khả năng khái quát hóa
Nội dung
dạng
Plaintext
Chương trình phân tích đặc điểm
Dữ liệu Mẫu mới
Mạng Nơ ron với các tham số đã hiệu chỉnh,
có khả năng khái quát hóa
Kết quả kiểm tra
Trang 4Do bài toán nhận dạng thư rác có đầu vào và đầu ra rõ ràng, số lượng đầu ra được xác định nên ta chọn mạng dẫn tiến đa lớp Mô hình của mạng như sau:
Hình 1 Mô hình mạng neural dẫn tiến đa lớp
Ta cần phân biệt một email có phải là spam hay không do vậy đầu ra của mạng nhận 2 giá trị 1 và 0 tương ứng với spam và nonspam, do đó tầng ra của mạng chỉ có một nơron, số lượng nơron đầu vào của mạng phụ thuộc vào đặc tính của email được số hóa là dữ liệu cho mỗi mẫu
Vì quá trình học của mạng là quá trình đi tìm bộ trọng số và bias sao cho chỉ số thực thi của mạng đạt giá trị mong muốn Khi đã hoàn thành quá trình học, tri thức của mạng học được thể hiện qua bộ tham số Nói một các khác thì bài toán mạng neural chính là bài toán tối ưu Mạng neural huấn luyện thành công nếu bài toán tối ưu có lời giải Có rất nhiều thuật toán đi tìm lời giải cho bài toán tối ưu Trong giải pháp này, nhóm tác giả sử dụng thuật toán lan truyền ngược Backpropagation
III THU THẬP CƠ SỞ DỮ LIỆU
Trang 5Một email thực tế thường có nhiều kiểu định dạng dữ liệu khác nhau như: Văn bản, hình ảnh, âm thanh…Nghiên cứu này dữ liệu chỉ ở dạng văn bản ASCII (plaintext) Điều này tuy chưa thật khách quan nhưng lại tỏ ra có hiệu quả cài đặt và thực thi tốt văn bản dung
lượng nhỏ dễ phân tích Bộ dữ liệu chúng tôi sử dụng là bộ dữ liệu spambase.data do
nhóm tác giả Mark Hopkins, Erik Reeber, George Forman, Jaap Suermondt lập ra Địa chỉ tải về: http://www.ics.uci.edu/~mlearn/MLRepository.html
Bộ dữ liệu gồm có 4601 mẫu ở dạng số, trong đó có 2778 mẫu không phải spam, 1813 mẫu là spam (bằng 39,4%) Mỗi mẫu được lưu trong một hàng của file Mỗi hàng chia thành 58 cột tương ứng với 58 thuộc tính đặc trưng cho một email Trong đó đặc tính cuối cùng có giá trị là 0 hoặc 1 thể hiện email đó có phải là spam hay không Để áp dụng cho giải pháp của mình, nhóm tác giả tách bộ dữ liệu thành hai bộ dữ liệu mới Một bộ dữ liệu dùng để huấn luyện bao gồm 3601 email và một bộ dữ liệu bao gồm 1000 email để kiểm tra
Spam trong bộ dữ liệu là những email quảng cáo, website, các cách kiếm tiền nhanh, các thư theo dây truyền, hoặc khiêu dâm…Các mẫu spam được lấy từ máy chủ, và những người dùng riêng lẻ Các mẫu không phải là spam được thu thập từ những email cá nhân
IV KẾT QUẢ THỰC NGHIỆM
Để huấn luyện mạng neural với bộ dữ liệu nêu trên, nhóm tác giả đã xây dựng một chương trình bằng ngôn ngữ lập trình Matlap Trong chương trình có sử dụng một số hàm
về mạng neural trong công cụ Neural Network Toolbox Việc sử dụng những hàm có sẵn trong Matlap sẽ giúp người lập trình tiết kiệm khá nhiều thời gian đồng thời kết quả rất tin cậy Phần giao diện của chương trình nhóm tác giả sử dụng công cụ GUI trong Matlap để thiết kế giao diện Chương trình này cho phép thử nghiệm với nhiều mô hình mạng neural khác nhau trong bài toán nhận dạng thư rác Chương trình cho phép người dùng có thể lựa chọn số lớp, số neural trong từng lớp, hàm truyền, hàm huấn luyện một cách dễ dàng, đồng thời chương trình còn tích hợp các chức năng huấn luyện và kiểm tra trên bộ dữ liệu như đã trình bày ở phần trên
Giao diện của chương trình được thiết kế như sau:
Trang 6Hình 2: Giao diện chính của chương trình
Hình 3: Giao diện chương trình khi khởi tạo mạng nơron 3 lớp
Trang 7Hình 4: Đồ thị huấn luyện của mạng Chương trình đã thử nghiệm nhận dạng thư rác với nhiều mô hình mạng neural khác nhau, kết quả thu được trong bảng 1 và bảng 2
Bảng 1 Kết quả thực nghiệm với mạng neural truyền thẳng hai lớp
Cấu trúc
mạng
Hàm chuyền
Hàm training
Số epoch
Số vòng lặp
Thời gian (s)
Tỷ lệ phát hiện Spam
10-1 Tansig Traincg
b
10-1 Tansig Traincg
p
Bảng 2 Kết quả thực nghiệm với mạng neural truyền thẳng ba lớp
Trang 8Cấu trúc
mạng
Hàm chuyền
Hàm training
Số epoch
Số vòng lặp
Thời gian (s)
Tỷ lệ phát hiện Spam
V KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Từ kết quả thực nghiệm cho thấy với mạng 3 lớp 1 tầng ẩn và bộ dữ liệu huấn luyện như trên thì kết quả nhận dạng là tốt và ổn định nhất, khoảng trên 90% Spam email được nhận dạng đúng
Hướng tiếp cận này đặc biệt hiệu quả trong việc sử dụng làm bộ lọc cơ sở để giải quyết một cách tổng quát vấn đề thư rác đòi hỏi độ chính xác cao Tuy nhiên, do đặc điểm của Spam luôn luôn biến đổi nên đòi hỏi chương trình phải thường thường xuyên cập nhật và phân tích các đặc trưng mới của thư rác đưa vào cơ sở dữ liệu Để làm được việc này, cần xây dựng thêm một chương trình tự động thống kê các đặc trưng mới dựa trên nội dung thư
Việc sử dụng bộ dữ liệu spambase.data và sử dụng mạng Neural viết trên ngôn ngữ Matlap để nhận dạng thư rác làm cho bài toán trở lên đơn giản và hiệu quả với chi phí thời gian và công sức ít nhất vì giảm bớt thời gian thu tập và phân loại và xử lý cơ sở dữ liệu do sử dụng bộ dự liệu có sẵn đáng tin cậy
Với kết quả thu được và hướng phát triển tiếp theo, dự định trong thời gian tới sẽ tiến hành thử nghiệm tích hợp chương trình lọc thư rác này vào máy chủ email của trường Đại học Sao Đỏ
TÀI LIỆU THAM KHẢO
[1] A.Gray and M.Haahr Personalised, Collaborative Spam Filtering, Proc Of the
Conference on Email and Anti-spam (CEAS), Mountain View, CA, USA, July 2004
[́́2]J Golbeck and J Hendler, Reputation Network Analysis for Email Filtering Proc Of
the Conference on Email and Anti-Spam (CEAS), Mountain View, CA, USA, July 2004
Trang 9[3] Deborah Fallows, Spam: How it is hurting email and degrading life on the internet,
Technical report, Pew Internet and American Life Project, Oct 2003
[4] M.T.Hagan, H.B Deuth, M.H Beale, Neural Network Design, PWS Publishing
Company, Boston, MA 1996
[5] Lê Minh Trung: Giáo trình Mạng Nơron nhân tạo, Nhà xuất bản Thống kê
[6] Nguyễn Đình Thúc, Trí tuệ nhân tạo Lập trình tiến hóa, Nhà xuất bản Giáo Dục,
2008
[7] Nguyễn Thanh Thủy, Trí tuệ nhân tạo: Các phương pháp giả quyết vấn đề và kỹ thuật
xử lý tri thức, Nhà xuất bản Khoa học và Kỹ thuật, 2007
[8] Spam Filtering Research, http://spamlinks.net/filter-research.htm
ỨNG DỤNG MÔ HÌNH MẠNG NEURAL TRUYỀN THẲNG ĐA LỚP
TRONG BÀI TOÁN NHẬN DẠNG THƯ RÁC
- Đề tài là mô hình mạng neural truyền thẳng đa lớp nhưng trong bài không thấy trong bài trình bày phần mô hình mạng neural truyền thẳng đa lớp trong bài
- Trong bài lúc neural lúc nơ ron
- Bảng biểu để size 14 không
- Trong bài nhiều khoảng trắng
- Nhiều đoạn trình bày chưa thụt lề dòng đầu