Bài viết đề xuất thuật toán song song MCP-mRI nhằm nâng cao hiệu năng cho khai thác tập hiếm tối thiểu trên bộ xử lý đa nhân. Thuật toán đề xuất dễ dàng mở rộng trên nhiều hệ thống tính toán phân tán như Hadoop, Apache Spark. Kết quả thực nghiệm trên bộ dữ liệu thực của UCI và bộ dữ liệu giả lập của trung tâm nghiên cứu IBM Almaden, cho thấy thuật toán đề xuất hiệu quả. Mời các bạn cùng tham khảo!
Trang 1Nâng Cao Hiệu Năng Cho Thuật Toán Khai Thác Tập Hiếm Tối Thiểu Trên Bộ Xử Lý Đa Nhân
Phan Thành Huấn1,2, Lê Hoài Bắc3
1Khoa Toán – Tin học, Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
2Bộ môn Tin học, Trường Đại học Khoa học Xã hội và Nhân văn, ĐHQG-HCM
3Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Email: huanphan@hcmussh.edu.vn, lhbac@fithcmus.edu.vn
Tóm tắt - Trong khai thác dữ liệu, khai thác tập hiếm là một kỹ
thuật khai thác rất quan trọng với các ứng dụng tiềm năng như
phát hiện các cuộc tấn công máy tính, giao dịch gian lận trong
các tổ chức tài chính, tin sinh học, y tế Trong bài viết này, chúng
tôi đề xuất thuật toán song song MCP-mRI nhằm nâng cao hiệu
năng cho khai thác tập hiếm tối thiểu trên bộ xử lý đa nhân
Thuật toán đề xuất dễ dàng mở rộng trên nhiều hệ thống tính
toán phân tán như Hadoop, Apache Spark Kết quả thực nghiệm
trên bộ dữ liệu thực của UCI và bộ dữ liệu giả lập của trung tâm
nghiên cứu IBM Almaden, cho thấy thuật toán đề xuất hiệu quả
Từ khóa - Bộ xử lý đa nhân, khai thác dữ liệu, tập hiếm tối
thiểu, thuật toán song song MCP-mRI
I GIỚI THIỆU Thuật toán khai thác luật kết hợp truyền thống [1-5] chỉ
dùng một giá trị ngưỡng phổ biến tối thiểu minsup với ngầm
định là các mặt hàng có cùng tính chất và tần số trong dữ liệu,
điều này không thực tế Trong kinh doanh bán lẻ, thường các
mặt hàng thiết yếu, hàng tiêu dùng và các sản phẩm giá rẻ được
mua nhiều hơn, trong khi các mặt hàng xa xỉ và các sản phẩm
giá trị cao lại ít được mua (tập hiếm) Nếu chọn minsup quá cao
thì các mặt hàng được khai thác thông thường có giá thành
thấp và mang lại lợi nhuận không cao cho doanh nghiệp
Ngược lại, nếu chọn minsup quá thấp thì các mặt hàng được
khai thác quá lớn, điều này làm cho doanh nghiệp khó khăn khi
ra quyết định kinh doanh Từ đó, có nhiều thuật toán khai thác
tập hiếm được đề xuất như Apriori-Inverse, ARIMA, Rarity,
Walky-G Các thuật toán này dựa trên Apriori [6-9], Eclat
[10] và có nhiều hạn chế như quét dữ liệu nhiều lần, sử dụng
nhiều bộ nhớ, các chiến lược cắt tỉa và chưa sử dụng triệt để
hiệu năng tính toán của bộ xử lý đa nhân (BXLĐN)
Trong bài viết này, chúng tôi đề xuất thuật toán khai thác
song song tập hiếm tối thiểu Thuật toán đề xuất theo hướng
tiếp cận song song dữ liệu và cả chức năng, dưới đây là các
thuật toán liên quan trong bài viết:
- Xây dựng mảng Index_LOOC chứa các item xuất hiện ít
nhất trong một giao dịch của từng item hạt nhân;
- Dựa trên Index_LOOC xây dựng cây nLOOC-Tree ;
- Thuật toán tuần tự SEQ-mRI khai thác tập hiếm tối thiểu
dựa trên cây nLOOC-Tree ;
- Thuật toán song song MCP-mRI khai thác nhanh tập hiếm
tối thiểu trên BXLĐN
Trong phần 2, bài báo trình bày các khái niệm cơ bản về tập
hiếm, tập hiếm tối thiểu Phần 3, xây dựng thuật toán xác định
mảng chứa itemset xuất hiện ít nhất trong một giao dịch của
từng item hạt nhân, thuật toán sinh cây nLOOC-Tree và thuật
toán tuần tự SEQ-mRI khai thác tập hiếm tối thiểu Phần 4,
nhóm tác giả dựa trên thuật toán tuần tự ở Phần 3 để xây dựng
thuật toán song song MCP-mRI khai thác hiệu năng của bộ xử
lý đa nhân Kết quả thực nghiệm được trình bày trong phần 5
và kết luận ở phần 6
II CÁC KHÁI NIỆM CƠ BẢN
A Tập phổ biến
Cho I = {i 1 , i 2, , i m } là tập gồm m mục hàng riêng biệt,
mỗi mục hàng gọi là item Tập các mục
) k j ( i }, i , , i i {
X 1 2 k j 1 gọi là itemset, tập mục có
k mục gọi là k-itemset Ɗ là dữ liệu giao dịch, gồm n bản ghi
phân biệt gọi là tập các giao dịch T = {t 1 , t 2, , t n}, mỗi giao dịch t i { i k i k , , i k }, i k ( k j m )
j
2
hiệu sup(X), là số các giao dịch trong Ɗ có chứa X
sup(X) ≥ minsup, với minsup là ngưỡng phổ biến tối thiểu
Cho dữ liệu giao dịch Ɗ trong Bảng 1
Bảng 1 Dữ liệu giao dịch Ɗ cho Ví dụ
Dữ liệu ở Bảng 1, có 8 item riêng biệt I ={A, B, C, D, E, F,
G, H} và 10 giao dịch T = {t1, t2, t3, t4, t5, t6, t7, t8, t9, t10}
B Tập hiếm và tập hiếm tối thiểu
Trong thực tế, nhiều ứng dụng tiềm năng cần khai thác các tập hiếm như ứng dụng phát hiện các cuộc tấn công máy tính, giao dịch gian lận trong các tổ chức tài chính, tin sinh học, y tế,… Nhiều tác giả đã đề xuất thuật toán [6-10] khai thác tập
Trang 2hiếm tối thiểu thỏa một hoặc hai ngưỡng Sau đây là các khái
niệm liên quan:
Định nghĩa 3: Cho X I, X gọi là itemset hiếm – nếu
sup(X) < minsup Ký hiệu RI là tập hợp chứa các itemset hiếm
– nếu X là itemset hiếm và tất cả tập con thực sự của X là phổ
biến Ký hiệu mRI là tập hợp chứa các itemset hiếm tối thiểu
Tính chất 1: i k I, nếu sup(i k ) < minsup thì i k mRI
Ví dụ 1: Dữ liệu Ɗ trong Bảng 1 với minsup = 2, ta có:
Xét itemset X ={F, G, E}, sup(FGE) = 1 < minsup, ta nói:
”Itemset X ={F, G, E} là itemset hiếm”;
Xét itemset Y ={H, E}, sup(HE) = 1 < minsup, ta nói:
”Itemset Y ={H, E} là itemset hiếm”;
Ngoài ra, itemset X ={F, G, E} còn là itemset hiếm tối
thiểu, nghĩa là các tập con thực sự của itemset X là phổ biến:
sup(F) = 3, sup(G) = 5, sup(E) = 7, sup(FG) = 2, sup(FE) = 2,
sup(GE) = 3 minsup = 2 Trong khi đó, itemset Y = {H, E}
không là itemset hiếm tối thiểu, do sup(H) = 1 < minsup
Theo tính chất 1 thì các item có độ phổ biến nhỏ hơn
minsup thì thuộc mRI, ta có : item H, sup(H) = 1 < minsup,
suy ra item H là item hiếm tối thiểu
Bảng 2 Tập RI và mRI trên Ɗ với minsup = 2
k-itemset Tập hiếm RI #RI = 26 Tập hiếm tối thiểu mRI #mRI = 5
3 BGE, BGC, BGA, DFG, DFC, DFA, DGA,
DGC, FGE
FGE
4 BEFC, BGEA, BGAC, DFGC, DFGA,
DFAC, DGAC, FGEA, FGEC
5 BGEAC, DFGAC, FGEAC
Trong Bảng 2, tập hiếm RI và tập hiếm tối thiểu mRI chứa
k-itemset với minsup = 2 Số lượng itemset hiếm |RI| = 26 và
số lượng itemset hiếm tối thiểu |mRI| = 5 Tỷ suất
5 26 100 19
mRI RI % % Mối quan hệ giữa tập
itemset hiếm và tập itemset hiếm tối thiểu như sau: mRI RI
III CÁC THUẬT TOÁN ĐỀ XUẤT
A Tập chiếu và items xuất hiện ít nhất trên cùng một giao
dịch với item hạt nhân có thứ tự
Tập chiếu của mục hàng i k trên dữ liệu giao dịch Ɗ:
(i k )={t Ɗ│i kt} là tập các giao dịch có chứa mục hàng i k
Tập chiếu của tập mục X { i1 i2, , i k } ,
) k j
(
1 (X) = (i 1 ) (i 2 )… (i k)
Ví dụ 2: Theo Bảng 1, có (A) = {t1, t2, t4, t5, t7, t8, t9,
t10} và (B) = {t7, t 9 } Khi đó, (AB) = (A) (B)= {t1,
t2, t4, t5, t7, t8, t9, 10}{t7, t9} = {t7, t9}, (B) (A) và
(AB) (A)
Để tránh trùng lặp không gian sinh, chúng tôi đưa ra Định
nghĩa 5 – các item có thứ tự theo độ phổ biến:
Định nghĩa 5: Cho i k I (i 1 i 2 … i m ) thứ tự theo độ
phổ biến, ta gọi i k là item hạt nhân Tập X lexlooc I chứa các
item xuất hiện có thứ tự cùng với i k ít nhất trong một giao dịch,
nhưng không đồng xuất hiện: 1| ( i k x lexlooc ) | < | ( i k)| ,
x lexlooc Ƥ1(X lexlooc ) Ký hiệu, lexlooc(i k ) = X lexlooc
Ví dụ 3: Xem item G là item hạt nhân, ta xác định được các item xuất hiện cùng với item B ít nhất trong một giao dịch là
looc(G) = {B, D, E, F} có (G) = {t2, t4, t5, t9, t10} và (GB)
= {t9}, (GE) = {t5, t9, t10}
Trong phần này, chúng tôi trình bày thuật toán sinh các
item xuất hiện ít nhất trong một giao dịch với item hạt nhân,
được lưu trữ vào mảng Index_LOOC Mỗi phần tử trong
Index_LOOC gồm có 3 thành phần thông tin sau:
- Index_LOOC[k].item: item hạt nhân thứ k;
- Index_LOOC[k].sup:độ phổ biến của item hạt nhân thứ k;
- Index_LOOC[k].looc: các item xuất hiện cùng item hạt
nhân thứ k ít nhất trong một giao dịch dạng bit;
Mã giả thuật toán 1 Xây dựng Index_LOOC
Đầu vào: Dữ liệu giao dịch Ɗ Đầu ra: Ma trận BiM, mảng Index_LOOC
1 Với mỗi phần tử k của mảng Index_LOOC:
2 Index_LOOC[k].item = i k
3 Index_LOOC[k].sup = 0
4 Index_LOOC[k].looc= 0
5 Với mỗi giao dịch ti thực hiện:
6 Lưu giao dịch ti vào ma trận BiM
7 Với mỗi item k có trong giao dịch ti thực hiện:
10 Sắp xếp mảng Index_LOOC tăng dần theo sup
11 Với mỗi phần tử k của mảng Index_COOC:
12 Index_COOC[k].looc= lexlooc(i k)
13 Trả về mảng Index_LOOC, ma trận BiM
Minh họa thuật toán 1: thực hiện từ dòng 1 đến 9
Khởi tạo mảng Index_LOOC: (thành phần looc được biểu
diễn dạng bit) số item là m = 8 [4, 5].
looc 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Đọc t 1: {A, C, E, F} có dạng bit là 10101100
looc 10101100 00000000 10101100 00000000 10101100 10101100 00000000 00000000
Duyệt … đến t 10: {A, C, E, F, G} có dạng bit là 10101110
looc 11111110 11101010 11111110 10110110 11101111 10111110 11111110 00001001
Dòng 10, sắp xếp theo độ phổ biến của item, ta có
Index_LOOC như sau:
looc Ø G F, G D, E, G B, D, E, F A, B, C, F, G, H B, D, E, F, G B, D, E, F, G
Thực hiện rút gọn ở dòng 11 và 12, ta có Bảng sau:
Bảng 3 Index_LOOC có thứ tự theo độ phổ biến của item
Bảng 3, minh họa kết quả trả về mảng Index_LOOC từ
thuật toán 1 Mảng Index_LOOC có thành phần looc được
biểu diễn theo item
B Thuật toán sinh cây nLOOC-Tree
Từ Index_LOOC xây dựng các cây chứa các mẫu xuất
hiện ít nhất trong một giao dịch với item hạt nhân Mỗi cây có
nút gốc là item hạt nhân và các nút con là items xuất hiện ít
nhất trong một giao dịch với item hạt nhân Mỗi nút có 2
thành phần:
- nLOOC_Tree[k].item: item xuất hiện ít nhất với item
hạt nhân (nút gốc);
Trang 3- nLOOC_Tree[k].sup: độ phổ biến của item xuất hiện
cùng với item hạt nhân;
Mã giả thuật toán 2: Xây dựng cây nLOOC-Tree
Đầu vào: Ma trận BiM, Mảng Index_LOOC
Đầu ra: Danh sách cây nLOOC-Tree
1 Với mỗi phần tử k của mảng Index_LOOC:
2 nLOOC_Tree[k].item = Index_LOOC[k].item
3 nLOOC_Tree[k].sup = Index_LOOC[k].sup
4 Với mỗi item ik giao dịch tℓ :
5 Với mỗi item ij Index_LOOC[k].looc:
6 Nếu ij nút con của nút gốc nLOOC-Tree[k] thì
7 Thêm nút con ij vào nút gốc nLOOC-Tree[k]
8 Ngược lại
9 Thêm nút con ij vào nút gốc nLOOC-Tree[k]
10 Cập nhật sup của nút con ij của nút gốc nLOOC-Tree[k]
11 Trả về danh sách cây nLOOC-Tree
Hình 1 Cây nLOOC-Tree theo Index_LOOC ở Bảng 3
Cây nLOOC-Tree có các đặc trưng như sau:
- Chiều cao của cây nhỏ hơn hoặc bằng số lượng các item
xuất hiện ít nhất trong một giao dịch với item hạt nhân
(các item có thứ tự theo độ phổ biến)
- Mỗi đường đi đơn (single-path) là một mẫu có thứ tự từ
nút gốc (item hạt nhân) đến nút lá và độ phổ biến của một
mẫu là độ phổ biến của nút lá (i ki k+1…i ℓ)
- Mỗi phân đoạn đường đi đơn (sub-single-path) từ nút gốc
đến nút con bất kỳ trong đường đi đơn là một mẫu thứ tự
và độ phổ biến của mẫu là độ phổ biến của nút con ở cuối
của phân đoạn đường đi đơn
Ví dụ 4: Xét item hạt nhân F, có đường đi đơn {F G
E} và sup(FGE) = 1; phân đoạn đường đi đơn {F G} và
sup(FG) = 2 là độ phổ biến của nút con G
C Thuật toán tuần tự khai thác tập hiếm tối thiểu
Thuật toán SEQ-mRI (SEQuential-minimal Rare
Itemsets): khai thác tuần tự tập hiếm tối thiểu dựa trên cây
nLOOC-Tree chứa các item xuất hiện ít nhất trong một giao
dịch với từng item hạt nhân (có thứ tự theo độ phổ biến)
Các bổ đề dùng loại bỏ các item không sinh itemset hiếm
tối thiểu trong quá trình khai thác:
Bổ đề 1: i k i j , nếu i j lexlooc(i k ) thì sup(i k i j) <
sup(i k)
Chứng minh: sup(i k i j ) < sup(i k ), theo (1) và (2) (i k i j) =
(i k ) (i j ) (i k) ■
Bổ đề 2: i k I, sup(i k ) minsup, nếu lexlooc(i k ) = X lexlooc
và sup(i k x sub ) < minsup thì {i k x sub } RI, x sub
Ƥ1(X lexlooc)
Chứng minh: theo bổ đề 1, ta có sup(i k x sub ) < sup(i k)
minsup, nên {i k x sub } RI, x sub Ƥ1(X lexlooc) ■
Bổ đề 3: i k I, sup(i k ) ≥ minsup, nếu lexlooc(i k ) = X lexlooc
và sup(i k x sub ) < minsup thì {i k x sub } mRI, x sub
Ƥ2(X lexlooc)
Chứng minh: theo bổ đề 2, ta có {i k x sub } RI và theo bổ
đề 1, i j x sub mà sup(i k i j ) < minsup nên {i k x sub } mRI,
x sub Ƥ2(X lexlooc) ■
Mã giả thuật toán 3: SEQ-mRI
Đầu vào: Ma trận BiM, Index_LOOC, minsup Đầu ra: Tập hiếm tối thiểu mRI
1 Với mỗi Index_LOOC[k].sup < minsup
2 mRI[k] = mRI[k] Index_LOOC[k].item//theo tính chất 1
3 Với mỗi (Index_LOOC[k].sup ≥ minsup) và
(Index_LOOC[k].looc {})//bổ đề 3
4 nLOOC_Tree(Index_LOOC[k].item)
5 SSP GenPath(Index_LOOC[k].item)//sinh sub-single-path
6 Với mỗi ssp j SSP
7 Nếu (sup(sspj) < minsup) và (sup(sspj \{i ℓ}) minsup) thì
8 mRI[k] = mRI[k]{(ssp j \{i ℓ})}
9 Trả về tập hiếm tối thiểu mRI
Ví dụ 5: Cho dữ liệu Ɗ trong Bảng 1 và minsup = 5
Dòng 1 và 2: các item hiếm tối thiểu theo tính chất 1 – có
item H, B, D và F (sup(H) = 1, sup(B) = sup(D) = 2 và sup(F) =
3 < minsup);
Dòng 3: loại bỏ item A và C khỏi danh sách các item khai
phá; (Bổ đề 3)
Xét item G, xem cây nLOOC-Tree(G): có một đường đi đơn {G E} và sup(GE) = 3 < minsup Ta có, mRI[G] =
{(GE; 3)}
Bảng 4 Tập hiếm tối thiểu mRI trên Ɗ với minsup = 5
IV THUẬT TOÁN SONG SONG MCP-MRI Ngày nay, nhiều máy tính cá nhân và máy trạm có trên hai
nhân cho phép nhiều luồng xử lý (thread) được thực hiện đồng
thời – điều này làm cho các máy tính có được tốc độ xử lý nhanh hơn và khả năng đa nhiệm tốt hơn Để tận dụng hết hiệu năng của BXLĐN ta cần phân phối xử lý đồng thời trên nhiều nhân cho nhiều pha hay bài toán khác nhau để tiết kiệm thời gian và nâng cao hiệu năng
Chúng tôi xây dựng thuật toán song song MCP-mRI
(Multi Core Processors - minimal Rare Itemsets) khai thác tập
hiếm tối thiểu trên BXLĐN dựa trên thuật toán SEQ-mRI
Thuật toán tuần tự SEQ-mRI, gồm 2 pha chính:
- Pha 1: Xây dựng mảng Index_LOOC chứa itemset xuất
hiện ít nhất trong một giao dịch của từng item hạt nhân;
- Pha 2: Thuật toán SEQ-mRI khai thác tập hiếm tối thiểu từ mảng Index_LOOC
Trang 4Bước thứ nhất, song song hóa Pha 1 theo sơ đồ dưới đây:
Hình 2 Sơ đồ song song hóa cho Pha 1
Hình 2, phân chia dữ liệu Ɗ thành c dữ liệu con Ɗ 1 , Ɗ 2 ,…,
Ɗ c-1 , Ɗ c ứng với từng nhân C i thực hiện thuật toán 1 với đầu
vào là dữ liệu Ɗ i và đầu ra là mảng Index_LOOC i tương ứng
Để tính mảng Index_LOOC cho Ɗ, thực hiện phép tính sau:
Sau đó, sắp xếp mảng Index_LOOC tăng dần theo sup và
chuẩn hóa theo dòng 14, 15 và 16 của thuật toán 1
Ví dụ 6: Giả sử Ɗ được chia thành 2 tập - Ɗ 1 có 5 giao
dịch {t1, t2, t3, t4, t5} và Ɗ 2 có 5 giao dịch {t6, t7, t8, t9, t10}
Ɗ 1 chạy thuật toán 1 trên nhân C 1 và trả về Index_LOOC 1:
cooc 10100000 11111111 10100000 10110110 00001000 10100100 10100010 00001001
looc 10111110 00000000 10111110 10110110 10101111 10111110 10111110 00001001
Ɗ 2 chạy thuật toán 1 trên nhân C 2 và trả về Index_LOOC 2:
cooc 10100000 11101000 10100000 10110000 00001000 10101110 10101010 11111111
looc 11111110 11101010 11111110 10110000 11101110 10101110 11101110 00000000
Tính mảng Index_LOOC cho Ɗ, :Index_LOOC =
cooc 10100000 11101000 10100000 10110000 00001000 10100100 10100010 00001001
looc 11111110 11101010 11111110 10110110 11101111 10111110 11111110 00001001
Bước thứ hai, song song hóa Pha 2 theo sơ đồ sau:
Hình 3 Sơ đồ song song hóa cho Pha 2
Hình 3, phân chia mảng Index_LOOC từ i 1 đến i m thành c
phần ứng với từng nhân C j thực hiện thuật toán SEQ-mRI với
đầu vào là mảng Index_LOOC từ phần tử thứ [(j-1)*(m div
c)+1] đến phần tử thứ [j*(m div c)] và đầu ra là tập hiếm tối
thiểu mRI j tương ứng Tập hiếm tối thiểu cho Ɗ, ta thực hiện:
Ví dụ 7: Cho dữ liệu Ɗ trong Bảng 1, minsup = 2 Sau khi
thực hiện song song hóa Pha 1, ta có như Bảng 4
Nhân C 1 chạy thuật toán SEQ-mRI từ item H đến F sinh
tập hiếm tối thiểu mRI 1 như sau:
mRI [H] (H;1)
mRI [B] (B; 2)
mRI [D] (D; 2)
mRI [F] (F; 3)
Nhân C 2 chạy thuật toán SEQ-mRI từ item G đến C và
sinh tập hiếm tối thiểu mRI 2 như sau:
mRI [G] (GE; 3)
Tập hiếm tối thiểu mRI trên dữ liệu giao dịch Ɗ với
minsup = 5 được tính mRI Ɗ = mRI 1 mRI 2 như Bảng 4
V KẾT QUẢ THỰC NGHIỆM Thực nghiệm trên máy Panasonic CF-74, Core Duo 2.0
GHz (2 core, 2 thread), 4GB RAM, cài đặt trên C#, VS 2010
Nghiên cứu thực nghiệm trên 2 nhóm dữ liệu:
Nhóm dữ liệu thực dày đặc: sử dụng dữ liệu thực từ kho dữ
liệu về học máy của trường Đại học California (Lichman, M (2013) UCI Machine Learning Repository [http://archive.ics.uci.edu/ml] Irvine, CA: University of California, School of Information and Computer Science) gồm
2 tập Chess và Mushroom
Nhóm dữ liệu giả lập thưa: sử dụng phần mềm phát sinh
dữ liệu giả lập của trung tâm nghiên cứu IBM Almaden (IBM Almaden Research Center, San Joe, California 95120, U.S.A
[http://www.almaden.ibm.com]) gồm 2 tập T10I4D100K và
T40I10D100K
Bảng 5 Dữ liệu thực nghiệm
Ɗ item Số nhất/giao dịch Số item nhỏ Số item lớn nhất/ giao dịch bình/ giao dịch Số item trung Mật độ (%)
Chess 75 37 37 37 49,3
Mushroom 119 23 23 23 19,3
Trong bài viết này, chúng tôi đề xuất thuật toán khai thác
song song tập hiếm tối thiểu Đây là đề xuất đầu tiên theo
hướng tiếp cận trên, nên chưa có thuật toán cùng hướng tiếp cận để so sánh hiệu năng thuật toán Vì vậy, chúng tôi đề xuất
so sánh hiệu năng thuật toán song song như sau: so sánh thuật
toán tuần tự SEQ-mRI với thuật toán AprioriRare [7] và
thuật toán Walky-G [10] Sau đó, chúng tôi so sánh hiệu suất
của thuật toán song song MCP-mRI với thuật toán tuần tự
SEQ-mRI Trong thực nghiệm, chúng tôi tiến hành so sánh
theo từng ngưỡng minsup và cả 4 thuật toán đều cho cùng kết quả số lượng itemsets hiếm
Hiệu suất thực hiện thuật toán song song trên BXLĐN:
c
T c
T T
M
Trong đó:
- T S: thời gian thực hiện tuần tự
- T M: thời gian thực hiện song song trên BXLĐN
- c: số lượng nhân của CPU (số core)
Phương trình (5) dùng để đánh giá hiệu suất của thuật toán
song song MCP-mRI so với thuật toán tuần tự SEQ-mRI
1 4 16 64 256 1024 4096 16384 65536 262144
Minsup (% )
Chess
AprioriRare Walky-G SEQ-mRI MCP-mRI
Hình 4 Thời gian thực hiện khai thác mRI trên Chess
Hình 4 là kết quả thực nghiệm trên tập dữ liệu Chess có mật độ dày đặc, ta thấy thuật toán tuần tự SEQ-mRI nhanh hơn thuật toán AprioriRare, Walky-G và thuật toán chạy trên BXLĐN là MCP-mRI có thời gian thực hiện nhanh hơn thuật
Trang 5toán tuần tự SEQ-mRI Hiệu suất trung bình của thuật toán
MCP-mRI là 76,9% và độ lệch chuẩn 2,2%
1
2
4
8
16
32
64
128
256
512
Minsup (% )
Mushroom
AprioriRare Walky-G SEQ-mRI MCP-mRI
Hình 5 Thời gian thực hiện khai thác mRI trên Mushroom
Hình 5 là kết quả thực nghiệm trên tập dữ liệu Mushroom
có mật độ cao, ta thấy thuật toán tuần tự SEQ-mRI nhanh hơn
thuật toán AprioriRare, Walky-G và thuật toán chạy trên
BXLĐN là MCP-mRI có thời gian thực hiện nhanh hơn thuật
toán tuần tự SEQ-mRI Hiệu suất trung bình của thuật toán
MCP-mRI là 78% và độ lệch chuẩn 2,6%
1
4
16
64
256
1024
4096
16384
65536
262144
1048576
0,01 0,015 0,02 0,025 0,03
Minsup (% )
T10I4D100K
AprioriRare Walky-G SEQ-mRI MCP-mRI
Hình 6 Thời gian thực hiện khai thác mRI trên T10I4D100K
Hình 6 là kết quả thực nghiệm trên nhóm dữ liệu giả lập có
mật độ thấp T10I4D100K, ta thấy thuật toán tuần tự SEQ-
mRI nhanh hơn thuật toán AprioriRare, Walky-G và thuật
toán chạy trên BXLĐN là MCP-mRI có thời gian thực hiện
nhanh hơn thuật toán tuần tự SEQ-mRI Hiệu suất trung bình
của thuật toán MCP-mRI là 78,5% và độ lệch chuẩn 1,9%
1
4
16
64
256
1024
4096
16384
65536
262144
0,075 0,08 0,085 0,09 0,095
Minsup (% )
T40I10D100K
AprioriRare Walky-G SEQ-mRI MCP-mRI
Hình 7 Thời gian thực hiện khai thác mRI trên T40I10D100K
Hình 7 là kết quả thực nghiệm trên nhóm dữ liệu giả lập có
mật độ thấp T40I10D100K, ta thấy thuật toán tuần tự
SEQ-mRI nhanh hơn thuật toán AprioriRare, Walky-G và thuật
toán chạy trên BXLĐN là MCP-mRI có thời gian thực hiện nhanh hơn thuật toán tuần tự SEQ-mRI Hiệu suất trung bình của thuật toán MCP-mRI là 80,9% và độ lệch chuẩn 2,7%
Kết quả trên cho thấy thuật toán song song khai thác tập
hiếm tối thiểu MCP-mRI trên BXLĐN tốt hơn rất nhiều so với thuật toán AprioriRare, Walky-G Thuật toán MCP-mRI
cần được thực nghiệm thêm trên các dữ liệu giao dịch cỡ lớn
và so sánh thêm với các thuật toán chạy trên hệ thống tính toán phân tán Hadoop, Spark Ngoài ra, ta còn thấy rõ thuật
toán MCP-mRI hoàn toàn là thuật toán song song
VI KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Bài viết đã đề xuất thuật toán tuần tự SEQ-mRI khai thác
nhanh tập hiếm tối thiểu dựa trên mảng itemset xuất hiện ít nhất trong một giao dịch của từng item hạt nhân Từ thuật toán
tuần tự SEQ-mRI, chúng tôi mở rộng và song song hóa thực hiện trên BXLĐN gọi là thuật toán MCP-mRI Hiệu suất trung
bình khi song song hóa là 78,6% và độ lệch chuẩn 1,7% (trên
dữ liệu thực nghiệm)
Trong các nghiên cứu tiếp theo, nhóm tác giả sẽ mở rộng
thuật toán MCP-mRI để có thể khai thác nhanh tập hiếm tối
thiểu trên hệ thống điện thoại thông minh đa lõi có tài nguyên hạn chế, cũng như thực nghiệm mở rộng trên hệ thống phân tán phổ biến hiện nay như Hadoop, Spark
LỜI CẢM ƠN Nhóm tác giả cảm ơn sự hỗ trợ từ Trường Đại học Khoa học Xã hội và Nhân văn; Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Tp.HCM
TÀI LIỆU THAM KHẢO [1] R Agrawal, T Imilienski, A Swami Mining association rules between sets of large databases Proc of the ACM SIGMOD International Conference on Management of Data, Washington, DC, (1993) 207-216 [2] M J Zaki, S Parthasarathy, M Ogihara, W Li New Algorithms for Fast Discovery of Association Rules In: Proc of the 3rd International Conference on Knowledge Discovery in Databases, (1997) 283-286 [3] J Han, J Pei, Y Yin, R Mao Mining frequent patterns without candidate generation: A frequent pattern tree approach Data Mining and Knowledge Discovery, 8(1), (2004) 53–87
[4] J Dong, M Han BitTableFI: An efficient mining frequent itemsets algorithm Knowledge-Based Systems 20(4), (2007) 329–335
[5] W Song, B Yang Index-BitTableFI: An improved algorithm for mining frequent itemsets Knowedge-Based Systems 21, (2008)
507-513
[6] Y S Koh, N Rountree Finding sporadic rules using apriori-inverse In PAKDD’05, 3518, Springer, (2005) 97–106
[7] L Szathmary, A Napoli, P Valtchev Towards rare itemset mining Proc of the 19th IEEE Int Conf on Tools with Artificial Intelligence Washington, DC, USA: IEEE Computer Society, (2007) 305–312 [8] L Troiano, C Birtolo A fast algorithm for mining rare itemsets IEEE 19th International Conference on Intelligent Systems Design and Applications, (2009) 1149-1155
[9] L Szathmary, Finding minimal rare itemsets with an extended version
of the Apriori algorithm, Proceedings of the 9th International Conference on Applied Informatics, 1, (2014), 85-92
[10] L Szathmary, P Valtchev, A Napoli, R Godin Efficient vertical mining of minimal rare itemsets Proc of the 19th Int Conference on Concept Lattices and Their Applications, (2012) 269–280