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

Khai thác k mẫu tuần tự phổ biến dựa trên roaring bitmap

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 (1.25 MB, 76 trang )

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 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:
TT

Họ và Tên

Chức danh Hội đồng

1

PGS. TS. Lê Trọng Vĩnh

Chủ tịch

2

GS. TSKH. Hoàng Văn Kiếm

Phản biện 1

3


TS. Võ Đình Bảy

Phản biện 2

4

PGS. TS. Đỗ Phúc

Ủy viên

5

TS. Nguyễn Văn Mùi

Ủy viên, Thư ký

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ử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ự do – 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ụ 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 CSDL
chuỗ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

KHOA QUẢN LÝ CHUYÊN NGÀNH

(Họ tên và chữ ký)


(Họ tên và chữ ký)


i

LỜ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ết
quả 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ày
cũ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


ii

LỜ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


iii

TÓ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ỗi
item 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ép
giao 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àm
giả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ời
gian 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ên
các cơ sở dữ 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 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


vi

3.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


vii

DANH 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

CSDL

Cơ sở dữ liệu

Database

Itemset

Tập mục

Itemset

TID

Giao tác

Transaction Item Database


PMAP

Bản đồ thứ tự ưu tiên

Precedence Map

GPU

Bộ xử lý đồ họa

Graphics Processing Unit

Item

Mục

Item


viii

DANH 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 D 4 ..............................34
Bảng 3.3 Cấu trúc dữ liệu PMAP được xây dựng từ CSDL chuỗi D 4 ......................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


ix

DANH 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
..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


x

Hì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ủa
nhiều Roaring bitmap .........................................................................................51
Hình 3.15 Mô tả cách thực hiện bước s-extension ngắn gọn....................................54
Hình 4.1 Giao diện chương trình ..............................................................................55
Hì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 2
thuật toán sử dụng CSDL BmsWebView1.........................................................57
Hì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 2
thuật toán sử dụng CSDL Levithan ....................................................................57
Hì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 2
thuật toán sử dụng CSDL Bible..........................................................................57
Hì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 2
thuật toán sử dụng CSDL FIFA..........................................................................58
Hì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 2
thuật toán sử dụng CSDL Kosarak .....................................................................58


1

CHƯƠNG 1
MỞ ĐẦU

1.1 LÝ DO CHỌN ĐỀ TÀI
Trong những năm gần đây, với sự phát triển nhanh chóng của công nghệ thông
tin và sự phổ biến của Internet thì khối lượng dữ liệu được tạo ra và thu thập lại từ
các ứng dụng dưới nhiều dạng khác nhau ngày càng trở nên đồ sộ. Sự đa dạng và
phong phú của khối lượng dữ liệu này đã hình thành nên nhiều mô hình dữ liệu
khác nhau như mô hình dữ liệu giao tác (transaction), mô hình dữ liệu chuỗi
(sequence), mô hình dòng dữ liệu (data stream), chuỗi thời gian (time-series)...
Với mô hình dữ liệu chuỗi, sự kiện hoặc dữ liệu nói chung tồn tại theo một
chuỗi có trật tự thời gian nhưng không nhất thiết phải gắn liền với một khái niệm
thời gian cụ thể. Ví dụ chuỗi các mặt hàng đã mua sắm của các khách hàng tại một
cửa hàng, chuỗi truy cập web, chuỗi di truyền trong sinh học, chuỗi sự kiện trong
khoa học, dữ liệu điều trị y tế, các mẫu gọi điện thoại, dữ liệu về thị trường và
chứng khoán… Bản chất của dữ 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 dụng rộng rãi trong nhiều
lĩ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ĩnh
vực này. Trong đó, thuật toán TKS (Top-K Sequential pattern mining) được đánh
giá 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 trong
việ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ụng
CSDL 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 trong
CSDL 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


2


chuỗ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ời
gian để 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 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 các ứng
dụ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ân
tí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ân
tí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 y
khoa, 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 được
bệ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 động
củ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ác
hiệ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ắp
xả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ác
tậ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ẫu
tuầ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ậm
chí 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ày
nhằ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ông
tin 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ờ



3

hế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 động
củ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 ưu
hó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 TKS
bằ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ải
thiệ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ậ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 và tồn tại ở khắp mọi
nơ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ệu
liê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ẫu
gọi điện thoại, chuỗi truy cập web, chuỗi DNA, chuỗi thực thi của chương
trì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ệc
phá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ắp
xế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 itemset
xuấ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ời
gian 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ết
vớ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ột
CSDL 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ững
chuỗ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ặc
không (ví dụ như chuỗi truy cập web và chuỗi DNA). Mỗi bản ghi trong CSDL
chuỗ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ài

tố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ệm
khoa 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…


5

Thuậ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ất
hiệ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 item
khá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 đích
như 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 = {i1, i2,…,im} 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à (i1, i2, …, ik )
với mỗi ij là một item. Không mất tính tổng quát, giả sử các item trong itemset được
sắ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à s1, s2,…, sn hoặc s1→s2→…→sn với mỗi si 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 β = b1, b2, …, bm được gọi là chuỗi con của chuỗi α = a1, a2,…, an hay
α là chuỗi cha của β, ký hiệu β ⊆ α, nếu tồn tại những số nguyên 1≤ j1 < j2 < … < jn
≤ m sao cho b1⊆ aj1, b2⊆ aj2,…, bm⊆ ajm. 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 supD (f) = |{Si ∈ D | f ⊆ Si}|. Độ hỗ trợ tương đối của f là tỉ lệ phần


6

tră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 D1 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 s1 = (ab)(b)(b)(ab)(b)(ac), chuỗi s1 có 6 itemset là: (ab),
(b), (b), (ab), (b), (ac) và có 9 item. Vậy s1 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 s1 đó. Chuỗi p = (ab)(c) là một chuỗi con của chuỗi s1, vì vậy
chuỗi con p còn được gọi là mẫu. Trong D1, chỉ có chuỗi s1, s2 và s5 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 D1
SID

Sequences


1


(ab)(b)(b)(ab)(b)(ac)〉

2


(ab)(bc)(bc)〉

3


(b)(ab)〉

4


(b)(b)(bc)〉

5


(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 phát triển mẫu, phần 2.3.3 trình bày các thuật toán
dự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ận
theo 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ó


7

mỗ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ử D2 (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 ti là một chuỗi các
trang mà người dùng đã xem, và kí hiệu C1={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 D2
UserID

TID

Chuỗi truy cập

100

t1

<bcbae>


200

t2

<bacbae>

300

t3

<abe>

400

t4

<abebd>

500

t5

<abad>

Bài toán 2: Cho CSDL chuỗi D3 như bảng 2.3, dữ liệu này dùng cho những
thuật toán mà xử lý trường hợp itemset trong mỗi chuỗi dữ liệu có nhiều item chứ
không phải 1 item như bảng 2.2, bài toán đặt ra là tìm tất cả các mẫu phổ biến với
ngưỡng minSup=25%.
Bảng 2.3 Cơ sở dữ liệu chuỗi D3

ID chuỗi cho mỗi khách hàng

Chuỗi dữ liệu

1

<(a)(e)>

2

<(fg)a(fbkc)>

3

<(ahcd)>

4

<a(abcd)e>

5

<e>

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



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 thủ tục phát sinh Apriori để kết các mẫu trong tập Lk-1 với chính nó
để tạo ra tập Ck, 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 Ck, tức loại bỏ những chuỗi mà có chuỗi con không nằm trong tập Lk-1. Tạo tập
Lk gồm những chuỗi trong Ck 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 D2 trong bảng 2.2, thì C1 = {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à L1 = {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, C2 = {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 C2 mà có chuỗi con không nằm trong L1. Cứ tiếp
tục như vậy tập phổ biến tìm được là fs = UkLk = {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 Ck để 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 khai
thá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ên
gia 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ác
mẫ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 ứng
viên để đếm độ hỗ trợ phải duyệt toàn bộ CSDL.
 Thuật toán GSP
Thuật toán GSP [3] chạy trên CSDL chuỗi D2 của bảng 2.2, sử dụng phương
pháp phát sinh và kiểm tra mẫu ứng viên, duyệt nhiều lần tương tự như AprioriAll.
Lần duyệt CSDL đầu tiên (k=1) là để xác định độ hỗ trợ của mỗi item, từ đó xác
định chuỗi phổ biến độ dài 1. Kết quả lần duyệt đầu có tập ứng viên C1 = {a:5, b:5,

c:2, d:2, e:4}, L1 = {a, b, e}. Những chuỗi trong L1 tạo thành tập giống Lk dùng để


9

phát sinh các chuỗi ứng viên ở mức kế (k+1) kế tiếp. Tập chuỗi ứng viên Ck+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 Lk vớ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 Lk kết
với nhau thỏa điều kiện kết. Chuỗi s1 (ví dụ ab) trong Lk kết được với chuỗi s2 (ví dụ
ba) trong Lk nếu chuỗi con thu được bằng cách xóa (k-1) item của s1 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 s2. vì vậy chuỗi ứng
viên tạo ra chính là chuỗi s1 được mở rộng thêm item cuối của s2 (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ách
duyệ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ạn
kế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 Lk-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à L1 = {a, b, e}, tập ứng viên C2 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ổ, C2 = {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 L2 = {ab:3, ae:4,
ba:3, bb:3, be:4, (ab):3}; kết L2 với L2 để có C3={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 Ck = {}
hoặc Lk−1 = {}. Tập chuỗi phổ biến kết quả là fs=UkLk. Ví dụ minh họa cho giai
đoạn loại trừ như sau, giả sử có L3 = {(ab)c, (ab)d, a(cd), (ac)e, b(cd), bce}, thì
C4={(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 L3. Để 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ủa
thuậ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à


10

khô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à theo
itemset 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út
tương ứng với chuỗi phổ biến đều được thăm. Để đếm độ hỗ trợ hiệu quả, SPAM sử



11

dụ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úc
này, việc đếm độ hỗ trợ trở nên đơn giản đó là xác định có bao nhiêu phần bitmap
khô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ột
bitmap 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 bit
tố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 SPAM
vớ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 cho
vấn đề phát sinh và kiểm tra mẫu. Ý tưởng chính là để tránh phát sinh các ứng viên
cù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ây
dự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ên
các chuỗi phổ biến đã khai thác được ở bước trước, và áp dụng tính chất Apriori khi

duyệ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


×