TÓM TẮT Chuỗi thời gian Time Series trong thống kê, xử lý tín hiệu, kinh tế lượng và toán tài chính là một chuỗi các điểm dữ liệu được đo theo khoảng thời gian bằng nhau theo một tần su
Chương đầu tiên của luận văn sẽ là phần mở đầu, phần này sẽ điểm qua các vấn đề liên quan tới bài toán phân tích dữ liệu chuỗi thời gian, ý nghĩa của việc phân tích dữ liệu chuỗi thời gian trong thực tiễn và khoa học mà đặc biệt là bài toán kết chuỗi con
Hướng tiếp cận của tôi cho việc giải quyết bài toán kết chuỗi con và ứng dụng kết quả của quá trình kết chuỗi con trong bài toán tìm motif và anomaly trong chuỗi thời gian
Như chúng ta đã biết, công nghệ trên thế giới ngày một phát triển và mức độ ảnh hưởng của nó đến con người là đều không thể phủ nhận Có thể nói cho đến bây giờ hầu hết những gì chúng ta gặp xung quanh cuộc sống, những thứ chúng ta tiếp xúc và làm việc hàng ngày, trong gia đình và kể cả trong công việc đều liên quan đến công nghệ
Với sự phát triển nhanh như vậy, thì dữ liệu mà con người phải đối mặt hàng ngày cũng rất lớn Vậy câu hỏi đặt ra là, “làm sao để có thể quản lý và tìm kiếm thông tin quan trọng và hữu ích trong một lượng dữ liệu lớn (Big Data) một cách nhanh nhất và chính xác nhất ?”
Câu hỏi này chính là mấu chốt cho sự phát triển của ngành khai phá dữ liệu (Data
Mining) một lĩnh vực mà rất nhiều nhà nghiên cứu trên thế giới quan tâm tới
Một trong những loại dữ liệu rất quan trọng đó là dữ liệu chuỗi thời gian (Time Series Data) dữ liệu này có trong hầu hết các lĩnh vực trong cuộc sống như là thống kê, xử lý tín hiệu, kinh tế, tài chính, môi trường, năng lượng, Như vậy làm thế nào để có thể từ một dữ liệu chuỗi thời gian ta có thể biết được những tri thức tiềm ẩn bên trong nó ? đây cũng là câu hỏi dẫn tới một loạt các bài toán về phân tích dữ liệu chuỗi thời gian (Time Series Analysis) như là bài toán kết chuỗi con (Subseries Join), phân loại (Classification), gom cụm
(Clustering), dự báo (Predict), phát hiện bất thường (Novelty Detection), phát hiện mô típ
(Motif Detection),… Trong đó bài toán kết chuỗi là một trong những bài toán được quan tâm nhất trong thời gian gần đây
1.2 - Ý NGHĨA PHÂN TÍCH DỮ LIỆU CHUỖI THỜI GIAN
Việc phân tích dữ liệu chuỗi thời gian là điều rất quan trọng và có ý nghĩa rất lớn đối với từng lĩnh vực kể cả trong khoa học và thực tiễn
Ví dụ như cho hai biểu đồ biểu diễn hai bản nhạc, làm thế nào để biết hai bản nhạc có giống nhau hay không ? (ứng dụng để có thể phát hiện đạo nhạc ) hoặc là cho hai biểu đồ về lưu lượng nước trên hai con sông, làm thế nào để biết khoảng thời gian nào thì lưu lượng nước ở hai con sông là giống nhau nhất (phục vụ cho công tác nghiên cứu và dự đoán)
Làm thế nào biết được trong một biểu đồ điện tâm đồ, biểu đồ điện não đồ, giai đoạn nào là bất thường (anomaly) giai đoạn nào là ổn định ? lời giải của bài toán nhằm mục đích phục vụ cho quá trình chẩn đoán và đưa ra kết luận dựa trên các kết quả đó
Phân tích chuỗi thời gian bao gồm các phương pháp để phân tích dữ liệu chuỗi thời gian, để từ đó trích xuất ra được các thuộc tính thống kê có ý nghĩa và đặc trưng của dữ liệu
Dự đoán chuỗi thời gian là việc sử dụng mô hình để dự đoán các sự kiện thời gian dựa vào các sự kiện đã biết trong quá khứ để từ đó dự đoán các điểm dữ liệu trước khi nó xảy ra
Vấn đề chúng ta cần xem xét là việc kết hai chuỗi thời gian dựa trên độ tương quan lớn nhất giữa chúng Hai chuỗi thời gian có thể được kết hợp ở bất kỳ vị trí và bất kỳ độ dài nào, một cặp vị trí và độ dài có thể cho ta những tri thức hữu ích trong nhiều lĩnh vực khác nhau như tài chính, kinh tế, giám sát môi trường, theo dõi bệnh nhân và các vấn đề liên quan đến năng lượng…
Ví dụ trong Hình 1.1 minh họa tỉ giá hối đoái của hai đồng tiền Indian Rupee (INR) và Singapore Dollar (SGD) từ năm 1996 tới năm 2013, đoạn được tô đậm trong hình chính là đoạn được kết và chúng có hệ số tương quan là 0.94 [2]
Hình 1.1 – Hai chuỗi thời gian về tỉ giá hối đoái của hai đồng tiền Indian Rupee (INR) và Singapore Dollar (SGD) trong giai đoạn 1996-2013
Tuy nhiên, việc tính toán độ tương quan của tất cả các đoạn con đòi hỏi một chi phí khá cao, đặc biệt là khi độ dài của chuỗi thời gian tương đối lớn Giải thuật trực tiếp (Naive
Algorithm) yêu cầu độ phức tạp là O(n 4 ) với n là độ dài của chuỗi thời gian
Trong đề tài này chúng tôi sử dụng kỹ thuật phân đoạn bằng phương pháp xấp xỉ đa thức bình phương tối thiểu (Least-Square Polynomial Approximate) kết hợp với phương pháp cửa sổ trượt (Sliding Window) và tiêu chí phân đoạn là sai số toàn phương trung bình (Mean
Square Error) để tìm ra các đoạn mang tính chất đặc trưng nhất, sau đó tôi tìm minLen dựa vào các đoạn đặc trưng này, quá trình kết chuỗi con chúng tôi sử dụng hệ số tương quan
Pearson để tìm ra sự tương quan của tất cả các đoạn con có độ dài lơn hơn hoặc bằng minLen
Chương hai của luận văn sẽ đi qua các khái niệm liên quan đến chuỗi thời gian, xác suất thống kê, cũng như là các phương pháp chuẩn hóa, các độ đo sử dụng trong bài toán kết chuỗi con
Bên cạnh đó chương này còn trình bày ý tưởng của phép biến đổi Fourier nhanh nhằm mục đích tăng tốc quá trình kết chuỗi con trong công trình của A Mueen và các cộng sự, các khái niệm về đa thức, đa thức trực giao, bài toán xấp xỉ đa thức bình phương tối thiểu được ứng dụng trong bài toán phân đoạn chuỗi thời gian của E Fuchs và các cộng sự
2.1.1 - Chuỗi thời gian (Time Series)
Một chuỗi thời gian T là một dãy của các số thực t 1 , t 2 , …, t n với n là độ dài của chuỗi thời gian, mỗi giá trị t i biểu diễn giá trị đo tại những thời điểm cách đều nhau
Trong Hình 2.1 minh họa chuỗi thời gian về nhiệt độ ở New York năm 1987 - 2000
2.1.2 - Chuỗi thời gian con (Subsequence Time Series)
Một chuỗi con S của chuỗi thời gian T bắt đầu ở vị trí i và có độ dài là m được biểu diễn như sau t[i : i + m – 1] = t i , t i+1 , …,t i + m – 1
Hình 2.1 - Chuỗi thời gian về nhiệt độ ở New York trong giai đoạn 1987-2000
Trong Hình 2.2 miêu tả hai chuỗi thời gian minh họa nhiệt độ (temperature) và độ mặn (salinity) ở một khu vực trong biển Thái Bình Dương [2] Phần tô đậm chính là chuỗi thời gian con của hai chuỗi thời gian gần như tương tự với nhau
2.1.3 - Kết chuỗi con (Subseries Join)
Kết chuỗi con là quá trình tìm độ tương tự của hai chuỗi con X và Y Trên chuỗi thời gian T ta có X = [x 1 , x 2 , …., x n ] và Y = [y 1 , y 2 , ….,y n ] ta cần tính C(X, Y) của hai chuỗi con này,
C(X, Y) là hệ số tương quan của hai chuỗi con đó.
Bài toán kết chuỗi con có thể được chia làm hai hướng tiếp cận sau đây :
Tìm một cặp chuỗi con có độ tương quan lớn nhất (MaxCorrelation Join)
Cho hai chuỗi thời gian là X = [x 1 , x 2 , …., x n ] và Y = [y 1 , y 2 , ….,y n ] ta sẽ đi tìm duy nhất một đoạn con của X gọi là X’ = [xi, xi + 1, …, xi+len-1] và đoạn con của Y gọi là Y’ = [yj, yj + 1,
…, yj+len-1] với len lớn hơn hoặc bằng minLen sao cho C(X’, Y’) của chúng là lớn nhất Tức là
X’ và Y’ là tương quan nhất với nhau
Hình 2.3 minh họa độ tương quan về tỉ giá hối đoái của hai đồng tiền Indian Rupee
(INR) và Singapore Dollar (SGD) từ năm 1996 tới năm 2013 [2]
Hình 2.2 - Chuỗi thời gian con minh họa sự tương quan giữa nhiệt độ và độ mặn ở một khu vực trong biển Thái Bình Dương vào ngày 11-Jan, 1999
Tìm một tập tất cả các chuỗi con mà có độ tương quan lớn hơn hoặc bằng α
Cho hai chuỗi thời gian là X = [x 1 , x 2 , …., x n ] và Y = [y 1 , y 2 , ….,y n ] ta sẽ đi tìm một tập các chuỗi con S = {s 1 , s 2 , s m } sao cho với mỗi s i thì độ tương quan của s i là lớn hơn hoặc bằng một ngưỡng α cho trước s i được định nghĩa như sau : s i = [x j,k , y l, k ], với k ≥ minLen Cặp chuỗi con thứ i có chuỗi con x bắt đầu ở j và có độ dài là k, chuỗi con y bắt đầu ở l và có độ dài là k
Hình 2.4 minh họa cho việc kết chuỗi con theo hướng tiếp cận thứ hai
Như vậy, chúng ta thấy giữa hai hướng tiếp cận trên có mối liên hệ với nhau Nếu chúng ta đi tìm giá trị lớn nhất của các s i tức là đi tìm max{C(s i )} với 1 min(Dist(C,MC))
2.2 - GIÁ TRỊ TRUNG BÌNH, PHƯƠNG SAI, ĐỘ LỆCH CHUẨN
2.2.1 - Giá trị trung bình (Mean)
Ta có bộ dữ liệu quan sát như sau X 1 , X 2 ,…,X n Trung bình của một tập hợp các quan sát bằng tổng của tất cả các quan sát chia cho số lượng các quan sát
Trung bình đo lường khuynh hướng tập trung của các quan sát, chúng cho ta biết sự tập trung của các con số
(1) Với x i là giá trị quan sát thứ i
𝜇 𝑥 là giá trị trung bình của tập X
Phương sai phản ánh mức độ phân tán của các giá trị của biến ngẫu nhiên so với giá trị trung bình, phương sai càng nhỏ thì các giá trị càng tập trung xung quanh giá trị trung bình.
Với x i là giá trị quan sát thứ i
𝜇 𝑥 là giá trị trung bình của tập X Nếu phương sai bằng 0 thì tất cả các giá trị quan sát đều bằng nhau và bằng giá trị trung bình, tức là không có sự biến thiên nào xảy ra
Chương ba của luận văn sẽ điểm qua một số công trình liên quan đến bài toán kết chuỗi con như là phương pháp kết chuỗi con dựa trên các phân đoạn không đồng nhất của Yi
Lin, phương pháp kết chuỗi con dựa vào phép biến đổi Fourier nhanh kết hợp với phương pháp cắt tỉa các vị trí không cần thiết của A Mueen và các cộng sự, phương pháp kết chuỗi con sử dụng độ đo xoắn thời gian động của Võ Đức Vĩnh, phương pháp phân đoạn chuỗi thời gian dựa vào các điểm cực trị quan trọng của Fink và các cộng sự, phương pháp phân đoạn chuỗi thời gian dựa trên xấp xỉ đa thức bình phương tối thiểu của E Fuchs và các cộng sự
3.1 - KẾT CHUỖI CON DỰA VÀO CÁC PHÂN ĐOẠN KHÔNG ĐỒNG NHẤT
Phương pháp này được đề cập trong luận án tiến sĩ của Yi Lin, 2008 [12], Tác giả đề xuất quy trình kết chuỗi con trên dữ liệu chuỗi thời gian với sự hỗ trợ của cấu trúc chỉ mục 𝑅 − 𝑇𝑟𝑒𝑒 sử dụng độ đo Euclid Đồng thời, tác giả kết hợp phương pháp phân đoạn và biểu diễn xấp xỉ chuỗi thời gian trước khi lập chỉ mục
Hình 3.1 mô tả tổng quan toàn bộ công trình của của Yi Lin
Hình 3.1 - Tổng quan về quy trình kết chuỗi con của Yi Lin Nhánh bên phải là quy trình kết chuỗi con, nhánh bên trái là quy trình nén dữ liệu (nguồn [12])
Theo như luận án của Yi Lin thì chuỗi thời gian ban đầu sẽ được biến đổi thành một dãy các đặc trưng có thứ bậc (Hierarchical Feature Sequence) Để có được điều này, chuỗi thời gian phải trải qua một quá trình làm trơn bằng phương pháp Gaussian (tham khảo mục
3.1.1 trong luận án của Yi.Lin) Dữ liệu sau khi được làm trơn sẽ được phân đoạn dựa vào các điểm không liên tục, mà các điểm này được xác định bằng cách giải phương trình F(x) 0 với F(x) là đạo hàm bậc hai của hàm số sau
Mỗi đoạn sẽ được biểu diễn xấp xỉ thông qua một đa thức bao nhỏ nhất (Minimal
Polynomial Envelope) và có thể kèm theo một vài tham số để phản ánh được đặc trưng của đoạn đó Sau khi phân đoạn, tất cả các đặc trưng sẽ được lập chỉ mục bằng cấu trúc R – Tree sao cho khoảng cách giữa các đoạn thì tương đương với khoảng cách giữa các điểm đặc trưng
Giai đoạn cuối cùng là tiến hành kết chuỗi con trên các dữ liệu đã lập chỉ mục Kết quả của việc kết chuỗi con trên cây R – Tree là tập hợp tất cả các cặp đặc trưng từ hai chuỗi thời gian ban đầu mà tương tự nhau với khoảng cách của chúng là nhỏ hơn một ngưỡng cho trước, quá trình tinh chỉnh kết quả để tìm được chuỗi con dài nhất, tác giả sử dụng kỹ thuật quy hoạch động (Dynamic Programing)
Ngoài ra luận án còn nghiên cứu về bài toán nén dữ liệu chuỗi thời gian nhưng việc đó nằm ngoài đề tài nghiên cứu nên chúng tôi không đề cập trong đề cương này
Nhận thấy công trình mà Yi Lin đề xuất về bài toán kết chuỗi con dựa vào các phân đoạn không đồng nhất, các quá trình tính toán khá công phu, phức tạp, dẫn đến việc khó khả thi trong các ứng dụng thực tế, mà đặc biệt là dữ liệu chuỗi thời gian
Trong phần kế tiếp chúng tôi sẽ giới thiệu một công trình liên quan đến bài toán kết chuỗi con của A Mueen và các cộng sự đề xuất
3.2 - KẾT CHUỖI CON DỰA VÀO PHÉP BIẾN ĐỔI FOURIER NHANH KẾT HỢP VỚI PHƯƠNG PHÁP CẮT TỈA CÁC VỊ TRÍ KHÔNG QUAN TRỌNG
Nghiên cứu của A Mueen và các cộng sự về bài toán kết chuỗi con được chia thành hai phần chính, đầu tiên là việc sử dụng lại các kết quả tính toán để tiết kiệm chi phí nhờ vào phép biển đổi Fourier nhanh và sau đó là loại bỏ các cặp đoạn không cần thiết phải tính toán nữa dựa trên khoảng cách giữa chúng, vì cho dù có tính cũng không tìm được kết quả tốt hơn
Bài toán kết chuỗi con đã được A Mueen và các cộng sự cải tiến từ O(N 4 ) xuống còn thấp hơn O(N 3 ) chúng ta sẽ lần lượt đi qua các nghiên cứu mà ông và các cộng sự đã công bố
Phần đầu tiên sẽ giới thiệu về giải thuật trực tiếp có độ phức tạp lớn nhất là O(N 4 )
3.2.1 - Giải thuật trực tiếp (Nạve Algorithm) Bảng 3.1 là mã giả của giải thuật kết chuỗi con bằng phương pháp trực tiếp
Kết quả trả về là vị trí và độ dài của đoạn tương quan nhất trong x và y
4: best 0 5: for i 1 to m – minLength + 1 do
8: for len minLength to maxLength do
9: c Correlation(x[j: j + len – 1], y[i: i + len – 1]) 10: if c > best then
Bảng 3.1 - Giải thuật trực tiếp (Nạve Algorithm)
Quan sát trong Bảng 3.1 chúng ta thấy tại dòng 5, 6, 8 là ba vòng lặp lồng nhau để lấy ra được độ dài len của đoạn từ vị trí i trong y và vị trí j trong x độ phức tạp là O(N 3 ) Ở dòng 9 để tính được c ta cần phải thêm một lần lặp tuyến tính nữa tương đương với độ phức tạp O(N) Suy ra tổng độ phức tạp của giải thuật trên là O(N 4 )
Do việc tính toán c đòi hỏi một thời gian tính toán là O(N), trong khi đó có rất nhiều truy vấn cần tới việc tính c Do đó A Mueen và các cộng sự đã tìm cách cải tiến độ phức tạp của giải thuật trực tiếp
Phần kế tiếp sẽ trình bày về ý tưởng sử dụng phép biển đổi Fourier nhanh để cải tiến độ phức tạp của giải thuật trực tiếp
3.2.2 - Tính toán sự tương quan trùng lắp (Overlapping Correlation
Trong phần 2.5.3 quan sát công thức (12) ta thấy để tối đa C(x, y) thì ta có thể tối thiểu hóa dist(x, y) tuy nhiên việc tính toán hệ số tương quan hoặc là tính khoảng cách cần phải trải qua hai giai đoạn, đầu tiên phải tính μ (giá trị trung bình) và σ (độ lệch chuẩn) sau đó là tính
Chương bốn của luận văn sẽ trình bày về phương pháp đề nghị cho bài toán kết chuỗi con trên dữ liệu chuỗi thời gian dựa vào hệ số tương quan Pearson và một ứng dụng của bài toán kết chuỗi con để phát hiện motif và bất thường trên dữ liệu chuỗi thời gian
Xem xét qua các công trình liên quan, chúng tôi đề xuất hướng tiếp cận bài toán sử dụng kỹ thuật phân đoạn dựa vào xấp xỉ đa thức bình phương tối thiểu của E Fuchs và các cộng sự bởi vì ưu thế của nó về mặt thời gian và chất lượng phân đoạn bên cạnh đó giải thuật có thể thực hiện một cách linh động (flexible), trực tuyến (online) và việc cập nhật chỉ trong một độ phức tạp rất thấp (chỉ phụ thuộc vào bậc của đa thức) Quá trình kết chuỗi con sẽ được tiến hành qua ba công đoạn chính như trình bày bên dưới
4.1 – GIẢI THUẬT JOCOR CẢI TIẾN
4.1.1 – Quá trình chuẩn hóa dữ liệu
Quá trình chuẩn hóa sẽ sử dụng phương pháp chuẩn hóa Z như đã trình bày ở mục 2.3.1 sau khi chuẩn hóa hai chuỗi thời gian về đường căn bản x = 0, thì sẽ có hai trường hợp, nếu như chúng ta đem chuỗi thời gian T 1 kết với chuỗi thời gian T 2 thì sẽ dùng phương pháp chuẩn hóa Min-Max để thay đổi miền trị của T 1 về miền trị của T 2 và ngược lại
Hình 4.1 minh họa cho quá trình chuẩn hóa dữ liệu
Hình 4.1 - Sơ đồ tổng quát cho quá trình chuẩn hóa dữ liệu
53 4.1.2 – Quá trình phân đoạn chuỗi thời gian
Trong đề tài nghiên cứu này chúng tôi sử dụng giải thuật phân đoạn chuỗi thời gian dựa vào xấp xỉ đa thức bình phương tối thiểu được đề xuất bởi E Fuchs và các cộng sự [13] tiêu chí phân đoạn dựa vào sai số toàn phương trung bình (Mean Square Error) Bởi vì giải thuật này có hai ưu điểm vượt trội là thời gian thực thi khá nhanh và có thể áp dụng cho dữ liệu trực tuyến (online data) Sau khi chuỗi thời gian ban đầu được phân thành các đoạn con, chúng tôi gọi các đoạn con này là các đoạn con đặc trưng
Giả sử quá trình phân đoạn tách ra được thành m đoạn con, đoạn con thứ i có độ dài là L i , Gọi Slà tập hợp tất cả các chuỗi con mà tương quan với nhau sau khi thực hiện tác vụ kết chuỗi con, thì độ dài tối thiểu của các chuỗi con trong tập hợp S là chính là minLen và được tính theo công thức sau minLen sẽ là độ dài đại diện cho tất cả các chuỗi con, điều này sẽ giúp cho việc tìm tập hợp S có ý nghĩa hơn, bởi vì độ dài của các đoạn con trong kết quả sẽ lớn hơn hoặc bằng minLen, giúp ích trong quá trình phân tích và dự báo cho các bài toán về dữ liệu chuỗi thời gian
Hình 4.2 minh họa cho quá trình phân đoạn chuỗi thời gian và tìm minLen
Hình 4.2 - Sơ đồ tổng quan của quá trình phân đoạn và tìm minLen
Nếu ta thực hiện tác vụ kết T 1 với T 2 thì sử dụng minLen 1 còn nếu thực hiện tác vụ kết T 2 với T 1 thì sử dụng minLen 2
4.1.3 – Quá trình kết chuỗi con
Quá trình cuối cùng chính là quá trình kết chuỗi con, ở giai đoạn này chúng tôi sử dụng lại giải thuât Jocor (Join on Correlation) của A Mueen và các cộng sự của ông, nhưng chúng tôi có một đề xuất là sử dụng phương pháp dựa vào quy hoạch động (Dynamic
Programing) thay vì sử dụng giải thuật phép biến đổi fourier nhanh (Fast Fourier Transform) đã được A Mueen và các cộng sự sử dụng Phương pháp quy hoạch động có ưu điểm là tận dụng được các kết quả đã được tính toán trước, cài đặt đơn giản, tiết kiệm không gian bộ nhớ và đặc biệt là độ phức tạp tính toán sẽ thấp hơn so với giải thuật FFT (Fast Fourier Transform) mà vẫn cho ra cùng một kết quả
Như đã trình bày ở mục 3.2.2 chúng ta cần tiền xử lý giá trị của mảng sumXY để trong quá trình kết chuỗi con cúng ta không cần phải đi tính toán lại mà chỉ việc lấy kết quả trong sumXY để sử dụng
Giả sử chúng ta có hai chuỗi thời gian là X = {x 1 , x 2 ,…x n } và Y = {y 1 , y 2 , …,y m }, với mỗi truy vấn dạng Q(sx, ex, sy, ey) với điều kiện ex – sx + 1 = ey – sy + 1và sx