Bối cảnh và vấn đề nghiên cứu

Khai phá dữ liệu (Data Mining) và khám phá tri thức từ cơ sở dữ liệu (Knowledge Discovery in Databases - KDD) đóng vai trò then chốt trong việc phân tích các tập dữ liệu lớn nhằm phát hiện các xu hướng, mẫu hình ẩn và thiết lập những mối quan hệ có giá trị, hỗ trợ quá trình ra quyết định trong hoạt động thực tiễn và kinh doanh. Trong đó, khai phá tập phổ biến (Frequent Itemset Mining - FIM) và khai phá luật kết hợp (Association Rule Mining - ARM) là những bài toán nền tảng. Các thuật toán kinh điển như Apriori, FP-growth và Eclat đã được phát triển để xử lý hiệu quả bài toán khai thác tập phổ biến trên các cơ sở dữ liệu giao dịch truyền thống.

Tuy nhiên, các phương pháp truyền thống phần lớn giả định rằng tất cả các mục (items) trong cơ sở dữ liệu đều có tầm quan trọng hay giá trị tương đương nhau. Trong thực tế, các sản phẩm hoặc đối tượng trong giao dịch thường mang các giá trị kinh tế, số lượng hoặc mức độ ưu tiên khác nhau, đòi hỏi phải gán trọng số cụ thể cho từng mục. Khi cơ sở dữ liệu được đánh trọng số, độ phức tạp của bài toán khai phá tăng lên rõ rệt do cần xử lý đồng thời tần suất xuất hiện và giá trị trọng số của từng phần tử. Thêm vào đó, việc khai thác tập phổ biến thông thường thường sinh ra một số lượng rất lớn các mẫu (pattern), gây khó khăn cho người dùng trong việc tiếp nhận, diễn giải và trích xuất các luật kết hợp thực sự hữu ích.

Để giải quyết các thách thức trên, đồ án tập trung vào bài toán khai thác Top-rank-$k$ tập phổ biến có trọng số (Mining Top-rank-$k$ Frequent Weighted Itemsets - FWIs). Mục tiêu và nhiệm vụ nghiên cứu cụ thể bao gồm:

  1. Nghiên cứu bài toán khai thác tập phổ biến có trọng số (FWIs) và cơ chế xếp hạng Top-rank-$k$ nhằm kiểm soát số lượng kết quả đầu ra, chỉ giữ lại $k$ mức xếp hạng phổ biến có trọng số cao nhất.
  2. Khảo sát và ứng dụng hai cấu trúc dữ liệu biểu diễn theo chiều dọc là Tidset và Diffset để xây dựng các thuật toán cơ sở gồm TFWIT (Top-rank-$k$ Frequent Weighted Itemsets using Tidsets) và TFWID (Top-rank-$k$ Frequent Weighted Itemsets using Diffsets).
  3. Phát triển cấu trúc danh sách nút có trọng số WN-list (Weighted N-list) và đề xuất thuật toán TFWIN nhằm khắc phục hạn chế về nén dữ liệu và thời gian thực thi của các cấu trúc dọc truyền thống.
  4. Tích hợp chiến lược cắt tỉa sớm (early pruning strategy) vào thuật toán TFWIN để hình thành thuật toán cải tiến TFWIN+, nâng cao hiệu quả thu hẹp không gian tìm kiếm.
  5. Triển khai cài đặt các thuật toán bằng ngôn ngữ lập trình Java, phân tích độ phức tạp thuật toán và tiến hành đánh giá thực nghiệm (Empirical Evaluation) về thời gian chạy cùng mức tiêu thụ bộ nhớ.

Đối tượng nghiên cứu của đề tài là các mô hình toán học của tập phổ biến có trọng số, các biểu diễn rút gọn (như tập phổ biến đóng FCIs, tập phổ biến tối đa MFIs), cùng các cấu trúc dữ liệu Tidset, Diffset và WN-list. Phạm vi nghiên cứu được thực hiện trong khuôn khổ đồ án môn học Phân tích và thiết kế giải thuật tại Khoa Công nghệ Thông tin, Trường Đại học Tôn Đức Thắng (khóa K25, năm 2023), do sinh viên Nguyễn Triệu Vi (MSSV: 52100143) và Trần Thành Đạt (MSSV: 52100879) thực hiện dưới sự hướng dẫn của giảng viên TS. Nguyễn Chí Thiện.

Cơ sở lý thuyết và phương pháp

Cơ sở lý thuyết của nghiên cứu được xây dựng trên các nguyên lý khai phá dữ liệu, khai phá luật kết hợp và lý thuyết về tập phổ biến có trọng số:

  • Mô hình trọng số giao dịch: Trọng số của một giao dịch ($T$) được tính bằng giá trị trung bình của trọng số các mục thành phần có trong giao dịch đó.
  • Mức hỗ trợ có trọng số (Weighted Support): Mức hỗ trợ có trọng số của một tập mục được xác định bằng tỷ lệ giữa tổng trọng số của tất cả các giao dịch chứa tập mục đó trên tổng trọng số của toàn bộ các giao dịch trong cơ sở dữ liệu. Độ đo này phản ánh mức độ quan trọng thực tế của tập mục trong dữ liệu có biến đổi về trọng số.
  • Khai phá luật kết hợp: Gồm hai giai đoạn tuần tự: (1) Khai thác tất cả các tập phổ biến (FIs hoặc FWIs) thỏa mãn ngưỡng hỗ trợ, và (2) Sinh các luật kết hợp (Association Rules - ARs) dạng $X \rightarrow Y$ đạt ngưỡng độ tin cậy (confidence) xác định.
  • Biểu diễn rút gọn: Sử dụng các tập phổ biến đóng (Frequent Closed Itemsets - FCIs) hoặc tập phổ biến tối đa (Maximal Frequent Itemsets - MFIs) nhằm giảm không gian lưu trữ và thời gian tính toán mà vẫn cho phép suy dẫn đầy đủ tập phổ biến.
  • Cơ chế Top-rank-$k$: Thay vì sử dụng một ngưỡng hỗ trợ tối thiểu cố định (minsup) khó thiết lập chính xác trong thực tế, bài toán Top-rank-$k$ tự động tìm kiếm các tập mục có mức hỗ trợ có trọng số thuộc $k$ mức giá trị cao nhất.

Về mặt phương pháp luận và kỹ thuật, đồ án kết hợp phương pháp nghiên cứu lý thuyết giải thuật với phương pháp thực nghiệm:

  • Phân tích cấu trúc dữ liệu: Khảo sát cấu trúc Tidset (lưu trữ danh sách mã giao dịch chứa tập mục), Diffset (lưu trữ phần sai khác giữa các tập TID) và cấu trúc WN-list (Weighted N-list) dựa trên mã hóa tiền thứ tự và hậu thứ tự của cây tiền tố PPC-tree để nén dữ liệu và hỗ trợ tính toán giao cắt nhanh.
  • Chiến lược cắt tỉa sớm (Early Pruning): Áp dụng kỹ thuật cắt tỉa động trong quá trình duyệt không gian trạng thái, cập nhật cận dưới của mức hỗ trợ có trọng số trong danh sách top-$k$ để loại bỏ sớm các nhánh không có tiềm năng lọt vào nhóm dẫn đầu.
  • Phương pháp thực nghiệm: Toàn bộ các thuật toán TFWIN và TFWIN+ được thiết kế mã giả, phân tích độ phức tạp thời gian/không gian và lập trình hoàn chỉnh trên nền tảng Java. Đánh giá hiệu năng được tiến hành thông qua việc đo đạc thời gian thực thi (runtime) và dung lượng bộ nhớ sử dụng (memory consumption) trên các tập dữ liệu thử nghiệm.

Nội dung chính theo từng chương

Chương 1 – Mở đầu

Chương 1 trình bày bối cảnh chuyển đổi số và sự cần thiết của việc khai thác mối quan hệ giữa các sản phẩm trong danh mục có gắn trọng số. Tác giả phân tích hạn chế của các thuật toán truyền thống (Apriori, FP-growth, Eclat) khi xử lý dữ liệu trọng số phức tạp. Trên cơ sở đó, chương xác định mục tiêu phát triển các thuật toán khai thác Top-rank-$k$ tập phổ biến có trọng số (TFWIT, TFWID, TFWIN, TFWIN+), tận dụng các cấu trúc Tidset, Diffset và WN-list kết hợp chiến lược cắt tỉa động nhằm cải thiện thời gian thực thi và tối ưu hóa khả năng nén dữ liệu.

Chương 2 – Tổng quan và cơ sở lý thuyết

Chương 2 hệ thống hóa các khái niệm nền tảng về khai phá dữ liệu và khám phá tri thức từ dữ liệu (KDD). Nội dung tập trung làm rõ:

  • Định nghĩa khai phá dữ liệu và mục tiêu hỗ trợ dự đoán xu hướng cho doanh nghiệp.
  • Công thức tính trọng số giao dịch và mức hỗ trợ có trọng số của tập mục.
  • Khái niệm luật kết hợp, cấu trúc luật $X \rightarrow Y$ kèm theo hai chỉ số đo lường mức hỗ trợ (support) và độ tin cậy (confidence). Chương minh họa qua bảng dữ liệu khảo sát tiện nghi 8 hộ gia đình (với các thiết bị: Tivi, Tủ lạnh, Máy lạnh, Máy giặt, Máy vi tính) và ví dụ luật kết hợp cụ thể: $\text{Tivi} \rightarrow \text{Máy vi tính}$ $[50%, 57%]$.
  • Quy trình hai giai đoạn của khai phá luật kết hợp và nguyên lý hoạt động của thuật toán kinh điển Apriori.

Chương 3 – Frequent Weighted Itemset

Chương 3 đi sâu vào các định nghĩa hình thức liên quan đến tập phổ biến có trọng số (FWIs) và bài toán Top-rank-$k$ tập phổ biến có trọng số. Chương làm rõ sự khác biệt giữa bài toán tìm kiếm dựa trên ngưỡng hỗ trợ cố định và bài toán xếp hạng $k$ mức cao nhất, đồng thời phân tích vai trò của các dạng biểu diễn rút gọn (FCIs và MFIs) trong việc giảm bớt số lượng mẫu dư thừa mà không làm mất mát tri thức suy dẫn.

Chương 4 – Tidset and Diffset structures for mining FWIs

Chương 4 trình bày chi tiết về cấu trúc dữ liệu dạng dọc:

  • Cấu trúc Tidset: Lưu trữ trực tiếp danh sách mã định danh giao dịch (TID) cho từng tập mục, cho phép tính mức hỗ trợ thông qua phép giao hai tập hợp.
  • Cấu trúc Diffset: Chỉ lưu trữ sự khác biệt về TID giữa tập mục cha và tập mục con, giúp giảm đáng kể kích thước bộ nhớ so với Tidset trong các cơ sở dữ liệu dày đặc.
  • Thuật toán khai thác FWIs: Mô tả giải thuật TFWIT và TFWID, đồng thời chỉ ra nhược điểm của chúng về hiệu quả nén dữ liệu trên không gian tìm kiếm lớn, dẫn đến chi phí thời gian thực hiện còn cao.

Chương 5 – WN-List structure for mining FWIs. Implement JAVA with TFWIN & TFWIN+

Chương 5 là trọng tâm kỹ thuật của đồ án, bao gồm:

  • Định nghĩa hình thức và ví dụ minh họa về cấu trúc WN-list (Weighted N-list), kết hợp thông tin thứ tự duyệt cây (pre-order, post-order) và trọng số nút.
  • Thuật toán TFWIN: Trình bày nguyên lý khai thác Top-rank-$k$ FWIs dựa trên WN-list, cung cấp mã giả thuật toán, chi tiết cài đặt bằng ngôn ngữ Java, phân tích kết quả thu được và đánh giá độ phức tạp thuật toán.
  • Thuật toán TFWIN+: Đề xuất cải tiến tích hợp chiến lược cắt tỉa sớm (early pruning strategy) vào TFWIN, cung cấp mã giả chi tiết, mã nguồn triển khai Java, phân tích kết quả và chứng minh độ phức tạp tính toán được cải thiện nhờ loại bỏ sớm các nhánh không tiềm năng.

Chương 6 – Empirical Evaluation

Chương 6 trình bày quy trình và kết quả thử nghiệm thực nghiệm (Empirical Evaluation). Nội dung tập trung đo lường, đối sánh định lượng giữa các phương pháp TFWIT, TFWID, TFWIN và TFWIN+ dựa trên hai tiêu chí cốt lõi: thời gian thực thi (running time) và dung lượng bộ nhớ tiêu thụ (memory consumption). Kết quả thực nghiệm cung cấp bằng chứng định lượng khẳng định hiệu năng của thuật toán cải tiến TFWIN+.

Thiết kế và triển khai thuật toán

Đồ án tập trung thiết kế cấu trúc dữ liệu và hiện thực hóa các giải thuật xử lý dữ liệu có trọng số bằng ngôn ngữ lập trình Java. Các thành phần thiết kế và triển khai chính bao gồm:

+-------------------------------------------------------------------------+
|                        Quy trình thuật toán TFWIN+                      |
|                                                                         |
|  [CSDL giao dịch có trọng số]                                           |
|               |                                                         |
|               v                                                         |
|  [Khởi tạo cấu trúc WN-list ban đầu cho từng mục]                       |
|               |                                                         |
|               v                                                         |
|  [Duyệt không gian tìm kiếm theo nhánh]                                  |
|               |                                                         |
|               v                                                         |
|  [Áp dụng chiến lược cắt tỉa sớm (Early Pruning Strategy)]               |
|         /                           \                                   |
|        / (Không đạt ngưỡng)          \ (Đạt ngưỡng tiềm năng)           |
|       v                               v                                 |
|  [Loại bỏ nhánh]             [Sinh WN-list con & Cập nhật danh sách]    |
|                                       |                                 |
|                                       v                                 |
|                         [Xuất Top-rank-k FWIs kết quả]                  |
+-------------------------------------------------------------------------+

So sánh đặc tính các cấu trúc và thuật toán triển khai

Thuật toán Cấu trúc dữ liệu chính Cơ chế xác định hỗ trợ Chiến lược cắt tỉa Đặc điểm hiệu năng
TFWIT Tidset (Vertical format) Giao danh sách TID giữa các tập mục Cắt tỉa theo ngưỡng hỗ trợ cơ bản Kích thước Tidset lớn, tốn bộ nhớ và thời gian giao cắt
TFWID Diffset (Sai khác TID) Tính tập sai biệt TID giữa các tập mục Cắt tỉa theo ngưỡng hỗ trợ cơ bản Giảm bộ nhớ so với Tidset trên dữ liệu dày, nhưng vẫn hạn chế nén
TFWIN WN-list (Weighted N-list) Giao danh sách nút dựa trên mã hóa cây Cập nhật danh sách Top-$k$ thông thường Khả năng nén dữ liệu cao, tốc độ tính toán mức hỗ trợ vượt trội
TFWIN+ WN-list kết hợp Pruning Giao danh sách nút WN-list tối ưu Cắt tỉa sớm/động (Early Pruning Strategy) Tối ưu hóa thời gian chạy và bộ nhớ, loại bỏ sớm các nhánh dư thừa

Quá trình triển khai Java cho TFWIN và TFWIN+ được xây dựng theo các module: module đọc và chuẩn hóa cơ sở dữ liệu có trọng số, module xây dựng cây tiền tố và ánh xạ WN-list, module quản lý hàng đợi ưu tiên cho Top-rank-$k$, và module thực thi cắt tỉa nhánh động.

Kết quả và đóng góp

Thông qua việc nghiên cứu lý thuyết, thiết kế thuật toán và đánh giá thực nghiệm, đồ án đã đạt được các kết quả và đóng góp cụ thể sau:

  1. Về mặt thuật toán và cấu trúc dữ liệu:

    • Xây dựng thành công cấu trúc WN-list cho bài toán khai thác tập phổ biến có trọng số, giúp nén không gian lưu trữ hiệu quả hơn so với cấu trúc dọc Tidset và Diffset.
    • Phát triển hoàn chỉnh thuật toán TFWIN và đề xuất thuật toán cải tiến TFWIN+ tích hợp chiến lược cắt tỉa sớm (early pruning strategy), giúp thu hẹp đáng kể không gian trạng thái cần duyệt.
  2. Về mặt triển khai và kết quả thực nghiệm:

    • Hoàn thành việc lập trình và thử nghiệm các thuật toán TFWIN và TFWIN+ trên nền tảng Java.
    • Thử nghiệm thực nghiệm ở Chương 6 đã kiểm chứng định lượng về thời gian chạy và mức độ sử dụng bộ nhớ giữa các phương pháp. Kết quả cho thấy TFWIN+ đạt hiệu quả tối ưu nhất trong nhóm các thuật toán được thử nghiệm, vượt trội hơn TFWIT, TFWID và TFWIN về cả tốc độ thực thi lẫn khả năng tiết kiệm tài nguyên bộ nhớ.
  3. Về mặt giá trị ứng dụng:

    • Giải quyết hiệu quả vấn đề bùng nổ số lượng mẫu bằng cách giới hạn kết quả theo Top-rank-$k$, giúp người dùng nhận được tập kết quả cô đọng, có trọng số cao nhất để phục vụ trực tiếp cho việc sinh luật kết hợp trong các hệ thống hỗ trợ ra quyết định.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi và nội dung được trình bày trong đồ án, một số hạn chế và hướng phát triển mở rộng bao gồm:

  • Hạn chế:
    • Phạm vi thử nghiệm thực nghiệm chủ yếu tập trung so sánh nội bộ giữa các biến thể thuật toán đề xuất (TFWIT, TFWID, TFWIN, TFWIN+) trên một số tập dữ liệu đại diện, chưa khảo sát sâu trên các môi trường phân tán hoặc dữ liệu phân luồng (data stream).
    • Thuật toán tập trung vào bài toán Top-rank-$k$ FWIs đầy đủ; việc kết hợp trực tiếp cấu trúc WN-list với các biểu diễn rút gọn như tập đóng (FCIs) hoặc tập tối đa (MFIs) trong cùng một mô hình chưa được triển khai chi tiết.
  • Hướng nghiên cứu tiếp:
    • Mở rộng chiến lược cắt tỉa sớm của TFWIN+ để khai thác trực tiếp các tập phổ biến đóng có trọng số (Closed FWIs) hoặc tập tối đa có trọng số (Maximal FWIs) thuộc Top-rank-$k$.
    • Nghiên cứu tối ưu hóa cấu trúc bộ nhớ và song song hóa thuật toán TFWIN+ nhằm xử lý các cơ sở dữ liệu có quy mô cực lớn (Big Data).

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên và học viên ngành Công nghệ Thông tin, Khoa học Dữ liệu: Nắm vững phương pháp phân tích, thiết kế giải thuật khai phá dữ liệu, hiểu rõ nguyên lý hoạt động từ các thuật toán cơ bản (Apriori, Eclat) đến các cấu trúc nâng cao (Tidset, Diffset, N-list, WN-list).
  • Người nghiên cứu về khai phá mẫu (Pattern Mining): Cung cấp tài liệu tham khảo chi tiết về công thức toán học tính toán mức hỗ trợ có trọng số, cơ chế xếp hạng Top-rank-$k$, mã giả thuật toán và mã nguồn Java hoàn chỉnh của TFWIN và TFWIN+.
  • Phần đáng tham khảo nhất: Chương 4 và Chương 5, nơi trình bày chi tiết định nghĩa, cấu trúc dữ liệu WN-list, các bước cài đặt Java và phân tích độ phức tạp của chiến lược cắt tỉa sớm.

Câu hỏi thường gặp

1. Đề tài giải quyết bài toán cốt lõi nào trong khai phá dữ liệu?
Đề tài giải quyết bài toán khai thác Top-rank-$k$ tập phổ biến từ cơ sở dữ liệu được đánh trọng số (Top-rank-$k$ Frequent Weighted Itemsets - FWIs), nhằm xử lý thông tin trọng số của từng sản phẩm và kiểm soát số lượng mẫu sinh ra ở mức $k$ hạng cao nhất.

2. Mức hỗ trợ có trọng số (weighted support) của một tập mục được tính như thế nào?
Trọng số của một giao dịch được tính bằng trung bình cộng trọng số của các mục có trong giao dịch đó. Mức hỗ trợ có trọng số của một tập mục được xác định bằng tỷ lệ giữa tổng trọng số của các giao dịch chứa tập mục đó trên tổng trọng số của tất cả các giao dịch trong cơ sở dữ liệu.

3. Thuật toán TFWIN giải quyết nhược điểm gì của TFWIT và TFWID?
TFWIT và TFWID sử dụng cấu trúc Tidset và Diffset gặp hạn chế về khả năng nén dữ liệu, dẫn đến dung lượng bộ nhớ lớn và thời gian chạy kéo dài. TFWIN sử dụng cấu trúc danh sách nút WN-list (Weighted N-list) giúp nén dữ liệu hiệu quả và tăng tốc độ tính toán mức hỗ trợ.

4. Điểm cải tiến chính của thuật toán TFWIN+ so với TFWIN là gì?
TFWIN+ tích hợp chiến lược cắt tỉa sớm (early pruning strategy / dynamic pruning) vào cấu trúc WN-list của TFWIN, cho phép loại bỏ sớm các nhánh không gian tìm kiếm không thỏa mãn điều kiện lọt vào nhóm Top-rank-$k$, từ đó giảm thiểu số phép tính và tối ưu hóa thời gian chạy.

5. Kết quả đánh giá thực nghiệm ở Chương 6 đưa ra kết luận gì về 4 thuật toán?
Kết quả thử nghiệm thực nghiệm so sánh thời gian chạy và mức độ sử dụng bộ nhớ chỉ ra rằng TFWIN+ là thuật toán đạt hiệu năng tốt nhất trong số các phương pháp được thử nghiệm (TFWIT, TFWID, TFWIN, TFWIN+).

Kết luận

Đồ án "Mining top-rank-k frequent weighted itemsets using WN-list structures and an early pruning strategy" của sinh viên Nguyễn Triệu Vi và Trần Thành Đạt (Trường Đại học Tôn Đức Thắng) đã giải quyết hiệu quả bài toán khai thác tập phổ biến trên cơ sở dữ liệu có trọng số. Bằng việc ứng dụng cấu trúc WN-list và chiến lược cắt tỉa sớm, nghiên cứu đã xây dựng thành công thuật toán TFWIN+, khắc phục những nhược điểm về thời gian chạy và tiêu hao bộ nhớ của các phương pháp Tidset/Diffset truyền thống. Kết quả thực nghiệm và mã nguồn Java hoàn chỉnh của đồ án đóng góp một giải pháp kỹ thuật có giá trị tham khảo cao trong lĩnh vực phân tích thuật toán và khai phá dữ liệu.