1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Cấu trúc chỉ mục cho dữ liệu chuỗi thời gian với độ đo khoảng cách xoắn thời gian động

79 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Chương 1: Giới thiệu (13)
    • 1.1 Dữ liệu chuỗi thời gian (14)
    • 1.2 Cấu trúc chỉ mục cho dữ liệu chuỗi thời gian với độ đo xoắn thời gian động (15)
    • 1.3 Mục tiêu nghiên cứu (16)
    • 1.4 Kết quả đạt đƣợc (17)
    • 1.5 Cấu trúc của đề cương luận văn (18)
  • Chương 2: Tổng thuật về các công trình liên quan (19)
    • 2.1 Các công trình về độ đo tương tự (19)
      • 2.1.1 Độ đo Minkowski (19)
      • 2.1.2 Phương pháp chuỗi con chung dài nhất (Longest Common (21)
      • 2.1.3 Độ đo khoảng cách xoắn thời gian động (22)
    • 2.2 Các cấu trúc chỉ mục cho dữ liệu chuỗi thời gian (24)
      • 2.2.1 Cấu trúc chỉ mục cây hậu tố (24)
      • 2.2.2 Cấu trúc chỉ mục R-tree (25)
      • 2.2.3 Khung thức GEMINI (GEneric Multimedia INdexIng) (25)
    • 2.3 Đánh chỉ mục chính xác cho độ đo khoảng cách xoắn thời gian động (26)
      • 2.3.1 Chặn dưới cho DTW (27)
      • 2.3.2 Đánh chỉ mục cho DTW sử dụng LB_Keogh (33)
  • Chương 3: Cơ sở lý thuyết (42)
    • 3.1 Cấu trúc chỉ mục R-Tree (42)
      • 3.1.1 Giới thiệu về R-Tree (42)
      • 3.1.2 Cấu trúc chỉ mục R-Tree (43)
      • 3.1.3 Tìm kiếm và cập nhật (44)
    • 3.2 Cấu trúc chỉ mục dựa trên lưới (50)
      • 3.2.1 Tổng quát về cách tiếp cận (50)
      • 3.2.2 Biểu diễn dữ liệu (52)
    • 3.3 Tìm kiếm K láng giềng gần nhất của DTW (60)
  • Chương 4: Hiện thực và thử nghiệm (63)
    • 4.1 Hiện thực (63)
      • 4.1.1 Giao diện người dùng (63)
      • 4.1.2 Kiến trúc của chương trình (65)
    • 4.2 Thử nghiệm (66)
  • Chương 5: Kết luận và hướng phát triển (71)
    • 5.1 Kết luận (71)
    • 5.2 Hướng phát triển (71)

Nội dung

CẤU TRÚC CHỈ MỤC CHO DỮ LIỆU CHUỖI THỜI GIAN VỚI ĐỘ ĐO KHOẢNG CÁCH XOẮN THỜI GIAN ĐỘNG .... 1.2 Cấu trúc chỉ mục cho dữ liệu chuỗi thời gian với độ đo xoắn thời gian động Cấu trúc chỉ mụ

Giới thiệu

Dữ liệu chuỗi thời gian

Định nghĩa 1.1: Chuỗi thời gian (Time Series) T = t 1 , t 2 … t m là tập hợp có thứ tự các quan sát đơn biến hoặc đa biến đƣợc đo sau những khoảng thời gian bằng nhau theo thời gian Trong đề tài này, chúng tôi chỉ xem xét với t i là các giá trị thực

Có rất nhiều dữ liệu có yếu tố thời gian nhƣ dữ liệu về giá chứng khoán, điện tâm đồ, mực nước, lưu lượng truyền trên mạng, dữ liệu tài chính… Việc khai phá dữ liệu chuỗi thời gian đã thu hút rất nhiều sự nghiên cứu trên thế giới Cụ thể là một số lĩnh vực nghiên cứu sau:

 Tìm kiếm tương tự (Similarity Search): cho một chuỗi thời gian truy vấn

Q, và một hàm tính độ tương tự hoặc độ sai biệt D(Q,C), tìm những chuỗi thời gian tương tự nhất với Q trong cơ sở dữ liệu DB nào đó

 Gom cụm (clustering): tìm những sự phân nhóm theo tự nhiên của những chuỗi thời gian trong cơ sở dữ liệu DB theo một hàm tính độ tương tự D(Q,C)

 Phân lớp (Classification): cho một chuỗi thời gian chƣa gán nhóm Q, gán nó vào một trong những nhóm đã được định nghĩa trước

 Tóm tắt (Summarization): cho chuỗi thời gian Q có n điểm dữ liệu trong đó n là con số rất lớn, tạo một sự xấp xỉ của Q để vừa khít theo một giới hạn nào đó (chẳng hạn màn hình máy tính, trang giấy…) sao cho vẫn duy trì những đặc trƣng bản chất của nó

 Phát hiện bất thường (Anomaly detection): cho một chuỗi thời gian Q, và một vài mô hình hành vi bình thường (normal behavior), tìm tất cả những phần thuộc Q có chứa bất thường Ngoài ra còn có nhiều tên gọi khác cho lĩnh vực này nhƣ phát hiện những hành vi gây ngạc nhiên (surprising behavior), hành vi quan tâm (interesting behavior), hành vi không mong đợi (unexpected behavior), hành vi lạ thường (novel behavior) Đồng thời có rất nhiều định nghĩa nhƣ thế nào gọi là bất thường

Cấu trúc chỉ mục cho dữ liệu chuỗi thời gian với độ đo xoắn thời gian động

Cấu trúc chỉ mục cho cơ sở dữ liệu chuỗi thời gian đã thu hút sự quan tâm của cộng đồng cơ sở dữ liệu trong những năm gần đây Hầu hết những nghiên cứu trong lĩnh vực này tập trung vào việc cấu trúc chỉ mục dưới độ đo khoảng cách Euclid Tuy nhiên khoảng cách Euclid là độ đo khoảng cách rất thô Điều chúng tôi cần là một phương pháp mà cho phép một phép chuyển dịch mềm dẻo trên hệ trục tọa độ, để xác định những chuỗi con tương đồng D Berndt and J Clifford vào đã giới thiệu độ đo tương tự mới, xoắn thời gian động (dynamic time warping – DTW) vào năm 1994 [9] Khoảng cách DTW phản ánh sự tương đồng chính xác của chuỗi thời gian hơn là khoảng cách Euclid Hình 1.1 đƣa ra hai chuỗi con có thể có khoảng cách Euclid lớn, nhƣng với DTW bằng việc canh từ đỉnh tới đỉnh, đáy tới đáy, có thể phát hiện ra sự tương đồng thật sự của hai chuỗi thời gian này

Để chỉ mục chuỗi thời gian, đo độ xoắn thời gian động được dùng cùng cấu trúc chỉ mục đa chiều Mỗi điểm dữ liệu trong chuỗi thời gian là một tọa độ trong không gian hai chiều Do đó, mỗi chuỗi thời gian trở thành một điểm trong không gian có nhiều chiều Các chuỗi thời gian tương tự sẽ có khoảng cách nhỏ trong không gian này Tuy nhiên, không gian thường có nhiều chiều, khoảng hàng trăm hoặc hàng ngàn chiều Với dữ liệu đa chiều, cấu trúc chỉ mục R-tree không thể loại bỏ nhiều đối tượng và tất cả các nút trong cấu trúc cây sẽ được kiểm tra Điều này làm giảm hiệu quả của R-tree còn tệ hơn cả dò tìm tuần tự vì truy xuất ngẫu nhiên của R-tree không hiệu quả bằng truy xuất tuần tự.

Một phương pháp cấu trúc chỉ mục khác cho dữ liệu chuỗi thời gian với độ đo xoắn thời gian động đƣợc đƣa ra bởi Jiyuan An và các cộng sự vào năm 2004 [21], gọi là cấu trúc chỉ mục dựa trên lưới(grid based index) Mỗi chuỗi thời gian có đặc tính riêng của nó; một điểm dữ liệu trong chuỗi thời gian có một vài quan hệ với những láng giềng của nó Chúng tôi có thể minh họa sự khác biệt của những điểm dữ liệu kế cận trên một chuỗi thời gian nhƣ sau Đầu tiên, chúng tôi chuẩn hóa tất cả những điểm dữ liệu trong chuỗi thời gian vào khoảng [0,1], và sau đó tính toán sự khác biệt với những điểm dữ liệu trước đó của nó Hình 1.2 trình bày biểu đồ về sự khác biệt của hai tập dữ liệu thực tế, Shuttle và Koski-ecg[21] Từ hình vẽ này chúng tôi thấy rằng hơn 90% của dữ liệu có sự khác biệt ít hơn 0.01 với những điểm dữ liệu trước đó của nó Như vậy hầu hết những điểm dữ liệu có giá trị tương tự với những điểm dữ liệu kế cận của nó Jiyuan An và các cộng sự đưa ra một phương pháp thu giảm số chiều mới mà sẽ bỏ qua những điểm dữ liệu mà có giá trị tương tự với giá trị dữ liệu trước [21] Phương pháp thu giảm số chiều này được gọi là Lưới (Grid)

Hình 1.3: Biểu đồ 2 tập dữ liệu thực tế: Shuttle và Koski_ecg ( [21])

Mục tiêu nghiên cứu

Trong nghiên cứu này, chúng tôi tập trung tìm hiểu cấu trúc chỉ mục R-Tree và cấu trúc chỉ mục dựa trên lưới cho dữ liệu chuỗi thời gian với độ đo xoắn thời gian động Chúng tôi xây dựng các cấu trúc chỉ mục này nhằm tìm chuỗi con tương đồng nhất và so sánh kết quả thu được.

 Tìm hiểu về cấu trúc chỉ mục R-Tree với độ đo xoắn thời gian động và độ chặt chặn dưới Keogh_PAA Để đơn giản sau này chúng tôi sẽ gọi phương pháp này là Keogh_PAA

 Tìm hiểu cấu trúc chỉ mục dựa vào lưới cho độ đo khoảng cách xoắn thời gian động Để đơn giản sau này chúng tôi sẽ gọi phương pháp này là Grid

 Áp dụng các cấu trúc chỉ mục này vào bài toán tìm kiếm chuỗi con tương tự trong dữ liệu chuỗi thời gian

 Hiện thực và so sánh hiệu quả giữa hai phương pháp đánhh chỉ mục Keogh_PAA và Grid

Kết quả đạt đƣợc

Thông qua việc thực hiện luận văn này, chúng tôi đã đạt đƣợc một số kết quả nhƣ sau:

 Hiểu về cấu trúc chỉ mục R-Tree

 Hiểu về chặn dưới theo phương pháp Keogh_PAA

 Hiểu về giải thuật tìm kiếm K chuỗi con tương tự nhất sử dụng cấu trúc chỉ mục R-Tree và chặn dưới Keogh_PAA

 Hiểu về một cách thu giảm số chiều mới do Jiyuan và các cộng sự đề nghị năm 2003 [18], đó là cách thu giảm số chiều theo dữ liệu (gọi là biểu diễn DDR)

 Hiểu về cấu trúc chỉ mục dựa trên lưới, và tạo file chỉ mục cho dữ liệu chuỗi thời gian nhƣ Jiyuan và các cộng sự đề nghị [18]

 Hiểu về chặn dưới theo lưới như được đưa ra bởi Jiyuan và các cộng sự [18]

 Hiện thực giải thuật tìm kiếm K chuỗi con tương đồng nhất theo cả hai phương pháp Keogh_PAA và Grid

 Thông qua thử nghiệm chúng tôi vẫn chƣa thể kết luận đƣợc Grid hay Keogh_PAA tốt hơn về phương diện độ chặt của chặn dưới và số lần truy xuất đĩa

Cấu trúc của đề cương luận văn

Phần còn lại của đề cương luận văn cáo được tổ chức như sau:

Ở chương hai, chúng tôi sẽ trình bày tóm tắt các công trình liên quan Bao gồm các công trình nghiên cứu về độ đo tương tự, các công trình về cấu trúc chỉ mục, các phương pháp xác định chặn trên và chặn dưới, và các công trình nghiên cứu để tìm chuỗi con bất thường nhất.

Trong chương ba, sẽ trình bày về các cơ sở lí thuyết cho đề tài như cấu trúc chỉ mục R-Tree và cấu trúc chỉ mục dựa trên lưới với độ đo xoắn thời gian động

Hiện thực và thử nghiệm sẽ được trình bày trong chương 4

Kết luận và hướng phát triển sẽ được trình bày trong chương 5

Tổng thuật về các công trình liên quan

Các công trình về độ đo tương tự

Trong quá trình giải các bài toán chuỗi thời gian, việc xác định độ tương tự giữa các đối tượng là một bước vô cùng quan trọng Độ tương tự này sẽ ảnh hưởng đến độ chính xác của mô hình dự báo hoặc các thuật toán tìm kiếm chuỗi con bất đồng.

O 1 , O 2 là vấn đề cơ bản và rất quan trọng Hai đối tƣợng đƣợc xem là giống nhau khi khoảng cách của chúng bằng 0, là tương tự nhau khi khoảng cách của chúng nhỏ hơn một giá trị ngưỡng nào đó Và với một hàm tính độ tương tự D(x, y), các tính chất sau cần đƣợc thỏa mãn:

Dễ dàng nhận thấy các tính chất này là cần thiết nhƣ thế nào Ví dụ, giả sử tính chất (1) không thỏa, nhƣ vậy số lần tính khoảng cách sẽ tăng gấp đôi (vì ta phải tính cả khoảng cách từ x đến y và khoảng cách từ y đến x), thêm nữa ta sẽ có một phát biểu hết sức không tự nhiên “x tương tự y nhưng y không tương tự x!”

Chúng tôi sẽ xem xét các hàm tính độ tương tự phổ biến trong phần tiếp theo

8 trong đó, p = 1 (độ đo Manhattan) p = 2 (độ đo Euclid) p = ∞ (độ đo Max)

Mặc dù có nhiều sự lựa chọn khác nhau cho p, nhưng người ta thường chọn p = 2 vì những ƣu điểm sau: Ƣu điểm:

 Có thể áp dụng trong nhiều bài toán như phân loại, gom cụm, tìm kiếm tương tự Thích hợp cho nhiều phép biến biểu diễn xấp xỉ nhƣ DFT, DWT, PAA, hay APCA …

 Không thể áp dụng cho các chuỗi thời gian có đường cơ bản (base line) biến đổi giống nhau nhƣng lệch nhau về thời gian hoặc biên độ (amplitude) khác nhau (xem hình 2.1) Để khắc phục nhược điểm này, trước khi tính khoảng cách, ta cần chuẩn hóa các chuỗi thời gian Một cách chuẩn hóa đƣợc sử dụng phổ biến là đƣa về dạng trung bình zero (zero-mean) và độ lệch chuẩn (deviation) là 1

(1) Đường cơ bản khác nhau (2)Biên độ dao động khác nhau

Hình 2.1: Trường hợp 2 chuỗi có đường cơ bản lệch nhau và biên độ dao động khác nhau ([15])

Ví dụ, cho Q có giá trị trung bình là mean(Q) và độ lệch chuẩn là var(Q), Q’ là chuỗi chuẩn hóa của Q đƣợc tính nhƣ sau:

2.1.2 Phương pháp chuỗi con chung dài nhất (Longest Common Subsequence – LCS)

Phương pháp LCS do Vlachos và các cộng sự đề ra năm 2004[25] Điểm nổi bật của phương pháp này là nó cho phép bỏ qua những điểm bất thường khi so sánh Ý tưởng chính của phương pháp này là tìm những chuỗi con chung Hai chuỗi có chuỗi con chung càng dài thì càng giống nhau Ví dụ, cho 2 chuỗi X, Y:

LCS = 2, 5, 7, 10 => Dist(X,Y) = |LCS| = 4 Ƣu điểm:

 Thể hiện tính trực quan của dữ liệu và cho phép bỏ qua những điểm bất thường

 Cũng giống phương pháp Euclid, dữ liệu nên được chuẩn hóa trước khi áp dụng phương pháp này, nhằm tránh hiện tượng tịnh tiến (shifting) đường cơ bản hay co giãn (scaling) biên độ

2.1.3 Độ đo khoảng cách xoắn thời gian động

Giả sử chúng tôi có 2 chuỗi thời gian Q và C, chiều dài n và m, sao cho:

C = c1, c2,….ci,…cn Để đo khoảng cách giữa hai chuỗi thời gian sử dụng DTW, ta xây dựng ma trận n x m mà tại đó phần tử (i, j) của ma trận chứa khoảng cách d(qi, cj) giữa hai điểm qi và cj (ví dụ: d(qi, cj) = (qi – cj)2) Mỗi phần tử trong ma trận (i, j) tương ứng với khoảng cách giữa hai điểm qi và cj Điều này được minh họa trong Hình 2.2 Đường xoắn W là tập liên tục các phần tử ma trận xác định một phép ánh xạ giữa Q và C.

C Phần tử thứ k của W đƣợc định nghĩa nhƣ là w k = (i,j) k

Vì thế chúng tôi có W = w 1 ,w 2 ,…….w k ,……w K max(m,n) ≤ K < m + n -1 Đường xoắn thời gian động có vài ràng buộc:

 Ràng buộc biên: w 1 = (1,1) và w K = (m,n) Điều này đòi hỏi đường xoắn thời gian động bắt đầu và hoàn tất trong những ô góc đối diện của ma trận

 Liên tục: Cho w k = (a,b), thì w k-1 = (a’, b’), mà ở đó a – a’≤ 1 và b – b’ ≤ 1 Điều này hạn chế những bước được phép trong đường xoắn thời gian động đến những ô kế cận

 Đơn điệu: Cho w k = (a,b), thì w k-1 = (a’, b’), mà ở đó a – a’ ≥ 0 và b – b’ ≥ 0 Điều này ép buộc những điểm trong W là đơn điệu

Có rất nhiều đường xoắn động thõa mãn điều kiện trên Tuy nhiên chúng tôi chỉ quan tâm đến đường mà cực tiểu chi phí đường xoắn động:

Hình 2.2: A) Hai chuỗi thời gian tương đồng Q và C nhưng lệch pha B) Để đo khoảng cách chuỗi thời gian, chúng tôi xây dựng ma trận xoắn thời gian động và tìm kiếm cho đường xoắn thời gian động tối ưu nhất, được trình bày bằng những hình vuông đậm C) Kết quả của phép đo ( [7]) Đường này có thể được tìm thấy bằng việc sử dụng lập trình động để đánh giá sự truy toán dưới đây, xác định khoảng cách tích lũy γ(i,j) như khoảng cách d(i,j) đƣợc tìm thấy trong ô hiện tại, và cực tiểu của khoảng cách tích lũy của những phần tử kế cận

Khoảng cách Euclid giữa hai chuỗi có thể được thấy như là một trường hợp đặc biệt của DTW mà ở đó phần tử thứ k của W là w k = (i,j) k , i = j = k Chú ý rằng nó chỉ được xác định trong trường hợp đặc biệt mà ở đó hai chuỗi có chiều dài giống nhau Độ phức tạp thời gian và không gian của DTW là O(nm) Hình 2.2 minh họa cách tính độ đo xoắn thời gian động giữa hai chuỗi thời gian Q và C

Các cấu trúc chỉ mục cho dữ liệu chuỗi thời gian

Chuỗi thời gian có thể được biểu diễn như các điểm trong không gian nhiều chiều Giảm chiều dữ liệu cho phép sử dụng các cấu trúc chỉ mục không gian như R-tree R-tree hoạt động hiệu quả khi số chiều dữ liệu nhỏ hơn 20 Các phương pháp khác đề xuất cấu trúc chỉ mục riêng, nhưng R-tree vẫn được sử dụng rộng rãi Đối với dữ liệu ký tự rời rạc, cây hậu tố là một lựa chọn lập chỉ mục Tuy nhiên, cây hậu tố có thể bùng nổ số nút khi số lượng phân lớp tăng.

2.2.1 Cấu trúc chỉ mục cây hậu tố

Cấu trúc chỉ mục cây hậu tố [32], do S Park và các cộng sự đề xuất năm 2000 (xem hình 2.3), có cạnh đƣợc gán nhãn là các ký tự trong chuỗi và một nút cha có thể có nhiều nút con (xem hình 2.3) Nút lá là nút chứa số thứ tự i (đối với trường hợp lập chỉ mục cho một chuỗi duy nhất) Các nhãn được gán trên đường đi từ nút gốc đến nút lá là một hậu tố từ vị trí thứ i đến vị trí cuối của chuỗi đƣợc lập chỉ mục Trong trường hợp lập chỉ mục cho nhiều chuỗi, nút lá chứa số thứ tự i và một định danh S xác định chuỗi đang được lập chỉ mục Như vậy, đường đi từ nút gốc tới nút lá (S, i) xác định một hậu tố từ vị trí thứ i trong chuỗi S đến vị trí cuối cùng của S [32] Độ phức tạp để xây dựng cây hậu tố là tuyến tính theo chiều dài của chuỗi

Hình 2.3: Cây hậu tố cho các chuỗi S1bab, S2b, S3a ([32])

2.2.2 Cấu trúc chỉ mục R-tree

Cấu trúc R-tree [1] do A Guttman đề nghị năm 1984 là cấu trúc cây cân bằng dựa trên cây B-tree (xem hình 2.4) Mỗi nút trong cây chứa từ m đến M dữ liệu (hai thông số này đƣợc xác định trong quá trình xây dựng cây R-tree) Mỗi điểm dữ liệu trong không gian đƣợc chứa bởi một hình chữ nhật bao nhỏ nhất (minimum bounding rectangle – MBR) Các MBR này có thể giao nhau (đây cũng là một nhƣợc điểm của R-tree vì nó làm chậm quá trình tìm kiếm, do đó yêu cầu là các MBR này càng ít giao nhau càng tốt) Mỗi nút lá chứa con trỏ tới dữ liệu thật sự

2.2.3 Khung thức GEMINI (GEneric Multimedia INdexIng)

Phương pháp GEMINI [4], do C Faloutsos và các cộng sự đề xuất năm 1994, tổng quát hóa cách lập chỉ mục cho dữ liệu chuỗi thời gian, kết hợp sử dụng bất kỳ phương pháp thu giảm số chiều nào và bất kỳ phương pháp lập chỉ mục không gian nào Kỹ thuật này đƣợc giới thiệu đầu tiên cho dữ liệu chuỗi thời gian, nhƣng đã đƣợc mở rộng thành công cho nhiều loại dữ liệu khác

Ngoài ra, framework GEMINI còn định nghĩa các giải thuật tổng quát cho bài toán truy vấn phạm vi (range query) và tìm k lân cận gần nhất (k-nearest neighbor) [4]

Hình 2.4: Minh họa cấu trúc R-tree cho dữ liệu không gian([1])

Đánh chỉ mục chính xác cho độ đo khoảng cách xoắn thời gian động

Hầu hết những cấu trúc chỉ mục đƣợc trình bày trong phần 2.2 làm việc với độ đo khoảng cách Euclid Trong phần này sẽ trình bày về một số phương pháp đánh chỉ mục mà sử dụng khoảng cách DTW Nhƣ đã đề cập ở trên, khoảng cách DTW thi chính xác và mềm dẻo hơn so với khoảng cách Euclid Trước hết chúng tôi sẽ đi trình bày về tầm quan trọng của chặn dưới và sau đó giới thiệu một số phương pháp đánh chỉ mục cho độ đo khoảng cách xoắn thời gian động

Bảng 2.1: Mã giả giải thuật xây dựng chỉ mục GEMINI ([4])

Algorithm BuildIndex(Y,n); //Y là tập dữ liệu, n là kích thước cửa sổ for i = 1 to K //Duyệt các chuỗi được lập chỉ mục

Y i  Y i – mean(Y i ); //Tùy chọn: loại bỏ giá trị trung bình của Y i

Y i ’  Phương pháp biến đổi (Yi); //Bất kỳ kỹ thuật thu giảm chiều nào Thêm Y i ’ vào phương pháp truy cập không gian với 1 pointer tới Y i trên đĩa end;

Tầm quan trọng của chặn dưới

Tìm kiếm tương tự cho chuỗi thời gian với khoảng cách Euclid thì bị hạn chế nặng nề bởi I/O, tuy nhiên tìm kiếm tương tự với khoảng cách Euclid thì cũng tốn nhiều thời gian CPU Một cách để giải quyết vấn đề này là sử dụng hàm đo chặn dưới để giúp loại bỏ những chuỗi con mà không phải là trùng khớp tốn nhất nhanh chóng Bảng 2.2 trình bày mã giải cho giải thuật nhƣ vậy:

Có hai tính chất mong muốn cho chặn dưới:

Độ phức tạp thời gian của một phép đo là yếu tố quan trọng để xác định xem phép đo đó có được sử dụng rộng rãi hay không Một phép đo có thời gian tính toán lâu sẽ ít được sử dụng hơn so với một phép đo có thời gian tính toán nhanh Trong trường hợp của chúng tôi, chúng tôi ưu tiên các phép đo có độ phức tạp thời gian tuyến tính với chiều dài của chuỗi Bằng cách này, chúng tôi có thể đảm bảo rằng các phép đo của chúng tôi có thể được tính toán hiệu quả và thời gian thực hiện không trở thành yếu tố hạn chế trong quá trình sử dụng.

 Nó phải là ràng buộc tương đối chặt Một hàm có thể đạt được một chặn dưới tầm thường bằng việc luôn trả về 0 Tuy nhiên để cho giải thuật ở Bảng 2.2 hiệu quả, chúng tôi cần một phương pháp mà xấp xỉ gần đúng với khoảng cách Euclid

Chặn dưới được đưa ra bởi Kim

Hàm tính chặn dưới được đưa ra bởi Kim vào năm 2001 [7] làm việc bằng việc trích ra một vector đặc tính có 4 phần tử từ mỗi chuỗi con Những đặc tính này

16 là phần tử đầu tiên và cuối cùng của chuỗi cùng với những giá trị lớn nhất và nhỏ nhất Những sự khác biệt bình phương lớn nhất của những đặc tính tương ứng chính là chặn dưới Hình 2.5 minh họa ý tưởng này Hiệu số lớn nhất của hai chuỗi con first(A), last(D), minimum(B) và maximum(C) chính là chặn dưới

Bảng 2.2: Một giải thuật mà sử dụng phương pháp đo chặn dưới để tăng tốc việc quét tuần tự cho một chuỗi truy vấn Q ([7]) Algorithm Lower_Bounding_Sequential_Scan(Q)

2 for all sequences in database

3 LB_dist = lower_bound_distance(Ci,Q);

4 if LB_dist < best_so_far

6 if true_dist < best_so_far

7 best_so_far = true_dist;

Chặn dưới được đưa ra bởi Yi

Hàm tính chặn dưới được đưa ra bởi Yi vào năm 1998 [7] quan sát tất cả những điểm trong một chuỗi mà lớn hơn (nhỏ hơn) giá trị lớn nhất (nhỏ nhất) của chuỗi khác phải đóng góp ít nhất sự khác biệt bình phương của giá trị của chúng và giá trị

Tổng chiều dài bình phương của các đường màu xám biểu thị giá trị nhỏ nhất của các điểm tương ứng đóng góp vào khoảng cách DTW toàn cục, do đó làm chặn dưới cho 17 giá trị nhỏ nhất (lớn nhất) của chuỗi con khác với khoảng cách DTW Điều này được minh họa trong Hình 2.6.

Hình 2.5: Phương pháp đo chặn dưới được đưa ra bởi Kim ([7])

Hình 2.6: Chặn dưới được đưa ra bởi Yi ([7])

Chặn dưới được đưa ra bởi Keogh và các cộng sự

Những ràng buộc toàn cục trên xoắn thời gian

Ràng buộc toàn cục (global constraint) nhằm mục đích hạn chế việc đƣợc xoắn có thể nằm rải rác bao xa từ gốc Tập con của ma trận mà đường xoắn được phép viếng thăm đƣợc gọi là cửa sổ xoắn(warping window) Hình 2.7 minh họa hai ràng buộc toàn cục được sử dụng thường xuyên nhất: dải Sakoe-Chiba (1978) và dải Itakura (1975) [7]

Hình 2.7: Ràng buộc toàn cục hạn chế phạm vụ của đường xoắn, hạn chế chúng ra khỏi khu vực màu xám Hai ràng buộc phổ biến nhất: Sakoe-Chiba và Itakura ([7])

Có vài lý do cho việc sử dụng ràng buộc toàn cục, một trong những lý do đó là chúng là tăng tốc độ tính toán khoảng cách DTW Tuy nhiên lý do quan trọng nhất là ngăn ngừa những đường xoắn không đúng, mà ở đó một phần nhỏ tương đối của một ánh xạ chuỗi vào một phần lớn của chuỗi khác Sự quan trọng của ràng buộc toàn cục được trình bày bởi người sáng lập giải thuật DTW – Sakoe and Chiba

Những ràng buộc cục bộ trên xoắn thời gian

Ngoài ràng buộc toàn cục đƣợc trình bày ở trên, có những nghiên cứu tích cực trên ràng buộc cục bộ(local constraint) Ý tưởng cơ bản là hạn chế những được xoắn được phép, bằng việc cung cấp hạn chế cục bộ trên tập của những bước lựa chọn được xem xét Chúng tôi có thể minh họa sơ đồ của những bước có thể chấp nhận như trong hình 2.8a Đường này mình họa những bước được phép mà đường xoắn có thể lấy ở mỗi giai đoạn Chúng tôi có thể thay thế phương trình (2.1) với γ(i, j) = d(i, j)+ min {γ(i −1, j −1), γ(i −1, j −2), γ(i −2, j −1)}, mà cái này tương ứng với những bước đuợc trình bày trong hình 2.8c Sử dụng phương trình này, đường xoắn thời gian bị ràng buộc di chuyển tới một bước chéo cho mỗi bước song song với một trục tọa độ Độ mạnh hiệu quả của ràng buộc dốc có thể đƣợc đo bằng P = n/m Hình 2.8a tới 2.8d minh họa 4 ràng buộc ban đầu đƣợc đƣa ra bởi Sakoe và

Ý nghĩa quan trọng của sự ràng buộc cục bộ trong nghiên cứu của chúng tôi là sự ràng buộc này có thể được diễn đạt lại thành sự ràng buộc toàn cục [7] Chúng tôi thấy ràng buộc cục bộ có thể diễn đạt lại như là ràng buộc toàn cục [7].

19 trong hình 2.7 bên dưới, từ a tới d là 4 ràng buộc cục bộ trên xoắn thời gian động, được đưa ra bởi Sakoe và Chiba (a) trường hợp tầm thường không có ràng buộc tương ứng với phương trình (2.1) γ(i, j) = d(i, j) + min {γ(i−1, j−1), γ(i−1, j), γ(i, j−1)} (c) tương ứng với γ(i, j) = d(i, j)+min {γ(i−1, j−1),γ(i − 1, j − 2), γ(i − 2, j − 1)} Những ràng buộc cục bộ có thể đƣợc diễn giải lại nhƣ là ràng buộc toàn cục, ví dụ nhƣ (d) có thể đƣợc diễn giải lại nhƣ là ràng buộc toàn cục đƣợc trình bày trong (e) Để diễn giải lại một ràng buộc cục bộ nhƣ là ràng buộc toàn cục, chúng tôi có thể làm như sau Tạo một ma trận bóng(shadow matrix), mà giống về kích thước với ma trận DTW Khởi tạo tất cả những phần tử của ma trận bóng là không thể đạt tới đƣợc Gọi hàm DTW, sử dụng ràng buộc liên quan, mỗi khi đệ qui viếng thăm một ô (i,j) trong ma trận DTW ban đầu, ô (i, j) của ma trận bóng có thể đƣợc đánh nhãnh là có thể đạt đến đƣợc Thân lồi của tất cả những ô có thể đạt đến đƣợc hình thành một dãy mà có thể đƣợc diễn giải lại nhƣ là ràng buộc toàn cục

Hình 2.8: Ví dụ về ràng buộc cục bộ (nguồn [11])

Phương pháp đo chặn dưới được đưa ra bởi Keogh và các cộng sự

Keogh và các cộng sự đã đưa ra một phương pháp đo chặn dưới mới vào năm

2002 [7] Chúng tôi có thể xem ràng buộc toàn cục và cục bộ nhƣ là ràng buộc trên những chỉ mục cho đường xoắn w k = (i, j) k sao cho j − r ≤ i ≤ j + r, mà ở đó r là một thuật ngữ xác tầm(reach) hoặc là những giới hạn được phép của đường xoắn Trong trường hợp của Sakoe-Chiba, r độc lập với i, nhưng đối với Itakura, ra là một hàm theo i

Chúng tôi sẽ sử dụng thuật ngữ r để định nghĩa hai chuỗi mới U và L:

Cơ sở lý thuyết

Cấu trúc chỉ mục R-Tree

Để xử lí dữ liệu không gian một cách hiệu quả, một hệ cơ sở dữ liệu cần một cơ chế chỉ mục để giúp cho việc truy xuất dữ liệu một cách nhanh chóng Tuy nhiên những cấu trúc chỉ mục truyền thống không phù hợp cho những đối tƣợng dữ liệu đa chiều Trong phần này chúng tôi sẽ mô tả một cấu trúc chỉ mục động đƣợc gọi là R-Tree, và giới thiệu về những phương pháp tìm kiếm và xây dựng R-Tree

Những đối tượng dữ liệu không gian thường bao phủ những khu vực không gian đa chiều và không đƣợc biểu diễn tốt bằng những điểm Ví dụ nhƣ những đối tượng bản đồ giống như thành phố…thường chiếm những vùng kích thước không phải là 0 trong hai chiều Một tác vụ phổ biến trên dữ liệu không gian là tìm kiếm tất cả những đối tƣợng trong một khu vực, ví dụ nhƣ tìm tất cả những thành phố có đất trong khoảng 20 dặm của một vị trí cụ thể Loại bài toán này xảy ra thường xuyên trong những ứng dụng địa lý, và do đó nó rất quan trọng để có thể truy xuất những đối tƣợng một cách hiệu quả

Một cấu trúc chỉ mục đƣợc dựa trên vị trí không gian của đối tƣợng thì cần thiết, nhƣng một cấu trúc chỉ mục một chiều cổ điển không thích hợp cho tìm kiếm không gian đa chiều Những cấu trúc đƣợc dựa trên trùng khớp giá trị chính xác nhƣ là bảng băm không hữu hiệu bởi vì tìm kiếm theo phân khúc đƣợc cần thiết Những cấu trúc chỉ mục sử dụng thứ tự giá trị khóa một chiều nhƣ B-Tree hoặc ISAM không làm việc bởi vì không gian tìm kiếm là đa chiều Trong phần này chúng tôi mô tả một cấu trúc chỉ mục mới đƣợc gọi là R-Tree

3.1.2 Cấu trúc chỉ mục R-Tree

Một R-Tree là một cây cân bằng tương tự như B-Tree với những dữ liệu chỉ mục trong những nút lá chứa những con trỏ tới đối tượng dữ liệu Những nút tương ứng với một trang đĩa nếu chỉ mục nằm trên đĩa và cấu trúc đƣợc thiết kế để tìm kiếm không gian chỉ cần viếng thăm một số lƣợng nhỏ những nút Cấu trúc chỉ mục hoàn toàn động, thêm mới và xóa bỏ có thể đƣợc trộn lẫn với tìm kiếm và không có việc tái tổ chức định kỳ đƣợc đòi hỏi

Một cơ sở dữ liệu không gian bao gồm một tập của những dữ liệu biểu diễn những đối tƣợng không gian, và mỗi dữ liệu có một định danh duy nhất có thể đƣợc sử dụng để truy xuất nó Những nút lá trong một cây R-Tree chứa dữ liệu dưới dạng: (I, tuple-identifier) mà ở đó tuple-identifier là dữ liệu trong cơ sở dữ liệu và I là một hình chữ nhật n chiều với đường bao đóng của đối tượng không gian dưới dạng: I = (I 0 , I 1 ,…., I n-1 ) Ở đây n là số chiều và I i là khoảng bao đóng biên [a,b] mô tả đối tƣợng cùng với chiều i Thay vào đó L i có thể có một hoặc cả hai điểm cuối bằng vô cực, chỉ ra rằng đối tƣợng có thể mở rộng ra tới vô cùng Những nút không phải nút lá chứa dữ liệu dưới dạng (I, child-pointer) mà ở đó child-pointer là địa chỉ của một nút thấp hơn trong R-Tree và I bao phủ tất cả những hình chữ nhật trong những dữ liệu của những nút thấp hơn

Xem M là số dữ liệu cực đại chứa trong một nút là m ≤ M/2 là một thông số chỉ ra số dữ liệu nhỏ nhất trong một nút Một cây R-Tree phải thỏa mãn những tính chất dưới đây

 Mỗi nút lá chứa giữa m và M dữ liệu nếu nó không phải là nút gốc

 Đối với mỗi dữ liệu chỉ mục (I, tuple-identifier) trong một nút lá I là hình chữ nhật nhỏ nhất chứa đối tƣợng dữ liệu n chiều đƣợc biểu diễn bởi dữ liệu đƣợc chỉ định

 Mỗi nút không phải nút lá có giữa m và M con nếu nó không phải là gốc

 Với mỗi dữ liệu (I, child-pointer) trong nút không phải nút lá, I là hình chữ nhật nhỏ nhất chứa những hình chữ nhật trong nút con

 Nút gốc có ít nhất hai con nếu nó không phải là nút lá

 Tất cả những nút lá xuất hiện ở cùng mức

Hình 3.1a và 3.1b trình bày cấu trúc của cây R-Tree và minh họa quan hệ che phủ có thể tồn tại giữa những hình chữ nhật của nó

Hình 3.1a: Cấu trúc cây R Tree ([1])

Chiều cao của một cây R-Tree chứa N dữ liệu chỉ mục nhiều nhất là |log m N|

- 1, bởi vì hệ số phân nhánh của mỗi nút ít nhất là m Số lƣợng nút lớn nhất là |N/m|

+ |N/m 2 | + 1 Khả năng sử dụng không gian tệ nhất cho tất cả các nút ngoại trừ nút gốc là m/M Những nút sẽ có khuynh hướng có nhiều hơn m dữ liệu, và điều này sẽ làm giảm đi độ cao của cây và cải thiện khả năng sử dụng không gian Nếu một nút có nhiều hơn 3 hoặc 4 dữ liệu, cây thì rất rộng và gần nhƣ tất cả không gian đƣợc sử dụng cho nút lá chƣa những dữ liệu chỉ mục Thông số m có thể đƣợc thay đổi nhƣ là một phần của điều chỉnh hiệu suất

3.1.3 Tìm kiếm và cập nhật

Giải thuật tìm kiếm duyệt cây từ gốc tương tự như với B-Tree Tuy nhiên nhiều hơn một cây con dưới một nút được viếng thăm có thể được tìm kiếm, nó không thể bảo đảm hiệu suất trong trường hợp tệ nhất là tốt Tuy nhiên với hầu hết dữ liệu, giải thuật cập nhật sẽ duy trì cây trong một dạng mà sẽ cho phép giải thuật tìm kiếm loại bỏ những vùng không liên quan của không gian chỉ mục và kiểm tra chỉ những dữ liệu gần khu vực tìm kiếm

Hình 3.1b: Quan hệ che phủ giữa các hình chữ nhật ([1]) Giải thuật Tìm kiếm(Search): Cho một cây R Tree có nút gốc là T, tìm tất cả những dữ liệu chỉ mục mà hình chữ nhật bao nhỏ nhất của nó giao với hình chữ nhật bao nhỏ nhất tìm kiếm S

 S1 [Tìm kiếm cây con] Nếu T không phải là nút lá, kiểm tra mỗi E để xác định E I có giao với S hay không Đối với tất cả những dữ liệu giao nhau, gọi

Search trên cây mà nút gốc của nó đƣợc trỏ tới bởi E p

 S2 [Tìm kiếm nút lá] Nếu T là một nút lá, kiểm tra tất cả E để xác định E

I có giao với S hay không Nếu có E là dữ liệu đƣợc trả về

Việc thêm mới dữ liệu tương tự như thêm mới trong B-Tree mà ở đó dữ liệu chỉ mục đƣợc thêm vào nút lá, những nút mà bị tràn đƣợc tách ra, và việc tách đƣợc lan truyền ngƣợc lên nút gốc

Giải thuật thêm mới(Insertion):Thêm mới một dữ liệu chỉ mục mới E vào

 I1 [Tìm vị trí cho dữ liệu mới] Gọi ChooseLeaf để chọn một nút lá L mà ở đó đặt E

 I2 [Thêm dữ liệu vào nút lá] Nếu L có chỗ trống cho dữ liệu khác, thì đặt

E vào đó Ngƣợc lại gọi SplitNode để tách thành L và LL chứa E và tất cả những dữ liệu cũ của L

 I3 [Lan truyền thay đổi lên trên] Gọi AdjustTree trên L, và LL nếu một việc tách nút đƣợc thực hiện

 I4 [Phát triển cây cao hơn] Nếu lan truyền nút bị tách khiến cho nút gốc cũng bị tách, thì tạo một nút gốc mới mà con của nó là 2 nút kết quả

Giải thuật chọn nút lá (ChooseLeaf): Chọn một nút lá để đặt dữ liệu chỉ mục mới E

 CL1 [Khởi tạo] N là nút gốc

 CL2 [Kiểm tra nút lá] Nếu N là một nút lá, trả về N

Nếu N không phải là nút lá (tức là N còn một hoặc nhiều nút con) và F là một dữ liệu nằm trong N, thì hình chữ nhật bao quanh F, ký hiệu là FI, cần phải được mở rộng tối thiểu để có thể bao gồm E, ký hiệu là EI Trong trường hợp này, cần phải chọn ra hình chữ nhật có diện tích nhỏ nhất có thể thỏa mãn yêu cầu trên.

 CL4 [Duyệt cây cho tới khi đến nút lá] N là nút con đƣợc trỏ tới bởi F p và lặp lại từ CL2

Giải thuật điều chỉnh cây (AdjustTree): Bắt đầu từ nút lá L tới gốc, điều chỉnh những hình chữ nhật bao phủ và lan truyền việc tách nút khi cần thiết

 AT1 [Khởi tạo] N = L Nếu L bị tách trước đó, thì NN là nút kết quả thứ

 AT2 [Kiểm tra xong hay chưa] Nếu N là nút gốc thì dừng

 AT3 [Điều chỉnh hình chữ nhật bao phủ trong nút cha] P là nút cha của

N, và E N là dữ liệu của N trong P Điều chỉnh E N I để nó bao đóng tất cả những hình chữ nhật trong N

Cấu trúc chỉ mục dựa trên lưới

3.2.1 Tổng quát về cách tiếp cận

Cách tiếp cận được dựa trên khái niệm lưới Trục nằm ngang của dữ liệu chuỗi thời gian đƣợc phân chia thành những phân đoạn, mà ở đó mỗi điểm dữ liệu đƣợc

39 xác định Trục thẳng đứng cũng đƣợc phân chia cho việc biểu diễn những điểm dữ liệu bằng lượng tử hóa (quantization) Do đó lưới được minh họa như trong hình

Hình 3.3: Thu giảm số chiều dựa trên lưới, đường dày là đường xấp xỉ chuỗi thời gian

Bởi vì dữ liệu thực tế luôn có số chiều cao, nên sẽ có quá nhiều lưới nên không thể xử lí một cách hiệu quả Thu giảm số chiều giúp giảm đi số lượng lưới và cách tiếp cận của chúng tôi để làm điều này là tạo ra những phân đoạn, trộn lẫn những lưới kế cận với nhau

Chúng tôi giả sử rằng giá trị của dữ liệu chuỗi thời gian thực có khuynh hướng thay đổi dần dần nhƣ đƣợc trình bày trong hình 3.4, và những mẫu thay đổi một cách nhanh chóng nhƣ đƣợc trình bày trong hình 3.4A thì hiếm

Hình 3.4: Chuỗi thời gian thực tế: (A) trường hợp rất hiếm, (B) trường hợp phổ biến

Nói cách khác, cho một chuỗi thời gian v = (v 1 , v 2 , … ,v n ), có nhiều điểm dữ liệu thõa mãn v i = v i+1 = … = v i+m Những điểm dữ liệu liên tục thỏa mãn điều kiện nhƣ vậy đƣợc nhóm lại với nhau thành một phân đoạn (segment), sau đó chuỗi thời gian có thể đƣợc biểu diễn nhƣ một dãy của những phân đoạn Chú ý rằng

Các phân đoạn có độ dài khác nhau, mỗi phân đoạn ánh xạ tất cả các điểm dữ liệu thành một giá trị đại diện chịu đựng được lỗi nhất định, từ đó biểu diễn phân đoạn bằng giá trị đại diện, giúp giảm chiều của chuỗi thời gian File chỉ mục được xây dựng trên cơ sở phân đoạn và lượng tử hóa giá trị điểm dữ liệu, góp phần thu nhỏ đáng kể dung lượng file chỉ mục.

Quá trình tìm kiếm trong cách tiếp cận đƣợc thực hiện trong hai 2 giai đoạn Trong giai đoạn 1 (giai đoạn tinh lọc - filter), file chỉ mục được quét qua Phương pháp truy xuất trong giai đoạn này là truy xuất tuần tự, hiệu quả hơn truy xuất ngẫu nhiên Sau giai đoạn tinh lọc, một tập nhỏ hơn của những ứng cử viên đạt đƣợc Sau đó trong giai đoạn 2 (giai đoạn tinh chế - refinement), một vài trang đƣợc truy xuất để tính toán chính xác khoảng cách từ điểm truy vấn q Chúng tôi mong muốn rằng số lần truy xuất trang trong giai đoạn hai nhỏ nhƣ có thể

Trong phần này chúng tôi sẽ thảo luận xác định lưới như thế nào Đầu tiên, những giá trị đƣợc chuẩn hóa đƣợc lƣợng tử hóa, sau đó chiều dài của những phân đoạn đƣợc xác định Để bảo đảm tính chấp nhận đuợc, thu giảm số chiều theo dữ liệu (Datawise Dimensonality Reduction-DDR) đƣợc hiện thực nhƣ một chỉ mục, ràng buộc chặn trên và chặn dưới cũng được xem xét

Chúng tôi minh họa sự biểu diễn của một chuỗi thời gian (v 1 , v 2 , ….,v n ) bằng việc sử dụng một ví dụ Giả sử chuỗi thời gian được cho như bên dưới:

Chuỗi thời gian này được xấp xỉ trong cách dưới đây:

1 Lượng tử hóa (Quantization): Chuỗi thời gian đƣợc lƣợng tử hóa thành 2 b khoảng trong trục thẳng đứng, mà ở đó b là số bit đƣợc sử dụng cho việc xấp xỉ v i

Trong ví dụ này, nếu chúng tôi giả sử rằng b = 3, thì α i = v i x 2 b , chuỗi thời gian đƣợc lƣợng tử hóa cho ví dụ trở thành

2 Thu giảm(Reduction): Nếu giá trị của một điểm dữ liệu gần với giá trị của điểm dữ liệu trước đó, thì nó bị bỏ qua Chúng tôi sử dụng một thông số dung sai(tolerance)  Một điểm dữ liệu bị bỏ qua hay không được xác định bằng phương trình (3.1)

Trong phương trình này, h là chiều cao của lưới (= 1/2 b ) và  i ' là giá trị đại diện của phân đoạn mà ở đó giá trị đƣợc lƣợng tử hóa  i ' thuộc về Giá trị đại diện của mỗi phân đoạn là giá trị đƣợc lƣợng tử hóa của điểm dữ liệu đầu tiên trong phân đoạn

Hình 3.5 trình bày 4 trường hợp cho việc xác định những phân đoạn của chuỗi thời gian đƣợc lƣợng tử hóa Để cho dễ dàng, chúng tôi giả sử rằng giá trị đƣợc lượng tử hóa trước đó  i không bị bỏ qua Hình 3.5A, v i+1 có giá trị được lượng tử hóa giống nhƣ v i nên bị bỏ qua (đƣợc nhóm trong phân đoạn giống v i ) Hình 3.5B, mặc dù giá trị đƣợc lƣợng tử hóa lớn hơn v i , nó cũng bị bỏ qua bởi vì nó vẫn trong dung sai  Hình 3.5C, trường hợp này tương tự với trường hợp 3.5B Hình 3.5D v i+1 vƣợt ra khỏi dung sai nên sẽ bắt đầu một phân đoạn mới Để minh họa thu giảm số chiều nhƣ thế nào, phạm vi của dung sai đƣợc thêm vào nhƣ đƣợc trình bày trong hình 3.6 Những điểm dữ liệu trong hình chữ nhật màu xám thuộc về một phân đoạn, vì thế giá trị của chúng bị bỏ qua ngoại trừ điểm đầu tiên

Hình 3.5: Xác định những phân đoạn của chuỗi thời gian đƣợc lƣợng tử hóa ([18])

Trong ví dụ này,  đƣợc gán tới h/2 = 1/6, và sau khi thu giảm, chuỗi thời gian trở thành

(α1, α2, , α8) = ((010)2, x, x, (100)2, (111)2, (011)2, x, x) với "x" biểu thị điểm dữ liệu bị bỏ qua Từ phương trình 3.1, v1 nằm ngoài phạm vi [-ε,ε + h] = [-1/16,3/16] (α0 được khởi tạo là 0), do đó phải lưu α1 α2 bị bỏ qua vì v2 - α1 x h = 0,24 - 0,125 nằm trong phạm vi [-1/16,3/16] Để xác định xem v3 có bị bỏ qua hay không, α1 được sử dụng vì v2 đã bị bỏ qua v3 - α1 x h = 0,3 - 0,125 = 0,1775 cũng nằm trong phạm vi trên, vì vậy α3 cũng bị bỏ qua Tương tự, v4 - α1 x h = 0,62 - 0,125 vượt quá phạm vi, do đó phải lưu α4 Các phần còn lại được tính toán theo cách tương tự.

Hình 3.6: Thu giảm điểm dữ liệu của v với kĩ thuật DDR Bốn hình chữ nhật màu xám biểu diễn những vùng chịu đựng lỗi ([18])

Có hai thuận lợi cho việc biểu diễn DDR dựa trên lưới Đầu tiên dữ liệu được lưu trữ trong một file chỉ mục một cách hiệu quả; thứ hai là điểm dữ liệu bị bỏ qua đƣợc xác định một cách dễ dàng Bởi vì những phân đoạn chiều dài thay đổi, có bao nhiêu điểm dữ liệu và điểm dữ liệu nào bị bỏ qua không đƣợc biết Để ghi nhận

43 thông tin này, một mẫu bit chiều dài n, , đƣợc kết hợp với sự xấp xỉ của một chuỗi dữ liệu thời gian Nếu  i bị bỏ qua, bit tương ứng  i được gán tới 0 Ngược lại, nó đƣợc gán cho 1 Cấu trúc của một entry biểu diễn dữ liệu chuỗi thời gian đƣợc trình bày trong hình 3.7

Hình 3.7: Biểu diễn của một chuỗi thời gian, n bit nhị phân biểu thị dữ liệu nào trong v bị bỏ qua Những ô vuông xác định giá trị lƣợng tử hóa (  i ) của điểm dữ liệu

Trong trường hợp của ví dụ ở trên, biểu diễn chuỗi dữ liệu trở thành

10011100,010,100,111,011 thong tin bo qua gia tri luong tu hoa

Phương pháp đo khoảng cách được định nghĩa cho DDR

Tìm kiếm K láng giềng gần nhất của DTW

Mỗi chuỗi thời gian đƣợc biểu diễn bởi dữ liệu đƣợc thu giảm trong file chỉ mục Trong giai đoạn tinh chế, chúng tôi tính toán chặn dưới giữa chuỗi thời gian và chuỗi truy vấn Trong phần 3.1, chúng tôi đã trình bày chặn dưới của khoảng cách Euclid trong thu giảm số chiều dựa trên lưới Chúng tôi có thể chứng minh rằng chặn dưới của DTW có thể được tính toán bằng việc sử dụng chặn dưới của khoảng cách Euclid

Quan sát: Bằng việc sử dụng chặn dưới của khoảng cách Euclid, chúng tôi có phương trình dưới đây:

D LB là khoảng cách Euclid để tính toán khoảng cách giữa hai điểm dữ liệu được trình bày trong phần 3.1 Chúng tôi đã giới thiệu công thức tính chặn dưới của DTW, bây giờ chúng tôi sẵn sàng tạo ra giải thuật tìm kiếm K láng giềng gần nhất Giải thuật đƣợc trình bày trong bảng 3.4 Cả file chỉ mục đƣợc quét qua chỉ một lần (dòng 1) Cho mỗi chuỗi thời gian S, DTW LB (Q,S) đƣợc tính toán Nếu chúng tôi chưa lấy được K ứng cử viên hay chuỗi thời gian S có chặn dưới nhỏ hơn khoảng cách của đối tƣợng thứ K, thì chúng tôi biết rằng đối tƣợng hiện tại có thể là một trong những phần tử gần K nhất Vì thế chúng tôi phải truy xuất file dữ liệu trên đĩa để lấy khoảng cách xoắn thời gian động chính xác DTW(Q,S) (dòng 3-4) Nếu khoảng cách chính xác nhỏ hơn best-so-far hiện tại, chúng tôi thêm S tới tập kết quả khi chúng tôi lấy một kết quả tốt hơn (dòng 5-6)

Chương này giới thiệu hai cấu trúc chỉ mục chủ chốt của đề tài là R-Tree và lưới Trong chương tiếp theo, chúng tôi sẽ hiện thực hai cấu trúc chỉ mục này và so sánh về hiệu quả của chúng.

Bảng 3.4: Giải thuật k-NN để tìm ra k láng giềng gần nhất của truy vấn Q ([21]) Algorithm KNNSearch(Q,K)

1 foreach entry S in index file

2 Compute DTW LB < k or DTW LB < result[k].DTW

3 if result.size() < k or DTWLB < result[k].DTW

4 Calculate the exact DTW by accessing data file

Hiện thực và thử nghiệm

Hiện thực

Chương trình được hiện thực bằng ngôn ngữ C#, framework NET 3.5 Phần hiện thực sẽ gồm hai phần: Phần giao diện người sử dụng và phần xử lý bên trong

Chương trình sẽ gồm một form giao diện để đưa dữ liệu vào cho chương trình cũng nhƣ xuất kết quả sau khi xử lý Hình 4.1 miêu tả phần nhập liệu của form giao diện

Hình 4.1: Phần nhập liệu của form giao diện

 Nút DataSet: Lựa chọn tập dữ liệu đƣợc dùng trong thử nghiệm

 Nút Query Data: Chọn dữ liệu dùng cho việc tìm kiếm

 Number of bits: Số lƣợng bit đƣợc dùng trong quá trình lƣợng tử hóa trong phương pháp cấu trúc chỉ mục dựa theo lưới

 Tolerance: Hệ số dung sai dùng trong phương pháp cấu trúc chỉ mục dựa theo lưới

 K-Neighbors: Hệ số K đƣợc sử dụng trong KNN Search

 Height: Độ cao của lưới sử dụng trong phương pháp cấu trúc chỉ mục dựa theo lưới

 Weight: gọi là trọng số Giá trị này sẽ đƣợc sử dụng trong việc tính toán độ rộng của cửa sổ xoắn Độ rộng cửa sổ xoắn r = Length/Weight, trong đó Length là chiều dài của chuỗi thời gian

 N PAA: số phân đoạn được dùng trong phương pháp thu giảm số chiều PAA

Hình 4.2 sẽ miêu tả phần xuất kết quả trong form giao diện

Hình 4.2: Phần xuất kết quả của form giao diện

 Nút GridBased: Khi nhấn nút này, chương trình sẽ thực hiện giải thuật KNN Search sử dụng cấu trúc chỉ mục dựa trên lưới

 Nút Keogh PAA: Khi nhấn nút này, chương trình sẽ thực hiện giải thuật KNN Search sử dụng cấu trúc chỉ mục R-Tree

 Result: Kết quả của chương trình khi thực hiện giải thuật

 # of Page Accesses: Số lần truy xuất đĩa

 Tightness Lower Bound: Độ chặt của chặn dưới

4.1.2 Kiến trúc của chương trình

Hình 4.3 mô tả trực quan kiến trúc của chương trình:

Hình 4.3: Kiến trúc của chương trình

 Normalization.cs: Module này hiện thực phương pháp chuẩn hóa dữ liệu min-max Việc chuẩn hóa dữ liệu sẽ đƣợc sử dụng trong việc xây dựng file chỉ mục dựa trên lưới

 ConstructingDDRIndexFile.cs: Module này hiện thực giải thuật xây dựng file chỉ mục dựa trên lưới Giải thuật được hiện thực là giải thuật trong bảng 3.1 grid

Cấu trúc chỉ mục dựa trên lưới

Chuẩn hóa Cấu trúc chỉ mục rtree

 GridBasedAlgorithm.cs: Module này hiện thực giải thuật trong bảng 3.4 Đây là giải thuật tìm kiếm K láng giềng gần nhất sử dụng cấu trúc chỉ mục dựa trên lưới

 Rtree.cs: Module này hiện thực cấu trúc chỉ mục R-Tree

 PAAIndex.cs: Module này hiện thực giải thuật tìm kiếm K láng giềng gần nhất sử dụng độ đo chặn dưới của Keogh và cấu trúc chỉ mục R-Tree Đây chính là giải thuật trong bảng 2.3

Ngoài ra, một mô-đun được sử dụng xuyên suốt trong toàn bộ chương trình là mô-đun dùng để tính khoảng cách, chẳng hạn như khoảng cách Euclid, khoảng cách xoắn thời gian động.

 Distance.cs: Module này sẽ hiện thực những giải thuật tính khoảng cách, độ đo chặn dưới và độ đo chặn trên như khoảng cách Euclide và khoảng cách xoắn thời gian động.

Thử nghiệm

Chương trình được thử nghiệm trên hệ điều hành Windows 7 – 64 bit, máy có cấu hình core i3 CPU, 4G RAM Đánh chỉ mục DTW bằng việc sử dụng cấu trúc chỉ mục cây nhƣ R-Tree có thể được chia thành hai bước:

 (1) Chúng tôi thực hiện thu giảm số chiều trên dữ liệu và sau đó đánh chỉ mục miền đƣợc thu giảm với một cấu trúc cây Một tập của những ứng cử viên đƣợc chọn lọc bằng việc duyệt cây chỉ mục từ gốc Ở bước này, nếu cấu trúc chỉ mục có khả năng cắt tỉa cao, hầu hết những nút bị bỏ qua và số lần truy xuất đĩa sẽ ít hơn nhiều khi truy xuất tuần tự

 (2) Khoảng cách chính xác giữa những ứng cử viên và dữ liệu truy vấn được tính toán bằng việc truy xuất file dữ liệu Nếu kích thước của tập ứng cử viên lớn, số lần truy xuất gia tăng Để giảm kích thước của tập ứng cử viên, chặn dưới thì cần thiết Tuy nhiên, nó liên quan tới việc gia tăng số phân đoạn, nhƣ số chiều sẽ tăng trong cấu trúc chỉ mục đa chiều Do đó cấu trúc cây chỉ mục mất đi tính hiệu

55 quả của nó trong không gian có số chiều cao Số lần truy xuất đĩa trong bước một gia tăng lớn Có một sự xem xét giữa bước (1) và (2) Chặn dưới là tiêu chuẩn rất quan trọng để đánh giá phương pháp thu giảm số chiều Chúng tôi định nghĩa độ chặt của chặn dưới bằng công thức dưới đây:

Hình 5.1 biểu diễn kết quả thực nghiệm về độ chặt của chặn dưới giữa Keogh_PAA và LB_Grid LB_Grid có chặn dưới chặt chẽ hơn Keogh_PAA Đây là một đóng góp rất quan trọng của nghiên cứu này

Chúng tôi sử dụng 4 tập dữ liệu để so sánh bằng thực nghiệm hiệu quả của kỹ thuật Grid so với phương pháp Keogh_PAA với độ đo khoảng cách xoắn thời gian động Tập dữ liệu đầu tiên là “Income” có 25 chuỗi thời gian, mỗi chuỗi có chiều dài 72 Tập dữ liệu này được lấy từ bộ dữ liệu của Keogh ở trường Đại học Riverside (The University of Riverside) Tập dữ liệu thứ ba là “GDP” có 9 chuỗi thời gian, mỗi chuỗi có chiều dài 35 Tập dữ liệu thứ hai đƣợc lấy từ http://www.stat.duke.edu/~mw/data-sets/ts_data/gdp Và tập dữ liệu thứ 3 là

Dựa vào dữ liệu lạm phát với 50 chuỗi thời gian có độ dài 27, chuỗi thứ ba lấy từ nguồn Economicswebinstitute.org và chuỗi power data dài 34920 từ bộ dữ liệu Keogh, nhóm tác giả đã tiến hành truy vấn 5 láng giềng gần nhất Sau khi chọn ngẫu nhiên chuỗi truy vấn từ tập dữ liệu, nhóm tác giả đã ghi nhận số lần truy xuất đĩa Giả định kích thước trang là 8KB, thuật toán Keogh_PAA được kiểm tra trong cấu trúc chỉ mục R-Tree với không gian chỉ mục 8 chiều Kết quả thực nghiệm được trình bày trong Bảng 5.1.

Chúng tôi có thể quan sát số lần truy xuất đĩa của phương pháp Grid cao hơn Keogh_PAA (hình 5.1) bởi vì điều kiện tinh lọc trong giải thuật ở bảng 3.4 không phát huy được tác dụng Về phương diện độ chặt của chặn dưới thì đôi khi Grid tốt hơn Keogh_PAA, đôi khi Grid không tốt nhƣ Keogh_PAA (hình 5.2) Qua đó chúng tôi nhận thấy đƣợc tầm quan trọng của thực nghiệm Thực nghiệm càng

56 nhiều sẽ giúp chúng tôi đƣa ra kết luận càng chính xác Hiện tại với những gì đã thực nghiệm, chúng tôi vẫn chƣa thể kết luận đƣợc Grid hay Keogh_PAA tốt hơn Điều chúng tôi cần làm là tiến hành thêm nhiều thực nghiệm, để xác định đƣợc được phương pháp nào sẽ thích hợp cho tập dữ liệu loại nào

Bảng 5.1: Kết quả thực nghiệm trên 4 tập dữ liệu: Income, GDP, Inflation và Power

Dataset Warping Width # of page accesses Tightness Lower

Bound Grid Keogh_PAA Grid Keogh_PAA Income

Mặc dù qua thực nghiệm, chúng tôi không thể kết luận đƣợc Grid có tốt hơn Keogh_PAA hay không, nhưng ở một khía cạnh nào đó, ở phương diện tính dễ hiểu và dễ hiện thực thì Grid dễ hiểu hơn, và dễ hiện thực hơn rất nhiều so với Keogh_PAA Để hiện thực cấu trúc chỉ mục dựa trên lưới, chúng tôi chủ yếu chỉ cần một danh sách Tuy nhiên để hiện thực Keogh_PAA, nó đòi hỏi phải hiện thực cả một cấu trúc cây R-Tree

Hình 5.1: Độ chặt chặn dưới

Hình 5.2:Số lần truy xuất đĩa

Ngày đăng: 25/09/2024, 01:05

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w