Năm 2002, trong [70] Lin và các cộng sự đã trình bày các định nghĩa về motif trong chuỗi thời gian nhƣ sau:
Định nghĩa 1. Một chuỗi thời gian là một chuỗi giá trị thực theo thời gian có chiều dài n. Nghĩa là nếu T là một chuỗi thời gian thì T = (t1, t2…, tn) trong đó ti là một số thực.
Trong khai phá dữ liệu chuỗi thời gian, các chuỗi con của một chuỗi thời gian thƣờng đƣợc xem xét. Các chuỗi con này có đƣợc bằng cách dùng một cửa sổ trƣợt có chiều dài bằng chiều dài chuỗi con quét lần lƣợt qua từng điểm của chuỗi thời gian. Chuỗi con trong một chuỗi thời gian dài hơn đƣợc định nghĩa nhƣ sau:
Định nghĩa 2. Cho một chuỗi thời gian T = (t1, …, tn), một chuỗi con có chiều dài
m của T là một chuỗi S = (ti, …, ti+m-1) với 1 ≤ i ≤ n – m +1.
Trong phát hiện motif chúng ta cần xác định xem một chuỗi con đƣợc cho có tƣơng tự với các chuỗi con khác không. Sự tƣơng tự này đƣợc định nghĩa nhƣ sau.
(2.7) i n W n n W DFT S S T W e W T DFT ( ) 1 . . ( ) (0) ( ). 2 / , 0 ≤ n ≤ W - 1
32
Định nghĩa 3. Cho một số thực dƣơng R và một chuỗi thời gian T. Một chuỗi con Ci của T bắt đầu tại vị trí i và một chuỗi con Cj của T bắt đầu tại vị trí j, nếu
DISTANCE(Ci, Cj) ≤ R thì Cj đƣợc gọi là chuỗi con tƣơng tự của Ci.
Hình 2.14 Một ví dụ về các chuỗi tương tự tầm thường ( [70]).
Hiển nhiên, các chuỗi con tƣơng tự nhất với một chuỗi con Ci là các chuỗi con bắt đầu tại các vị trí lệch một hay hai điểm về bên trái hay bên phải so với vị trí bắt đầu của chuỗi con Ci. Các trƣờng hợp này đƣợc gọi là so trùng tầm thường. Hình 2.14 là một ví dụ về trƣờng hợp này và nó đƣợc định nghĩa nhƣ sau:
Định nghĩa 4. Cho một chuỗi thời gian T, một chuỗi con Ci của T bắt đầu tại vị trí i và một chuỗi con tƣơng tự Cj của Ci bắt đầu tại vị trí j. Cj đƣợc gọi là so trùng tầm thƣờng (trivial match) của Ci nếu i = j hoặc không tồn tại một chuỗi con Ck bắt đầu tại vị trí k mà DISTANCE(Ci, Ck) > R và i < k < j hoặc j < k < i.
Một cách trực giác, bất kỳ định nghĩa nào về motif đều cần phải loại trừ khả năng đếm gộp cả những so trùng tầm thƣờng.
Motif bậc k trong một chuỗi thời gian đƣợc định nghĩa nhƣ sau.
Định nghĩa 5. Cho một chuỗi thời gian T, một chuỗi con có chiều dài n và một số thực dƣơng R, motif bậc nhất trong T (đƣợc gọi là 1-motif) là chuỗi con C1 có số chuỗi con tƣơng tự không tầm thƣờng nhiều nhất. Motif bậc k trong T (đƣợc gọi là k-motif) là chuỗi con Ck có số chuỗi con tƣơng tự không tầm thƣờng nhiều thứ k và thỏa
DISTANCE(Ci, Ck) > 2R, với mọi 1≤ i < k.
Trong luận án này, Định nghĩa 5 còn đƣợc gọi là định nghĩa căn bản của motif. Chú ý là Định nghĩa 5 qui định một chuỗi con không thể cùng lúc thuộc về hai motif khác nhau. Điều này thể hiện qua điều kiện DISTANCE(Ci, Ck) > 2R, với mọi 1≤ i < k. Hình 2.15 là một ví dụ minh họa cho trƣờng hợp này.
Năm 2009, trong [71] Mueen và các cộng sự đã đƣa ra khái niệm về motif nhƣ một cặp chuỗi thời gian giống nhau nhất trong cơ sở dữ liệu chuỗi thời gian hay cặp
33
chuỗi con giống nhau nhất trong một chuỗi thời gian dài hơn. Các khái niệm này đƣợc định nghĩa nhƣ sau.
Hình 2.15 (A) Một ví dụ về hai motif có chung một số đối tượng và (B) minh họa hai motif thỏa DISTANCE(Ci, Ck) > 2R ( [70]).
Định nghĩa 6. Một cơ sở dữ liệu chuỗi thời gian S là một tập các chuỗi thời gian
không theo thứ tự và có thể có chiều dài khác nhau.
Để đơn giản, chúng ta có thể giả định là tất cả chuỗi thời gian trong cơ sở dữ liệu có cùng chiều dài. Các khái niệm về motif nhƣ các cặp chuỗi giống nhau nhất đƣợc định nghĩa nhƣ sau.
Định nghĩa 7. Motif trong một cơ sở dữ liệu chuỗi thời gian S là một cặp chuỗi thời gian khác nhau {Ti, Tj}, i ≠ j, trong cơ sở dữ liệu S có khoảng cách nhỏ nhất. Nghĩa là
x, y, x ≠ y, i ≠ j, DISTANCE(Ti, Tj) ≤ DISTANCE(Tx, Ty).
Trong luận án này, Định nghĩa 7 còn đƣợc gọi là định nghĩa “Cặp lân cận gần nhất” của motif.
So với Định nghĩa 5, Định nghĩa 7 có tiện lợi là không đòi hỏi ngƣời dùng phải xác định ngƣỡng R. Tuy nhiên, Định nghĩa 7 không quan tâm tới tần số xuất hiện của chuỗi (hoặc chuỗi con) trong motif.
Định nghĩa 7 có thể đƣợc tổng quát hóa lên thành định nghĩa motif bậc k hàng đầu (top k-motif) và có thể đƣợc mở rộng bằng cách dùng khái niệm một tập các chuỗi
thời gian rất giống nhau đƣợc gọi là motif tầm (range motif).
Định nghĩa 8. Một motif bậc k hàng đầu là một cặp chuỗi thời gian bậc k giống
nhau nhất trong cơ sở dữ liệu S. Một cặp chuỗi thời gian là motif bậc k nếu tồn tại một tập có thứ tự M = {M1, M2, …, Mk} gồm k cặp không giao nhau của các chuỗi thời
gian khác nhau trong cơ sở dữ liệu, nghĩa là Mi = {Ti1, Ti2}, i1 ≠ i2, M1 M2 … Mk = , trong đó DISTANCE(M1) ≤ DISTANCE(M2) ≤ … ≤ DISTANCE(Mk) và x, y,
34
x ≠ y, Tx,Ty S, {Tx,Ty} M, DISTANCE(Mk) ≤ DISTANCE(Tx,Ty).
Định nghĩa 9. Một motif tầm với ngƣỡng r là một tập các chuỗi thời gian lớn nhất
D thỏa điều kiện: Ti, Tj D, DISTANCE(Ti, Tj) ≤ 2r and Tx S - D,
DISTANCE(Ti, Tx) > 2r.
Chúng ta có thể mở rộng các khái niệm trên cho trƣờng hợp các chuỗi con có chiều dài m trong một chuỗi thời gian rất dài có chiều dài n (m << n) bằng cách xem
mỗi chuỗi con nhƣ là một đối tƣợng trong cơ sở dữ liệu chuỗi thời gian. Các khái niệm này đƣợc định nghĩa nhƣ sau.
Định nghĩa 10. Một motif trong trƣờng hợp chuỗi con là một cặp chuỗi con khác nhau {Ci, Cj}, i ≠ j và |i – j| ≥ w với w > 0, trong một chuỗi thời gian T dài hơn có
khoảng cách nhỏ nhất. Nghĩa là, x, y, x ≠ y, |x - y|≥ w, DISTANCE(Ci, Cj) ≤ DISTANCE(Cx, Cy).
Chú ý là w đƣợc dùng trong định nghĩa trên giúp ta loại bỏ đƣợc những so trùng tầm thƣờng trong trƣờng hợp chuỗi con [70] và DISTANCE(Ci, Cj) là độ đo khoảng cách có nghĩa giữa hai chuỗi thời gian.
Giải thuật phát hiện motif bậc nhất theo kiểu brute-force.
BruteForceForDiscovery_1_Motif (T, n, R)
// T là chuỗi thời gian có chiều dài m, n là chiều dài motif (n << m), R là ngƣỡng tƣơng tự. Số phần tử của ứng viên motif = 0
Vị trí của ứng viên motif = null
For mỗi chuỗi con Ci có chiều dài n trong T // i [1, m - n + 1] {
Số phần tử đếm đƣợc = 0
Danh sách lân cận không tầm thƣờng của Ci = null For mỗi chuỗi con Cj có chiều dài n trong T
IfCj là lân cận không tầm thƣờng trong phạm vi ngƣỡng R của Ci {
Số phần tử đếm đƣợc = Số phần tử đếm đƣợc + 1 Thêm j vào danh sách lân cận không tầm thƣờng của Ci
}
If Số phần tử đếm đƣợc > Số phần tử của ứng viên motif
{
Số phần tử của ứng viên motif = Số phần tử đếm đƣợc Vị trí của ứng viên motif = i
} }
35
Hình 2.16 minh họa giải thuật brute-force dùng để phát hiện motif bậc nhất theo định nghĩa căn bản của motif. Phần then chốt trong giải thuật này liên tục so sánh tất cả các chuỗi con kế tiếp nhau của một chuỗi thời gian cho trƣớc. Do đó giải thuật có độ phức tạp là O(m2), với m là chiều dài của chuỗi thời gian. Độ phức tạp này quá cao, gần nhƣ không thể chấp nhận đƣợc khi áp dụng vào thực tế.
2.7.2 Tổng quan về một số phương pháp phát hiện motif tiêu biểu.
Trong phần này chúng tôi sẽ giới thiệu tóm tắt về một số phƣơng pháp phát hiện motif trên chuỗi thời gian tiêu biểu đã đƣợc giới thiệu trong thời gian qua.
Nhiều giải thuật đã đƣợc giới thiệu để giải quyết bài toán phát hiện motif trên chuỗi thời gian từ khi bài toán này đƣợc hình thức hóa vào năm 2002 [70]. Trong [70], Lin và các cộng sự định nghĩa bài toán phát hiện motif trên chuỗi thời gian dựa vào một ngƣỡng R và một chiều dài motif m do ngƣời dùng xác định. Theo đó hai chuỗi
con ci bắt đầu ở vị trí i và cj bắt đầu ở vị trí j có chiều dài m trong một chuỗi thời gian có chiều dài n (m << n) tạo thành một cặp tƣơng tự không tầm thƣờng (non-trivial
matching) nếu độ đo tƣơng tự giữa chúng DISTANCE(Ci, Cj) < R và tồn tại một chuỗi con Ck bắt đầu tại vị trí k mà DISTANCE(Ci, Ck) > R và i < k < j hoặc j < k < i. Khái niệm tƣơng tự này sau đó đƣợc mở rộng thành bài toán phát hiện những motif bậc k
hàng đầu trên chuỗi thời gian, trong đó motif bậc nhất trên chuỗi thời gian là chuỗi con
c1 có số chuỗi con tƣơng tự không tầm thƣờng nhiều nhất. Motif bậc k là chuỗi con ck có số chuỗi con tƣơng tự không tầm thƣờng nhiều thứ k và thỏa DISTANCE(Ci, Ck) > 2R, với mọi 1≤ i < k.
Vì độ phức tạp của giải thuật phát hiện motif chính xác trên chuỗi thời gian theo kiểu brute-force là bậc hai, các nhà nghiên cứu đã tìm cách tối ƣu hóa giải thuật dựa trên tính chất đối xứng và bất đẳng thức tam giác của khoảng cách Euclid. Tuy nhiên cách tiếp cận này vẫn không hiệu quả về mặt không gian và khó áp dụng với tập dữ liệu lớn [12].
Do độ phức tạp cao của giải thuật phát hiện motif chính xác, các nhà nghiên cứu đã chuyển sang nghiên cứu các giải pháp phát hiện motif xấp xỉ. Nói chung, các giải pháp này thƣờng có độ phức tạp là O(n) hoặc O(nlogn) (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) với một số các tham số phải xác định trƣớc [71].
36
Năm 2003, Chiu và các cộng sự đề xuất giải thuật chiếu ngẫu nhiên để phát hiện motif trên chuỗi thời gian theo cách tiếp cận xấp xỉ [12]. Các tác giả đã giới thiệu một thuật toán phát hiện motif trong thời gian tuyến tính gọi là giải thuật chiếu ngẫu nhiên (random projection). Giải thuật này dựa trên kỹ thuật băm bảo toàn tính lân cận (local- ity preserving hashing). Kỹ thuật này sử dụng phƣơng pháp rời rạc hóa SAX để biểu diễn các chuỗi con trong chuỗi thời gian ban đầu và một ma trận đụng độ có số dòng và cột là số chuỗi con đƣợc trích từ chuỗi thời gian ban đầu. Mỗi vòng lặp, thuật toán sẽ lựa chọn ngẫu nhiên một số vị trí trong biểu diễn SAX để làm mặt nạ và duyệt qua danh sách biểu diễn SAX. Nếu hai chuỗi biểu diễn SAX tƣơng ứng với hai chuỗi con i và j giống nhau thì ô(i, j) trong ma trận đụng độ sẽ đƣợc tăng lên một.
Sau khi tiến trình trên đƣợc lặp lại một số lần thích hợp, các ô có giá trị lớn trong ma trận đụng độ sẽ đƣợc chọn làm các ứng viên motif. Cuối cùng dữ liệu gốc tƣơng ứng với các ứng viên motif sẽ đƣợc kiểm tra để thẩm định kết quả.
Hình 2.17 là một ví dụ minh họa một chuỗi thời gian có chiều dài 1000 điểm và biểu diễn SAX của các chuỗi con có chiều dài n = 16, chiều dài bộ ký tự SAX là a = 3, số chiều w của chuỗi con sau khi thu giảm theo PAA là 4.
Hình 2.17 Ví dụ minh họa một chuỗi thời gian T và biểu diễn SAX của các chuỗi con của T ( [12]).
37
Hình 2.18 là một ví dụ minh họa thực hiện lần lặp thứ nhất của phƣơng pháp chiếu ngẫu nhiên trên các chuỗi SAX đƣợc minh họa ở Hình 2.17. Trong ví dụ này hai cột một và hai đƣợc chọn ngẫu nhiên (hình phía trái), đƣợc dùng để tạo ma trận đụng độ (hình phía phải). Trong ví dụ ta có hai cặp chuỗi con giống nhau là (1, 58) và (2, 985), do đó hai ô tƣơng ứng với hai cặp chuỗi con này trong ma trận đụng độ đƣợc tăng lên một.
Độ phức tạp của thuật toán này là tuyến tính theo độ dài của từ SAX, số chuỗi con, số lần lặp và số lần đụng độ [72]. Thuật toán này đã đƣợc sử dụng rộng rãi để phát hiện motif trên chuỗi thời gian từ khi nó đƣợc giới thiệu và có thể đƣợc dùng để phát hiện tất cả motif với xác xuất cao sau một số lần lặp thích hợp ngay cả trong trƣờng hợp có nhiễu. Tuy nhiên, nó vẫn có những nhƣợc điểm sau: (1) để thực hiện thuật toán, nhiều tham số nhập cần phải đƣợc xác định trƣớc bởi ngƣời sử dụng, (2) độ phức tạp của thuật toán này sẽ trở thành bậc hai nếu sự phân bố của phép chiếu không đủ rộng, nghĩa là có một số lớn các chuỗi con có cùng kết quả chiếu [72] và (3) thuật toán chiếu ngẫu nhiên chỉ hiệu quả khi số chiều đƣợc chiếu là một số tƣơng đối nhỏ (khoảng từ 10 tới 20) [17].
Năm 2006, Ferreira và các cộng sự giới thiệu một cách tiếp cận khác để phát hiện motif trên chuỗi thời gian [73]. Đầu tiên thuật toán này biến đổi các chuỗi con trong chuỗi thời gian về protein thành dạng biểu diễn SAX, tìm các cụm của các chuỗi con, sau đó mở rộng chiều dài của mỗi motif thu đƣợc cho đến khi độ tƣơng tự nhỏ hơn một ngƣỡng đƣợc xác định trƣớc. Thuật toán này có thể đƣợc dùng để phát hiện motif trên chuỗi thời gian nhiều biến hay phát hiện motif có kích thƣớc khác nhau. Tuy nhiên độ phức tạp của thuật toán này là bậc hai và toàn bộ dữ liệu phải đƣợc nạp vào bộ nhớ chính [74].
Năm 2007, Yankov và các cộng sự đã giới thiệu một thuật toán phát hiện motif trên dữ liệu chuỗi thời gian có thể biến đổi co giãn theo trục hoành (uniform scaling time series) [17]. Cách tiếp cận này sử dụng thuật toán chiếu ngẫu nhiên đƣợc cải tiến để có thể khám phá motif mà không bị ảnh hƣởng bởi sự biến đổi co giãn theo trục hoành. Khái niệm về motif trên dữ liệu chuỗi thời gian đã đƣợc định nghĩa lại theo nghĩa “lân cận gần nhất”: motif là một cặp chuỗi con giống nhau nhất trong một chuỗi thời gian dài. Cách tiếp cận này có nhƣợc điểm giống nhƣ thuật toán chiếu ngẫu nhiên.
38
Ngoài ra tổng chi phí của cách tiếp cận này cao do phải tìm các hệ số biến đổi co giãn theo trục hoành tốt nhất.
Năm 2008, Tang và Liao đã đề xuất một phƣơng pháp phát hiện các motif có độ dài khác nhau trên chuỗi thời gian [75]. Phƣơng pháp này bao gồm ba bƣớc chính: (1) Chọn một giá trị w tƣơng đối nhỏ và phát hiện các motif có chiều dài w bằng cách sử dụng thuật toán phát hiện motif bậc k dựa trên thuật toán chiếu ngẫu nhiên. (2) Nối các motif có vị trí lân cận nhau để tạo thành các ứng viên motif dài hơn. (3) Nhận diện tất cả motif bắt nguồn từ cùng một mẫu. Đóng góp chính của phƣơng pháp này là đã khắc phục đƣợc vấn đề khó trong thuật toán phát hiện motif bậc k gốc là phải xác định đƣợc chiều dài motif trƣớc. Tuy nhiên phƣơng pháp này vẫn có nhƣợc điểm giống nhƣ thuật toán chiếu ngẫu nhiên.
Với định nghĩa motif trong chuỗi thời gian là cặp chuỗi hoặc chuỗi con giống nhau nhất, năm 2009, Mueen và các cộng sự đã giới thiệu một giải thuật phát hiện mo- tif chính xác, gọi là giải thuật MK [71]. Cách tiếp cận này sử dụng các điểm tham chiếu đƣợc chọn ngẫu nhiên và ý tƣởng từ bỏ sớm việc tính toán khoảng cách Euclid khi tổng tích lũy khoảng cách hiện hành lớn hơn khoảng cách của ứng viên motif tốt nhất tại thời điểm đang xét. Quá trình phát hiện motif của thuật toán này dựa vào thông tin heuristic đƣợc xác định bởi thứ tự của khoảng cách giữa đối tƣợng đang xét với các điểm tham chiếu ngẫu nhiên.