Ứ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
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 [6]. 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à những 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ụ Email và những người sử dụng là cần có
các phần mềm nhằm ngăn chặn Spam. Đã có nhiều giải pháp lọc Spam đượ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 Spam 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 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 Spam 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 chí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.
ệm khá nhiều thời gian đồng thời kết quả rất tin cậy. Sau đây là một số hàm mà chúng tôi đã sử dụng trong chương trình: Để khởi tạo một mạng neural trong bài báo này chúng tôi sử dụng hàm newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl},BTF). Với hàm khởi tạo newff cho phép người dùng dễ dàng tạo ra một mạng neural với các véc tơ đầu vào P và véc tơ mục tiêu là T. Trong bài báo này P là một ma trận đầu vào kích thước 57x3601 tương ứng với 3000 véc tơ đầu vào, mỗi véc tơ đầu vào có 57 chiều tương ứng với 57 đặc trưng của Email; T là véc tơ mục tiêu có kích thước 3601x1. S1 đến S(N-1) là số neural của lần lượt từ lớp thứ nhất đến lớp thứ N-1, lớp thứ N được quyết định bởi chiều của véc tơ. S1 đến S(N-1) được nhập trực tiếp từ bàn phím tùy mục đích của người sử dụng. TF1 đến TFN là các hàm truyền lần lượt của các lớp 1 đến lớp N. BTF là hàm huấn luyện của mạng. Sau khi khởi tạo công việc tiếp theo là huấn luyện mạng, trong chương trình này chúng tôi sử dụng hàm huấn luyện mạng [net,tr] train(net,P,T) với net là biến khiển mạng neural đã được khởi tạo, P và T lần lượt là véc tơ đầu vào và véc tơ mục tiêu tương ứng, sau khi hàm train(net,P,T) thực hiện xong, mạng neural mới được lưu vào biến net, mạng này được sử dụng trong hàm T=sim(net,P_test) để kiểm tra đầu ra của mạng tương ứng với một đầu vào, P_test là véc tơ đầu vào, T là véc tơ đầu ra. Như vậy với các hàm kể, cùng với các lệnh căn bản để xử lý dữ liệu và lập trình giao diện trong công cụ GUI chúng ta có thể giải quyết được căn bản bài toán về mạng Neural. Chương trình này cho phép người dùng có thể 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 Spam. Trong 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. NGHIÊN CỨU KHOA HỌC NGHIÊN CỨU KHOA HỌC Tạp chí Nghiên cứu Khoa học - Đại học Sao Đỏ 25 Giao diện chính của chương trình được thiết kế như sau: Hì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 NGHIÊN CỨU KHOA HỌC NGHIÊN CỨU KHOA HỌC ỨNG DỤNG MẠNG NƠRON PHÂN LOẠI THƯ RÁC ỨNG DỤNG MẠNG NƠRON PHÂN LOẠI THƯ RÁC Tạp chí Nghiên cứu Khoa học - Đại học Sao Đỏ26 NGHIÊN CỨU KHOA HỌC NGHIÊN CỨU KHOA HỌC Chương trình đã thử nghiệm nhận dạng Spam 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. Một số kết quả thực nghiệm với mạng neural truyền thẳng hai lớp STT Cấu trúc mạng Hàm truyền Hàm training Số epoch Số vòng lặp Thời gian (s) Tỷ lệ phát hiện Spam 1 10-1 Tansig Trainlm 1000 240 01:22 90% 2 10-1 Tansig Trainrp 1000 239 00:14 85% 3 10-1 Tansig Trainbfg 1000 38 00:09 77.8% 4 10-1 Tansig Trainscg 1000 87 00:09 90.6% 5 10-1 Tansig Traincgb 1000 27 00:04 88.8% 6 10-1 Purelin Trainscg 1000 134 00:14 91.2% 7 10-1 Logsig Trainscg 1000 76 00:08 90% 8 15-1 Purelin Trainscg 1000 53 00:05 88% 9 20-1 Purelin Trainscg 1000 52 00:05 91.2% 10 30-1 Purelin Trainscg 1000 58 00:06 88.2% Bảng thực nghiệm trên cho thấy các kết quả 4, 6, 9 cho kết quả cao nhất với các hàm truyền Tansig, Purelin và hàm huấn luyện Trainscg. Nhóm tác giả tiếp tục thử nghiệm với mạng 3 lớp. Kết quả như sau: Bảng 2. Một số kết quả thực nghiệm với mạng neural truyền thẳng ba lớp STT Cấu trúc mạng Hàm truyền Hàm training Số epoch Số vòng lặp Thời gian (s) Tỷ lệ phát hiện Spam 1 20-10-1 Tansig Trainscg 1000 99 00:12 91% 2 30-10-1 Tansig Trainscg 1000 74 00:10 90.2% 3 20-10-1 Purelin Trainscg 1000 75 00:09 90.2% 4 30-10-1 Purelin Trainscg 1000 159 00:21 90.8% Hình 4. Đồ thị huấn luyện của mạng 5. Kết luận và hướng phát triển Từ kết quả thực nghiệm cho thấy với bộ dữ liệu như trên sử dụng mạng 2 lớp với hàm truyền Tansig hoặc Purelin và hàm huấn luyện Trainscg cho kết quả nhận dạng tốt nhất, trên 90% email được nhận dạng đúng. Với mạng 3 lớp kết quả nhận dạng thấp hơn. Nhóm tác giả cũng đã thử nghiệm với mạng 4 lớp nhưng thời gian huấn luyện rất lâu, tỉ lệ nhận dạng đúng không cao bằng mạng 2 lớp. 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ữ Matlab để 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] Lê Minh Trung, Giáo trình Mạng Nơron nhân tạo, Nhà xuất bản Thống kê [2] 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. [3] 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. [4] 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. [́́5]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. [6] Deborah Fallows, Spam: How it is hurting email and degrading life on the internet, Technical report, Pew Internet and American Life Project, Oct 2003. [7] M.T.Hagan, H.B. Deuth, M.H. Beale, Neural Network Design, PWS Publishing Company, Boston, MA 1996. [8] Spam Filtering Research, filter-research.htm. Tạp chí Nghiên cứu Khoa học - Đại học Sao Đỏ 27 NGHIÊN CỨU KHOA HỌC NGHIÊN CỨU KHOA HỌC Chương trình đã thử nghiệm nhận dạng Spam 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. Một số kết quả thực nghiệm với mạng neural truyền thẳng hai lớp STT Cấu trúc mạng Hàm truyền Hàm training Số epoch Số vòng lặp Thời gian (s) Tỷ lệ phát hiện Spam 1 10-1 Tansig Trainlm 1000 240 01:22 90% 2 10-1 Tansig Trainrp 1000 239 00:14 85% 3 10-1 Tansig Trainbfg 1000 38 00:09 77.8% 4 10-1 Tansig Trainscg 1000 87 00:09 90.6% 5 10-1 Tansig Traincgb 1000 27 00:04 88.8% 6 10-1 Purelin Trainscg 1000 134 00:14 91.2% 7 10-1 Logsig Trainscg 1000 76 00:08 90% 8 15-1 Purelin Trainscg 1000 53 00:05 88% 9 20-1 Purelin Trainscg 1000 52 00:05 91.2% 10 30-1 Purelin Trainscg 1000 58 00:06 88.2% Bảng thực nghiệm trên cho thấy các kết quả 4, 6, 9 cho kết quả cao nhất với các hàm truyền Tansig, Purelin và hàm huấn luyện Trainscg. Nhóm tác giả tiếp tục thử nghiệm với mạng 3 lớp. Kết quả như sau: Bảng 2. Một số kết quả thực nghiệm với mạng neural truyền thẳng ba lớp STT Cấu trúc mạng Hàm truyền Hàm training Số epoch Số vòng lặp Thời gian (s) Tỷ lệ phát hiện Spam 1 20-10-1 Tansig Trainscg 1000 99 00:12 91% 2 30-10-1 Tansig Trainscg 1000 74 00:10 90.2% 3 20-10-1 Purelin Trainscg 1000 75 00:09 90.2% 4 30-10-1 Purelin Trainscg 1000 159 00:21 90.8% Hình 4. Đồ thị huấn luyện của mạng 5. Kết luận và hướng phát triển Từ kết quả thực nghiệm cho thấy với bộ dữ liệu như trên sử dụng mạng 2 lớp với hàm truyền Tansig hoặc Purelin và hàm huấn luyện Trainscg cho kết quả nhận dạng tốt nhất, trên 90% email được nhận dạng đúng. Với mạng 3 lớp kết quả nhận dạng thấp hơn. Nhóm tác giả cũng đã thử nghiệm với mạng 4 lớp nhưng thời gian huấn luyện rất lâu, tỉ lệ nhận dạng đúng không cao bằng mạng 2 lớp. 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ữ Matlab để 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] Lê Minh Trung, Giáo trình Mạng Nơron nhân tạo, Nhà xuất bản Thống kê [2] 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. [3] 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. [4] 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. [́́5]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. [6] Deborah Fallows, Spam: How it is hurting email and degrading life on the internet, Technical report, Pew Internet and American Life Project, Oct 2003. [7] M.T.Hagan, H.B. Deuth, M.H. Beale, Neural Network Design, PWS Publishing Company, Boston, MA 1996. [8] Spam Filtering Research, filter-research.htm.
File đính kèm:
- Ứ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.pdf