4. Phạm vi ứng dụng
2.5. Các thuật giải áp dụng cho quá trình lọc thư spam
2.5.1. Giải thuật xác định kích thước
Giải thuật này cung cấp trọng số phụ cho các token trong tập dữ liệu dataset dựa trên độ tin cậy của token. Một token cĩ thể cĩ xác xuất 0.9500, nhưng điều đĩ khơng nĩi lên nhiều về những quyết định được ra trước đĩ cĩ liên quan đến token đĩ, ví dụ giá trị của token cĩ thể đến từ hàng trăm bộ phân lớp chính xác của
(4)
(5)
spam hoặc nĩ cĩ thể được điều chỉnh giá trị từ việc huấn luyện lại hàng giờ vì bị lỗi. Nếu một token cĩ liên quan đến nhiều bộ phân lớp lỗi trong quá khứ, khơng chỉ muốn token này được đánh trọng số khác với các token được tin cậy, mà cịn muốn khi token này xuất hiện trong thơng điệp đĩ nĩ cịn cho ta biết kết quả chúng ta tạo ra cĩ thể cĩ sai số cao.
Giải thuật xác định kích thước được thiết kế để làm giảm tập đặc trưng bằng việc xác định các đặc trưng cĩ ít hiệu quả nhất trong việc xác định spam một cách
chính xác. Điều này được thực hiện bằng việc bỏ đi những token trong ma trận
quyết định nếu nĩ khơng đáng tin cậy để đưa ra quyết định. Để biết được mức độ lệch trên kết quả, cần phải tính độ lệch phân lớp sai. Tính tốn này khác với cách xác định xác suất của token, nhưng chúng cùng dựa vào cùng một dữ liệu. Giải thuật xác định kích thước cũng cĩ thể được dùng để tăng tập đặc trưng cùng lúc với việc rút gọn chúng. Tìm nhiều token khơng tin cậy để bỏ đi từ ma trận quyết định, các từ trung tính cĩ tiền sử rất khơng được tin cậy là mục tiêu chính trong quá trình này.
Ví dụ từ “sell” cĩ thể xuất hiện trong spam và email hợp lệ với xác suất gần bằng nhau 50 phần trăm, token này thường khơng xuất hiện trong ma trận quyết định để xác định kết quả của thơng điệp đang xét, bởi vì nĩ trung tính. Nếu token
này được nhận biết với số lần lớn bị phân lớp nhằm là spam, nĩ khơng chỉ ảnh
hưởng đến độ tin cậy của bộ lọc mà cịn ảnh hưởng đến khuynh hướng thực sự của
thơng điệp khi token này xuất hiện. Khi một số lượng lớn các token trong thơng
điệp được tìm thấy trước đây trong các thơng điệp bị phân lớp sai, bộ lọc sẽ nhận biết nĩ khơng tin cậy vào kết quả và cĩ cách đặc biệt để đo kích thước quyết định của nĩ.
Bước đầu tiên trong xác định độ tin cậy của mỗi token trong tập dữ liệu dataset là giữ 4 bộ đếm phụ cho mỗi token: Số lần token xuất hiện trong phân lớp sai của spam và trong phân lớp sai của email hợp lệ, và số phân lớp đúng và sai xảy ra khi token xuất hiện trong thơng điệp.
2.5.2. Giải thuật giảm nhiễu Bayesian (Bayesian Noise Reduction)
Giải thuật giảm nhiễu Bayesian (BNR) là một kỹ thuật mới được Jonathan A. Zdziarski thiết kế nhằm mục đích cung cấp “bộ não từ vựng” (lexical brain) cho bộ lọc thơng minh hơn cho phép bộ lọc cĩ cách nhìn ngơn ngữ tương tự
như sự hiểu biết của con người. Để hình thành những khái niệm này, sẽ đưa vào
một số phần mà bộ lọc spam hiện tại khơng cĩ đĩ là ngữ cảnh (context). Xem giảm nhiễu Bayesian như là một cách xác định những từ “ngồi ngữ cảnh”. Ví dụ nếu chúng ta cĩ cuộc đàm thoại trực tiếp và nĩi một điều gì đĩ ngồi ngữ cảnh câu chuyện đĩ, cĩ thể cĩ nghĩa hoàn tồn khác và dễ dàng dẫn đến hiểu nhằm. Vấn đề này đưa vào phân lớp ngơn ngữ, ở đĩ một token được sử dụng trong một ngữ cảnh này, nhưng nĩ lại được sử dụng hồn tồn trái ngược khi ở ngữ cảnh khác. Các bộ lọc ngày nay khơng cĩ cách nào để xử lý với những từ và cụm từ ngồi ngữ cảnh như thế, bởi vì nĩ khơng biết ngữ cảnh đĩ là gì.
BNR xác định dữ liệu ngồi ngữ cảnh bằng việc tạo ra ngữ cảnh cho riêng nĩ, nĩ tạo ra chuỗi ngữ cảnh giả xung quanh text đã cĩ (tên, thân của thơng điệp) và sau đĩ xác định dữ liệu mâu thuẩn với chính nĩ trong ngữ cảnh mà nĩ tạo ra.
2.5.3. Thuật tốn dựa trên luật RIPPER
Thuật tốn phân lớp text RIPPER rất phổ biến trong lĩnh vực phân loại email tự động. Sự khác biệt của RIPPER so với những luật lọc chuẩn là RIPPER cĩ thể được sử dụng để phát sinh tự động những luật đánh dấu từ khĩa (keyword – sporting) này, ngược lại với phương pháp truyền thống là tạo bằng tay.
RIPPER cĩ nhiều ưu điểm, nĩ là một trong một số ít những thuật tốn máy học cĩ khả năng xử lý được với text tự nhiên, tốc độ xử lý nhanh và cĩ khả năng xử lý tập đặc trưng lớn, kết xuất của RIPPER là một tập các luật lọc chuẩn cĩ thể được sử dụng để phân biệt các lớp text khác nhau. Điều này cĩ nghĩa là các luật của nĩ cĩ thể dễ dàng được tích hợp, ưu điểm nữa của việc phát sinh các luật đánh dấu từ khĩa là ở chỗ chúng cĩ thể kiểm tra được, vì vậy chúng cĩ thể được người dùng kiểm tra để tìm ra cái mà người dùng đang nghĩ, khả năng này khơng cĩ với các thuật tốn máy học khác.
Hạn chế của RIPPER như việc sử dụng các luật cơ bản làm kỹ thuật để lọc email là khơng rõ ràng, các luật đánh giá từ khĩa phải được xây dựng cho mọi nhĩm cĩ khả năng xảy ra, và nĩ dễ dàng bị phát hiện. Chúng cũng rất dễ bị giới hạn bởi các luật nhị phân; chúng khơng đưa vào tính tốn số lượng các từ trong một tài liệu, chỉ cĩ sự hiện diện hay cĩ mặt của một từ khĩa. Do chúng chỉ thực hiện các quyết định nhị phân, chúng khơng thể kết hợp một cách đánh giá riêng vào trong dự báo của chúng, điều này là rất quan trọng nếu các luật dành cho những nhĩm khác nhau đang đối lập nhau đối với quyền sở hữu một thơng điệp. Các đánh giá riêng là cũng quan trọng đối với các trường hợp trong đĩ khơng cĩ nhĩm nào cĩ vẻ thích hợp với thơng điệp, trong những trường hợp này, sẽ muốn rằng phải cĩ một nhĩm nào đĩ chấp nhận thơng điệp.
Giải pháp để giải quyết tốt nhất trong trường hợp này là chuyển thơng điệp khơng cĩ khả năng phân lớp này vào một nhĩm chung để người dùng cĩ thể kiểm tra bằng tay sau đĩ. Một hệ thống dựa trên luật khơng thể học tăng cường được. Bất kỳ khi nào nội dung của một lớp nào đĩ bị thay đổi, các luật sẽ cần phải được phát sinh lại từ đầu để cập nhật lại thơng tin, và điều này cĩ thể dẫn đến việc chiếm dụng CPU khơng cần thiết, trong một mơi trường xây dựng dựa trên các máy chủ lớn, khi cĩ nhiều người dùng phân loại thư của mình thì cĩ thể dẫn đến quá tải máy chủ.
CHƯƠNG 3: XÂY DỰNG BỘ LỌC SPAM DỰA TRÊN
PHƯƠNG PHÁP THỐNG KÊ VÀ KỸ THUẬT NẠVE BAYES 3.1. Tổng quan mạng Bayes
3.1.1. Giới thiệu mạng Bayes
Mạng Bayes là một dạng của mơ hình đồ thị theo xác suất. Về mặt cấu trúc, mạng Bayes là một đồ thị khơng cĩ vịng trực tiếp với các nút biểu diễn các biến và các cung biểu diễn các mối quan hệ phụ thuộc giữa các biến (các nút). Một cung từ nút A tới một nút B khác được gọi: A là cha của B. Một nút cĩ thể biểu diễn bất cứ kiểu biến ngẫu nhiên nào.
Một mạng Bayes với các tham biến là một biểu diễn đồ thị phân bố kết nối trên tất cả các biến được biểu diễn bởi các nút trong đồ thị. Nếu các biến là X1, ... , Xn và “parents(A)” là các cha của nút A, thì phân bố kết nối cho X1 tới Xn được biểu diễn dưới dạng kết quả của phân bố [1]
( , … , ) = ( | ( )) = 1 (7)
Để chỉ ra một cách đầy đủ mạng Bayes và thực hiện các tính tốn số, cần phải chỉ rõ thêm cho mỗi nút X phân bố xác suất cho điều kiện X trên các cha của nĩ. Theo cách này, một mạng Bayes cĩ thể được sử dụng để thực hiện bất cứ suy diễn theo xác suất nào trên các biến miền.
Sử dụng quan trọng khác của mạng Bayes là mơ hình, với cấu trúc của mạng Bayes được sinh ra bởi phần mềm. Nghiên cứu cấu trúc mạng Bayes là một phần rất quan trọng của máy học. Để tìm cấu trúc mạng, một hàm điểm số sẽ được tối đa qua một giải thuật tìm kiếm.
Các mạng Bayes được sử dụng để mơ hình tri thức trong nhiều miền với tri thức khơng chắc chắn như y khoa, thiết kế máy, phân tích văn bản, xử lý ảnh, hợp nhất dữ liệu, hệ thống hỗ trợ quyết định và lọc spam
3.1.2. Mơ hình chi tiết Naive Bayes
Naive Bayes là một mạng Bayes đơn giản nhất trong đĩ một nút cha được chứa trong mạng và tất cả các biến khác là con của nút cha. Nếu biến cha là ‘Xp’, thì cơng thức phân bố kết nối trong trường hợp đĩ như sau:
, , … , = ( = 1 (8)
Một bộ phân lớp Naive Bayes là một bộ phân lớp theo xác suất đơn giản. Lợi ích chính là bộ phân lớp Naive Bayes cĩ thể được huấn luyện rất hiệu quả bằng việc học cĩ giám sát.
3.1.3. Ưu điểm của bộ lọc thư rác Bayes
Phương pháp Bayes nhận dạng một thư điện tử dựa vào các mơ tả, nĩ nhận ra các từ khĩa mà những từ đĩ cĩ thể nhận dạng một thư rác (spam) và cũng nhận ra các từ chứng tỏ một thư điện tử hợp lệ (ham). Ví dụ khơng phải tất cả các thư điện tử cĩ chứa các từ như “free” hay “cash” đều là thư rác. Phương pháp Bayes sẽ tìm kiếm các từ “free”, “cash” nhưng nĩ cũng nhận ra tên của người gửi thơng điệp và theo cách phân loại đĩ một thơng điệp là hợp lệ, với các từ khác máy lọc Bayes là một phương pháp tiếp cận khá thơng minh bởi vì nĩ nghiên cứu tất cả các khía cạnh của một thư điện tử như phản đối việc kiểm tra từ khĩa mà nĩ nhận dạng được một thư điện tử là thư rác trên cơ sở một từ đơn.
Bộ lọc Bayes liên tục tự thích nghi bởi sự học tập từ các thư rác mới và các thư điện tử hợp lệ đến từ bên ngồi, bộ lọc Bayes giải quyết và thích nghi với các cơng nghệ lọc thư rác kiểu mới. Lấy ví dụ khi một người tạo thư rác sử dụng từ “f-r-e-e” để thay thể cho “free” chúng rất thành cơng trong việc tránh kiểm tra các từ khĩa đến tận khi “f-r-e-e” cũng được bao hàm trong các từ khĩa của cơ sở dữ liệu. Mặt khác cũng cĩ thể sử dụng “5ex” thay thế cho “sex”. Khơng thể cĩ từ 5ex trong một thư hợp lệ và sau đĩ cĩ khả năng xảy ra là các thư rác cĩ thể tăng lên.
Cơng nghệ lọc thư bằng Bayes rất nhạy cảm với người sử dụng, nĩ học các thĩi quen của các thư điện tử trong cơng ty. Máy lọc thư rác sử dụng thuật tốn Naive Bayes cung cấp một chức năng lọc thư tự rác tự động. Trên cơ sở sử dụng các xác suất gần đúng để tính tốn các khả năng một thư điện tử cĩ thể là thư rác hay khơng. Sự tính tốn này là quá trình tìm kiếm các từ thường xuất hiện trong các thư điện tử và so sánh chúng với tập mẫu. Thuật tốn bắt đầu bằng việc học các nội dung của các thư điện tử hợp lệ và nội dung của những thư rác. Để sau đĩ khi nhận vào một
thư điện tử mới, các thơng tin cĩ sẵn từ tập mẫu, các tiến trình tiền xử lí trước sẽ được áp dụng trên cơ sở nội dung của các thư điện tử.
3.2. Quy trình phân tích tổng quát
3.2.1. Phân tích đặc điểm chung của thư spam
3.2.1.1. Phần Header của thư spam
Phần này cung cấp những thơng tin tổng quát về Email như người nhận, người gửi, ngày giờ nhận...
Cấu tạo gồm nhiều trường (field) cấu trúc mỗi trường là một dịng văn bản ASCII chuẩn 7 bit như sau: <tên trường >: <nội dung của trường>.
Sau đây là một số trường thơng dụng và ý nghĩa của nĩ: + Date: chỉ ngày giờ nhận mail.
+From: chỉ người gửi. + To: chỉ người nhận.
+ Cc: chỉ người những nhận bản copy của mail.
+ Bcc: chỉ ra những người nhận bản copy của bức mail, nhưng từng người khơng biết những người nào sẽ nhận bức thư này
+ Return-path: chứa các thơng tin để người nhận cĩ thể trả lời lại (thường nĩ chính là địa chỉ người gởi).
+ Subject: chủ đề của nội dung Email.
Các trường trên là các trường chuẩn do giao thức SMTP quy định, ngồi ra trong phần header cũng cĩ thể cĩ thêm một số trường khác do chương trình Email tạo ra nhằm quản lý các email mà chúng tạo. Các trường này được bắt đầu bằng ký tự X- và thơng tin theo sau là cũng giống như ta thấy trên một trường chuẩn
3.2.1.2. Phần thân của thư spam
Để phân biệt phần tiêu đề và phần nội dung của thư điện tử, người ta qui ước đặt ranh giới là một dịng trắng (chuỗi ký tự “\r\n”). Kết thúc của phần nội dung là chuỗi ký tự kết thúc thư: “\r\n.\r\n”. Như vậy nội dung của một thư điện tử nằm trong khoảng giữa dịng trắng đầu tiên và ký tự kết thúc thư, và trong phần nội dung của bức thư khơng được phép tồn tại chuỗi ký tự kết thúc. Mặt khác do mơi trường
truyền thơng là mạng Internet nên các ký tự cấu thành phần body của bức cũng phải là các ký tự ASCII chuẩn.
Khi xem xét cấu trúc của một thư điện tử (dựa trên RCF 822) thường xét hai phần: phần đầu thư (header) và phần thân thư (body). Phần đầu thư chứa các thơng tin điều khiển cần thiết như là địa chỉ người gửi, người nhận, ngày gửi, chủ đề của thư…
From :TenNguoiGui@TenMienNguoiGui.com To : TenNguoiNhan@TenMienNguoiNhan.com
Subject: Thu Nghiem
Day la phan noi dung cua e-mai thu nghiem. Ví dụ:
From: huutiep@lhu.edu.vn
Subject: Hello every body ! To: everybody@lhu.edu.vn
--- Dear everybody,
I’m Phan Huu Tiep, I’m a last year student….
Mỗi hệ điều hành sẽ cĩ các chương trình email khác nhau mặc dù chúng đều cĩ nguyên lý như nhau.
3.2.2. Phân loại thư rác tiếng Việt và thư rác tiếng Anh
Đối với một người sử dụng tài khoản thư điện tử tại Việt nam (đuơi .vn), ngồi thư điện tử tiếng Việt bao gồm thư rác và thư bình thường cịn cĩ thư tiếng Anh cũng bao gồm cả thư rác và thư bình thường (chưa kể tới thư bằng ngoại ngữ khác). Như vậy giải pháp lọc thư cần cho phép xử lý cả thư tiếng Anh và tiếng Việt. Cĩ thể cĩ hai cách giải quyết vấn đề này.
Cách thứ nhất là phân chia thư nhận được thành tiếng Anh và tiếng Việt, sau đĩ tiến hành phân loại thư tiếng Anh riêng và thư tiếng Việt riêng. Tất nhiên, cĩ thể cĩ
trường hợp trong một thư cĩ cả tiếng Việt và tiếng Anh nhưng tỷ lệ này khơng
Cách thứ hai là xây dựng một bộ phân loại chung cho cả tiếng Anh và tiếng Việt. Cách thứ hai đơn giản hơn nhưng cĩ thể gặp vấn đề khi lựa chọn tham số k để tách các k-gram.
Nếu sử dụng cách thứ nhất thì xuất hiện một vấn đề cần giải quyết là phân biệt thư tiếng Anh và thư tiếng Việt. Mặc dù cĩ những giải pháp phức tạp hơn được đề xuất cho vấn đề này, ở đây chúng tơi sử dụng một giải pháp rất đơn giản. Khi lựa chọn đặc trưng, các đặc trưng được đánh dấu riêng tiếng Việt hoặc tiếng Anh và lưu vào bảng băm. Khi một thư xuất hiện, 20 đặc trưng đầu tiên của thư sẽ được băm vào bảng tiếng Việt và tiếng anh. Nếu số lượng băm trúng trong bảng tiếng Việt lớn
hơn bảng tiếng Anh thì thư được coi là thư việt và ngược lại. Tuy nhiên, đối với