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 ứ
Trang 1LÊ 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
Trang 2LÊ HỮU NHƠN
KHAI THÁC K-MẪU TUẦN TỰ PHỔ BIẾN
DỰA TRÊN ROARING BITMAP
Trang 3Cán bộ hướng dẫn khoa học:
PGS TS LÊ HOÀI BẮC
Luận văn Thạc sĩ được bảo vệ tại 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:
Xác nhận của Chủ tịch Hội đồng đánh giá Luận văn sau khi Luận văn đã sửachữa (nếu có)
Chủ tịch Hội đồng đánh giá LV
Trang 4TP 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ụ và nội dung:
- Nghiên cứu lĩnh vực khám phá tri thức và khai thác mẫu tuần tự trên CSDLchuỗi
- Nghiên cứu và triển khai thuật toán khai thác k mẫu tuần tự phổ biến TKS.
- Nghiên cứu và 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 bộ hướng dẫn: Phó Giáo Sư Tiến Sĩ Lê Hoài Bắc
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
KHOA QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kếtquả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳcông trình nào khác
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn nàycũng như các trích dẫn hay tài liệu học thuật tham khảo đã được cảm ơn đến tác giả
và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc
Học viên thực hiện Luận văn
Trang 6LỜI CÁM ƠN
Trước hết, cho tôi được gửi lời cảm ơn đến sự hướng dẫn và giúp đỡ
tận tình của PGS.TS Lê Hoài Bắc.
Xin cảm ơn TS Cao Tùng Anh cùng các bạn Trương Quốc Dũng, Châu Nguyễn Nhật Thanh đã sát cánh và cung cấp cho tôi những kiến thức quí báu trong suốt thời gian học tập và nghiên cứu thực hiện luận văn.
Tôi cũng xin gởi lời cảm ơn đến gia đình, bạn bè và những người thân
đã luôn quan tâm và giúp đỡ tôi trong suốt thời gian học tập và nghiên cứu
hoàn thành luận văn này.
Luận văn không thể tránh khỏi những sai sót, rất mong nhận được ý kiến đóng góp của mọi người cho luận văn được hoàn thiện hơ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
Trang 7TÓM TẮT
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 các ứng
dụng rộng rãi Tuy nhiên, việc tinh chỉnh thông số minsup trong các thuật toán khai
thác mẫu tuần tự để tạo ra đủ số mẫu mong muốn là rất khó khăn và tốn thời gian
Để giải quyết vấn đề này, người ta đã đề xuất xác định lại vấn đề khai thác mẫu tuần
tự như là khai thác k mẫu tuần tự phổ biến, với k là số mẫu tuần tự được tìm ra
(được trả về) và được thiết lập bởi người dùng Thuật toán tốt nhất hiện nay để giả
quyết vấn đề này là TKS (Top-K Sequential pattern mining) [15].
Tuy nhiên, thuật toán này sử dụng bit vector có kích thước cố định cho mỗiitem trong CSDL chuỗi (có chiều dài bằng tổng số itemset trong CSDL), do đó nó
sử dụng nhiều bộ nhớ để lưu trữ và tiêu tốn nhiều thời gian để thực thi các phépgiao bit vector Để cải tiến thuật toán, luận văn này đề xuất sử dụng Roaring bitmap[16] thay thế cho bit vector có kích thước cố định trong TKS nhằm mục đích làmgiảm bộ nhớ được sử dụng và giảm thời gian thực thi các phép giao bit vector.Kết quả thực nghiệm cho thấy thuật toán cải tiến có chi phí vượt trội về thờigian thực thi và hiệu quả sử dụng bộ nhớ so với thuật toán TKS gốc, đặc biệt là trêncác cơ sở dữ liệu lớn
Trang 8Sequential pattern mining is a important part of data minning with wideapplications However, fine-tuning the minsup parameter of sequential patternmining algorithms to generate enough patterns is difficult and time-consuming Toaddress this problem, it was proposed to redefine the problem of mining sequentialpatterns as the problem of mining the top-k sequential patterns, where k is thenumber 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 sequencedatabase (its length is equal to total number of itemsets in the database), so it usesmuch memory to store and spend much time to compute bit vector intersections Toimprove the performance of the algorithm, this paper proposes to use Roaringbitmap [16] to replace fixed size bit vectors in TKS in order to use less memory andreduce the execution time of bit vector intersections
The experimental result show that the improved algorithm outperforms originalTKS algorithm by more than an order of magnitude in execution time and memory,especially on large database
Trang 9MỤ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 1 MỞ ĐẦU 1
1.1 LÝ DO CHỌN ĐỀ TÀI 1
1.2 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2
1.3 MỤC ĐÍCH CỦA ĐỀ TÀI 3
1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3
1.5 PHƯƠNG PHÁP NGHIÊN CỨU 3
CHƯƠNG 2 TỔNG QUAN VỀ KHAI THÁC MẪU TUẦN TỰ 4
2.1 GIỚI THIỆU 4
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Ự 6
2.3.1 Các thuật toán dựa trên Apriori 7
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 3 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
Trang 103.2 THUẬT TOÁN TKS (Top-K Sequential pattern mining) 34
3.2.1 Cơ sở dữ 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 quả khai thác dữ 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 4 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 5 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
Trang 11DANH MỤC CÁC TỪ VIẾT TẮT
Ký hiệu, viết tắt Ý nghĩa tiếng Việt Ý nghĩa tiếng anh
PMAP Bản đồ thứ tự ưu tiên Precedence Map
Trang 12DANH MỤC CÁC BẢNG
Bảng 2.1 Cơ sở dữ liệu chuỗi D1 6
Bảng 2.2 Cơ sở dữ liệu chuỗi D2 7
Bảng 2.3 Cơ sở dữ liệu chuỗi D3 7
Bảng 2.4 S-Matrix để xây dựng chuỗi 2-sequences từ CSDL ở bảng 2.3 13
Bảng 2.5 Phát sinh mẫu từ S-Matrix 13
Bảng 2.6 Chạy PrefixSpan trên CSDL ở bảng 2.3 15
Bảng 2.7 Các mẫu phổ biến của CSDL truy cập web từ bảng 2.2 16
Bảng 2.8 CSDL và phần ở mức thứ nhất của bảng 2.3 22
Bảng 2.9 CSDL chuỗi ví dụ cho SPADE, biến đổi từ CSDL chuỗi ở bảng 2.2 26
Bảng 3.1 CSDL chuỗi D4 33
Bảng 3.2 CSDL bitmap dọc được xây dựng từ CSDL chuỗi D4 34
Bảng 3.3 Cấu trúc dữ liệu PMAP được xây dựng từ CSDL chuỗi D4 42
Bảng 4.1 Liệt kê đặc tính của các bộ dữ liệu thực nghiệm 56
Bảng 4.2 Kết qủa thực nghiệm ứng với k = 1000, 2000 và 3000 56
Trang 13DANH MỤC CÁC HÌNH
Hình 2.1 Cây từ điển biểu diễn các chuỗi, với đường nét nhạt là mở rộng theo
chuỗi và nét đậm là mở rộng theo itemset 10
Hình 2.2 Khai thác cây WAP sử dụng thuật toán WAP-mine 17
Hình 2.3 Cây FS và bảng đầu liên kết cho các web log của bảng 2.2 18
Hình 2.4 Chuỗi ứng viên với itemset có kích thước 1 và itemset có kích thước 2 24
Hình 2.5 Dàn được tạo ra bởi các chuỗi phổ biến cực đại 26
Hình 2.6 Các lớp tương đương {[a]θ1, [b]θ1, [e]θ1} sinh bởi quan hệ θk trên S 27
Hình 2.7 Khai thác cây trong thuật toán PLWAP 29
Hình 3.1 Thuật toán SPAM 35
Hình 3.2 Thủ tục tạo ứng viên 35
Hình 3.3 Mở rộng s-extension 36
Hình 3.4 Mở rộng i-extension 36
Hình 3.5 Thuật toán TKS 38
Hình 3.6 Thủ tục tạo ứng viên đã được sửa đổi 39
Hình 3.7 Thủ tục SAVE 39
Hình 3.8 Cấu trúc của Roaring bitmap 44
Hình 3.9 So sánh bộ nhớ được sử dụng cho mảng và bitmap (nguồn http://www.elasticsearch.org/blog/frame-of-reference-and-roaring-bitmaps/) 45
Hình 3.10 Minh họa phép OR giữa hai Roaring bitmap khi chỉ mục cấp 1 không bằng nhau 47
Hình 3.11 Thuật toán 1 - Thủ tục tính phép giao giữa hai container bitmap 48
Hình 3.12 Thuật toán 2 - Thuật toán được tối ưu để chuyển đổi vị trí các bit 1 trong một bitmap thành một danh sách các số nguyên 49
Hình 3.13 Thuật toán 3 – Thủ tục tính toán phép giao của hai container bitmap 49
Trang 14Hình 3.14 Thuật toán 4 – Thuật toán được tối ưu để tính toán phép hội củanhiều Roaring bitmap 51Hình 3.15 Mô tả cách thực hiện bước s-extension ngắn gọn 54Hình 4.1 Giao diện chương trình 55Hình 4.2 Biểu đồ so sánh thời gian thực hiện (a) và sử dụng bộ nhớ (b) của 2thuật toán sử dụng CSDL BmsWebView1 57Hình 4.3 Biểu đồ so sánh thời gian thực hiện (a) và sử dụng bộ nhớ (b) của 2thuật toán sử dụng CSDL Levithan 57Hình 4.4 Biểu đồ so sánh thời gian thực hiện (a) và sử dụng bộ nhớ (b) của 2thuật toán sử dụng CSDL Bible 57Hình 4.5 Biểu đồ so sánh thời gian thực hiện (a) và sử dụng bộ nhớ (b) của 2thuật toán sử dụng CSDL FIFA 58Hình 4.6 Biểu đồ so sánh thời gian thực hiện (a) và sử dụng bộ nhớ (b) của 2thuật toán sử dụng CSDL Kosarak 58
Trang 15có ý 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 dụng rộng rãi trong nhiềulĩnh vực như y khoa, giáo dục đào tạo, kinh tế, khoa học, xã hội…Chính vì vậy,nhiều nghiên cứu đã được thực hiện và nhiều thuật toán đã được đề xuất trong lĩnhvực này Trong đó, thuật toán TKS (Top-K Sequential pattern mining) được đánhgiá cao bởi vì chi phí thực hiện thấp hơn nhiều lần so với các thuật toán khác trongviệc khai thác k mẫu tuần tự phổ biến [15] Tuy nhiên, thuật toán này sử dụngCSDL bitmap dọc (vertical bitmap database) [4] để trình bày dữ liệu, với mỗi item
là một bit vector có kích thước cố định (có chiều dài bằng tổng số các itemsets trongCSDL chuỗi) làm dư thừa các bit 0 không cần thiết nên khi áp dụng trên các CSDL
Trang 16chuỗi có số lượng itemsets lớn thì tốc độ sẽ rất chậm do phải tiêu tốn rất nhiều thờigian để thực hiện các phép giao trên các bit vector này và tốn rất nhiều bộ nhớ đểlưu trữ chúng Để 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 Roaringbitmap [16] Phương pháp này đặc biệt hiệu quả khi áp dụng trên các CSDL chuỗilớ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ánTKS.
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 các ứngdụng rộng rãi như phân tích dữ liệu sinh học, dữ liệu y tế, dữ liệu e-learning, phântích truy cập web theo thứ tự thời gian, phân tích sự thực thi của chương trình, phântích thói quen mua sắm của khách hàng, phân tích các thí nghiệm khoa học Từ đó
dự đoán được hành vi của các đối tượng nghiên cứu Ví dụ như trong lĩnh vực ykhoa, dựa trên một chuỗi các triệu chứng bệnh mà chúng ta có thể chẩn đoán đượcbệnh cho bệnh nhân đó; Trong lĩnh vực kinh tế, dựa trên một chuỗi các biến độngcủa thị trường mà chúng ta có thể dự đoán được xu thế sắp tới của nền kinh tế để có
kế hoạch kinh doanh phù hợp; Trong lĩnh vực khoa học, dựa trên một chuỗi cáchiện tượng tự nhiên mà chúng ta có thể dự đoán được các thảm họa thiên nhiên sắpxảy ra, từ đó có các biện pháp ứng phó thích hợp và kịp thời… Do đó, nghiên cứu
về khai thác mẫu tuần tự có ý nghĩa rất quan trọng
Bên cạnh đó, sự bùng nổ về thông tin đã tạo ra các tập dữ liệu khổng lồ và cáctập dữ liệu này ngày càng phình to ra Việc áp dụng các thuật toán khai thác mẫutuần tự hiện nay vào khai thác các tập dữ liệu này sẽ cho ra kết quả rất chậm, thậmchí là không thể cho ra kết quả do hạn chế về tài nguyên phần cứng (chẳng hạn như
“out of memory”) Vì vậy, việc nghiên cứu để cho ra thuật toán trong luận văn nàynhằm nâng cao hiệu quả khai thác dữ liệu, giảm thời gian thực thi và giảm chi phíphần cứng (bằng cách sử dụng tối ưu tài nguyên phần cứng) là rất cấp thiết
Trong thời buổi kinh tế thị trường hiện nay, việc tổng hợp ra được những thôngtin hữu ích và tri thức từ các tập dữ liệu khổng lồ này càng có ý nghĩa hơn bao giờ
Trang 17hết, nó đóng vai trò chìa khóa thành công cho sự phát triển của các tổ chức và cánhân Các thông tin tìm được có thể được vận dụng để cải thiện hiệu quả hoạt độngcủa hệ thống thông tin ban đầu, cắt giảm chi phí, tăng thời gian phát triển và tối ưuhóa sản phẩm, đồng thời hỗ trợ con người đưa ra những quyết định đúng và hợp lýhơn Việc nghiên cứu và ứng dụng thuật toán trong luận văn này giúp chúng ta cóđược những thông tin hữu ích một cách nhanh chóng và kịp thời Điều này tạo nên
ưu thế rất lớn trong việc phát triển và cạnh tranh
1.3 MỤC ĐÍCH CỦA ĐỀ TÀI
Thay thế bit vector có kích thước cố định được sử dụng trong thuật toán TKSbằng Roaring bitmap nhằm làm giảm dung lượng bộ nhớ được sử dụng để lưu trữcác bit vector này và giảm thời gian thực thi phép giao giữa chúng Từ đó, có thể cảithiện được đáng kể hiệu suất của thuật toán về thời gian thi hành và hiệu quả sửdụng bộ nhớ, đặc biệt là trên các CSDL chuỗi lớn
1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu là CSDL chuỗi và bit vector (chuỗi bit hay còn gọi là
bitmap – bitset) nhưng phạm vi nghiên cứu tập trung vào thuật toán khai thác k mẫu
tuần tự phổ biên TKS và phương pháp nén chuỗi bit Roaring bitmap
1.5 PHƯƠNG PHÁP NGHIÊN CỨU
- Tiến hành thu thập và đọc các tài liệu có liên quan đến đề tài
- Nghiên cứu tổng quan về cơ sở dữ liệu chuỗi và 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ậttoán TKS
- Xây dựng chương trình demo và đánh giá kết quả đạt được
Trang 18CHƯƠ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 và tồn tại ở khắp mọinơi Chẳng hạn như chuỗi mua sắm của khách hàng, dữ liệu điều trị y tế, dữ liệuliên quan tới các thảm họa tự nhiên, dữ liệu về thị trường và chứng khoán, các mẫugọi điện thoại, chuỗi truy cập web, chuỗi DNA, chuỗi thực thi của chươngtrình…Trong các chuỗi này, có thể có sự tồn tại của các chuỗi có ý nghĩa và việcphát hiện các chuỗi con phổ biến (toàn bộ hoặc một phần các chuỗi con được sắpxếp 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 itemsetxuất hiện phổ biến có trình tự, tất cả các item trong cùng một itemset được giả sử làchúng có cùng tại thời điểm giao dịch hoặc chúng có trong cùng một khoảng thờigian giao dịch Thông thường tất cả các giao dịch của một khách hàng được gắn kếtvới nhau theo trình tự thời gian và được xem là một chuỗi Khai thác mẫu tuần tự làkhám phá các chuỗi con phổ biến (được gọi là mẫu) trong một CSDL chuỗi MộtCSDL chuỗi lưu trữ một hoặc nhiều bản ghi và tất cả các bản ghi này là nhữngchuỗi các sự kiện có thứ tự, có thể gắn với một khái niệm thời gian cụ thể hoặckhông (ví dụ như chuỗi truy cập web và chuỗi DNA) Mỗi bản ghi trong CSDLchuỗi có thể có độ dài khác nhau và mỗi sự kiện (itemset) trong một chuỗi có thể cómột hay nhiều item (ví dụ các chuỗi gen có độ dài tối thiểu là vài trăm nhưng độ dàitối đa lên đến hàng trăm nghìn)
Khai thác mẫu tuần tự là bài toán quan trọng được ứng dụng rộng rãi, bao gồm:phân tích thói quen mua sắm của khách hàng, mẫu truy cập web, các thí nghiệmkhoa học, các thảm họa thiên nhiên, các kết cấu của protein, chẩn đoán bệnh…
Trang 19Thuật toán khai thác mẫu tuần tự trên CSDL chuỗi là đi tìm những mẫu xuấthiện lặp lại (được gọi là chuỗi phổ biến) để tìm kiếm mối liên quan giữa các itemkhác nhau, hoặc giữa các sự kiện tiềm ẩn trong dữ liệu phục vụ cho các mục đíchnhư các chiến dịch tiếp thị, tái tổ chức kinh doanh, dự báo và lập kế hoạch…
2.2 PHÁT BIỂU BÀI TOÁN VÀ KÝ HIỆU
Cho I = {i 1 , i 2 ,…,i m } là một tập gồm m phần tử (được gọi là item) Một itemset
là tập khác rỗng và không có thứ tự của các item itemset i ký hiệu là (i 1 , i 2 , …, i k ) với mỗi i jlà một item Không mất tính tổng quát, giả sử các item trong itemset đượcsắp theo thứ tự tăng dần
Một chuỗi (sequence) là một danh sách có thứ tự những itemset Chuỗi s được
ký hiệu là s 1 , s 2 ,…, s n hoặc s 1→s2→…→sn với mỗi s i là một itemset, n là số
lượng các itemset Kích thước của chuỗi bằng số lượng itemset có trong chuỗi
Chiều dài của chuỗi là tổng số item có trong chuỗi, ký hiệu là l =∑ Chuỗi có
chiều dài k còn được gọi là k-sequence Ví dụ s = (b)(ac) là một 3-sequence có kích thước n=2.
Chuỗi β = b 1 , b 2 , …, b m được gọi là chuỗi con của chuỗi α = a 1 , a 2 ,…, a n hay
α là chuỗi cha của β, ký hiệu β ⊆ α, nếu tồn tại những số nguyên 1≤ j 1 < j 2 < … < j n
≤ m sao cho b 1 ⊆ a j1 , b 2 ⊆ a j2 ,…, b m ⊆ a jm Ví dụ chuỗi (b)(ac) là chuỗi con của
(ab)(e)(acd) vì b ⊆ ab, ac ⊆ acd và thứ tự của các itemset vẫn được bảo tồn Tuy
nhiên, chuỗi(ab)(e) không phải là chuỗi con của chuỗi (abe) và ngược lại.
Cơ sở dữ liệu chuỗi: Cơ sở dữ liệu chuỗi là một tập hợp các bộ dữ liệu có dạng
(sid, s), trong đó sid là định danh của chuỗi và s là chuỗi các itemset.
Mẫu: Mẫu là một chuỗi con của một chuỗi dữ liệu Mỗi itemset trong một mẫu
còn được gọi là một thành phần (element)
Độ hỗ trợ (support): Cho CSDL chuỗi D, mỗi chuỗi có một chỉ số định danh
duy nhất Độ hỗ trợ tuyệt đối của một mẫu tuần tự f là tổng số chuỗi trong D có chứa f, ký hiệu sup D (f) = |{S i ∈ D| f ⊆ S i }| Độ hỗ trợ tương đối của f là tỉ lệ phần
Trang 20trăm các chuỗi trong D chứa f Ở đây, mức hỗ trợ tuyệt đối hoặc tương đối sẽ được
sử dụng chuyển đổi qua lại, kí hiệu là sup(f).
Mẫu tuần tự: Cho trước ngưỡng hỗ trợ tối thiểu minSup xác định bởi người
dùng Một mẫu f được coi là phổ biến nếu độ hỗ trợ của nó lớn hơn hoặc bằng minSup: sup(f) ≥ minSup, khi đó f được gọi là mẫu tuần tự.
Ví dụ: Cho CSDL chuỗi D 1 như bảng 2.1 có tập các item phân biệt là {a, b, c}
và minSup là 2 Xét chuỗi s 1=(ab)(b)(b)(ab)(b)(ac), chuỗi s 1 có 6 itemset là: (ab), (b), (b), (ab), (b), (ac) và có 9 item Vậy s 1 có kích thước là 6 và có độ dài là 9.Trong chuỗi s1 , item a xuất hiện ba lần nhưng độ hỗ trợ của item a chỉ được tính là
1 đối với chuỗi s 1 đó Chuỗi p = (ab)(c) là một chuỗi con của chuỗi s 1, vì vậy
chuỗi con p còn được gọi là mẫu Trong D 1 , chỉ có chuỗi s 1 , s 2 và s 5 có chứa mẫu p, vậy độ hỗ trợ của mẫu p là 3 Vì sup(p) > minSup nên p là một mẫu tuần tự.
Bảng 2.1 Cơ sở dữ liệu chuỗi D 1
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 chotừ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.2trình bày các thuật toán dựa trên phát triển mẫu, phần 2.3.3 trình bày các thuật toándựa trên kỹ thuật loại trừ sớm và phần 2.3.4 bàn về các thuật toán lai ghép nhiều kỹthuật Các thuật toán khai thác chuỗi mà mỗi itemset là một item được thảo luậntheo CSDL của bài toán 1 (bảng 2.2), còn những thuật toán khai thác chuỗi mà có
Trang 21mỗi itemset gồm nhiều item được thảo luận theo CSDL của bài toán 2 (bảng 2.3).
Bài toán 1: Giả sử D 2 (minh họa ở bảng 2.2) là một CSDL chuỗi truy cập webđược rút trích từ một số web log và được sắp xếp theo định danh của người dùng
(User IDs) và các giao dịch tương ứng (TIDs), với mỗi giao dịch t ilà một chuỗi các
trang mà người dùng đã xem, và kí hiệu C 1 ={a, b, c, d, e} là tập các chuỗi ứng viên
độ dài 1, cho trước ngưỡng minSup=60%, công việc cần làm là tìm tập L gồm tất cả
các chuỗi phổ biến (còn gọi là mẫu tuần tự phổ biến)
Bảng 2.2 Cơ sở dữ liệu chuỗi D 2
UserID TID Chu ỗi truy cập
ngưỡng minSup=25%.
Bảng 2.3 Cơ sở dữ liệu chuỗi D 3
ID chu ỗi cho mỗi khách hàng Chu ỗi dữ liệu
2.3.1 Các thuật toán dựa trên Apriori
Thu ật toán AprioriAll
Vào năm 1995, Agrawal và Srikant đã đưa ra bài toán khai thác mẫu tuần tự,đồng thời cũng đưa ra thuật toán AprioriAll [2] Đây là thuật toán đầu tiên được
Trang 22thiế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ậttoá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 thủ tục phát sinh Apriori để kết các mẫu trong tập L k-1 với chính nó
để tạo ra tập C k , là tập chuỗi ứng viên ở lần lặp thứ k, sau đó loại trừ các chuỗi trong tập C k , tức loại bỏ những chuỗi mà có chuỗi con không nằm trong tập L k-1 Tạo tập
L k gồm những chuỗi trong C k có độ hỗ trợ ≥ minSup Quá trình này lặp lại cho đến
khi kết không sinh ra chuỗi mới
Ví dụ, với CSDL chuỗi D 2 trong bảng 2.2, thì C 1 = {a:5, b:5, c:2, d:2, e:4},
trong đó mỗi item có độ hỗ trợ tương ứng đi kèm, biểu diễn dạng chuỗi:độ hỗ trợ và
ngưỡng minSup tuyệt đối = 3 (60%); sau khi loại trừ, dãy các chuỗi phổ biến độ dài
1 là L 1 = {a:5, b:5, e:4} Tiếp tục, thuật toán sẽ phát sinh các chuỗi ứng viên độ dài
k và bắt đầu tại k=2, C 2 = {aa:2, ab:4, ae:4, ba:3, bb:3, be:4, ea:0, eb:1, ee:0}, sau
đó loại trừ tất cả các chuỗi trong C 2 mà có chuỗi con không nằm trong L 1 Cứ tiếp
tục như vậy tập phổ biến tìm được là fs = U k L k = {a,b,e,ab,ae,ba,bb,be,abe} Thủ tục loại trừ thực hiện trên các itemset trong tập C k để loại bỏ những chuỗi mà cóchuỗi con không phổ biến Kỹ thuật AprioriAll bị trì hoãn vì số lượng chuỗi khaithác từ CSDL ngày một gia tăng Suốt quá trình thực thi, số lượng chuỗi ứng viêngia tăng lũy thừa do đó không đủ bộ nhớ để xử lý Mặt khác, để tìm tất cả mẫu cácmẫu tuần tự, thuật toán AprioriAll phải duyệt CSDL nhiều lần vì với mỗi tập ứngviên để đếm độ hỗ trợ phải duyệt toàn bộ CSDL
Trang 23phát sinh các chuỗi ứng viên ở mức kế (k+1) kế tiếp Tập chuỗi ứng viên C k+1 ở
mức kết tiếp được tạo bằng cách thực hiện phép kết GSP tập L kvới chính nó Phép
kết GSP cũng giống như phép kết phát sinh Apriori đòi hỏi hai chuỗi trong L kkết
với nhau thỏa điều kiện kết Chuỗi s 1 (ví dụ ab) trong L k kết được với chuỗi s 2 (ví dụ
ba) trong L k nếu chuỗi con thu được bằng cách xóa (k-1) item của s 1 hoàn toàn
giống với chuỗi con thu được bằng cách xóa (k-1) item cuối của s 2 vì vậy chuỗi ứng
viên tạo ra chính là chuỗi s 1 được mở rộng thêm item cuối của s 2 (ví dụ, kết chuỗi
ab với ba được aba) Giai đoạn loại trừ xóa đi các chuỗi ứng viên mà có chuỗi con
độ dài (k-1) có độ hỗ trợ nhỏ hơn minSup Mỗi chuỗi ứng viên có nhiều hơn 1 item
so với tập chuỗi hạt giống ban đầu, do đó tại mỗi mức tất cả các chuỗi ứng viên đều
có cùng số lượng item Độ hỗ trợ của những chuỗi ứng viên này được tìm bằng cáchduyệt lại CSDL Thuật toán chấm dứt khi không có mẫu phổ biến nào được tìm thấy
(độ hỗ trợ không thỏa minSup) hoặc không phát sinh được chuỗi ứng viên mới Đặc
trưng phát sinh và kiểm tra chuỗi ứng viên trong GSP gồm hai giai đoạn: giai đoạnkết và giai đoạn loại trừ Trong suốt giai đoạn kết, chuỗi ứng viên được phát sinh
kết L k-1 với chính nó sử dụng phép kết GSP Từ tập hạt giống gồm 3 chuỗi
1-sequences là L 1 = {a, b, e}, tập ứng viên C 2 gồm 12 chuỗi 2-sequences
(3×3+(3×2)/2 =12) được tạo ra, với số lượng chuỗi ứng viên bùng nổ, C 2 = {aa, ab,
ae, ba, bb, be, ea, eb, ee,(ab), (ae), (be)}; Sau đó, thuật toán duyệt CSDL để đếm độ
hỗ trợ cho mỗi chuỗi ứng viên Sau giai đoạn loại trừ, ta được L 2 = {ab:3, ae:4, ba:3, bb:3, be:4, (ab):3}; kết L 2 với L 2 để có C 3 ={aba, abb, abe, bab, bae, b(ab),bba, bbe, bbb, (ab)a, (ab)b, (ab)e}, cứ tiếp tục như vậy cho đến khi C k = {} hoặc L k−1 = {} Tập chuỗi phổ biến kết quả là fs=U k L k Ví dụ minh họa cho giai
đoạn loại trừ như sau, giả sử có L 3 = {(ab)c, (ab)d, a(cd), (ac)e, b(cd), bce}, thì
C 4 ={(ab)(cd), (ab)ce}, và (ab)ce sẽ bị loại trừ vì chuỗi con kề của nó là ace không
có mặt trong L 3 Để tăng hiệu quả, GSP sử dụng một cây băm để giảm số lượng ứng
viên cần kiểm tra trong C Lưu ý rằng, tại mỗi bước, GSP chỉ duy trì trong bộ nhớ những mẫu đã khai thác được các ứng viên độ dài k, vì vậy nó là thuật toán dùng bộ
nhớ duy nhất So với AprioriAll, GSP thực hiện nhanh gấp 20 lần Nhược điểm củathuật toán này là tạo ra một tập lớn các chuỗi ứng viên, quét CSDL nhiều lần và
Trang 24không hiệu quả khi khai thác các mẫu tuần tự dài.
Thu ật toán SPAM
Thuật toán SPAM [4] kết hợp ý tưởng của các thuật toán GSP, SPADE [5], vàFreeSpan [6] Toàn bộ xử lý của thuật toán cùng với cấu trúc dữ liệu mà nó sử dụng
là vừa với bộ nhớ chính, được khẳng định là kỹ thuật khai thác mẫu tuần tự đầu tiên
sử dụng cấu trúc dữ liệu cây từ điển để lưu các chuỗi và duyệt cây theo chiều sâu
Hình 2.1 Cây từ điển biểu diễn các chuỗi, với đường nét nhạt
là mở rộng theo chuỗi và nét đậm là mở rộng theo itemset
Ví dụ cho thuật toán SPAM, sử dụng CSDL ở bảng 2.3 Cây con thứ tự từ điển
cho item a được cung cấp trong ví dụ của Ayers và đồng sự 2002 [4], hình 2.1 biểu diễn cây con từ điển của item b, giả sử kích thước cực đại của chuỗi là 3 Mỗi nút trên cây có các chuỗi con mở rộng theo chuỗi được tạo ra theo bước S-Step và các chuỗi con mở rộng theo itemset được tạo ra theo bước I-Step của thuật toán SPAM
duyệt các chuỗi trên cây theo chiều sâu và kiểm tra độ hỗ trợ của mỗi chuỗi mở
rộng theo ngưỡng minSup một cách đệ quy Nếu độ hỗ trợ của một nút con s nhỏ hơn minSup thì không cần lặp lại quá trình duyệt theo chiều sâu trên s do tính chất
Apriori Việc loại trừ cũng được áp dụng tại mỗi bước mở rộng theo chuỗi và theoitemset của thuật toán, tối thiểu số lượng nút con và đảm bảo rằng tất cả các núttương ứng với chuỗi phổ biến đều được thăm Để đếm độ hỗ trợ hiệu quả, SPAM sử
Trang 25dụng cấu trúc dữ liệu bitmap dọc để biểu diển mỗi thành phần trong của các chuỗi
trong CSDL Để tìm bitmap của chuỗi mở rộng theo chuỗi (S-Step), trước hết biến
đổi chuỗi cần mở rộng sử dụng một bảng tra sao cho tất cả các bit đứng sau vị trí
của bit 1 đầu tiên (giả sử vị trí xuất hiện bit 1 đầu tiên là y) được thiết lập là 1 và tất
cả các bit có chỉ số nhỏ hơn hoặc bằng y được thiết lập là 0 Sau đó, thực hiện phép
toán AND trên bitmap đã biến đổi với bitmap của item thêm vào, ta được bitmap
của chuỗi mở rộng theo chuỗi Còn đối với chuỗi mở rộng theo itemset (I-Step), chỉ
cần thực hiện phép AND mà không cần phải biến đổi chuỗi cần mở rộng Và lúcnày, việc đếm độ hỗ trợ trở nên đơn giản đó là xác định có bao nhiêu phần bitmapkhông chứa toàn bit 0 Ví dụ, mỗi item trong bảng 3 sẽ được biểu diễn bởi mộtbitmap dọc, để tìm độ hỗ trợ của chuỗi mở rộng theo chuỗi là <ae> trước hết cần
xác định bitmap của nó Bitmap của <a> được biến đổi như mô tả trên và lấy AND với bitmap của <e> ta được bitmap của <ae> Nếu sử dụng minSup = 2 thì chuỗi ứng viên <ae> sẽ không bị loại trừ vì số lượng các phần bitmap khác 0 của nó ≥ 2.
Thuật toán SPAM tương tự như SPADE nhưng nó sử dụng phép toán trên bittốt hơn là thao tác kết có quy tắc và theo thời gian của SPADE Nếu so sánh SPAMvới SPADE thì SPAM thực hiện nhanh hơn SPADE gấp 2.5 lần, trong khi đóSPADE lại sử dụng bộ nhớ hiệu quả hơn SPAM từ 5 đến 20 lần
2.3.2 Các kỹ thuật phát triển mẫu
Các phương pháp phát triển mẫu ra đời đầu những năm 2000, là giải pháp chovấn đề phát sinh và kiểm tra mẫu Ý tưởng chính là để tránh phát sinh các ứng viêncùng lúc và để tập trung tìm kiếm trên phần CSDL giới hạn đã được chia nhỏ từCSDL ban đầu Hầu hết các thuật toán phát triển mẫu đều bắt đầu bằng việc xâydựng một dạng biểu diễn của CSDL cần khai thác, sau đó đề xuất cách chia nhỏkhông gian tìm kiếm, và tạo ra một số ít chuỗi ứng viên có thể nhờ phát triển trêncác chuỗi phổ biến đã khai thác được ở bước trước, và áp dụng tính chất Apriori khiduyệt không gian tìm kiếm đệ quy Các thuật toán đầu tiên khởi đầu bằng các CSDL
chiếu, ví dụ như FreeSpan [6], PrefixSpan [7] Một chuỗi con α’ của α được gọi là chiếu của α theo tiền tố β nếu và chỉ nếu (1) α’ có tiền tố β, và (2) không tồn tại
Trang 26chuỗi cha α” nào của α’ sao cho α” là chuỗi con của α và α” có tiền tố β.
PrefixSpan dựa trên việc xây dựng mẫu đệ quy bằng cách phát triển trên tiền tố,đồng thời, giới hạn tìm kiếm đối với CSDL chiếu Nhờ đó, không gian tìm kiếmgiảm đi tại mỗi bước PrefixSpan vẫn được coi là một tiêu chuẩn và là một trongnhững thuật toán khai thác mẫu tuần tự nhanh nhất sát cánh với SPADE Thuật toánkhác, WAP-mine [9] là thuật toán đầu tiên trong số các thuật toán phát triển mẫu sửdụng cấu trúc cây vật lý để biểu diễn CSDL chuỗi cùng với độ hỗ trợ, sau đó khaithác cây này thay vì phải duyệt toàn bộ CSDL chuỗi ở mỗi bước
Thu ật toán FreeSpan
Thuật toán FreeSpan [6] bắt đầu bằng việc tạo ra một danh sách các chuỗi
1-sequences từ CSDL chuỗi gọi là danh sách item phổ biến (f-list), sau đó nó xây
dựng một ma trận các item trong danh sách này Ma trận này chứa thông tin về độ
hỗ trợ của mỗi chuỗi ứng viên độ dài 2 được phát sinh từ các item trong f-list và được gọi là S-Matrix Với một mẫu tuần tự α từ S-Matrix, CSDL chiếu theo α là tậphợp các chuỗi phổ biến có α là chuỗi con Các item không phổ biến và những itemtheo sau các item không phổ biến trongα bị bỏ qua Ở bước kế tiếp, xây dựng bảnggồm các chuỗi 2-sequences cùng với chú thích trên những item lặp lại và chú thíchtrên CSDL chiếu để giúp định vị những CSDL chiếu này trong lần duyệt thứ ba và
các lần duyệt sau đó mà không cần xét đến S-Matrix Lúc này, S-Matrix bị bỏ đi và
khai thác tiếp tục sử dụng CSDL chiếu
Ví dụ minh họa FreeSpan trên CSDL chuỗi D 3 ở bảng 2.3 và minSup = 25% Lần duyệt đầu tiên, D 3 tạo ra danh sách các chuỗi 1-sequences là f-list = {a:4, c:3, e:3, b:2, d:2} Vì vậy tập đầy đủ các mẫu tuần tự có thể chia thành 5 tập con rời
nhau, mỗi tập có CSDL chiếu riêng và được khai thác theo phương pháp chia để trị
Sau đó, xây dựng S-Matrix để đếm độ hỗ trợ cho mỗi chuỗi 2-sequenes như sau Xét f-list {i1, i2, …, in}, F là một ma trận tam giác F[j, k], với 1 ≤ j ≤ m và 1 ≤ k ≤ j sao cho m là số item trong itemset của chuỗi đang xét F[j, j] chỉ có một bộ đếm, đếm độ hỗ trợ cho chuỗi 2-sequences <ij ij> Mỗi đầu vào có 3 bộ đếm (A, B, C);
A là số lần xuất hiện của <ij ik>, B là số lần xuất hiện của < ikij>, và C là số lần
mà ik xuất hiện cùng với ij như một itemset <(ijik)> S-Matrix cho chuỗi
Trang 272-sequences ở bảng 2.3 được trình bày trong bảng 2.4, được điền vào sau lần duyệtCSDL lần thứ hai.
Bảng 2.4 S-Matrix để xây dựng chuỗi 2-sequences từ CSDL ở bảng 2.3
Bảng 2.5 Phát sinh mẫu từ S-Matrix
Item Chu ỗi phổ biến có độ
dài 2
Chú thich trên các item l ặp lại Chú thích trên CSDL chi ếu
D <(ad)>: 2, <(cd)>: 2 <(ad)>, <(cd)> <(ad)>: {c}
B <ab>: 2 <ab>
E <ae>: 2 <ae>
C <ac>:2, <(ac)>: 2 {ac}
Ví dụ, bộ (2, 0, 2) ở dòng thứ hai, cột thứ nhất của ma trận có nghĩa là chuỗi
<ac> xuất hiện 2 lần, chuỗi <ca> không xuất hiện lần nào và chuỗi <(ac)> xuất hiện 2 lần trong D 3 Bước thứ ba, xây dựng chuỗi mức 2 (level-2-sequences) từ các ứng viên trong S-Matrix và tìm chú thích cho những item lặp lại và CSDL chiếu để
bỏ đi ma trận và tạo ra CSDL chiếu mức 3 (xem bảng 2.5) được xây dựng từ phân
tích ma trận theo dòng từ dưới lên Xét dòng tương ứng với item d, F[a, d], F[c, d]
và F[a, c] từ một mẫu tạo ra bộ ba và F[a, d] = (1, 0, 2) tức là chỉ <(ad)> là hợp lệ (vì độ hỗ trợ của nó trên ngưỡng), chú thích cho CSDL chiếu sẽ là <(ad)>:{c}, nghĩa là CSDL chiếu theo <(ad)> với c là item duy nhất được thêm vào Từ các chú thích này, duyệt CSDL để tạo ra các mẫu có item lặp lại {(ad):2, (cd):2, ab:2, ae:2, ac:2, (ac):2} Chỉ có duy nhất một CSDL chiếu <(ad)>:{c} mà chú thích có chính
xác 3 tiem, và mẫu tuần tự kết hợp của nó thu được bằng cách duyệt CSDL chiếu
Nếu nó chứa nhiều hơn 3 item thì xây dựng S-Matrix cho CSDL chiếu này và khai
thác đệ quy theo cách tương tự Thực chất, FreeSpan xét ít tổ hợp các chuỗi con hơn
Trang 28và chạy nhanh hơn GSP, do quá trình loại trừ chuỗi ứng viên trong S-Matrix trước
khi chúng được tạo ra, đặc biệt là khi bộ dữ liệu phát triển lớn hơn Phần lớn chi phícủa FreSpan là tính toán và tạo ra các CSDL chiếu Nếu một mẫu xuất hiện trongmỗi chuỗi dữ liệu thì CSDL chiếu của nó không thu gọn Hơn nữa, vì một chuỗi con
độ dài k có thể phát triển tại vị trí bất kỳ, nên việc tìm kiếm chuỗi ứng viên độ dài (k+1) cần phải được kiểm tra mọi tổ hợp có thể, dẫn đến tốn nhiều chi phí.
Thu ật toán PrefixSpan
PrefixSpan [7] 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 Với phương pháp này, các mẫu tuần tự đượcphát triển trong mỗi CSDL chiếu, nhờ chỉ duyệt các chuỗi phổ biến cục bộ
Ví dụ minh họa ý tưởng CSDL chiếu, xét < f>,<(fg)>, <(fg)a> là tất cả các tiền tố của chuỗi <(fg)a(fbkc)> từ bảng 2.3, nhưng cả hai chuỗi <fa> và <ga> đều không phải là tiền tố Mặt khác <(g)a(fbkc)> là hậu tố của chuỗi đã cho đối với tiền
tố <f> và <a(fbkc)> là hậu tố đối với tiền tố <fg> Chạy PrefixSpan trên CSDL chuỗi D 3ở bảng 2.3 của bài toán 2, thực hiện theo 3 bước như sau:
(1) Tìm tất cả mẫu tuần tự độ dài 1 bằng cách duyệt CSDL chuỗi D 3 Ta được a:4, c:3, e:3, b:2, d:2.
(2) Chia nhỏ không gian tìm kiếm để lấy CSDL chiếu giống như FreeSpan Ví
dụ này tạo ra 5 tập con rời nhau theo 5 tiền tố <a>, < b>, <c>, <d>.
(3) Tìm các tập con gồm các mẫu tuần tự; những tập con này có thể khai thácđược bằng cách xây dựng CSDL chiếu giống như FreeSpan, và khai thác đệ quytrên mỗi CSDL chiếu đó
Để tìm mẫu tuần tự có tiền tố <a>, chúng ta mở rộng nó bằng cách thêm vào một item tại một thời điểm Để thêm một item x kế tiếp, có hai khả năng xảy ra: (1) thuật toán nối item vào itemset cuối trong tiền tố (ví dụ <(ax)>) và (2) item thêm vào đóng vai trò là một itemset riêng (ví dụ <ax>) Để tạo ra CSDL chiếu theo tiền
tố <a>: nếu một chuỗi chứa item <a>, thì hậu tố theo sau tiền tố <a> được rút trích
ra như là một chuỗi cho cơ sở dữ liệu chiếu Xét chuỗi thứ hai <(fg)a(fbkc)> trong bảng 2.3, khi chiếu theo tiền tố <a> thì kết quả chiếu là chuỗi <(bc)> với f và k được xóa đi vì chúng không phổ biến Kết quả chiếu chuỗi thứ ba là <(cd)>, chiếu
Trang 29chuỗi thứ tư là <(abcd)e>, CSDL chiếu cuối cùng thu được cho tiền tố <a> chỉ chứa những chuỗi sau e, (bc), (cd), (abcd)e; chiếu theo các tiền tố khác xem kết quả
ở bảng 2.6 Bây giờ, chúng ta cần tìm tất cả chuỗi phổ biến có dạng <(ax)>, hai khuôn mẫu được dùng: <(_x)> và <ax> để so khớp mỗi chuỗi chiếu để tính độ hỗ
trợ Khuôn mẫu thứ hai sử dụng itemset cuối cùng trong tiền tố chứ không phải làitem cuối Ở ví dụ này, chúng là giống nhau vì chỉ có một item trong itemset cuối
của tiền tố Do đó, chúng ta cần tìm tất cả chuỗi phổ biến có dạng <ax>; trong trường hợp này, xs là các item phổ biến trong CSDL chiếu mà không ở cùng itemset
với item cuối của tiền tố Bảng 2.5 chứa tất cả các mẫu phổ biến tạo ra cho ví dụ
này sử dụng thuật toán PrefixSpan Nhìn vào mẫu tạo ra cho tiền tố <a>, sau khi tìm chuỗi phổ biến 2-sequences (đó là ab, ac, (ac), (ad), ae), chúng ta đệ quy tạo ra
CSDL chiếu cho chúng và bắt đầu khai thác chuỗi phổ biến 3-sequences (ví dụ, ởđây không tạo ra chuỗi nào) Ưu điểm chính của PrefixSpan là không tạo ra bất kỳứng viên nào Nó chỉ đếm độ phổ biến của các item cục bộ Nó sử dụng mô hìnhchia để trị bằng cách tạo ra các tập con của các mẫu tuần tự và có thể chia nhỏ hơnnữa nếu cần thiết
Bảng 2.6 Chạy PrefixSpan trên CSDL ở bảng 2.3
Item CSDL chi ếu Chu ỗi phổ biến
<a> <e>, <(bc)>, <(cd)>, (abcd)e> a, ab, ac, (ac), (ad), ae
có thể sử dụng phép chiếu giả và phép chiếu ba mức Phép chiếu ba mức sử dụng
S-Matrix đã được giới thiệu trong FreeSpan [6] thay cho CSDL chiếu Phép chiếu
giả được dùng khi PrefixSpan chỉ chạy trên bộ nhớ chính Tức là, thay vì tạo raCSDL chiếu vật lý trong bộ nhớ, các con trỏ hay các đối tượng con trỏ được dùngsao cho mỗi phép chiếu chứa hai phần thông tin: con trỏ trỏ đến chuỗi trong CSDL
Trang 30và vị trí offset của hậu tố trong chuỗi Kết quả thực nghiệm cho thấy rằng đối với xử
lý dựa trên đĩa, sử dụng phép chiếu ba mức tốt hơn, còn đối với xử lý trên bộ nhớchính thì dùng phép chiếu giả cho kết quả tốt hơn [7]
Thu ật toán WAP-mine
Đây là thuật toán phát triển mẫu với phép chiếu cây, ra đời cùng thời điểm vớiFreeSpan và PrefixSpan vào năm 2000/2001 Một đóng góp khác trên kỹ thuật pháttriển mẫu và cấu trúc cây là thuật toán WAP-mine [9] sử dùng cấu trúc cây WAP Ởđây, CSDL chuỗi được duyệt 2 lần để xây dựng cây WAP gồm các chuỗi phổ biếncùng với độ hỗ trợ của chúng, đồng thời duy trì một “bảng con trỏ đầu” để trỏ đếncác vị trí xuất hiện đầu tiên của mỗi item nằm trong itemset phổ biến Duyệt CSDLlần đầu để tìm chuỗi phổ biến 1-sequences và lần duyệt thứ hai để xây dựng câyWAP chỉ có các chuỗi con phổ biến Ví dụ cây WAP xây dựng từ CSDL của bài
toán 1 (ở bảng 2.2 và bảng 2.7) được khai thác với minSup = 3.
Bảng 2.7 Các mẫu phổ biến của CSDL truy cập web từ bảng 2.2
(trong ví dụ này là a, b và e), mỗi một chuỗi có một liên kết kết nối tới vị trí xuất
hiện đầu tiên trong cây và xâu chuỗi các con đường của nó thông qua các nhánh củamỗi sự xuất hiện của chuỗi con như hình 2.2a Để khai thác cây, thuật toán bắt đầu
từ item phổ biến ở bảng liên kết đầu và sử dụng nó như là một hậu tố điều kiển đểxây dựng một cây WAP điều kiện trung gian và tìm các item phổ biến xây dựng
Trang 31trên hậu tố để lấy chuỗi phổ biến độ dài k.
Hình 2.2 Khai thác cây WAP sử dụng thuật toán WAP-mine
Ở ví dụ này, như hình 2.2a, chúng ta bắt đầu với item e, bổ sung item này vào tập chuỗi phổ biến là fs = {e} và theo liên kết đầu để tìm các chuỗi bba:1, baba:1, ab:2, ta có item a và b đều có độ hỗ trợ là 4, chúng được coi là các chuỗi phổ biến
1 Bây giờ, xây dựng cây con WAP cho hậu tố |e như hình 2.2b cho các chuỗi bba:1, baba:1, ab:2 và khai thác cây này để có hậu tố điều kiện |be như hình 2.2c theo liên kết đầu của b, dẫn đến chuỗi be được bổ sung vào tập chuỗi phổ biến là fs
= {e, be} Theo liên kết đầu của b trên cây WAP|e (tìm kiếm điều kiện theo e) cho
ra b:1, ba:1, b:-1, a:2 với độ hỗ trợ của b(1) và a(3), độ hỗ trợ của b nhỏ hơn minSup nên xóa nó, kết quả là a:1, a:2, cho ra cây điều kiện WAP|be như hình 2.2c Tiếp theo, bổ sung các chuỗi phổ biến mới tìm được vào tập fs, fs = {e, be,abe} và theo liên kết đầu của nó trên cây WAP|be cho kết quả là Ø (hình 2.2c) Sau đó, thuật toán duyệt lùi đệ quy đối với cây WAP|(b) để khai thác liên kết a cho cây WAP|ae
(hình 2.2d) Khai thác đầy đủ của cây WAP ví dụ được mô tả ở hình 2.2, tập chuỗi
phổ biến tìm được fs = {e, be, abe, ae, b, bb, ab, a, ba} Thuật toán WAP-mine
Trang 32được khẳng định là tốt hơn GSP Mặc dù duyệt CSDL chỉ hai lần và tránh vấn đềphát sinh chuỗi ứng viên bùng nổ như các phương pháp phát sinh và kiểm tra ứngviên và phương pháp dựa trên Apriori, nhưng WAP-mine cũng gặp phải vấn đề vềtiêu tốn bộ nhớ vì nó phải xây dựng lại nhiều cây WAP trung gian một cách đệ quysuốt quá trình khai thác khi số lượng mẫu phổ biến tăng Vấn đề này được giảiquyết bởi thuật toán PLWAP [14].
Thu ật toán FS-Miner
FS-Miner [10] là thuật toán phát triển mẫu với phép chiếu cây tương tự nhưWAP-mine và hỗ trợ khai thác tương tác và gia tăng FS-Miner quan trọng ở chỗ nóbắt đầu khai thác ngay lập tức các mẫu 2-sequences từ lần duyệt CSDL lần thứ hai
(tại k=2) Nó có thể làm như vậy nhờ biểu diễn nén trên cây FS, trong đó sử dụng
một bảng liên kết đầu các cạnh chứ không phải các nút và item đơn so với cây WAP
và cây PLWAP Xét ví dụ trên dữ liệu ở bảng 2.2, và chỉ xét trường hợp chuỗi kề
nhau (ví dụ, cba là chuỗi con kề của bcbae, nhưng ca thì không) Hình 2.3 biểu diễn
bảng đầu liên kết tạo ra cùng với cây FS cho các chuỗi trong bảng 2.2
Hình 2.3 Cây FS và bảng đầu liên kết cho các web log của bảng 2.2
Thuật toán FS-miner và FS-tree đều sử dụng hai loại độ hỗ trợ và độ hỗ trợ tối
thiểu, đó là MsuppC seq là độ hỗ trợ nhỏ nhất của chuỗi phổ biến tương tự như minSup được sử dụng trong bài luận văn này, và MsuppC link 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ợ
Trang 33Sup link (h) được coi là phổ biến nếu Supp link (h) MsuppC seq và được coi là liên kết
phổ biến tiềm năng nếu MSuppC link Supp link (h) < MsuppC seq Nếu Supp link (h) không thỏa cả MsuppC link và MsuppC seq thì nó là một liên kết không phổ biến Cácliên kết có tiềm năng phổ biến được duy trì để hỗ trợ và kích hoạt khả năng khaithá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ênkế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
MsuppC link =2 và MsuppC seq =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 duyệt CSDL lần thứhai, xây dựng cây FS theo cách tương tự như cây WAP và PLWAP, ngoại trừ chuỗi
mà chứa những liên kết không phổ biến sẽ được tách ra, mỗi phần được chèn vàocây một cách riêng rẽ Xây dựng các con trỏ liên kết từ bảng liên kết đầu để kết nối
sự xuất hiện của các thành phần trong bảng liên kết đầu, El-Sayed và đồng sự 2004[10] đã đề ra 4 tính chất quan trọng của cây FS như sau:
(1) Bất kì chuỗi đầu vào náo có liên kết không phổ biến sẽ bị loại trừ trước khichèn vào cây FS
(2) Nếu MSuppC link <MsuppC seq thì cây FS sẽ lưu trữ nhiều thông tin hơn cầnthiết Đây là một nhược điểm nhưng FS-Miner cần phải có đặc điểm này để khaithác tương tác và tăng cường theo cách tương tự ISM
(3) Tất cả các mẫu có thể mà kết thúc với một liên kết phổ biến h cho trước thì
có thể thu được bằng cách theo con trỏ của h từ bảng liên kết đầu đến nhánh đúng
trên cây FS
(4) Để rút trích một chuỗi kết thúc với một liên kết h cố định từ một nhánh trên
cây FS, chúng ta chỉ cần xem xét đường dẫn của nhánh tiền tố kết thúc với liên kết
Trang 34Bước 2, xây dựng cơ sở chuỗi điều kiện bằng cách thiết lập bộ đếm độ phổ biến cho
mỗi liên kết trong đường đi đến bộ đếm của liên kết h trong đường đi dẫn xuất của
nó, với b−a ta có tập điều kiện (c−b:2) và (a−b:1), a−b không có cơ sở chuỗi điều
kiện vì nó chỉ liên kết trong đường dẫn của riêng nó Bước 3, xây dựng cây điều
kiện FS và chèn mỗi đường đi từ cơ sở điều kiện của h (ở ví dụ này là b−a) vào cây
theo cách dò lui Bước 4, rút trích các chuỗi phổ biến bằng cách duyệt cây điều kiện
theo chiều sâu và chỉ trả về những chuỗi thỏa MsuppC seq Lúc này cây cơ sở điều
kiện không có bất kỳ liên kết nào thỏa MsuppC seq ; giả sử liên kết c−b không thỏa MsuppC seq , trong trường hợp này chúng ta rút trích nó từ cây và thêm b−a vào cây
vì nó ở trong cây hậu tố điều kiện của b−a (từ bước 3) để lấy chuỗi phổ biến
<cba> 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) Trongbài báo, El-Sayed và đồng sự 2004 [10] không thực hiện so sánh FS-Miner vớiWAP-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-Minervới một dạng biến đổi của Apriori FS-Miner cũng cho kết quả thực hiện với thờigian hiệu quả khi xử lý CSDL có số lượng lớn các item phân biệt Tuy nhiên,FS-Miner có một số nhược điểm như cấu trúc cây phát triển nhanh và thưa do chuỗinào có liên kết không phổ biến thì bị tách ra và biểu diễn bởi nhiều nhánh trên cây,nên khối lượng thông tin lưu trữ trên cây càng nhiều hơn Sau khi khảo sát kỹlưỡng, người ta công nhận rằng với khai thác tương tác và tăng cường thì cách làmcủa FS-Miner khá tốt và đơn giản
2.3.3 Các kỹ thuật loại trừ sớm
Trong tất cả nghiên cứu đã có, các thuật toán dựa trên kỹ thuật loại trừ sớm làhướng tiếp cận mới đối với khai thác mẫu tuần tự Những thuật toán này sử dụngmột loại quy nạp vị trí để loại trừ các chuỗi ứng viên rất sớm trong quá trình khaithác và tránh phải đếm độ hỗ trợ càng nhiều càng tốt Cách giải quyết của quá trìnhkhia thác là phát triển mẫu đơn giản Ý tưởng quy nạp vị trí như sau: Nếu vị trí saucùng của một item nhỏ hơn vị trí của tiền tố hiện thời (suốt quát trình khai thác) thìitem không thể xuất hiện sau tiền tố đó trong cùng một chuỗi dữ liệu
Trang 35Các thuật toán này thường sử dụng một bảng để dò các vị trí sau cùng của mỗiitem trong chuỗi và sử dụng thông tin này cho việc loại trừ sớm chuỗi ứng viên; vì
vị trí sau cùng của item là chìa khóa để xác định liệu có thể item thêm vào một
chuỗi tiền tố độ dài k cho trước hay không, vì vậy tránh phải đếm độ hỗ trợ và tạo ra
chuỗi ứng viên không phổ biến Trong thuật toán HVSM, Song và đồng sự 2005[12] đã nhấn mạnh tầm quan trọng của biểu diễn bit và bổ sung thêm phương pháp
duyệt CSDL theo chiều ngang trước theo chiều dọc sau, sử dụng cấu trúc dữ liệu
cây đặc biệt, trong đó mỗi nút lấy các nút anh em phổ biến cũng như các nút concủa nó trong quá trình kết nối để mở rộng itemset, vì vậy tránh phải đếm độ hỗ trợ;tuy nhiên sự thực hiện của HVSM không vượt qua được SPAM Mặt khác, với thuậttoá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áncòn sử dụng thứ tự thời gian và dạng biến đổi của CSDL chiếu để chia nhỏ khônggian 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ênthuộc tính không đơn điệu, so sánh chuỗi trực tiếp (Direct Sequence Comparison -DISC) loại trừ những chuỗi không phổ biến theo những chuỗi khác có cùng độ dài
Để so sánh những chuỗi có cùng độ dài với nhau, thủ tục so sánh dựa trên thứ tự từ
điển và thứ thự thời gian Ví dụ, chuỗi A = <a(bc)(de)> nhỏ hơn chuỗi
B = <a(cd)(bf)> theo thứ tự từ điển vì tại vị trí thứ hai tương ứng của hai chuỗi có
b < c, vị trí này được gọi là điểm khác biệt Hơn nữa, nếu C = <(abc)(de)> thì
C < A vì so sánh theo thứ tự thời gian thì của itemset ở vị trí 1 Theo thứ tự này, nếu
μk là chuỗi con độ dài k nhỏ nhất của A thì ta gọi μk là chuỗi con-k tối thiểu
(k-minimum subsequence) Chiu và đồng sự 2004 [13] cũng sử dụng mối quan hệ này để định nghĩa thứ tự k-tối thiểu, có thể sắp xếp các chuỗi trong CSDL theo thứ
tự này Cho trước ngưỡng minSup ξ, chuỗi-k tối thiểu tại vị trí thứ ξ trong CSDL đã sắp xếp được gọi là αξ, bất kỳ chuỗi-k tối thiểu xuất hiện tại vị trí nhỏ hơn vị trí của
αξ (theo thứ tự k-tối thiểu) đều không phổ biến ví CSDL đã được sắp xếp Tất cả
chuỗi-k tối thiểu nhỏ hơn αξ đều bị loại bỏ và với mỗi CID của những chuỗi này, thuật toán tìm chuỗi-k tối thiểu kế tiếp (còn gọi là chuỗi-k tối thiểu điều kiện) sao
Trang 36cho nó được sắp đặt ở vị trí k đối với αξ, tạo ra CSDL được sắp mới theo αξ Chúng ta thấy rằng những chuỗi-k không phổ biến nhỏ hơn αξ được bỏ qua và chỉ kiểm tra những chuỗi con-k tối thiểu điều kiện; đây là cách mà thuật toán có thể loại
trừ những chuỗi ứng viên không phổ biến mà không cần phải đếm độ hỗ trợ củachúng Thuật toán DISC-all dùng kỹ thuật DISC để loại trừ chuỗi ứng viên Trướchết, duyệt CSDL để chia các chuỗi dữ liệu thành các phần mức đầu bởi các chuỗi1-tối thiểu Những phần này được khai thác để tìm tất cả các chuỗi phổ biến2-sequences sử dụng PrefixSpan như CSDL chiếu, các chuỗi 1-squences và2-sequences không phổ biến bị xóa đi để tạo ra chuỗi dữ liệu ngắn hơn Sau đó, mỗiphần này lại tiếp tục được chia thành các phần mức hai bởi các chuỗi 2-tối thiểu đểtìm chuỗi phổ biến 3-sequences… Đây chính là phân chia đa mức, số mức phụthuộc vào chi phí thực hiện và độ lợi ích thu được Việc phát sinh các phần đượcthực thi theo chiều sầu Mỗi khi chi phí tăng, thuật toán sẽ chuyển sang thực hiệnchiến lược DISC Ở đây, với mỗi phần, DISC-all tạo ra CSDL được sắp xếp để tạo
ra chuỗi phổ biến độ dài k Sau đó, mỗi chuỗi dữ liệu ở phần mức thứ hai được gán
lại vào phần mức thứ hai khác trước chuỗi 2-tối thiểu kế tiếp Khi xử lý xong tất cả
các phần ở mức thứ hai, mỗi chuỗi dữ liệu của phần mức thứ nhất được gán lại vào
phần mức thứ nhất khác trước chuỗi 1-tối thiểu kế tiếp Mỗi phần được xử lý như
một CSDL chiếu và được khai thác để tìm các chuỗi phổ biến 2-sequences,3-sequences theo cách tương tự như SPADE; chuỗi 4-sequences và lớn hơn đượckhai thác theo chiến lược DISC
Bảng 2.8 CSDL và phần ở mức thứ nhất của bảng 2.3
CID Chu ỗi dữ liệu Ph ần khởi tạo Sau khi x ử lý phần- <a>
1 <(a)(e)> Phần-<(a)> Phần-<(e)>
2 <(fg)a(fbkc)> Phần-<(a)> Phần-<(b)>
3 <(ahcd)> Phần-<(a)> Phần-<(c)>
4 <a(abcd)e> Phần-<(a)> Phần-<(b)>
5 <e> Phần-<(e)>
-Ví dụ, xét bảng 2.8 với ξ = 2 Tất cả các chuỗi 1-sequences ngoại trừ f, g, h và k
là phổ biến, 4 chuỗi đầu tiên thuộc về phần-<a> vì các chuỗi 1-tối thiểu của chúng
Trang 37là <a> Ở bước hai, phần-<a> được xử lý trước để tìm chuỗi phổ biến với tiền tố
<a> Sau đó, chúng ta tìm chuỗi 1-tối thiểu kế tiếp trong mỗi năm chuỗi dữ liệu và
phân lớp chúng lại vào các phần ở mức thứ nhất khác Ví dụ, CID 1 và 2 được gán
lại và phần-<(e)> và phần-<(b)>, như minh họa ở cột cuối trong bảng 2.8 Xét phần-<a>, tạo ra mảng đếm tương tự như ID-list của SPADE để chứa biến đếm độ
hỗ trợ của mỗi chuỗi 1-sequence trong phần-<a> Lúc này, có thể giảm bớt cácchuỗi bằng cách xóa đi những chuỗi không phổ biến Mảng đếm cũng được dùng đểtìm chuỗi 3-sequences trong phần ở mức thứ 2 Sau đó, áp dụng chiến lược DISC ởtrên Thuật toán DISC-all thực hiện tốt hơn PrefixSpan trên các loại CSDL khácnhau Khi kích thước CSDL càng lớn thì thuật toán DISC-all càng tốt hơn so vớiPrefixSpan PrefixSpan không thích hợp với các CSDL lớn vì số lượng dữ liệuchiếu tăng theo kích thước của CSDL Ngược lại, thuật toán DISC-all bỏ qua những
chuỗi không phổ biến trong quá trình so sánh chuỗi vì ξ tăng theo kích thước
CSDL
Thu ật toán HVSM
Dựa trên các bước của SPAM, Song và đồng sự 2005 [12] đã đề xuất thuật toán
đầu tiên có cách khai thác CSDL duyệt theo chiều ngang trước - theo chiều dọc sau,
thuật toán này cũng dùng bitmap để biểu diễn dữ liệu HVSM định nghĩa chiều dàichuỗi là số lượng itemset chứ không phải là số lượng item đơn và HVSM tạo rachuỗi ứng viên phổ biến bằng cách lấy các nút anh em như là từng lớp nút con Ởđây, các itemset phổ biến đã xét trong một lớp không còn xuất hiện ở lớp kế tiếp
Độ hỗ trợ được đếm bằng cách duyệt bitmap và ghi lại TID đầu tiên để giảm số lần
duyệt và cải thiện việc đếm hiệu quả Xét CSDL ở bảng 2.3, với minSup = 2 Xét CSDL dọc cho dữ liệu ở bảng này và chỉ trình bày các bitmap cho các item a, b, c
và d Để tạo ra chuỗi ứng viên 1-sequences, thuật toán duyệt bitmap dọc của mỗi
itemset trong mỗi chuỗi, khi bit 1 đầu tiên xuất hiện, nó ghi lại TID tương ứng vàtăng độ hỗ trợ cho itemset đó Khi duyệt xong, nếu độ hỗ trợ lớn hơn hoặc bằng
minSup thì bổ sung itemset đó vào danh sách các itemset phổ biến L kvà lưu vàobitmap của chuỗi phổ biến 1-sequences với TID của bit 1 đầu tiên Xét ví dụ, bướcnày sẽ duyệt cột <a> cho CID =1; khi tìm thấy bit 1 đầu tiên, ở đây bit 1 xuất hiện ở
Trang 38dòng thứ nhất, nó ghi lại TID tương ứng của bit 1 đầu tiên là “1st-TID=1” và tăng
đếm độ hỗ trợ cho <a> Làm tương tự cho chuỗi CID=2 và CID =3, … Cuối cùng,
ta có độ hỗ trợ của <a>=4 minSup Bước này cho ra <a> là chuỗi phổ biến
1-sequences và thêm cột của nó vào bitmap của các chuỗi phổ biến 1-sequences
Kết quả cuối cùng của bước này là danh sách L 1 gồm các chuỗi phổ biến
1-sequences với itemset có kích thước 1, L 1 : {a:4, b:2, c:3, d:2} Bước kế tiếp sẽ tìm các chuỗi phổ biến 1-sequences với itemset có kích thước 2, gọi là one-large- sequence-two-itemset Tạo ra cây thứ tự từ điển từ đầu ra ở bước trước, trong đó
mỗi nút lá lần lượt lấy các nút anh em như là nút con như minh họa ở hình 2.4
Hình 2.4 Chuỗi ứng viên với itemset có kích thước 1 và itemset có kích thước 2
Ta thu được C 2 ={ab, ac, ad, bc, bd, cd} Với mỗi itemset trong C 2 và với mỗiCID, thực hiện phép xử lý bit AND giữa item đầu tiên và item thứ hai trong itemset,
và duyệt bitmap kết quả để tìm bit 1 đầu tiên, ghi giá trị TID của bit 1 đầu tiên đó và
tính độ hỗ trợ như bước trước đó Ví dụ, xét itemset <ab>, AND bitmap của <a> với bitmap của <b> trong L 1 , sau đó duyệt bitmap kết quả của <ab> ứng với mỗi CID, khi có bit 1 đầu tiên xuất hiện thì ghi TID của nó vào biến 1stTID và tăng độ
hỗ trợ lên 1, cuối cùng ta được độ hỗ trợ của <ab>=1 < minSup nên không đưa vào
L 2 Tiếp tục quá trình, thu được L 2 ={bc:2, cd:2} Cây thứ tự từ điển được cắt tỉa bằng cách xóa đi những cạnh không chuỗi tương ứng không có trong L 2, sau đó lặp
lại những bước này cho chuỗi phổ biến độ dài 1 mà có itemset có kích thước k Cuối
cùng, chúng ta có bitmap đầy đủ cho tất cả các chuỗi phổ biến 1-sequences, chúng
sẽ làm đầu vào cho giai đoạn khai thác chuỗi phổ biến 2-sequences tiếp theo Để tìm
chuỗi phổ biến k-sequences, tất cả itemset được tạo ra cho các chuỗi phổ biến (k-1)-sequences sẽ được sử dụng để làm nút cho cây thứ tự từ điển các chuỗi ứng