Để khắc phục cả hai vấn đề trên trong các cấu trúc chỉ mục dữ liệu chuỗi thời gian thì cấu trúc chỉ mục TS-Tree được nghiên cứu như là một biện pháp tốt nhất để có thể tăng tốc tìm kiếm
GIỚI THIỆU ĐỀ TÀI
Giới thiệu đề tài
Trong thời đại ngày nay, khi con người đang sống trong một xã hội hiện đại với sự phát triển cao của khoa học công nghệ Đặc biệt là lĩnh vực công nghệ thông tin cùng với việc ra đời và phát triển của máy tính số, tất cả mọi thông tin mà con người dùng để phục vụ cuộc sống của mình gần như đã được số hóa toàn bộ Chúng được chuyển thể thành các đối tượng dữ liệu có nghĩa và lưu trữ trong máy tính mà con người có thể dễ dàng truy xuất và hiểu được khi cần thiết Các đối tượng dữ liệu này tồn tại trong rất nhiều ứng dụng thực tế đã được xây dựng và phát triển qua các thập kỹ gần đây như: các dữ liệu về y tế, giáo dục, địa lý, sinh học phân tử, văn bản, hình ảnh hoặc đoạn phim
Trong đó các ứng dụng khai phá dữ liệu chuỗi thời gian chiếm một vị trí quan trọng đã và đang thu hút sự quan tâm nghiên cứu từ các nhà khoa học
Từ đó, bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian (time series data) ngày càng đóng vai trò quan trọng trong các lĩnh vực khoa học, kinh tế hay tài chính Một thách thức ngày càng lớn là làm sao có thể tìm ra những mẫu tương tự trên dữ liệu chuỗi thời gian một cách nhanh chóng và chính xác nhất Cho đến hiện nay đã xuất hiện nhiều cấu trúc chỉ mục (index structure) nhằm làm tăng tốc quá trình truy xuất dữ liệu chuỗi thời gian như A-tree, M-tree, R*-Tree…Tuy nhiên cho đến hiện tại thì hầu hết các cấu trúc chỉ mục này chỉ làm việc được trên dữ liệu ít chiều (dưới 20 chiều) và với độ đo phổ biến là độ đo Euclid Như chúng ta đã biết dữ liệu chuỗi thời gian thường rất nhiều chiều và độ đo Euclid cũng để lộ những hạn chế trong việc tính toán khoảng cách giữa 2 mẫu dữ liệu chuỗi thời gian
Chính vì vậy, trong đề tài này, chúng tôi sẽ nghiên cứu một cấu trúc chỉ mục mới là
TS-Tree có thể làm việc tốt trên dữ liệu rất nhiều chiều và linh hoạt trong việc tính toán khoảng cách giữa 2 mẫu dữ liệu chuỗi thời gian bằng độ đo xoắn thời gian động DTW (dynamic time warping) Độ đo xoắn thời gian động là một phương pháp tính khoảng cách phù hợp với dữ liệu chuỗi thời gian khi mà nó cho phép nhận dạng mẫu có hình dạng giống nhau nhưng chiều dài hình dạng về thời gian có thể khác nhau
Mục đích chính của đề tài là nghiên cứu cấu trúc chỉ mục TS-Tree do Ira Assent, Ralph Krieger và cộng sự nghiên cứu vào năm 2008[1], để cho thấy cách thức cấu trúc chỉ mục này làm việc trên dữ liệu chuỗi thời gian với độ đo DTW Qua đó, nêu lên những ưu điểm tích cực của loại cấu trúc chỉ mục này so với các cấu trúc chỉ mục trước đó là R*-tree trong bài toán tìm kiếm tương tự dữ liệu chuỗi thời gian với độ đo DTW
Với mục đích rõ ràng như vậy, đề tài sẽ lần lượt tìm hiểu các lý thuyết nền tảng về bài toán tìm kiếm tương tự dữ liệu chuỗi thời gian, cấu trúc chỉ mục R*-tree, độ đo DTW, và nhất là nghiên cứu sâu về TS-Tree
Nội dung chính của đề tài
Nội dung chính của luận văn là so sánh hiệu quả của hai loại cấu trúc chỉ mục R*- Tree và TS-Tree được sử dụng như là cấu trúc chỉ mục trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian động (DTW) Việc so sánh đó sẽ được thực nghiệm thông qua một hệ thống hỗ trợ bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian Khi đó, từ dữ liệu ban đầu là một chuỗi các số thực, mỗi số thực thể hiện giá trị tại một thời điểm Với dữ liệu đó, ứng dụng cho phép người dùng đặc tả một mẫu dữ liệu truy vấn (mẫu này thường rất nhỏ so với dữ liệu ban đầu) Chương trình sẽ tìm trong dữ liệu đầu những mẫu con nào tương tự với mẫu truy vấn Các mẫu con tương tự với mẫu truy vấn về hình dạng và độ sai khác là bé nhất Để đáp ứng tốt bài toán so trùng mẫu như trên, trong luận văn này, chúng tôi thực hiện tập trung giải quyết hai bài toán:
Thứ nhất là xây dựng cấu trúc chỉ mục TS-Tree với các kỹ thuật hỗ trợ như chuẩn hóa dữ liệu (normalized data), kỹ thuật thu giảm số chiều PAA (kỹ thuật bao gộp xấp xỉ), kỹ thuật rời rạc hóa dữ liệu (SAX)
Thứ hai là áp dụng đô đo xoắn thời gian động(DTW) vào cấu trúc chỉ mục R*- Tree và TS-Tree Qua đó so sánh khả năng tìm kiếm của 2 loại cấu trúc chỉ mục này khi áp dụng độ đo DTW
Ngoài ra, việc so sánh hiệu quả của hai loại cấu trúc chỉ mục này với độ đo xoắn thời gian động sẽ được đánh giá bằng kết quả đo đạc từ thực nghiệm Dó đó, kết quả thực nghiệm và một số nhận xét, đánh giá cũng sẽ được đề cập như một phần quan trọng trong đề tài
Luận văn này giới hạn nghiên cứu ở những khía cạnh sau:
Dùng phép biến đổi tuyến tính PAA (tham khảo chương 2 phần cải tiến độ đo xoắn thời gian động với PAA) trong giai đoạn trích xuất đặc trưng để thu giảm số chiều của dữ liệu chuỗi thời gian
Độ đo tương tự của hai đối tượng dữ liệu được dùng trong luận văn là độ đo DTW (tham khảo chương 2 phần độ đo xoắn thời gian động)
Sử dụng các cấu trúc chỉ mục không gian là R*-Tree, TS-Tree (tham khảo chương
2 phần cấu trúc chỉ mục R*-Tree và chương 3 cấu trúc chỉ mục TS-Tree) trong giai đoạn lập chỉ mục
Chương trình hỗ trợ người dùng so trùng mẫu thông qua một giao diện
Thực hiện so sánh hiệu quả của việc truy xuất mẫu trên dữ liệu chuỗi thời gian dựa trên các cấu trúc lập chỉ mục đã xây dựng Từ đó, các nhận xét, kết luận sẽ được nêu lên
Tóm lược kết quả đã đạt được
Trong thời gian thực hiện đề tài cấu trúc chỉ mục TS-Tree trên dữ liệu chuỗi thời gian, chúng tôi đã đạt được những kết quả sau
Tìm hiểu về dữ liệu chuỗi thời gian và đặc điểm của loại dữ liệu này Hơn nữa, là các ứng dụng trong thực tế mà loại dữ liệu này đang tồn tại
Tìm hiểu một lĩnh vực lớn trong dữ liệu chuỗi thời gian là bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian
Tìm hiểu các kiến thức liên quan tới dữ liệu chuỗi thời gian như : phương pháp thu giảm số chiều - biến đổi wavelet rời rạc DWT, xấp xỉ từng đoạn PAA, hay các phương pháp rời rạc hóa
Tìm hiểu cấu trúc chỉ mục TS-Tree, R*-Tree và các đặc trưng của loại cấu trúc chỉ mục này Qua đó có thể tiếp cận với cấu trúc chỉ mục TS-Tree dễ dàng hơn
Tìm hiểu độ đo DTW (Dynamic time warping) trong dữ liệu chuỗi thời gian Quan trọng nhất là phần tìm hiểu về việc đánh chỉ mục trên dữ liệu chuỗi thời gian với cấu trúc dạng cây TS-Tree Trong TS-Tree, chúng tôi đã tìm hiểu kỹ về các vấn đề sau:
- Các thành phần có trong một cấu trúc chỉ mục TS-Tree - Các tính chất cũng như các ưu điểm vượt trội của loại cấu trúc chỉ mục này trong bài toán tìm kiếm tương tự dữ liệu thời gian
- Các thao tác trong cấu trúc chỉ mục TS-Tree như thêm đối tượng dữ liệu mới, xóa đối tượng dữ liệu cũ, cập nhật thông tin trên cây, hay thao tác tìm kiếm đối tượng dữ liệu trên cây
- Cách thức mà cấu trúc chỉ mục TS-Tree làm việc trên độ đo DTW và ưu điểm của nó với độ đo này so với các cấu trúc chỉ mục trước đó mà cụ thể là R*- Tree
Phát triển ứng dụng thực nghiệm để kiểm tra cấu trúc chỉ mục TS-Tree làm việc trên độ đo xoắn thời gian động trong bài toán tìm kiếm tương tự
Cấu trúc luận văn
Chương 1: chương này giới thiệu tổng quan về đề tài, mục đích nghiên cứu của đề tài, tại sao lại chọn đề tài này và hướng nghiên cứu của đề tài
Chuỗi con tương tự nhất Mẫu truy vấn cần tìm
Chương 2: chương này tập trung nghiên cứu các lý thuyết liên quan cần tìm hiểu như:
- Bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian - Độ đo DTW (dynamic time warping) và những cải tiến so với độ đo Euclid - Giới thiệu cấu trúc chỉ mục R*-tree và những hạn chế khi làm việc trên độ đo DTW - Giới thiệu tổng quan về cấu trúc chỉ mục TS-Tree
Chương 3: trong chương này tập trung nghiên cứu cấu trúc chỉ mục TS-Tree và những ưu điểm của nó trên độ đo DTW so với R*- tree - Cấu trúc của cấu trúc chỉ mục TS-Tree và các thao tác trên cây - Cấu trúc chỉ mục TS-Tree làm việc trên độ đo DTW
- So sánh những ưu điểm của cấu trúc chỉ mục TS-Tree so với R*-tree
Chương 4: trình bày kiến trúc tổng thể và thực hiện hệ thống so trùng mẫu con
Chương này sẽ phân tích những vấn đề chính mà hệ thống cần phải giải quyết và một số chi tiết hiện thực của các thành phần quan trọng Các nội dung được trình bày bao gồm cách thức lưu trữ dữ liệu, truy vấn chuỗi con dựa trên các cấu trúc chỉ mục
Chương 5: nêu một số kết quả và nhận xét dựa trên các thực nghiệm Có bốn bộ dữ liệu được thu thập từ thực tế làm dữ liệu mẫu bao gồm dữ liệu chứng khoán, dữ liệu năng lượng, dữ liệu điện não đồ và dữ liệu nhu cầu điện năng của Italia
Chương 6: điểm qua toàn bộ luận văn và nêu một số kết luận sau khi thực hiện đề tài bao gồm các công việc đã hoàn thành, đánh giá luận văn và hướng phát triển
Phần tài liệu tham khảo, bảng phụ lục một số khái niệm liên quan và bảng thuật ngữ Anh-Việt đối chiếu
CÁC CÔNG TRÌNH LIÊN QUAN VÀ LÝ THUYẾT NỀN TẢNG
Bài toán tìm kiếm tương tự
Chuỗi thời gian (time series) là một chuỗi trị số thực được ghi nhận tại những khoảng thời gian cách đều nhau Có thể xem chuỗi thời gian là một tập hợp chuỗi dữ liệu 2 chiều
(T,X) Trong đó T là một thời điểm xác định T= (t 1 ,t 2 ….) với t i thuộc R, còn X là giá trị quan sát được tại thời điểm T đó Lúc này nếu chúng ta xem xét các giá trị quan sát đó trong những khoảng thời gian bằng nhau với n giá trị quan sát trong khoảng thời gian đó thì chuỗi thời gian có thể được xem là dữ liệu trong không gian n chiều Mỗi lần quan sát trong một khoảng thời gian như vậy sẽ phát sinh ra một điểm trong không gian n chiều Tập hợp các điểm X= (x 1 , x 2 ,…x n ) được xem như tập hợp các đối tượng trong không gian n chiều ([2][4][12])
Trong khá nhiều các ứng dụng hiện nay thì có thể xem dữ liệu thời gian như những thông tin ghi lại trên từng phút, từng giây Chính vì vậy, thông thường dữ liệu chuỗi thời gian là rất dài tuy nhiên giá trị giao động thì lại không cao và thường xấp xỉ trong một khoảng nào đó Ví dụ, một hệ thống lưu lại các giá trị về nhiệt độ khí hậu thì thường nằm trong khoảng -20 tới 20 độ Hơn nữa có khi thông tin lưu trữ trong nhiều ngày lại không cách xa nhau khoảng 10 độ
2.1.2 Bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian
Trong việc khai thác thông tin trên dữ liệu chuỗi thời gian, chúng ta có rất nhiều bài toán khác nhau như gom cụm, phân lớp, tìm mô típ, phát hiện mẫu bất thường, khám phá luật kết hợp và trực quan hóa dữ liệu Trong số đó thì tìm kiếm tương tự (similarity search) là một trong những bài toán đó Với mục đích là tìm ra các mô hình giống nhau trên tập dữ liệu ghi nhận được trong một khoảng thời gian nào đó chúng ta có thể dự đoán được xu hướng dữ liệu trong tương lai Sau đây là một số ví dụ trong thực tế
- Nhận dạng các công ty có mô hình tăng trưởng giống nhau - Xác định những thời điểm mà các chỉ số chứng khoán có sự biến đông tương tự nhau
- Tìm xem 1 giai điệu nhạc có tương tự với 1 bản nhạc nào trước đó hay không…
Bài toán tìm kiếm tương tự hay còn gọi là so trùng mẫu (pattern matching) trên dữ liệu chuỗi thời gian là việc thiết kế một phương pháp tìm kiếm nhanh chóng và chính xác trong cơ sở dữ liệu chuỗi thời gian những mẫu con trùng hay sấp xỉ với mẫu yêu cầu
Chúng ta có 2 kiểu so trùng mẫu
So trùng toàn chuỗi (whole matching) là loại so trùng chiều dài của dữ liệu truy vấn và chiều dài dữ liệu tham khảo bằng nhau và xem xét 2 đường biểu diễn dữ liệu có tương tự nhau không theo định nghĩa về độ tương tự cho trước Bài toán này ta thường được dùng trong việc gom cụm, hay phân loại dữ liệu thời gian Ví dụ cho loại so trùng này là “Tìm mức nước ở 2 dòng sông có thay đổi giống nhau trong 1 năm?”
So trùng chuỗi con (subsequence matching) là loại so trùng chiều dài của dữ liệu truy vấn ngắn hơn rất nhiều so với chiều dài của dữ liệu tham khảo Mục đích là tìm những đoạn trong dữ liệu tham khảo tương tự với dữ liệu truy vấn Một số ứng dụng của bài toán này là tìm những mẫu dữ liệu quan trọng hay những thay đổi bất thường trong dữ liệu ban đầu Ví dụ: “Tìm các tháng mà giá chứng khoán của công ty có sự thay đổi giống với tháng hiện tại?”, hay “những thời điểm nào mà giá chứng khoán thay đổi theo dạng hình răng cưa”…
2.1.3 Mô hình bài toán so trùng dữ liệu chuỗi thời gian
Một trong những thử thách lớn nhất trong bài toán so trùng mẫu trên dữ liệu chuỗi thời gian là tập trung vào việc thiết kế một phương pháp lưu trữ hiệu quả và tìm kiếm nhanh để tìm trong cơ sở dữ liệu chuỗi thời gian những mẫu con trùng hoặc xấp xỉ với mẫu yêu cầu Trong hầu hết các nghiên cứu về bài toán so trùng trên dữ liệu chuỗi thời gian, mô hình chủ yếu được áp dụng là mô hình rút trích thông tin (information retrieval) Hình 2.1 mô tả mô hình rút trích thông tin phổ biến được sử dụng trong bài toán so trùng dữ liệu chuỗi thời gian
Phần lập chỉ mục (Indexing): trong giai đoạn này chuỗi dữ liệu thời gian sẽ được lưu trữ theo dạng chỉ mục nhằm giúp cho quá trình tìm kiếm được tăng tốc Do dữ liệu chuỗi thời gian thường rất lớn nên trước khi lập chỉ mục chúng ta thường thu giảm số chiều (reduce dimension) của chuỗi dữ liệu ban đầu Một số phương pháp thu giảm số chiều được biết cho đến nay như: phép biến đổi Fourier rời rạc (Discrete Fourier Transform - DFT), phép biến đổi Wavelet rời rạc (Discrete Wavelet Transform - DWT), xấp xỉ tuyến tính từng đoạn (Piecewise Linear Approximation - PLA), xấp xỉ hằng số từng đoạn thích nghi (Adaptive Piecewise Constant Approximation- APCA), xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate approXimation - SAX)…
Các cấu trúc lập chỉ mục quen thuộc là R-Tree, R*-Tree, M-tree…trong đó R*-Tree là cấu trúc chỉ mục nền tảng cho việc phát triển cấu trúc TS-Tree Xuất hiện sau
7 này, hầu hết các phương thức thao tác trên cây TS-Tree đều giống với R*-Tree Chúng ta sẽ tìm hiểu kỹ hơn về vấn đề này trong các mục sau
So trùng mẫu: sau khi thiết lập chỉ mục cho dữ liệu chuỗi thời gian, quá trình so trùng mẫu là quá trình tìm kiếm các chuỗi thời gian con thỏa mãn điều kiện truy vấn
Việc truy vấn thông thường sẽ bị ảnh hưởng bởi 2 yếu tố: một là cấu trúc chỉ mục chúng ta vừa thiết lập, hai là độ đo mà chúng ta áp dụng trong quá trình tìm kiếm Việc lập chỉ mục không hẳn lúc nào cũng đem lại kết quả truy vấn nhanh mà có khi lại đem lại kết quả ngược lại Với độ đo trước giờ chúng ta vẫn quen thuộc là độ đo Euclid, tuy nhiên trong đề tài này sẽ không dùng độ đo này mà chúng ta sẽ thay thế hoàn toàn bằng độ đo DTW để xem TS-Tree có làm việc tốt trên độ đo này hay không
Hình 2.1 Kiến trúc tổng thể của hệ thống so trùng mẫu
Độ đo tương tự DTW (dynamic time warping)
Vấn đề trong các cấu trúc chỉ mục chuỗi dữ liệu thời gian hiện là một vấn đề rất được nhiều nhà khoa học nghiên cứu Hầu hết các cấu trúc chỉ mục đang vận đụng độ đo Euclid trong việc tính toán khoảng cách giữa hai đối tượng trong dữ liệu chuỗi thời gian Mặc dù vậy qua các trường hợp cho thấy rằng độ đo này lại chưa chính xác và linh hoạt trong các chuỗi dữ liệu có hình dáng giống nhau nhưng có sự xê dịch về mặt thời gian do quá trình tính toán dựa trên cùng một thời điểm Chính vì vậy độ đo xoắn thời gian động được nghiên cứu như là một độ đo mang tính linh hoạt hơn trong việc khắc phục điểm yếu trên của độ đo Euclid Chính vì tính linh hoạt cho kết quả chính xác hơn nên độ đo xoắn thời gian động bắt đầu đóng vai trò quan trọng trong nhiều lĩnh vực như khoa học, y khoa, công nghiệp, hay tài chính nơi mà các dữ liệu yêu cầu tính toán với độ chính xác cao hơn
TS-Tree) Chuỗi thời gian
So trùng mẫu Chuỗi thời gian truy vấn
Kết quả truy vấn Lập chỉ mục
8 Đã có rất nhiều công trình nghiên cứu về độ đo này như vào năm 1994 thì Berndt và Clifford đã giới thiệu chính thức độ đo này trong công trình nghiên cứu về độ đo xoắn thời gian động trong cơ sở dữ liệu Hay các nghiên cứu trước đó của các nhà nghiên cứu như: Itakura 1975; Kruskall và Liberman 1983; Myers et al 1980; Rabiner và Juang 1993; Rabiner et al 1978; Sakoe và Chiba 1978; Tappert and Das 1978 Tuy chỉ có một vài nghiên cứu chính thức nhưng ngay sau đó thì độ đo này ngay lập tức góp phần không thể thay thế trong nhiều lĩnh vực Trong năm 2001 thì Aach và Church đã áp dụng thành công việc DTW vào quá trình RNA dữ liệu hồi quy trong ngành sinh học Năm 1995, Gollmer và Posten đã áp dụng DTW thành công vào việc đồng bộ hóa và lưu vết các gói tiến trình trong chất liệu polymer ngành hóa học Và còn rất nhiều các công trình nghiên cứu thành công DTW của Gavrila và Davis năm 1995 trong ngành sinh trắc học, Munich và Perona năm 1999 trong ngành chữ ký điện tử, Kovacs và Vajna năm 2000 trong dữ liệu vân tay…Mặc dù có nhiều thành công trong các lĩnh vực như vậy nhưng DTW lại có một điểm yếu là tốc độ giải thuật chưa được nhanh Trong phần tiếp theo sau đây chúng tôi sẽ trình bày nghiên cứu của Keogh về các giải pháp tăng hiệu suất của DTW ([7])
Trước khi tìm hiểu về độ đo DTW chúng ta cùng nhìn lại độ đo Eucid Ví dụ chúng ta có 2 chuỗi thời gian Q= Q 1 , Q 2 ,… Q n và C= C 1 , C 2 , C n Độ đo khoảng cách Eucid được tính như sau:
Công thức 2.1 – Tính độ đo Euclid Độ đo Eucid trước giờ có ưu điểm là dễ hiểu, dễ tính toán và có thể áp dụng cho nhiều bài toán trong khai phá dữ liệu chuỗi thời gian như gom cụm, phân lớp, mô típ…Tuy nhiên độ đo này lại không làm việc tốt trên dữ liệu có nhiễu, hay các đường căn bản khác nhau Chúng ta cùng xem xét hình 2.2 để thấy sự khác nhau giữa 2 độ đo Euclid và xoắn thời gian động DTW
Hình 2.2 Độ đo Euclid (a) và độ đo DTW (b) (nguồn [7])
Trong hình 2.2(a) là tính toán với độ đo Euclid, còn trong hình 2.2(b) là tính toán với độ đo DTW Như chúng ta thấy theo tính toán hình 2.2(a) thì Euclid sẽ xét theo 2
9 điểm cùng nằm trên một trục dọc tức là 2 giá trị quan sát tại cùng 1 thời điểm, ta tạm gọi đó là ánh xạ 1-1 Nếu theo kiểu tính toán này thì khoảng cách tại điểm thứ I trong đường 1 và điểm thứ I trong đường 2 là rất khác nhau mặc dù chúng ta thấy hình dạng 2 đường này là giống nhau, chỉ có điều là bị xê dịch về mặt thời gian Chính vì vậy, nếu tính toán theo phương pháp này thì kết quả sẽ không chính xác nhất là nếu chúng ta đang tìm Mindist (khoảng cách ngắn nhất giữa 2 mẫu dữ liệu) Vì lý do đó mà vào năm 1994 thì Bernt và Clifford đã phát triển ra độ đo DTW nhằm khắc phục nhược điểm kể trên của Euclid Chúng ta có thể hình dung DTW trong hình 2.2(b) và tìm hiểu kỹ hơn về DTW trong phần tiếp sau đây ([7])
Một vấn đề của các cấu trúc chỉ mục hiện nay là làm sao có thể tăng tốc trên dữ liệu thời gian đồng thời phải có được độ chính xác tốt Hầu hết các giải thuật chỉ mục hiện nay đang dùng độ đo tương tự hay một vài lý thuyết độ đo khác để tính toán khoảng cách giữa 2 đối tượng dữ liệu trong không gian đa chiều Như chúng ta tìm hiểu ở phần trên thì lý do độ đo Euclid phổ biến chính là dễ tính toán và dễ hiểu Tuy nhiên điều đó là chưa đủ với các bài toán càng ngày càng phức tạp hiện nay Có rất nhiều mẫu dữ liệu có hình dạng giống nhau nhưng nếu dùng Euclid thì lại cho kết quả cách xa nhau Vào năm 1994 thì Bernt và Clifford đã phát triển ra một độ đo có tên gọi là DTW (dynamic time warping) Về mặt chứng minh lý thuyết và thực nghiệm thì các nhà khoa học thấy rằng với DTW thì việc tính toán mang lại sức mạnh lớn hơn khi tính toán các đối tượng dữ liệu trong không gian đa chiều Tại sao lại có được khẳng định đó, chúng ta sẽ đi vào phần sau để có thêm cơ sở tin tưởng là độ đo DTW tốt hơn độ đo Euclid trên dữ liệu chuỗi thời gian ([7][27])
Ký hiệu trong phần này
C Một chuỗi thời gian có chiều dài n: C = c 1 , c 2 , …, c j , …, c n
[c i: c j ] Một chuỗi con của C, bắt đầu tại điểm c i và kết thúc tại c j
C Một xấp xỉ gộp từng đoạn của một chuỗi thời gian
DTW Độ đo khoảng cách xoắn thời gian động
LB_Kim Hàm chặn dưới được giới thiệu bởi Kim (2001)
LB_Yi Hàm chặn dưới được giới thiệu bởi Yi (1998)
LB_Keogh Hàm chặn dưới được giới thiệu trong bài báo
2.2.2 Tính toán trong độ đo DTW
Giả sử có hai chuỗi thời gian Q và C có chiều dài lần lượt là n và m, với
Hình 2.3 và 2.4 là minh họa cho 2 mẫu dữ liệu chuỗi thời gian Q và C và khoảng cách giữa chúng theo độ đo xoắn thời gian động
Hình 2.3 Hai mẫu dữ liệu thời gian Q và C (nguồn [7])
Hình 2.4 Khoảng cách giữa 2 mẫu dữ liệu Q và C theo DTW (nguồn [7]) Để tính toán khoảng cách DTW giữa hai chuỗi trên, ta xây dựng một ma trận có kích thước n × m, trong đó phần tử (i th ,j th ) của ma trận chứa khoảng cách d(q i ,c i ) giữa hai điểm q i và c j trên 2 chuỗi dữ liệu Q và C
Trong đó d(q i ,c i ) được tính toán như sau:
Công thức 2.2 – tính khoảng cách
Ta tạm gọi ma trận chứa khoảng cách d(q i ,c i ) là ma trận xoắn (warping matrix)
Một đường xoắn (warping path) W là một tập các phần tử liên tục của ma trận định nghĩa một ánh xạ giữa Q và C
Hình ảnh ma trận xoắn của 2 mẫu dữ liệu Q và C và đường xoắn mô tả trong hình vẽ sau
Hình 2.5 Ma trận chứa khoảng cách d(q i ,c i ) và đường xoắn W (nguồn [7]) Đối với việc tính toán DTW chúng ta có một số ràng buộc sau: o Điều kiện biên: w 1 = (1,1) và w K = (m,n) ràng buộc này yêu cầu đường xoắn phải bắt đầu và kết thúc ở hai góc đối diện của ma trận o Tính liên tục: cho w k = (a,b) thì w k-1 = (a ’ ,b ’ ) trong đó a – a ’ ≤ 1 và b – b ’ ≤ 1
Ràng buộc này yêu cầu đường xoắn phải di chuyển giữa những ô liền kề (kể cả những ô liền kề theo đường chéo) o Tính đơn điệu tăng: cho w k = (a,b) thì w k-1 = (a ’ ,b ’ ), với a – a ’ ≥ 0 và b – b ’ ≥ 0
Ràng buộc này yêu cầu các điểm trong W phải có tính đơn điệu tăng theo thời gian
Có rất nhiều đường xoắn thỏa mãn các điều kiện trên Tuy nhiên chúng ta chỉ quan tâm đến đường tối thiểu hóa chi phí xoắn:
Công thức 2.3 – Tính độ đo DTW theo đường xoắn Độ phức tạp của giải thuật khi tính toán theo DTW là O(m*n) Chính vì vậy nhằm cải thiện tốc độ tính toán cho DTW thì Keogh đã đề xuất một khái niệm mới cho việc tính toán độ đo này là độ đo chặn dưới (lower bound) Chúng ta cùng tìm hiểu kỹ thuật chặn dưới trong việc tính khoảng cách với độ đo DTW ngay sau đây
2.2.3 Chặn dưới cho khoảng cách DTW
Như chúng ta đã biết trong tìm kiếm tương tự chuỗi thời gian nếu chúng ta dùng độ đo Eclid thì sẽ tốn chi phí cho việc truy xuất I/O, còn với phương pháp tính toán DTW mặc dù cho kết quả chính xác nhưng nó lại gây ra chi phí cho việc tính toán CPU Đường xoắn
12 Để giải quyết vấn đề này thì Keogh đã đề xuất chỉ tính toán khoảng cách chặn dưới Qua đó giảm thiểu chi phí tính toán đáng kể ([7])
Chúng ta định nghĩa chặn dưới (L) và chặn trên (U) của chuỗi dữ liệu thời gian như sau:
Trong đó thì chỉ số r được định nghĩa tùy theo mô hình hoặc nó được xem như là khoảng trong DTW Với W k = (i,j) ta có j-r