CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN
3.6. Sinh các luật kết hợp mạnh từ các tập phổ biến
Cho một tập phổ biến l, luật kết hợp là một luật có dạng a (l – a), trong đó a
là một tập con khác rỗng của l. Độ hỗ trợ của luật chính là độ hỗ trợ của tập phổ biến l (tức là sup(l)), còn độ tin cậy của luật là tỷ số sup(l)/sup(a). Để sinh luật hiệu quả, chúng ta tiến hành duyệt các tập con của l có kích thước lớn trước tiên và sẽ tiếp tục xét các tập con nhỏ hơn khi luật vừa sinh thỏa mãn độ tin cậy tối thiểu (minconf). Ví dụ, giả sử ABCDlà tập phổ biến, nếu luật ABC D không thỏa mãn độ tin cậy tối thiểu thì luật AB CD cũng không thỏa mãn do độ hỗ trợ của AB
luôn lớn hơn hoặc bằng ABC. Như vậy chúng ta không cần xét các luật mà vế trái là tập con của ABC vì chúng không thỏa mãn độ tin cậy tối thiểu. Thuật toán sinh luật tuần tự [2, 3] thể hiện ý tưởng trên như sau:
Forall frequent itemset lk, k > 1 do
Call gen_rules(lk, lk);
//Thủ tục gen_rules sinh tất cả các luật kết hợp mạnh α→(l - α), v i mọi α ∈ am
Procedure gen_rules(lk: frequent k-itemset, am: frequent m-itemset)
Begin
A = {(m-1)-itemsets am-1 | am-1⊂ am}
Forall am-1∈ A do
begin
conf = sup(lk)/sup(am-1);
if (conf ≥ minconf) then
begin output am-1 (lk– am-1); if (m – 1 > 1) then Call gen_rules(lk, am-1); end end End
Để sinh luật song song, chúng ta chia tập các tập thuộc tính phổ biến cho tất cả các bộ xử lý trong hệ thống. Mỗi bộ xử lý sinh luật trên các tập phổ biến được phân chia cho nó sử dụng thuật toán trên. Trong thuật toán sinh luật song song, để tính độ tin cậy của một luật, mỗi bộ xử lý có thể cần phải tham chiếu đến độ hỗ trợ của một tập phổ biến lưu trong bộ nhớ của một bộ xử lý khác. Vì lý do này, các bộ xử lý nên có thông tin về toàn bộ các tập phổ biến truớc khi thực hiện thuật toán sinh luật song song. Lưu ý là một khi mỗi bộ xử lý đã có thông tin về toàn bộ các tập phổ biến thì các bộ xử lý thực hiện việc sinh luật phổ biến một cách hoàn toàn độc lập với nhau (dị bộ).
.7. Kết luận chư ng 3
Trong chương này, tác giả tập trung trình bày ý tưởng cũng như những cơ sở toán học cho việc áp dụng chiến lược Chia để trị trong khai phá luật kết hợp đồng thời đề xuất một thuật toán đơn giản cho phép tìm ra các tập phổ biến toàn cục dựa
trên các tập phổ biến cục bộ với độ phức tạp đa thức. Tác giả cũng đưa ra mô hình hệ thống khai phá luật kết hợp từ dữ liệu web log dựa trên chiến lược Chia để trị và mở rộng mô hình cho hệ thống song song gồm N bộ xử lý. Một số phân tích cũng như những đánh giá, so sánh về ưu điểm và nhược điểm của các hệ thống cũng được tập trung trình bày. Trong chương tiếp theo, tác giả sẽ đưa ra các kết quả thực nghiệm nhằm chứng minh những ưu điểm của mô hình hệ thống được đề xuất.
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM
4.1. Đặc trưng của dữ liệu thực nghiệm
Dữ liệu thực nghiệm được lấy từ máy chủ đặt website của Phòng Đào tạo - trường Đại học Hàng hải có địa chỉ là http://daotao.vimaru.edu.vn. Phần mềm máy chủ web (Apache Server) được cấu hình ghi lại nhật ký truy cập theo từng ngày. Dữ liệu mỗi ngày tương ứng với một tập tin log. Ta khảo sát trên các tập tin dữ liệu của 04 ngày, từ ngày 20/07/2012 đến ngày 23/07/2012 (bảng 4.1).
B ng . Các tập tin dữ liệu th c nghiệm
Tên tập tin Ngày tạo Dung lượng Số bản ghi phiên truy cập Số lượng
20120720-access 20/07/2012 41873 KB 164135 433
20120721-access 21/07/2012 51266 KB 200853 644
20120722-access 22/07/2012 31212 KB 122375 469
20120723-access 23/07/2012 30589 KB 120720 808
Các tập tin log tuân theo định dạng ECL (Extended Common Log ormat) là một định dạng tập tin log khá phổ biến. Đối với định dạng này, mỗi bản ghi giao dịch sẽ bao gồm 9 trường thông tin cơ bản, ngăn cách nhau bởi dấu cách trống:
1. Trường tên máy khách (Remote host field). 2. Trường định danh (Identification field).
3. Trường xác thực người dùng (Authuser field). 4. Trường thời gian (Date/time field).
5. Trường HTTP Request.
6. Trường mã trạng thái (Status code field).
7. Trường dung lượng dữ liệu trao đổi (Transfer volume field). 8. Trường đối tượng tham chiếu (Referrer field).
9. Trường tác nhân phía người dùng (User agent field).
4.2. Các thao tác tiền xử lý dữ liệu
Dữ liệu web log nguyên thủy không phù hợp cho việc áp dụng các mô hình khai phá dữ liệu mà phải thông qua quá trình tiền xử lý. Dựa trên những nghiên cứu của Markov và Larose [13], để có thể khai phá luật kết hợp từ dữ liệu sử dụng web, dữ liệu web log cần phải trải qua một quá trình tiền xử lý gồm các giai đoạn như trên hình 4.1. Quá trình tiền xử lý này sẽ biến đổi dữ liệu dưới dạng các bản ghi
được đọc vào từ tập tin văn bản thành tập các giao dịch (phiên truy cập) của người dùng web.
Hình 4.1: Quá trình tiền xử lý dữ liệu truy cập web
4.2.1. Lọc dữ liệu
Một trang web thường bao gồm nhiều thành phần khác nhau. Khi một trang web được tải về thì trình duyệt cũng tự động gửi những yêu cầu tải về các thành phần có liên quan, đặc biệt là các tập tin đồ họa (.gif, .jpg, .bmp…) tương ứng với banner hay menu của trang. Để làm rõ hơn vấn đề này, hãy xét một trang web đơn giản là một tập tin html với cấu trúc như sau:
<html> <body> <table> <tr> <td><img src= imges/Up.gif </td> </tr> <tr> <td><img src= images/Right.gif </td> </tr> </table> </body> </html> Tách các
trường dữ liệu Lọc dữ liệu
Gán nhãn thời gian Phân định các phiên truy cập D liệu đã được tiền xử lý D liệu thô
Giả sử tập tin html có tên là index.htm và được lưu tại thư mục gốc của site với tên miền tương ứng là ABC.com. Các tập tin đồ họa Up.gif và Right.gif nằm trong thư mục images là thư mục con của thư mục gốc. Khi người dùng gõ địa chỉ http://ABC.com/index.htm vào thanh địa chỉ của trình duyệt, trình duyệt sẽ gửi yêu cầu cho máy chủ web để tải về trang index.htm. Khi đọc cấu trúc trang index.htm để hiển thị, trình duyệt thấy cần phải có hai tập tin đồ họa là Left.gif và Right.gif cần được hiển thị kèm. Nó sẽ tự động gửi các yêu cầu để tải về hai tập tin này. Nếu máy chủ được cấu hình ghi lại các bản ghi log theo định dạng CL thì các bản ghi sau đây sẽ được ghi lại:
203.162.246.103 - - [26/May/2011:10:49:49 +0800] "GET /index.htm HTTP/1.0" 200 167 203.162.246.103 - - [26/May/2011:10:49:50 +0800] "GET images/Left.gif HTTP/1.0" 200 340 203.162.246.103 - - [26/May/2011:10:49:50 +0800] "GET images/Right.gif HTTP/1.0" 200 420
Trong đó, 203.162.246.103 là địa chỉ IP của máy khách. Ta thấy trong 3 yêu cầu truy cập kể trên thì chỉ có yêu cầu đầu tiên là phát sinh bởi người dùng, còn hai yêu cầu tiếp theo được phát sinh một cách tự động bởi trình duyệt.
Như đã trình bày trong chương 2, những yêu cầu tự động phát sinh từ phía trình duyệt không phản ánh hành vi của người dùng và do đó việc lọc bỏ chúng là vô cùng quan trọng. Thường thì các yêu cầu truy cập liên quan tới các tập tin hình ảnh mà chủ yếu là các định dạng phổ biến như: .ico, .gif, .jpg, jpeg, .png, .bmp, .xmb,… sẽ bị loại bỏ trừ phi trang web của chúng ta là trang chuyên cung cấp nội dung hình ảnh. Ngoài ra, những yêu cầu truy cập ứng với các tập tin có định dạng như .js, .css, .htc cũng sẽ bị loại bỏ vì những tập tin này hỗ trợ cho việc hiển thị trang và cũng được tự động tải về bởi trình duyệt. Thông thường, ta sẽ giữ lại các yêu cầu ứng với các tập tin có định dạng: .htm, .html, .asp, .aspx, .php, .jsp, .txt, .doc, .pdf, .zip, .zar, .exe.
Qua nghiên cứu khảo sát thống kê số lượng các loại yêu cầu truy cập ứng với mỗi loại định dạng trong tập tin log thì chỉ riêng các yêu cầu truy cập các tập tin đồ họa đính kèm theo trang web đã chiếm quá nửa số lượng (khoảng 55% đến 60%). Việc loại bỏ các yêu cầu này sẽ giúp làm giảm rất lớn khối lượng tính toán không cần thiết.
Khi cài đặt bộ lọc dữ liệu để lọc bớt các bản ghi không cần thiết, tác giả đề xuất loại bỏ các tập tin đính kèm theo trang web với 11 định dạng phổ biến nhất sau đây: .gif, .png, .jpg, .jpeg, .bmp, .xmb, .js, .css, .htc, .flv, .swf. Bộ lọc các bản ghi truy cập sẽ được thực thi một cách rất đơn giản. Lần lượt duyệt các bản ghi trong tập dữ liệu thô (RawData) được đọc vào từ tập tin log. Nếu bản ghi nào ứng với tập
tin có định dạng nằm trong danh sách cấm sẽ không được đưa vào tập dữ liệu gồm các bản ghi sẽ được xử lý ở bước tiếp theo ( ilterredData). Phương thức lọc dữ liệu được minh họa qua thủ tục iltering như sau:
Input: Dữ liệu thô được đọc vào từ tập tin log (RawData).
Output: Dữ liệu đã được loại bỏ các bản ghi không cần thiết ( ilterred Data).
procedure Filtering()
{
//Thiết lập bộ lọc
string[ Invalid ormat ={ .gif , .png , .jpg , .jpeg ,
.bmp , .xmb , .js , .css ,
.htc , .flv , .swf };
for each r in RawData
{
//Nếu ph n mở rộng của tập tin trong r không nằm trong danh sách bị cấm.
if Extension(r) not in InvalidFormat
FilterredData.Add(r);
} }
4.2.2. Gán nhãn thời gian
Sau khi phân tách được các trường dữ liệu và trích chọn các tham số, bước quan trọng là phải tạo ra một nhãn thời gian (time stamp). Mục đích của việc tạo ra nhãn thời gian là nhằm tạo thuận lợi trong việc so sánh thứ tự trước sau của các thời điểm truy cập. Nguyên tắc của việc tạo nhãn thời gian là chọn một thời điểm nào đó làm mốc. Sau đó tất cả các giá trị thời điểm truy cập sẽ được so sánh với giá trị mốc này để tính ra khoảng thời gian (đơn vị giây).
Các bước tạo nhãn thời gian như sau:
1. ác định xem bao nhiêu ngày đã trôi qua, tính từ một thời điểm gốc nào đó được chọn làm mốc cho đến thời điểm truy cập lưu trong bản ghi.
2. Nhân giá trị số ngày này với 84600. Con số 84600 ở đây là số giây tương ứng với 24 giờ.
3. ác định khoảng thời gian bằng giây tính từ lúc 0h cùng ngày cho tới thời điểm được lưu bản ghi.
Mục tiêu của các bước từ (1) tới (4) là nhằm tạo ra một nhãn thời gian, đó là một giá trị nguyên biểu diễn số giây đã trôi qua tính từ lúc 0 giờ của ngày được chọn làm mốc. Nhãn thời gian thuận lợi cho việc tính toán khoảng thời gian mà người dùng viếng thăm website cũng như quá trình thực hiện chuỗi các yêu cầu truy cập qua từng ngày.
Trong hệ thống, tác giả cài đặt cơ chế để gán nhãn thời gian cho mỗi bản ghi. ét một bản ghi truy cập web Ri nào đó. Gọi D(Ri) là giá trị ngày tháng năm tương ứng với Ri còn H(Ri), M(Ri), S(Ri) tương ứng là các giá trị giờ, phút, giây. Gọi Do là một giá trị ngày tháng năm nào đó được chọn làm mốc. Chú ý là Do là thời điểm nằm trước mọi thời điểm truy cập đang xét tức là Do ≤ D(Ro) với Ro là yêu cầu truy cập đầu tiên trong đoạn web log đang xét.
Kí hiệu D(Ri) - Do là phép toán tính số ngày nằm giữa hai thời điểm D(Ri) và Do. Khi đó, nhãn thời gian gắn cho bản ghi Ri ký hiệu là ST(Ri) sẽ được xác định bởi công thức:
ST(Ri) = 84600*[D(Ri) - Do] + 3600*H(Ri) + 60*M(Ri) + S(Ri)
Nhãn thời gian rất hữu dụng trong việc phân định các phiên truy cập. ét hai bản ghi liên tiếp là Ri và Ri+1 thuộc về cùng một người dùng và δ là một ngưỡng thời gian được chọn. Nếu ST(Ri+1) - ST(Ri) ≥ δ thì Ri và Ri+1 thuộc về hai phiên truy cập khác nhau và liên tiếp nhau là Sj, Sj+1 (Ri∈ Sj và Ri+1∈ Sj+1).
4.2.3. Phân định các phiên truy cập
Phiên truy cập của người dùng (user session) 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ể. Một số chuyên gia đưa ra cách tiếp cận dựa trên "độ dài tham chiếu" (reference length) với giả thiết rằng khoảng thời gian người dùng tương tác với một trang web phụ thuộc vào mối quan tâm của người đó đến nội dung trang. Cách tiếp cận dựa trên độ dài tham chiếu cho phép chúng ta phân biệt các trang điều hướng (navigational pages), chỉ chứa các liên kết với các trang có nội dung (content pages), chứa các thông tin mà người dùng quan tâm.
Gọi thời gian trễ dA→B là khoảng thời gian giữa yêu cầu truy cập trang A và yêu cầu truy cập trang B. Bằng cách sử dụng một ngưỡng thời gian t, ta có thể tạm thời phân loại trang A vào nhóm các trang có nội dung nếu dA→B > t và xếp trang A vào nhóm các trang điều hướng nếu dA→B ≤ t. Baglioni và các cộng sự đưa ra định nghĩa rằng một phiên truy cập có thể coi là một dãy các địa chỉ URL của các trang điều hướng theo sau bởi một địa chỉ URL của trang nội dung. Tuy nhiên định nghĩa
này bị xem là quá cứng nhắc so với mục đích của chúng ta khi mà một người dùng có thể di chuyển từ một trang nội dung đến một trang điều hướng rồi lại quay về một trang nội dung trong cùng một phiên truy cập.
Khái niệm về phiên truy cập của người dùng là vô cùng quan trọng vì nó giúp ta hình dung được thế nào là một lần viếng thăm (visit) một site. Khi việc đoán nhận mục đích viếng thăm site của người dùng không phải là dễ dàng, ta có thể nghĩ tới việc sử dụng các phương pháp heuristics đã được chuẩn hóa.
Ví dụ, giả sử một người dùng viếng thăm một website cụ thể nào đó 02 lần trong khoảng thời gian 24 giờ. Khoảng thời gian giữa các lần viếng thăm là 06 giờ. Giả thiết rằng các thao tác định danh người dùng đã được thực hiện trên dữ liệu web log ứng với khoảng thời gian 24 giờ này. Dữ liệu ứng với 02 lần viếng thăm website sẽ được nhóm lại với nhau và được xác định tương ứng với người dùng đó. Tuy cùng thuộc về một người dùng, nhưng những dữ liệu này cần phải được phân tách để xác định ra 02 lần truy cập riêng rẽ. Thao tác này được gọi là xác định phiên truy cập của người dùng (sessionizing hay session identification).
ác định phiên truy cập của người dùng có thể coi là một tiến trình mà ở đó, các yêu cầu truy cập xuất phát từ một người dùng cụ thể trong một khoảng thời gian đủ dài được phân đoạn thành các phiên truy cập riêng rẽ.
Hầu hết các phương pháp xác định phiên truy cập chỉ đơn giản là áp dụng một ngưỡng thời gian timeout sau khi một khoảng thời gian nhất định đã trôi qua tính từ yêu cầu truy cập được thực hiện trước đó. Nhiều hệ thống khai phá sử dụng web áp đặt ngưỡng thời gian timeout là 30 phút. Một giải thuật xác định phiên truy cập có thể áp dụng ngưỡng thời gian timeout này đối với dữ liệu web log. Một phiên truy cập mới được xem là bắt đầu nếu như khoảng thời gian giữa hai yêu cầu truy cập của người dùng lớn hơn giá trị ngưỡng đã quy định.
Về mặt bản chất, như đã nói, việc định danh phiên truy cập là tiến trình phân tách các bản ghi hoạt động của mỗi người dùng thành các phiên truy cập, mỗi phiên phản ánh thông tin về một lần viếng thăm site. Đối với những website không có cơ chế xác thực người dùng và cũng không có cơ chế nhúng các mã phiên để dấu phiên truy cập, chúng ta sẽ phải hoàn toàn dựa trên các các phương pháp heuristics để định danh phiên truy cập. Mục đích của thao tác định danh phiên dựa trên heuristics là nhằm tái cấu trúc dữ liệu clickstream, chuỗi các thao tác thực tế được thực hiện bởi người dùng trong mỗi lần viếng thăm một site.
Gọi R là tập hợp các phiên truy cập thức sự, phản ánh các hoạt động của người