Ứ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 Chủ nhật 02032014 16:23 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.
Trang 1Tạp chí Nghiên cứu Khoa học - Đại học Sao Đỏ 21
1 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 [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 Nhằm khắc
Ứ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
Spam detection by feed-forward neural network
* Trường Đại học Sao Đỏ
Ths Hoàng Thị Ngát, Ths Nguyễn Thị Thu, Ths Nguyễn Thị Thanh Bình*
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.
Abstract Now, Spam has become a big problem in the lives of Internet users, causing personal injury and economic losses This paper presents a performance evaluation of different models of artificial neural networks used to automatically classify and filter real spam, based on their contents The results indicate that some of evaluated approaches have a big potential since they are suitable to deal with the problem.
Trang 2phụ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à Spam 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 Spam 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 [4,5]
vì vậy tốn nhiều tài nguyên của hệ thống
Tuy nhiên, hiện nay nội dung và hình thức của Spam thay đổi rất nhanh và đa dạng do đó 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 để giải quyết vấn đề nhận dạng Spam
2 Mô hình mạng neural 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 [1] 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 Spam bằng việc sử dụng mạng neural chỉ tốn thời gian huấn luyệ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 Spam 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 neural 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 Spam với mô hình mạng neural
cần thực hiện qua 3 giai đoạn như sau [1,2,3,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ế
huấn luyện Dữ liệu
Mạng Neural với các tham số khởi tạo ban đầu
Mạng Neural với các tham số đã hiệu chỉnh, có khả năng khái quát hóa
Trang 3Tạp chí Nghiên cứu Khoa học - Đại học Sao Đỏ 23
Giai đoạn 3: Kiểm tra huấn luyện trên mẫu mới
Do 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:
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 neural,
số lượng neural đầ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
3 Thu thập cơ sở dữ liệu
Mộ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…Trong bài báo này nhóm tác giả đi sau phân tích dữ liệu ở dạng văn bản ASCII (plaintext) Bộ dữ liệu chúng tôi sử dụng là bộ dữ liệu spambase
Hình 1 Mô hình mạng neural dẫn tiến đa lớp
Nội dung email 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
Đầu vào
Đầu ra
Trang 4data 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 chuyề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
4 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 Matlab 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 Matlab 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 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
Trang 5Tạ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
Ứ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
Trang 6Chươ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 truyền Hàm training Hàm epoch Số
Số vòng lặp
Thời gian (s)
Tỷ lệ phát hiện Spam
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 truyền Hàm training Hàm epoch Số
Số vòng lặp
Thời gian (s)
Tỷ lệ phát hiện Spam
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, http://spamlinks.net/filter-research.htm.
Trang 7Tạp chí Nghiên cứu Khoa học - Đại học Sao Đỏ 27
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 truyền Hàm training Hàm epoch Số
Số vòng
lặp
Thời gian (s)
Tỷ lệ phát hiện Spam
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 truyền Hàm training Hàm epoch Số
Số vòng
lặp
Thời gian (s)
Tỷ lệ phát hiện
Spam
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, http://spamlinks.net/filter-research.htm.