- 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
GIỚI THIỆU ĐỀ TÀI
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…
Dữ liệu thường không đồng nhất do các loại dữ liệu khác nhau có định dạng và tần suất lấy mẫu khác nhau Ngoài ra, dữ liệu còn có thể bị nhiễu, thiếu giá trị hoặc chứa các lỗi khác.
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]
Truy vấn tương tự trên chuỗi thời gian dạng luồng
Khác hẳn với cơ sở dữ liệu truyền thống, cơ sở dữ liệu chuỗi thời gian cho phép chứa dữ liệu có nhiễu và chứa cả lỗi Vì vậy, khả năng tồn tại hai chuỗi thời gian có cùng một giá trị trong cùng một thời điểm là rất thấp Bởi lý do đó, tìm kiếm tương tự thích hợp hơn so với tìm kiếm chính xác Tìm kiếm tương tự trong cơ sở dữ liệu chuỗi thời gian là hướng nghiên cứu quan trọng được nhiều nhà nghiên cứu quan tâm.
So khớp toàn bộ là khi độ dài của chuỗi dữ liệu truy vấn bằng với độ dài của chuỗi dữ liệu ban đầu Bài toán này thường ứng dụng trong gom cụm hoặc phân loại dữ liệu chuỗi thời gian như tìm giá chứng khoán của những công ty có sự biến động tương đồng.
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
Hì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 O x 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 ϵ
- 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 ≤
- 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) ≤ ℮
Bà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.
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].
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
CHƯƠNG 2: TỔNG THUẬT NHỮNG CÔNG TRÌNH
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.
Các công trình về độ đo tương tự
Đo khoảng cách là một khía cạnh quan trọng trong xử lý chuỗi thời gian, hỗ trợ so sánh hiệu quả các đối tượng Xác định khoảng cách giữa hai đối tượng đòi hỏi việc lựa chọn một phép đo khoảng cách phù hợp Khoảng cách càng nhỏ biểu thị độ tương tự càng cao, giúp nắm bắt chính xác điểm giống và điểm khác nhau giữa các đối tượng chuỗi thời gian.
Trần Thị Thanh Nga - 10070489 7 giữ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:
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á mức độ tương tự đã được đề nghị:
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:
Trong đó p = 1, 2, …, ∞ Tuy 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 giá trị: p = 1: khoảng cách Manhattan p = 2: khoảng cách Euclid (thường được dùng nhiều nhất)
Trần Thị Thanh Nga - 10070489 8 p = ∞: khoảng cách Max
Độ đo Euclid, tính toán đơn giản và có khả năng mở rộng cho nhiều bài toán phân tích dữ liệu khác nhau Độ đo này đặc biệt phù hợp khi sử dụng với các biến đổi DFT, DWT, PAA, APCA, SAX,
Nhược điểm: o 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
Trần Thị Thanh Nga - 10070489 9 a) Đườ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]
Hì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
Điểm yếu lớn nhất của DTW là thời gian chạy lâu tốn gấp hàng trăm đến hàng nghìn lần so với độ đo Euclid Giải thuật DTW ban đầu có w = n (n là chiều dài của dữ liệu), dẫn đến độ phức tạp O(n^2) Để giảm độ phức tạp, người ta đưa ra thông số cửa sổ xoắn w (w
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ỹ
Trần Thị Thanh Nga - 10070489 11 thuậ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