Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
1,25 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM LÊ HỮU NHƠN KHAI THÁC K-MẪU TUẦN TỰ PHỔ BIẾN DỰA TRÊN ROARING BITMAP LUẬN VĂN THẠC SĨ Chuyên ngành: Công Nghệ Thông Tin Mã ngành: 60480201 TP HỒ CHÍ MINH, tháng 04 năm 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM LÊ HỮU NHƠN KHAI THÁC K-MẪU TUẦN TỰ PHỔ BIẾN DỰA TRÊN ROARING BITMAP LUẬN VĂN THẠC SĨ Chuyên ngành: Công Nghệ Thông Tin Mã ngành: 60480201 CÁN BỘ HƯỚNG DẪN KHOA HỌC: PGS TS LÊ HOÀI BẮC TP HỒ CHÍ MINH, tháng 04 năm 2015 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM Cán hướng dẫn khoa học: PGS TS LÊ HOÀI BẮC Luận văn Thạc sĩ bảo vệ Trường Đại học Công nghệ TP HCM (HUTECH) ngày 11 tháng 04 năm 2015 Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm: TT Họ Tên Chức danh Hội đồng PGS TS Lê Trọng Vĩnh Chủ tịch GS TSKH Hoàng Văn Kiếm Phản biện TS Võ Đình Bảy Phản biện PGS TS Đỗ Phúc Ủy viên TS Nguyễn Văn Mùi Ủy viên, Thư ký Xác nhận Chủ tịch Hội đồng đánh giá Luận văn sau Luận văn sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV TRƯỜNG ĐH CÔNG NGHỆ TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM PHÒNG QLKH – ĐTSĐH Độc lập – Tự – Hạnh phúc TP HCM, ngày … tháng… năm 2015 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên : Lê Hữu Nhơn Giới tính : Nam Ngày, tháng, năm sinh : 08 – 08 – 1974 Nơi sinh : Sài Gòn Chuyên ngành : Công Nghệ Thông Tin MSHV : 1341860015 I- Tên đề tài: KHAI THÁC K MẪU TUẦN TỰ PHỔ BIẾN DỰA TRÊN ROARING BITMAP II- Nhiệm vụ nội dung: - Nghiên cứu lĩnh vực khám phá tri thức khai thác mẫu CSDL chuỗi - Nghiên cứu triển khai thuật toán khai thác k mẫu phổ biến TKS - Nghiên cứu triển khai phương pháp nén chuỗi bit Roaring bitmap - Áp dụng Roaring bitmap vào để cải tiến thuật toán TKS III- Ngày giao nhiệm vụ: 18 – 08 – 2014 IV- Ngày hoàn thành nhiệm vụ: 14 – 03 – 2015 V- Cán hướng dẫn: Phó Giáo Sư Tiến Sĩ Lê Hoài Bắc CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) (Họ tên chữ ký) i LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng Các số liệu, kết nêu Luận văn trung thực chưa công bố công trình khác Tôi xin cam đoan giúp đỡ cho việc thực Luận văn trích dẫn hay tài liệu học thuật tham khảo cảm ơn đến tác giả thông tin trích dẫn Luận văn rõ nguồn gốc Học viên thực Luận văn ii LỜI CÁM ƠN Trước hết, cho gửi lời cảm ơn đến hướng dẫn giúp đỡ tận tình PGS.TS Lê Hoài Bắc Xin cảm ơn TS Cao Tùng Anh bạn Trương Quốc Dũng, Châu Nguyễn Nhật Thanh sát cánh cung cấp cho kiến thức quí báu suốt thời gian học tập nghiên cứu thực luận văn Tôi xin gởi lời cảm ơn đến gia đình, bạn bè người thân quan tâm giúp đỡ suốt thời gian học tập nghiên cứu hoàn thành luận văn Luận văn tránh khỏi sai sót, mong nhận ý kiến đóng góp người cho luận văn hoàn thiện Tôi xin chân thành cảm ơn TP Hồ Chí Minh, tháng 04 năm 2015 LÊ HỮU NHƠN iii TÓM TẮT Khai thác mẫu phần quan trọng khai thác liệu với ứng dụng rộng rãi Tuy nhiên, việc tinh chỉnh thông số minsup thuật toán khai thác mẫu để tạo đủ số mẫu mong muốn khó khăn tốn thời gian Để giải vấn đề này, người ta đề xuất xác định lại vấn đề khai thác mẫu khai thác k mẫu phổ biến, với k số mẫu tìm (được trả về) thiết lập người dùng Thuật toán tốt để giả vấn đề TKS (Top-K Sequential pattern mining) [15] Tuy nhiên, thuật toán sử dụng bit vector có kích thước cố định cho item CSDL chuỗi (có chiều dài tổng số itemset CSDL), sử dụng nhiều nhớ để lưu trữ tiêu tốn nhiều thời gian để thực thi phép giao bit vector Để cải tiến thuật toán, luận văn đề xuất sử dụng Roaring bitmap [16] thay cho bit vector có kích thước cố định TKS nhằm mục đích làm giảm nhớ sử dụng giảm thời gian thực thi phép giao bit vector Kết thực nghiệm cho thấy thuật toán cải tiến có chi phí vượt trội thời gian thực thi hiệu sử dụng nhớ so với thuật toán TKS gốc, đặc biệt sở liệu lớn iv ABSTRACT Sequential pattern mining is a important part of data minning with wide applications However, fine-tuning the minsup parameter of sequential pattern mining algorithms to generate enough patterns is difficult and time-consuming To address this problem, it was proposed to redefine the problem of mining sequential patterns as the problem of mining the top-k sequential patterns, where k is the number of sequential patterns to be found and is set by the user The current best algorithm for this problem is TKS (Top-K Sequential pattern mining) [15] However, this algorithm uses a fixed size bit vector for each item in sequence database (its length is equal to total number of itemsets in the database), so it uses much memory to store and spend much time to compute bit vector intersections To improve the performance of the algorithm, this paper proposes to use Roaring bitmap [16] to replace fixed size bit vectors in TKS in order to use less memory and reduce the execution time of bit vector intersections The experimental result show that the improved algorithm outperforms original TKS algorithm by more than an order of magnitude in execution time and memory, especially on large database v MỤC LỤC TÓM TẮT iii ABSTRACT .iv DANH MỤC CÁC TỪ VIẾT TẮT vii DANH MỤC CÁC BẢNG viii DANH MỤC CÁC HÌNH ix CHƯƠNG MỞ ĐẦU .1 1.1 LÝ DO CHỌN ĐỀ TÀI 1.2 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 1.3 MỤC ĐÍCH CỦA ĐỀ TÀI 1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU .3 1.5 PHƯƠNG PHÁP NGHIÊN CỨU CHƯƠNG TỔNG QUAN VỀ KHAI THÁC MẪU TUẦN TỰ .4 2.1 GIỚI THIỆU 2.2 PHÁT BIỂU BÀI TOÁN VÀ KÝ HIỆU .5 2.3 CÁC THUẬT TOÁN KHAI THÁC MẪU TUẦN TỰ 2.3.1 Các thuật toán dựa Apriori 2.3.2 Các kỹ thuật phát triển mẫu 11 2.3.3 Các kỹ thuật loại trừ sớm 20 2.3.4 Các thuật toán lai .25 2.4 CÁC ỨNG DỤNG CỦA KHAI THÁC MẪU TUẦN TỰ 30 CHƯƠNG KHAI THÁC K MẪU TUẦN TỰ PHỔ BIẾN DỰA TRÊN ROARING BITMAP 33 3.1 GIỚI THIỆU .33 vi 3.2 THUẬT TOÁN TKS (Top-K Sequential pattern mining) 34 3.2.1 Cơ sở liệu bitmap dọc (vertical bitmap database) 34 3.2.2 Thủ tục tạo ứng viên SPAM Search 34 3.2.3 Các chiến lược tăng hiệu khai thác liệu 37 3.2.4 Nhận xét 43 3.3 ROARING BITMAP 43 3.3.1 Giới thiệu 43 3.3.2 Mô tả Roaring bitmap 44 3.4 ÁP DỤNG ROARING BITMAP VÀO THUẬT TOÁN TKS 52 CHƯƠNG THỰC NGHIỆM – ĐÁNH GIÁ KẾT QUẢ .55 4.1 BỘ DỮ LIỆU 56 4.2 ĐÁNH GIÁ THỰC NGHIỆM .56 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 5.1 KẾT LUẬN 59 5.2 HƯỚNG PHÁT TRIỂN .60 48 thực thi 1024 phép OR ghi kết vào container bitmap (thuật toán 1) Số phần tử tính toán cách hiệu Java phương thức Long.bitCount input: bitmap A,B lập mục mảng chứa 1024 số nguyên 64 bit output: bitmap C kết phép giao A với B số phần tử c c Lập mục cho C mảng chứa 1024 số nguyên 64 bit for i {1, 2, …, 1024} Ci Ai OR Bi c c + bitCount(Ci) return C c Hình 3.11 Thuật toán - Thủ tục tính phép giao hai container bitmap Việc tính toán phép hội tính số phần tử kết chậm so với việc tính toán phép hội đơn Tuy nhiên, có bốn yếu tố để giảm nhẹ vấn đề tiềm tàng là: Các xử lý thông dụng (Intel, AMD, ARM) có thị để tính toán nhanh số bit từ Chỉ thị popcnt Intel AMD có thông lượng cao phép toán chu kỳ CPU Các Java gần dịch lời gọi tới phương thức Long.bitCount thành thị đếm bit nhanh Các xử lý thông dụng thực thi vài phép toán lúc Vì vậy, nhận thành phần liệu phép giao chúng tính toán lưu vào nhớ Bộ xử lý áp dụng thị popcnt kết cuối tăng biến đếm phần tử phù hợp Đối với phép toán xử lý liệu không tốn kém, xử lý không chạy hết công suất liệu nhớ cache Để tính toán phép giao, tính số phần tử kết quả, sử dụng thị AND 1024 bit Nếu số phần tử lớn 4096, xử lý với phép giao, ghi kết phép toán AND vào container bitmap 49 Ngược lại, tạo container mảng trích vị trí bit từ phép toán AND, sử dụng thuật toán (xem thuật toán 3) input: số nguyên w output: mảng S chứa mục bitCount: trả trọng lượng Hamming số nguyên Đặt S danh sách khởi tạo rỗng while w t w AND w Thêm bitCount(t 1) vào S w w AND (w 1) return S Hình 3.12 Thuật toán - Thuật toán tối ưu để chuyển đổi vị trí bit bitmap thành danh sách số nguyên input:2 bitmap A,B lập mục mảng chứa 1024 số nguyên 64 bit output: bitmap C kết phép giao A với B, số phần tử c c > 4096, ngược lại C mảng số nguyên bitCount: trả trọng lượng Hamming số nguyên c for i {1, 2, …, 1024} c c + bitCount(Ai AND Bi) if c > 4096 then Lập mục cho C mảng chứa 1024 số nguyên 64 bit for i {1, 2, …, 1024} 10 Ci Ai AND Bi 11 return C c 12 else 13 Đặt D mảng số nguyên khởi tạo rỗng 14 15 16 for i {1, 2, …, 1024} Thêm vị trí bit Ai AND Bi vào D sử dụng thuật toán return D Hình 3.13 Thuật toán – Thủ tục tính toán phép giao hai container bitmap Bitmap với Array: Khi hai container bitmap 50 mảng động xếp phép giao tính toán nhanh: lặp qua mảng động xếp kiểm tra tồn số nguyên 16 bit container bitmap Kết ghi vào container mảng Các phép hội hiệu quả: tạo bitmap lặp qua toàn mảng thiết lập bit tương ứng Array với Array: Đối với phép hội, tổng số phần tử mảng không 4096, sử dụng thuật toán hợp hai mảng Ngược lại, thiết lập bit tương ứng hai mảng vào container bitmap Sau đó, tính toán số phần tử sử dụng thị đếm bit nhanh Nếu số phần tử không 4096, chuyển container bitmap thành container mảng (thuật toán 2) Đối với phép giao, sử dụng hợp đơn giản (giống thực merge sort) hai mảng có số phần tử có khác biệt thừa số 64 Ngược lại, sử dụng phép giao galloping Kết luôn ghi vào container mảng Galloping hoàn hảo cho hợp đơn giản mảng r nhỏ nhiều so với mảng f lại bỏ qua nhiều phép so sánh Bắt đầu từ đầu hai mảng, chọn số nguyên có sẵn ri từ mảng r nhỏ tìm số nguyên có độ lớn tối thiểu fj mảng f lớn, tìm kiếm giá trị tiếp theo, sau tìm giá trị xa gấp đôi, tiếp tục Sau đó, sử dụng tìm kiếm nhị phân danh sách thứ hai với giá trị đầu lớn ri Chúng ta thực số phép toán chỗ (in place) chúng nhanh tránh việc cấp phát khởi tạo vùng nhớ Khi tính toán phép hội hai container bitmap, thay đổi hai container bitmap thay tạo container bitmap Với phép giao tương tự, thay đổi hai container bitmap số phần tử kết vượt 4096 Khi tính toán phép hội container mảng container bitmap, ghi kết vào container bitmap cách lặp qua giá trị container mảng thiết lập bit tương ứng container bitmap 51 Chúng ta cập nhật số phần tử lần cách kiểm tra giá trị từ có bị thay đổi hay không Khi kết hợp nhiều bitmap, sử dụng phương pháp tối ưu hóa khác Ví dụ, tính toán phép hội nhiều bitmap (ví dụ, hàng trăm), xác định vị trí tất container có khóa (sử dụng hàng đợi ưu tiên) Nếu container container bitmap, chép container bitmap (nếu cần thiết) tính toán phép hội container với tất container tương ứng chỗ Trong trường hợp này, việc tính toán số phần tử thực lần vào cuối (thuật toán 4) input: tập R Roaring bitmap xem tập container; container có số phần tử khóa 16 bit output: Roaring bitmap T kết phép hội Đặt T Roaring bitmap khởi tạo rỗng Đặt P min-heap container bitmap R, cấu hình để xếp container theo khóa 16 bit chúng while P Đặt x phần tử gốc P Loại bỏ khỏi min-heap P tất phần tử có khóa x, gọi kết Q Sắp xếp Q giảm dần theo số phần tử; Q1 có số phần tử lớn Sao chép Q1 gọi kết A container A container mảng container bitmap 10 11 for i {2, …, |Q|} if A container bitmap then Tính toán chỗ phép hội A với Qi: A A OR Qi Không tính lại số phần tử A: tính toán phép hội bit 12 13 14 else Tính phép hội container mảng A với container mảng Qi: A A OR Qi Nếu A có số phần tử vướt 4096 trở thành container bitmap Nếu A container bitmap, cập nhật A cách tính số phần tử 15 Thêm A vào Roaring bitmap T 16 return T Hình 3.14 Thuật toán – Thuật toán tối ưu để tính toán phép hội nhiều Roaring bitmap 52 3.4 ÁP DỤNG ROARING BITMAP VÀO THUẬT TOÁN TKS Để áp dụng Roaring bitmap vào thuật toán TKS thay cho bit vector tĩnh cần thay đổi cấu trúc liệu để lưu bitmap thay phương thức sử dụng cho bit vector tĩnh phương thức dùng cho Roaring bitmap thủ tục có liên quan thủ tục thiết lập bit cho bitmap, thủ tục tạo bitmap cho bước s-extension i-extension Cấu trúc liệu lưu bitmap: Khai báo cấu trúc liệu để lưu đối tượng bitmap bao gồm: Khai báo bitmap sử dụng Roaring bitmap Để tính độ hỗ trợ hiệu hơn, cần lưu thêm thông tin sau: Khai báo số nguyên lastSID lưu sid chuỗi cuối chứa bit thêm vào bitmap với giá trị khởi đầu -1 Khai báo số nguyên support lưu độ hỗ trợ bitmap với giá trị khởi đầu Chúng ta lưu sid chuỗi cuối chứa bit thêm vào bitmap nhằm giúp tính độ hỗ trợ bitmap, có nhiều bit chuỗi (cùng lastSID) độ hỗ trợ tính Ngoài ra, việc lưu độ hỗ trợ bitmap giúp truy cập nhanh tính toán lúc tạo hay cập nhật bitmap Thủ tục thiết lập bit cho bitmap: Đầu vào: sid, tid tương ứng với bit cần thiết lập danh sách sequenceSize cho biết vị trí bắt đầu chuỗi bitmap Với tid vị trí itemset chứa item tương ứng với bit cần thiết lập chuỗi sid Thủ tục tính toán vị trí bit cần thiết lập bitmap cách lấy giá trị tương ứng với sid sequenceSize cộng với tid gọi phương thức thiết lập bit Roaring bimap vị trí Sau đó, cập nhật hỗ trợ bitmap lưu sid chuỗi cuối chứa bit vừa thêm vào bitmap 53 Thủ tục tạo bitmap cho bước i-extension: Đầu vào: bitmapItem: bitmap item thêm vào mẫu i-extension sequenceSize: danh sách chứa vị trí bắt đầu chuỗi bitmap Đầu ra: newBitmap kết bước i-extension this.bitmap bitmapItem Thủ tục thực vòng lặp qua tất vị trí bit this.bitmap kiểm tra diện bit bitmapItem vị trí Nếu hai có vị trí bit giống newBitmap thiết lập bit vị trí đồng thời cập nhật lại độ hỗ trợ lưu sid chuỗi cuối chứa bit vừa thêm vào bitmap Cách làm có ưu điểm cần vòng lặp, tạo newBitmap với độ hỗ trợ dùng phép toán AND phải duyệt lại newBitmap để tính độ hỗ trợ Thủ tục tạo bitmap cho bước s-extension: Đầu vào: bitmapItem: bitmap item thêm vào mẫu s-extension sequenceSize: danh sách chứa vị trí bắt đầu chuỗi bitmap lastBitIndex: bit cuối bitmap Đầu ra: newBitmap kết bước s-extension this.bitmap bitmapItem Thủ tục thực bước s-extension ngắn gọn mô tả hình 3.3 nhằm tăng tốc độ xử lý thuật toán Cách thực mô tả sau: dùng vòng lặp cho this.bitmap bitmapItem Ở vòng lặp thứ nhất, vị trí 0, ta tìm vị trí x bit this.bitmap lấy vị trí bit cuối chuỗi chứa bit này, giả sử a – Ở vòng lặp thứ 2, ta bắt đầu tìm bit bitmapItem từ vị trí x + đến a – Nếu tìm thấy bit vùng bitmapItem, ta thiết lập bit vị trí tương ứng cho newbitmap Sau đó, cập nhật độ hỗ trợ cho newBitmap lưu sid chuỗi cuối chứa bit vừa 54 thêm vào bitmap Quay vòng lặp thứ nhất, ta bắt đầu lại trình từ vị trí a tiếp tục đến cuối hai bitmap dừng Ưu điểm cách làm biến đổi this.bitmap trước thực phép AND Tuy sử dụng vòng lặp không duyệt hết tất giá trị mà vòng lặp duyệt số đoạn không trùng lắp với vòng lặp Do đó, giảm thời gian xử lý Hình 3.15 Mô tả cách thực bước s-extension ngắn gọn 55 CHƯƠNG THỰC NGHIỆM – ĐÁNH GIÁ KẾT QUẢ Để đo tính hiệu thuật toán TKS TKS cải tiến, thí nghiệm thực liệu chuẩn lấy từ địa http:// http://www.philippe-fournier-viger.com/spmf/index.php?link=datasets.php Máy tính: Dell XPS L321X xử lý Core i5-2467M 1.6 GHz GB nhớ chính, chạy hệ điều hành Windows Ultimate 64 bit, ngôn ngữ lập trình Java Hình 4.1 Giao diện chương trình Choose an algorithm: chọn thuật toán TKS gốc hay thuật toán TKS cải tiến Choose input file: Chọn file CSDL chuyển dạng *.txt Set output file: Chọn file lưu kết thuật toán Choose k: Chọn số mẫu trả kết thuật toán Open output file when the algorithm terminates: Mở file chứa kết thuật toán thực xong Run algorithm: Thi hành thuật toán chọn 56 Khi thực xong, thuật toán hiển thị thông số đo số mẫu tìm được, thời gian tiền xử lý, tổng nhớ sử dụng, tổng thời gian thực hiện,… textbox nút Run algorithm 4.1 BỘ DỮ LIỆU Bảng 4.1 Liệt kê đặc tính liệu thực nghiệm Dataset Sequence count distinct item count avg seq length (items) type of data Leviathan 5834 9025 33.81 book Bible 36369 13905 21.64 book Sign 730 267 51.99 sign language utterances FIFA 20450 2990 34.74 web click stream Kosarak 990002 41270 8.1 web click stream BmsWebView1 59601 497 2.42 web click stream 4.2 ĐÁNH GIÁ THỰC NGHIỆM Các mẫu thực nghiệm lấy cách chạy thuật toán lần ứng với k lấy giá trị trung bình kết Bảng 4.2 Kết qủa thực nghiệm ứng với k = 1000, 2000 3000 Dataset Leviathan Bible Sign FIFA Kosarak BmsWebView1 Algorithm Execution Time (ms) Maximum Memory Usage (MB) k = 1000 k = 2000 k = 3000 k = 1000 k = 2000 k = 3000 TKS 6321.4 13300.4 22364.2 317.69 460.69 570.90 Dynamic TKS 5406.8 9743.6 13547.2 157.04 240.62 344.40 TKS 36435.4 98631.6 173600 1,615.24 1,742.18 1,860.68 Dynamic TKS 18542 37262 58259.8 463.67 612.68 496.13 TKS 1094.8 1722.6 2449.2 46.93 87.52 128.97 Dynamic TKS 1010.8 1582 2046.6 39.33 69.15 72.84 TKS 17999.2 38538.4 71451.2 638.90 1,118.59 1,744.24 Dynamic TKS 15437.6 28364.2 41490 550.53 689.11 821.80 TKS 18046 1,615.56 1,738.98 1,886.22 Dynamic TKS 11016.8 22033.4 33771.2 334.25 382.02 436.18 TKS 3806.4 6651.6 8308.4 157.29 234.13 351.74 Dynamic TKS 2268.2 3712.8 4798.8 76.54 127.95 141.26 41474.12 71292.4 57 (a) (b) Hình 4.2 Biểu đồ so sánh thời gian thực (a) sử dụng nhớ (b) thuật toán sử dụng CSDL BmsWebView1 (a) (b) Hình 4.3 Biểu đồ so sánh thời gian thực (a) sử dụng nhớ (b) thuật toán sử dụng CSDL Levithan (a) (b) Hình 4.4 Biểu đồ so sánh thời gian thực (a) sử dụng nhớ (b) thuật toán sử dụng CSDL Bible 58 (a) (b) Hình 4.5 Biểu đồ so sánh thời gian thực (a) sử dụng nhớ (b) thuật toán sử dụng CSDL FIFA (a) (b) Hình 4.6 Biểu đồ so sánh thời gian thực (a) sử dụng nhớ (b) thuật toán sử dụng CSDL Kosarak Từ bảng kết thực nghiệm biểu đồ cho thấy thuật toán cải tiến TKS có thời gian thực thi nhanh có hiệu sử dụng nhớ tốt hẳn so với thuật toán TKS gốc Đặc biệt k lớn tốc độ xử lý nhanh gấp đôi (hình 4.4 4.6) tổng nhớ sử dụng nhiều lần (hình 4.2, 4.4, 4.5 4.6) Điều thể rõ áp dụng vào khai thác CSDL có kích thước lớn 59 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 KẾT LUẬN Khai thác mẫu phần quan trọng khai thác liệu ứng dụng rộng rãi nhiều lĩnh vực sống Khai thác mẫu tìm tất chuỗi chung xuất nhiều minsup lần chuỗi CSDL, với minsup ngưỡng hỗ trợ tối thiểu người dùng định nghĩa Cho đến nay, nhiều nghiên cứu để thiết kế thuật toán khai thác mẫu thực vấn đề quan trọng làm cách để người sử dụng chọn ngưỡng minsup nhằm tạo số lượng mong muốn mẫu Tùy thuộc vào lựa chọn ngưỡng minsup, thuật toán trở nên chậm tạo số lượng lớn kết kết kết nào, bỏ qua thông tin có giá trị Vấn đề quan trọng thực tế, người sử dụng có nguồn tài nguyên giới hạn (thời gian không gian lưu trữ) để phân tích kết việc tinh chỉnh thông số minsup tốn thời gian Để giải vấn đề vấn đề khai thác mẫu định nghĩa lại thành vấn đề khai thác k mẫu phổ biến, với k số mẫu tìm (được trả về) định nghĩa người sử dụng Thuật toán tốt để giải vấn đề TKS Thuật toán khám phá k mẫu phổ biến có độ hỗ trợ cao Để tạo mẫu, TKS sử dụng CSDL bitmap dọc để trình bày liệu thủ tục tạo ứng viên SPAM Search để dò tìm mở rộng mẫu theo s-extension i-extension Đồng thời, áp dụng vài chiến lược hiệu tối ưu hóa để nâng cao hiệu khai thác liệu Tuy nhiên, thuật toán sử dụng bit vector có kích thước cố định (có chiều dài tổng số itemset CSDL) nên phải tốn nhiều nhớ đễ lưu trữ nhiều thời gian để thực phép giao bit vector Luận văn trình bày phương pháp nén chuỗi bit gọi Roaring bitmap Roaring bitmap phân chia khoảng [0, n] mục 32 bit bitmap thành 60 đoạn số nguyên có độ lớn tối đa 216 lưu trữ đoạn có mật độ bit dày thưa khác Các số nguyên 32 bit lưu trữ cấu trúc liệu mục cấp hiệu nhỏ gọn Các đoạn có mật độ dày lưu bitmap, đoạn có mật độ thưa sử dụng mảng đóng gói chứa số nguyên 16 bit Roaring bitmap sử dụng 16 bit cho số nguyên có khả truy cập nhanh phần tử vị trí thực nhanh phép toán logic AND, OR Trong thực nghiệm liệu thực tế, Roaring bitmap thực thi nhanh nén tốt loại bitmap nén khác nhiều lần Do đó, luận văn đề xuất giải pháp sử dụng Roaring bitmap thay cho bit vector có kích thước cố định thuật toán TKS nhằm nâng cao hiệu thuật toán Kết thưc nghiệm cho thấy thuật toán cải tiến có thời gian thực thi nhanh có hiệu sử dụng nhớ tốt hẳn so với thuật toán TKS gốc, đặc biệt CSDL lớn 5.2 HƯỚNG PHÁT TRIỂN Trong năm gần đây, bùng nổ thông tin hình thành nên tập liệu khổng lồ tập ngày phình to ra, có khả vượt khả xử lý phần cứng tương lai không xa Mặt khác, nhược điểm thuật toán TKS phải đọc toàn CSDL vào nhớ nên khai thác CSDL lớn đòi hỏi phần cứng cao Trong bối cảnh vậy, đề xuất hướng nghiên cứu giải thuật xử lý song song, tức chia nhỏ CSDL để xử lý song song nhiều máy tính lúc Ưu điểm hướng nghiên cứu tận dụng máy tính có sẵn, giảm chi phí phần cứng tận dụng khả xử lý song song tốt GPU xuất hiên năm gần 61 TÀI LIỆU THAM KHẢO: [1] Lê Hoài Bắc (2013), Bài giảng môn Data Mining, Đại học KHTN (Đại học Quốc gia Tp.HCM) [2] Agrawal, R and Srikant, R (1995), Mining Sequential Patterns, In Proceedings of the 11th Conference on Data Engineering (ICDE’95), 3–14 [3] Srikant, R., Agrawal, R (1996), Mining Sequential Patterns: Generalizations and Performance Improvements, in: Proc 5th Int’l Conf Extending Database Technology, pp.3–17 [4] Ayres, J., Flannick, J., Gehrke, J., and Yiu, T (2002), Sequential pattern mining using a bitmap representation, In Proceedings of the 8th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining 429–435 [5] Zaki, M J (2001), SPADE: An efficient algorithm for mining frequent sequences, Mach Learn 42, 31–60 [6] Han, J., Pei, J., Mortazavi-Asl, B., Chen, Q., Dayal, U., and Hsu, M.C., (2000), Freespan: Frequent pattern-projected sequential pattern mining, in Proc 2000 Int Conf Knowledge Discovery and Data Mining (KDD’00), pp 355-359 [7] Pei, J., Han, J., Mortazavi-Asl, B., and Pinto, H (2001), PrefixSpan: Mining sequential patterns efficiently by prefix-projected pattern growth, In Proceedings of the International Conference on Data Engineering 215–224 [8] Mabroukeh, N R and Ezeife, C I (2010), A taxonomy of sequential pattern mining algorithms, ACM Computing Surveys, vol 43, no 1, pp 1-41 [9] Pei, J., Han, J., Mortazavi-Asl, B., and Zhu, H (2000), Mining access patterns efficiently from web logs, In Knowledge Discovery and Data Mining Current Issues and New Applications Lecture Notes Computer Science, vol 1805, Springer, Berlin, 396–407 62 [10] El-Sayed, M., Riuz, C., and Rundensteiner, E A (2004), FS-Miner: Efficient and incremental mining of frequent sequence patterns in web logs, In Proceedings of the 6th Annual ACM International Workshop on Web Information and Data Management ACM, New York, 128–135 [11] Carl H Mooney, and John F Roddick (2013), Sequential pattern mining – Approaches and algorithms, Journal ACM Computing Surveys, Volume 45 Issue 2, Article No 19 [12] Song, S., Hu, H., and Jin, S (2005), HVSM: A new sequential pattern mining algorithm using bitmap representation In Advanced Data Mining and Applications, Lecture Notes in Computer Science, vol 3584, Springer, Berlin, 455–463 [13] Chiu, D.-Y., Wu, Y.-H., and Chen, A L P (2004), An efficient algorithm for mining frequent sequences by a new strategy without support counting, In Proceedings of the 20th International Conference on Data Engineering 375–386 [14] Ezeife, C I and Lu, Y (2005), Mining web log sequential patterns with position coded pre-order linked WAP-tree, Int J Data Mining Knowl Discovery 10, 5–38 [15] Fournier-Viger, P., Gomariz, A., Gueniche, T., Mwamikazi, E., Thomas, R (2013), Efficient Mining of Top-K Sequential Patterns, Proc 9th International Conference on Advanced Data Mining and Applications (ADMA 2013) Part I, Springer LNAI 8346, pp 109-120 [16] Samy Chambi, Daniel Lemire, Owen Kaser, Robert Godin (2014), Better bitmap performance with Roaring bitmaps, arXiv:1402.6407 [...]... các khái niệm có liên quan - Nghiên cứu thuật toán khai thác k mẫu tuần tự phổ biến TKS - Nghiên cứu phương pháp nén chuỗi bit Roaring bitmap - Nghiên cứu áp dụng phương pháp tiếp cận dựa trên Roaring bitmap vào thuật toán TKS - Xây dựng chương trình demo và đánh giá k t quả đạt được 4 CHƯƠNG 2 TỔNG QUAN VỀ KHAI THÁC MẪU TUẦN TỰ 2.1 GIỚI THIỆU Trong cuộc sống của chúng ta, dữ liệu chuỗi rất phổ biến. .. này, và MsuppClink là độ hỗ trợ nhỏ nhất của liên k t phổ biến (chuỗi phổ biến 2-sequences) Một liên k t h với độ hỗ trợ 19 Suplink(h) được coi là phổ biến nếu Supplink(h) MsuppCseq và được coi là liên k t phổ biến tiềm năng nếu MSuppClink Supplink(h) < MsuppCseq Nếu Supplink(h) không thỏa cả MsuppClink và MsuppCseq thì nó là một liên k t không phổ biến Các liên k t có tiềm năng phổ biến được duy... thứ tự) có thể mang lại nhiều tri thức có ích Từ đó, khai thác mẫu tuần tự đã được phát sinh như là một k thuật khám phá các chuỗi con phổ biến Vấn đề khai thác mẫu tuần tự được giới thiệu lần đầu tiên bởi Agrawal và Srikant năm 1995 [2] và sau đó đã thu hút nhiều nghiên cứu khác như [4], [5], [6], [7], [9], [12]…Trong đó, mẫu tuần tự (sequential pattern) là một chuỗi các itemset xuất hiện phổ biến. .. đầu tiên được 8 thiết k để giải quyết bài toán khai thác mẫu tuần tự trên CSDL chuỗi giao dịch AprioriAll dựa trên thuật toán khai thác mẫu phổ biến Apriori [1] và trở thành thuật toán nền tảng làm cơ sở cho các thuật toán về sau AprioriAll duyệt CSDL một số lần để tìm các itemset phổ biến k ch thước k tại lần lặp thứ k (bắt đầu từ k= 2) Nó cũng có đặc trưng phát sinh và kiểm tra mẫu bằng cách thực hiện... nâng cao hiệu quả khai thác các mẫu tuần tự, luận văn này đề xuất một phương pháp tiếp cận khác là phương pháp tiếp cận dựa trên Roaring bitmap [16] Phương pháp này đặc biệt hiệu quả khi áp dụng trên các CSDL chuỗi lớn với chi phí vượt trội về thời gian thực thi và sử dụng bộ nhớ so với thuật toán TKS 1.2 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN Khai thác mẫu tuần tự là một phần quan trọng của khai thác dữ liệu với... (ab)(ab)(ab)(a)(bc)〉 Khai thác mẫu tuần tự: là tìm một tập đầy đủ các chuỗi con phổ biến (mẫu tuần tự) trong CSDL chuỗi có độ hỗ trợ lớn hơn hoặc bằng ngưỡng minSup được xác định bởi người dùng 2.3 CÁC THUẬT TOÁN KHAI THÁC MẪU TUẦN TỰ Phần này trình bày tổng quan về các thuật toán cùng với ví dụ minh họa cho từng thuật toán Phần 2.3.1 trình bày các thuật toán dựa trên Apriori, phần 2.3.2 trình bày các thuật toán dựa trên. .. để hỗ trợ và k ch hoạt khả năng khai thác tương tác và tăng cường của thuật toán FS-Miner Các liên k t phổ biến và liên k t có tiềm năng phổ biến được đánh dấu ở bảng liên k t đầu như trong hình 2.3 Chỉ sử dụng những liên k t phổ biến để khai thác Giả sử xét ví dụ với MsuppClink=2 và MsuppCseq=3 Trước hết, duyệt CSDL ở bảng 2.2 một lần để đếm cho các liên k t và chèn chúng vào bảng liên k t đầu Ở lần... của HVSM không vượt qua được SPAM Mặt khác, với thuật toán DISC-all [13], bên cạnh thứ tự từ điển thông thường trên các item, thuật toán còn sử dụng thứ tự thời gian và dạng biến đổi của CSDL chiếu để chia nhỏ không gian tìm kiếm, phụ thuộc vào thứ tự của các chuỗi phổ biến 1-sequences Thuật toán DICS-all Các thuật toán dựa trên Apriori loại trừ các chuỗi không phổ biến dựa trên thuộc tính không đơn... để lấy chuỗi phổ biến Cuối cùng, quá trình khai thác sẽ k t thúc với danh sách các chuỗi phổ biến k nhau (bao gồm các liên k t phổ biến và các chuỗi phổ biến 1-sequences) Trong bài báo, El-Sayed và đồng sự 2004 [10] không thực hiện so sánh FS-Miner với WAP-mine hay so sánh với thuật toán chiếu cây tương tự nào, mà so sánh FS-Miner với một dạng biến đổi của Apriori FS-Miner cũng cho k t quả thực... liệu chuỗi là có tính thứ tự và mô hình dữ liệu chuỗi thể hiện rõ rệt mối quan hệ xuyên thời gian của dữ liệu nên việc áp dụng khai thác mẫu tuần tự trên mô hình dữ liệu này sẽ mang lại nhiều tri thức tiềm ẩn quí giá có ý nghĩa thiết thực và có tính dự báo, dự đoán rất cao Khai thác mẫu tuần tự (sequential pattern mining) trên mô hình dữ liệu chuỗi là một phần quan trọng của khai thác dữ liệu và được ứng ... ti: KHAI THC K MU TUN T PH BIN DA TRấN ROARING BITMAP II- Nhim v v ni dung: - Nghiờn cu lnh vc khỏm phỏ tri thc v khai thỏc mu tun t trờn CSDL chui - Nghiờn cu v trin khai thut toỏn khai thỏc k. .. MSuppClink Supplink(h) < MsuppCseq Nu Supplink(h) khụng tha c MsuppClink v MsuppCseq thỡ nú l mt liờn kt khụng ph bin Cỏc liờn kt cú tim nng ph bin c trỡ h tr v k ch hot kh nng khai thỏc tng tỏc... to thnh ging Lk dựng phỏt sinh cỏc chui ng viờn mc k (k+ 1) k tip Tp chui ng viờn Ck+1 mc kt tip c to bng cỏch thc hin phộp kt GSP Lk vi chớnh nú Phộp kt GSP cng ging nh phộp kt phỏt sinh Apriori