Professional Documents
Culture Documents
66 Latice-HUI-Upload Final
66 Latice-HUI-Upload Final
TÓM TẮT - Trong kinh doanh, doanh nghiệp thường quan tâm đến lợi nhuận của công ty. Bên cạnh việc quan tâm đến giá trị
lợi ích của các mặt hàng, các doanh nghiệp còn quan tâm đến mối quan hệ giữa các mặt hàng để đề ra các chiếc lược kinh doanh
hiệu quả. Ví dụ, họ cần tìm các mặt hàng nào để giới thiệu cho khách hàng, sắp xếp các gian hàng, trưng bày sản phẩm, v..v. Để thu
hút khách hàng và tăng lợi nhuận. Từ đó, các thuật toán khai thác luật kết hợp hữu ích cao từ các tập hữu ích cao được đề xuất. Tuy
nhiên, các thuật toán này thường tốn nhiều thời gian và bộ nhớ do phải trải qua nhiều giai đoạn. Bài báo đề xuất thuật toán LHAR
khai thác tập luật hữu ích cao dựa trên dàn các tập hữu ích cao. Thuật toán đề xuất sinh luật ngay giai đoạn xây dựng dàn nên cải
thiện đáng kể về thời gian khai thác và bộ nhớ sử dụng.
Từ khoá: Tập hữu ích cao, dàn hữu ích cao, luật kết hợp hữu ích cao.
I. GIỚI THIỆU
Bài toán khai thác tập phổ biến (Frequent itemset mining - FIM) chỉ tìm ra các tập phổ biến xuất hiện thường
xuyên trong cơ sở dữ liệu (CSDL) giao dich. Trong mỗi giao dịch của khách hàng, nó chỉ xét mỗi mặt hàng xuất hiện
hay không xuất hiện và xem giá trị lợi nhuận của các mặt hàng là như nhau. Điều này chưa phản ánh đúng thực tế với
cơ sở dữ liệu bán hàng [6]. Ví dụ, xét một giao dịch của một khách hàng trong siêu thị, khách hàng có thể mua 10 chai
nước và 1 chai rượu, số lượng chai nước họ mua nhiều hơn mười lần và giá trị lợi nhuận khi bán một chai rượu sẽ cao
hơn rất nhiều lần khi bán một chai nước, dù việc bán chai nước thì phổ biến hơn so với bán chai rượu. Để giải quyết
vấn đề này, bài toán FIM được đinh nghĩa lại thành bài toán khai thác tập hữu ích cao (High Utility Itemset Mining -
HUIM) để xét trường hợp các tập mục (itemset) có thể xuất hiện nhiều lần trong mỗi giao dịch và mỗi hạng mục (item)
có giá trị lợi ích là khác nhau. Bài toán này được ứng dụng rất nhiều trong thực tế như: phân tích luồng nhấp chuột trên
trang web, tiếp thị chéo trong các cửa hàng bán lẻ và các ứng dụng y học [6]. Mở rộng bài toán HUIM là bài toán khai
thác luật kết hợp hữu ích cao (High Utility Association Rules - HARs) từ các tập hữu ích cao (High Utility Itemsets –
HUIs) để xem xét mối quan hệ giữa các item trong cơ sở dữ liệu (CSDL). Hiện nay bài toán khai thác HARs từ HUIs
vẫn còn là đề tài rất mới, chưa có nhiều nghiên cứu. Hai thuật toán đã được giới thiệu là: HGB-HAR [1] và LARM [2].
LARM đã được chứng minh là hiệu quả hơn HGB-HAR. Tuy nhiên, LARM phải trải qua hai giai đoạn thì mới sinh
được luật. Đồng thời, gian đoạn 1 khi xây dựng dàn trên từng tập HUI có hai quá trình tìm kiếm theo chiều sâu song
song nhau, làm tốn nhiều thời gian và bộ nhớ. Để giải quyết vấn đề này, bài báo đề xuất thuật toán khai thác HARs dựa
trên xây dựng dàn các tập hữu ích cao (High Utility Itemsets Lattice - HUIL), một cải tiến từ thuật toán LARM. Những
đóng góp chính của bài báo như sau:
- Đề xuất thuật toán LHAR (Mining High utility Association Rules based on building Lattice) để khai thác luật
kết hợp hữu ích cao ngay trong quá trình xây dựng dàn.
- Thực nghiệm trên nhiều CSDL chuẩn để kiểm chứng tính hiệu quả của thuật toán LHAR so với LARM.
Phần còn lại của bài báo được tổ chức như sau: Phần 2 trình bày các định nghĩa và khái niệm liên qua đến bài toán
khai thác luật kết hợp hữu ích cao từ tập hữu ích cao. Phần 3 trình bày một số nghiên cứu liên quan đến khai thác HUIs
và khai thác HARs từ HUIs. Phần 4 trình bày thuật toán mới đề xuất khai thác HARs từ HUIs dựa trên xây dựng dàn
HUIL. Phần 5 trình bày kết quả so sánh của thuật toán mới đề xuất LHAR với thuật toán LARM [2]. Kết luận và
hướng phát triển được trình bày ở phần 6.
Ví dụ, bảng 1 là một CSDL có 5 giao dịch T1, T2, ..., T5. Xét giao dịch T2 có 3 item D, E, F với số lượng lần lượt là: 1,
4, 5. Giá trị lợi ích thu được lần lượt là: 2, 1, 1.
Định nghĩa 2.2. (Độ hữu ích của một item trong một giao dịch) Độ hữu ích của một item i trong một giao dịch Tc kí
hiệu là u(i,Tc) được định nghĩa là: u ( i ,T c )= p ( i ) q (i ,T c ) . Nó cho biết lợi nhuận bán món hàng i trong giao dịch Tc.
Ví dụ, độ hữu ích của item D trong giao dịch T2 của CSDL mẫu ở bảng 1 là u(D, T2) = 2 1 = 2.
Định nghĩa 2.3. (Độ hữu ích của một itemset trong một giao dịch) Độ hữu ích của một itemset X trong một giao dịch
Tc được ký hiệu là u(X, Tc) được xác định bởi công thức: u ( X , T c ) = ∑ u (i, T c ) nếu X ⊆ T c Ví dụ, độ hữu ích của
i∈ X
itemset {D, E} của giao dịch T2 trong CSDL bảng 1 là: u({D, E}, T2) = u(D, T2) + u(E, T2) = 2 + 4 = 6.
Định nghĩa 2.4. (Độ hữu ích của một itemset trong CSDL giao dịch) Độ hữu ích của một itemset X trong CSDL D
được tính bằng tổng tất cả các độ hữu ích của X trong tất cả các giao dịch có chứa X: u ( X ) = ∑ u( X ,T d ) Ví
X ⊆ Td Td ∈ D
dụ, trong CSDL bảng 1 thì độ hữu ích của tập item X ={E, F} là u(X) = 31.
Định nghĩa 2.5. (Độ hỗ trợ của một itemset trong CSDL) Số hỗ trợ của một itemset X trong CSDL D xác định tần số
xuất hiện của X trong CSDL. Độ hỗ trợ của X đối với D được định nghĩa là tỷ lệ giữa các giao dịch có chứa X với tổng
số giao dịch trong CSDL. Được kí hiệu là supp(X). Ví dụ, độ hỗ trợ của X = {A, C, E} trong CSDL bảng 1 là
supp({A,C,E}) = 2/5 hay viết ngắn gọn là supp({A,C,E}) = 2.
Định nghĩa 2.6. (Itemset hữu ích cao) Một itemset X gọi là một tập hữu ích cao nếu độ hữu ích u(X) không nhỏ hơn
một ngưỡng giá trị hữu ích tối thiểu min-Util (Minimun Utility Threshold) do người sử dụng định nghĩa (tức là u(X) ≥
min-Util) Nếu không X là tập item hữu ích thấp.
Định nghĩa 2.7. (Độ hữu ích cục bộ của một item trong itemset). Độ hữu ích cục bộ của một item xi trong itemset X, kí
hiệu là luv(xi, X) và được tính bằng tổng độ hữu ích của xi trong tất cả các giao dịch chứa X, được xác định bằng công
thức sau: luv (x i , X )= ∑ u( x i ,t d ) Ví dụ, độ hữu ích cục bộ của item xi = {E} và itemset X = {E, F} trong
X ⊆ t d ⋀ t d ∈D
CSDL bảng 1 là: Luv(xi, X) = 6 + 4 + 5 + 2 = 17.
Định nghĩa 2.8. (Độ hữu ích bộ phận của một itemset in itemset). Giá trị độ hữu ích bộ phận của một itemset X trong
itemset Y, X⊆Y, kí hiệu là luv(X,Y) và được xác định bằng tổng các độ hữu ích của mỗi item xi ∈ X trong Y. Công
thức biểu diễn như sau: luv ( X ,Y )= ∑ luv (x i , Y ) Ví dụ, Giá trị độ hữu ích bộ phận của itemset X = {D, E}
x i ∈ X ⊆Y
trong itemset Y = {D, E, F} trong CSDL bảng 1 là luv(X,Y) = 6 + 11 = 17.
Định nghĩa 2.9. (Luật kết hợp hữu ích cao). Luật kết hợp hữu ích R là một biểu thức có dạng X → Y, biểu diễn mối
quan hệ giữa hai tập hữu ích cao X, Y ⊆ I. Giá trị độ tin cậy lợi ích của R, kí hiệu uconf(R), được xác định công thức
luv( X , XY )
uconf ( R )= . R: X → Y được gọi là luật kết hợp hữu ích cao nếu uconf(R) lớn hơn hoặc bằng ngưỡng
u( X )
độ tin cậy hữu ích tối thiểu – Minimun Utility Confidence Threshold (min-Uconf) được xác định bởi người dùng.
Ngược lại, R được gọi là luật kết hợp hữu ích thấp. Ví dụ, với itemset X = {F[14], E[17]} và itemset Y = {D[6], F[12],
23
E[11]} thì luật kết hợp hữu ích R: FE → D có độ tin cậy hữu ích là uconf ( R )= 100=74.19 % nếu chọn min-
31
Uconf = 60(%) thì R là luật kết hợp hữu ích cao.
III. CÁC NGHIÊN CỨU LIÊN QUAN
3.1. Khai thác tập hữu ích cao.
Bài toán HUIM đã được nhiều tác giả quan tâm trong những năm vừa qua vì nó giải quyết được bài toán mang
tính thực tế là xem các item có thể xuất hiện nhiều hơn một lần trong mỗi giao dịch và mỗi item có một trọng số (ví dụ,
đơn vị lợi nhuận). Một số thuật toán nghiên cứu về HUIM như: Năm 2005, Liu và các đồng sự đề xuất thuật toán Two-
Phase [3] là thuật toán đầu tiên đưa ra khái niệm khai thác các tập hữu ích cao thay vì khai thác các tập phổ biến thông
qua hai giai đoạn. Two-Phase đưa ra các khái niệm về độ hữu ích giao dịch (Transaction Utility - TU). Độ hữu ích
trọng số giao dịch (Transaction Weighted Utility - TWU) để sửa bài toán FIM thành bài toán HUIM hiệu quả và tính
chính xác độ hữu ích của các HUIs. Tuy nhiên, Two-Phase gặp vấn đề là sinh ra một lượng lớn các tập ứng viên trong
giai đoạn 1 bằng cách đánh giá quá cao lợi ích của chúng và gặp vấn đề về thời gian và bộ nhớ sử dụng khi phải lặp đi
lặp lại nhiều lần quét CSDL trong giai đoạn 2 để tính toán chính xác độ hữu ích của các tập ứng viên.
Trần Lệ Quyên, Nguyễn Thị Thúy Loan, Võ Đình Bảy 3
Để khắc phục hạn chế của thuật toán Two-Phase [3]. Năm 2010, Tseng và đồng sự đề xuất thuật toán UP-Growth
[4], cũng là một thuật toán 2 giai đoạn, dựa trên thuật toán FP-Growth [5] và tính chất bao đóng giảm của thuật toán
Two-Phase với bốn chiến lượt được áp dụng: Một là, loại bỏ các tập item không triển vọng toàn cục (Discarding
global unpromising items - DGU). Hai là, giảm độ hữu ích nút trong cây UP-Tree toàn cục (Decreasing global node
utilities - DGN). Ba là, loại bỏ các item không triển vọng bộ phận (Discarding local unpromising items - DLU). Bốn
là, giảm độ hữu ích nút bộ phận (Decreasing local node utilities - DLN). UP-Growth so với Two-Phase thì sinh ra ít
ứng viên hơn trong giai đoạn 1 nhờ sử dụng bốn chiến lược DGU, DGN, DLU, DLN trong suốt quá trình xây dựng cây
UP-Tree toàn cục và cây UP-Tree cục bộ. Do vậy mà thuật toán UP-Growth có thời gian thực hiện được công nhận
nhanh hơn 1000 lần và sử dụng bộ nhớ ít hơn thuật toán Two-Phase. Tuy nhiên, UP-Growth vẫn còn sinh ra lượng lớn
tập ứng viên tiềm năng trong giai đoạn 1 bằng cách đánh giá quá cao giá trị lợi ích của chúng. Thuật toán UP-Growth
xây dựng cấu trúc cây UP-Tree phức tạp.
Năm 2017, Zida và các đồng sự đề xuất thuật toán EFIM [6] khai thác các tập HUIs khá hiệu quả với hai giới hạn
mới về độ hữu ích là: Sửa đổi độ hữu ích cây liệt kê tập con (revised sub-tree utility - SU) và độ hữu bộ phận (local
utility - LU). SU và LU cắt tỉa không gian tìm kiếm hiệu quả hơn so với cận trên TWU và độ hữu ích còn lại
(remaining utility - RE) được sử dụng trong các thuật toán đã nghiên cứu trước đó. EFIM cũng giới thiệu hai kỹ thuật
hiệu quả để giảm chi phí quét CSDL có tên là dự kiến CSDL hữu ích cao (High-utility Database Projection - HDP) và
hợp nhất giao dịch hữu ích cao (High-utility Transaction Merging - HTM). Không giống như Two-Phase hoặc UP-
Growth, EFIM là thuật toán một giai đoạn. Do vậy, EFIM tiệu thụ ít bộ nhớ vượt trội hơn và có thời gian thực hiện ít
hơn với thời gian tuyến tính.
3.2. Khai thác luật kết hợp hữu ích cao từ tập hữu ích cao
Năm 2015, Sahoo và đồng sự đề xuất thuật toán HGB-HAR [1] để khai thác tất cả các HARs từ HGB với ba giai
đoạn: Một là, khai thác các itemset hữu ích cao đóng (Closed High Utility Itemsets - HUCIs) và tập sinh hữu ích cao
(Generators) của tập HUCIs tương ứng. Hai là, khai thác tất cả các luật hữu ích cao không dư thừa (High Utility
Generic Basic - HGB) từ tập HUCIs và tập Generators. Ba là, khai thác tất cả các tập luật kết hợp hữu ích cao HARs từ
tập HGB có được trong giai đoạn 2. HGB-HAR [1] là thuật toán đầu tiên mở ra hướng nghiên cứu mới cho bài toán
khai thác luật kết hợp hữu ích cao từ tập hữu ích cao. Tuy nhiên thuật toán gặp vấn đề về thời gian trong giai đoạn 3
khi tập HGB có nhiều item ở vế phải, kiểm tra các tập con của vế phải tập HGB kết hợp với vế trái có phải là tập HUI
hay không? Và quét lại tập luật nhiều lần đề loại bỏ các luật bị trùng.
Năm 2017, Mai và đồng sự đề xuất thuật toán LARM [2] khai thác HARs từ HUIL gồm 2 giai đoạn: Một là, xây
dựng dàn các tập hữu ích cao HUIL. Hai là, khai thác HARs từ HUIL. Thuật toán LARM [2] đã được chứng minh là có
thời gian thực hiện và sử dụng bộ nhớ ít hơn HGB-HAR [1] do tính chất tối ưu của dàn trong khai thác dữ liệu. Tuy
nhiên, gặp phải hai vấn đề sau: Một là, thuật toán xây dựng dàn HUIL sử dụng hai quá trình duyệt theo chiều sâu trên
dàn đang xây dựng thông qua hai hàm ResetLattice và InsertLattice. Hai là, xây dựng dàn xong rồi mới sinh luật HARs
dẫn đến tốn nhiều thời gian và bộ nhớ do phải thực hiện lần lượt hai giai đoạn.
IV. PHƯƠNG PHÁP ĐỀ XUẤT
Bài toán: Cho CSDL D, ngưỡng độ hữu ích tối thiểu min-Util và ngưỡng độ tin cậy tối thiểu min-Uconf do người dùng
lựa chọn. Bài toán khai thác luật kết hợp từ các mẫu hữu ích cao là tìm ra tất cả các luật kết hợp R thỏa điều kiện
uconf(R) ≥ min-Uconf gọi là luật kết hợp hữu ích cao từ các tập item I có u(I) ≥ min-Util gọi là các tập hữu ích cao
khai thác từ CSDL D [1].
4.1. Ý tưởng thuật toán LHAR (Mining High utility Association Rules based on building Lattice)
Chúng tôi đề xuất khai thác luật kết hợp hữu ích cao dựa trên dàn hữu ích cao qua hai bước sau:
Bước 1: Khai thác HUIs từ CSDL với ngưỡng độ hữu ích tối thiểu min-Util do người dùng lựa chọn. Trong bước này
Chúng tôi sử dụng thuật toán EFIM [6] được đề xuất bởi Zida và các đồng sự năm 2017.
Bước 2. Vừa xây dựng dàn HUIL vừa khai thác luật kết hợp HARs trong quá trình xây dựng dàn. Trong bước này vừa
cải tiến bước 1 vừa rút gọn lại bước 2 của thuật toán LARM [2]. Việc xây dựng dàn HUIL từ các tập HUIs chỉ còn một
quá trình duyệt theo chiều sâu và kết xuất luật HARs chỉ còn một giai đoạn.
Cấu trúc của dàn thể hiện trong hình 1. Dàn tương tự với dàn trong thuật toán LARM [2] gồm nút gốc là rỗng,
không chứa HUI, không có giá trị độ hữu ích và độ hỗ trợ, có tên là Root(0,0). Các nút được nối với nút gốc hoặc nối
với nhau theo quan hệ cha con. Mỗi nút là một phần tử HUI có độ hữu ích trên từng item, tổng độ hữu ích của các item
(Utility) và độ hỗ trợ (Support) tương ứng. Ví dụ, hình 1 nút A[28](28, 2) có một item là A có độ hữu ích là 28 và tổng
độ hữu ích Utility = 28, Support = 2. Nút A[28](28, 2) là cha của nút A[28]C[10](38, 2) có hai item là A và C có độ
hữu ích tương ứng trên từng item là Utility(A) = 28, Utility(C) = 10, tổng độ hữu ích trên cả nút là Utility = 38. Độ hỗ
trợ trên cả nút là Support = 2. Ngược lại, nút A[28]C[10](38, 2) là con của nút A[28](28, 2). Nút A[28](28, 2) có hai
con là A[28]C[10](38, 2) và A[28]E[7](35, 2).
4 KHAI THÁC LUẬT KẾT HỢP HỮU ÍCH CAO DỰA TRÊN DÀN
Hình 1. Dàn các tập hữu ích cao khai thác từ CSDL bảng 1 với ngưỡng min-Util = 25%
4.2. Mô tả thuật toán LHAR
Đầu vào: Tập HUIs được sắp xếp theo thứ tự tăng dần về số lượng phần tử (TableHUI), ngưỡng độ tin cậy tối thiểu
(min-Uconf).
Đầu ra: Tập tất các các luật kết hợp hữu ích cao (RuleSet).
Algorithm LHAR
#15 if rNode.isTraversed
#16 return;
#17 End
#18 Set Flag = true, rNode.isTraversed=true;
#19 if X.size >1 then
#20 for each ChildNode in rNode.ChildNode
#21 if ChildNode ⊂ X then
#22
Trần Lệ Quyên, Nguyễn Thị Thúy Loan, Võ Đình Bảy 5
Bảng 3. Bảng mô tả CSDL cùng với các thuộc tính tương ứng
Tên CSDL Số giao dịch Số Items Tổng giá trị hữu ích Kích thước (KB)
Chess 3,196 75 2,156,659 642
Mushroom 8,124 119 3,413,720 1,064
Accidents 340,183 468 196,141,636 64,686
Các thuật toán được cài đặt và thử nghiệm trong môi trường có cấu hình là: Intel(R) Core(TM) i7-8550U CPU @
1.80GHz, Ram 8 GB, Hệ điều hành Windows 10 phiên bản 64-bit. Ngôn ngữ lập trình Java. Số lượng tập HUIs và số
lượng luật HARs chạy thử nghiệm trong các CSDL được thể hiện cụ thể trong bảng 4 dưới đây:
Bảng 4. Bảng Số tập hữu ích cao và số luật kết hợp hữu ích cao trên các CSDL thực nghiệm.
#HARs min-Uconf
Tên CSDL min-Util(%) #HUIs
40% 60% 80%
24.5 9740 1803478 1691473 593668
25.5 4226 490292 476465 200900
Chess
26.5 1911 132873 132250 70386
27.5 791 30726 30726 22211
10 707250 700455 679987 594178
11 5800 281150 279574 255553
Mushroom
12 2726 78308 78308 74688
13 1152 19606 19606 19474
10 7479 729209 422415 100614
11 2367 131644 88388 23911
Accidents
12 728 22510 17778 5568
13 189 2623 2453 1024
5.2. So sánh thời gian thực hiện và bộ nhớ sử dụng hai thuật toán LARM và LHAR.
Chúng tôi tiến hành thực nghiệm trên các CSDL và thấy rằng thuật toán LHAR có thời gian thực thi và bộ nhớ sử
dụng luôn đạt được hiệu suất tốt hơn LARM [2]. Kết quả thể hiện cụ thể qua các hình dưới đây:
Hình 4 – Hình thể hiện thời gian thực thi trên CSDL Hình 5 – Hình thể hiện bộ nhớ sử dụng trên CSDL
Mushroom với min-Uconf = 60%. Mushroom với min-Uconf = 60%.
M e m ory U sa g e (M b )
10000 800
700 LHAR
1000 600 LARM
400
10 300
Ru
200
1 100
0
13 12 11 10 13 12 11 10
8 Minimum Utility (%) KHAI THÁC LUẬT KẾT HỢP HỮU ÍCH CAO
Minimum DỰA
Utility TRÊN DÀN
(%)
Hình 6 – Hình thể hiện thời gian thực thi trên CSDL Hình 7 – Hình thể hiện bộ nhớ sử dụng trên CSDL
Accidents với min-Uconf = 60%. Accidents với min-Uconf = 60%.
Lời cảm ơn: Nghiên cứu này được tài trợ bởi Quỹ Phát triển khoa học và công nghệ Quốc gia (NAFOSTED) trong đề
tài mã số 102.05-2018.01.
[1] J. Sahoo, A. K. Das and A. Goswami, "An efficient approach for mining association rules from high utility itemsets.," Expert
Systems with Applications, vol. 42, no. 13, p. 5754–5778, 2015.
[2] T. Mai, B. Vo and L. T. T. Nguyen, "A lattice-based approach for mining high utility association rules," Information Sciences,
vol. 399, pp. 81-97, 2017.
[3] Y. Liu, W. Liao and A. Choudhary, "A two-phase algorithm for fast discovery of high utility itemsets," in Proceedings of 9th
Pacific-Asia Conf. on Knowl. Discovery and Data Mining, 2005.
[4] V. S. Tseng, C.-W. Wu, B.-E. Shie and P. S. Yu, " UP-Growth: an efficient algorithm for high utility itemset mining," in 16th
ACM SIGKDD international conference on Knowledge discovery and data mining, 2010.
[5] J. Han, J. Pei and Y. Yin, "Mining frequent patterns without candidate generation," in Proceedings of the 2000 ACM SIGMOD
international conference on Management of data, 2000.
[6] S. Zida, P. Fournier-Viger, J. C.-W. Lin, C.-W. Wu and V. S. Tseng, "EFIM: a fast and memory efficient algorithm for high-
utility itemset mining," Knowledge and Information Systems, vol. 51, no. 2, p. 595–625, 2017.
[7] P. Fournier-Viger, A. Gomariz, T. Gueniche, A. Soltani, C.-W. Wu and V. S. Tseng, "SPMF: a Java open-source pattern mining
library," The Journal of Machine Learning Research, vol. 15, no. 1, pp. 3389-3393, 2014.