Tải bản đầy đủ (.pdf) (10 trang)

Cải tiến hiệu suất của thuật toán khai thác mẫu tuần tự với ràng buộc trọng số khai thác top k mẫu tuần tự p3

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (549.2 KB, 10 trang )

CHƯƠNG 3. KHAI THÁC TOP-K CHUỖI TUẦN TỰ ĐĨNG
Bài tốn khai thác các mẫu tuần tự đóng (CSP – Closed Sequential Pattern) là một
nhiệm vụ thiết yếu trong khai thác dữ liệu, với nhiều ứng dụng khác nhau. Nó được đề
xuất sử dụng để giải quyết các khó khăn trong bài toán khai thác mẫu tuần tự từ CSDL
chuỗi rất lớn hoặc ngưỡng minsup thấp. Tuy nhiên, để tạo ra đúng số lượng CSP mà
người dùng mong muốn là rất khó và điều này cần nhiều thời gian để tùy chỉnh các giá
trị minsup cho phù hợp. Để khắc phục vấn đề này, bài toán khai thác top-k CSP đã được
đề xuất trong đó k là số lượng CSP mà người dùng mong muốn (k CSP có giá trị hỗ trợ
cao nhất trong CSDL chuỗi).

3.1. Giới thiệu
Quá trình khai thác CSPs tạo ra một số CSP thường nhỏ hơn số lượng mẫu tuần tự,
do đó, nó làm giảm đáng kể số lượng mẫu được tạo ra trong quá trình khai thác mà
khơng làm mất bất kỳ thơng tin nào. Vì dựa trên tính chất của tập đóng chúng ta có thể
tìm thấy tập đầy đủ các mẫu tuần tự từ tập các CSP. Một số nhà nghiên cứu đã đề xuất
các thuật toán để khai thác các CSP [17, 27, 28, 32, 36, 37]. Năm 2003, Yan et al. đã
giới thiệu thuật toán CloSpan [37], tương tự như CLOSET [26] và CHARM [42], đồng
thời thuật toán áp dụng phương pháp kiểm tra và duy trì ứng viên để kiểm tra xem một
mẫu tuần tự mới tìm thấy có phải là một mẫu tuần tự đóng hay khơng. Tuy nhiên, khi
có nhiều CSP được khai thác, CloSpan sẽ cần nhiều bộ nhớ để kiểm tra đóng mẫu và
lượng lớn khơng gian tìm kiếm để duy trì tập hợp các ứng cử viên chuỗi đóng lịch sử.
Năm 2004, Wang et al. đã đề xuất thuật toán BIDE [36] để khai thác các CSP. Thuật
tốn này áp dụng một lược đồ mới có tên là BI-Directional Extension để kiểm tra chuỗi
đóng và phương pháp cắt bỏ BackScan để giảm khơng gian tìm kiếm, bên cạnh đó kỹ
thuật tối ưu hóa ScanSkip cũng được sử dụng để tạo tập tất cả các CSP mà khơng cần
duy trì ứng viên. Tuy nhiên, thuật tốn BIDE tiêu tốn rất nhiều thời gian để quét CSDL
chiếu. Thuật toán FCSM-PD [17] được đề xuất bởi Huang và cộng sự; thuật tốn này sử
dụng vị trí dữ liệu để bảo tồn thơng tin vị trí của các mục trong các chuỗi dữ liệu. Việc
mở rộng vị trí của một chuỗi tiền tố được kiểm tra trực tiếp và thông tin vị trí của tất cả
các chuỗi tiền tố mới sẽ được ghi lại trong quá trình tăng trưởng mẫu. Tuy nhiên, trong
q trình tăng trưởng mẫu, thuật tốn FCSM-PD yêu cầu nhiều bộ nhớ hơn để lưu tất cả


thông tin vị trí của một chuỗi tiền tố. Năm 2016, Pham et al. [28] đã đề xuất phương
pháp khai thác CSP từ CSDL chuỗi. Phương pháp này thêm một trường IsCSP vào mỗi
nút trên cây tiền tố và áp dụng định nghĩa mẫu tuần tự đóng để kiểm tra xem một mẫu
tuần tự có phải là một mẫu đóng hay khơng. Bên cạnh đó, để giảm thời gian cần thiết
trong quá trình tìm chuỗi ứng viên và kiểm tra tần suất cho từng ứng viên, cách tiếp cận
này đã sử dụng phương pháp mã hóa khối nguyên tố. Huynh và cộng sự. [19] đã đề
xuất thuật tốn pDBV-FCSP để tìm CSP bằng cách áp dụng phương pháp tiếp cận
18


véctơ bit động song song. Phương pháp này sử dụng kiến trúc bộ xử lý đa lõi và cấu
trúc dữ liệu DBV để khai thác các CSP từ CSDL lớn. Năm 2017, Le et al. [21] cũng
giới thiệu một thuật toán gọi là FCloSM để khai thác các CSP. Thuật toán này dựa trên
điều kiện loại bỏ sớm mở rộng và sử dụng kỹ thuật cắt bỏ sớm để xóa các mẫu tuần tự
không phải là CSP mà không cần thực hiện kiểm tra quan hệ cha-con tại mức thứ hai
của cây tiền tố.
Các thuật toán để khai thác các CSP từ CSDL chuỗi được đề cập ở đều yêu cầu
một ngưỡng hỗ trợ tối thiểu minsup do người dùng định nghĩa. Tuy nhiên, trong các
ứng dụng thực tế, người dùng rất khó chọn lựa một giá trị minsup thích hợp để tạo ra
đúng số lượng các CSP mà người dùng mong muốn. Nếu khơng, thuật tốn có thể tạo ra
một số lượng q ít mẫu có ý nghĩa hay q nhiều mẫu vơ nghĩa, điều này rất quan
trọng vì tài nguyên lưu trữ và xử lý là có giới hạn. Để giải quyết vấn đề này, các thuật
toán khai thác theo hướng top-k mẫu tuần tự đóng đã được nghiên cứu và đề xuất; khi
đó, k là số mẫu tuần tự đóng có độ hỗ trợ cao nhất mà người dùng mong muốn thuật
tốn tìm kiếm và trả về mà khơng cần tính tốn để xác định minsup là bao nhiêu. Giải
pháp này không chỉ để khai thác top-k các mẫu tuần tự [9, 5] và các top-k CSP [33], mà
còn hiệu quả trong nhiều lĩnh vực khai thác dữ liệu khác như khai thác top-k luật kết
hợp [ 3, 24], top-k luật tuần tự [7] và top-k tập phổ biến [22].
Năm 2005, Tzvetkov, và các cộng sự [33] đã đề xuất thuật toán TSP (Mining TopK Closed Sequential Patterns) để khai thác top-k mẫu tuần tự phổ biến đóng mà khơng
u cầu người dùng một ngưỡng hỗ trợ tối thiểu minsup. thuật toán được xây dựng theo

hướng tiếp cận phát triển mẫu dựa trên thuật toán PrefixSpan [25], nghĩa là thuật tốn
thực hiện duyệt CSDL để tìm các mẫu chứa một phần tử, chỉ xét các chuỗi con tiền tố
và chỉ chiếu chuỗi con hậu tố tương ứng của chúng vào các CSDL chiếu. Lợi ích chính
của hướng tiếp cận CSDL chiếu (projection-based) là nó chỉ xem xét các mẫu đang
xuất hiện trong CSDL mà không thực hiện việc kiểm tra khi phát sinh mẫu [9]. Đây là
thuật toán tốt nhất hiện tại được đề xuất cho bài toán khai thác top-k CSP. Tuy nhiên,
thuật toán TSP dùng phương pháp lặp đi lặp lại việc duyệt/ chiếu CSDL nhiều lần nên
phải tốn chi phí và chi phí có thể rất cao đối với CSDL dày đặc do có rất nhiều phép
chiếu được thực hiện.
Thuật toán TKS [9] được Fournier-Viger đề xuất năm 2013 đã sử dụng CSDL
bitmap dọc để biểu diễn dữ liệu và sử dụng thủ tục của thuật toán SPAM [2] để tạo ứng
viên ban đầu; tiến hành tìm và mở rộng các mẫu, đồng thời áp dụng một vài chiến lược
để tăng hiệu quả khai thác k mẫu tuần tự phổ biến. Hiện nay, đây được xem là thuật
toán đại diện tốt nhất cho hướng tiếp cận khai thác Top-k mẫu tuần tự phổ biến.
Để nâng cao hiệu suất của bài toán khai thác top-k CSP được đề xuất bởi
Tzvetkov, và các cộng sự [33], đề tài đề xuất sử dụng biểu diễn CSDL bitmap dọc thay
19


cho CSDL chiếu, trong đó mỗi mục là một phần của vectơ có độ dài cố định bằng tổng
số tập mục trong CSDL. Bên cạnh đó, để giảm khơng gian tìm kiếm và tăng hiệu quả
khai thác top-k CSP, đề tài cũng đề xuất áp dụng một số chiến lược hiệu quả như:
- Ln lấy mẫu tuần tự có độ hỗ trợ lớn nhất để mở rộng và tạo các mẫu ứng viên
- Sử dụng danh sách để lưu trữ các mẫu tuần tự được sắp xếp theo các giá trị hỗ
trợ tăng dần
- Tăng giá trị minsup bằng giá trị hỗ trợ của mẫu tuần tự trong danh sách top-k
CSP có giá trị hỗ trợ nhỏ nhất.

3.2. Định nghĩa
• CSDL bitmap dọc

Cho CSDL chuỗi D chứa q item và m chuỗi (sequence), size(i) là số itemset trong
chuỗi thứ i. CSDL bitmap dọc của D, ký hiệu V(D) được định nghĩa như là một tập của
q bit vec-tơ có kích thước
-

, sao cho:

Mỗi item x có một bit vec-tơ tương ứng bv(x).
Nếu item x xuất hiện trong itemset thứ p của chuỗi thứ t trong D thì bit thứ
của bit vec-tơ bv(x) được gán là 1, ngược lại là 0.
• Cấu trúc PMAP (Precedence Map):

-

Item i được trình bày bằng 1 danh sách các bộ ba theo mẫu <j, m, x> với m là số
chuỗi chứa cả i, j và j xuất hiện sau i trong CSDL bởi x-extension (x  {i, s})

-

Item i xuất hiện sau item j trong chuỗi 〈A1, A2, …, An〉 bởi s-extension nếu j Ax
và i Ay với x, y là số nguyên và 1 ≤ x < y ≤ n.

-

Item i xuất hiện sau item j trong chuỗi 〈A1, A2, …, An〉 bởi i-extension nếu i,
j Ax với x là số nguyên, 1 ≤ x ≤ n và i lớn hơn j theo thứ tự từ điển.

3.3. Thuật toán khai thác top-k mẫu tuần tự đóng
Trong hình 3.1 mơ tả một thuật tốn đề tài đề xuất để khai thác top-k CSP được gọi
là TKCS (Top-K Closed Sequences). Thuật toán này sử dụng CSDL biểu diễn theo

dạng bitmap dọc [2, 9] và sử dụng thủ tục tạo ứng viên của thuật toán SPAM [2] để mở
rộng các mẫu. Thuật toán áp dụng định nghĩa của mẫu tuần tự đóng để kiểm tra xem
một mẫu tuần tự ứng viên có được đóng hay khơng. Bên cạnh đó, thuật tốn cũng áp
dụng một số chiến lược để tăng hiệu quả khai thác quy trình mẫu tuần tự khép kín topk, chẳng hạn như:
- Ln lấy mẫu tuần tự có hỗ trợ lớn nhất đi mở rộng trước tiên để tạo các mẫu ứng
viên, bởi vì mở rộng mẫu có hỗ trợ lớn nhất sẽ tạo ra các mẫu mới thường có giá trị hỗ
trợ cao.
20


- Đặt minsup bằng giá trị hỗ trợ của mẫu tuần tự có giá trị hỗ trợ thấp nhất trong
danh sách top-k CSP. Chiến lược này có thể tăng giá trị minsup nhanh hơn và cắt bớt
khơng gian tìm kiếm.
Input: Sequence database as SD, k value
Output: L: Set of top-k closed sequential patterns

TKCS(SD,k)
R := Ø. L := Ø. minsup := 0.
Scan sequence database SD to create V(SD).
Set Sinit be the list of items in V(SD).
FOR each item s ∈ Sinit, IF s is frequent according to bv(s) THEN
SAVE_CSP (s, L, k, minsup).
R := R U {<s, Sinit, items from Sinit that are lexically larger than s>}.
WHILE ∃ <r, S1, S2> ∈ R AND sup(r) ≥ minsup DO
Select the tuple <r, S1, S2> that has the pattern r with the maximum support value in R.
EXTENSION_PAT(r, S1, S2, L, R, k, minsup).
Remove <r, S1, S2> from R.
Remove all tuples <r, S1, S2> ∈ R | sup(r) < minsup from R.
RETURN L.
// The candidate generation procedure

EXTENSION_PAT(pat, Sn, In, L, R, k, minsup)
Stemp := Itemp := Ø
FOR each i ∈ Sn,
IF (pat, {i}) is frequent THEN Stemp := Stemp U {i}.
FOR each i∈ Stemp,
SAVE_CSP ((pat,{i}), L, k, minsup).
R := R U {<(pat,{i}), Stemp, all elements in Stemp greater than i>}.
FOR each j ∈ In,
IF (pat U {j}) is frequent THEN Itemp := Itemp U {j}.
FOR each j ∈ Itemp,
SAVE_CSP((pat U {j}), L, k, minsup).
R := R U {<( pat U {j}), Stemp , all elements in Itemp greater than j >}.
//The save a closed sequential pattern procedure
SAVE_CSP(r, L, k, minsup)
IF |L| < k AND sup(r)  minsup THEN
FOR each sequential s ∈ L
IF (sup(s) = sup(r) AND s r) THEN
Remove s from L
L := L U {r}
IF (sup(s)  sup(r)) THEN
L := L U {r}
IF |L|  k AND sup(r)  minsup THEN
WHILE |L| > k AND ∃s ∈ L | sup(s) = minsup
Remove s from L.
FOR each sequential s ∈ L
IF (sup(s) = sup(r) AND s r) THEN
Remove s from L
L := L U {r}
IF (sup(s)  sup(r)) THEN
L := L U {r}

Set minsup equal to the support of sequential pattern in L that have the minimum support value.

Hình 3.1 Thuật tốn TKCS
21


3.4. Đánh giá kết quả thực nghiệm
Kết quả thực nghiệm của thuật toán TKCS để khai thác top-k mẫu tuần tự đóng
mà đề tài đề xuất được so sánh với thuật toán TSP [33]. Các kết quả thực nghiệm được
thực hiện trên máy tính Intel (R), Core (TM) i3-2370M CPU 2.40 GHz, 4Gb RAM trên
hệ điều hành Windows 10 với ngơn ngữ lập trình Java. CSDL sử dụng trong thực
nghiệm là các bộ dữ liệu chuẩn được tải trực tiếp từ trang Đây
là địa chỉ chứa các tập dữ liệu tin cậy được cộng đồng nghiên cứu khai thác mẫu tuần tự
sử dụng để kiểm chứng thực nghiệm các thuật toán đề xuất. Đặc điểm của các bộ dữ
liệu sử dụng trong thực nghiệm được trình bày trong bảng 3.2.
Bảng 3.3 Bộ CSDL chạy thực nghiệm và các thuộc tính liên quan

Kết quả thực nghiệm của 2 thuật tốn TKCS và TSP với bộ dữ liệu trong bảng 3.3
và các k = 50, 100 , 200, 300, 400 được thể hiện trong bảng 3.4 và các hình từ hình 3.2
đến hình 3.7.

22


Bảng 3.4 Sử dụng bộ nhớ của TKCS và TSP
Sequence database

Sign

Leviathan


Bible

FIFA

BmsWebView1

BmsWebView2

Number of k
patterns

Memory usage (MB)
TKCS
TSP
(1)
(2)

Ratio
(1)/(2) %

50

109

281

39

100


163

285

57

200

240

290

83

300

250

293

85

400

260

300

87


50

250

318

79

100

320

384

83

200

435

522

83

300

590

668


88

400

680

906

75

50

363

574

63

100

399

695

57

200

450


872

52

300

550

895

61

400

661

950

70

50

278

560

50

100


429

743

58

200

556

789

70

300

630

851

74

400

759

935

81


50

72

183

39

100

129

298

43

200

178

319

56

300

219

368


60

400

293

422

69

50

206

273

75

100

253

336

75

200

350


411

85

300

412

493

84

400

550

583

94

23


Hình 3.2 Thời gian thực thi giữa TKCS và TSP trên CSDL Sign

Hình 3.3 Thời gian thực thi giữa TKCS và TSP trên CSDL Leviathan

24



Hình 3.4 Thời gian thực thi giữa TKCS và TSP trên CSDL Bible

Hình 3.5 Thời gian thực thi giữa TKCS và TSP trên CSDL FIFA
25


Hình 3.6 Thời gian thực thi giữa TKCS và TSP trên CSDL BmsWebView1

Hình 3.7 Thời gian thực thi giữa TKCS và TSP trên CSDL BmsWebView2
26


• Sử dụng bộ nhớ:
Việc sử dụng bộ nhớ của các thuật toán TKCS và TSP trên các tập dữ liệu Sign,
Leviathan, Bible, FIFA, BmsWebView1, BmsWebView2 được trình bày trong Bảng
3.4 cho mỗi giá trị k. Các kết quả thử nghiệm này cho thấy việc sử dụng bộ nhớ của
thuật tốn TKCS ln thấp hơn nhiều so với thuật tốn TSP trong tất cả các CSDL có
số lượng k-CSP khác nhau. Ví dụ, đối với CSDL Bible, k = 200, mức sử dụng bộ nhớ
của TKCS và TSP lần lượt là 450 MB và 872 MB, và tỷ lệ giữa TKCS và TSP là 52%.
• Thời gian thực thi
Với kết quả chạy thực nghiệm trong trong hình từ hình 3.2 đến 3.7 cho thấy thời
gian thực thi của thuật toán TKCS nhanh hơn nhiều so với thuật toán TSP trong tất cả
các CSDL và với số lượng k-CSP khác nhau, đặc biệt khi người dùng chọn số lượng k
mẫu cần tìm càng lớn thì thời gian thực thi của TKCS nhanh hơn so với TSP càng
nhiều. Ví dụ, với CSDL Sign thì khi k = 50 ta thấy thời gian thực thi của TKCS nhanh
gấp 1.7 lần so với TSP, đặc biệt khi tăng k=400 thì điều này thể hiện càng rõ riệt hơn về
thời gian chạy, cụ thể là TKCS nhanh gấp 2.3 lần so với TSP. Với các bộ CSDL khác
nhau thì độ chênh lệch về thời gian cũng khác nhau. Đối với các CSDL lớn và có nhiều
item thì thời gian thực thi của TSP càng chậm hơn nữa so với các bộ dữ liệu có item ít

hơn. Ví dụ, như hình 3.3 cùng với mẫu k = 50 nhưng TSP có thời gian chạy lâu hơn gấp
3.9 so với TKCS, với k = 400 thì gấp 6.1 lần. Như vậy dựa trên kết quả thực nghiệm
cho ta thấy khi thực thi trên CSDL lớn và có số lượng item nhiều thì thời gian thực thi
của thuật toán TKCS tốt hơn nhiều so với TSP.

27



×