GIỚI THIỆU
Phát biểu vấn đề
Hệ thống đề xuất web (WRS) là một công cụ thông minh giúp cung cấp thông tin cho người dùng dựa trên lịch sử tương tác của họ và những người khác, nhằm tăng tính tin cậy và thu hút người sử dụng WRS được ứng dụng rộng rãi trong các lĩnh vực như thương mại điện tử, giúp khách hàng dễ dàng tìm kiếm sản phẩm phổ biến và tăng doanh số bán hàng Sự gia tăng nhanh chóng của dữ liệu web cùng với sự phát triển của các kỹ thuật khai thác dữ liệu đã thúc đẩy sự quan tâm đến các phương pháp khám phá dữ liệu trên nền tảng web.
Trong bối cảnh hiện nay, khai thác sử dụng web giúp khám phá mẫu hành vi người dùng, từ đó hỗ trợ họ đưa ra quyết định tốt hơn với những gợi ý về cách tổ chức trang web hiệu quả Đối với các công ty thương mại điện tử, việc này không chỉ giúp xác định khách hàng tiềm năng có khả năng mua sắm lớn trong tương lai mà còn dự đoán các giao dịch dựa trên hành vi của du khách trước đó.
Việc lựa chọn thuật toán khai thác hiệu quả là rất quan trọng trong việc đề xuất thông tin trực tuyến Thuật toán khai thác tuần tự như Apriori tạo ra bộ mẫu ứng cử viên lớn, đặc biệt khi mẫu dài Trong khi đó, thuật toán khai thác cây WAP có nhược điểm là tốn thời gian do phải đệ quy xây dựng lại cây WAP trung gian Ngược lại, thuật toán khai thác cây PLWAP lưu trữ dữ liệu chuỗi trong một cây WAP liên kết thứ tự trước, cho phép khai thác trực tiếp các mẫu chuỗi mà không cần xây dựng cây WAP trung gian Tuy nhiên, PLWAP vẫn tồn tại một số hạn chế cần khắc phục.
- Về bộ nhớ máy tính: tốn nhiều bộ nhớ để lưu cấu trúc cây
Thời gian chạy và tốc độ truy cập Web có thể bị ảnh hưởng đáng kể nếu số lượng phần tử và chuỗi nhập quá lớn, dẫn đến việc mất nhiều thời gian để sinh tạo các mẫu truy cập phổ biến.
Hệ thống đề xuất hiện tại chưa thể hiểu rõ về sự kiện và đối tượng, như sách hay video Nếu hệ thống nắm bắt được thông tin về đối tượng và sự kiện, khả năng đề xuất sẽ trở nên hiệu quả hơn, mang lại giá trị cao cho người dùng.
- Về thông tin đề xuất: có nhiều đối tượng / thông tin được đề xuất cho người dùng mà chưa được phân loại hay sắp xếp kết quả.
Định hướng nghiên cứu
Thuật toán khai thác cây PLWAP cung cấp kết quả là tập hợp tất cả các chuỗi phổ biến để đề xuất cho người dùng Tuy nhiên, khi đưa ra các đề xuất, có thể xuất hiện nhiều chuỗi phổ biến được gợi ý cùng một lúc.
Việc cải tiến thuật toán khai thác cây PLWAP nhằm tối ưu hóa quá trình khai thác chuỗi dữ liệu từ web log là rất cần thiết Nghiên cứu này tập trung vào việc nâng cao thời gian và độ chính xác của các mẫu chuỗi phổ biến Những cải tiến này không chỉ giúp thuật toán đề xuất các đối tượng và thông tin hiệu quả hơn mà còn rút ngắn thời gian đề xuất, từ đó hỗ trợ người dùng và khách hàng trên các trang thương mại điện tử trong việc đưa ra quyết định tốt hơn.
Tổng quan về tình hình nghiên cứu
1.3.1 Tổng quan về hệ thống đề xuất web
Ngày nay, với sự phát triển của Internet, nhiều hình thức kinh doanh trực tuyến đã ra đời, giúp người tiêu dùng dễ dàng và nhanh chóng tiếp cận hàng hóa hơn so với phương thức mua bán truyền thống Các trang web bán hàng đang dần thay thế các gian hàng và siêu thị truyền thống nhờ vào những lợi thế của mình Để khách hàng tìm được sản phẩm ưng ý, việc đề xuất và gợi ý là rất quan trọng, tương tự như sự tư vấn trực tiếp trong bán hàng truyền thống Hệ thống tư vấn trực tuyến hỗ trợ khách hàng trong việc ra quyết định lựa chọn sản phẩm, giống như một người bán hàng thu thập thông tin về sở thích của khách hàng qua việc truy cập web Từ đó, hệ thống tự đề xuất được hình thành, giúp khách hàng đưa ra quyết định tốt hơn khi chọn hàng Cơ chế hoạt động của hệ thống này dựa trên lịch sử tương tác của người dùng và những người khác, khai thác chuỗi truy cập web để tìm ra những sản phẩm phổ biến nhất, thường sử dụng các thuật toán khai thác để xử lý dữ liệu.
Hình 1.1 - Hệ thống đề xuất web
WAS Data mining FWAP Web
Recommendation WAP-mine, PLWAP- mine,…
Qui trình của hệ thống đề xuất web [1] như sau:
A web log is retrieved from a server and consists of data lines formatted as follows: host/IP user [date:time] “request URL” status bytes For example, an entry might look like this: 137.207.76.120 - [30/Aug/2001:12:03:24-0500] “GET /jdk1.3/docs/relnotes/deprecatedlist.html HTTP/1.0” 200 2781 Each element provides crucial information about the request made to the server, including the user's IP address, the date and time of the request, the specific URL accessed, the status of the request, and the number of bytes transferred.
Thông tin ghi nhận từ trái sang phải bao gồm địa chỉ IP của máy chủ truy cập (137.207.76.120), số nhận dạng người dùng (-), thời gian truy cập (12:03:24 ngày 30 tháng 8 năm 2001, theo múi giờ quốc tế 5), yêu cầu (GET/jdk1.3/docs/relnotes/deprecatedlist.html), khu tài liệu tham khảo thống nhất (URL) của trang web được truy cập (HTTP/1.0), và trạng thái yêu cầu (có thể chuỗi).
200 cho thành công, chuỗi 300 cho chuyển hướng, chuỗi 400 cho thất bại, chuỗi
Để nghiên cứu từ web log với mã lỗi máy chủ 500 và số lượng byte dữ liệu yêu cầu là 2781, cần thực hiện bước tiền xử lý (pre-processing).
Tiền xử lý dữ liệu là quá trình chuyển đổi và trừu tượng hóa thông tin từ nhiều nguồn dữ liệu khác nhau để phục vụ cho việc phát hiện mẫu Các bước trong tiền xử lý bao gồm làm sạch dữ liệu, nhận diện người dùng và xác định phiên, thường được thực hiện trên dữ liệu log và các web log ban đầu Quá trình này giúp tối ưu hóa dữ liệu cho việc phát hiện mẫu và phân tích dữ liệu hiệu quả hơn.
Sau khi tiến hành tiền xử lý web log, chúng ta thu được chuỗi web log trong cơ sở dữ liệu giao dịch, mỗi mục gồm một ID giao dịch và chuỗi truy cập web tương ứng với giao dịch đó.
Ví dụ như người sử dụng ID 200 từ web log, đã truy cập các trang a, d, b, a và c
Data mining là quá trình khai thác dữ liệu từ chuỗi truy cập web, sử dụng các phương pháp và kỹ thuật như cây WAP và cây PLWAP để phân tích và rút ra thông tin hữu ích từ dữ liệu lớn.
- FWAP: mẫu truy cập web phổ biến có được sau khi khai thác dữ liệu
- Web recommendation: cuối cùng, những mẫu phổ biến này được dùng để đề xuất, dự đoán đối tượng thông tin sẽ xuất hiện tiếp theo cho người dùng
1.3.2 Tổng quan về khai thác chuỗi dữ liệu
Hiện nay, sự gia tăng nhanh chóng trong việc sử dụng các trang web toàn cầu cho doanh nghiệp thương mại điện tử và dịch vụ web đã khiến khai thác web trở thành một trong những lĩnh vực ứng dụng phổ biến nhất.
Khai thác web được chia thành ba loại chính: khai thác nội dung trang web (WCM), khai thác cấu trúc web (WSM) và khai thác sử dụng web (WUM).
Khai thác nội dung trang web là quá trình tìm kiếm thông tin hữu ích từ dữ liệu thực trên trang, bao gồm văn bản, hình ảnh, âm thanh, video, siêu dữ liệu và siêu liên kết Nội dung trang web bao gồm văn bản tự do, dữ liệu bán cấu trúc như tài liệu HTML, và dữ liệu có cấu trúc như bảng và cơ sở dữ liệu, từ đó tạo ra các trang HTML và XML.
Khai thác cấu trúc web tìm ra các mẫu cấu trúc liên kết cơ bản của trang web
Mẫu này dựa trên cấu trúc liên kết của các liên kết có hoặc không có mô tả, giúp phân loại các trang web và tạo ra thông tin tương đồng cũng như mối quan hệ giữa chúng Khai thác cấu trúc web cho phép xác định các trang web, tổ chức các trang theo chủ đề cụ thể và liên kết đến nhiều trang khác có liên quan.
Khai thác sử dụng web là quá trình phân tích log truy cập trang web để hiểu hành vi của người dùng trong một khoảng thời gian nhất định Qua việc quan sát các phiên duyệt web, dữ liệu được tạo ra cho phép phát hiện mối quan hệ giữa các trang mà người dùng truy cập Ví dụ, nếu 90% khách hàng truy cập trang sản phẩm cũng truy cập trang liên hệ, điều này cho thấy hai trang này có liên quan chặt chẽ và có thể được tổ chức lại để cải thiện trải nghiệm người dùng Tất cả hành vi của người dùng được ghi lại trong web log, và kỹ thuật khai thác sử dụng web giúp phát hiện các mẫu hành vi từ các hoạt động truy cập này Dữ liệu web có tính chất tuần tự, với mỗi phần dữ liệu là chuỗi các trang web đã được truy cập, và các kỹ thuật khai thác như khai thác mẫu chuỗi và khai thác luật kết hợp được áp dụng để phân tích thông tin này.
Khai thác luật kết hợp là kỹ thuật khai thác dữ liệu nhằm tìm ra các mối quan hệ mạnh mẽ giữa các dữ liệu Trong một tập hợp giao dịch, luật kết hợp X → Y được xác định với X và Y là các tập hợp phần tử không giao nhau Độ hỗ trợ của luật này là tỷ lệ phần trăm giao dịch chứa X ∪ Y, trong khi độ tin cậy là tỷ lệ phần trăm giao dịch chứa X cũng chứa Y Tất cả các phần tử có độ hỗ trợ cao hơn mức tối thiểu được gọi là tập phổ biến, và một tập phổ biến X được gọi là i-tập phổ biến nếu nó chứa i phần tử Việc tìm ra các luật này có thể hỗ trợ trong việc phân tích thị trường, bán hàng chéo, ra quyết định và quản lý kinh doanh, mặc dù thuật toán chủ yếu tập trung vào việc tạo ra mẫu phổ biến từ danh sách phần tử không theo thứ tự.
Khai thác tuần tự là quá trình sử dụng kỹ thuật khai thác dữ liệu để phát hiện các mối quan hệ tương quan trong cơ sở dữ liệu chuỗi Ví dụ, trong một cửa hàng cho thuê video, có thể thấy rằng 80% khách hàng thường thuê bộ phim “Sinbad” sau khi đã thuê một bộ phim khác.
"Hecules" và "Harry Potter" là hai ví dụ điển hình cho độ hỗ trợ và độ tin cậy trong khai thác luật kết hợp Các chỉ số này không chỉ giúp xác định tập phổ biến mà còn được áp dụng trong khai thác mẫu chuỗi để phát hiện các chuỗi phổ biến và các luật có thể được hình thành từ chúng.
1.3.3 Tổng quan về lĩnh vực nghiên cứu
Tổ chức của luận văn
Luận văn này sẽ tập trung vào việc cải tiến thuật toán khai thác cây PLWAP dựa trên kết quả từ cuộc khảo sát Bố cục của luận văn được chia thành các phần rõ ràng để trình bày nội dung một cách mạch lạc.
Chương 2 trình bày về kỹ thuật khai thác chuỗi dữ liệu và các thuật toán khai thác chuỗi dữ liệu như WAP-Mine, PLWAP-Mine,…
Chương 3 trình bày cải tiến thuật toán cây PLWAP trong khai thác chuỗi dữ liệu bao gồm tổng quan về mô hình Markov, xác suất chuỗi phổ biến trên cây PLWAP, cải tiến tiến thuật toán PLWAP-Mine dựa trên mô hình Markov
Chương 4 trình bày thực nghiệm và đánh giá thuật toán khai thác cây PLWAP đã cải tiến và chưa cải tiến
Chương 5 trình bày kết luận và hướng phát triển tiếp theo của luận văn.
CÁC THUẬT TOÁN KHAI THÁC CHUỖI DỮ LIỆU
Tổng quan về các thuật toán khai thác chuỗi dữ liệu
Kỹ thuật khai thác web là phương pháp giúp phát hiện hành vi sử dụng web của người dùng thông qua các hoạt động truy cập của họ Dữ liệu web thường có tính chất tuần tự, với mỗi phần dữ liệu là một chuỗi các trang web đã truy cập Các chuỗi phổ biến, tức là những chuỗi có tần suất xuất hiện lớn hơn một ngưỡng tối thiểu được xác định trước, là đối tượng chính trong quá trình khai thác Kỹ thuật khai thác mẫu chuỗi là một trong những phương pháp quan trọng trong khai thác sử dụng web.
Thuật toán khai thác mẫu chuỗi gồm một số phương pháp như: AprioriAll, mẫu tăng trưởng và cách tiếp cận dựa cây WAP
Phương pháp AprioriAll là một kỹ thuật khai thác mẫu chuỗi dựa trên thuật toán Apriori, thực hiện nhiều lần quét cơ sở dữ liệu để xác định tập phổ biến có kích thước k, bắt đầu từ k = 2 Đầu tiên, bộ 1-tập phổ biến (L1) được xác định bằng cách thu thập số lượng cho từng mục và lọc những mục đạt ngưỡng hỗ trợ tối thiểu Sau đó, L1 được sử dụng để tìm L2 (bộ 2-tập phổ biến) và tiếp tục cho đến khi không còn k-tập phổ biến nào Để tối ưu hóa quá trình quét, thuộc tính Apriori được áp dụng nhằm giảm không gian tìm kiếm Theo thuộc tính này, nếu một tập phổ biến I không đạt ngưỡng hỗ trợ tối thiểu (min_sup), thì bất kỳ tập nào mở rộng từ I (ví dụ I U A) cũng sẽ không thể phổ biến hơn I Ví dụ, trong cơ sở dữ liệu giao dịch “All Electronics” với 9 giao dịch, quy trình này sẽ giúp xác định các tập phổ biến một cách hiệu quả.
Bảng 2.1 - Danh sách các tập giao dịch của người dùng truy cập web [9]
TID Danh sách mục_IDs
Thuật toán tìm kiếm tập phổ biến ứng cử viên bắt đầu bằng cách duyệt qua từng mục trong bộ ứng cử viên 1-tập phổ biến C1 Nó quét toàn bộ tập giao dịch để đếm số lần xuất hiện của mỗi mục, với yêu cầu độ hỗ trợ cực tiểu là 2 (min_sup=2) Bộ 1-tập phổ biến L1 được chọn từ những ứng cử viên thỏa mãn yêu cầu này Trong ví dụ, tất cả ứng cử viên trong C1 đều đáp ứng độ hỗ trợ cực tiểu Thuật toán tiếp tục quá trình cho đến khi không còn k-tập phổ biến nào nữa.
Thuật toán GSP, được đề xuất bởi Srikant và Agrawal vào năm 1996, sử dụng phương pháp quét nhiều ứng cử viên để tìm kiếm mẫu chuỗi Đối với mỗi cấp độ chuỗi dài k, GSP quét cơ sở dữ liệu để thu thập độ hỗ trợ cho từng ứng cử viên, sau đó tạo ra chuỗi có chiều dài (k +1) từ các chuỗi phổ biến có chiều dài k thông qua phương pháp Apriori Quá trình này được lặp lại cho đến khi không còn chuỗi phổ biến hoặc không tìm thấy ứng cử viên nào Kết quả thực nghiệm cho thấy GSP hoạt động nhanh và hiệu quả khi chuỗi không quá dài và cơ sở dữ liệu không quá lớn.
Các phương pháp mẫu tăng trưởng đã trở thành giải pháp hiệu quả cho việc tạo ra và thử nghiệm trong thập kỷ 2000 Ý tưởng cốt lõi của phương pháp này là giảm thiểu việc tạo ra các chuỗi ứng cử viên, tập trung vào việc khám phá một phần hạn chế của cơ sở dữ liệu ban đầu.
Các thuật toán mẫu tăng trưởng nhằm xây dựng đại diện cho cơ sở dữ liệu và phân vùng không gian tìm kiếm một cách hiệu quả, với mục tiêu tạo ra ít chuỗi ứng cử viên nhất có thể Chúng phát triển từ các chuỗi phổ biến đã được khai thác và áp dụng thuộc tính Apriori để tìm kiếm các chuỗi này Hai thuật toán mẫu tăng trưởng tiêu biểu là FreeSpan và PrefixSpan, trong đó cơ sở dữ liệu dự kiến được xây dựng từ các hậu tố của chuỗi trong cơ sở dữ liệu ban đầu dựa trên các tiền tố hiện tại Việc sử dụng cơ sở dữ liệu dự kiến giúp giảm không gian tìm kiếm ở mỗi bước đệ quy trong quá trình xây dựng mẫu.
PrefixSpan hiệu quả hơn FreeSpan vì nó giúp giảm kích thước cơ sở dữ liệu khi tiền tố phát triển Hơn nữa, PrefixSpan không tạo ra ứng cử viên mà chỉ đơn giản đếm tần số của các đối tượng.
Thuật toán tăng trưởng FP tìm kiếm các mục phổ biến mà không cần tạo ra ứng cử viên, giữ lại tập phổ biến có thông tin phù hợp và nén dữ liệu vào bộ dữ liệu điều kiện Phương pháp này giúp giảm kích thước bộ dữ liệu cần tìm kiếm và xem xét các mẫu "tăng trưởng" Ví dụ, trong cơ sở dữ liệu giao dịch D, FP quét lần đầu để lấy bộ các mục phổ biến và độ hỗ trợ với hỗ trợ tối thiểu là 2, cho ra danh sách L={{I2:7}, {I1:6}, {I3:6}, {I4:2}, {I5:2}} Cây FP được xây dựng bằng cách tạo nút gốc có nhãn "null" và quét lại cơ sở dữ liệu D lần thứ hai, xử lý các mục theo thứ tự trong L để tạo nhánh cho mỗi giao dịch.
Quét tập giao dịch đầu tiên “T100: I1, I2, I5” tạo ra nhánh đầu tiên của cây với 3 nút , và , trong đó I2 là nút con của nút gốc, I1 liên kết với I2, và I5 liên kết với I1 Giao dịch thứ hai, T200, chứa các mục I2 và I4, dẫn đến việc I2 vẫn liên kết với gốc và I4 liên kết với I2 Nhánh này chia sẻ tiền tố chung I2 với đường dẫn T100, do đó, số lượng của nút I2 được tăng lên 1 và tạo ra nút mới liên kết với Khi thêm nhánh cho giao dịch, số lượng của mỗi nút dọc theo tiền tố chung sẽ tăng lên 1, và các nút cho các mục theo tiền tố được tạo ra và liên kết tương ứng Để thuận tiện cho việc giao nhau trên cây, bảng tiêu đề các mục được xây dựng để mỗi mục trỏ tới sự xuất hiện các liên kết nút trong cây qua chuỗi Cây sau đó quét tất cả các giao dịch với các liên kết nút phù hợp.
Hình 2.2 - Cây FP ghi nén, thông tin mẫu phổ biến [9]
Cây FP được khai thác từ mỗi mẫu 1-tập phổ biến, xây dựng cơ sở mẫu điều kiện (“cơ sở dữ liệu phụ”) bao gồm các đường dẫn tiền tố liên quan đến mẫu hậu tố Sau đó, cây FP điều kiện được tạo ra và khai thác đệ quy Mẫu tăng trưởng được lưu trữ thông qua sự ghép nối giữa mẫu hậu tố và mẫu phổ biến từ cây FP điều kiện Cụ thể, với I5, xuất hiện trong hai nhánh cây FP, đường dẫn tương ứng là và Khi xem xét I5 như một hậu tố, hai đường dẫn tiền tố là và .
FP điều kiện I5 chỉ có một đường dẫn đơn và không được bao gồm vì số hỗ trợ của nó thấp hơn số hỗ trợ cực tiểu Đường dẫn đơn này tạo ra các kết nối của các mẫu phổ biến như {I2, I5:2}, {I1, I5:2}, và {I2, I1, I5:2} Đối với I4, hai đường dẫn tiền tố dựa trên mẫu điều kiện là {{I2, I1:1}, {I2:1}} tạo ra nút đơn trong cây FP điều kiện và tạo ra mẫu phổ biến {I2, I4:2} Cơ sở mẫu điều kiện I3 là {{I2, I1:2},{I2:2},{I1:2}}, với cây FP điều kiện có hai nhánh và , tạo ra bộ các mẫu {{I2, I3:4}, {I1, I3:4}, {I2, I1, I3:2}} Cuối cùng, mẫu điều kiện của I1 là {{I2:4}}, với một cây FP chỉ chứa một nút , tạo ra mẫu phổ biến {I2, I1:4}.
Bảng 2.2 - Khai thác cây FP bằng cách tạo ra cơ sở mẫu điều kiện [9]
Mục Cơ sở mẫu điều kiện Cây FP điều kiện Tạo ra mẫu phổ biến I5
Hình 2.3 - Cây FP điều kiện liên kết với nút điều kiện I3 [9]
Phương pháp tiếp cận dựa trên cây WAP nhằm xây dựng cấu trúc cơ sở dữ liệu chuỗi truy cập web, khắc phục hạn chế của thuật toán Apriori và trích xuất mẫu phổ biến hiệu quả Việc xây dựng cây WAP yêu cầu quét cơ sở dữ liệu hai lần: lần đầu để xác định các sự kiện phổ biến, lần hai để xây dựng cây WAP từ chuỗi sự kiện phổ biến của mỗi phiên Cây WAP hỗ trợ phát triển các thuật toán khai thác có khả năng xử lý lượng lớn mẫu truy cập web, như WAP-Mine, CS-Mine và PLWAP-Mine Thuật toán khai thác cây WAP quét cơ sở dữ liệu hai lần và giúp tránh vấn đề tăng nhanh của tập ứng cử viên.
Khai thác cây WAP mang lại hiệu quả cao hơn, tuy nhiên, nhược điểm lớn nhất là quá trình này tạo ra nhiều trung gian cây WAP, yêu cầu lưu trữ mẫu trung gian, dẫn đến việc tiêu tốn thời gian đáng kể.
Hai thuật toán khai thác mẫu chuỗi, CS-Mine và PLWAP-Mine, vượt trội hơn WAP-Mine vì chúng không sử dụng phương pháp đệ quy để xây dựng lại cây WAP trung gian.
Thuật toán CS-Mine quét cơ sở dữ liệu chuỗi truy cập web để xây dựng cây WAP, từ đó khởi tạo các cơ sở có điều kiện cho mỗi sự kiện phổ biến Điều này cho phép tìm kiếm mẫu phổ biến dựa trên chuỗi có điều kiện Nếu sự kết hợp của các chuỗi có điều kiện tạo ra một chuỗi duy nhất, một mẫu phổ biến sẽ được hình thành Nếu không, các chuỗi phụ có điều kiện sẽ được tái xây dựng và kiểm tra bằng thuật toán đệ quy Hai quá trình quan trọng trong thuật toán này là phân chia cơ sở dữ liệu và sự kết hợp chuỗi có điều kiện, giúp giảm không gian tìm kiếm so với các thuật toán khai thác chuỗi khác Tuy nhiên, điều này cũng có thể dẫn đến việc bỏ lỡ một số mẫu phổ biến do không xem xét tất cả các chuỗi trong toàn bộ không gian tìm kiếm.
Thuật toán khai thác cây WAP và cây PLWAP trong khai thác chuỗi dữ liệu
2.2.1 Khai thác WAS từ web log
Web log là một chuỗi sự kiện ghi lại thông tin truy cập của người dùng thông qua các thuộc tính giá trị nhận dạng Thông tin này có thể kết hợp nhiều giá trị trong định dạng web log đã được cung cấp Ví dụ, nội dung truy cập được biểu diễn dưới dạng các mục {a, b, c, d, e, f} Một chuỗi các trang truy cập từ web log được xử lý và hiển thị dưới định dạng .
Các sự kiện web log được xử lý trước, được nhóm thành các chuỗi truy cập cho mỗi người dùng, tạo ra cơ sở dữ liệu giao dịch Mỗi chuỗi web log trong cơ sở dữ liệu này bao gồm một ID giao dịch và chuỗi truy cập web tương ứng Ví dụ, người dùng với ID 100 đã truy cập các nội dung a, b, d, a và c Các giao dịch chuỗi truy cập web từ dữ liệu web log được thể hiện trong Bảng 2.3 Vấn đề khai thác mẫu tuần tự từ các web log hiện nay dựa trên cơ sở dữ liệu này, với một tập hợp các sự kiện E, chuỗi truy cập S có thể được biểu diễn dưới dạng e1 e2 en, trong đó ei thuộc E (1 ≤ i ≤ n).
Bảng 2.3 - Danh sách dữ liệu chuỗi truy cập web [3]
ID giao dịch Chuỗi truy cập web
Dữ liệu chuỗi truy cập web bao gồm các chuỗi truy cập S1, S2, , Sm, trong đó mỗi Si (1 ≤ i ≤ m) là một chuỗi truy cập Chẳng hạn, cơ sở dữ liệu web có bốn chuỗi truy cập: abdac, eaebcac, babfaec và babfaec Một chuỗi truy cập S' = e'1 e'2 …e'l được gọi là chuỗi con của chuỗi truy cập S = e1 e2 …en, và S là siêu chuỗi của S' ký hiệu là S' ⊆ S, nếu mỗi sự kiện e'j trong S' đều có một sự kiện tương ứng ek trong S, với thứ tự các sự kiện trong S phải theo thứ tự của S' Ví dụ, với S' = ab và S = babcd, chúng ta có thể xác định mối quan hệ giữa chúng.
Chuỗi con S là một phần của chuỗi S, và một chuỗi a cũng có thể được xem là chuỗi con của S, mặc dù có thể có b nằm giữa a và c trong S Một ví dụ điển hình là chuỗi truy cập được phát hiện trong quá trình khai thác, yêu cầu có độ hỗ trợ cao hơn mức tối thiểu Trong chuỗi truy cập S = e1e2 ek ek+1 en, chuỗi hậu tố S = ek+1 en được xem là một chuỗi siêu mẫu P = e1'e2' el', với ek+1 = el' Tiền tố của S đối với mẫu P là e1e2 ek, trong khi chuỗi hậu tố là phần còn lại của S Chẳng hạn, trong chuỗi eaebcac, eae là tiền tố của bcac, và bcac là hậu tố của eae Độ hỗ trợ của mẫu S trong dữ liệu chuỗi truy cập web được xác định bằng số chuỗi Si chứa S, chia cho tổng số giao dịch trong cơ sở dữ liệu chuỗi truy cập web Dù sự kiện có thể lặp lại trong chuỗi truy cập, mỗi mẫu chỉ có thể có một độ hỗ trợ từ một chuỗi truy cập.
Ví dụ, từ Bảng 2.5, fc là một mẫu, mà được 50% hỗ trợ từ ID người sử dụng 300 và
400, fc xuất hiện lần thứ nhất trong chuỗi ID người sử dụng 300 và lần thứ hai trong
ID người sử dụng là 400 Vấn đề khai thác dữ liệu web là tìm kiếm tất cả các mẫu có mức hỗ trợ lớn hơn λ trong cơ sở dữ liệu chuỗi truy cập web, với ngưỡng hỗ trợ tối thiểu là λ Những mẫu này được coi là các chuỗi phổ biến.
2.2.2 Thuật toán khai thác cây WAP
Thuật toán cây WAP lưu trữ các dữ liệu web log trong một định dạng cây tiền tố giống cho dữ liệu không liên tục
Thuật toán đầu tiên quét các trang web log để xác định các sự kiện phổ biến Sau đó, nó xây dựng một cây WAP bằng cách quét lại các trang log Tiếp theo, thuật toán tìm kiếm các mẫu hậu tố có điều kiện và tạo ra các cây WAP điều kiện trung gian dựa trên các mẫu này Cuối cùng, nó lặp lại quá trình tìm kiếm mẫu và xây dựng cây WAP cho đến khi chỉ còn lại một nhánh hoặc cây rỗng.
Thuật toán khai thác cây WAP tìm kiếm các sự kiện phổ biến trong web log bằng cách xây dựng cây WAP và khai thác các mẫu truy cập từ đó Cơ sở dữ liệu chuỗi truy cập web log trong Bảng 2.3 minh họa quy trình này, với ngưỡng hỗ trợ tối thiểu được thiết lập ở 75%, yêu cầu mỗi chuỗi truy cập phải có ít nhất 3 trên 4 bản ghi để được coi là phổ biến Quá trình xây dựng cây WAP bắt đầu bằng việc quét cơ sở dữ liệu để xác định các sự kiện phổ biến, loại bỏ phần không phổ biến của mỗi chuỗi Chỉ các chuỗi con phổ biến được sử dụng làm đầu vào, như thể hiện trong Bảng 2.4, nơi danh sách sự kiện gồm a, b, c, d, e, f với hỗ trợ tương ứng là 4, 4, 4, 1, 3, và 2.
Chỉ có các sự kiện a, b, c là phổ biến, do đó các sự kiện không phổ biến như d, e, f đã được loại bỏ khỏi mỗi chuỗi giao dịch Kết quả là, chuỗi con phổ biến được thể hiện trong cột ba của Bảng 2.4.
Bảng 2.4 - Danh sách dữ liệu chuỗi truy cập web cho cây WAP [3]
ID giao dịch Chuỗi truy cập web Chuỗi con phổ biến
Thuật toán khai thác cây WAP lưu trữ các mục phổ biến trong giao dịch dưới dạng các nút tiêu đề, giúp liên kết tất cả các nút trong cây theo thứ tự chèn Khi xây dựng cây WAP, một nút gốc được khởi tạo, sau đó mỗi chuỗi phổ biến trong giao dịch sẽ tạo ra một nhánh từ gốc đến nút lá Mỗi sự kiện trong chuỗi được thêm vào như một nút với số lượng tương ứng.
Khi chèn một chuỗi mới vào cơ sở dữ liệu, nếu nút gốc chưa tồn tại, nó sẽ được tạo mới, còn nếu đã tồn tại, số lượng của nút sẽ được tăng thêm 1 Liên kết đầu cho các sự kiện sẽ được kết nối đến nút mới từ nút cuối cùng cùng loại hoặc từ nút tiêu đề nếu đó là nút đầu tiên Ví dụ, khi chèn chuỗi "abac" với ID 100, nút "a" được tạo ra với số lượng 1, và sau đó, nút "b" và "c" được chèn vào theo cấu trúc cây Khi chèn chuỗi "abcac" với ID 200, số lượng nút "a" và "b" được tăng lên, trong khi nút mới "c" được tạo ra Các chuỗi giao dịch tiếp theo như "babac" và "abacc" cũng được chèn vào tương tự, tạo thành các nút mới và cập nhật số lượng cho các nút đã tồn tại.
(b) Cây WAP (sau khi chèn abcac)
(c) Cây WAP (sau khi chèn babac)
Hình 2.4 - Xây dựng cây WAP ban đầu [3]
Dữ liệu chuỗi được lưu trữ trên cây WAP sẽ được khai thác để tìm các mẫu phổ biến, bắt đầu từ sự kiện phổ biến thấp nhất trong danh sách tiêu đề Trong ví dụ này, quá trình bắt đầu từ sự kiện phổ biến c trong cây WAP Đầu tiên, chuỗi tiền tố của chuỗi c có điều kiện được tính toán, với các kết quả như: aba: 2; ab: 1; abca: 1; ab: -1; baba: 1; abac: 1; aba: -1.
Danh sách chuỗi có điều kiện của một sự kiện hậu tố được tạo ra bằng cách theo dõi các liên kết tiêu đề và đọc các đường từ gốc đến từng nút, ngoại trừ nút đó Chuỗi đầu tiên "aba" đại diện cho đường dẫn đến nút "c" đầu tiên trong cây WAP Khi một chuỗi điều kiện trong một nhánh của cây WAP có chuỗi con tiền tố, nó cũng trở thành chuỗi điều kiện của một nút trong cùng cơ sở, nhưng số lượng của chuỗi mới này sẽ bị trừ đi vì đã xuất hiện trước đó Do đó, danh sách chuỗi có điều kiện bao gồm hai chuỗi "ab" và "aba" với số lượng -1, vì khi chuỗi "abca" được thêm vào danh sách, chuỗi "ab" đã tồn tại từ trước trên cùng một nhánh.
Số lượng của ab với -1 đã được thêm vào để ngăn chặn sự xuất hiện hai lần Để một sự kiện trở thành sự kiện phổ biến có điều kiện, nó cần có số lượng tối thiểu là 3 Sau khi đếm, các sự kiện phổ biến có điều kiện là a(4) và b(4), trong khi c chỉ có số lượng 2, do đó c sẽ bị loại bỏ Sau khi loại bỏ c không phổ biến, các chuỗi có điều kiện dựa trên c được liệt kê như sau: aba:2; ab:1; aba:1; ab:−1; baba:1; aba:1; aba:−1.
Hình 2.5 - Xây dựng lại cây WAP cho khai thác mẫu có điều kiện dựa trên c [3]
Gốc (a) Cây WAP có điều kiện |c
(b) Cây WAP có điều kiện |bc
(c) Cây WAP có điều kiện |ac
(d) Cây WAP có điều kiện
(e) Cây WAP có điều kiện
Ta sử dụng chuỗi có điều kiện và cây WAP có điều kiện được xây dựng theo phương pháp tương tự như hình 2.4 Cây WAP có điều kiện mới được thể hiện trong hình 2.5 (a) Đệ quy dựa trên cây WAP trong hình 2.5 (a) cho phép tìm chuỗi có điều kiện cho chuỗi con hậu tố bc, với các mẫu phổ biến như a(3) và ba(1) Chuỗi phổ biến bc được dùng để xây dựng cây WAP tiếp theo, thể hiện trong hình 2.5 (b) là a(4) Đệ quy tiếp tục với các hậu tố | c và | ac, cho phép tính toán chuỗi có điều kiện cho hậu tố ac từ hình 2.5 (a) như ab : 3; b : 1; bab : 1; b : -1, và danh sách này được dùng để xây dựng cây WAP trong hình 2.5 (c) Thuật toán tiếp tục tìm kiếm chuỗi có điều kiện dựa vào chuỗi bac với các sự kiện phổ biến như a : 4, dẫn đến việc xây dựng cây WAP | bac điều kiện trong hình 2.5 (d) Khi hoàn thành việc khai thác mẫu phổ biến với hậu tố ac, hình 2.5 (c) đã khai thác chuỗi có điều kiện cho hậu tố aac để tìm b : 1 Do số lượng b : 1 ít hơn ngưỡng hỗ trợ tối thiểu, nó bị loại bỏ, dẫn đến cây WAP có điều kiện rỗng với hậu tố aac trong hình 2.5 (e) Cuối cùng, việc tìm kiếm các mẫu phổ biến với các hậu tố khác cũng được thực hiện tương tự, và sau khi khai thác toàn bộ cây, các mẫu phổ biến được xác lập là {c, aac, bac, abac, ac, abc, bc, b, ab, a, aa, ba, aba}.
Thuật toán khai thác cây WAP quét cơ sở dữ liệu chỉ hai lần, giúp khắc phục vấn đề tạo tập ứng cử viên tăng nhanh như trong thuật toán Apriori, từ đó cải thiện hiệu quả khai thác Tuy nhiên, nhược điểm lớn của phương pháp này là việc đệ quy xây dựng nhiều cây WAP trung gian, yêu cầu lưu trữ mẫu trung gian và vẫn tốn thời gian.
2.2.3 Thuật toán khai thác cây PLWAP