Chương 1 – PHÁT HIỆN LUẬT KẾT HỢP VÀ LUẬT KẾT HỢP HIẾM Đầu tiên, chương này giới thiệu tổng quan về luật kết hợp: khái niệm luật kết hợp, bài toán phát hiện luật kết hợp, phương pháp chung phát hiện luật kết hợp, phát hiện luật kết hợp với độ hỗ trợ cực tiểu không giống nhau. Tiếp theo, vấn đề phát hiện luật kết hợp từ CSDL định lượng được trình bày. Phần cuối của chương sẽ trình bày về vấn đề phát hiện luật kết hợp hiếm: giới thiệu chung về luật kết hợp hiếm, một số hướng nghiên cứu chính và khuynh hướng nghiên cứu về luật kết hợp hiếm. Luật kết hợp và phương pháp chung phát hiện luật kết hợp 1.
Bài toán phát hiện luật kết hợp Mục đích của bài toán phát hiện luật kết hợp là tìm ra mối quan hệ giữa các tập mục dữ liệu trong các CSDL lớn và các mối quan hệ này là có ích trong hỗ trợ quyết định. Trong CSDL siêu thị, việc phát hiện được quan hệ "78% số khách hàng mua sữa và đường cũng mua bơ" sẽ rất có ích cho quyết định kinh doanh, chẳng hạn, quyết định về số lượng nhập các mặt hàng này hoặc bố trí chúng tại các ngăn hàng liền kề nhau. Trong CSDL dân số, quan hệ "60% số người lao động ở độ tuổi trung niên có thu nhập thấp hơn mức thu nhập bình quân" sẽ rất có ích cho việc điều chỉnh chính sách thu nhập [13, 14, 16]. Khái niệm luật kết hợp (Association Rule) và phát hiện luật kết hợp (Association Rule Mining) được Rakesh Agrawal và cộng sự đề xuất lần đầu tiên vào năm 1993 nhằm phát hiện các mẫu có giá trị trong CSDL tác vụ (transaction database) tại siêu thị [10].
Bài toán này được phát biểu hình thức như dưới đây., in} là tập các mục dữ liệu (mỗi mặt hàng trong siêu thị chính là một mục dữ liệu, và cũng có thể xem nó là một thuộc tính nhận giá trị nhị phân, khi đó I là các thuộc tính của CSDL); tập X Ì I được gọi là tập mục dữ liệu hoặc tập mục (itemset); và O = {t1, t2,., tm} là tập định danh của các tác vụ (mỗi vụ mua hàng được xem là một tác vụ). Quan hệ D Í I´O được gọi là CSDL tác vụ. 18 Mỗi tác vụ t được biểu diễn như một véc tơ nhị phân, trong đó t[k] = 1 nếu mặt hàng ik xuất hiện trong t và ngược lại t[k] = 0. Cho một tập mục dữ liệu X Í I, độ hỗ trợ của tập X, kí hiệu là sup(X), được định nghĩa là số (hoặc phần trăm) tác vụ trong D chứa X.
Luật kết hợp (association rule) được định nghĩa hình thức là biểu diễn mối quan hệ giữa hai tập mục dưới dạng X ® Y, trong đó X Í I, Y Í I, XÇY = Æ. X được gọi là phần tiền đề (antecedent) và Y được gọi là phần hệ quả (consequent) của luật. Độ hỗ trợ (support) của luật X ® Y, kí hiệu là sup(X ® Y), được định nghĩa là số (hoặc phần trăm) tác vụ trong D chứa XÈY. và cộng sự [13], luật kết hợp được phát hiện cần đáp ứng ràng buộc độ hỗ trợ (support constraint), theo đó, độ hỗ trợ của tập mục W = XÈY (hợp tập tiền đề và tập hệ quả của luật) phải vượt qua (không nhỏ thua) một ngưỡng hỗ trợ tối thiểu do người dùng đưa vào.
Mọi tập W có tính chất nói trên được gọi là tập phổ biến (frequent itemset) và còn được gọi là tập mục lớn (large itemset). Độ tin cậy (confidence) của luật X ® Y, kí hiệu là conf(X ® Y), được định nghĩa là số (hoặc phần trăm) tác vụ trong D chứa X cũng chứa Y.2) sup( X ) Luật kết hợp được phát hiện cần có tính tin cậy, theo đó nó cần có độ tin cậy vượt qua (không nhỏ thua) một ngưỡng tin cậy tối thiểu do người dùng đưa vào. Luật đáp ứng ràng buộc độ hỗ trợ và có tính tin cậy được gọi là luật mạnh (strong association rule). Quy trình hai bước phát hiện luật kết hợp Mục đích của bài toán phát hiện luật kết hợp trong CSDL tác vụ D là đi tìm tất cả các luật kết hợp mạnh (độ hỗ trợ cực tiểu và độ tin cậy cực tiểu do người sử dụng 19 đưa ra trong quá trình phát hiện luật).
Rất nhiều giải pháp phát hiện luật kết hợp đã được đề xuất, chẳng hạn, theo thống kê của MicroSoft [101], đã có 2671 tác giả công bố 1526 công trình khoa học có giá trị (với 10224 lần được chỉ dẫn) về phát hiện luật kết hợp. Phần lớn các thuật toán phát hiện luật kết hợp chia quá trình giải bài toán này thành hai giai đoạn như sau: (1) Giai đoạn 1: Tìm tất cả các tập phổ biến trong CSDL D. (2) Giai đoạn 2: Với mỗi tập phổ biến I1 tìm được ở giai đoạn 1, sinh ra tất cả các luật mạnh có dạng I2 ® I1 – I2, I2 Ì I1. Trong hai giai đoạn trên, giai đoạn 1 là khó khăn, phức tạp và tốn nhiều chi phí.
Bài toán tìm tập phổ biến trong không gian các tập con của tập mục I có độ phức tạp tính toán là O(2|I|). Giai đoạn 2 được giải quyết đơn giản hơn khi đã có các tập phổ biến và độ hỗ trợ của chúng. Các phần tiếp theo sẽ trình bày một cách cơ bản, tóm lược về tiến trình phát triển nghiên cứu về luật kết hợp. Ban đầu là nghiên cứu phát hiện luật kết hợp trong các CSDL tác vụ, có độ hỗ trợ cực tiểu chung như nhau và chúng đều là các luật mạnh,., tiếp theo được mở rộng sang CSDL định lượng, và/hoặc độ hỗ trợ cực tiểu của các luật kết hợp là không giống nhau và/hoặc các luật kết hợp là luật hiếm,.
Nói cách khác nghiên cứu phát hiện luật kết hợp càng càng được phát triển để thích ứng với nhu cầu đa dạng của thực tiễn. Phát hiện luật kết hợp từ CSDL tác vụ Phát hiện luật kết hợp trong CSDL tác vụ được khởi đầu từ phát hiện luật kết hợp với một ngưỡng độ hỗ trợ, và sau đó, tới phát hiện luật kết hợp với độ hỗ trợ khác nhau cho các mục dữ liệu. Phát hiện luật kết hợp với một ngưỡng độ hỗ trợ Trong giai đoạn đầu tiên, bài toán phát hiện luật kết hợp đề cập tới một ngưỡng độ hỗ trợ chung (độ hỗ trợ cực tiểu) do người sử dụng đưa vào. Việc phát hiện luật kết hợp tuân thủ theo quy trình chung hai bước, chủ yếu tập trung vào bước tìm ra tập các tập phổ biến, với ba hướng giải quyết: 20 - Tìm tất cả các tập phổ biến.
- Tìm tất cả các tập phổ biến đóng. - Tìm tất cả các tập phổ biến cực đại. Phát hiện luật kết hợp từ tất cả các tập phổ biến Đây là cách tiếp cận nguyên thủy [13]. Các phương pháp thuộc cách tiếp cận này được chia thành các phương pháp duyệt không gian tìm kiếm và các phương pháp xác định trước độ hỗ trợ.
Bỏ qua độ phức tạp vào – ra và tính toán khi duyệt CSDL, các thuật toán này đều thực hiện tìm kiếm trên cây các tập con của tập mục I vì vậy độ phức tạp tính toán là O(2|I|). Phương pháp duyệt không gian tìm kiếm được chia thành hai nhóm tương ứng khi duyệt cây các tập mục: duyệt theo chiều rộng (Breadth First Search - BFS) và duyệt theo chiều sâu (Depth First Search - DFS). Duyệt theo chiều rộng là duyệt theo kích thước k của các tập mục ứng viên lần lượt từ kích thước 1, 2. Một số thuật toán phổ biến theo cách tiếp cận này là: Apriori [16], Partition [70],., mà theo [88], thuật toán Apriori (hình 1.1, kí hiệu diễn giải ở trong bảng 1.1) được xếp vào tốp 10 thuật toán khai phá dữ liệu điển hình nhất.
Duyệt theo chiều sâu là duyệt xong các tập ứng viên liên quan với một tập mục phổ biến mới chuyển sang xem xét đối với tập phổ biến cùng kích thước khác. Các thuật toán điển hình theo cách tiếp cận này là: FP-Growth [42], ECLAT [96],.1: Bảng diễn giải các kí hiệu sử dụng trong thuật toán Apriori Kí hiệu Ý nghĩa k-itemsets Tập k – mục dữ liệu. Lk Tập các k - tập dữ liệu phổ biến. Mỗi một phần tử của tập này có 2 trường: i) tập dữ liệu và ii) độ hỗ trợ Ck Tập các k - tập dữ liệu ứng cử viên (tiềm năng là tập phổ biến).
Mỗi một phần tử của tập này có 2 trường: i) tập dữ liệu và ii) độ hỗ trợ 21 Đầu vào: CSDL D, độ hỗ trợ cực tiểu minSup Kết quả: Tập các tập phổ biến Thuật toán Apriori tìm các tập phổ biến: 1. L1 ¬ {1- tập mục dữ liệu phổ biến } 2. for (k ¬ 2; Lk-1 ¹ Æ; k++) do begin 3. Ck ¬ Apriori-gen(Lk-1); // sinh các ứng cử viên k-mục dữ liệu 4.
forall transactions tÎD do begin 5. Ct ¬ subset(Ck, t); // ứng cử viên được chứa trong t 6. forall candidates cÎ Ct do 7. Lk ¬{cÎ Ck | c.
Answer ¬ Èk Lk Hàm Apriori-Gen sinh ra ứng cử viên: Procedure apriori-gen(Lk-1) insert into Ck //bước kết nối select p.itemk-1 from Lk-1 p, Lk-1 q where p.itemk-1; forall itemsets c Î Ck do //bước tỉa forall (k-1)-subsets s of c do if (s Ï Lk-1) then delete c from Ck; Hình 1.1: Thuật toán Apriori Đối với các CSDL lớn, độ phức tạp vào-ra và tính toán khi duyệt CSDL là rất lớn, cho nên các phương pháp xác định trước độ hỗ trợ được phát triển nhằm làm giảm số lần truy cập CSDL. Một số phương pháp cho phép xây dựng các cấu trúc dữ liệu trung gian thích hợp để phát hiện các tập phổ biến chỉ cần hai lần duyệt CSDL [70, 71]. Phát hiện luật kết hợp từ các tập phổ biến đóng Như đã biết, bài toán tìm tập phổ biến nói chung có độ phức tạp tính toán O(2|I|). Một trong các hướng giảm độ phức tạp tính toán là phát triển các phương pháp giảm số lượng tập mục phải duyệt.
Hsiao [94] định nghĩa kết nối Galois và tập mục dữ liệu đóng, xây dựng dàn tập mục dữ liệu đóng để tìm tập phổ biến đóng cho phép giảm thiểu độ phức tạp tính toán do số lượng tập phổ biến đóng nhỏ hơn số lượng tập phổ biến. Về lý thuyết, kích cỡ của dàn tập mục đóng là |LC| = 2K|D| với K là độ dài của tập đóng cực đại. Kết quả thực nghiệm cho thấy tốc độ phát triển trung bình không gian tìm kiếm nhỏ hơn 2K. Một số thuật toán tìm tập phổ biến đóng thông dụng là: CHARM [94], CLOSE [64], CLOSET+ [65],.
Thuật toán CHARM được đánh giá là thuật toán hiệu quả nhất trong việc tìm các tập phổ biến đóng.