CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN
2.6. Những vấn đề đặt ra khi khai phá luật kết hợp từ dữ liệu web log
web log
Dữ liệu truy cập web (web log) thường được máy chủ ghi nhận lại dưới dạng các tập tin văn bản với các trường thông tin xác định (hình 2.7). Số lượng các trường thông tin được ghi lại tùy thuộc vào cấu hình được thiết lập của phần mềm máy chủ web. Thông thường, dữ liệu sử dụng web được ghi lại thường gồm các trường thông tin sau đây:
1. Địa chỉ IP/Tên máy khách (IP Address/Remote host field).
2. Thời điểm truy cập (Date/Time field): chỉ ra thời điểm yêu cầu truy cập từ máy khách được máy chủ ghi nhận và đáp ứng.
3. HTTP Request: chỉ ra phương thức trao đổi dữ liệu cũng địa chỉ tài nguyên được truy cập trên máy chủ.
4. Mã trạng thái (Status code): chỉ ra kết quả của việc thực hiện yêu cầu truy cập (thành công hay không thành công).
5. Dung lượng dữ liệu trao đổi (Transfer volume field): chỉ ra dung lượng dữ liệu (tính bằng KB) được máy chủ trả về cho máy khách.
Có rất nhiều vấn đề đặt ra khi khai phá dữ liệu sử dụng web từ các tập tin web server log. Đối với luận văn này, tác giả tập trung vào các vấn đề sau đây:
Các yêu cầu truy cập không phản ánh hành vi của người dùng
Dữ liệu sử dụng web có thể chứa thông tin về các yêu cầu truy cập không phải xuất phát từ người dùng. Một trang web thường bao gồm nhiều thành phần đính kèm như: các tập tin hình ảnh, đồ họa, video, âm thanh,… Người dùng không quan tâm đến điều này, người dùng chỉ đơn thuần yêu cầu tải trang web (thường là các tập tin có phần mở rộng là htm, html, jsp, aspx hay php) thông qua việc click vào liên kết trên một trang đang mở hoặc trực tiếp gõ địa chỉ vào trình duyệt. Sau khi trang web được xử lý, máy chủ sẽ trả về cho trình duyệt dưới dạng các thẻ HTML. Khi phân tích cấu trúc trang, trình duyệt sẽ tự động gửi thêm các yêu cầu (request) truy cập đến các tập tin thành phần đính kèm và các yêu cầu này cũng sẽ được máy chủ web ghi lại trong tập tin log. Vấn đề ở chỗ, những yêu cầu truy cập tự động sinh bởi trình duyệt không phản ánh hành vi của người dùng và chúng ta phải lọc bỏ chúng khỏi tập dữ liệu web log trước khi tiến hành khai phá dữ liệu.
Hình 2.7: Một tập tin web log v i các trường thông tin xác định
Không có sự tách biệt giữa các phiên truy cập của người dùng
Để có thể áp dụng được mô hình luật kết hợp vào dữ liệu sử dụng web, chúng ta phải xác định rõ các mục (item) và các giao dịch (transaction). Trong ngữ cảnh của khai phá sử dụng web, các mục là các trang hay tập tin được truy cập còn các
giao dịch chính là các phiên truy cập của người dùng (user session). Phiên truy cập của người dùng có thể được định nghĩa một cách thô thiển là tập hợp các trang web được duyệt bởi một người dùng cụ thể, cho một mục đích cụ thể. Tuy nhiên, việc phân định ra từng phiên truy cập của người dùng không phải là việc đơn giản. Các yêu cầu truy cập thường được máy chủ web ghi lại theo trình tự thời gian và các yêu cầu truy cập thuộc về các phiên truy cập của những người dùng khác nhau thì có thể nằm đan xen nhau. Chúng ta phải có những cơ chế để xác định xem một yêu cầu truy cập sẽ thuộc về phiên truy cập nào.
Dữ liệu cần xử lý quá lớn và thường xuyên thay đổi
Tất cả các giải thuật khai phá luật kết hợp, dù hiệu quả đến đâu cũng sẽ bị giới hạn bởi dung lượng bộ nhớ của hệ thống tính toán. Khi số lượng bản ghi cần xử lý quá lớn, nếu không áp dụng các kỹ thuật xử lý bổ sung có thể làm hệ thống tính toán bị treo. Dung lượng dữ liệu truy cập web của các máy chủ được ghi lại dưới dạng các tập tin log trong cùng một khoảng thời gian có thể là rất khác nhau tùy theo số lượng truy cập được gửi đến máy chủ. Dung lượng này có thể rơi vào khoảng vài chục đến hàng trăm megabyte mỗi ngày (tương ứng với khoảng vài ngàn đến hàng trăm ngàn bản ghi). Lượng dữ liệu tích lũy được ghi lại sau vài tuần hay vài tháng có thể lên tới hàng gigabyte.
0 500 1000 1500 2000 2500 3000 5 10 15 20 25
Kích thước dữ liệu vào (10^3)
D un g lư ợn g bộ nh ớ (M B )
Hình 2.8: S ti u t n bộ nh khi s mục vào tăng
Giới hạn kích thước bộ nhớ trong Giới hạn kích thước dữ liệu vào
Giả sử ta sử dụng một máy tính có cấu hình trung bình với dung lượng bộ nhớ trong khoảng 1GB. Ta áp dụng một giải thuật khai phá luật kết hợp nào đó và giả sử tại một bước nào đó của giải thuật, cần phải sinh các tập ứng viên là các tập mục có độ dài 2 được ghép từ 2 mục bất kỳ trong n mục cho trước. Mỗi mục ta đánh số bằng một số nguyên có dung lượng 4 byte. Như vậy số ứng viên cần phải xét là:
2 2 n n! n(n-1) n C = = (n-2)!2! 2 2
Dung lượng bộ nhớ cần thiết để lưu trữ tất cả các ứng viên là:
2
2 n
4byte x 2 x 4n
2
Dung lượng này bị giới hạn bởi kích thước bộ nhớ trong 1GB (= 230 Byte) của máy tính tức là: 4n2 ≤ 230 hay n≤ 214 = 16384. Như vậy, kích thước bộ nhớ trong của hệ thống tính toán đã giới hạn kích thước dữ liệu vào mà hệ thống có thể xử lý (không được phép vượt quá 16384 mục). Thực tế, đối với các hệ thống PC, chương trình của của chúng ta không được phép sử dụng hết toàn bộ dung lượng bộ nhớ trong mà còn phải chia sẻ với hệ điều hành và các chương trình ứng dụng khác, do đó dung lượng bộ nhớ thực sự dùng để tính toán sẽ còn bị hạn chế hơn rất nhiều. Hình 2.8 cho ta thấy sự gia tăng yêu cầu về dung lượng bộ nhớ khi kích thước dữ liệu (số mục) vào tăng. Đường thẳng nét đứt nằm ngang biểu diễn giới hạn của kích thước bộ nhớ trong và đường thẳng nét liền đậm biểu diễn cho giới hạn của kích thước dữ liệu vào.
Thông thường, dữ liệu truy cập web thường chỉ được truy cập bởi người quản trị máy chủ và ít khi được cung cấp rộng rãi vì lý do bảo mật. Tuy nhiên, trang web http://ita.ee.lbl.gov cung cấp một số các mẫu truy cập web được thu thập từ một số máy chủ web của các công ty hay tổ chức có tên tuổi trên thế giới nhằm phục vụ cho việc nghiên cứu. Ta có thể khảo sát một số mẫu web log được cung cấp để đánh giá về mặt dung lượng (xem bảng 2.4).
Câu hỏi đặt ra là ta sẽ phải làm gì khi dung lượng dữ liệu cần xử lý vượt quá giới hạn về bộ nhớ của hệ thống tính toán. Một trong những cách tư duy hết sức tự nhiên đó là chia nhỏ tập dữ liệu thành các phần có dung lượng vừa với kích thước bộ nhớ trong và xử lý từng phần độc lập. Giải pháp cho vấn đề này sẽ được trình bày trong chương tiếp theo.
B ng 2.3: Các m u web log của một s máy chủ web được thu thập và cung cấp tại trang web http://ita.ee.lbl.gov
STT Máy chủ web Tổ chức
Thời điểm khảo sát Khoảng thời gian Dung lượng (MB) Số lượng bản ghi
1 EPA-WWW Research Triangle Park, NC
Từ 23h53 ngày 29/08/1995 đến 23h53 ngày 30/08/1995
01 ngày 4.4 47.748
2 SDSC-WWW Trung tâm Siêu máy tính
San Diego, California
Từ 00h00 đến 23h59 ngày 22/08/1995
01 ngày 3.6 28.338
3 Calgary-HTTP
Khoa Khoa học máy tính thuộc Đại học Calgary,
Canada. Từ 00h00 ngày 24/10/1994 đến 23:59 ngày 21/10/1995 353 ngày 52.3 726.739 4 ClarkNet- WWW Công ty ClarkNet – Nhà cung cấp đường truyền Internet tại Washington DC
Từ 00h00 ngày 28/08/1995 đến 23h59 ngày 10/09/1995 14 ngày 171 3.328.587 5 NASA KSC – WWW
Trung tâm Vũ trụ Kenedy tại lorida (thuộc NASA)
Từ 00h00 ngày 01/07/1995 đến 23h59 ngày 31/08/1995 02 tháng 205.2 3.461.612 6 Saskatchewan- WWW Đại học Saskatchewan, Canada Từ 00h00 ngày 01/06/1995 đến 23:59 ngày 31/09/1995 214 ngày 233.4 2.408.625
Một trong những thách thức khác khi tiến hành khai phá dữ liệu sử dụng web từ các tập tin server log đó là dữ liệu được cập nhật liên tục. Một số phần mềm máy chủ web cho phép các nhà quản trị lựa chọn cách thức ghi lại dữ liệu truy cập trên nhiều tập tin log, mỗi tập tin log mới sẽ được tạo ra sau một chu kỳ nhất định (ngày/tuần/tháng) hoặc khi dung lượng tập tin vượt quá một giới hạn cho trước. Ngoài ra nhà quản trị cũng có thể lựa chọn ghi lại toàn bộ dữ liệu truy cập web lên một một tin log duy nhất và kích thước tập tin này sẽ gia tăng mãi.
Hình 2.9 là giao diện cấu hình việc ghi dữ liệu truy cập (logging) của phần mềm máy chủ web IIS 7.5. Nếu ta lựa chọn mục Shedule là Daily thì sau mỗi ngày sẽ có một tập tin log mới được tạo ra (xem hình 2.10). Giả sử ngày 24/07 ta đã tiến
hành khai phá luật kết hợp với dữ liệu thu được của 05 ngày từ ngày 20/07 đến 24/07 và thu được các tập phổ biến cũng như các luật kết hợp tương ứng.
Hình 2.9: Cấu hình tập tin log tr n Microsoft IIS 7.5
Đến ngày 25/07 dữ liệu phát sinh thêm tập tin u_ex120725. Câu hỏi đặt ra là dữ liệu vào đã có thay đổi, làm thế nào có thể cập nhật những thay đổi này vào kết quả khai phá? Liệu ta có phải tiến hành khai phá lại từ đầu với cả 06 tập tin hay chỉ cần khai phá dữ liệu trên tập tin mới phát sinh và cố gắng tận dụng kết quả của lần khai phá trước đó.
Vấn đề này có thể được phát biểu một cách tổng quát như sau: Giả sử tại thời điểm t1 ta có cơ sở dữ liệu giao dịch D và ta đã tiến hành khai phá trên cơ sở dữ liệu giao dịch này, thu được các tập phổ biến cũng như các luật kết hợp tương ứng. Đến thời điểm t2, phát sinh thêm một tập các giao dịch là ∆D. Cơ sở dữ liệu giao dịch lúc này là D’ = D ∪ ∆D. Câu hỏi đặt ra là để khai phá cơ sở dữ liệu giao dịch D’ ta có cần thực hiện khai phá lại từ đầu với toàn bộ dữ liệu của D’ hay chỉ cần khai phá trên tập dữ liệu phát sinh ∆D và tận dụng kết quả khai phá ở thời điểm t1? Điều này
có ý nghĩa rất lớn trong trường hợp kích thư c của tập D l n hơn nhiều so v i ∆D. Khi đó việc khai phá lại toàn bộ D’ là một sự lãng phí vì phần lớn các giao dịch trong D’ đã được khai phá trước đó và ta cần phải tận dụng các kết quả khai phá này. Vấn đề đặt ra ở đây cũng sẽ được giải quyết một cách triệt để trong chương 3 dựa trên kết quả của việc áp dụng chiến lược Chia để trị .
Hình 2.10: Các tập tin log được ghi theo từng ngày (từ 20/07 đến 25/07/2012)
2.7. Kết luận chư ng 2
Luật kết hợp là loại mẫu điển hình nhất trong phân tích mẫu truy cập Web. Nội dung chương 2 tập trung trình bày sơ bộ về luật kết hợp cũng như những nghiên cứu trước đó về luật kết hợp. Vấn đề khai phá song song luật kết hợp cũng được tập trung đề cập với một số giải thuật xử lý song song được đề xuất bởi Agrawal và C.Shafer . Chương 2 cũng chỉ ra một số những trở ngại cơ bản khi tiến hành khai phá luật kết hợp từ dữ liệu sử dụng web. Trong chương 3, tư tưởng Chia để trị sẽ được áp dụng với dữ liệu vào nhằm khắc phục những trở ngại khi phải đối mặt với lượng dữ liệu lớn và thường xuyên thay đổi.
CHƯƠNG : TƯ TƯ NG CHIA Đ T Ị T ONG KHAI PHÁ LUẬT KẾT HỢP
.1. Áp dụng chiến lược Chia để trị trong bài toán khai phá luật kết hợp
Chia để trị (Divide and Conquer) là một trong những chiến lược đầu tiên được nghĩ tới khi phải đối mặt với các bài toán lớn. Tư tưởng của chiến lược này như sau: Người ta phân chia bài toán cần giải thành các bài toán con. Các bài toán con lại tiếp tục được phân thành các bài toán con nhỏ hơn, cứ thế tiếp tục cho tới khi ta nhận được các bài toán con hoặc là đã có thuật giải, hoặc là có thể dễ dàng đưa ra được thuật giải. Sau đó ta tìm cách kết hợp nghiệm của các bài toán con để nhận được nghiệm của các bài toán con lớn hơn và cuối cùng nhận được nghiệm của bài toán cần giải. Thông thường, các bài toán con nhận được trong quá trình phân chia là cùng dạng với bài toán ban đầu.
Như đã trình bày trong chương 2, dữ liệu web log có hai đặc điểm hết sức quan trọng, đó là:
Kích thước dữ liệu có thể lớn đến mức các giải thuật khai phá dữ liệu thông thường không thể áp dụng được do sự hạn chế về mặt bộ nhớ của hệ thống tính toán.
Dữ liệu web log thường xuyên thay đổi (phát sinh thêm dữ liệu). Nếu áp dụng các giải thuật khai phá dữ liệu thông thường, ta sẽ phải khai phá lại từ đầu mà không kế thừa được các kết quả khai phá trước đó
Chính vì thế việc áp dụng chiến lược Chia để trị trong khai phá luật kết hợp từ dữ liệu web log là một tư duy hết sức tự nhiên. Thông thường, việc giải quyết bài toán khai phá luật kết hợp được chia thành hai pha:
Pha 1: Sinh các tập phổ biến.
Pha 2: Sinh luật kết hợp từ các tập phổ biến tìm được ở pha 1.
Trong luận văn này, tác giả đề xuất áp dụng chiến lược Chia để trị trong pha 1- Sinh tập phổ biến. Tư tưởng của chiến lược này là: ph n chia nhỏ tập dữ liệu c n xử lý để xử lý từng ph n.
Giả sử phải tìm các tập phổ biến từ cơ sở dữ liệu giao dịch D với ngưỡng độ hỗ trợ (minsup) là p. Ta có thể áp dụng chiến lược Chia để trị theo cách như sau:
Bước 1: Ta chia nhỏ D thành m cơ sở dữ liệu con D1, D2, …, Dm. Các c sở dữ liệu con này là các tập con đôi một không giao nhau của D, tức là: D = D1∪ D2 …∪ Dm và Di ∩ Dj = ϕ với ∀i, j ∈ [1, m và i ≠ j.
Bước 2: Lần lượt áp dụng giải thuật khai phá luật kết hợp trên các cơ sở dữ liệu
con D1, D2,…, Dm với cùng ngưỡng độ hỗ trợ là p ta thu được các tập 1, F2,…, Fm là tập các tập phổ biến tương ứng của D1, D2,…, Dm. Ta gọi các tập phổ biến trên một cơ sở dữ liệu con Dj là các tập phổ biến cục bộ (local frequent itemsets).
Bước 3: Kết hợp các tập 1, F2,…, m để thu được tập là tập các tập phổ biến tương ứng với cơ sở dữ liệu giao dịch gốc D. Các tập phổ biến trên toàn bộ cơ sở dữ liệu giao dịch gốc D gọi là các tập phổ biến toàn cục (global frequent itemsets).
Một trong những điều kiện để có thể áp dụng thành công chiến lược Chia để trị đó là ta phải khẳng định được việc kết hợp nghiệm của các bài toán con chắc chắn sẽ thu được nghiệm của bài toán ban đầu. Cụ thể là ta sẽ phải trả lời hai câu hỏi sau đây:
1.Việc kết hợp các tập 1, F2, …, m có thể khôi phục lại được tập hay không? 2.Nếu có, thuật toán nào sẽ được sử dụng để xây dựng lại tập từ 1, F2,…, m?
.2. C sở toán học cho việc áp dụng chiến lược Chia để trị
Ký hiệu * = F1 ∪ F2 … ∪ Fn. Ta thấy rằng việc khôi phục lại được tập từ các tập 1, F2,…, n chỉ có thể thực hiện được nếu F ⊆ F*. Bởi vì nếu F ⊆ F* có nghĩa là F* bảo tồn được các tập phổ biến vốn có trong .