- Hiện thực và thực nghiệm để so sánh hiệu quả của cấu trúc chỉ mục Skyline với R*-Tree khi tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng.. Kontaki và cộng sự đã đề xuất ra m
Trang 1KHOA KHOA HỌC MÁY TÍNH
Trang 2Cán bộ hướng dẫn khoa học: PGS.TS Dương Tuấn Anh
4 PGS TS Dương Tuấn Anh
5 TS Lê Thanh Vân
Xác nhận của Chủ tịch Hội đồng đánh giá Luận văn và Trưởng Khoa quản lý chuyên ngành sau khi Luận văn đã được sửa chữa (nếu có)
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập – Tự do – Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Trần Thị Thanh Nga
Ngày sinh: 01/05/1982
Chuyên ngành: Khoa học máy tính
MSHV: 10070489 Nơi sinh: Thái Bình
Mã số: 60.48.01
I TÊN ĐỀ TÀI: Tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng (Similarity search
in streaming time series data)
NHIỆM VỤ VÀ NỘI DUNG:
- Tìm hiểu framework của M Kontaki và cộng sự cho vấn đề tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng Vận dụng framework của M Kontaki dùng phương pháp
thu giảm số chiều xấp xỉ tuyến tính từng đoạn (PLA) thay vì biến đổi Fourier rời rạc (DFT) và dùng cấu trúc chỉ mục Skyline và R*-Tree
- Hiện thực và thực nghiệm để so sánh hiệu quả của cấu trúc chỉ mục Skyline với R*-Tree khi tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng
II NGÀY GIAO NHIỆM VỤ: 04/07/2011
III NGÀY HOÀN THÀNH NHIỆM VỤ: 18/07/2012
IV CÁN BỘ HƯỚNG DẪN: PGS TS Dương Tuấn Anh
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, những công việc đượ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 06 năm 2012
Trần Thị Thanh Nga
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 Thầy tôi, 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 học Cao học cũng như trong thời gian tôi làm Luận văn Cảm ơn Thầy đã tạo mọi điều kiện tốt nhất để em
có thể hoàn thành tốt Luận văn này
Tôi cũng xin cảm ơn những người thân trong gia đình, bạn bè đã động viên và tạo mọi điều kiện để tôi có thể tiếp tục theo đuổi việc học tập và 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ẹ tôi Nhờ công lao dưỡng dục của Người mà con mới có được thành quả như ngày hôm nay Con xin hứa sẽ tiếp tục phấn đấu để tiến xa hơn nữa trên con đường học vấn
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 là một trong những bài toán 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, ngày càng có nhiều ứng dụng đòi hỏi phải xử lý trên dữ liệu chuỗi thời gian dạng luồng
M Kontaki và cộng sự đã đề xuất ra một framework tìm kiếm tương tự trên chuỗi
thời gian dạng luồng với cấu trúc chỉ mục IDC-Index Đề tài này tập trung mở rộng
framework này với phương pháp thu giảm số chiều xấp xỉ tuyến tính từng đoạn PLA
Phương pháp thu giảm này cũng hoạt động theo kiểu gia tăng để đáp ứng yêu cầu của môi trường dữ liệu luồng Độ đo Euclid được sử dụng làm độ đo tương tự Bên cạnh đó chúng tôi cũng đề xuất sử dụng cấu trúc chỉ mục Skyline thay thế cho cấu trúc chỉ mục R*-Tree Qua rất nhiều thực nghiệm đã chứng tỏ sự hiệu quả của cấu trúc chỉ mục Skyline so với R*-Tree trong môi trường luồng
Trang 7ABSTRACT
Similarity search on streaming timeseries is one of important problems in data mining With the rapid development of timeseries in many applications from finance to scientific, there are more and more applications required process streaming timeseries
M Kontaki et al had proposed a framework for similarity search in streaming timeseries with IDC-Index This thesis focused on extending this framework with another dimensional reduction We used PLA as dimensional reduction and this dimensional reduction works in an incremental manner to satisfy the demand of streaming environment The Euclidean distance continued to be used as similarity measure Moreover, we also proposed using Skyline Index to replace for R*-Tree Experiment results have shown that the proposed index is more effective than R*-Tree in streaming environment
Trang 8MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 Dữ liệu chuỗi thời gian 1
1.2 Dữ liệu chuỗi thời gian dạng luồng 2
1.3 Truy vấn tương tự trên chuỗi thời gian dạng luồng 3
1.4 Mục tiêu và giới hạn của đề tài 5
1.5 Cấu trúc luận văn 5
2.1 Các công trình về độ đo tương tự 6
2.1.1 Độ đo Minkowski 7
2.1.2 Độ đo xoắn thời gian động (Dynamic Time Warping – DWT) 9
2.2 Các công trình liên quan đến biểu diễn chuỗi thời gian 10
2.2.1 Các phương pháp thu giảm số chiều 11
2.2.2 Các phương pháp rời rạc dữ liệu 15
2.3 Các công trình về cấu trúc chỉ mục 16
2.3.1 K-D-Tree/Quad Tree 16
2.3.2 R-Tree/R*-Tree 17
2.3.3 Cấu trúc chỉ mục Skyline 19
2.3.4 Cấu trúc xấp xỉ file xấp xỉ hóa véc tơ (VA-File) 20
2.4 Các công trình về tìm kiếm tương tự trên chuỗi thời gian dạng luồng 20
2.5 Kết luận 23
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT NỀN TẢNG 25
3.1 Phương pháp biến đổi Fourier rời rạc 25
3.2 Cấu trúc chỉ mục R*-Tree 26
3.2.1 Thêm mới 27
3.2.2 Xóa phần tử trong R*-Tree: 29
3.2.3 Tìm kiếm trên R*-Tree 29
3.3 Cấu trúc chỉ mục để tính DFT gia tăng 31
3.3.1 Tính toán DFT gia tăng 32
3.3.2 Chính sách cập nhật trì hoãn 32
Trang 93.3.4 Xử lý truy vấn 34
3.4 Cấu trúc chỉ mục Skyline 35
3.4.1 Vùng bao đường chân trời 36
3.4.2 Hàm tính khoảng cách sử dụng cho Skyline 36
3.4.3 Xây dựng cấu trúc chỉ mục Skyline 37
3.5 Phương pháp xấp xỉ tuyến tính từng đoạn khả chỉ mục (Indexable Piecewise Linear Approximation) 39
3.5.1 Giới thiệu về PLA khả chỉ mục 39
3.5.2 Khoảng cách chặn dưới PLA 41
3.5.3 Lập chỉ mục PLA 43
3.5.4 Phương pháp tính PLA gia tăng 49
3.6 Kết luận 51
CHƯƠNG 4: HIỆN THỰC VÀ THỰC NGHIỆM 52
4.1 Đặt vấn đề 52
4.2 Giải quyết vấn đề 52
4.2.1 Kiến trúc hệ thống 53
4.2.2 Cập nhật chỉ mục 53
4.2.3 Cách tạo SBR dùng phương pháp PLA 55
4.3 Thực nghiệm 56
4.3.1 Tập dữ liệu mẫu 56
4.3.2 Đánh giá kết quả thực nghiệm 57
4.4 Kết luận 81
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82
5.1 Kết luận 82
5.2 Những đóng góp của đề tài 82
5.3 Hướng phát triển 82
TÀI LIỆU THAM KHẢO 84
PHỤ LỤC 1: BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH VIỆT i
PHỤ LỤC 2: LÝ LỊCH TRÍCH NGANG iii
Trang 10DANH MỤC HÌNH
Hình 1 1: Dữ liệu chuỗi thời gian (dữ liệu chứng khoán) (nguồn [19]) 1
Hình 1 2: Truy vấn so trùng toàn bộ 3
Hình 1 3: Truy vấn so trùng chuỗi con 4
Hình 2 1: Cách tính độ đo Euclid (nguồn [17]) 8
Hình 2 2: Nhược điểm của độ đo Minkowski (nguồn [17]) 9
Hình 2 3: Cách tính độ đo xoắn thời gian động ([17]) 9
Hình 2 4: Sự khác nhau giữa hai độ đo Euclid và DTW (nguồn [17]) 10
Hình 2 5: Các phương pháp biểu diễn dữ liệu DFT, DWT (nguồn [12]) 12
Hình 2 6: Các phương pháp biểu diễn dữ liệu APCA, PAA, PLA (nguồn [12]) 14
Hình 2 7: Rời rạc hóa dữ liệu theo phương pháp SAX (nguồn [25]) 15
Hình 2 8: Cách tạo cây K-D-Tree 17
Hình 2 9: Cách tạo R-Tree 18
Hình 2 10: Biến thể R-Tree thành LUR-Tree với liên kết trực tiếp (nguồn [21]) 18
Hình 2 11: Biến thể R-Tree hỗ trợ cập nhật thường xuyên theo hướng tiếp cận từ dưới lên (nguồn [21]) 19
Hình 3 1: Ý tưởng chính của phương pháp biến đổi Fourier rời rạc (Nguồn [32]) 25
Hình 3 2: Ví dụ cây R-Tree với 12 điểm 27
Hình 3 3: Lưu đồ giải thuật thêm mới vào cây R*-Tree 28
Hình 3 4: Tìm kiếm vùng trong R*-Tree 30
Hình 3 5: Kiến trúc hệ thống xử lý truy vấn dựa trên IDC-Index (Nguồn [18]) 32
Hình 3 6: Xác định ngưỡng cập nhật ∆ u (nguồn [18]) 34
Hình 3 7: Vùng bao đường chân trời của chuỗi thời gian (Nguồn[22]) 36
Hình 3 8: Mở rộng đường chân trời trên (nguồn [22]) 38
Hình 3 9: Phân đoạn PLA và chặn dưới của nó (nguồn [8]) 42
Hình 3 10: Trường hợp 1 (Đoạn thẳng A1A2 nằm hoàn toàn trong góc phần tư thứ ba (nguồn [8])) 46
Hình 3 11: Trường hợp 2 (đoạn thẳng A1A2 nằm ở cả góc phần tư thứ nhất và thứ ba [8]) 47
Trang 11CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Dữ liệu chuỗi thời gian
Chuỗi thời gian (time series) là dữ liệu có yếu tố thời gian được quan sát tuần tự
theo thời gian Dữ liệu này có thể có nhiều hơn hai chiều, nhưng bắt buộc phải có một chiều là thời gian Có rất nhiều loại dữ liệu khác nhau có yếu tố thời gian và thông thường đây là những dữ liệu rất lớn Những tập dữ liệu chuỗi thời gian dạng này xuất hiện trong nhiều lĩnh vực khác nhau như y khoa, kỹ thuật, kinh tế, tài chính…
Hình 1 1: Dữ liệu chuỗi thời gian (dữ liệu chứng khoán) (nguồn [19])
E Keogh đã nêu ra những khó khăn và thách thức khi nghiên cứu chuỗi thời gian [13] như sau:
- Dữ liệu quá lớn: ví dụ trong 1h, dữ liệu điện tâm đồ (ECG) là 1GB Trong khi dữ
liệu ghi nhận số lần truy cập của một website khoảng 5GB trong một tuần
- Phụ thuộc nhiều yếu tố chủ quan: việc đánh giá mức độ tương tự giữa các dữ liệu
phụ thuộc vào yếu tố chủ quan của người dùng, của tập dữ liệu…
- Sự không đồng nhất của dữ liệu: định dạng của những loại dữ liệu khác nhau, tần
số lấy mẫu khác nhau Hơn nữa, dữ liệu có thể bị nhiễu, bị thiếu một vài giá trị hoặc không sạch…
Trang 121.2 Dữ liệu chuỗi thời gian dạng luồng
Ngày nay trong nhiều ứng dụng thực tế, như ứng dụng phân tích dữ liệu tài chính
(financial data analysis), phân tích chứng khoán trực tuyến (online stock analysis), quản
lý lưu lượng mạng (network traffic management), giám sát mạng cảm biến (sensor
network monitoring), dự đoán động đất (earthquake prediction),… trong đó dữ liệu được
cập nhật thường xuyên, dữ liệu mới đến liên tục với tốc độ ngẫu nhiên Đặc điểm chung của những ứng dụng này đều yêu cầu giám sát dữ liệu liên tục theo thời gian thực M.Kontaki và các cộng sự đã phân loại chuỗi thời gian thành hai loại: chuỗi thời gian tĩnh
(static time series) và chuỗi thời gian dạng luồng (streaming time series) [19]
Chuỗi thời gian tĩnh là chuỗi thời gian bao gồm một số lượng hữu hạn các giá trị
mẫu Còn đối với chuỗi thời gian dạng luồng, kích thước bài toán tăng lên rất nhiều vì
giá trị mới được cập nhật liên tục Tùy theo nhu cầu mà chúng ta tiếp cận một chuỗi thời gian như là chuỗi thời gian tĩnh hay chuỗi thời gian dạng luồng Trong ví dụ Hình 1 1, nếu dữ liệu tương ứng với giá cổ phiếu trong năm 2004 thì chúng ta có thể xem đây là chuỗi thời gian tĩnh Nhưng nếu chúng ta có nhu cầu theo dõi giá chứng khoán liên tục theo thời gian thì đây chính là chuỗi thời gian dạng luồng
Chuỗi thời gian dạng luồng là trường hợp đặc biệt của dữ liệu dạng luồng (stream data) Ngày nay, một số lượng lớn ứng dụng đòi hỏi phải thao tác với dữ liệu dạng luồng
[2], [7], [9], [20], [21], [23], [26], [27], [31] Đặc trưng của dữ liệu dạng luồng là khối lượng dữ liệu rất lớn, thậm chí có thể là vô tận, thay đổi nhanh chóng đòi hỏi đáp ứng nhanh, thời gian thực và truy xuất ngẫu nhiên rất tốn kém J Han và M Kamber đã tổng hợp những phương pháp xử lý dữ liệu dạng luồng như sau [11]: Lấy mẫu ngẫu nhiên
(random sampling), biểu đồ (histogram), cửa sổ trượt (sliding window), mô hình đa phân giải (multi-resolution model), bản tóm tắt (sketches), thuật toán ngẫu nhiên (randomized
algorithm) Nhiều giải thuật xử lý chuỗi thời gian dạng luồng tập trung vào quá khứ gần
nhất của chuỗi thời gian dạng luồng bằng cách áp dụng cửa sổ trượt (sliding window) đã
được đề xuất [9],[18], [26], [27], [31]
Trang 131.3 Truy vấn tương tự trên chuỗi thời gian dạng luồng
Khác với cơ sở dữ liệu truyền thống, cơ sở dữ liệu chuỗi thời gian có thể chứa dữ liệu bị nhiễu và dữ liệu sai Do đó khả năng tồn tại hai chuỗi thời gian có cùng giá trị
trong cùng thời điểm là rất nhỏ Vì vậy, tìm kiếm tương tự (similarity search) thích hợp hơn so với tìm kiếm chính xác (exact search) Tìm kiếm tương tự trong cơ sở dữ liệu
chuỗi thời gian là một hướng nghiên cứu quan trọng và được nhiều nhà nghiên cứu quan tâm Nhiều phương pháp đã được đề xuất để cung cấp những giải thuật xử lý truy vấn hiệu quả trong trường hợp của chuỗi thời gian tĩnh và chuỗi thời gian dạng luồng Những yêu cầu truy vấn trên dữ liệu chuỗi thời gian thường chia làm 2 loại:
- So trùng toàn bộ (whole matching): chiều dài của chuỗi dữ liệu truy vấn và chiều
dài chuỗi dữ liệu ban đầu bằng nhau Minh họa truy vấn so trùng toàn bộ được thể hiện trong Hình 1 2 Bài toán này thường được dùng trong việc gom cụm hay phân loại dữ liệu chuỗi thời gian Ví dụ, tìm giá chứng khoán của những công ty thay đổi giống nhau
Hình 1 2: Truy vấn so trùng toàn bộ
- So trùng chuỗi con (subsequence matching): 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 ban đầu Vì vậy, nhiệm vụ chính là tìm những đoạn dữ liệu trong chuỗi dữ liệu ban đầu 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
Trang 14Hình 1 3: Truy vấn so trùng chuỗi con
Một loại truy vấn được nghiên cứu rất nhiều trong tài liệu về cơ sở dữ liệu là truy vấn tương tự Định nghĩa về truy vấn tương tự như sau: cho trước một đối tượng truy vấn
Q, truy vấn tương tự đưa ra tất cả những đối tượng Ox tương tự với Q ở một mức độ nào
đó
Truy vấn tương tự đã được nghiên cứu để áp dụng cho những đối tượng đa chiều, ảnh, video, chuỗi thời gian và một vài loại dữ liệu truyền thống khác Với dữ liệu chuỗi thời gian dạng luồng có nhiều khó khăn thách thức hơn vì đối tượng truy vấn hoặc dữ liệu hoặc cả đối tượng truy vấn và dữ liệu thay đổi theo thời gian Sự tương tự giữa hai đối
tượng được biểu diễn nhờ vào khoảng cách dist (chẳng hạn dùng khoảng Euclid,
Manhattan, …) Có 3 loại truy vấn tương tự được sử dụng rộng rãi trong những công trình nghiên cứu và trong các tài liệu:
- Truy vấn tương tự vùng (similarity range query): cho trước một đối tượng truy
vấn q, một tập các đối tượng A và khoảng cách ℮, tìm ra tất cả các đối tượng a ϵ
A sao cho dist(q, a) ≤ ℮
- Truy vấn tương tự k-láng-giềng-gần-nhất (similarity k-nearest neighbors): cho
trước một đối tượng truy vấn q, một tập các đối tượng A và một số nguyên k, tìm tất cả k đối tượng a i ϵ A (1 ≤ i ≤ | A |) sao cho với bất kỳ đối tượng a j ϵ A (1 ≤ j ≤
|A| và j≠i) thì dist(q, a i ) ≤ dist(q, a j )
- Truy vấn tương tự kết nối (similarity join query): cho hai tập đối tượng A , B và
khoảng cách ℮, tìm tất cả các cặp (a, b) với a ϵ A và b ϵ B sao cho dist(a, b) ≤ ℮
Trang 15Bài toán tìm kiếm tương tự có thể được áp dụng so trùng toàn bộ hay so trùng chuỗi con và có thể áp dụng trên chuỗi thời gian tĩnh hoặc chuỗi thời gian dạng luồng
1.4 Mục tiêu và giới hạn của đề tài
Mục tiêu chính của đề tài là nâng cao hiệu suất của việc tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng Trong đề tài này chúng tôi tập trung mở rộng framework của M Kontaki và cộng sự [18] với phương pháp xấp xỉ tuyến tính từng đoạn PLA khả chỉ mục (Indexable Piecewise Linear Approximation) do Q Chen và các cộng sự đề xuất [8], đồng thời chúng tôi cũng hướng tới mục tiêu tăng hiệu suất bằng cách đề xuất cách tính PLA gia tăng để đáp ứng yêu cầu của môi trường dữ liệu luồng Ngoài ra, chúng tôi cũng tập trung cải thiện chất lượng cấu trúc chỉ mục bằng cách dùng cấu trúc chỉ mục R*-Tree [4] và cấu trúc chỉ mục Skyline [22]
1.5 Cấu trúc luận văn
Cấu trúc phần còn lại của Luận văn được tổ chức như sau:
- Chương 2: trình bày tổng quan về các công trình liên quan đến bài toán tìm
kiếm tương tự trên dữ liệu chuỗi thời gian Những công trình này bao gồm 4 nhóm chính: các công trình về độ đo tương tự, các công trình liên quan đến biểu diễn chuỗi thời gian, các công trình về cấu trúc chỉ mục, các công trình về tìm kiếm tương tự trên chuỗi thời gian dạng luồng
- Chương 3: trình bày những cơ sở lý thuyết nền tảng được sử dụng trong đề tài,
bao gồm: phương pháp biến đổi Fourier rời rạc, cấu trúc chỉ mục R*-Tree, cấu trúc chỉ mục tính DFT gia tăng, cấu trúc chỉ mục Skyline, phương pháp xấp xỉ tuyến tính từng đoạn khả chỉ mục Phần cuối cùng trong chương này chúng tôi
sẽ chỉ rõ hướng tiếp cận của đề tài
- Chương 4: trình bày nội dung của đề tài đang nghiên cứu, sau đó đưa ra các
kết quả và những đánh giá thực nghiệm
- Chương 5: đưa ra kết luận và hướng phát triển cho đề tài
Trang 16CHƯƠNG 2: TỔNG THUẬT NHỮNG CÔNG TRÌNH
LIÊN QUAN
Bài toán tìm kiếm tương tự trên chuỗi thời gian dạng luồng hiện nay đã được sự quan tâm của rất nhiều nhà nghiên cứu Nhiều công trình nghiên cứu đã chỉ ra những khó khăn thách thức khi làm việc với chuỗi thời gian dạng luồng, đồng thời cũng đưa ra những kỹ thuật để khắc phục những khó khăn thách thức đó Do có nhiều công trình nghiên cứu để giải quyết bài toán tìm kiếm tương tự trong chuỗi thời gian, và những công trình này có thể chia làm 3 loại:
- Những công trình đánh giá độ tương tự: hiện tại có nhiều cách đánh giá độ tương tự đã được nhiều nhà nghiên cứu đề xuất Nhưng tùy theo từng ứng dụng, mục đích khác nhau mà ta sẽ dùng cách đánh giá độ tương tự khác nhau
- Những 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ì thế có nhiều phương pháp mã hóa dữ liệu đã được đề xuất nhằm thu giảm kích thước dữ liệu để đạt được tốc độ tìm kiếm tốt nhất Ngoài ra, những 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 những phương pháp mã hóa dữ liệu có hai loại: phương pháp thu giảm số chiều
(dimensional reduction) và phương pháp rời rạc hóa (discretization)
- Những công trình về xây dựng 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 kích thước 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 đã đề xuất những cấu trúc dữ liệu nhằm hỗ trợ quá trình tìm kiếm trên dữ liệu đã được mã hóa Vấn đề lập chỉ mục là vấn đề rất quan trọng trong dữ liệu chuỗi thời gian cũng như bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng
2.1 Các công trình về độ đo tương tự
Trong những bài toán liên quan đến dữ liệu chuỗi thời gian, độ đo khoảng cách là vấn đề quan trọng cần được quan tâm Khi so sánh hai đối tượng với nhau cần phải dựa
Trang 17giữa hai đối tượng bằng 0, thì hai đối tượng này được gọi là giống nhau Nếu khoảng cách càng lớn thì mức độ khác nhau (sự khác biệt) của chúng càng cao (càng xa)
Kí hiệu D(x, y) là khoảng cách giữa hai đối tượng x và y, độ đo khoảng cách giữa x
và y phải thỏa mãn những tính chất sau đây:
1 D(x, y) = 0 khi và chỉ khi x = y
2 D(x, y) = D(y, x)
3 D(x, y) ≥ 0 với mọi x, y
4 D(x, y) < D(x, z) + D(y, z)
Độ đo tương tự có ý nghĩa quan trọng trong bài toán tìm kiếm tương tự, đặc biệt
trong mô hình có dùng rút trích đặc trưng hay thu giảm số chiều Gọi X f , Y f là biểu diễn
của X, Y sau khi rút trích đặ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 hai chuỗi thời gian có chiều
dài bằng nhau X, Y và được ký hiệu là Sim(X, Y) Sau đây là những phương pháp đánh giá
Trang 18o Nhạy cảm với nhiễu
o Không hiệu quả khi dữ liệu có đường cơ bản (base line) khác nhau: ví dụ trong Hình 2 2(a), giá chứng khoán của A và B thay đổi rất giống nhau nhưng A dao động ở 100, còn B dao động ở mức 40 được đo ở nhiều thang
đo khác nhau Như vậy A và B rất khác nhau mặc dù hình dáng rất giống
nhau
o Không thích hợp khi dữ liệu có biên độ dao động khác nhau Như minh họa
trong Hình 2 2(b): trong trường hợp giá chứng khoán của 2 công ty A và B thay đổi rất giống nhau mà biên độ dao động của A là 20 và 80 còn biên độ
dao động của B là 30 và 50 thì độ tương tự của A và B rất khác nhau
Trang 19a) Đường cơ bản khác nhau b) Biên độ dao động khác nhau
Hình 2 2: Nhược điểm của độ đo Minkowski (nguồn [17])
2.1.2 Độ đo xoắn thời gian động (Dynamic Time Warping – DWT)
Việc so trùng hai đường biểu diễn không hoàn toàn giống nhau nhưng hình dạng
biến đổi rất giống nhau bằng khoảng cách từng cặp điểm 1-1 (so điểm thứ i của đường thứ nhất và điểm thứ i của đường thứ hai) là không phù hợp trong trường hợp hai chuỗi
này không hoàn toàn giống nhau nhưng chúng sẽ giống nhau nếu ta kéo giãn hoặc co lại một số khoảng trên trục thời gian
Hình 2 3: Cách tính độ đo xoắn thời gian động ([17])
Hình 2 4 minh họa hai đường biểu diễn rất giống nhau về hình dạng nhưng lệch nhau về thời gian Trong trường hợp này, nếu tính khoảng cách bằng cách ánh xạ 1-1 giữa hai đường thì kết quả rất khác nhau và có thể dẫn đến kết quả cuối cùng không được như mong muốn Vì vậy, để khắc phục nhược điểm này, một điểm có thể ánh xạ tới nhiều điểm và những ánh xạ này không thẳng hàng Phương pháp này gọi là xoắn thời gian
động DTW (Dynamic Time Warping) do Bernt và Clifford đề xuất năm 1994 [5]
Trang 20Hình 2 4: Sự khác nhau giữa hai độ đo Euclid và DTW (nguồn [17])
Ưu điểm:
o Cho kết quả chính xác hơn so với độ đo Euclid, đặc biệt trong những tập dữ
liệu nhỏ
o 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
Nhược điểm:
o Nhược điểm lớn nhất của DTW là thời gian chạy rất lâu, gấp hàng trăm đến
hàng ngàn lần so với độ đo Euclid Giải thuật DTW lúc đầu có w = n (n là chiều dài của dữ liệu) Khi đó, độ phức tạp là O(n 2) Do đó, ta đưa ra thông số
cửa sổ xoắn w (w<n) để giảm độ phức tạp là O(wn) [5]
2.2 Các công trình liên quan đến biểu diễn chuỗi thời gian
Do đặc thù của chuỗi thời gian là khối lượng dữ liệu rất lớn dẫn đến chi phí cao trong việc truy xuất và tính toán trên dữ liệu thô Vì vậy, các công trình về chuỗi thời gian đều tập trung biểu diễn chuỗi thời gian dưới dạng khác nhau nhằm thu giảm kích thước dữ liệu và nâng cao hiệu năng tìm kiếm, tính toán Phần lớn những phương pháp biểu diễn dữ liệu đều nhằm mục đích thu giảm số chiều để thu giảm kích thước dữ liệu và
hỗ trợ lập chỉ mục Sau đó, chúng ta có thể rời rạc hóa (discretizeation) dữ liệu thành
chuỗi bit hay chuỗi ký tự nhằm khai thác các kỹ thuật về nén dữ liệu cũng như những kỹ
Trang 21thuật khai phá dữ liệu văn bản (text mining)… Ngoài ra, cần chuẩn hóa dữ liệu trước khi bắt đầu quá trình thu giảm số chiều nhằm tránh những vấn đề như dữ liệu có đường cơ
bản khác nhau (tịnh tiến dữ liệu) hay biên độ dao động khác nhau (co giãn biên độ)
2.2.1 Các phương pháp thu giảm số chiều
Phương pháp thu giảm số chiều là phương pháp biểu diễn dữ liệu chuỗi thời gian thành những đường cơ bản đã được định nghĩa trước Khi đó, thay vì lưu trữ chuỗi giá trị
n chiều X={x 1 , x 2 , …, x n }, ta chỉ cần lưu trữ chuỗi dữ liệu k chiều Y = {y 1 , y 2 , … y k } với k
hệ số của các đường cơ bản Từ những đường cơ bản này ta cũng có thể phục hồi lại dữ
liệu ban đầu Như vậy, thay vì tính toán trên dữ liệu n chiều, ta chỉ cần tính toán trên dữ liệu k chiều (k<<n) Giá trị k càng lớn thì đường phục hồi càng chính xác với đường ban
đầu và ngược lại
a Phương pháp biến đổi Fourier rời rạc (Discrete Fourier Transform – DFT)
Phương pháp DFT do R.Agrawal và cộng sự đề nghị năm 1993 [1] Trong phương
pháp này, đường dữ liệu ban đầu được biểu diễn bởi các đường cơ bản, là đường sin và
o Có khả năng nén dữ liệu và chịu nhiễu tốt
o Cho phép so sánh gián tiếp hai chuỗi X, Y thông qua khoảng cách của hai chuỗi X f , Y f đã được biến đổi do: D(X, Y) ≥αD(X f , Y f ) (trong đó α là hằng số)
Nhược điểm:
o Biến đổi Fourier nhanh (FFT – Fast Fourier Transform) có độ phức tạp tốt nhất
là O(nlogn) với n là số lượng điểm
o Khó giải quyết khi các đường biểu diễn có chiều dài khác nhau
Trang 22b Phương pháp biến đổi Wavelet rời rạc (Discrete Wavelet Transform – DWT)
Phương pháp DWT do K.Chan và cộng sự đề xuất năm 1999 [6] Phương pháp DWT biểu diễn chuỗi thời gian thành các đường Haar cơ bản (Hình 2 5) Đường Haar được định nghĩa theo công thức sau:
o Độ phức tạp phép biến đổi là O(n)
o Có khả năng khử nhiễu cao, thích hợp với dữ liệu tĩnh ít thay đổi do đường Haar cũng không thay đổi liên tục
Nhược điểm: Chiều dài chuỗi dữ liệu ban đầu và chuỗi truy vấn phải là một số lũy thừa
của 2
Hình 2 5: Các phương pháp biểu diễn dữ liệu DFT, DWT (nguồn [12])
Trang 23c Phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation – PAA)
Phương pháp xấp xỉ gộp từng đoạn PAA do E Keogh và cộng sự đề xuất năm
2001 [15] Phương pháp PAA tuần tự xấp xỉ k giá trị liền kề nhau thành cùng một giá trị 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 (Hình 2 6)
Ưu điểm:
o Thời gian tính toán rất nhanh
o Hỗ trợ nhiều phương pháp tính khoảng cách (khoảng cách Euclid, khoảng cách Minkowski…)
o Hỗ trợ dạng câu truy vấn có chiều dài khác nhau
Nhược điểm:
o Xây dựng lại chuỗi ban đầu rất khó và thường sinh lỗi lớn
o Không quan tâm đến những điểm đặc biệt (điểm có giá trị nhỏ nhất, giá trị lớn nhất, …) trong từng đoạn xấp xỉ
d Phương pháp xấp xỉ từng đoạn thích nghi (Adaptive Piecewise Constant approximation – APCA)
Phương pháp APCA do E Keogh và các cộng sự đề xuất năm 2001 [16] Tương tự PAA, APCA xấp xỉ dữ liệu ban đầu thành những đoạn thẳng nằm ngang Tuy nhiên, trong phương pháp PAA thì những đoạn xấp xỉ này có kích thước bằng nhau, còn với APCA thì các đoạn có kích thước khác nhau Những thời điểm giá trị dao động nhiều
Trang 24được biểu diễn bởi những phân đoạn dữ liệu ngắn (short segment), thời điểm giá trị ít dao động được biểu diễn bởi những phân đoạn dữ liệu dài (long segment) (Hình 2 6)
Ưu điểm:
o Tỷ lệ nén cao hơn phương pháp PAA
o Tỷ lệ lỗi khi xây dựng lại dữ liệu nhỏ hơn so với phương pháp PAA
o Hỗ trợ tìm kiếm xấp xỉ và tìm kiếm chính xác
Nhược điểm: Độ phức tạp phép biến đổi là O(nlog(n))
Hình 2 6: Các phương pháp biểu diễn dữ liệu APCA, PAA, PLA (nguồn [12])
e Phương pháp xấp xỉ tuyến tính từng đoạn (Piecewise Linear Approximation - PLA)
Phương pháp PLA do E Keogh và cộng sự đề xuất năm 1999 [13][14] Trong phương pháp này dữ liệu ban đầu được biểu diễn lại bằng chuỗi các đoạn thẳng tuyến tính Mỗi đoạn thẳng tuyến tính nối cặp điểm ở hai đầu đoạn thẳng xấp xỉ tốt nhất những điểm có trong phân đoạn chuỗi thời gian đó Những đoạn thẳng này có thể rời nhau hoặc liên tục (Hình 2 6)
Ưu điểm:
o Trực quan và có tỷ lệ lỗi thấp nhất trong quá trình xây dựng lại chuỗi dữ liệu
Trang 25o Giải thuật tìm các chuỗi đoạn thẳng thực hiện trong thời gian tuyến tính
o Hỗ trợ phép truy vấn mờ (fuzzy query)
Nhược điểm: Độ phức tạp khi tính toán khoảng cách trong cấu trúc chỉ mục cao
2.2.2 Các phương pháp rời rạc dữ liệu
Quá trình chia dữ liệu thành những đoạn nhỏ được gọi là quá trình rời rạc hóa Sau
đó, tương ứng với mỗi đoạn nhỏ này ta sẽ mã hóa chúng bởi những đặc trưng của đoạn Tập hợp đặc trưng của những đoạn nhỏ này sẽ biểu diễn cho chuỗi dữ liệu ban đầu Khác với những phương pháp trước thì độ tương tự được tính dựa trên khoảng cách, trong phương pháp này, độ tương tự được tính dựa trên những đặc trưng
a Phương pháp xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate approXimation – SAX)
Do J.Lin và cộng sự đề xuất [25], được minh họa trong Hình 2 7 Dữ liệu ban đầu được chia thành từng đoạn dùng phương pháp PAA 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 ký tự và bài toán chuyển sang bài toán so trùng ký tự
Hình 2 7: Rời rạc hóa dữ liệu theo phương pháp SAX (nguồn [25])
Trong những trường hợp chỉ quan tâm đến đặc trưng thì phương pháp này rất thích hợp và hiện tại đang được nghiên cứu nhiều Ngoài ra, trong phương pháp này ta có thể
sử dụng những nghiên cứu về xử lý chuỗi Tuy nhiên, nhược điểm chính là cách định
Trang 26nghĩa những đặc trưng cũng như phương pháp này không hỗ trợ tính khoảng cách Euclid tốt
Ưu điểm:
o Tương tác được với dữ liệu lớn, lên tới hàng Terabyte
o Khai phá được các kỹ thuật xử lý trên dữ liệu chuỗi để thực hiện xử lý phân tích dữ liệu
o Bài toán nhận dạng mô típ có thể áp dụng các giải thuật đã được nghiên cứu trước đây trong lĩnh vực sinh học tính toán
Nhược điểm: Các điểm ngắt được xác định dựa trên phân phối Gauss, không cụ thể cho
từng loại dữ liệu Do đó, chúng ta cần phải huấn luyện dữ liệu nhằm tìm ra những điểm
ngắt thích hợp nhất tương ứng với mỗi loại dữ liệu
2.3 Các công trình về cấu trúc chỉ mục
Việc sử dụng cấu trúc chỉ mục giúp cho việc tìm kiếm chuỗi con một cách nhanh chóng và hiệu quả Những cấu trúc chỉ mục được sử dụng thường có kích thước nhỏ hơn chuỗi thời gian ban đầu và sẽ tăng tuyến tính theo kích thước của dữ liệu chuỗi thời gian tương ứng Những cấu trúc chỉ mục có tính chất này thường là những cấu trúc dạng cây Một số cấu trúc thường dùng để tạo lập chỉ mục cho dữ liệu nhiều chiều được trình bày sau đây:
2.3.1 K-D-Tree/Quad Tree
K-D-Tree: 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 nhiều không gian con, mỗi không gian này được chia nhỏ cho đến khi nào là một điểm duy nhất Loại cấu trúc chỉ mục này không chứa dữ liệu trong cấu trúc cây, phù hợp với dữ liệu không gian lớn Trong Hình 2 8, ta có ví dụ về 2 cây K-D-Tree trong không gian 2 chiều Trong hình đầu, với một điểm ta có cây với nút duy nhất,
hình sau với 3 điểm được chia thành 2 không gian con (2 cây con) chứa 2 điểm p 2 và
p 3
Trang 27Hình 2 8: Cách tạo cây K-D-Tree
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ự Sự khác biệt ở chỗ Quad Tree không phải là cây nhị phân Số con mỗi nút trong Quad Tree bằng 2d , trong đó d là số chiều của không gian
điểm
2.3.2 R-Tree/R*-Tree
R-Tree: do A Guttman đề xuất [10], là cấu trúc cây dựa trên B-Tree Tương tự như
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 phần
tử (m và M là 2 thông số trong quá trình xây dựng R-Tree) Mỗi phần tử 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 dưới đây thể hiện một sự phân chia 12 giá trị dữ liệu 2 chiều (1 12) thành 7 vùng (hình chữ nhật khác nhau – MBR)
R*-Tree: do N Beckmann và cộng sự đề xuất [4] R*-Tree là một cấu trúc cải tiến những nhược điểm của R-Tree Sự khác biệt cơ bản trong cấu trúc R*-Tree là thao tác thêm phần tử
Trang 28Hình 2 9: Cách tạo R-Tree
Các biến thể khác của R-Tree/R*-Tree cũng được đề xuất Năm 2002, D Kwon và
các cộng sự đã đề xuất cấu trúc LUR-Tree (Lazy Updates R-Tree) [20] Trong biến thể
này, cấu trúc chỉ mục chỉ được cập nhật khi một đối tượng di chuyển ra khỏi MBR tương ứng Minh họa cho LUR-Tree được thể hiện trong Hình 2 10
Hình 2 10: Biến thể R-Tree thành LUR-Tree với liên kết trực tiếp (nguồn [21])
Trang 29Năm 2003, M Lee và các cộng sự đã đề xuất chiến lược cập nhật từ dưới lên
(bottom-up) cho R-Tree tổng quát từ những kỹ thuật cập nhật hiện có nhằm cải thiện hiệu
suất cập nhật của R-Tree [21] (Hình 2 11)
Hình 2 11: Biến thể R-Tree hỗ trợ cập nhật thường xuyên theo hướng tiếp cận từ
dưới lên (nguồn [21]) 2.3.3 Cấu trúc chỉ mục Skyline
Cấu trúc chỉ mục Skyline do Q Li và các cộng sự đưa ra năm 2004 [22], dựa trên cấu trúc chỉ mục R-Tree Các tác giả đã sử dụng vùng bao đường chân trời SBR thay cho hình chữ nhật bao nhỏ nhất MBR trong R-Tree/ R*-Tree Bằng kết quả thực nghiệm, các tác giả đã chỉ ra rằng việc sử dụng vùng bao đường chân trời SBR của cấu trúc chỉ mục Skyline có những ưu điểm như sau:
- Giảm truy xuất chỉ mục
- Giảm truy cập dữ liệu
- Trực giao với xấp xỉ dữ liệu Có thể sử dụng những phương pháp xấp xỉ khác nhau như DFT, DWT, PAA, APCA để biểu diễn cho những phần tử dữ liệu
(data entry) trong nút lá Với những nút không phải là lá (internal node), vùng
bao đường chân trời có thể được xấp xỉ bởi PAA hoặc APCA
Chi tiết về cấu trúc chỉ mục này sẽ được trình bày trong phần 3.4
Trang 302.3.4 Cấu trúc xấp xỉ file xấp xỉ hóa véc tơ (VA-File)
Phương pháp đánh chỉ mục VA-File do R Weber cùng các cộng sự đưa ra năm
1998 [30], được sử dụng để đánh chỉ mục và hỗ trợ tìm kiếm tương tự trong không gian
đa chiều Phương pháp VA-File dựa trên tính phân hoạch của dữ liệu (data-partitioning
approach) cũng như tính lọc của tập tin đánh dấu (filtered-based approach of signature files) Không gian dữ liệu được chia thành nhiều vùng không gian con (cell), mỗi không
gian con này được dùng để sinh ra những đoạn mã bit xấp xỉ Tập những đoạn bit xấp xỉ này sẽ tạo thành một véc tơ tượng trưng cho tập dữ liệu Cấu trúc VA-File đơn giản chỉ là một mảng chứa tất cả các véc tơ xấp xỉ nói trên Trong quá trình truy vấn, duyệt qua toàn
bộ những véc tơ xấp xỉ này Với mỗi chuỗi truy vấn và một véc tơ xấp xỉ ta sẽ tính được
chặn trên (upper bound) và chặn dưới (lower bound) về khoảng cách Những khoảng
chặn này được sử dụng để thu giảm không gian tìm kiếm khi truy vấn dữ liệu
2.4 Các công trình về tìm kiếm tương tự trên chuỗi thời gian dạng luồng
Bài toán tìm kiếm tương tự trên chuỗi thời gian đã được nghiên cứu nhiều trong những năm gần đây và đã có nhiều cách tiếp cận khác nhau đã được đề xuất Tuy nhiên, những cách tiếp cận này đều dựa trên tiên đề chung là độ đo tương tự, phương pháp thu giảm số chiều và cấu trúc chỉ mục không gian
Năm 2002, trong công trình nghiên cứu của L Gao và X.S Wang [9], tìm kiếm tương tự dùng truy vấn so trùng toàn bộ chuỗi và dùng khoảng cách Euclid làm độ đo tương tự L Gao và X S Wang sử dụng phép biến đổi Fourier nhanh (Fast Fourier
Transform – FFT) để tìm tương quan chéo (cross correlation) giữa các chuỗi thời gian để tìm ra láng giềng gần và gần nhất bằng cách xử lý theo lô (batch processing) Phương
pháp dự đoán được áp dụng trong công trình này để dự đoán giá trị tương lai của chuỗi thời gian dạng luồng FFT được sử dụng để tính toán tương quan chéo giữa chuỗi dự
đoán (là những giá trị đã đến) và các mẫu cơ sở dữ liệu (database patterns), để có được
khoảng cách dự đoán giữa chuỗi thời gian đến tại những thời điểm trong tương lai và các
mẫu cơ sở dữ liệu Khi giá trị dữ liệu thật đến, lỗi dự báo (prediction error) cùng với
Trang 31những khoảng cách dự đoán được sử dụng để lọc ra những mẫu không thể là láng giềng gần hoặc gần nhất
Năm 2003, X Liu và H Ferhatosmanoglu đã đề xuất mô hình xử lý dữ liệu dạng luồng và cấu trúc chỉ mục có thể thích ứng với sự thay đổi về số chiều của đối tượng dữ liệu Đó chính là cấu trúc chỉ mục VA-Stream/VA+-Stream [26] dựa trên cấu trúc chỉ mục VA-File/VA+-File (Vector Approximation File) do R Weber và các cộng sự đề xuất
[30] Phương thức xử lý truy vấn trên chuỗi thời gian dạng luồng dựa trên cấu trúc chỉ mục VA-Stream/VA+-Stream đã được áp dụng trên truy vấn k-láng-giềng-gần nhất Các tác giả đã xét cả hai trường hợp: sử dụng cửa sổ trượt (sliding windows) và cửa sổ trượt
có kích thước vô hạn (coi như không dùng cửa sổ trượt)
Năm 2004, H Wu và các cộng sự đã thực hiện so trùng chuỗi hướng sự kiện
(event-drivent subsequence matching) trên dữ liệu tài chính dạng luồng sử dụng biểu diễn tuyến tính từng đoạn (piecewise linear representation) của chuỗi thời gian [31] Để giảm
tải cho hệ thống, việc tìm kiếm tương tự chỉ được thực hiện khi có sự kiện nào trong hệ thống đó xảy ra Các tác giả đã đề xuất cách phân đoạn đồng thời trực tuyến mới và giải thuật cắt tỉa cho biểu diễn tuyến tính từng đoạn của những luồng dữ liệu thô Độ đo tương
tự mới thích hợp với việc so trùng chuỗi gồm 2 phần là hoán vị và hàm khoảng cách Kết quả thực nghiệm cho thấy độ đo mới có hiệu suất tốt hơn so với độ đo Euclid Tuy nhiên, cách tiếp cận này chưa quan tâm đến việc sử dụng cấu trúc chỉ mục
Đến năm 2006, trong công trình nghiên cứu của mình [27], U.Y Ogras và H
Ferhatosmanoglu đã đề xuất framework tạo ra tóm tắt trực tuyến dựa trên biến đổi (transform-based online summary) cho dữ liệu chuỗi thời gian quy mô lớn và động,
chẳng hạn như dữ liệu luồng Các tác giả đã đề xuất kỹ thuật tóm tắt trực tuyến dựa trên
chuyển đổi (online transform-based summarization) cho luồng dữ liệu được cập nhật liên
tục theo thời gian và không gian với hai phiên bản là phiên bản chính xác và phiên bản
xấp xỉ với giới hạn lỗi (error bounds) Kỹ thuật này được phát triển dựa trên nhận xét:
tính toán dựa trên biến đổi tóm tắt của tập hợp dữ liệu tương đương với việc tìm kiếm các
Trang 32hệ số giảm thiểu bình phương sai số (squared error) giữa chuỗi nguồn và chuỗi được xây dựng lại từ bản tóm tắt (synopsis) Công trình cũng tập trung sâu vào việc phân tích hiệu suất Các tác giả đã phát triển một framework chung dựa trên dự toán bình phương tối
thiểu đệ quy (Recursive Least Squares Estimation – RLSE) để cập nhật động những hệ
số chuyển đổi đầu tiên của luồng dữ liệu Sau đó các tác giả mở rộng phương pháp duy trì những bản tóm tắt với cửa sổ trượt, những bản tóm tắt này có thể được sử dụng để trả lời
truy vấn liên tục (continuous query) với hiệu suất cao Những loại truy vấn được khảo sát trong công trình bao gồm: truy vấn điểm (point query), truy vấn vùng (range query) và truy vấn k-láng-giềng-gần nhất (k-NN query) U.Y Ogras và H Ferhatosmanoglu đã minh họa framework đề xuất phát sinh bản tóm tắt dựa trên DFT và duy trì bản tóm tắt
trên cửa sổ trượt
Năm 2007, M Kontaki và các cộng sự đã đề xuất phương pháp tìm kiếm tương tự thích nghi [18] Phương pháp này tập trung vào hai dạng truy vấn là truy vấn vùng và truy vấn láng giềng gần nhất Phương pháp này dựa trên cách tính toán DFT gia tăng để
tạo cấu trúc chỉ mục IDC (Incremental DFT Computation) và áp dụng chính sách cập
nhật trì hoãn trên cấu trúc chỉ mục dựa trên R*-Tree Một đặc tính quan trọng của phương pháp này là khả năng thích nghi với tần số cập nhật của dữ liệu dạng luồng Bằng cách sử
dụng heuristic đơn giản, các tác giả đã quản lý việc cập nhật để giữ cho tần số cập nhật ở
mức độ nhất định để đảm bảo hiệu quả Chi tiết của phương pháp này sẽ được đề cập trong phần 3.4
X Lian và các cộng sự (2007) đề xuất một cách tiếp cận xấp xỉ phân đoạn [24], dựa trên mô hình cửa sổ trượt, các tác giả đưa ra phương pháp xấp xỉ trung bình phân
đoạn đa mức phân giải (Multi-scaled Segment Mean - MSM), chính là phương pháp
PAA đa mức phân giải, dựa trên trung bình phân đoạn và phù hợp trong xử lý dữ liệu chuỗi thời gian dạng luồng với tần số cập nhật thường xuyên Ngoài ra, các tác giả cũng đưa ra một cơ chế lọc nhiều bước cho biểu diễn đa mức phân giải và đã chỉ ra rằng cơ chế này xén không gian tìm kiếm hiệu quả nên thỏa mãn được yêu cầu đáp ứng nhanh
Trang 33Năm 2008, hai tác giả X Lian và L Chen tiếp tục đề xuất tiếp cận tiên đoán cho bài toán tìm kiếm tương tự trên chuỗi thời gian dạng luồng [23] Các tác giả đã đưa ra 3 cách để tiên đoán giá trị chưa biết của chuỗi thời gian dạng luồng bao gồm: đa thức
(polynomial), DFT và dựa trên xác suất; cấu trúc chỉ mục được sử dụng là bảng băm đa phân giải (multidimensional hash) và B+-Tree Cách tiếp cận đa thức có thể dự đoán giá trị tương lai dựa trên các đường cong gần đúng của những giá trị gần nhất, trong khi đó
kỹ thuật dự đoán dựa trên DFT dự đoán bằng cách sử dụng những giá trị xấp xỉ trong miền tần số X Lian và L Chen cũng đề xuất phương pháp dự đoán dựa theo cách tiếp cận xác suất để dự đoán giá trị tương lai theo tập dữ liệu lịch sử Hai tác giả cũng đã mở
rộng phương pháp xác suất thành phương pháp tiếp cận nhóm xác suất (group
probabilistic) bằng cách sử dụng những mối tương quan giữa các cách tiếp cận trên được
xác định bằng phương pháp bình phương khoảng cách Euclid giữa những giá trị dự báo
và thực tế chia cho lỗi dự báo tối đa
Tóm lại, trong những công trình trước đây việc tìm kiếm tương tự trên chuỗi thời gian dạng luồng được thực hiện hoặc là tìm kiếm tương tự dựa trên chuỗi thời gian được lưu trữ hoàn chỉnh, hoặc tiến hành dự đoán dữ liệu trước khi dữ liệu thực tế đến Nhiều phương pháp trước đó thường thiết kế mô hình phức tạp, là đặc trưng của một số ứng dụng cụ thể
2.5 Kết luận
Độ đo tương tự, phương pháp thu giảm số chiều và cấu trúc chỉ mục không gian là những vấn đề cần quan tâm trong bài toán tìm kiếm tương tự trên chuỗi thời gian tĩnh cũng như chuỗi thời gian dạng luồng Thiết kế cấu trúc chỉ mục trong bài toán tìm kiếm tương tự trên chuỗi thời gian dạng luồng với khía cạnh dữ liệu được cập nhật thường xuyên đã thu hút được nhiều sự quan tâm của các nhà nghiên cứu Đối với dữ liệu luồng, việc điều khiển tần số cập nhật của chỉ mục là cần thiết để giảm hiệu suất của hệ thống Trong [18], M Kontaki và các cộng sự đã đưa ra cấu trúc chỉ mục IDC-Index dựa trên cấu trúc chỉ mục R*-Tree, có bổ sung rút trích đặc trưng bằng cách tính toán DFT gia tăng và chính sách cập nhật trì hoãn để giảm số lần cập nhật chỉ mục Cũng cách tiếp cận
Trang 34như vậy, X Lian và các cộng sự đã đề xuất phương pháp xấp xỉ trung bình phân đoạn đa mức phân giải MSM có thể tính toán gia tăng để thu giảm số chiều [24], đồng thời sử
dụng cấu trúc chỉ mục dựa trên lưới, các tác giả chỉ lưu trữ sự khác nhau tại mức (k+1) từ mức k, (k+2) từ mức (k+1) mà không chứa tất cả xấp xỉ của các mẫu trong cấu trúc chỉ
mục để giảm chi phí tính toán
Đề tài này chúng tôi sử dụng phương pháp xấp xỉ tuyến tính từng đoạn PLA
(Piecewise Linear Approximation) để thu giảm số chiều và dùng R*-Tree làm cấu trúc
chỉ mục Tuy nhiên, việc R*-Tree sử dụng MBR làm vùng bao có thể làm cho nhiều MBR chồng lấp lên nhau khiến cho hiệu suất tìm kiếm trên cấu trúc chỉ mục bị giảm Để khắc phục hạn chế này, đề tài này sẽ sử dụng cấu trúc chỉ mục Skyline với vùng bao đường chân trời SBR thay cho hình chữ nhật bao nhỏ nhất MBR
Trang 35CHƯƠNG 3: CƠ SỞ LÝ THUYẾT NỀN TẢNG
Để giải quyết vấn đề tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng, cần phải sử dụng một số vấn đề lý thuyết của những lĩnh vực khác nhau Chương này sẽ
trình bày những điểm cơ bản của những lý thuyết đó Đầu tiên để hiểu được framework
của M Kontaki và các cộng sự, chúng ta sẽ tìm hiểu về phương pháp biến đổi Fourier rời rạc cùng với cấu trúc chỉ mục R-Tree và R*-Tree Tiếp theo chúng tôi sẽ trình bày tóm tắt
những vấn đề chính của cấu trúc chỉ mục IDC và những thành phần trong framework của
M Kontaki và các cộng sự Cuối cùng, chúng tôi sẽ giới thiệu về cấu trúc chỉ mục Skyline và phương pháp xấp xỉ tuyến tính từng đoạn PLA đồng thời đưa ra công thức để tính PLA gia tăng
3.1 Phương pháp biến đổi Fourier rời rạc
Ý tưởng chính của phương pháp biến đổi Fourier rời rạc là bất cứ tín hiệu nào dù phức tạp đến đâu cũng có thể được biểu diễn bởi sự chồng chất của một số hữu hạn sóng
sin (cosin), trong đó mỗi sóng được biểu diễn bởi một số phức gọi là hệ số Fourier
Hình 3 1: Ý tưởng chính của phương pháp biến đổi Fourier rời rạc (Nguồn [32])
Công thức biến đổi DFT gồm N-điểm cho chuỗi thời gian có chiều dài L được tính
như sau:
Trang 36
Cấu trúc R*-Tree là một cấu trúc dữ liệu sử dụng trong các phương pháp truy xuất
không gian (Spatial Access Methods – SAM), hỗ trợ có hiệu quả việc đánh chỉ mục dữ
liệu điểm cũng như dữ liệu không gian
Cấu trúc R*-Tree có những tính chất sau:
- Nút nội (không phải nút lá) chứa phần tử (entry) có dạng (rectangle, cp), trong
đó cp là con trỏ chỉ đến nút con, rectangle là hình chữ nhật bao nhỏ nhất chứa
tất cả các hình chữ nhật của những phần tử trong nút con
- 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ó thể chứa trực tiếp những đối tượng dữ liệu (data_object,
rectangle), điều này cũng không ảnh hưởng đến cấu trúc cơ bản của R*-Tree
- Nút gốc có ít nhất 2 nút con, trừ khi nó là nút lá
- Trong R*-Tree có hai thông số, M là số lư ng phần tử tối đa trong một nút, m
là số lư ng phần tử tối thiểu trong nút, với điều kiện là 2 ≤ m ≤ M/2
- 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
Trang 37Hình 3 2: Ví dụ cây R-Tree với 12 điểm
Các thao tác đối với R*-Tree bao gồm: tìm kiếm, thêm mới, xóa
3.2.1 Thêm mới
Thao tác thêm mới phần tử vào cây R-Tree được thực hiện theo lưu đồ dưới đây:
Trang 38Hình 3 3: Lưu đồ giải thuật thêm mới vào cây R*-Tree
- Quá trình chọn cây con sẽ chọn ra nút lá để thêm phần tử (entry) mới vào và
dựa theo nguyên tắc: mở rộng diện tích hình chữ nhật bao nhỏ nhất (MBR) là tối thiểu đối với những thành phần không chỉ đến nút lá, và mở rộng diện tích
chồng lấp (overlap) của một phần tử là ít nhất với những thành phần chỉ đến
nút lá
- Quá trình xử lý tách nút đầy: dựa trên ba giá trị liên quan đến hai nhóm phần tử được tách bao gồm: diện tích bao phủ, chu vi và diện tích chồng lấp
Trang 393.2.2 Xóa phần tử trong R*-Tree:
Quá trình xóa R*-Tree: tìm nút lá có chứa phần tử tương ứng để xóa đi Tuy nhiên
sau khi xóa một phần tử, có thể gây ra tình trạng số lượng phần tử nhỏ hơn m (là số lượng
phần tử nhỏ nhất) Khi đó thực hiện quá trình điều chỉnh lại R*-Tree:
- Xóa đệ quy các nút ra khỏi nút cha cho đến khi nút bị xóa phần tử vẫn còn hợp
lệ Đồng thời giữ lại các cây con bị xóa
- Chèn tất cả các phần tử trong những cây con bị xóa trong quá trình trước
3.2.3 Tìm kiếm trên R*-Tree
Giải thuật tìm kiếm những đối tượng dữ liệu tương tự với một truy vấn trên Tree sẽ duyệt từ nút gốc, lần lượt qua các nút con Tuy nhiên do đặc điểm của R*-Tree, những hình chữ nhật bao có thể giao nhau, do đó nếu truy vấn nằm trong phần giao nhau này thì có thể có nhiều cây con dưới một nút sẽ được duyệt
R*-Giả sử trong một phần tử E, gọi EI là phần hình chữ nhật bao và Ep là đối tượng
dữ liệu nếu E là một phần tử ở nút lá; hoặc Ep là con trỏ chỉ đến hình chữ nhật bao nếu E
là một phần tử ở nút trung gian Q là truy vấn cần thực hiện tìm kiếm T là nút gốc của
R*-Tree Giải thuật tìm kiếm R*-Tree sẽ lần lượt thực hiện các bước sau:
- Bước 1: tìm kiếm ở nút trung gian:
o Nếu T không phải là nút lá thì kiểm tra các phần tử và chọn ra những phần
tử nào có hình chữ nhật bao EI chứa Q
o Sau đó mỗi phần tử được chọn sẽ gọi đệ quy hàm này để thực hiện tìm kiếm ở cây con
- Bước 2: thực hiện tìm kiếm ở nút lá Nếu T là nút lá thì sẽ thực hiện kiểm tra
để tìm ra những phần tử có hình chữ nhật bao EI chứa truy vấn Q Đó là những
phần tử kết quả của giải thuật
Cấu trúc R*-Tree hỗ trợ nhiều dạng tìm kiếm khác nhau, sau đây là hai loại truy vấn phổ biến:
Trang 40a Truy vấn vùng (range query)
Câu truy vấn Q có dạng hình chữ nhật, kết quả của quá trình tìm kiếm là những
thành phần nằm trong vùng này Giải thuật tìm kiếm vùng có thể được mô tả như sau: Bắt đầu từ nút gốc:
- Nếu nút hiện tại không phải là nút lá, thì với mỗi phần tử trong nút <E, ptr>, nếu hình chữ nhật bao nhỏ nhất của E trùng lắp lên Q, ta tiến hành tìm kiếm trên cây con được trỏ bởi ptr
- Nếu nút hiện tại là nút lá, với mỗi phần tử trong nút lá, trả về tập kết quả nếu
nằm trong vùng của Q
Hình 3 4: Tìm kiếm vùng trong R*-Tree
Hình 3 4 minh họa thao tác tìm kiếm vùng trên R*-Tree Quá trình duyệt cây sẽ
lần lượt duyệt qua các nút: root, E 1 (ptr), E 3 (ptr) và trả về hai thành phần nằm trong vùng tìm kiếm là b, d
b Truy vấn láng giềng gần nhất (nearest neighbor query)
Đối tượng truy vấn Q là một thành phần đối tượng, kết quả của quá trình tìm kiếm