Ứ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

