Điều này có nghĩa làdo đó có thể được thể hiện như: Điều này có nghĩa là dưới sự độc lập giả định ở trên, các điều kiện phân phối trên các lớp học biến C có thể được thể hiện: ở đây Z là
Trang 2ục lục
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1 Phát biểu định lý Bayes 4
2 Các mô hình xác suất bayes 4
3.Xây dựng một classifier từ mô hình xác suất 6
4 Thuật toán phân loại văn bản Naive Bayes classifier 7
CHƯƠNG 2: PHÁT BIỂU VẤN ĐỀ 11
1 Đặt vấn đề 11
2 Bài toán 12
3 Dùng luật Bayes tính xác suất 12
4 Huấn luyện cho bộ lọc Bayes 14
CHƯƠNG 3: KẾT QUẢ VÀ ỨNG DỤNG 15
TÀI LIỆU THAM KHẢO 18
PHỤ LỤC 19
I DỮ LIỆU BAN ĐẦU 19
II CHẠY TẬP HUẤN LUYỆN 20
III TIẾN HÀNH KIỂM TRA MAIL SPAM 22
IV KẾT QUẢ 26
Trang 3MỞ ĐẦU
Thống kê (toán học) là bộ môn học rất quan trọng và có nhiều ứng dụng to lớn trong thực tế, giúp con người rút ra thông tin từ dữ liệu quan sát, nhằm giải quyết các bài toán thực tế trong cuộc sống
Trong đồ án này trình bày về một tiếp cận thống kê trong việc dự đoán sự kiện dựa vào lý thuyết Bayes Lý thuyết này nói về việc tính xác suất của sự kiện dựa vào các kết quả thống kê các sự kiện trong quá khứ Sau việc tính toán mỗi sự kiện được gán xác xuất hay điểm (tùy vào mỗi phương pháp đánh giá) ứng với khả năng
có thể xảy ra với sự kiện đó Và cuối cùng dựa vào ngưỡng để phân loại cho các sựkiện
Sau phần lý thuyết chúng ta sẽ tìm hiểu về bài toán thực tế trong ngành công nghệ thông tin Bài toán về việc lọc thư rác tự động Giải quyết bài này là sự kết hợp từ rất nhiều phương án như DNS Blacklist, kiểm tra người nhận, người gửi, dùng bộ lọc Bayes, chặn địa chỉ IP, Blacklist/Whitelist, Dùng bộ lọc Bayes là phương án thông minh nó gần gũi với người dùng bởi chính người dùng đã huấn luyện nó nhận biết thư rác Đồ án này tập trung vào việc tìm hiểu bộ lọc thư rác Bayesspam – mã nguồn mở, cài đặt cho hệ thống email có tên là SquirrelMail – mãnguồn mở đang được dùng cho hệ thống email của các trường đại học Kết quả chothấy bộ lọc có mức độ hoạt động hiệu quả là khác nhau tùy thuộc việc người dùng huấn luyện cho bộ lọc thông qua các thư điện tử mà họ cho là thư rác nhưng nói chung bộ lọc đã đem lại hiệu quả khá tốt
Trang 4CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1 Phát biểu định lý Bayes
Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết
sự kiện liên quan B đã xảy ra Xác suất này được ký hiệu là P(A|B), và đọc là "xác suất của A nếu có B" Đại lượng này được gọi xác suất có điều kiện hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc phụ thuộc vào giá trị đó
Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:
Xác suất xảy ra A của riêng nó, không quan tâm đến B Kí hiệu là P(A) và đọc là xác suất của A Đây được gọi là xác suất biên duyênhay xác suất tiên nghiệm, nó là
"tiên nghiệm" theo nghĩa rằng nó không quan tâm đến bất kỳ thông tin nào về B.Xác suất xảy ra B của riêng nó, không quan tâm đến A Kí hiệu là P(B) và đọc là
"xác suất của B" Đại lượng này còn gọi là hằng số chuẩn hóa (normalising
constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện A đang muốn biết.Xác suất xảy ra B khi biết A xảy ra Kí hiệu là P(B|A) và đọc là "xác suất của B nếu có A" Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy
ra Chú ý không nhầm lẫn giữa khả năng xảy ra A khi biết B và xác suất xảy ra A khi biết B.Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức:
2 Các mô hình xác suất bayes
Tóm lại, các mô hình xác suất cho một classifier là một mô hình có điều kiện đối với một biến lớp phụ thuộc C với một số lượng nhỏ của các kết quả hay các lớp học, phụ thuộc vài biến đặc trưng F1 cho tới F n
Trang 5Vấn đề là nếu số các đặc trưngn là lớn hay khi một đặc trưng có thể chiếm một số lượng lớn các giá trị, sau đó dựa vào một mô hình trên các bảng xác suất là không thể làm được Do vậy, chúng ta công thức hóa lại các mô hình để dễ xử lý.
Bằng cách sử dụng định lý Bayes, có được:
Trong thực hành, chỉ cần quan tâm tới tử số của phân số, khi mà mẫu số không phụthuộc vào C và các giá trị của các đặc trưng của Fi đã cho, nên mẫu số là hằng thựcsự
Tử số tương đương với mô hình xác suất có thể được viết lại như sau, sử dụng địnhnghĩa của xác suất có điều kiện:
Trang 6Bây giờ giả định "naive" giả định có điều kiện độc lập đưa vào: giả định rằng mỗi đặc trưng Fi có điều kiện độc lập với tất cả các đặc trưng Fjchoj # i Điều này có nghĩa là
do đó có thể được thể hiện như:
Điều này có nghĩa là dưới sự độc lập giả định ở trên, các điều kiện phân phối trên các lớp học biến C có thể được thể hiện:
ở đây Z là một nhân tố xác định tỷ xích phụ thuộc vào F1, F2, , Fn, chẳng hạn một hằng số nếu các giá trị của các biến đặc trưng đều được biết
Nếu có k lớp học và nếu một mô hình cho p(Fi) có thể được thể hiện trong các thuật ngữ của r tham số, sau đó các mô hình naive Bayes tương ứng có (k- 1) +nrk tham số Trong thực tế, thường k = 2 (phân loại nhị phân) và r = 1 (các biến
Bernoulli như là các đặc trưng) được phổ biến, và như vậy tổng số lượng các tham
số của mô hình naive Bayes là2n + 1,ở đây n là số các đặc trưng nhị phân sử dụng cho các dự đoán
3.Xây dựng một classifier từ mô hình xác suất
Các thảo luận cho đến nay đã bắt nguồn những mô hình đặc trưng độc lập, có
Trang 7nghĩa là, mô hình xác suất naive Bayes Naive Bayes classifier kết hợp mô hình này
với một luật quyết định Là một luật chung để chọn nhiều nhất các giả thuyết có khả
năng xảy ra, điều này được biết đến như là maximum a posteriori hay luật quyết
định
MAP Classifier tương ứng là chức năng phân lớp được xác định như sau:
Một chú ý rằng giả định độc lập có thể dẫn đến một số kết quả không mong
muốn trong tính toán sau xác suất Trong một số trường họp khi có một phụ thuộc giữa
sự quan sát, xác suất kể trên có thể mâu thuẫn với xác suất tiền đề thứ hai do mọi xác
suất luôn nhỏ hơn hoặc bằng một
Mặc dù rằng sự thật có thể áp dụng rộng rãi, giả định độc lập thường không chính xác, các naive Bayes classifier có vài thuộc tính làm cho nó hữu ích trong thựchành Đặc biệt thực hành, sự tách riêng của lớp có điều kiện phân loại đặc trưng cónghĩa là mỗi phân loại có thể được ước tính độc lập như là một phân phối một chiều
Toàn bộ classifier là mạnh đủ để bỏ qua các thiếu sót nghiêm trọng của nó trongnhững mô hình xác suất naive
Trang 84 Thuật tốn phân loại văn bản Naive Bayes classifier
Kĩ thuật phân hoạch của Naive Bayes dựa trên cơ sở định lí Bayes và đặc biệt phù hợp cho các trường hợp phân loại cĩ kích thước đầu vào là lớn Mặc dù Nạve Bayes khá đơn giản nhưng nĩ cĩ khả năng phân loại tốt hơn rất nhiều phương phápphân hoạch phức tạp khác Với mỗi loại văn bản, thuật tốn Naive Bayes tính cho mỗi
lớp văn bản một xác suất mà tài liệu cần phân hoạch cĩ thể thuộc loại đĩ Tài liệu đĩ
sẽ được gán cho lớp văn bản nào cĩ xác suất cao nhất
Xác suất P (ck| di) gọi là xác suất mà tài liệu di cĩ khả năng thuộc vào lớp văn
bản Ck được tính tốn như sau:
tài liệu di sẽ được gán cho loại văn bản nào cĩ xác suất hậu nghiệm cao nhất
nên được biểu diễn bằng cơng thức:
trong đĩ N là tổng số tài liệu
Tĩm lại phân loại văn bản sử dụng thuật tốn Naive Bayes cĩ thể diễn đạt một cách ngắn gọn như sau:
Với mỗi văn bản D (document), người ta sẽ tính cho mỗi loại một xác
suất mà tài liệu D cĩ thể thuộc vào lớp tài liệu đĩ bằng việc sử dụng luật Bayes:
Trang 9Trong đó: D là tài liệu cần phân loại, Ci là một tài liệu bất kì Theo giả định
của Naive Bayes xác suất của mỗi từ trong tài liệu D là độc lập với ngữ cảnh xuất hiện
các từ đồng thời cũng độc lập với vị trí của các từ trong tài liệu Xác suất P(D |Cj)được tính toán từ tần suất xuất hiện của các từ đơn wi (word) trong tài liệu D
1 là tổng số từ w trong tài liệu D:
Như vậy biểu thức (1) có thể được viết lại như sau:
Giá trị lớn nhất của xác suất P(Cj | D ) được đưa ra bởi nguời làm công tác phân loại Giá trị này được gọi là ngưỡng hay ranh rới giữa các lớp văn bản mà chúng cóthể chứa tài liệu D
Ví dụ: Phân loại thư điện tử bằng Naive Bayes classifier
Đây là một ví dụ về làm việc naive Bayesian để phân loại các tài liệu phân loạivấn đề Xem xét các vấn đề của phân loại các tài liệu theo nội dung của họ, ví dụ vào
thư rác và không phải là thư rác trong các thư điện tô Hãy tưởng tượng rằng các tài
Trang 10liệu được lấy ra tò một số lớp học của các tài liệu có thể làm mô hình như là bộ cáctừ
mà ở đây xác suất từ thứ i của một tài liệu xảy ra trong một tài liệu từ lớp c có thể
được viết như:
Xử lý như vậy đã đơn giản các ý tưởng, hơn nữa bằng cách giả sử rằng xác suấtcủa một tò trong một tài liệu là độc lập với chiều dài của một tài liệu hoặc tất cả các tài
liệu cùng một chiều dài
Sau đó, xác suất của một tài liệu D, cho một lớp học c, là
Câu hỏi mà mong muốn có câu trả lời là: "xác suất nào để một tài liệu D thuộc
về một lớp học C?" Nói cách khác, P ( C | D ) ?
Bây giờ, theo định nghĩa:
và
Nên có:
Trang 11Giả định rằng thời điểm chỉ có hai lớp học, s và s (ví dụ như thư rác và
không phải là thư rác)
Bằng cách sử dụng các kết quả Bayesian trên, có thể viết:
Do đó:
Vì vậy có thể viết:
Và như vậy
Trang 12Cuối cùng, các tài liệu có thể được phân loại như sau:
khoảng cách về địa lý nữa thì sẽ có rất nhiều người phải chịu sự bực tức, cảnh nhàm
chán gây ức chế tâm lý và cực kỳ mất thời gian vào nó
- Phần lớn các thư không mời mà đến, các thư chào hàng quảng cáo bị cho là thư rác theo nhận xét của số đông người dùng thư điện tử Đây là vấn đề nan giải mà các hệ thống, hòm mail, các nhà quản trị mạng đang phải đối mặt trong thời điểm hiện nay khi mà xã hội thông tin ngày càng phát triển với tốc độ chóng mặt Đe lọc
và phát hiện thư rác, cần có giải pháp lâu dài như các biện pháp kĩ thuật, quy ước
xã hội và có thể dùng đến pháp luật Nhưng khi các giải pháp này được thi hành thìchỉ trong một khoảng thời gian ngắn chúng đã bị phá vỡ bởi các spammer, nguyên nhân chính là họ luôn nghĩ ra những cái bẫy đánh lừa người dùng hay lách luật mà các tổ chức chống thư rác quy ước
- Như vậy giải pháp ngăn chặn thư rác nào hiệu quả và dùng được lâu dài? Mộtphương pháp tốt nhất đó là để chính người dùng thư điện tô ngăn chặn thư rác, bởi họ
Trang 13hiểu vấn đề một cách tường minh nhất Chúng ta sẽ dùng cảm nhận về thư rác của mỗi người để huấn luyện cho các bộ lọc thư rác của chính họ Mỗi bộ lọc sẽ xử lý thư rác tùy theo phong cách của từng người dùng thư điện tử Và mô hình thống kêBayes được áp dụng để thực thi ý tưởng này Từ những đặc điểm trên, ta thấy rằng việc xây dựng được một bộ lọc thư rác thông minh có thể loại bỏ một cách chính xác hiện nay là một nhiệm vụ còn nhiều thách thức.
2 Bài toán
- Thư điện tử là một trong những phương tiện để giao tiếp đáng tin cậy và hầunhư không tốn kém chi phí sử dụng Phạm vi sử dụng của nó rộng khắp trên toàn thế
giới và có thể dễ dàng truy cập bằng hầu hết các phương tiện truyền thông đã biến nó
thành nạn nhân của những kẻ spam Hậu quả đơn giản nhất là làm tốn băng thôngmạng và nghiêm trọng hơn là làm mất thời gian của người dùng thư điện tử, làm lan
truyền vi rút máy tính Có thời điểm người ta thống kê được rằng có đến 60% thư điện tà là thư rác và mỗi ngày một người dung thư điện tử phải nhận ít nhất là 6 cú spam
- Chúng ta không thể đổi địa chỉ hòm thư mỗi lần bị spam bởi điều này không những không hạn chế được thư rác mà có khi còn làm cho nó gia tăng Vậy cần phải tìm ra một giải pháp chống thư rác sử dụng bộ lọc được gắn thuật toán phân loại với tính năng hiệu quả và kĩ thuật đơn giản dễ cài đặt Và một yêu cầu không thể thiếu là
có làm sao với thuật toán đó những kẻ spam hiểu rằng việc chúng cố tình spam là vô
dụng
3 Dùng luật Bayes tính xác suất
Tính xác suất cho mỗi thẻ ta dùng luật Bayes để tính Giả sử ta cần tính xác
suất cho thẻ chứa tò ‘promotion ’.Từ này chúng ta thường xuyên gặp trong thư điện
tử mời chào dịch vụ maketing Công thức tính theo luật Bayes:
Trong đó:
Trang 14 P(W \S) là xác suất mà từ "promotion" xuất hiện trong thư rác
Pr(H) là xác suất mà một bản tin bất ki không là thư rác
P(W \H) là xác suất mà từ "promotion" xuất hiện trong thư rác
Như đã nói ở trên, những thống kê gần đây cho thấy 80% thư điện tử là thư rácnên ta sẽ có:
Tuy nhiên để cho đơn giản và đã qua thực tế nên người ta chọn các xác suất
trước là giống nhau và đều có giá trị bằng 0.5 Tức là:
Bộ lọc mà dùng giả thiết này được gọi là "không đổi xứng", có nghĩa rằng chúng
không có sự đối xử phân biệt các thư đến Giả thiết này cho phép rút gọn côngthức ở trên thành:
Bộ lọc thư rác Bayesspam vận dụng chính xác công thức trên để tính xác suấtcho mỗi từ đơn
Sau khi đã tính được xác suất thư chứa từ đơn là thư rác ta cần kết hợp các xác suấtđơn đó lại thành một xác suất cuối cùng Xác suất này dùng để đánh giá thư mà chứa tất cả các từ đơn đó có xác suất là thư rác là bao nhiêu Công thức tính xác suất
kết hợp là:
Trong đó:
p là xác suất thư đang xét là thư rác
pl là xác suấtp(S\ W1), ứng với từ đầu tiên (ví dụ từ "promotion")
p2 là xác suấtp(S\ W2) , ứng với từ thứ hai (ví dụ tò "offer")
pN là xác suất p(S|W N), ứng với từ thứ N (ví dụ tò "home")
Kết quả p thường được dùng so sánh với một ngưỡng nào đó để quyết định
thư đang xét có xác suất p đó có là thư rác hay không Neu p lớn hơn giá trị
Trang 15thư đó sẽ bị đánh dấu là thư rác, ngược lại sẽ không bị đánh dấu là thư rác
4 Huấn luyện cho bộ lọc Bayes
Sử dụng hai tập thư điện tà huấn luyện, một tập là thư rác và tập còn lại khôngphải là thư rác Mỗi tập chứa khoảng 4000 thư Đem số lần xuất hiện của mỗi thẻ
trong mỗi tập thư điện tử Mỗi lần đếm kết thúc với hai bảng băm Mỗi bảng băm
tương ứng với mỗi tập thư điện tử, bảng này là ánh xạ các thẻ đến số lần xuất hiện của thẻ đó
Tiếp theo chúng ta tạo ra bảng băm thứ 3, bảng băm này ánh xạ mỗi thẻ tới
xác suất mà một email chứa nó là email spam Ta tính theo công thức sau đây
Trong đó:
N good ứng với số thư không phải là thư rác.
N bad ứng với số thư là thư rác.
Công thức trên được diễn tả theo các biểu thức của ngôn ngữ Arc Mỗi biểu
thức là một cặp dấu ngoặc đơn Trong ngoặc là một danh sách với biểu thức đứng ở
vị trí đầu tiên theo sau là các tham số Thực hiện biểu thức từ trái qua phải
Ví dụ:
(< (+ g b) 5) tương đương với (g + b) < 5
Công thức này sẽ tính xác suất cho một từ hay thẻ (word) như sau: Thẻ được
lấy từ trong bảng good, là bảng băm các thẻ của tập thư không phải là thư rác và
Trang 16thư rác Neu như tổng g và b nhỏ hơn 5 thì thẻ sẽ bị loại bỏ Xác suất tính được sẽ
nằm trong khoảng giá trị từ 01 đến 99 Xét cho cùng thì việc tính toán ở trên tương
ứng với công thức tính xác suất ở dạng luật Bayes đơn giản như sau:
Như vậy kết quả của quá trình huấn luyện là một bảng băm hay nói khác hơn làmột cơ sở dữ liệu rút ra từ tập thư huấn luyện Bảng băm này là ánh xạ của các thẻ đến các giá trị xác xuất của chúng Bảng băm này là cơ sở quyết định cho việc tính toán xác suất của một lá thư điện tử là thư rác
- So với các phương pháp khác, phương pháp thống kê Bayes lập luận theo kinh nghiệm được tích lũy áp dụng vào mô hình phân loại đối tượng linh hoạt hơn, phù hợp với đặc trưng của bài toán hơn Các cơ chế ước lượng cũng gần gũi với cách suy luận thông thường chính vì vậy mà các kết quả phân loại tương đối giống với cách phân loại thông thường
- Các kết quả đã đạt được là:
- Đồ án đã tập trung nghiên cứu về lý thuyết Bayes, từ bước cơ sở đó tìm hiểu tiếp
về một ứng dụng của nó liên quan trực tiếp đến ngành công nghệ thông tin đó là ứng dụng lọc thư rác Quá trình tìm hiểu về nguyên lý và cách thức hoạt động củabộ lọc đã rút ra được những kết luận về ưu nhược điểm của tiếp cận thống kê Bayes trong việc phân loại thư rác Đối với vấn đề ứng dụng thực tế, khoá luận sử dụng plugin BayesSpam như một đối tượng chính để tìm hiểu và nghiên cứu Đối với vấn đềáp dụng lý thuyết Bayes, khoá luận nghiên cứu xây dựng các công thức tính xác suất sao cho việc xử lý thông tin trở lên nhanh gọn và có độ chính xác cao
- Từ việc tìm hiểuứng dụng BayesSpam, khoá luận đã rút ra được một số nhận định