55 Hình 5-4: Kết quả thực nghiệm thời gian cập nhật chỉ mục với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo bán kính truy vấn .... 55 Hình 5-5: Kết quả thực nghiệm thời gian x
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
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
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độ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: Nguyễn Trường Mạnh Hùng MSHV: 09070440
Ngày, tháng, năm sinh: 01/05/1980 Nơi sinh: TP.Hồ Chí Minh
Chuyên ngành: Khoa Học Máy Tính Mã số : 60.48.01
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 Kontaki và các 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
• Nghiên cứu vận dụng framework của Kontaki đối với phương pháp thu giảm số
chiều xấp xỉ gộp từng đoạn (PAA) thay vì biến đổi Fourier rời rạc (DFT) và cấu trúc chỉ mục Skyline thay vì cấu trúc chỉ mục R*-Tree
• Hiện thực và thử nghiệm so sánh hiệu quả của cấu trúc chỉ mục Skyline với cấu
trúc chỉ mục R*-Tree khi tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồn
NGÀY GIAO NHIỆM VỤ : 14/02/2011
NGÀY HOÀN THÀNH NHIỆM VỤ: 02/12/2011
CÁN BỘ HƯỚNG DẪN: PGS TS Dương Tuấn Anh
TP HCM, ngày……tháng ……năm 20……
CÁN BỘ HƯỚNG DẪN
PGS TS Dương Tuấn Anh
CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
TRƯỞNG KHOA…………
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 2011
Nguyễn Trường Mạnh Hùng
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 học 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, bạn bè đã độ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 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ẹ 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 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ác cộng sự đã đề xuấ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 sẽ tập trung mở rộng framework này với phương pháp thu giảm số chiều khác Chúng tôi sử dụng phương pháp xấp xỉ gộp từng đoạn làm phương pháp thu giảm số chiều và phương pháp 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 luồng Độ đo Euclid tiếp tục đượ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 thực nghiệm đã chứng tỏ cấu trúc chỉ mục này là hiệu quả hơn R*-Tree trong môi trường luồng
Trang 7as dimensional reduction and this dimensional reduction works in an incremental manner to satisfy the demands of streaming environment Euclide 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
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 viii
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 Bài toán tìm kiếm tương tự trên chuỗi thời gian 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
CHƯƠNG 2: TỔNG HỢP CÁC CÔNG TRÌNH LIÊN QUAN 7
2.1 Các độ đo tươự 7
2.1.1 Độ đo Minkowski 8
2.1.2 Độ đo xoắn thời gian động 9
2.1.3 Độ đo chuỗi con chung dài nhất 10
2.2 Các phương pháp thu giảm số chiều 11
2.2.1 Các phương pháp biến đổi sang miền tần số 12
2.2.2 Các phương pháp xấp xỉ từng đoạn 14
2.3 Cấu trúc chỉ mục 17
2.3.1 Cấu trúc chỉ mục R-Tree/R*-Tree 17
2.3.2 Cấu trúc chỉ mục VA-Stream/VA+-Stream 20
2.3.3 Cấu trúc chỉ mục Skyline 21
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 21
2.5 Kết luận 24
Trang 9CHƯƠNG 3: CƠ SỞ LÝ THUYẾT VÀ HƯỚNG TIẾP CẬN 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 Tính chất của R*-Tree: 26
3.2.2 Xây dựng R*-Tree 27
3.2.3 Tìm kiếm trên R*-Tree 28
3.3 Cấu trúc chỉ mục để tính toán DFT gia tăng 29
3.3.1 Tính toán DFT gia tăng 31
3.3.2 Chính sách cập nhật trì hoãn 34
3.3.3 Lựa chọn ngưỡng cập nhật Δu 35
3.3.4 Xử lý truy vấn 36
3.4 Cấu trúc chỉ mục Skyline 38
3.4.1 Vùng bao đường chân trời 38
3.4.2 Tính chất của cấu trúc chỉ mục Skyline 39
3.4.3 Xây dựng cấu trúc chỉ mục Skyline 40
3.4.4 Hàm khoảng cách Skyline 41
3.5 Phương pháp xấp xỉ gộp từng đoạn 42
3.6 Kết luận 43
CHƯƠNG 4: HỆ THỐNG TÌM KIẾM TƯƠNG TỰ TRÊN CHUỖI THỜI GIAN DẠNG LUỒNG 44
4.1 Đặt vấn đề 44
4.2 Hướng giải quyết 45
4.3 Kiến trúc hệ thống 46
4.4 Cập nhật chỉ mục 47
4.4.1 Rút trích đặc trưng 48
4.4.2 Tổ chức lưu trữ trên cấu trúc chỉ mục 49
4.5 Xử lý truy vấn 50
4.6 Kết luận 51
Trang 10CHƯƠNG 5: THỰC NGHIỆM 52
5.1 Các tiêu chuẩn thực nghiệm 52
5.2 Đánh giá các kết quả thực nghiệm 54
5.2.1 Thực nghiệm trên truy vấn vùng 54
5.2.2 Thực nghiệm trên truy vấn lân cận gần nhất 59
5.2.3 Thực nghiệm trên số đoạn thu giảm 63
5.3 Kết luận 71
CHƯƠNG 6: KẾT LUẬN 72
6.1 Tổng kết 72
6.2 Những đóng góp của đề tài 72
6.3 Hướng phát triển 73
TÀI LIỆU THAM KHẢO 75
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 iv
Trang 11DANH MỤC HÌNH
Hình 1-1: Ví dụ về 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ộ 4
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 [16]) 8
Hình 2-2: Nhược điểm của độ đo Minkowski (Nguồn [16]) 9
Hình 2-3 Cách tính độ đo xoắn thời gian động (Nguồn [16]) 10
Hình 2-4 Cách tính độ đo chuỗi con chung dài nhất (Nguồn [29]) 11
Hình 2-5: Các phương pháp biến đổi sang miền tần số (Nguồn [10]) 14
Hình 2-6: Các phương pháp xấp xỉ từng đoạn (Nguồn [10]) 17
Hình 2-7: Ví dụ về R-Tree với 12 điểm (Nguồn [8]) 18
Hình 2-8: Biến thể R-Tree thành RUL-Tree với liên kết trực tiếp (Nguồn [21]) 19
Hình 2-9: 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 [22]) 19
Hình 2-10: VA+-Stream cho 6 chuỗi thời gian với b = 3 (Nguồn [17]) 20
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 Kiến trúc hệ thống xử lý truy vấn dựa trên IDC-Index (Nguồn [17]) 31
Hình 3-3 Chính sách cập nhật trì hoãn (Nguồn [17]) 35
Hình 3-4 Minh hoạ việc xác định ngưỡng cập nhật Δu (Nguồn [17]) 36
Hình 3-5: Vùng bao đường chân trời của chuỗi thời gian (Nguồn [23]) 39
Hình 3-6: Xấp xỉ vùng bao đường chân trời của chuỗi thời gian (Nguồn [23]) 40
Hình 3-7: Quá trình hợp nhất 2 đường chân trời (Nguồn [23]) 41
Hình 3-8 Minh họa phương pháp xấp xỉ gộp từng đọan (Nguồn [13]) 42
Hình 4-1: Độ đo tương tự dựa trên cửa sổ trượt có chiều dài là W (Nguồn [23]) 45
Hình 4-2: Mô hình kiến trúc hệ thống 47
Hình 4-3: Các bước cập nhật chỉ mục 48
Hình 4-4: Các bước xử lý truy vấn 50
Trang 12Hình 5-1: Hệ thống thực nghiệm 53
Hình 5-2: Kết quả thực nghiệm thời gian CPU với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo bán kính truy vấn 54
Hình 5-3: Kết quả thực nghiệm số lần truy cập đĩa với tập dữ liệu CHỨNG
KHOÁN trên R*-Tree và Skyline theo bán kính truy vấn 55
Hình 5-4: Kết quả thực nghiệm thời gian cập nhật chỉ mục với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo bán kính truy vấn 55
Hình 5-5: Kết quả thực nghiệm thời gian xậy dựng chỉ mục với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo bán kính truy vấn 56
Hình 5-6: Kết quả thực nghiệm thời gian CPU với tập dữ liệu SỨC GIÓ trên chỉ mục R*-Tree và Skyline theo bán kính truy vấn 56
Hình 5-7: Kết quả thực nghiệm số lần truy cập đĩa với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo bán kính truy vấn 57
Hình 5-8: Kết quả thời gian cập nhật chỉ mục với tập dữ liệu SỨC GIÓ trên Tree và Skyline theo bán kính truy vấn 57
Hình 5-9: Kết quả thời gian xậy dựng chỉ mục với tập dữ liệu SỨC GIÓ trên Tree và Skyline theo bán kính truy vấn 58
R*-Hình 5-10: Kết quả thực nghiệm thời gian CPU với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo số lân cận gần nhất 59
Hình 5-11: Kết quả thực nghiệm số lần truy cập đĩa với tập dữ liệu CHỨNG
KHOÁN trên R*-Tree và Skyline theo số lân cận gần nhất 60
Hình 5-12: Kết quả thực nghiệm thời gian cập nhật chỉ mục với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo số lân cận gần nhất 60
Hình 5-13: Kết quả thực nghiệm thời gian xây dựng chỉ mục với tập dữ liệu
CHỨNG KHOÁN trên R*-Tree và Skyline theo số lân cận gần nhất 61
Hình 5-14: Kết quả thực nghiệm thời gian CPU với tập dữ liệu SỨC GIÓ trên Tree và Skyline theo số lân cận gần nhất 61
Trang 13R*-Hình 5-15: Kết quả thực nghiệm số lần truy cập đĩa với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lân cận gần nhất 62
Hình 5-16: Kết quả thực nghiệm thời gian cập nhật chỉ mục với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lân cận gần nhất 62
Hình 5-17: Kết quả thực nghiệm thời gian xây dựng chỉ mục với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lân cận gần nhất 63
Hình 5-18: Kết quả thực nghiệm thời gian CPU với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo số lượng đoạn thu giảm 64
Hình 5-19: Kết quả thực nghiệm số lần truy cập đĩa với tập dữ liệu CHỨNG
KHOÁN trên R*-Tree và Skyline theo số lượng đoạn thu giảm 64
Hình 5-20: Kết quả thực nghiệm thời gian cập nhật chỉ mục với tập dữ liệu CHỨNG KHOÁN trên R*-Tree và Skyline theo số lượng đoạn thu giảm 65
Hình 5-21: Kết quả thực nghiệm thời gian xây dựng chỉ mục với tập dữ liệu
CHỨNG KHOÁN trên R*-Tree và Skyline theo số lượng đoạn thu giảm 65
Hình 5-22: Kết quả thực nghiệm số nút với tập dữ liệu CHỨNG KHOÁN trên Tree và Skyline theo số lượng đoạn thu giảm 66
R*-Hình 5-23: Kết quả thực nghiệm chiều cao của cây với tập dữ liệu CHỨNG
KHOÁN trên R*-Tree và Skyline theo số lượng đoạn thu giảm 66
Hình 5-24: Kết quả thực nghiệm kích thước tập tin với tập dữ liệu CHỨNG
KHOÁN trên R*-Tree và Skyline theo số lượng đoạn thu giảm 67
Hình 5-25: Kết quả thực nghiệm thời gian CPU với tập dữ liệu SỨC GIÓ trên Tree và Skyline theo số lượng đoạn thu giảm 67
R*-Hình 5-26: Kết quả thực nghiệm số lần truy cập đĩa với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lượng đoạn thu giảm 68
Hình 5-27: Kết quả thực nghiệm thời gian cập nhật chỉ mục với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lượng đoạn thu giảm 68
Hình 5-28: Kết quả thực nghiệm thời gian xây dựng chỉ mục với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lượng đoạn thu giảm 69
Trang 14Hình 5-29: Kết quả thực nghiệm số nút với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lượng đoạn thu giảm 69
Hình 5-30: Kết quả thực nghiệm chiều cao của cây với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lượng đoạn thu giảm 70
Hình 5-31: Kết quả thực nghiệm kích thước tập tin với tập dữ liệu SỨC GIÓ trên R*-Tree và Skyline theo số lượng đoạn thu giảm 70
Trang 15CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
Chương giới thiệu đề tài này sẽ trình bày nội dung sơ lược và mục tiêu của đề tài Đồng thời chương này cũng nêu lên những động cơ trong nghiên cứu và trong thực tiễn đòi hỏi cần phải thực hiện đề tài này
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 trong đó 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 rất lớn 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: Ví dụ về dữ liệu chuỗi thời gian (dữ liệu chứng khoán) (Nguồn [19])
E Keogh đã nêu lên những khó khăn và thách thức khi nghiên cứu dữ liệu chuỗi thời gian [11] như sau:
Trang 16• Dữ liệu quá lớn
o Dữ liệu điện tâm đồ khoảng 1 Gigabyte/giờ, dữ liệu ghi nhận các lần truy cập của một website khoảng 5 Gigabytes/tuần
• Phụ thuộc nhiều vào cách đánh giá độ tương tự
o Độ tương tự được định nghĩa tùy 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
o Định dạng dữ liệu khác nhau, tần số lấy mẫu khác nhau, bị nhiễu, thiếu giá trị, dữ liệu không sạch …
1.2 Dữ liệu chuỗi thời gian dạng luồng
M Kontaki và các cộng sự đã phân loại chuỗi thời gian thành 2 loại là chuỗi thời gian tĩnh (static time series) và chuỗi thời gian dạng luồng (streaming time
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à một 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], [6], [7], [25], [26], [27], [31] Đặc trưng của dữ liệu dạng luồng
là khối lượng dữ liệu lớn thậm chí có thể là vô tận, thay đổi nhanh chóng đòi hỏi
Trang 17đáp ứng nhanh, thời gian thực và truy xuất ngẫu nhiên là rất tốn kém J Han và M
Kamber đã tổng hợp các phương pháp xử lý dữ liệu dạng luồng như sau [9]: Lấy mẫu ngẫu nhiên (Random sampling), Biểu đồ tần số (Histograms), Cửa sổ trượt (Sliding windows), 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 algorithms) Một loạt các 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 windows) đã được đề
xuất [7], [17], [26], [27], [31]
1.3 Bài toán tìm kiếm tương tự trên chuỗi thời gian
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à 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) là 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ự (similarity search) trong cơ sở dữ liệu chuỗi thời gian là một
hướng nghiên cứu quan trọng Một số 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
Các yêu cầu truy vấn trên dữ liệu chuỗi thời gian có thể 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 là 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
Trang 18Hì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 trong dữ liệu ban đầu tương tự với dữ liệu truy vấn Minh họa truy vấn so trùng toàn bộ được thể hiện trong Hình 1-3 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
Hình 1-3 Truy vấn so trùng chuỗi con
M Kontaki và các cộng sự đã tổng kết được 3 loại truy vấn tương tự được sử dụng trong các công trình nghiên cứu [17], được định nghĩa như sau:
• Truy vấn tương tự vùng (similarity range query): cho đối tượng truy vấn
Q, tập các đối tượng A và khoảng cách e, lấy tất cả các đối tượng a ∈ A sao cho dist(q, a) ≤ e
Trang 19• Truy vấn tương tự k-lân-cận-gần-nhất (similarity k-nearest neighbors
query): cho đối tượng truy vấn Q, tập các đối tượng A và giá trị nguyên k, lấy k đối tượng cơ sở dữ liệu a i∈ A (1 ≤ i ≤ |A|) sao cho với bất kỳ a j∈ A (1 ≤ j ≤ |A| và j ≠ i) dist(q, a i ) ≤ dist(q, a j )
• Truy vấn tương tự ghép nối (similarity join query): cho 2 tập các đối
tượng A và B và khoảng cách e lấy các cặp (a, b) với a∈A và b∈B sao cho dist(a,b) ≤ e
Rõ ràng từ 3 loại truy vấn tương tự nêu trên, để thể hiện sự tương tự giữa 2 chuỗi thời gian, cần phải dựa trên độ đo khoảng cách Bài toán tìm kiếm tương tự có thể được áp dụng so trùng toàn bộ cũng như 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
Đề tài này dựa vào phương pháp tìm kiếm tương tự thích nghi trên chuỗi thời gian dạng luồng do M Kontaki và các cộng sự đề xuất năm 2007 [17] Mục tiêu chính của đề tài là mở rộng framework tìm kiếm tương tự trên dữ liệu chuỗi thời gian dạng luồng mà M Kontaki đã đề xuất bằng cách thay thế phương pháp thu giảm số chiều và cấu trúc chỉ mục Đề tài sẽ tiếp cận với phương pháp xấp xỉ gộp từng đoạn PAA và tận dụng các ưu điểm của cấu trúc chỉ mục Skyline giới thiệu bởi
Q Li và các cộng sự năm 2004 [23] Cũng giống như công trình [17], đề tài chỉ khảo sát trên 2 dạng truy vấn tương tự là truy vấn tương tự vùng và truy vấn tương
tự lân cận gần nhất Các thông số đánh giá hiệu suất có thể được khảo sát bao gồm:
thời gian CPU (CPU time), số truy cập đĩa (disk access), thời gian tạo cấu trúc chỉ mục (index building time), thời gian đáp ứng truy vấn (query response time), số lượng đoạn thu giảm (number of segments)
1.5 Cấu trúc 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 như sau:
Trang 20• 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 chuỗi dữ liệu thời gian 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 4 nhóm sau: nhóm các công trình nghiên cứu về độ tương tự, nhóm các công trình về thu giảm số chiều, nhóm các công trình
về xây dựng cấu trúc chỉ mục và nhóm 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 giới thiệu những lý thuyết mà sẽ được sử dụng để thực hiện đề tài, đồng thời xác định rõ hướng tiếp cận của đề tài Trong phần này chúng tôi sẽ trình bày kỹ về framework đã được để xuất bao gồm phép biến đổi Fourier rời rạc cùng với cách tính toán gia tăng cho phép biến đổi này và cấu trúc chỉ mục IDC-Index dựa trên R*-Tree Sau đó cấu trúc chỉ mục Skyline và phương pháp xấp xỉ gộp từng đoạn sẽ được trình bày
• Chương 4 trình bày nội dung nghiên cứu
• Chương 5 trình bày về một số kết quả thực nghiệm
• Chương 6 trình bày kết luận và hướng mở rộng của đề tài
Trang 21Vấ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 x, y bất kỳ trong tập dữ liệu Trong trường hợp hai đố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
Độ đo khoảng cách giữa các đối tượng nên thỏa các tính chất sau:
1) dist (x, y) = 0 ⇔ x = y
2) dist (x, y) = dist (y, x)
3) dist (x, y) ≥ 0 ∀x, y
4) dist (x, y) < dist (x, z) + dist (y, z)
Trong các tính chất về độ đo tương tự, tính chất 1, 2 và 3 là trực quan dễ thấy Tính chất 4 không phải là tính chất mang tính bắt buộc nhưng cần thiết cho kỹ thuật lập chỉ mục
Trong bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian, dữ liệu được biểu diễn thành các dãy số thực, như một vector đa chiều
X = x 1 x 2 … x n
Y = y 1 y 2 … y n
Trang 22Chúng ta cần phải tính độ tương tự Sim(X,Y) của 2 vector đa chiều này Những
phương pháp đánh giá mức độ tương tự đã được đề xuất sẽ được trình bày như sau
2.1.1 Độ đo Minkowski
Hầu hết các công trình nghiên cứu đề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
x Y
) , (
Trong đó p có thể có nhiều giá trị khác nhau nhưng trong các công trình nghiên cứu p thường nhận các giá trị 1 (khoảng cách Manhattan), 2 (Euclid), ∞ (Max) Giá trị p = 2 được dùng phổ biến nhất trong các công trình nghiên cứu Cách tính độ đo
Euclid (độ đo khoảng cách Minkowski khi p = 2) được minh họa trong Hình 2-1
Hình 2-1: Cách tính độ đo Euclid (Nguồn [16])
Một số ưu điểm và nhược điểm của phương pháp này:
• Ưu điểm
o Dễ tính toán
o Phù hợp với các phương pháp thu giảm số chiều DFT, DWT, PAA, APCA
Trang 23• Nhược điểm:
o Nhạy cảm với nhiễu
o Không thích hợp khi dữ liệu có đường cơ bản (base line) khác
nhau Trường hợp này được minh họa trong Hình 2-2(a)
o Không thích hợp khi dữ liệu có biên độ dao động khác nhau
Trường hợp này được minh họa trong Hình 2-2(b)
(a) Dữ liệu có đường cơ bản khác
nhau
(b) Dữ liệu có biên độ giao động khác nhau
Hình 2-2: Nhược điểm của độ đo Minkowski (Nguồn [16])
2.1.2 Độ đo xoắn thời gian động
Độ đo xoắn thời gian động (Dynamic Time Warping – DTW) tương tự như độ
đo 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ứ nhất so với điểm thứ i
của chuỗi thứ hai) 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 Cách tính độ đo xoắn thời gian động được minh họa trong Hình 2-3 Chi tiết về cách tính độ đo xoắn thời gian động được trình bày trong [4]
Trang 24Hình 2-3 Cách tính độ đo xoắn thời gian động (Nguồn [16])
Một số ưu điểm và nhược điểm của phương pháp này:
2.1.3 Độ đo chuỗi con chung dài nhất
Độ đo chuỗi con chung dài nhất (Longest Common Subsequence – LCS) do
Vlachos và các cộng sự đề xuất năm 2004 [29] Ý tưởng chính của phương pháp tính độ đo này là tìm những chuỗi con chung giữa hai chuỗi, độ đo được tính trên chiều dài của chuỗi con chung dài nhất Hai chuỗi có chuỗi con chung càng dài thì càng giống nhau Cách tính độ đo chuỗi con chung dài nhất được minh họa trong
Hình 2-4
Để hiểu rõ cách tính độ đo chuỗi con chung dài nhất, chúng ta xét ví dụ sau:
Trang 25Cho 2 chuỗi thời gian X = 5, 7, 2, 8, 1, 8, 6, 7 và Y = 7, 2, 4, 8, 2, 6, 8, 6 ⇒ LCS
= 7, 2, 8, 6 ⇒ Sim(X, Y) = |LCS| = 4
Hình 2-4 Cách tính độ đo chuỗi con chung dài nhất (Nguồn [29])
Một số ưu điểm và nhược điểm của phương pháp này:
• Ưu điểm:
o Cho phép bỏ qua những điểm bất thường khi so sánh
o Thể hiện tính trực quan của dữ liệu
• Nhươc điểm:
o Dữ liệu ban đầu phải được chuẩn hóa
2.2 Các phương pháp thu giảm số chiều
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ô Trong phương pháp thu giảm số chiều, chúng ta sẽ 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 các giá trị x 1 , x 2 , …, x n, chúng
ta chỉ cần lưu trữ chuỗi y 1 , y 2 , ….,y k là k hệ số của các đường cơ bản Từ những đường cơ bản này chúng ta cũng có thể phục hồi lại dữ liệu ban đầu Giá trị k càng
lớn thì đường phục hồi này càng chính xác với đường ban đầu và ngược lại Thay vì
tính toán trên dữ liệu n chiều, chúng ta chỉ cần tính toán trên dữ liệu k chiều (k <<
Trang 26n) Phương pháp mã hóa bằng cách biến đổi thành những đường cơ bản như vậy còn
được gọi là phương pháp thu giảm số chiều (dimensionality reduction)
2.2.1 Các phương pháp biến đổi sang miền tần số
2.2.1.1 Phương pháp biến đổi Fourier rời rạc
Phương pháp biến đổi Fourier rời rạc (Discrete Fourier Transform – DFT)
được sử dụng rất phổ biến trong xử lý ảnh và xử lý tín hiệu số Phương pháp này do
R Agrawal và cộng sự đề nghị đề xuất năm 1993 [1] 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
k
A t
C
1
)) 2
( )
2 ( (
)
Trong đó C(t) là chuỗi dữ liệu ban đầu, A k , B k là các hệ số biến đổi, được xem là đặc trưng của chuỗi dữ liệu ban đầu Phương pháp này được minh họa trong Hình 2-5(a)
Một số ưu điểm và nhược điểm của phương pháp này:
• Ưu điểm:
o 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 2 chuỗi X, Y thông qua khoảng cách của 2 chuỗi X f , Y f đã được biến đổi
o Hỗ trợ nhiều phương pháp lập chỉ mục như F-index, ST-index …
o Có thể tính DFT gia tăng khi xử lý cho chuỗi thời gian dạng luồng
Trang 272.2.1.2 Phương pháp biến đổi Wavelet rời rạc
Phương pháp biến đổi Wavelet rời rạc (Discrete Wavelet Transform – DWT)
do K Chan và W Fu đề xuất năm 1999 [5] Phương pháp DWT cũng giống phương pháp DFT, thay vì dùng đường cơ bản là đường lượng giác sin hay cosin như phương pháp DFT, phương pháp DWT dùng đường Haar Ngoài ra, phương pháp DWT cũng có thể sử dụng các đường cơ bản khác như đường Daubechies, Coiflet, Symmlet … Hình 2-5(b) minh họa phương pháp DWT được sử dụng với đường Haar
Một số ưu điểm và nhược điểm của phương pháp này:
2.2.1.3 Phương pháp phân rã giá trị riêng
Phương pháp phân rã giá trị riêng (Singular Value Decomposition - SVD) do
F Korn và cộng sự đề xuất [20], cũng giống như phưuơng pháp DFT và DWT Tuy nhiên, đường cơ bản trong SVD phụ thuộc vào dữ liệu Những đường cơ bản này
gọi là đường giá trị riêng (eigenwave) Phương pháp này được minh họa trong
Hình 2-5(c) Độ phức tạp của phương pháp này là rất lớn do phải 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
Một số ưu điểm và nhược điểm của phương pháp này:
• Ưu điểm:
Trang 28o Các đường giá trị riêng (eigenwave) cho phép thấy được hình dạng
2.2.2.1 Phương pháp xấp xỉ tuyến tính từng đoạn
Phương pháp xấp xỉ tuyến tính từng đoạn (Piecewise Linear Approximation -
PLA) do E Keogh và cộng sự đề nghị [11] [12] Trong phương pháp này dữ liệu
Trang 29ban đầu 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 (best-fit) những điểm có
trong phân đoạn chuỗi thời gian đó Các đoạn thẳng này có thể rời nhau hoặc liên
tục Hình 2-6(a) minh họa phương pháp xấp xỉ này
Một số ưu điểm và nhược điểm của phương pháp này:
Phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation -
PAA) do E Keogh và cộng sự đề xuất năm 2001 [13] Ý tưởng chính của phương pháp này rất đơn giản, chúng ta tuần tự xấp xỉ k điểm liền kề nhau thành 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 Hình 2-6(b) minh họa
phương pháp xấp xỉ này
Một số ưu điểm và nhược điểm của phương pháp này:
• Ưu điểm:
o Thời gian tính toán nhanh
o Hỗ trợ nhiều độ đo tương tự (Minkowski, DTW …)
o Hỗ trợ đối tượng truy vấn có chiều dài khác nhau
Trang 30• Nhược điểm:
o Khó xây dựng lại chuỗi ban đầu và thường sinh lỗi lớn
o Không quan tâm đến những điểm đặc biệt, chẳng hạn như điểm cực trị, trong từng đoạn xấp xỉ
2.2.2.3 Phương pháp xấp xỉ hằng số từng đoạn thích nghi
Phương pháp xấp xỉ hằng số từng đoạn thích nghi (Adaptive Piecewise Constant Approximation - APCA) được E Keogh và các cộng sự đề xuất năm 2001
[15] 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 ở PAA có kích thước bằng nhau, còn ở APCA thì kích thước của các đoạn là khác
nhau tùy theo dữ liệu Những vùng nào trên chuỗi thời gian có biến động nhấp nhô nhiều thì được phân thành những đoạn ngắn, còn những vùng nào ít biến động thì
được phân thành những đoạn dài hơn Hình 2-6(c) minh họa phương pháp xấp xỉ
này
Một số ưu điểm và nhược điểm của phương pháp này:
• Ưu điểm:
o Tỷ lệ nén cao hơn so với phương pháp PAA
o Tỷ lệ lỗi khi khôi phục lại dữ liệu nhỏ hơn so với phương pháp PAA
• Nhược điểm:
o Độ phức tạp của phương pháp này là O(nlog(n))
Trang 31(a) PLA (b) PAA (c) APCA
Hình 2-6: Các phương pháp xấp xỉ từng đoạn (Nguồn [10])
2.3 Cấu trúc chỉ mục
2.3.1 Cấu trúc chỉ mục R-Tree/R*-Tree
R-Tree do A Guttman đề xuất năm 1984 [8] R-Tree là cấu trúc cây dựa trên
B-Tree Cũng giống như B-tree, R-Tree là cây cân bằng Mỗi nút trong R-Tree chứa từ
m đến M dữ liệu (m và M là 2 thông số trong quá trình xây dựng R-Tree) Mỗi dữ
liệu 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-7 minh họa biểu diễn R-Tree dựa trên kết quả sự phân chia 12 giá trị dữ liệu
2 chiều (R8 đến R19) thành 7 MBR
Trang 32Hình 2-7: Ví dụ về R-Tree với 12 điểm (Nguồn [8])
Năm 1990, N Beckmann và các cộng sự đề xuất cấu trúc R*-Tree [3] R*-Tree
là một cấu trúc cải tiến những nhược điểm của R-Tree Điểm khác biệt chính trong cấu trúc R*-Tree so với R-Tree chính là thao tác thêm phần tử Chúng ta sẽ đi sâu tìm hiểu vể cấu trúc R*-Tree trong phần 3.2
Trang 33Cá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) [21] 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-8 M
Lee và các cộng sự đề xuất chiến lược cập nhật từ dưới lên cho R-Tree tổng quát từ các kỹ thuật cập nhật hiện có nhằm mục tiêu cải thiện hiệu suất cập nhật của R-Tree
[22] trong năm 2003 Minh họa cho biến thể này được thể hiện trong Hình 2-9
Hình 2-8: Biến thể R-Tree thành RUL-Tree với liên kết trực tiếp (Nguồn [21])
Hình 2-9: 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 [22])
Trang 342.3.2 Cấu trúc chỉ mục VA-Stream/VA+-Stream
Năm 2003, X Liu và H Ferhatosmanoglu đề xuất cấu trúc chỉ mục Stream/VA+-Stream [26], là biến thể của VA-File /VA+-file do R Weber và các cộng sự đề xuất năm 1998 [30] VA-Stream/VA+-Stream là cấu trúc chỉ mục để vượt qua giới hạn về số chiều và hỗ trợ tìm kiếm tương tự hiệu quả cho dữ liệu không đồng nhất
VA-VA+-Stream chia không gian dữ liệu thành 2 b ô, trong đó b là tham số người
dùng chỉ định VA+-Stream phân bổ số lượng các bit khác nhau cho mỗi chiều
Tổng của các bit này bằng b Mỗi ô là một xấp xỉ của các điểm dữ liệu rơi vào trong
ô và được biểu diện bởi một chuỗi bit có chiều dài b Ví dụ về 6 chuỗi thời gian
trong không gian 2D với b = 3 được đưa ra trong Hình 2-10
Hình 2-10: VA+-Stream cho 6 chuỗi thời gian với b = 3 (Nguồn [17])
Hiệu suất của phương pháp này phụ thuộc nhiều vào số bit kết hợp với mỗi
chiều VA+-Stream chia không gian thành 2 b ô, trong đó b là tổng số bit Vì nhiều
trong số những ô không được sử dụng, để giảm số lượng ô các tác giả đề xuất một cấu trúc có tên là CSET Cấu trúc này lưu trữ các ô có chứa luồng dữ liệu Hạn chế
của cấu trúc này là kích thước của nó Để xác định một ô, nếu d chiều được sử dụng
Trang 35(tức là kích thước cửa sổ trượt là d), thì cần d số nguyên Do đó, kích thước của cấu trúc CSET là n * d số nguyên, trong đó n là số luồng dữ liệu
Chi tiết về các giải thuật trên VA-Stream/VA+-Stream có thể tham khảo trong [26]
2.3.3 Cấu trúc chỉ mục Skyline
Cấu trúc chỉ mục Skyline là một cấu trúc chỉ mục dựa trên R-Tree Q Li và các cộng sự đã đưa ra định nghĩa SBR thay cho MBR trong R-Tree / R*-Tree [23] Chi tiết về cấu trúc chỉ mục này sẽ được trình bày trong phần 3.4
Những lợi ích của cấu trúc chỉ mục Skyline đã được Q Li và các cộng sự nêu ra năm 2004 và chứng minh bằng kết quả thực nghiệm trong [23] 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ác phương pháp xấp xỉ khác nhau (DFT, DWT, PAA, APCA, … ) có thể được sử dụng để biểu diễn cho các phần
tử dữ liệu và vùng bao đường chân trời
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
Nhiều cách tiếp cận khác nhau đã được đề xuất cho bài toán tìm kiếm tương tự trên chuỗi thời gian nhưng hầu hết những cách tiếp cận đề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 Tìm kiếm tương tự trên chuỗi thời gian dạng luồng đã được nghiên cứu trong [7] của L Gao và X S Wang năm 2002 Trong công trình này, tìm kiếm tương tự dùng truy vấn so trùng toàn bộ chuỗi và 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
Trang 36– FFT) để tìm tương quan chéo giữa những 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ý hàng loạt (batch processing) Phương pháp tiên đóan
đượ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 (với các giá trị đã đến) và các mẫu cơ sở dữ liệu, và để có được khoảng cách dự đoán giữa chuỗi thời gian đến tại các 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 cùng với các khoảng cách dự đoán được
sử dụng để lọc ra những mẫu mà không thể là láng giềng gần hoặc gần nhất
Năm 2003, X Liu, H Ferhatosmanoglu đề xuất cấu trúc chỉ mục có thể thích ứng với sự thay đổi về chiều của các đố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 Stream/VA+-Stream được đã được áp dụng trên truy vấn k-lân-cận-gần-nhất Hai tác giả đã xét trường hợp sử dụng cửa sổ trượt và cửa sổ trượt có kích thước vô hạn (coi như không sử dụng cửa sổ trượt)
VA-Năm 2003, H.Wu và các cộng sự đã thực hiện so trùng chuỗi hướng-sự-kiện 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 gánh nặng cho hệ thống,
việc tìm kiếm hướng tương tự chỉ được thực hiện khi có sự kiện nào trong hệ thống
đó xảy ra H.Wu và các cộng sự đã đề xuất cách phân đoạn (segmentation) đồ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 các luồng dữ liệu tài chính thô Các tác giả cũng định nghĩa độ đ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 sử dụng cấu trúc chỉ mục
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
Trang 37gian quy mô lớn và động, chẳng hạn như dữ liệu luồng trong năm 2006 [27] Hai tác
giả này đã đề xuất kỹ thuật tổng hợp trực tuyến dựa trên biế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 2 phiên bản là phiên bản chính xác và 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 sau đây: 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 hệ 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 Hai tác giả đã phát triển một framework chung dựa trên dự đoán bình phương tốt thiểu đệ quy (Recursive Least Squares Estimation - RLSE)
để cập nhật động các hệ số chuyển đổi đầu tiên của các luồng dữ liệu Sau đó hai tác
giả mở rộng phương pháp duy trì các bản tóm tắt với cửa sổ trượt (sliding windows), các bản tóm tắt có thể được sử dụng để trả lời truy vấn liên tục
(continuous queries) với hiệu suất cao Các loại truy vấn được khảo sát trong công
trình bao gồm: truy vấn điểm (point queries), truy vấn vùng (range queries) và truy vấn k-lân-cận-gần-nhất (k-nn queries) U Y Ogras và H Ferhatosmanoglu đã
minh họa framework đề xuất phát sinh bản tóm tắt trên DFT duy trì bản tóm tắt trên cửa sổ trượt
Năm 2007, phương pháp tìm kiếm tương tự thích nghi trên chuỗi thời gian dạng luồng được M Kontaki và các cộng sự đã đề xuất [17] Phương pháp này tập trung vào 2 dạng truy vấn là truy vấn vùng và truy vấn lân cận 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 này Một đặc tính quan trọng của phương pháp đề xuất là khả năng thích nghi với tần suất 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ả tìm cách giữ cho tần số cập nhật ở mức độ quy định
để đảm bảo hiệu quả
Trang 38X Lian và L Chen đề xuất cách 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 vào năm 2008 [25] Hai 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, 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 các 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 các giá trị xấp xỉ trong miền tần số X Lian và L Chen đề xuất phương pháp dự đoán theo cách tiếp cận xác suất để dự đoán giá trị tương lai theo tập hợp tất cả các dữ liệu trong lịch sử Hai tác giả này 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 bằng cách sử dụng các mối tương quan giữa các chuỗi thời gian dạng luồng Lỗi dự báo trong các cách tiếp cận trên được xác định bằng bình phương khoảng cách Euclid giữa các giá trị dự báo và thực tế chia cho lỗi dự báo tối đa có thể
Tóm lại, trong các 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 là tiến hành dự đoán dữ liệu trước khi dữ liệu thực tế đến Đề tài sẽ tập trung theo hướng tìm kiếm tương tự dựa trên chuỗi thời gian được lưu trữ hoàn chỉnh
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 lẫn chuỗi thời gian dạng luồng M Kontaki và các cộng sự đã đề xuất cấu trúc IDC-Index, cấu trúc chỉ mục dựa trên cấu trúc R*-Tree có bổ sung thêm rút trích đặc trưng bằng tính toán DFT gia tăng và chính sách cập nhật trì hoãn [17] Tuy nhiên Q Li và các cộng sự cũng đã đề xuất cấu trúc chỉ mục Skyline mà kết quả thực nghiệm trên chuỗi thời gian tĩnh là tốt hơn so với R*-Tree
Trang 39CHƯƠNG 3: CƠ SỞ LÝ THUYẾT VÀ
HƯỚNG TIẾP CẬN
Trong đề tài này để giải quyết 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, một số vấn đề lý thuyết của các lĩnh vực khác sẽ được sử dụng Vì vậy, chương này sẽ trình bày những điểm cơ bản của các lý thuyết đó Trước tiên 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 được giới thiệu Phần tiếp theo của chương này trình bày sẽ cấu trúc chỉ mục IDC-Index và từng thành phần trong framework của M.Kontaki và các cộng sự sẽ được trình bày Cuối cùng, cấu trúc chỉ mục Skyline và phương pháp xấp xỉ gộp từng đoạn sẽ được nhắc đến
3.1 Phương pháp biến đổi Fourier rời rạc
Ý tưởng cơ bản của phương pháp biến đổi Fourier rời rạc (DFT) là bất kỳ tín
hiệu nào dù phức tạp đến đâu cũng có thể được biểu diễn là sự chồng chất của một
số hữu hạn của sóng sin (và / hoặc sóng cosin), trong đó mỗi sóng được biểu diễn bởi một số phức gọi là hệ số Fourier Ý tưởng của phương pháp biến đổi Fourier rời
rạc được tóm tắt lại trong Hình 3-1
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])
Trang 40Công thức biến đổi DFT N-điểm cho chuỗi chiều dài L được trình bày như sau:
( ) , 0 , 1 , 2 , , 1
1 )
n
N kn
2cos
1 W n
I R
R
N
kn n
x N
kn n
x N k
2 sin
1 W n
I R
I
N
kn n
x N
kn n
x N k
Phương pháp DFT đã được sử dụng thành công được cho việc so trùng toàn bộ
và so trùng chuỗi con trong chuỗi thời gian tĩnh [1] hoặc chuỗi thời gian dạng luồng
[17], [33] Cách tính toán DFT gia tăng (incremental DFT) cũng được đề xuất
trong [17] nhằm tránh tính toán lại các hệ số DFT đã tính trước đó (sẽ trình bày ở
Cấu trúc chỉ mục R*-Tree có các tính chất sau:
• Nút nội (internal node) chứa các phần tử (entry) có dạng (rectangle,
child-pointer), trong đó child-pointer 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
• Nút lá (leaf node) chứa các phần tử có dạng (object-identifier, rectangle),
trong đó object-identifier chỉ đến các mục dữ liệu cần lưu trữ chứa trong