CHƯƠNG 1. Các kiến thức cơ sở.1 Tổng quan về đề tài. Một chuỗi thời gian (time series) là một chuỗi các điểm dữ liệu được đo theo từng khoảng thời gian liền nhau theo một tần suất thời gian thống nhất.1 minh họa một ví dụ về chuỗi thời gian biểu diễn tỉ giá chuyển đổi trung bình hàng tháng giữa đô la Úc và đô la Mỹ (đơn vị đô la Úc) từ 7/1969 đến 8/1995.1 Đường biểu diễn một chuỗi thời gian ([16]). Các bài toán thường được nghiên cứu trong khai phá dữ liệu chuỗi thời gian gồm tìm kiếm tương tự (similarity search), gom cụm (clustering), phân lớp (classification), phát hiện motif (motif discovery), khai phá luật (rule discovery), phát hiện bất thường (anomaly detection), trực quan hóa (visualization), dự báo (forecast).
Những khó khăn và thách thức khi nghiên cứu về dữ liệu chuỗi thời gian [19]: - Dữ liệu thường rất lớn. Chẳng hạn, trong 1 giờ, dữ liệu điện tâm đồ (ECG) có thể lên đến 1GB. - Phụ thuộc nhiều vào yếu tố chủ quan của người dùng và tập dữ liệu khi đánh giá mức độ tương tự giữa các chuỗi thời gian. - Dữ liệu không đồng nhất: định dạng của dữ liệu khác nhau, tần số lấy mẫu khác nhau.
Ngoài ra, dữ liệu có thể bị nhiễu, thiếu một vài giá trị hoặc không sạch. 10 Luan van Bài toán tìm kiếm tương tự (so trùng) trong cơ sở dữ liệu chuỗi thời gian đã được nhiều nhà nghiên cứu quan tâm trong những năm qua vì đây là bài toán cơ bản và là một thành phần nền tảng của nhiều bài toán khác trong khai phá dữ liệu chuỗi thời gian. Đây là bài toán khó vì kích thước dữ liệu chuỗi thời gian thường lớn và vì chúng ta không thể lập chỉ mục dữ liệu chuỗi thời gian một cách dễ dàng như trong hệ thống cơ sở dữ liệu truyền thống. Một vài thí dụ về ứng dụng của tìm kiếm tương tự trên chuỗi thời gian có thể nêu ra như sau: - Tìm trong quá khứ, những giai đoạn mà số lượng sản phẩm bán được như tháng vừa rồi.
- Tìm những sản phẩm có chu kỳ doanh số giống nhau. - Tìm những đoạn nhạc trong một bài hát giống một đoạn nhạc đã có bản quyền. - Tìm những tháng trong quá khứ mà có lượng mưa giống như tháng vừa rồi. - Tìm những năm khô hạn mà mực nước các sông đều ở mức thấp.
Motif trong chuỗi thời gian là mẫu xuất hiện với tần suất cao nhất.2 minh họa ví dụ về motif là chuỗi con xuất hiện ba lần trong chuỗi thời gian dài hơn.2 Ví dụ về motif là chuỗi con xuất hiện ba lần trong chuỗi thời gian dài hơn ([6]) Từ khi được hình thức hóa vào năm 2002, phát hiện motif trong dữ liệu chuỗi thời gian đã và đang được dùng để giải quyết các bài toán trong nhiều lĩnh vực ứng dụng khác nhau ví dụ như dùng motif để kiểm tra chữ ký [14], dùng motif để phát hiện những hình ảnh lặp trong cơ sở dữ liệu hình dạng [42], dùng motif để dự báo giá chứng khoán [18], và cũng được dùng như bước tiền xử lý trong nhiều công việc khai phá dữ liệu cao cấp hơn, ví dụ như gom cụm chuỗi thời gian [33], phân lớp chuỗi thời gian [3]. 11 Luan van Hiển nhiên, độ phức tạp của phương pháp phát hiện chính xác motif theo kiểu brute-force là bậc hai theo số chuỗi trong cơ sở dữ liệu chuỗi thời gian hay chiều dài của chuỗi thời gian mà từ đó các chuỗi con được trích ra. Vì lý do đó, có nhiều thuật toán phát hiện motif xấp xỉ đã được giới thiệu ([6], [2], [28], [29], [36], [43]). Các cách tiếp cận này thường có độ phức tạp tính toán là O(n) hay O(nlogn), với n là số chuỗi trong cơ sở dữ liệu chuỗi thời gian hay chiều dài của chuỗi thời gian mà từ đó các chuỗi con được trích ra.
Độ phức tạp của các giải thuật này giảm hơn so với phương pháp tìm kiếm chính xác. Tuy nhiên, chúng yêu cầu một số lớn các tham số cần xác định trước. Một số thuật toán phát hiện motif xấp xỉ thường dựa trên các kỹ thuật xử lý chuỗi ký tự. Điều này đã khuyến khích các nhà nghiên cứu tìm kiếm các phương pháp biến đổi khác nhau để chuyển chuỗi thời gian thành chuỗi ký tự, sau đó sử dụng các kỹ thuật xử lý chuỗi đã có để phát hiện motif.
Trong số các thuật toán đã được đề xuất, thuật toán thông dụng là phương pháp chiếu ngẫu nhiên do Chiu và các cộng sự giới thiệu [6]. Thuật toán này có thể phát hiện motif trong thời gian tuyến tính. Đây là thuật toán được trích dẫn nhiều và là cơ sở cho nhiều cách tiếp cận hiện nay trong việc giải bài toán phát hiện motif trên dữ liệu chuỗi thời gian ([43], [39]). Tuy nhiên, các kỹ thuật xử lý chuỗi ký tự chưa thật sự hữu hiệu khi làm việc trên chuỗi thời gian dạng số.2 Các công trình liên quan.
Trong phần này, chúng tôi giới thiệu tóm tắt cơ sở lý thuyết về các độ đo tương tự, các phương pháp thu giảm số chiều, các cấu trúc chỉ mục thường dùng và các công trình liên quan tới bài toán được nghiên cứu. Trong các bài toán về chuỗi thời gian, để so sánh 2 chuỗi người ta sử dụng các độ đo tương tự. Hai đối tượng được xem là giống nhau khi độ đo tương tự giữa chúng bằng 0, được xem là tương tự nếu độ đo tương tự giữa chúng nhỏ hơn một giá trị được qui ước trước đó. Để có thể tính toán và so sánh, độ đo này được biểu diễn thành các số thực và phải thỏa các tính chất sau: - D(x,y) = 0 nếu và chỉ nếu x = y - D(x, y) = D(y, x) 12 Luan van - D(x, y) 0 với mọi x, y - D(x, y) < D(x, z) + D(y, z) Dưới đây là các độ đo thường được sử dụng Độ đo Minkowski.
Ký hiệu là Sim(X,Y) (độ tương tự giữa hai chuỗi X và Y có chiều dài n) và được định nghĩa như sau: n Sim( X , Y ) P xi yi , với xi X, yi Y, i = 1, …, n P (1.1) Trong đó, p = 2 (Euclid) là độ đo thường được sử dụng.1) Độ đo này có ưu điểm tính toán dễ dàng. Tuy nhiên nó cũng có một số nhược điểm là do phương pháp này tính toán dựa trên các cặp giá trị tương ứng trong hai chuỗi nên đối với các trường hợp tính chất của hai mẫu là giống nhau nhưng giá trị khác nhau (có đường căn bản khác nhau hay có biên độ dao động khác nhau) thì khoảng cách hai mẫu sẽ rất khác nhau.3 minh họa trường hợp này.3 Minh họa hai chuỗi thời gian giống nhau. Để khắc phục trường hợp này trước khi áp dụng các giải thuật ta cần thực hiện chuẩn hóa dữ liệu. Các phương pháp chuẩn hóa thường được dùng là: - Chuẩn hóa trung bình zero (Zero-Mean normalization) [17] Chuỗi Q được biến đổi thành chuỗi Q’ theo công thức Q’[i] = (Q[i]- mean(Q)) / var(Q) (1.2) Với mean(Q) là giá trị trung bình của Q và var(Q) là độ lệch chuẩn của Q.2) - Chuẩn hóa nhỏ nhất-lớn nhất (Min-Max normalization) [17] Chuỗi Q được biến đổi thành chuỗi Q’ theo công thức 13 Luan van Q[i] Minold (1.3) Q'[i] ( Maxnew Minnew ) Minnew Maxold Minold (1.3) Với Minold và Maxold là giá trị nhỏ nhất và lớn nhất của chuỗi ban đầu.
Minnew và Maxnew là giá trị nhỏ nhất và lớn nhất của chuỗi sau khi được chuẩn hóa. Độ đo xoắn thời gian động. Trong trường hợp hai mẫu cần so sánh có 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 thì khi so sánh độ tương tự giữa hai mẫu bằng cách so sánh 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.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 giống 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ạ với nhiều điểm và á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 (Dynamic Time Warping - DTW) [5].4 Khoảng cách giữ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. Cách tính DTW Cách đơn giản nhất để tính DTW của hai đường X và Y là ta xây dựng ma trận Dm x n với m = |X| và n= |Y|. Sau khi xây dựng ma trận D , ta tìm đường đi từ ô (0,0) đến ô (m,n) thỏa mãn những ràng buộc sau: - Không được đi qua trái hay đi xuống - Đường đi phải liên tục - Ô (i,j) thuộc đường đi phải thỏa |i - j| <= w Giả sử có K ô đi từ ô (0,0) đến ô (m,n) thỏa mãn những điều kiện trên, 14 Luan van khi đó: Tuy nhiên, ta có thể dùng quy hoạch động để giải quyết bài toán này.
Trong đó, công thức truy hồi để tính D(i, j): Độ đo tương tự DTW có ưu điểm là cho kết quả chính xác hơn so với độ đo Eu- clid và 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. Độ đo tương tự này có nhược điểm là thời gian chạy lâu, tuy nhiên gần đây đã có những công trình tăng tốc độ tìm kiếm tương tự dùng độ đo DTW, tiêu biểu nhất là công trình của Keogh và các cộng sự, năm 2002 [21].5 minh họa cách tính khoảng cách theo DTW.5 Minh họa cách tính khoảng cách theo DTW.2 Thu giảm số chiều chuỗi thời gian. Thu giảm số chiều là phương pháp biểu diễn chuỗi thời gian n chiều X = {x1, x2, …, xn} thành chuỗi thời gian có N chiều Y = {y1, y2, …, yN} với N << n, nhưng vẫn phải giữ được các đặc trưng của chuỗi thời gian ban đầu. Với N càng lớn thì sự khôi phục càng chính xác.
Dữ liệu chuỗi thời gian thường rất lớn nên việc tìm kiếm trực tiếp trên dữ liệu chuỗi thời gian gốc sẽ không hiệu quả. Để khắc phục vấn đề này, cách tiếp cận chung thường được sử dụng bao gồm các bước sau: 15 Luan van 1. Áp dụng một số phương pháp biến đổi xấp xỉ để thu giảm độ lớn của dữ liệu sao cho vẫn giữ được các đặc trưng của dữ liệu. Các phương pháp biến đổi xấp xỉ này thường được gọi là những phương pháp thu giảm số chiều (dimensionality reduc- tion).