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

Trong bối cảnh khoa học và công nghệ phát triển mạnh mẽ, khả năng thu thập và lưu trữ thông tin của các hệ thống tăng trưởng với tốc độ nhanh chóng. Sự tích lũy khối lượng dữ liệu khổng lồ từ nhiều nguồn dẫn đến thách thức lớn trong việc phân loại, trích xuất và chuyển hóa dữ liệu thô thành tri thức hữu ích phục vụ quản trị và kinh doanh. Khai phá dữ liệu (Data Mining) ra đời nhằm giải quyết bài toán này thông qua các kỹ thuật tự động phân tích dữ liệu tiềm ẩn, hỗ trợ doanh nghiệp đưa ra các quyết định chiến lược như tối ưu hóa bố trí quầy hàng, nâng cao doanh số và tư vấn bán hàng.

Trong các hướng tiếp cận của khai phá dữ liệu, khai thác luật kết hợp (Association Rule Mining) là kỹ thuật trọng tâm, trong đó giai đoạn khai thác tập phổ biến (Frequent Itemset Mining) chiếm phần lớn thời gian và quyết định hiệu năng xử lý. Các thuật toán kinh điển như Apriori (Agrawal & Srikant, 1994) và FP-Growth (Han và cộng sự, 2000) bộc lộ hạn chế lớn khi làm việc với các cơ sở dữ liệu quy mô lớn: Apriori phải duyệt dữ liệu nhiều lần và làm bùng nổ số lượng tập ứng viên, trong khi FP-Growth gặp khó khăn khi duy trì cấu trúc cây FP-Tree trong bộ nhớ chính. Các cấu trúc dữ liệu cải tiến sau này như Node-list (Deng & Wang, 2010) và N-list (Deng, Wang, & Jiang, 2012) tuy nâng cao hiệu suất nhưng đòi hỏi phải mã hóa đồng thời cả pre-order và post-order cho mỗi nút trên cây PPC-Tree, gây lãng phí bộ nhớ. Cấu trúc NegNodeset (Nader, Behrouz & Mohammad, 2018) ra đời nhằm khắc phục nhược điểm này bằng cách sử dụng biểu diễn bitmap, chỉ cần một loại mã thứ tự duy nhất và giúp tiết kiệm một nửa dung lượng bộ nhớ.

Khóa luận tốt nghiệp của sinh viên Nguyễn Văn Vương và Nguyễn Hoàng Thiên Chí, dưới sự hướng dẫn của TS. Phạm Thị Thiết tại Trường Đại học Công nghiệp TP.HCM (6/2021), được thực hiện nhằm nghiên cứu cấu trúc NegNodeset và cài đặt thuật toán NegFIN để dự đoán hành vi mua hàng của người tiêu dùng.

Mục tiêu nghiên cứu của đề tài là tìm hiểu và ứng dụng thuật toán khai thác tập phổ biến NegFIN trên cơ sở dữ liệu "AdventureWork" để dự đoán các hành vi mua hàng có tính quy luật trong một khoảng thời gian nhất định.

Nhiệm vụ nghiên cứu được văn bản xác định gồm 4 nội dung cụ thể:

  1. Nghiên cứu, tìm hiểu các thuật toán khai thác các tập phổ biến từ cơ sở dữ liệu.
  2. Nghiên cứu, tìm hiểu chi tiết thuật toán NegFin trong khai thác các tập phổ biến.
  3. Thu thập và xử lý cơ sở dữ liệu liên quan đến thói quen mua hàng của người dùng, cụ thể là cơ sở dữ liệu AdventureWork.
  4. Xây dựng chương trình để dự đoán hành vi mua hàng của người dùng dựa trên thuật giải NegFin với cơ sở dữ liệu AdventureWork.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Cơ sở dữ liệu giao dịch "AdventureWork" và các đặc tính phục vụ khai phá; các tập phổ biến và luật kết hợp; thuật toán NegFIN và các cấu trúc dữ liệu liên quan (BMC-tree, Node-set, NegNodeset, cây liệt kê); chương trình ứng dụng dự đoán hành vi.
  • Phạm vi nghiên cứu: Giới hạn trên bộ dữ liệu giao dịch bán hàng "AdventureWork" (tập trung vào các bảng Sales và Production) trong một không gian và khoảng thời gian xác định theo dữ liệu thực nghiệm.

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

Khóa luận dựa trên nền tảng lý thuyết khai phá dữ liệu và khai thác luật kết hợp từ cơ sở dữ liệu giao dịch $D = {T_1, T_2, \dots, T_m}$ với tập các hạng mục $I = {i_1, i_2, \dots, i_n}$. Một tập con $X \subseteq I$ gồm $k$ phần tử được gọi là $k$-itemset.

Các khái niệm và công thức toán học cốt lõi được tác giả sử dụng bao gồm:

  • Độ hỗ trợ (Support): Độ hỗ trợ của tập mục $X$, ký hiệu là $support(X)$, là số lượng giao dịch trong $D$ có chứa $X$.
  • Tập phổ biến: Tập mục $X$ được coi là phổ biến nếu $support(X) \ge minsup$, trong đó $minsup$ là ngưỡng hỗ trợ tối thiểu.
  • Luật kết hợp: Biểu thức dạng $X \to Y$ (với $X, Y \subset I$ và $X \cap Y = \emptyset$), có độ hỗ trợ được tính bằng: $$Support(X \cup Y) = \frac{|{T_i \in D \mid (X \cup Y) \subseteq T_i}|}{|D|}$$
  • Độ tin cậy (Confidence): Tỉ số giữa số giao dịch chứa cả $X \cup Y$ và số giao dịch chứa $X$: $$Confidence(X \to Y) = \frac{Support(X \cup Y)}{Support(X)}$$ Luật $X \to Y$ là luật mạnh nếu $Confidence(X \to Y) \ge minconf$ (ngưỡng tin cậy tối thiểu).
  • Tính chất đóng và cắt tỉa: Mọi tập con của một tập phổ biến đều là tập phổ biến; ngược lại, mọi tập cha của một tập không phổ biến đều là tập không phổ biến.

Phương pháp nghiên cứu kết hợp giữa lý thuyết và thực nghiệm:

  • Phương pháp lý thuyết: Phân tích, tổng hợp tài liệu chuyên ngành về các thuật toán Apriori, FP-Growth, POC-Tree, Node-list, N-list; khảo sát mô hình biểu diễn bitmap (Song & Yang, 2008) và giải thuật NegFIN (Nader, Behrouz & Mohammad, 2018).
  • Phương pháp thực nghiệm: Thực hiện tiền xử lý, trích xuất và chuẩn hóa dữ liệu từ CSDL AdventureWorks; cài đặt thuật toán NegFIN; thiết kế giao diện chương trình để kiểm thử việc sinh luật kết hợp và đưa ra dự đoán mua hàng.

Nguồn dữ liệu sử dụng là cơ sở dữ liệu quan hệ mẫu AdventureWorks của Microsoft, tập trung vào trích xuất dữ liệu từ hai bảng chính: Bảng dữ liệu Sales và Bảng dữ liệu Production.


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

CHƯƠNG 1: TỔNG QUAN

Chương mở đầu trình bày tổng quan về sự phát triển của công nghệ thông tin, sự gia tăng nhanh chóng của dữ liệu lưu trữ và nhu cầu ứng dụng khai phá dữ liệu trong các doanh nghiệp bán lẻ. Tác giả xác định rõ lý do chọn đề tài "Dự đoán hành vi của khách hàng dựa vào tập phổ biến", nêu mục tiêu nghiên cứu, liệt kê 4 nội dung nghiên cứu chính, đối tượng, phương pháp tiếp cận và cấu trúc tổng thể gồm 5 chương của khóa luận.

CHƯƠNG 2: TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU

Chương 2 hệ thống hóa cơ sở lý thuyết về bài toán khai thác luật kết hợp và tập phổ biến, phân tách quá trình này thành 2 giai đoạn: (1) Tìm các tập mục phổ biến thỏa mãn $minsup$, và (2) Sinh luật kết hợp mạnh thỏa mãn $minconf$. Tác giả phân tích chi tiết hai thuật toán kinh điển:

Tiêu chí Thuật toán Apriori (Agrawal, 1993) Thuật toán FP-Growth (Han et al., 2000)
Cơ chế hoạt động Sinh tập ứng viên $C_k$ từ $L_{k-1}$ bằng hàm apriori-gen, quét CSDL đếm độ hỗ trợ Nén dữ liệu vào cây FP-Tree, khai thác đệ quy trên các cây FP-Tree điều kiện
Số lần quét CSDL Quét lại toàn bộ cơ sở dữ liệu tại mỗi bước lặp $k$ Quét CSDL đúng 2 lần để dựng bảng header và cây
Ưu điểm Đơn giản, sử dụng tính chất cắt tỉa tập con Không phát sinh tập ứng viên, tốc độ xử lý nhanh hơn
Hạn chế Chi phí duyệt dữ liệu lớn, bùng nổ tập ứng viên khi dữ liệu lớn Khó duy trì và cập nhật FP-Tree trong bộ nhớ khi CSDL quá lớn

Để minh họa các khái niệm, tác giả đưa ra một cơ sở dữ liệu giao dịch mẫu gồm 5 giao dịch ($D$) với tập hạng mục $I = {a, b, c, d, e, f, g, h, i}$ và ngưỡng $minsup = 2$:

TID Items
1 e, b, g, d
2 c, e, b, a
3 c, b, a, i
4 a, d, h
5 a, d, c, b, f

Bảng tính độ hỗ trợ của các 1-itemset tương ứng:

  • Item a: support = 4
  • Item b: support = 4
  • Item c: support = 3
  • Item d: support = 3
  • Item e: support = 2
  • Các item f, g, h, i: support = 1 (bị loại do $< minsup$).

CHƯƠNG 3: THUẬT TOÁN NEGFIN ĐỂ KHAI THÁC CÁC TẬP PHỔ BIẾN

Chương này đi sâu vào chi tiết kỹ thuật của thuật toán NegFIN và các cấu trúc dữ liệu nền tảng:

  • Ma trận bit (Bitmap matrix): Chuyển đổi dữ liệu giao dịch thành ma trận nhị phân với hàng là giao dịch và cột là item. Với CSDL mẫu 5 giao dịch, ma trận bit biểu diễn sự xuất hiện (1) hoặc không xuất hiện (0) của các phần tử.
  • Cấu trúc BMC-tree (BitMap Coding tree): Cây tiền tố có nút gốc là null, mỗi nút con chứa 4 trường: item-name, count, bitmap-code, và children-list. Khác với POC-tree dùng mã pre-order và post-order, BMC-tree mã hóa đường dẫn nút bằng chuỗi bit thông qua phép toán logic OR: $N.bitmap_code = current_root.bitmap_code \vee 2^{index(i)}$.
  • Cấu trúc Node-set và NegNodeset:
    • $L_1$ là danh sách các 1-itemset phổ biến được sắp xếp theo thứ tự độ hỗ trợ tăng dần (hoặc không giảm).
    • $N\text{-info}$ của mỗi nút được định nghĩa là cặp (bitmap-code, count).
    • Nodeset của một itemset $P_k$ là tập hợp tất cả các $N\text{-info}$ trên cây BMC có bit tại vị trí $index(i_1)$ bằng 1.
    • NegNodeset của $P_k = i_k P_{k-1}$ tương đương với $Nodeset(P'k = \neg i_k P{k-1})$, lưu trữ các nút mà $i_k$ không phải là tổ tiên.
    • Nhờ sử dụng các phép toán bitwise (AND, OR), NegNodeset giúp giảm 50% dung lượng bộ nhớ so với Node-list và N-list.
  • Cấu trúc Cây liệt kê (Set-enumeration tree): Cây quản lý không gian tìm kiếm các tập phổ biến, được duyệt để kết hợp các phần tử theo thứ tự $\succ$ và áp dụng cơ chế cắt tỉa dựa trên tính chất tập tương đương ($equivalent_items$).
  • Thuật toán NegFIN và thủ tục Constructing_Frequent_Itemset_tree: Trình bày mã giả chi tiết xây dựng cây BMC, khởi tạo $L_1$, gom nhóm $N\text{-info}$, tạo các nút con của cây liệt kê và đệ quy trích xuất các tập phổ biến $k$-itemset thông qua tính toán độ hỗ trợ trên NegNodeset.

CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG VÀ KẾT QUẢ THỰC NGHIỆM

Chương 4 mô tả quá trình triển khai ứng dụng thực nghiệm:

  • Môi trường thực nghiệm: Xây dựng trên nền tảng ngôn ngữ lập trình phục vụ xử lý thuật toán và giao diện người dùng.
  • Xử lý dữ liệu: Thu thập dữ liệu từ CSDL AdventureWorks. Tác giả thực hiện tiền xử lý dữ liệu thông qua truy vấn kết hợp Bảng dữ liệu Sales và Bảng dữ liệu Production, gom nhóm các sản phẩm được mua trong cùng một mã hóa đơn/giao dịch thành chuỗi sản phẩm (Bảng dữ liệu chuỗi sản phẩm), sau đó chuẩn hóa thành dạng dữ liệu đầu vào phù hợp cho thuật toán (Bảng dữ liệu đã được định dạng).
  • Giao diện chương trình:
    • Giao diện chính hiển thị thông tin nạp dữ liệu và các chức năng phân tích.
    • Giao diện kết quả cho phép người dùng nhập các tham số $Minsup$, $Minconfidence$ và chọn một sản phẩm mục tiêu cần dự đoán. Hệ thống thực thi thuật toán NegFIN để tìm tập phổ biến, tạo luật kết hợp và xuất ra danh sách các sản phẩm có khả năng cao được khách hàng mua kèm.

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Tổng kết các nội dung đã hoàn thành của khóa luận, khẳng định việc cài đặt thành công thuật toán NegFIN và ứng dụng vào bài toán dự đoán hành vi mua hàng. Đồng thời, chương này chỉ ra các hướng nghiên cứu mở rộng trong tương lai.


Thiết kế và triển khai ứng dụng

Hệ thống ứng dụng được thiết kế nhằm tự động hóa quy trình khai phá dữ liệu từ CSDL quan hệ đến giao diện dự đoán trực quan cho người dùng:

[CSDL AdventureWorks (Sales, Production)]
      [Truy vấn & Tiền xử lý]
  [Chuẩn hóa chuỗi sản phẩm theo TID]
    [Xây dựng BMC-tree & L1]
  [Khai phá NegNodeset (Thuật toán NegFIN)]
       [Sinh Luật kết hợp]
   (Lọc theo Minsup & Minconfidence)
[Giao diện dự đoán sản phẩm mua kèm]
  • Quy trình xử lý dữ liệu:
    1. Trích xuất dữ liệu: Thực hiện câu lệnh truy vấn liên kết bảng Sales và Production trong CSDL AdventureWorks để lấy thông tin mã giao dịch và tên/mã sản phẩm.
    2. Biến đổi dữ liệu: Nhóm các sản phẩm theo từng mã giao dịch (TID) để tạo thành chuỗi danh mục hàng hóa, sau đó ánh xạ thành định dạng ma trận bit.
    3. Thực thi giải thuật: Dữ liệu định dạng được đưa vào cây BMC-tree; thuật toán NegFIN tính toán danh sách tập phổ biến dựa trên phép toán bitwise trên NegNodeset.
  • Tham số và tương tác trên giao diện:
    • Người dùng thiết lập hai tham số ngưỡng: Độ phổ biến tối thiểu ($Minsup$) và Độ tin cậy tối thiểu ($Minconfidence$).
    • Người dùng lựa chọn một sản phẩm cụ thể từ danh mục. Chương trình sẽ đối sánh với các luật kết hợp đã khai thác được để hiển thị danh sách các sản phẩm dự đoán mà khách hàng có xu hướng mua cùng.

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

Kết quả chính

  • Tổng hợp và hệ thống hóa chi tiết cơ sở lý thuyết về bài toán khai thác luật kết hợp, các giải thuật kinh điển (Apriori, FP-Growth) cùng các cấu trúc dữ liệu hiện đại (Node-list, N-list, BMC-tree, NegNodeset).
  • Trình bày đầy đủ thuật toán NegFIN và hàm tạo cây tập phổ biến Constructing_Frequent_Itemset_tree, làm rõ các tính chất toán học của phép toán bitwise trên NegNodeset.
  • Thực hiện tiền xử lý thành công dữ liệu thực tế từ CSDL AdventureWorks (kết hợp bảng Sales và Production) thành tập giao dịch chuẩn hóa.
  • Xây dựng hoàn chỉnh chương trình ứng dụng có giao diện cho phép tùy chỉnh ngưỡng $Minsup$, $Minconfidence$ và hiển thị kết quả dự đoán sản phẩm mua kèm theo từng mặt hàng được chọn.

Đóng góp so với các nghiên cứu trước

  • So với thuật toán Apriori: Khắc phục triệt để chi phí quét lại CSDL nhiều lần và không làm bùng nổ số lượng tập ứng viên.
  • So với thuật toán FP-Growth: Giảm thiểu độ phức tạp trong việc xây dựng và duy trì các cây điều kiện đệ quy trên bộ nhớ chính.
  • So với cấu trúc Node-list (2010) và N-list (2012): Cấu trúc NegNodeset chỉ cần biểu diễn một mã thứ tự (pre-order hoặc post-order) thông qua bitmap-code, giúp tiết kiệm chính xác 50% dung lượng bộ nhớ dành cho việc mã hóa nút trên cây tiền tố.

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

  • Hạn chế: Thử nghiệm của khóa luận chủ yếu tập trung trên bộ dữ liệu mẫu AdventureWorks; quá trình khai thác phụ thuộc vào việc người dùng phải tự thiết lập các ngưỡng tĩnh ($Minsup$, $Minconfidence$); văn bản chưa mở rộng đo lường hiệu năng so sánh thời gian chạy thực tế với nhiều bộ dữ liệu chuẩn quy mô lớn khác nhau.
  • Hướng phát triển:
    • Mở rộng thử nghiệm thuật toán NegFIN trên các bộ dữ liệu giao dịch thương mại điện tử thực tế có quy mô lớn và đa dạng hơn.
    • Nghiên cứu tối ưu hóa thuật toán khi áp dụng trên các dòng dữ liệu thay đổi liên tục (data streams).
    • Tích hợp thêm các yếu tố thời gian, không gian hoặc phân khúc khách hàng vào mô hình để nâng cao độ chính xác của dự đoán hành vi.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo hữu ích cho sinh viên, học viên chuyên ngành Công nghệ thông tin, Khoa học máy tính, Hệ thống thông tin và Khoa học dữ liệu đang nghiên cứu về khai phá dữ liệu và trí tuệ nhân tạo.

Các phần có giá trị tham khảo cao gồm:

  • Toàn bộ cơ chế biểu diễn và tính toán đại số bitwise của cấu trúc BMC-tree, Nodeset và NegNodeset trong Chương 3.
  • Mã giả chi tiết của 4 thuật toán: BMC-tree, constructing_set_enumeration_tree, negFIN và constructing_frequent_itemset_tree.
  • Quy trình truy vấn, tiền xử lý và chuyển đổi bảng dữ liệu quan hệ (Sales, Production của AdventureWorks) thành dữ liệu giao dịch phục vụ khai phá tập phổ biến.

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

1. Mục tiêu trọng tâm của đề tài khóa luận là gì?
Mục tiêu của đề tài là tìm hiểu cấu trúc dữ liệu NegNodeset và thuật toán NegFIN, từ đó cài đặt chương trình khai thác tập phổ biến và sinh luật kết hợp trên cơ sở dữ liệu "AdventureWork" để dự đoán hành vi mua hàng của khách hàng.

2. Cấu trúc NegNodeset mang lại ưu điểm gì vượt trội so với Node-list và N-list?
Cả Node-list và N-list đều bắt buộc phải mã hóa mỗi nút trên cây PPC-Tree bằng cả hai mã pre-order và post-order, gây tốn bộ nhớ. NegNodeset sử dụng mô hình mã hóa bitmap-code và chỉ yêu cầu mã pre-order hoặc post-order, giúp tiết kiệm một nửa (50%) dung lượng bộ nhớ.

3. BMC-tree khác với cây POC-tree ở điểm nào?
Về mặt cấu trúc, BMC-tree tương tự POC-tree, nhưng điểm khác biệt then chốt là mỗi nút của POC-tree được mã hóa bằng cặp mã pre-order và post-order, trong khi mỗi nút của BMC-tree được mã hóa trực tiếp bằng BMC(node-path) thông qua phép toán logic OR trên ma trận bit.

4. Dữ liệu thực nghiệm được tác giả thu thập và xử lý từ nguồn nào?
Tác giả sử dụng cơ sở dữ liệu mẫu "AdventureWork", thực hiện truy vấn kết hợp thông tin từ Bảng dữ liệu Sales và Bảng dữ liệu Production, sau đó xử lý gom nhóm theo mã giao dịch để tạo thành chuỗi sản phẩm đã định dạng.

5. Người dùng tương tác với chương trình thực nghiệm như thế nào để nhận kết quả dự đoán?
Trên giao diện chương trình, người dùng nhập vào hai thông số ngưỡng là $Minsup$ (độ hỗ trợ tối thiểu) và $Minconfidence$ (độ tin cậy tối thiểu), đồng thời chọn một sản phẩm mục tiêu. Hệ thống sẽ áp dụng thuật toán NegFIN để trích xuất các luật kết hợp thỏa mãn và đưa ra danh sách các sản phẩm dự đoán được mua cùng.


Kết luận

Khóa luận tốt nghiệp "Dự đoán hành vi của khách hàng dựa vào tập phổ biến" của tác giả Nguyễn Văn Vương và Nguyễn Hoàng Thiên Chí đã trình bày toàn diện cơ sở lý thuyết về khai phá luật kết hợp và cấu trúc dữ liệu NegNodeset kết hợp thuật toán NegFIN. Công trình đã chứng minh ưu thế tiết kiệm bộ nhớ của việc mã hóa bitmap-code so với các phương pháp duyệt cây truyền thống. Thông qua việc tiền xử lý dữ liệu AdventureWorks và xây dựng ứng dụng thực nghiệm, đề tài đã hiện thực hóa thành công mô hình dự đoán sản phẩm mua kèm hỗ trợ hoạt động bán lẻ.