Luận văn này đề nghị mô hình so trùng mẫu có quá trình lập chỉ mục được thực hiện qua 2 bước: trích xuất đặc trưng bằng phương pháp biến đổi wavelet và lưu trữ dữ liệu trên cấu trúc chỉ
Trang 1HUỲNH HỮU VIỆT
NÂNG CAO HIỆU QUẢ NHẬN DẠNG MẪU
TRONG DỮ LIỆU CHUỖI THỜI GIAN BẰNG
CÁC CẤU TRÚC CHỈ MỤC ĐA CHIỀU
Chuyên ngành: Khoa học Máy tính
LUẬN VĂN THẠC SĨ
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : PGS.TS Dương Tuấn Anh
Cán bộ chấm nhận xét 1: PGS.TS Đỗ Phúc
Cán bộ chấm nhận xét 2 : TS Quản Thành Thơ
Luận văn thạc sĩ được bảo vệ tại
HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 26 tháng 02 năm 2009
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc
- -oOo -
Tp HCM, ngày tháng năm 2008
NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ và tên học viên: Huỳnh Hữu Việt … Phái: Nam………
Ngày, tháng, năm sinh: 02/02/1983 Nơi sinh: Bình Định Chuyên ngành: Khoa học máy tính
MSHV: 00706156
1- TÊN ĐỀ TÀI:
NÂNG CAO HIỆU QUẢ NHẬN DẠNG MẪU TRONG DỮ LIỆU CHUỖI THỜI GIAN BẰNG CÁC CẤU TRÚC CHỈ MỤC ĐA CHIỀU 2- NHIỆM VỤ LUẬN VĂN:
3- NGÀY GIAO NHIỆM VỤ :
4- NGÀY HOÀN THÀNH NHIỆM VỤ :
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN (Ghi đầy đủ học hàm, học vị ):
PGS.TS Dương Tuấn Anh
Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua
(Họ tên và chữ ký) QUẢN LÝ CHUYÊN NGÀNH (Họ tên và chữ ký)
(Họ tên và chữ ký)
PGS.TS Dương Tuấn Anh TS Đinh Đức Anh Vũ TS Thoại Nam
Trang 4LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Ngày 30 tháng 11 năm 2008
Huỳnh Hữu Việt
Trang 5LỜI CẢM ƠN
Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến PGS.TS Dương Tuấn Anh, người Thầy đã tận tình hướng dẫn tôi trong suốt quá trình từ đại học tới cao học và tạo mọi điều kiện để tôi có thể hoàn thành luận văn này
Tôi cũng xin cảm ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất để tôi có thể tiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng thành quả của luận văn này cho Cha Mẹ Nhờ công lao dưỡng dục của Người mà chúng con mới có được thành quả như ngày hôm nay Con xin hứa sẽ tiếp tục cố gắng phấn đấu để vươn cao hơn nữa
Trang 6TÓM TẮT LUẬN VĂN
Tìm kiếm tương tự trên dữ liệu chuỗi thời gian ngày càng đóng vai trò quan trọng trong lĩnh vực khai phá dữ liệu Với sự phát triển nhanh chóng của dữ liệu chuỗi thời gian trong nhiều ứng dụng từ lĩnh vực tài chính cho đến lĩnh vực khoa học như dự báo, ra quyết định, đòi hỏi phải đề ra những giải pháp tìm kiếm những mẫu tương tự một cách hiệu quả và chính xác
Luận văn này đề nghị mô hình so trùng mẫu có quá trình lập chỉ mục được thực hiện qua 2 bước: trích xuất đặc trưng bằng phương pháp biến đổi wavelet và lưu trữ dữ liệu trên cấu trúc chỉ mục không gian
Chúng tôi sử dụng phương pháp biến đổi Haar wavelet làm phương pháp biến trích xuất đặc trưng, đề nghị sử dụng cấu trúc dữ liệu M-Tree làm cấu trúc lưu trữ cho dữ liệu sau khi thu giảm số chiều Qua thực nghiệm cho thấy, cấu trúc dữ liệu M-Tree có hiệu quả đáng kể trong việc tăng tốc quá trình tìm kiếm
Trang 7ABSTRACT
Similarity search on time-series data sets is of growing inportance in data mining With the increasing amount of time-series data in many application, from financial to scientific, such as prediction, it is important to study methods of retrieving similarity sequences efficiently and precisely
This thesis proposes model of efficient retrieval of all subsequences in the time series databases with index stage includes 2 steps: feature extraction by discrete wavelet transform and store data in spatial index structure
We use Haar transform as feature extraction method and propose M-Tree data structure for indexing feature extraction data The experiments show that M-Tree considerable improves retrieval performance
Trang 8MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT LUẬN VĂN iii
ABSTRACT iv
MỤC LỤC v
DANH MỤC HÌNH vii
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 Dữ liệu chuỗi thời gian 1
1.2 Những yêu cầu đòi hỏi phải so trùng mẫu con 3
1.2.1 Mô hình bài toán so trùng chuỗi thời gian 3
1.2.2 Phân loại bài toán so trùng mẫu 5
1.3 Mục tiêu và giới hạn của đề tài 6
1.4 Tóm lược những kết quả đạt được 7
1.5 Cấu trúc của luận văn 8
CHƯƠNG 2: NHỮNG CÔNG TRÌNH LIÊN QUAN 10
2.1 Các công trình về phương pháp đo độ tương tự 10
2.1.1 Độ đo Minkowski 11
2.1.2 Phương pháp xoắn thời gian động 12
2.1.3 Phương pháp chuỗi con chung dài nhất (longest common subsequence ) 13
2.2 Các công trình liên quan đến tìm kiếm tương tự 13
2.2.1 Các công trình sử dụng trích xuất đặc trưng hay thu giảm số chiều 14
2.2.2 Công trình trích xuất đặc trưng kết hợp đồng thời với cấu trúc chỉ mục 15
2.2.3 Các công trình thực hiện tuần tự theo 2 bước 16
2.3 Các công trình về cấu trúc lập chỉ mục (indexing) 18
2.4 Kết luận 22
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT NỀN TẢNG 23
3.1 Phương pháp biến đổi Wavelet 23
3.2 Cây R*-Tree 28
3.2.1 Các thao tác xây dựng cây R*-Tree 29
3.2.2 Tìm kiếm trên R*-Tree 35
3.3 Cây M-Tree 36
Trang 93.3.1 Các thao tác xây dựng cây M-Tree .38
3.3.2 Tìm kiếm trên cây M-Tree 40
CHƯƠNG 4: HỆ THỐNG SO TRÙNG MẪU 43
4.1 Giới thiệu 43
4.2 Kiến trúc hệ thống 44
4.2.1 Lập chỉ mục 45
4.2.2 So trùng mẫu 53
CHƯƠNG 5: THỰC NGHIỆM 55
5.1 Các tiêu chuẩn thực nghiệm 55
5.2 Đánh giá các kết quả thực nghiệm 58
5.2.1 Thực nghiệm trên có tần số thay đổi thấp 58
5.2.2 Thực nghiệm trên dữ liệu có tần số thay đổi cao 61
5.3 Kết luận 64
CHƯƠNG 6: KẾT LUẬN 65
6.1 Tổng kết 65
6.2 Những đóng góp của đề tài 65
6.3 Hướng phát triển 66
CHƯƠNG 7: TÀI LIỆU THAM KHẢO 67
PHỤ LỤC 1: BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH - VIỆT i
Trang 10DANH MỤC HÌNH
Hình 1.1 Đường biểu diễn dữ liệu chuỗi thời gian 2
Hình 1.2 Mô hình chủ yếu được sử dụng trong bài toán so trùng chuỗi thời gian 4
Hình 1.3 Minh họa so trùng mẫu con (nguồn [13]) 6
Hình 2.1 Phương pháp chuỗi con chung dài nhất (nguồn [9]) 13
Hình 2.2 Các mô hình phổ biến trong tìm kiếm tương tự cho chuỗi thời gian 14
Hình 2.3 Quá trình thu giảm số chiều dùng phương pháp DDR (nguồn[11]) 15
Hình 2.4 Phương pháp biểu diễn các đặc trưng thành các ký tự (nguồn [40]) 15
Hình 2.5 Cây TSA (nguồn [7]) 16
Hình 2.6 Cách thức tạo tập tin đánh dấu từ chuỗi ký tự (nguồn [2]) 18
Hình 2.7 Ví dụ về cấu trúc PTrie 19
Hình 2.8 Ví dụ về cây K-D-Tree với chín điểm (nguồn [2]) 20
Hình 2.9 Ví dụ về cây R-Tree với 12 điểm 21
Hình 3.1 Ba dạng wavelet (a) Haar wavelet (b) wavelet dựa trên hàm phân bố xác suất Guass (c) wavelet dạng mũ Mehico 24
Hình 3.2 Phép biến đổi wavelet rời rạc (nguồn [39]) 26
Hình 3.3 Hàm ψ(t)của phép biến đổi Meyer 26
Hình 3.4 Hàm ψ(t)của phép biến đổi Daubechies n với n=2,3,7,8 27
Hình 3.5 Lưu đồ giải thuật thêm mới vào cây R*-Tree 30
Hình 3.6 Chọn nút lá thêm một thành phần vào nút (a) Cấu trúc cây (b) Cấu trúc hình chữ nhật bao nhỏ nhất 31
Hình 3.7 Thêm một thành phần vào nút đã đẩy (a) Cấu trúc cây (b) Cấu trúc hình chữ nhật bao nhỏ nhất 32
Hình 3.8 Tách 2 nhóm thành phần, cách phân chia trong hình (a) sẽ được ưu tiên hơn cách trong hình (b) 33
Hình 3.9 Các trạng thái của cây R*-Tree trong thao tác xóa thành phần trong một nút 34
Hình 3.10 Tìm kiếm vùng trên cây R*-tree 36
Hình 3.11 Cây M-Tree (a) Cấu trúc nút nội (b) Tổ chức cây M-Tree 38
Hình 3.12 Tách một nút nội trong cây M-Tree 39
Hình 3.13 Tính toán khoảng cách có thể bỏ qua nhờ tính chất bất đẳng thức tam giác của hàm tính khoảng cách 41
Hình 3.14 Tìm kiếm vùng trên cây M-Tree 42
Hình 4.1 Mô hình kiến trúc hệ thống 44
Hình 4.2 Các bước trong quá trình lập chỉ mục 45
Hình 4.3 Chuẩn hóa dữ liệu 47
Hình 4.4 Giải thuật biến đổi Haar wavelet 49
Trang 11Hình 4.5 Biến đổi Haar ở các mức độ khác nhau 50
Hình 4.6 Giải thuật thêm nút vào cây R*-Tree 51
Hình 4.7 Giải thuật cửa sổ trượt lập chỉ mục cho dữ liệu thời gian 53
Hình 4.8 Các bước trong quá trình so trùng mẫu 54
Hình 5.1 Dữ liệu chứng khoán mẫu 55
Hình 5.2 Dữ liệu năng lượng mẫu 56
Hình 5.3 Dữ liệu điện não đồ mẫu 56
Hình 5.4 Dữ liệu nhu cầu năng lượng điện của Italia 57
Hình 5.5 Kết quả thực nghiệm thời gian lập chỉ mục với tập dữ liệu chứng khoán trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 58
Hình 5.6 Kết quả thực nghiệm thời gian truy vấn với tập dữ liệu chứng khoán trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 60
Hình 5.7 Kết quả thực nghiệm thời gian lập chỉ mục với tập dữ hình 5.2 trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 60
Hình 5.8 Kết quả thực nghiệm thời gian truy vấn với tập dữ hình 5.2 trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 61
Hình 5.9 Kết quả thực nghiệm thời gian lập chỉ mục với tập dữ liệu điện não đồ trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 62
Hình 5.10 Kết quả thực nghiệm thời gian truy vấn với tập dữ liệu điện não đồ trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 62
Hình 5.11 Kết quả thực nghiệm thời gian lập chỉ mục với tập dữ liệu nhu cầu điện năng trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 63
Hình 5.12 Kết quả thực nghiệm thời gian truy vấn với tập dữ liệu điện não đồ trên 2 cấu trúc chỉ mục R*-Tree và M-Tree 63
Trang 12
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
Chương giới thiệu đề tài này sẽ trình bày yêu cầu, mục tiêu và nội dung sơ lược của đề tài Đồng thời ở đây cũng nêu lên những động cơ trong nghiên cứu và thực tiễn của đề tài này
1.1 Dữ liệu chuỗi thời gian
Chuỗi thời gian thường xuất hiện nhiều trong các nghiên cứu, bài báo Để bắt đầu các tìm hiểu, cần đưa ra định nghĩa về chuỗi thời gian:
Chuỗi thời gian (time series) là tập hợp các quan sát tuần tự theo thời gian [13]
Chuỗi thời gian là dãy các giá trị thay đổi trên các khoảng thời gian bằng nhau [27]
Chuỗi thời gian là một dãy các điểm dữ liệu được đo ở các thời điểm liên tiếp nhau, cách nhau một khoảng thời gian cố định [33] Chuỗi thời gian là loại dữ liệu rất phổ biến: giá chứng khoán hàng ngày của một công ty, mực nước được đo hàng ngày của một con sông, dữ liệu đo điện tim, số truy cập một trang web trong một giây… Theo khảo sát của Tufte (1992) [32], từ
4000 hình ngẫu nhiên trên các tờ báo xuất bản giai đoạn 1974 - 1989 thì 75% là các hình biểu diễn dữ liệu chuỗi thời gian
Chuỗi thời gian có thể được xem là một tập hợp dữ liệu hai chiều, với các
giá trị tương ứng là (T,X), trong đó T là thời điểm giá trị được xác định, X là giá trị
quan sát tương ứng Tuy nhiên, khoảng thời gian quan sát là bằng nhau nên có thể
không quan tâm đến T Lúc này chuỗi thời gian có thể xem là dữ liệu n chiều Trong luận văn này, chuỗi thời gian được nhìn dưới góc độ là dữ liệu n chiều, được
kí hiệu là X = x1x2x3 x n Hình 1.1 là biểu đồ thể hiện chuỗi thời gian đo chỉ số
Trang 13chứng khoán của công ty Google Inc.1 từ năm 2002 đến 2007 với khoảng thời gian quan sát là 1 tuần
Hình 1.1 Đường biểu diễn dữ liệu chuỗi thời gian
Theo Keogh (2001) [13], khi nghiên cứu trên chuỗi thời gian nên quan tâm đến đặc trưng mang tính thách thức của dữ liệu thời gian:
Dữ liệu rất lớn: dữ liệu điện tâm đồ trong một giờ có thể lên đến 1
Gigabyte, dữ liệu log các truy cập trên một website khoảng 5 Gigabyte/1 tuần, dữ liệu thu thập trên tàu con thoi trong không gian lên đến 158 Gigabyte
Phụ thuộc nhiều vào cách đánh giá độ tương tự: định nghĩa độ tương tự phụ
thuộc vào người dùng, tập dữ liệu, miền bài toán…
Dữ liệu thường không đồng nhất: định dạng của các loại dữ liệu khác nhau,
tần số lấy mẫu khác nhau, bị nhiễu, thiếu một vài giá trị, dữ liệu không sạch…
Trang 14
1.2 Những yêu cầu đòi hỏi phải so trùng mẫu con
Bài toán so trùng mẫu trong dữ liệu chuỗi thời gian là tập trung vào việc thiết kế một phương pháp tìm kiếm nhanh và hiệu quả để tìm trong cơ sở dữ liệu
chuỗi thời gian (time series) những mẫu con trùng hoặc xấp xỉ với mẫu yêu cầu
Bài toán so trùng mẫu là một bài toán rất cơ bản trong lĩnh vực nghiên cứu về dữ liệu chuỗi thời gian Đặc biệt, nó rất quan trọng đối với các dữ liệu chuỗi thời gian
có tính chất lịch sử hay các dữ liệu không gian - thời gian (spatio-temporal data)
Một số dạng yêu cầu truy vấn mà ta thường gặp [13]:
Lĩnh vực tài chính, thương mại như giá cả thị trường chứng khoán, số lượng sản phẩm bán được…
Tìm trong quá khứ, những giai đoạn mà số lượng sản phẩm bán được như tháng vừa rồi
Tìm những sản phẩm có chu kỳ bán hàng giống nhau
Tìm đoạn nhạc bản quyền trong một bài hát
Về lĩnh vực khoa học như dữ liệu thu được của các bộ cảm biến về thời tiết, môi trường, địa lý…
Tìm những tháng trong quá khứ mà lượng mưa giống như tháng vừa rồi
Tìm những năm khô hạn, mực nước các sông ở mức thấp
Các lĩnh vực khác dữ liệu không phải là thời gian Sau đó, từ dữ liệu này ta chuyển về dạng dữ liệu chuỗi thời gian Như bài toán nhận dạng chữ viết hay các bài toán trong lĩnh vực xử lý ảnh được chuyển thành bài toán dữ liệu hướng chuỗi thời gian
1.2.1 Mô hình bài toán so trùng chuỗi thời gian
Bài toán so trùng mẫu trong dữ liệu chuỗi thời gian là tập trung vào việc thiết kế một phương pháp tìm kiếm nhanh để tìm trong cơ sở dữ liệu chuỗi thời gian những mẫu con trùng hoặc xấp xỉ với mẫu yêu cầu Trong hầu hết các nghiên cứu về bài toán so trùng trên chuỗi thời gian, mô hình chủ yếu được dùng dựa trên
Trang 15mô hình cơ bản trong truy hồi thông tin (information retrieval) Hình 1.2 mô tả mô
hình chủ yếu được sử dụng trong bài toán so trùng chuỗi thời gian
Lập chỉ mục: mục đích của giai đoạn này là tổ chức lưu trữ chuỗi thời gian giúp cho quá trình tìm kiếm có thể thực hiện một cách nhanh chóng, hiệu quả Việc lập chỉ mục có thể thực hiện bằng 2 cách khác nhau: trích xuất đặc trưng của chuỗi thời gian ban đầu và tổ chức lưu trữ trên các cấu trúc dữ liệu truy xuất nhanh hoặc kết hợp cả 2 cách Trích xuất đặc trưng của chuỗi thời gian nhằm tránh việc phải xử lý trên chuỗi thời gian ban đầu – thường có kích thước rất lớn Các phương pháp trích xuất đặc trưng được dùng phổ
biến trong các xử lý ảnh có thể áp dụng cho chuỗi thời gian: phép biến đổi
Fourier rời rạc (Discrete Fourier Transform - DFT), phép biến đổi Wavelet rời rạc (Discrete Wavelet Transform - DWT), phân rã giá trị riêng (Singular Value Decomposition – SVD)… Ngoài ra các phương pháp biến đổi tuyến
tính cũng được dùng trong quá trình trích xuất đặc trưng - giảm độ lớn của
chuỗi thời gian: xấp xỉ tuyến tính từng đoạn (Piecewise Linear
Approximation - PLA), xấp xỉ hằng số từng đoạn thích nghi (Adaptive Piecewise Constant Approximation - APCA ), xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate approXimation - SAX)… Các cấu trúc dữ liệu thường
được dùng trong lập chỉ mục cho chuỗi thời gian như R-Tree, R*-Tree, Tree, M-Tree…
Trang 16 So trùng mẫu: dựa vào chỉ mục đã lập trước đó, quá trình truy vấn sẽ tìm kiếm các chuỗi thời gian thỏa mãn chuỗi truy vấn Tốc độ của quá trình so trùng tùy thuộc vào cách thức tổ chức lưu trữ trong chỉ mục Ngoài ra, độ đo tương tự cũng là một yếu tố ảnh hưởng đến hiệu quả trong quá trình so trùng mẫu
1.2.2 Phân loại bài toán so trùng mẫu
Bài toán so trùng mẫu có nhiều dạng khác nhau, tuy nhiên có thể chia làm hai loại cơ bản dựa trên chiều dài tương quan giữa chuỗi truy vấn và chuỗi so trùng [13]
So trùng toàn bộ (whole matching) là loại so trùng chiều dài của dữ liệu truy
vấn và chiều dài dữ liệu tham khảo bằng nhau và xem xét 2 đường biểu diễn
dữ liệu có tương tự nhau không theo định nghĩa về độ tương tự cho trước Bài toán này ta thường được dùng trong việc gom cụm, hay phân loại dữ
liệu thời gian Ví dụ cho loại so trùng này là “Tìm mức nước ở 2 sông có
thay đổi giống nhau trong 1 năm?”
So trùng mẫu con (subsequence matching) là loại so trùng chiều dài của dữ
liệu truy vấn ngắn hơn rất nhiều so với chiều dài của dữ liệu tham khảo Mục đích là tìm những đoạn trong dữ liệu tham khảo tương tự với dữ liệu truy vấn Một số ứng dụng của bài toàn này là tìm những mẫu dữ liệu quan
trọng hay những thay đổi bất thường trong dữ liệu ban đầu Ví dụ: “Tìm các
tháng mà giá chứng khoán của công ty có sự thay đổi giống với tháng hiện tại?”, hay “những thời điểm nào mà giá chứng khoán thay đổi theo dạng hình răng cưa”…
Bài toán so trùng mẫu con là bài toán rất căn bản của lĩnh vực nghiên cứu về
dữ liệu chuỗi thời gian Từ bài toán so trùng mẫu con trên dữ liệu chuỗi thời gian thì ta có thể mở rộng thành so trùng toàn bộ Ngoài ra, có nhiều bài toán khác cũng
sử dụng bài toán so trùng trùng mẫu con Ví dụ: bài toán gom cụm (clustering), phân loại (classification), tìm quy luật của dữ liệu (rule discovery), phát hiện điểm bất thường (novelty detection), dự báo dữ liệu trong tương lai (prediction)…
Trang 171.3 Mục tiêu và giới hạn của đề tài
Hình 1.3 Minh họa so trùng mẫu con (nguồn [13])
Mục tiêu chính của luận văn là so trùng mẫu con trên dữ liệu chuỗi thời
gian Khi đó, từ dữ liệu ban đầu là một chuỗi các số thực, mỗi số thực thể hiện giá trị tại một thời điểm Với dữ liệu đó, ta cho phép người dùng đặc tả một mẫu dữ liệu truy vấn (mẫu này thường rất nhỏ so với dữ liệu ban đầu) Khi đó, chương trình sẽ tìm trong dữ liệu đầu những mẫu con nào tương tự với mẫu truy vấn Các
mẫu con tương tự với mẫu truy vấn về hình dạng và độ chênh lệch là ít nhất.(Hình 1.3)
Bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian cũng chính là bài toán tìm kiếm Tuy nhiên thông thường kích thước dữ liệu để tìm kiếm là rất lớn
Vì vậy, những ứng dụng này đòi hỏi phải sử dụng các phương pháp lập chỉ mục
Phương pháp lập chỉ mục là phương pháp nhằm nâng cao tốc độ tìm kiếm
Phương pháp lập chỉ mục có thể là giảm số chiều để giảm kích thước dữ liệu hoặc
có thể sử dụng những cấu trúc biểu diễn dữ liệu nhằm nâng cao tốc độ tìm kiếm
Bài toán so trùng mẫu con thì có nhiều khía cạnh khác nhau để nghiên cứu
Ví dụ như phải đưa ra cách tính mức độ tương tự một cách tổng quát phù hợp cho nhiều dữ liệu, hiện thực các giải thuật mà không cần tham số truyền vào, đưa ra giải pháp để truy vấn một cách linh hoạt, phải giải quyết vấn đề kích thước các mẫu
không bằng nhau… Tuy nhiên, luận văn này giới hạn nghiên cứu ở những khía
cạnh sau:
Dữ liệu ban đầu
Chuỗi con tương tự nhấtMẫu truy vấn cần tìm
Trang 18 Dùng phép biến đổi Wavelet rời rạc trong giai đoạn trích xuất đặc trưng
Đề nghị sử dụng 2 cấu trúc dữ liệu trong việc lập chỉ mục R*-Tree, M-Tree… kết hợp với trích xuất đặc trưng giúp tăng hiệu quả so trùng mẫu
Hiện thực chương trình hỗ trợ người dùng so trùng mẫu thân thiện với người dùng
1.4 Tóm lược những kết quả đạt được
Với những yêu cầu của đề tài, sau thời gian nghiên cứu và hiện thực, tác giả
đã xây dựng hệ thống so trùng chuỗi con trên dữ liệu chuỗi thời gian Hệ thống này
có 2 thành phần chính Thành phần thứ nhất cho phép người dùng đưa dữ liệu chuỗi thời gian ban đầu vào hệ thống Sau đó hệ thống sẽ chuẩn hóa dữ liệu, thu giảm số chiều và lập chỉ mục cho dữ liệu chuỗi thời gian này Thành phần thứ hai
có nhiệm vụ nhận chuỗi con truy vấn và so trùng để tìm chuỗi con nào trong chuỗi
dữ liệu ban đầu phù hợp nhất
Trong thành phần thứ nhất, sau khi tìm hiểu về các cách mã hóa và lập chỉ
mục, tác giả đề nghị sử dụng phương pháp thu giảm số chiều dùng biến đổi
wavelet Phương pháp biến đổi wavelet đã được chứng minh là hiệu quả trong việc
thu giảm số chiều của chuỗi thời gian qua một số công trình của các tác giả Chan,
Chỉ mục (R*-Tree và M-Tree)
Chuỗi thời gian
Lập chỉ mục
So trùng mẫu
Trang 19K (1999) [5], Popivanov (2002) [26], Wu Y (2000) [39] Việc thu giảm số chiều của dữ liệu thời gian chỉ giúp nâng cao hiệu quả lập chỉ mục, làm giảm kích thước
dữ liệu ban đầu rất lớn Tuy nhiên, trong bài toán so trung mẫu, yếu tố về tốc độ truy vấn chuỗi con cũng được xem xét Thông thường để nâng cao hiệu quả truy vấn người ta thường tổ chức dữ liệu thành các cấu trúc dữ liệu (thông thường là cấu trúc cây) tìm kiếm nhanh Mức độ hiểu quả của các cấu trúc dữ liệu sẽ phụ thuộc vào loại dữ liệu Trong các nghiên cứu dữ liệu chuỗi thời gian, người ta thường dùng cấu trúc dữ liệu được dùng nhiều trong dữ liệu không gian là cây R-Tree (và các biến thể của nó: R+-Tree, R*-Tree… ) Tuy nhiên, trong hầu hết các công trình
sử dụng cấu trúc này như là thành phần bổ trợ Trong luận văn này tác giả đề nghị
sử dụng cấu trúc dữ liệu được dùng cho dữ liệu không gian M-Tree vào cho dữ liệu
thời gian để nâng cao hiệu quả tìm kiếm
Như vậy, với hệ thống đã hiện thực mà tác giả sẽ trình bày chi tiết ở những chương sau sẽ đã đáp ứng những yêu cầu và nhiệm vụ của đề tài
1.5 Cấu trúc của luận văn
Tổ chức của phần còn lại của luận văn theo cấu trúc sau đây:
Chương II trình bày tổng quan về các công trình liên quan Những công trình này nhằm cải tiến quá trình tìm kiếm tương tự và các công trình nghiên cứu này có thể chia làm 3 loại sau: các công trình nghiên cứu nhằm đưa ra cách đánh giá về độ tương tự, các công trình mã hóa dữ liệu, các công trình về xây dựng các cấu trúc dữ liệu hỗ trợ lập chỉ mục
Chương III trình bày các lý thuyết được sử dụng trong luận văn Trong phần này tác giả sẽ trình bày phương pháp biển đổi wavelet và 2 cấu trúc dữ liệu dùng
làm chỉ mục dữ liệu không gian đa chiều: R * -Tree và M-Tree
Chương IV trình bày những vấn đề đặt ra khi so trùng mẫu con Trong chương này sẽ phân tích những vấn đề chính mà hệ thống cần phải giải quyết Các nội dung được trình bày bao gồm cách thức lưu trữ dữ liệu, truy vấn chuỗi con dựa trên các cấu trúc chỉ mục không gian
Trang 20Chương V trình bày một số kết quả thực nghiệm và nhận xét
Chương VI là một số kết luận sau khi thực hiện đề tài
Trang 21CHƯƠNG 2: NHỮNG CÔNG TRÌNH LIÊN QUAN
Bài toán so trùng dữ liệu chuỗi thời gian được đề cập từ lâu Do đó có nhiều công trình nghiên cứu để giải quyết bài toán so trùng dữ liệu chuỗi thời gian và các công trình nghiên cứu này có thể chia làm 3 loại sau:
Các công trình nghiên cứu nhằm đưa ra cách đánh giá về độ tương tự Cho đến hiện tại thì có nhiều cách đánh giá được đề nghị Tùy theo từng loại ứng dụng khác nhau, từng mục đích khác nhau mà ta sẽ dùng cách đánh giá khác nhau
Cách công trình mã hóa dữ liệu Do dữ liệu chuỗi thời gian thường rất lớn
Vì vậy nhiều phương pháp mã hóa dữ liệu được đề nghị nhằm thu giảm kích thước
dữ liệu để nâng cao tốc độ tìm kiếm Ngoài ra, các phương pháp mã hóa dữ liệu còn nhằm mục đích chuẩn hóa dữ liệu Trong các phương pháp mã hóa dữ liệu thì
có 2 loại phương pháp chính đó là phương pháp thu giảm số chiều (dimensional
reduction) và phương pháp rời rạc hóa (discretization)
Các công trình về xây dựng các cấu trúc dữ liệu hỗ trợ lập chỉ mục Với phương pháp mã hóa thu giảm dữ liệu thì tốc độ truy vấn vẫn chưa hiệu quả Vì vậy, nhiều công trình đã đề nghị những cấu trúc dữ liệu nhằm hỗ trợ cho quá trình tìm kiếm trên dữ liệu mã hóa Vấn đề lập chỉ mục là vấn đề rất quan trọng trong bài toán dữ liệu chuỗi thời gian cũng như bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian
2.1 Các công trình về phương pháp đo độ tương tự
Vấn đề quan trọng nhất của bài toán tìm kiếm tương tự là cách tính khoảng
cách của 2 đối tượng O 1 , O 2 Trong trường hợp 2 đối tượng này giống nhau thì khoảng cách này sẽ là 0 và ngược lại càng khác nhau thì khoảng cách càng lớn Để
có thể tính toán và so sánh thì cách khoảng cách này được biểu diễn thành các số thực
Tuy nhiên, độ đo khoảng cách giữa cách đối tượng nên thỏa các tính chất sau:
Trang 221 D(x,y) = 0 nếu và chỉ nếu x =y
số chiều Gọi Xf, Yf là biểu diễn của X,Y sau trích xuất đặc trưng hay thu giảm số
chiều, độ đo khoảng cách D phải đảm bảo: D(X f , Y f )≥D(X, Y)
Trong phần này, độ đo tương tự được định nghĩa trên 2 chuỗi có chiều dài
bằng nhau X,Y và được ký hiệu Sim(X,Y) [9] Sau đây là những phương pháp đánh
giá mức độ tương tự đã được đề nghị:
2.1.1 Độ đo Minkowski
Hầu hết các công trình đều dựa trên độ đo khoảng cách này Khoảng cách Minkowski được định nghĩa như sau:
p n
i
p i
i y x Y)
Tuy p có thể có nhiều giá trị khác nhau nhưng trong các nghiên cứu p
thường nhận các giá trị 1 (khoảng cách Manhattan), 2 (Euclide), ∞(Max) Giá trị
Trang 23 Không hiệu quả với dữ liệu được đo ở nhiều thang đo khác nhau
Tác giả Rafiei, D & Mendelzon, A O (1998) [30] đề nghị áp dụng
phương pháp trung bình di chuyển (moving average) để làm trơn các
đường biểu diễn dữ liệu chuỗi thời gian nghĩa là = ∑ /( 2 + 1 )
k x
k j k j
2.1.2 Phương pháp xoắn thời gian động
Phương pháp này gọi là xoắn thời gian động (Dynamic Time Wraping – DTW) tương tự cách tính khoảng cách Minkowski nhưng thay vì so trùng 2 đường
biểu diễn dữ liệu bằng cách tính khoảng cách từng cặp điểm 1- 1 (điểm thứ i của chuỗi thứ I so với điểm thứ i của chuỗi thứ II) thì một điểm có thể ánh xạ với nhiều
điểm và ánh xạ này không thẳng hàng Chi tiết về cách tính DTW có thể tham khảo trong [4]
Một số ưu điểm và nhược điểm của phương pháp này
Ưu điểm
Phương pháp DWT cho phép nhận dạng những mẫu có hình dạng giống
nhau nhưng chiều dài hình dạng về mặt thời gian có thể khác nhau
Trang 24 Phương pháp DWT thì hiệu quả hơn rất nhiều so với phương pháp tính khoảng cách theo Euclide Đặt biệt trong các bài toán phân loại
(classfication), gom cụm (clustering) hay trong các các ứng dụng nhận
dạng giọng nói
Nhược điểm
Nhược điểm lớn nhất của DTW là thời gian chạy rất lâu, độ phức tạp là
O(wn), trong đó w là chiều dài cửa sổ xoắn, n là chiều dài chuỗi
2.1.3 Phương pháp chuỗi con chung dài nhất (longest common subsequence )
Độ tương tự Sim(X, Y) được tính bằng chiều dài của chuỗi con chung dài
nhất (Longest Common Subsequence- LCS) Giải thuật chi tiết cho việc tìm LCS có
thể được tìm thấy trong [1],[9] Hình 2.1 diễn tả ý tưởng của phương pháp chuỗi
con chung dài nhất
Hình 2.1 Phương pháp chuỗi con chung dài nhất (nguồn [9])
Một số ưu điểm và nhược điểm của phương pháp này
• Ưu điểm: cho phép bỏ qua những điểm bất thường khi so sánh
• Nhược điểm: phải chuẩn hóa dữ liệu ban đầu thông qua các phép biến đổi như
tịnh tiến (shifting) đường căn bản hay phép co giãn biên độ (scaling) trước khi
thực hiện giải thuật
2.2 Các công trình liên quan đến tìm kiếm tương tự
Như đã trình bày trong phần 1.2.1, tìm kiếm tương tự cho chuỗi thời gian
thường bao gồm 2 phần: trích xuất đặc trưng hoặc thu giảm số chiều và tổ chức lưu
trữ trên cấu trúc dữ liệu Hình 2.2 mô tả 3 hướng tiếp cận tìm kiếm tương tự: trích
Đoạn này có thể bỏ qua khi so trùng
Trang 25xuất đặc trưng hay thu giảm số chiều; trích xuất đặc trưng hay thu giảm số chiều
kết hợp đồng thời với cấu trúc dữ liệu lưu trữ; bao gồm 2 bước: sử dụng kết quả
trích xuất đặc trưng hay thu giảm số chiều để tổ chức lưu trữ trên cấu trúc dữ liệu
Hình 2.2 Các mô hình phổ biến trong tìm kiếm tương tự cho chuỗi thời gian
2.2.1 Các công trình sử dụng trích xuất đặc trưng hay thu giảm số chiều
Các công trình theo hướng này chủ yếu tập trung vào hướng tuyến tính hóa chuỗi thời gian nhằm làm giảm số chiều dữ liệu [11], [40]
• Tác giả Jiyuan (2005) [11], et al đã dùng phương pháp thu giảm số chiều dựa
trên dạng lưới dữ liệu (grid-based Datawise Dimensionality Reduction -
DDR) Ý tưởng chính của phương pháp này là dựa trên khái niệm lưới Chuỗi
thời gian trong không gian 2 chiều được chia thành lưới với các đường chia dọc là các thời điểm đo đạc dữ liệu, các đường chia ngang phụ thuộc vào cách lượng tử hóa dữ liệu (quá trình chuẩn hóa dữ liệu nằm trong một khoảng giá
trị cụ thể) Hình 2.3 minh họa các thức thu giảm số chiều bằng phương pháp
DDR Dữ liệu chuỗi thời gian biễu diễn bằng đường nét đứt, các đường đậm tương ứng với mỗi đoạn là kết quả thu giảm số chiều
Trang 26Hình 2.3 Quá trình thu giảm số chiều dùng phương pháp DDR (nguồn[11])
• Tác giả Xia (1997) [40], dùng phương pháp biểu diễn bằng các đặc trưng thành các ký tự và được sắp xếp dựa trên cây phân cấp Mục đích chính của phương pháp này là dữ liệu sau khi mã hóa thành các đoạn thẳng thì dựa trên
hệ số góc của những đoạn thẳng này ta sẽ mã hóa thành các đặc trưng Chuỗi
dữ liệu theo thời gian đã được phân đoạn, ứng với mỗi đoạn i ta có một độ
dốc tương ứng slope i =αi Dựa vào mức độ chi tiết của hình dạng l và cây phân cấp định nghĩa hình dạng ta sẽ xác định được kí tự tương ứng với đoạn i
Hình 2.4 mô tả Phương pháp biểu diễn bằng các đặc trưng thành các ký tự
Dựa vào cây phân cấp và bảng định nghĩa hình dạng xác định được chuỗi mã
hóa là u 32 d 21 u 21
Hình 2.4 Phương pháp biểu diễn các đặc trưng thành các ký tự (nguồn [40])
2.2.2 Công trình trích xuất đặc trưng kết hợp đồng thời với cấu trúc chỉ mục
Các công trình theo hướng này thường không nhiều Tác giả Cyrus S., et al (2000) [7] sử dụng phương pháp biến đổi wavelet rời rạc nhằm trích xuất đặc trưng của chuỗi thời gian kết hợp đồng thời với cấu trúc cây nhị phân để lưu trữ đặc
35 0
-17 0
17 0
Trang 27trưng (được gọi là cây TSA - Trend and Supprise Abstractions Tree) Phương pháp
được dùng cho bài toán truy vấn xu hướng và các bất thường trong chuỗi dữ liệu
thời gian Hình 2.5 minh họa một cây TSA, trong đó X là chuỗi thời gian ban đầu,
sau thao tác phân tách sẽ cho ra 2 chuỗi con AX 1 và DX 1 có chiều dài bằng ½ chuỗi
X ban đầu Các chuỗi AX1 và DX1 là kết quả của phép biến đổi wavelet trên chuỗi
X Tương tự, các nút con trong cây AX k+1, DX k+1 sẽ là kết quả của phép biến đổi
wavelet trên chuỗi AXk Các chuỗi con AX k, DX k tương ứng thể hiện xu hướng và
bất thường trong một khoảng k-thời điểm tương ứng
Hình 2.5 Cây TSA (nguồn [7])
2.2.3 Các công trình thực hiện tuần tự theo 2 bước
Hầu hết các công trình lập chỉ mục cho chuỗi thời gian đều thực hiện qua 2 bước: trích xuất đặc trưng hay thu giảm số chiều, sau đó tổ chức lưu trữ trên các cấu trúc dữ liệu phục vụ cho việc truy vấn nhanh và hiệu quả
Nhiều phương pháp trích xuất đặc trưng hay thu giảm số chiều được đưa ra:
• Phép biến đổi Fourier rời rạc (DFT) [38], [33], [27], [31], [8], [19] Phương
pháp biến đổi DFT dùng rất phổ biến trong xử lý ảnh, xử lý tính hiệu số… Phương pháp này biến đổi dữ liệu ban đầu thành các đường cơ bản sin và cosin
t w A
t C
1
))2sin(
)2cos(
()
Trong đó C(t) là chuỗi dữ liệu ban đầu, A k , B k là các hệ số biến đổi được
Trang 28• Phép biến đổi Wavelet rời rạc (DWT) [8], [5], [27], [42], [19] Phương pháp
DWT cũng giống phương pháp DFT, tuy nhiên đường cơ bản của nó không
phải là đường lượng giác sin hay cosin mà là đường Haar, Daubechies,
Coiflet, Symmlet… Chi tiết về các phép biến đổi DWT được trình bày trong
phần 3.1 Theo Chan, K., Fu, A W (1999) [5] phương pháp biến đổi DWT
với đường cơ bản Haar hiệu quả với chuỗi dữ liệu thời gian, nhưng theo
Popivanov I và Miller R J (2002) [26] tùy vào loại dữ liệu mà phép biến đổi
DWT với đường cơ bản Haar hay Daubechies là hiệu quả Phương pháp DWT
được đánh giá là tốt hơn DFT về mặt tốc độ Giải thuật biến đổi DWT có độ
phức tạp tuyến tính O(n) trong khi đó giải thuật biến đổi DFT là O(nlgn) Một
đặc điểm của phương pháp biến đổi DWT là giải thuật chỉ thực hiện hiệu quả với chiều dài chuỗi dữ liệu ban đầu của nó phải là một số lũy thừa 2
• Phân rã giá trị riêng (SVD) [18] Phương pháp SVD cũng giống như phương
pháp DFT, DWT Tuy nhiên, đường cơ bản thì phụ thuộc vào dữ liệu Những đường cơ bản này gọi là đường giá trị riêng Độ phức tạp của phương pháp này là rất lớn do tính toán với ma trận lớn Vì vậy phương pháp SVD không được sử dụng rộng rãi
• Các phương pháp biến đổi tuyến tính:
Xấp xỉ gộp từng đoạn (PAA) [41], [22]: phương pháp này rất đơn giản, tuần tự xấp xỉ k giá trị liền kề nhau thành cùng một giá trị bằng trung bình cộng của k điểm đó Quá trình cứ tiếp tục như vậy từ trái sang phải
Kết quả cuối cùng là đường thẳng có dạng bậc thang
Xấp xỉ hằng số từng đoạn thích nghi (APCA) [14]: phương pháp APCA
giống như phương pháp PAA là xấp xỉ dữ liệu ban đầu thành những đoạn thẳng nằm ngang Tuy nhiên, nó khác với PAA là các đoạn này có kích thước bằng nhau, còn APCA thì kích thước của các đoạn nằm ngang là khác nhau
Xấp xỉ tuyến tính từng đoạn (PLA) [29], [28], [19], [13]: phương pháp
này ta sẽ biểu diễn dữ liệu ban đầu bằng chuỗi các đoạn thẳng tuyến tính Các đoạn thẳng này có thể rời nhau hoặc liên tục Việc tìm các chuỗi
Trang 29đoạn thẳng này có thể thực hiện trong thời gian tuyến tính Tuy nhiên chưa có phép lập chỉ mục hiệu quả cho cách biểu diễn này, chỉ có thể tìm kiếm tuần tự trên kiểu biểu diễn tuyến tính trên
Phương pháp xấp xỉ gộp ký hiệu hóa (SAX) [24], [16], [25], [17], [21]:
chuỗi dữ liệu ban đầu được chia thành từng đoạn Sau đó, dựa trên giá trị trung bình cộng của từng đoạn, ta sẽ biểu diễn đặc trưng của đoạn thành các ký tự Khi đó, chuỗi dữ liệu ban đầu sẽ được mã hóa rời rạc thành một chuỗi các ký tự và bài toán của chúng ta cũng chuyển sang bài toán
so trùng chuỗi ký tự
2.3 Các công trình về cấu trúc lập chỉ mục (indexing)
Trong công trình của mình, tác giả Andre-Jonsson (2002) [2] đã sử dụng ba cấu trúc chỉ mục truyền thống được sử dụng để lập chỉ mục cho dữ liệu số và văn
bản: tập tin đánh dấu (signature files), cấu trúc B-Tree, cấu trúc P-Trie
Tập tin đánh dấu: là một cấu trúc chỉ mục được dùng để lập chỉ mục cho các
văn bản có kích thước lớn Để áp dụng cấu trúc chỉ mục này, chuỗi thời gian được nhóm thành các nhóm giá trị, mỗi nhóm như vậy sẽ được được xem như một từ trong văn bản Sau khi biến đổi, chuỗi các ký tự sẽ được lập chỉ
mục thông qua một hàm băm Hình 2.6 mô tả cách thức tạo tập tin đánh dấu
từ chuỗi ký tự
Hình 2.6 Cách thức tạo tập tin đánh dấu từ chuỗi ký tự (nguồn [2])
Cấu trúc B-Tree: là cấu trúc chỉ mục được đánh giá là hiệu quả với dữ liệu
lưu trữ trên bộ nhớ thức cấp Cấu trúc chỉ mục này được nghiên cứu kĩ và
Trang 30cho chuỗi thời gian được đánh giá là thích nghi tốt với sự thay đổi kích thước dữ liệu
Cấu trúc PTrie: là một cấu trúc dạng cây không cân bằng, mỗi nút là một số
hoặc một ký tự Nút là sẽ là một từ hay một chuỗi kí số muốn lưu trữ Hình
2.7 mô tả một ví dụ cây PTrie với các từ : HAS, HAVE, HE, HER, HIS Kết
quả thực nghiệm thể hiện PTrie phù hợp với chuỗi thời gian với kích thước
lớn, được lưu trữ trên bộ nhớ sơ cấp, khi chuỗi thời gian quá lớn phải lưu trữ trên bộ nhớ thứ cấp thì cấu trúc này không còn phù hợp
Trong các công trình khác, các tác giả chủ yếu sử dụng các cấu trúc chỉ mục
nhiều chiều được phát triển cho các cơ sở dữ liệu không gian (spatial databases) Các cấu trúc chỉ mục đa chiều (multi-dimensional index structure) được đề nghị sử
dụng lập chỉ mục chuỗi dữ liệu thời gian và các công trình sử dụng
Hình 2.7 Ví dụ về cấu trúc PTrie
• K-D-Tree/Quad Tree [2]: K-D-Tree là một dạng cây nhị phân bằng cách chia không gian d chiều thành các không gian con, mỗi không gian này được chia
nhỏ cho đến khi nào các không gian chỉ chứa một điểm duy nhất Hình 2.8
minh họa các thức xây dựng cấu trúc K-D-Tree với 9 điểm trong không gian 2 chiều Quad Tree là cấu trúc cây tương tự K-D-Tree, cách thức phân chia không gian thành các không gian con là tương tự Tuy nhiên, Quad Tree không phài là cây nhị phân, số con mỗi nút trong Quad Tree bằng 2 d, trong đó
d là số chiều của không gian điểm Các cấu trúc này được đề nghị sử dụng để
lập chỉ mục cho chuỗi thời gian, tuy nhiên hầu hết các công trình đều không sử
Trang 31dụng cấu trúc này mà sử dụng các cấu trúc hiệu quả hơn như R-Tree, R*-Tree
được trình bày tiếp theo
B-tree, R-Tree là một cây cân bằng Mỗi nút trong R-Tree có chứa từ m đến M
entry (m và M là 2 thông số trong quá trình xây dựng R-Tree) Mỗi entry chứa một hình chữ nhật bao nhỏ nhất (minimum bounding rectangles - MBR) có thể
giao nhau Mỗi nút lá của cây R-Tree chứa con trỏ tới dữ liệu thật sự Hình 2.9 thể hiện một sự phân chia 12 giá trị dữ liệu 2 chiều (1J12) thành 7 hình
chữ nhật khác nhau và biểu diễn R-Tree dựa trên kết quả phân vùng trên
R*-Tree là một cấu trúc cải tiến những nhược điểm của R-R*-Tree trong thao tác
thêm phần tử Có rất nhiều công trình so trùng mẫu chuỗi thời gian sử dụng 2 cấu trúc chỉ mục giúp cải thiện hiệu quả so trùng [1], [8], [5], [27], [20] Chi tiết về cấu trúc chỉ mục này sẽ được trình bày trong phần 3.2
Hình 2.8 Ví dụ về cây K-D-Tree với chín điểm (nguồn [2])
Trang 32Hình 2.9 Ví dụ về cây R-Tree với 12 điểm
• SR-Tree [12]: là cấu trúc chỉ mục được đề nghị bởi các tác giả Katayama N và
Satoh S (1997) [12] đưa ra Cấu trúc chỉ mục này là một cải tiến của cấu trúc
chỉ mục R*-Tree Cấu trúc SR-Tree sẽ dùng hình chữ nhật/ hình cầu bao nhỏ
nhất thay cho hình chữ nhật bao nhỏ nhất như trong cấu trúc R*-Tree để phân
vùng các điểm dữ liệu Cấu trúc chỉ mục này được đánh giá qua thực nghiệm
là hiệu quả hơn R*-Tree khi dùng lập chỉ mục cho dữ liệu có số chiều lớn
(high-dimensional data)
• M-Tree [6]: là cấu trúc chỉ mục được đề nghị bởi các tác giả Ciaccia , et al (1997) [6] đưa ra M-Tree là một cây cân bằng với các nút lá chứa dữ liệu cần
lưu trữ Cấu trúc này được thiết kế đặc biệt phù hợp với các tập dữ liệu có sự
thay đổi Tác giả Li Q., et al [23] đã dùng cấu trúc chỉ mục M-Tree như một
cấu trúc nhằm so sánh với các cấu trúc chỉ mục khác
10 11
12
R1 R2
Trang 332.4 Kết luận
Như vậy vấn đề so trùng dữ liệu chuỗi thời gian là vấn đề được quan tâm trong những năm gần đây Đã có nhiều công trình nghiên cứu khác nhau trên các khía cạnh như cách đánh giá về độ tương tự, cách mã hóa dữ liệu để thu giảm kích thước dữ liệu hay các cách xây dựng, tổ chức cấu trúc dữ liệu để nâng cao tốc độ tìm kiếm… Tuy nhiên, trong hầu hết các công trình về so trùng chuỗi thời gian, các cấu trúc dữ liệu chỉ mục thường được dùng như là một cách lưu trữ hỗ trợ cho việc
so trùng nhanh Tuy nhiên, có thể xem xét cấu trúc đánh chỉ mục là một yếu tố trong lập chỉ mục, hiệu quả của các lưu trữ và truy xuất của chúng sẽ đóng vai trò quan trọng trong tăng hiệu quả trong bài toán so trùng mẫu
Đề tài sẽ tập trung nghiên cứu, hiện thực, so sánh, đánh giá các cấu trúc dữ
liệu như R*-Tree, SR-Tree, M-Tree, nhằm tăng hiệu quả của việc so trùng mẫu,
Qua đó đánh giá được mức độ hiệu quả của từng cấu trúc dữ liệu trong bài toán so trùng mẫu chuỗi dữ liệu thời gian Chương tiếp theo sẽ trình bày chi tiết hơn các cấu trúc dữ liệu nêu trên
Trang 34
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT NỀN TẢNG
Trong đề tài này để giải quyết bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian thì một số vấn đề lý thuyết của các lĩnh vực khác sẽ được sử dụng Do đó, chương này sẽ trình bày những điểm cơ bản của các lý thuyết đó Phần được giới thiệu trước tiên là phương pháp biến đổi wavelet rời rạc bao gồm giới thiệu wavelet
là gì, phương pháp biến đổi wavelet, một số tính chất của biến đổi wavelet, lý do vì sao tác giả chọn wavelet làm phương pháp thu giảm số chiều trong bài toán chuỗi
so trùng chuỗi con trên chuỗi dữ liều thời gian
Phần còn lại của chương này trình bày sẽ trình bày 2 cấu trúc dữ liệu dùng
để lập chỉ mục dữ liệu không gian: R*-Tree và M-Tree
3.1 Phương pháp biến đổi Wavelet
Wavelet là gì?
Wavelet là một sóng nhỏ có giá trị trong một khoảng thời gian giới hạn (giá
trị tại các điểm khác đều là 0) Ngược với khái niệm "sóng lớn" (big wave) như
hàm sin có giá trị tăng giảm tuần hoàn trong khoảng từ (−∞ ∞, ) Khái niệm wavelet
dự trên một hàm giá trị thực ψ định nghĩa trên miền giá trị thực (.) (−∞ ∞, ) thỏa mãn
Trang 35Hình 3.1 Ba dạng wavelet (a) Haar wavelet (b) wavelet dựa trên hàm phân bố xác suất Guass
(c) wavelet dạng mũ Mehico
Hình 3.1 thể hiện 3 dạng wavelet Dạng wavelet thứ nhất được gọi là
wavelet dạng Haar, đặt theo tên của nhà toán học Haar, người phát triển wavelet như là một công cụ phân tích trong một bài báo năm 1910 Hàm thể hiện cho Haar wavelet được định nghĩa như sau:
= trong hình vẽ hàm wavelet với σ = 0.44311
Dạng wavelet thứ 3 được gọi là wavelet mũ Mehico cũng là một dạng wavelet được dẫn xuất từ hàm phân bố xác suất Gauss, nhưng hàm thể hiện được định nghĩa như sau:
Trang 362 2
2 /2 2 ( )
u e u
σ
σψ
π σ
−
−
= trong hình vẽ hàm wavelet với σ = 0.63628
Biến đổi wavelet là gì
Phân tích wavelet hay biến đổi wavelet chuyển đổi sang dạng tín hiệu với các mẫu có độ dài giới hạn hoặc sóng có các dao động bị phân rã nhanh (được biết
đến như sóng chính của wavelet ) Có hai loại biến đổi wavelet: biến đổi wavelet
rời rạc (DWT) và biến đổi wavelet liên tục (Continuous Wavelet Transform – CWT) Điểm khác nhau cơ bản giữa hai loại biến đổi trên chính là: biến đổi liên tục
thực hiện trên mọi giá trị dịch chuyển và vô hướng trong khi đó biến đổi rời rạc chỉ thực hiện trên một tập hợp con giá trị vô hướng và dịch chuyển mà thôi Trong
phạm vi của đề tài tác giả chỉ quan tâm đến phương pháp biến đổi wavelet rời rạc
(DWT)
Quá trình biến đổi wavelet rời rạc là quá trình phân rã chuỗi thời gian ban
đầu thành các chuỗi cơ bản hay còn gọi là các hàm cơ bản Trong biến đổi Fourier
rời rạc (DFT) thì các hàm cơ bản là các hàm dạng sin, còn trong biến đổi wavelet
rời rạc các hàm cơ bản được định nghĩa đệ qui như sau:
) 2 ( 2 )
, ,
k t a
t
k j k j
−
=∑ ψ hoặc ( ) , , ( )
,
t a
t
k j
ψ
∑
=
Tập hợp các hệ số a j,k sẽ đặc trưng cho chuỗi thời gian ban đầu và được gọi
là biến đổi wavelet rời rạc Hình 3.2 minh họa cho một biến đổi wavelet rời rạc sử
dụng hàm cơ bản Haar
Trang 37Hình 3.2 Phép biến đổi wavelet rời rạc (nguồn [39])
Tùy vào hàm cơ bản ban đầu ψ(t) mà người ta chia các phép biến đổi
wavelet rời rạc thành các họ khác nhau Một số họ biến đổi wavelet rời rạc phổ
biến:
Biến đổi Wavelet Haar: là biến đổi đơn giản nhất trong các phép biến đổi
Wavelet Hàm ψ(t)có hình dạng như Hình 3.1
Biến đổi Wavelet Meyer: biến đổi này có khả năng phân tích tín hiệu tốt
hơn nhiều so với biến đổi Haar Dạng của hàm ψ (t ) với biến đổi Meyer cho ở
Hình 3.3
Hình 3.3 Hàm ψ(t)của phép biến đổi Meyer
Biến đổi Wavelet Daubechies: là một trong những phép biến đổi phức tạp
nhất trong biến đổi Wavelet Biểu diễn một số hàm ψ (t ) trong họ biến đổi Wavelet Daubechies
Trang 38Hình 3.4 Hàm ψ(t)của phép biến đổi Daubechies n với n=2,3,7,8
Một số ứng dụng của phương pháp biến đổi wavelet
Phương pháp biến đổi wavelet được ứng trong nhiều lĩnh vực khác nhau:
Nén tín hiệu: phương pháp biến đổi wavelet được chọn là phương pháp
chính cho chuẩn nén ảnh JPEG 2000
Xử lý ảnh: khử nhiễu, nhận dạng cạnh (edge detection), trích xuất đặc trưng
ảnh
Mã hóa dữ liệu giọng nói: trong các ứng dụng di động phương pháp biến đổi
wavelet được xem như là một phương pháp mã hóa dữ liệu hiệu quả và có
độ tin cậy cao
Phân tích ảnh y khoa: các ứng dụng trong lĩnh vực này đang ngày càng
nhiều nhờ vào tính khả năng khử nhiểu và nén ảnh tốt (dữ liệu các ảnh y khoa thường rất lớn như ảnh điện tâm đồ, điện não đồ )
Với các ứng dụng rộng rãi trong nhiều lĩnh vực có dữ liệu lớn, phương pháp biến đổi wavelet hứa hẹn có nhiều ứng dụng trong bài toán liên quan đến chuỗi thời gian
Trang 39Tính chất của phép biến đổi wavelet
Phép trích xuất đặc trưng phải đảm bảo tính chất D(X f , Y f )≥D(X, Y) , trong
đó, X f , Y f là kết quả trích xuất từ X, Y Các tác giả Chan, K., Fu, A W (1999) [5]
đã chứng minh rằng phép biến đổi Haar là một phép trích xuất đặc trưng có tính chất như trên cho độ đo khoảng cách Euclide Các tác giả Popivanov I., Miller R.J (2002) [26] cũng khẳng định tính chất trên cho các phép biến đổi Daubechies
Lý do lựa chọn biến đổi wavelet là phương pháp thu giảm số chiều
Phần 2.2.1 trình bày các phương pháp thu giảm số chiều được dùng trong chuỗi thời gian Tác giả chọn phương pháp biến đổi wavelet vì các lý do sau:
Phương pháp biến đổi wavelet cho phép thu giảm số chiều dữ liệu ở nhiều
độ phân giải (số chiều thu giảm) khác nhau Tính chất này giúp việc thu giảm số chiều được tiến hành linh động tùy thuộc vào độ lớn dữ liệu, mức
độ mất mát thông tin mong muốn…
So với các phương pháp biến đổi Fourier, phương pháp biến đổi wavelet độ
phức tạp là O(n) so với O(nlgn)
3.2 Cây R*-Tree
Cấu trúc cây R*-Tree là một cấu trúc dữ liệu sử dụng trong các phương
pháp truy suất không gian (Spatial Access Methods - SAM), hỗ trợ có hiệu quả
việc đánh chỉ mục các dữ liệu điểm cũng như các dữ liệu không gian Cấu trúc cây
R*-Tree có các tính chất sau:
Một nút nội (không phải nút lá) chứa các phần tử (entry) có dạng (rectangle,
cp), trong đó cp là con trỏ đến nút con, rectangle là hình chữ nhật bao nhỏ
nhất chứa tất cả hình chữ nhật của các phần tử trong nút con
Một nút lá chứa các phần tử có dạng (O id ,rectangle ), trong đó O id chỉ đến
các mục dữ liệu cần lưu trữ chứa trong cơ sở dữ liệu hoặc tập tin, rectangle
là hình chữ nhật bao nhỏ nhất của đối tượng không gian tương ứng đó Trong một số trường hợp nút lá cũng có thể chức trực tiếp các đối tượng dữ
Trang 40liệu (dataobject,rectangle ), điều này cũng không ảnh hưởng đến cấu trúc cơ bản của cây R*-Tree
Trong cây R*-Tree có 2 thông số, M là số lượng tối đa các phần tử trong một nút, m là số lượng tối thiểu các phần tử trong nút, với điều kiện là
Nút gốc có ít nhất 2 nút con, trừ khi nó là nút lá
Mọi nút không phải là nút lá có số lượng nút con từ m đến M, trừ nút gốc
Là một cây cân bằng, nghĩa là tất cả các nút có cùng chiều cao
Hình 2.9 thể hiện một cấu trúc cây R*-Tree và minh họa các quan hệ chứa
và chồng lên nhau của các hình chữ nhật bao đóng nhỏ nhất Sau đây là một số các
định nghĩa liên quan trong quá trình xây dựng cây R*-Tree:
Diện tích chồng lên nhau (overlap area) của 2 hình chữ nhật là diện tích chung 2 hình chữ nhật tương ứng đó
Diện tích chồng lên nhau của một nút thành phần (entry) trong một nút
được định nghĩa như sau:
3.2.1 Các thao tác xây dựng cây R*-Tree
Quá trình tạo cây bao gồm các thao tác: thêm mới, xóa, sửa