Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)Phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian (Luận văn thạc sĩ)
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
Huỳnh Cẩm
PHÁT HIỆN CHUỖI BẤT THƯỜNG TRÊN DỮ LIỆU
CHUỖI THỜI GIAN
Chuyên ngành: HỆ THỐNG THÔNG TIN
TÓM TẮT LUẬN VĂN THẠC SĨ
THÀNH PHỐ HỒ CHÍ MINH – 2018
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS Dương Thị Thuỳ Vân
Phản biện 1: Phản biện 2:
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng 01 năm 2018
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
Dữ liệu chuỗi thời gian là dữ liệu đo đạc được một cách tuần tự theo thời gian Có rất nhiều loại dữ liệu có yếu tố thời gian như vậy, ví dụ như dữ liệu điện tâm đồ, dữ liệu thiên văn, thời tiết, mực nước, dữ liệu tài chính, giá chứng khoán, … Một nghiên cứu khảo sát về các hướng nghiên cứu quan trọng và đang là thách thức nhất trong lĩnh vực khai phá dữ liệu
và học máy được thực hiện vào năm 2006 bởi Yang và Wu [1] cho kết quả 10 hướng nghiên cứu chính Trong đó, hướng nghiên cứu về khai phá dữ liệu chuỗi thời gian được xếp thứ 3 trong 10 hướng nghiên cứu quan trọng và thách thức nhất Do đó, việc khai phá dữ liệu chuỗi thời gian đã và đang thu hút rất nhiều sự quan tâm nghiên cứu trên thế giới
Các bài toán điển hình trong khai phá dữ liệu chuỗi thời gian bao gồm: Lập chỉ mục (Indexing), Gom cụm (Clustering), Phân lớp (Classificaition), Tổng hợp (Summarization), Phát hiện Motif (Motif detection), Phát hiện chuỗi bất thường (Anomaly detection)
Khai phá dữ liệu chuỗi thời gian được ứng dụng rộng rãi trong nhiều lĩnh vực như y học, kinh tế, tài chính, chứng khoán, quản lý mạng truyền thông, … Các lĩnh vực nghiên cứu như y học và dịch vụ tài chính, … thường cần độ chính xác rất cao Trong khi đó, những chuỗi bất thường trên dữ liệu chuỗi thời gian thường ảnh hưởng rất nhiều đến kết quả khai phá dữ liệu Vì vậy việc xác định các chuỗi bất thường trên dữ liệu chuỗi thời gian đóng vai trò rất quan trọng và thường được dùng như bước tiền xử lý cho những bài toán khai phá dữ liệu chuỗi thời gian Sau đây là một số ứng dụng quan trọng của bài toán phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian [2]:
- Phát hiện bất thường của xung nhịp tim bằng dữ liệu điện tim ECG [3], [4]: thông
thường dữ liệu điện tim ECG là những chuỗi thời gian tuần hoàn ghi lại các biến
thiên của các điện lực do tim phát ra trong hoạt động co Một bất thường trong dữ liệu này có thể là một mẫu không phù hợp (non-conforming pattern) về mặt chu kỳ hoặc biên độ, điều này có thể chỉ ra rằng có vấn đề về sức khỏe
- Phát hiện tấn công trong các hệ thống tư vấn (recommender system): tấn công Shilling, trong đó kẻ tấn công đưa ra các xếp hạng, đánh giá có thiên vị để ảnh hưởng đến những tư vấn, gợi ý trong tương lai [5]
- Phát hiện bất thường của chuyến bay sử dụng dữ liệu cảm biến từ máy báy: hành vi hệ thống của chuyến bay được thể hiện bởi dữ liệu cảm biến thông qua các thông số khác nhau Các thông số này có giá trị thay đổi trong suốt quá trình bay Nếu dữ liệu cảm
Trang 4biến có chuỗi bất thường thì có thể hành vi hệ thống của chuyến bay có sai lệch, cần cảnh báo [6]
- Phát hiện bất thường về hình dạng: Tìm những hình dạng khác biệt với những hình dạng khác, với mỗi hình dạng được chuyển thành một chuỗi thời gian [7], [8], [9] Trong lĩnh vực khai phá dữ liệu y học, cho hình dạng của một số chủng loại, một hình dạng khác với những hình dạng còn lại có thể cho thấy đó là một sự bất thường do biến đổi gen tạo ra
- Phát hiện những đường cong ánh sáng bất thường trong danh mục các ngôi sao có độ sáng biến đổi tuần hoàn: phát hiện những bất thường trong các ngôi sao có độ sáng biến đổi tuần hoàn Các bất thường tương ứng với một số khác biệt vật lý bên trong, chẳng hạn như sự thay đổi về chu kỳ hoặc biên độ, thể hiện qua độ nhiễu trong đường cong ánh sáng [10], [11]
- Phát hiện thay đổi hệ sinh thái bằng cách sử dụng dữ liệu khoa học trái đất như sự sinh trưởng của thực vật hay nhiệt độ [12]
Với những phân tích trên, bài toán phát hiện chuỗi bất thường đã thu hút được sự quan tâm đáng kể của cộng đồng nghiên cứu từ thập niên 1980 Các nhóm nghiên cứu [13], [14], [1], [15], [16], [17], [3], [4] đã định nghĩa nhiều loại chuỗi bất thường khác nhau như outlier, anomaly, unusual, discord, … và đã đề xuất nhiều phương pháp phát hiện chuỗi bất thường Trong đó, phương pháp phát hiện chuỗi bất thường discord (discord discovery) được Keogh et al [14] giới thiệu từ năm 2005 và gần đây được các nhóm [18], [19], [20], [17], [21], [22] tập trung nghiên cứu
Luận văn này tập trung nghiên cứu các phương pháp phát hiện chuỗi bất thường trên
dữ liệu chuỗi thời gian Từ đó, luận văn đề xuất một phương pháp phát hiện chuỗi bất thường discord dựa vào cửa sổ trượt (Window)
Nội dung của luận văn bên cạnh phần mở đầu và kết luận được trình bày trong 03 chương, bao gồm:
Chương 1: Tổng quan
Chương này giới thiệu và khảo sát về dữ liệu chuỗi thời gian, bài toán phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian, mục tiêu nghiên cứu, đối tượng nghiên cứu và phạm
vi nghiên cứu, phương pháp nghiên cứu và ý nghĩa khoa học và thực tiễn của đề tài
Chương 2: Cơ sở lý thuyết
Trang 5Chương này trình bày cơ sở lý thuyết của đề tài liên quan đến bài toán phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian bao gồm thu giảm số chiều chuỗi thời gian, rời rạc hóa chuỗi thời gian, các kỹ thuật phát hiện chuỗi bất thường
Chương 3: Đề xuất giải thuật và thực nghiệm đánh giá
Chương này đề xuất một giải thuật phát hiện chuỗi bất thường dựa vào phương pháp cửa sổ trượt, cài đặt giải thuật, xây dựng các tập dữ liệu kiểm thử, chạy thực nghiệm và đánh giá kết quả thực nghiệm, so sánh kết quả thực nghiệm của giải thuật đề xuất với các công trình liên quan
Kết luận và hướng phát triển
Tổng kết những kết quả đạt được và những hạn chế của luận văn, đề xuất hướng phát triển tương lai của đề tài
Trang 6CHƯƠNG 1 – TỔNG QUAN
1.1 Giới thiệu
1.1.1 Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian là một tập hợp các giá trị, được đo theo từng khoảng thời gian liền nhau theo một trình tự thời gian nhất định Ví dụ về chuỗi thời gian là: lưu lượng mưa hàng năm ở Việt Nam, kết quả điện tâm đồ, thời tiết… Hình 1.1 minh họa một ví dụ về chuỗi thời gian biểu diễn giá vàng thế giới ngày 05/07/2014
Hình 1.1: Đường biểu diễn một chuỗi thời gian [22]
1.1.2 Các loại dữ liệu chuỗi thời gian
Hầu hết các kỹ thuật phát hiện chuỗi bất thường đều sử dụng dữ liệu chuỗi thời gian huấn luyện để học mô hình và gán một số điểm bất thường cho chuỗi thời gian thử nghiệm dựa trên mô hình Hiệu suất của bất kỳ kỹ thuật phát hiện chuỗi bất thường nào cũng phụ thuộc vào các đặc tính của dữ liệu chuỗi thời gian
Chúng ta thảo luận hai đặc tính chính của dữ liệu chuỗi thời gian, bao gồm (1) tính tuần hoàn và (2) tính đồng bộ Sự kết hợp của hai đặc tính này sẽ cho ra bốn loại chuỗi thời gian khác nhau
Trang 7- Không tuần hoàn và không đồng bộ
1.1.3 Các bài toán trong dữ liệu chuỗi thời gian
Lập chỉ mục (Indexing): khi tìm kiếm chuỗi thời gian, kết quả hiển thị là chuỗi thời gian tương tự nhất đã được lưu trữ trong cơ sở dữ liệu
Gom cụm (Clustering): dựa vào một hàm tính độ đo tương tự, ta gom các cụm dữ liệu vào từng nhóm phù hợp, mỗi cụm dữ liệu chỉ thuộc về một nhóm nào đó
Phân lớp (Classificaition): đưa một dữ liệu chuỗi thời gian chưa được gán nhãn vào một nhóm đã được gán nhãn trước
Tổng hợp (Summarization): rút trích, tóm tắt những nội dung quan trọng nhất thành một chuỗi mới ngắn gọn, cô đọng nhưng vẫn giữ nguyên bản chất
Phát hiện Motif (Motif detection): tìm chuỗi con xuất hiện nhiều lần nhất trong dữ liệu chuỗi thời gian
Phát hiện bất thường (Anomaly detection): tìm chuỗi con khác biệt nhất trong dữ liệu chuỗi thời gian
1.2 Tổng quan về bài toán phát hiện chuỗi bất thường
Dữ liệu chuỗi thời gian tồn tại trong nhiều ứng dụng thực tế, từ các lĩnh vực khoa học
kỹ thuật cho đến kinh tế, y tế, tài chính Trong những ứng dụng này, việc tìm kiếm những chuỗi con bất thường xuất hiện trong cơ sở dữ liệu chuỗi thời gian là một công việc rất cần thiết Từ thập niên 1980, các nhóm nghiên cứu đã đề xuất nhiều phương pháp phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian Nhìn chung, các phương pháp này dựa vào một trong năm kỹ thuật sau đây:
Dựa vào cửa sổ trượt (Window based)
Dựa vào sự tương tự (Proximity based)
Dựa vào dự đoán (Prediction Based)
Dựa vào mô hình Markov ẩn (Hidden Markow Models Based)
Dựa vào phân đoạn (Segmentation Based)
1.3 Những khó khăn và thách thức
1.3.1 Những thách thức khi nghiên cứu về dữ liệu chuỗi thời gian
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
Trang 8 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
1.3.2 Những thách thức của bài toán phát hiện chuỗi bất thường
Có nhiều loại bất thường trong dữ liệu chuỗi thời gian, bao gồm: một phần của chuỗi thời gian là bất thường hoặc toàn bộ chuỗi thời gian là bất thường
Khó xác định chính xác độ dài của chuỗi con trong bài toán phát hiện chuỗi con bất thường
Các chuỗi thời gian kiểm thử và chuỗi thời gian huấn luyện có thể có độ dài khác nhau
Khó xác định các độ đo tương tự/khoảng cách tốt nhất có thể được sử dụng cho các loại chuỗi thời gian khác nhau Các độ đo đơn giản như khoảng cách Euclid luôn luôn không hoạt động tốt vì chúng rất nhạy với những giá trị ngoại lệ và chúng cũng không thể được sử dụng khi các chuỗi thời gian có độ dài khác nhau
Hiệu suất của nhiều thuật toán phát hiện bất thường trong dữ liệu chuỗi thời gian có nhiễu thường rất thấp, độ nhiễu trong dữ liệu chuỗi thời gian là một thách thức lớn đối với bài toán phát hiện chuỗi bất thường
Chuỗi thời gian trong các ứng dụng thực tế thường dài và khi độ dài tăng thì độ phức tạp tính toán cũng tăng lên
1.4 Mục tiêu nghiên cứu
Mục tiêu chính của luận văn là nghiên cứu phương pháp phát hiện chuỗi con bất thường trên dữ liệu chuỗi thời gian Đề tài này dựa trên nghiên cứu của X Zhao và cộng sự
đề xuất năm 2014 và giải thuật HOTSAX của E Keogh và cộng sự đề xuất năm 2005 [14] Mục tiêu đặt ra là phương pháp phát hiện bất thường được đề xuất trong luận văn có chi phí thời gian thực thi và chi phí bộ nhớ khi chạy giải thuật giảm so với giải thuật HOTSAX
1.5 Đối tượng và phạm vi nghiên cứu
1.5.1 Đối tượng nghiên cứu:
Trang 9Đối tượng nghiên cứu chính của luận văn là nghiên cứu phương pháp phát hiện bất thường trên dữ liệu chuỗi thời gian Để đạt được kết quả nghiên cứu, chúng tôi tiến hành thực hiện các nội dung nghiên cứu sau:
Nghiên cứu về các phương pháp thu giảm số chiều chuỗi thời gian
Nghiên cứu về các phương pháp rời rạc hóa dữ liệu chuỗi thời gian
Nghiên cứu các kỹ thuật phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian
Đề xuất phương pháp phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian dựa vào cửa sổ trượt
Thực nghiệm trên nhiều tập dữ liệu, so sánh và đánh giá kết quả thực nghiệm của giải thuật đề xuất với giải thuật HOTSAX
1.5.2 Phạm vi nghiên cứu:
Dữ liệu chuỗi thời gian có thể có hai hay nhiều chiều Phạm vi nghiên cứu của luận văn này là dữ liệu chuỗi thời gian có hai chiều, trong đó có một chiều là thời gian Theo đó,
chuỗi thời gian được định nghĩa là một chuỗi các số thực X =x 1 , x 2 , x 3 , …, x n với x i là giá trị
đo được ở thời điểm thứ i
1.6 Phương pháp nghiên cứu
Nghiên cứu các phương pháp phát hiện bất thường trên dữ liệu chuỗi thời gian đã được công bố từ trước đến nay để từ đó cải tiến và đề xuất một phương pháp mới cho bài toán phát hiện bất thường dựa trên cửa sổ trượt
phương pháp đã công bố
Trang 10CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT
2.1 Thu giảm số chiều chuỗi thời gian
Các chuỗi thời gian trong thực tế thường có số điểm dữ liệu rất lớn, nếu thực hiện việc tìm kiếm chuỗi bất thường trực tiếp trên các chuỗi thời gian gốc này sẽ gặp khó khăn về lưu trữ và tốc độ tính toán Do đó, các nhóm nghiên cứu đã đề xuất các phương pháp thu giảm
số chiều để thu giảm độ lớn của dữ liệu mà vẫn giữ được các đặc trưng của dữ liệu Một số phương pháp thu giảm số chiều điển hình như biến đổi Fourier rời rạc, biến đổi Wavelet rời rạc, phương pháp xấp xỉ gộp từng đoạn (PAA), phương pháp xấp xỉ tuyến tính từng đoạn (PLA), … Trong đó, phương pháp xấp xỉ gộp từng đoạn (PAA) thường được các nhóm nghiên cứu đề xuất sử dụng vì đơn giản và dễ hiện thực
2.2 Rời rạc hóa chuỗi thời gian
Rời rạc hóa (discretization) chuỗi thời gian là quá trình biến đổi chuỗi thời gian thành một chuỗi các ký tự để có thể áp dụng các kỹ thuật xử lý trên dữ liệu chuỗi ký tự để thực hiện xử lý, phân tích dữ liệu chuỗi thời gian Trong các phương pháp rời rạc hóa chuỗi thời gian đã được đề xuất, phương pháp xấp xỉ gộp ký hiệu hoá (Symbolic Aggregate approXimation – SAX) thường được sử dụng trong bài toán phát hiện motif hoặc phát hiện bất thường trên chuỗi thời gian
2.3 Các kỹ thuật phát hiện bất thường
Qui trình phát hiện chuỗi bất thường bao gồm 3 bước chính sau đây:
Tính điểm bất thường (anomaly score) của mỗi chuỗi con được rút trích từ chuỗi thời gian ban đầu
Tổng hợp điểm bất thường của các chuỗi con để tính điểm bất thường của chuỗi thời gian ban đầu Cách tổng hợp này được thực hiện bằng nhiều phương pháp khác nhau,
ví dụ như (1) lấy trung bình các điểm bất thường của các chuỗi con, (2) lấy trung bình của k điểm bất thường của k chuỗi con đầu tiên, …
Đánh dấu chuỗi bất thường cho những chuỗi thời gian có điểm bất thường lớn hơn ngưỡng đã thiết lập
2.3.1 Dựa vào cửa sổ trượt (Window based)
Giả thiết của kỹ thuật này là sự bất thường trong một chuỗi thời gian có thể do một hoặc nhiều chuỗi con bất thường gây ra Do đó, kỹ thuật này dùng cửa sổ trượt để chia chuỗi thời gian thành các cửa sổ có kích thước xác định (gọi là chuỗi con - subsequences)
Trang 11Cửa sổ trượt (sliding) trên chuỗi thời gian gốc một lúc một hay nhiều ký hiệu để rút trích ra
các cửa sổ có cùng chiều dài m (chuỗi con chiều dài m) Giá trị điểm bất thường (anomaly
score) của một chuỗi thời gian được tính bằng cách tổng hợp giá trị điểm bất thường của các chuỗi con được rút trích từ nó
2.3.2 Dựa vào sự tương tự (Proximity based)
Kỹ thuật này sử dụng độ tương tự giữa chuỗi thời gian kiểm thử và tập chuỗi thời gian huấn luyện để tính điểm bất thường (anomaly score) của mỗi chuỗi thời gian kiểm thử Các
độ đo tương tự hay độ đo khoảng cách (similarity/distance measures) thường được sử dụng
để tính điểm bất thường như độ đo Euclidean, Cosin, DTW, …
2.3.3 Dựa vào dự đoán
Phát hiện bất thường dựa vào dự đoán được sử dụng chủ yếu trong thống kê Ý nghĩa của kỹ thuật này là chuỗi thời gian bình thường được tạo ra từ quá trình thống kê và chuỗi thời gian bất thường không phù hợp với quá trình này Bước quan trọng là tìm hiểu các tham số của quá trình này từ cơ sở dữ liệu huấn luyện của chuỗi thời gian bình thường và sau đó ước tính xác suất mà một chuỗi thời gian kiểm thử được tạo ra từ quá trình học
2.3.4 Dựa vào mô hình Markov ẩn
Giả thiết của kỹ thuật phát hiện bất thường dựa trên HMM là một chuỗi thời gian cho
trước O=O 1 … O n là quan sát không trực tiếp của một chuỗi thời gian ẩn Q=Q 1 … Q n, sao cho quá trình sinh ra các chuỗi thời gian ẩn là quá trình Markov Những chuỗi thời gian bình thường có thể được mô hình bằng một HMM, trong khi đó, những chuỗi thời gian bất thường thì không thể
2.3.5 Dựa vào phân đoạn
Cách tiếp cận cơ bản của phát hiện bất thường chuỗi thời gian dựa trên phân đoạn là phân chia chuỗi thời gian huấn luyện thành nhiều đoạn đồng nhất và học để mô hình sự biến đổi giữa các đoạn này Giả thiết của kỹ thuật phát hiện bất thường dựa vào phân đoạn là các phân đoạn được sinh ra từ một chuỗi thời gian bất thường sẽ không khớp với mô hình huấn luyện, trong khi đó các phân đoạn được sinh ra từ một chuỗi thời gian bình thường thì khớp Cho một chuỗi thời gian kiểm thử, các phân đoạn của nó được sinh ra và xác suất biến đổi giữa các phân đoạn này được sử dụng để dự đoán sự bất thường của chúng
2.4 Một số khái niệm cơ bản
2.4.1 Chuỗi thời gian (Time series)
Trang 12Chuỗi thời gian T = t1, t2, …, tm 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
2.4.2 Chuỗi con (Subsequence)
Cho một dữ liệu chuỗi thời gian T có chiều dài là m, một chuỗi con C trong T có chiều dài w là một mẫu những giá trị liên tục được rút trích từ T
C = tp, …, tp+w-1 với 1 p (m - w + 1)
2.4.3 Cửa sổ trượt (Slide windows)
Cho một dữ liệu chuỗi thời gian T có chiều dài m, một cửa sổ trượt có kích thước w được định nghĩa bởi người dùng (w << m) sẽ trượt qua từng điểm giá trị trên chuỗi T, kết quả là được một danh sách gồm (m – w + 1) chuỗi con có kích thước w được rút trích từ chuỗi T
2.4.4 Trùng khớp (Match)
Cho một số thực R (thường được định nghĩa bởi người dùng) và một dữ liệu chuỗi thời gian T chứa một chuỗi con C bắt đầu tại vị trí p và một chuỗi con S bắt đầu tại vị trí q, nếu hàm tính khoảng cách từ C đến S được ký hiệu là D(C, S) và D(C, S) R thì chuỗi con S là một trùng khớp của chuỗi con C
2.4.5 Trùng khớp không tầm thường (Non-Self Match)
Cho chuỗi thời gian T chứa một chuỗi con C có chiều dài n bắt đầu tại vị trí p và trùng khớp với chuỗi con S bắt đầu tại vị trí q, chúng ta có thể nói S là một “trùng khớp không tầm thường” tại khoảng cách của D(S, C) nếu |p – q| n
2.4.6 Mật độ có trọng số (weighted density)
Công trình nghiên cứu [16] đề xuất một độ đo thông tin (information measure) tính mật độ có trọng số của mỗi đối tượng dựa trên giá trị thuộc tính của chúng Để có thể sử dụng độ đo thông tin trong bài toán phát hiện chuỗi bất thường, mỗi chuỗi con được xem như một đối tượng với tập các giá trị thuộc tính là tập ký tự của chuỗi con Do đó, mật độ có trọng số của mỗi chuỗi con được tính như sau:
Gọi U là tập tất cả chuỗi con, A là tập các thuộc tính trong đó C k
Trang 132.5 Giải thuật phát hiện chuỗi bất thường
2.5.1 Giải thuật Brute force
Giải thuật Brute-Force là phương pháp đơn giản và dễ dàng phát hiện chuỗi con bất thường Ý tưởng của giải thuật là chạy hai vòng lặp lồng nhau, trong đó ứng với mỗi chuỗi
con dự tuyển trong tập (|T|- n + 1) chuỗi con của vòng lặp ngoài, vòng lặp trong duyệt từng chuỗi con trong tập (|T|- n + 1) chuỗi con để tìm ra chuỗi con trùng khớp không tầm
thường (non-self match) với chuỗi con dự tuyển Sau khi chạy hai vòng lặp lồng nhau, giải thuật sẽ trả về chuỗi con bất thường Giải thuật Brute-Force duyệt tất cả chuỗi con nên có thể trả về chính xác chuỗi con bất thường chỉ với một tham số đầu vào là chiều dài của chuỗi bất thường Tuy nhiên, vì giải thuật Brute-Force duyệt tất cả chuỗi con ở hai vòng lặp
lồng nhau nên độ phức tạp tính toán của giải thuật là O(m2) với m là chiều dài của chuỗi thời
Trang 14gian, |T| = m Giải thuật Brute-Force có độ phức tạp tính toán O(m 2) nên giải thuật không
khả thi cho những tập dữ liệu có kích thước m lớn.
2.5.2 Giải thuật phát hiện chuỗi bất thường Heuristic
Để giảm chi phí tính toán của giải thuật Brute force, Keogh cùng cộng sự [14] đã đề xuất một giải thuật khung (framework) cải tiến giải thuật Brute force dựa trên hai Heuristic Heuristic thứ nhất xác định thứ tự chuỗi con dự tuyển được xét duyệt trong vòng lặp ngoài Heuristic thứ hai xác định thứ tự chuỗi con dự tuyển được xét duyệt trong vòng lặp trong Giải thuật khung này có tên gọi là giải thuật phát hiện chuỗi bất thường Heuristic và được trình bày chi tiết trong Bảng 2.3
Bảng 2.1: Giải thuật phát hiện chuỗi bất thường Heuristic
IF Dist (t p ,…,t p+n-1, t q ,…,t q+n-1) < nearest_neighbor_dist
nearest_neighbor_dist = Dist (t p ,…,t p+n-1, t q ,…,t q+n-1)
End End End
IF nearest_neighbor_dist > best_so_far_dist
best_so_far_dist = nearest_neighbor_dist
best_so_far_loc = p
End End
Trang 1521 Return[ best_so_far_dist, best_so_far_loc ]
Trong giải thuật phát hiện chuỗi bất thường Heuristic, các Heuristic xét thứ tự duyệt của vòng lặp ngoài và vòng lặp trong ảnh hưởng lớn đến hiệu quả thời gian chạy của giải thuật Heuristic càng tốt thì càng nhanh thoát khỏi các vòng lặp của giải thuật Tuy nhiên, nếu Heuristic tốt mà lại có thời gian tính toán lớn thì giải thuật cũng không có hiệu quả về thời gian chạy Bởi vì thời gian tính toán Heuristic cũng là một phần chi phí thời gian chạy của giải thuật
Trang 16CHƯƠNG 3 – GIẢI THUẬT VÀ THỰC NGHIỆM
Chương này trình bày về (1) phương pháp giải quyết đề xuất cho bài toán phát hiện chuỗi bất thường trên dữ liệu chuỗi thời gian dựa trên giải thuật HOTSAX; (2) cài đặt giải thuật bằng MATLAB, xây dựng các tập dữ liệu kiểm thử, thực nghiệm và đánh giá kết quả thực nghiệm
3.1 Đặt vấn đề
Như đã trình bày trong chương 2, phần 2.5.1, một trong những phương pháp đơn giản phát hiện chính xác chuỗi con bất thường trên dữ liệu chuỗi thời gian là phương pháp Brute force Tuy nhiên, giải thuật Brute force thực hiện vét cạn nên độ phức tạp tính toán là
O(m2), với m là chiều dài của chuỗi thời gian đầu vào Các chuỗi thời gian thu thập được
trong các ứng dụng thực tế như dữ liệu điện tâm đồ, dữ liệu thiên văn, thời tiết, mực nước,
dữ liệu tài chính, giá chứng khoán, … thường rất lớn nên giải thuật Brute force khó khả thi trong thực tế Để giải quyết vấn đề này, giải thuật HOTSAX đã sử dụng hai Heuristic để dừng sớm vòng lặp trong và vòng lặp ngoài của giải thuật Brute force thay vì chạy hết hai vòng lặp lồng nhau như Brute force Giải thuật HOTSAX sử dụng tần suất xuất hiện của mỗi chuỗi con để đánh giá khả năng là chuỗi con bất thường, chuỗi con có tần suất xuất hiện càng nhỏ thì khả năng là chuỗi bất thường càng cao Đối với vòng lặp ngoài, giải thuật HOTSAX đề xuất chọn chuỗi con có tần suất xuất hiện nhỏ nhất (nghĩa là có khả năng là chuỗi con bất thường cao nhất) để ưu tiên xét trước
Chúng tôi nhận thấy việc lựa chọn chuỗi con có khả năng là chuỗi bất thường càng lớn
để ưu tiên xét trước trong vòng lặp thì vòng lặp càng dừng sớm và trả về kết quả chuỗi con bất thường tìm được Do đó, bên cạnh Heuricstic mà giải thuật HOTSAX sử dụng, chúng ta
có thể đề xuất các phương pháp khác để ước lượng khả năng là chuỗi con bất thường Trong luận văn này, tác giả đề xuất sử dụng mật độ có trọng số (weighted densities) của mỗi chuỗi con được trình bày trong chương 2 để tính độ bất thường của mỗi chuỗi con Ý tưởng sử dụng mật độ có trọng số này được xuất phát từ giả thiết nếu tần số của mỗi ký tự càng nhỏ thì chuỗi con chứa ký tự có khả năng là chuỗi bất thường càng cao Do đó, mật độ có trọng
số này có thể được sử dụng như Heuristic thay cho tần suất xuất hiện của mỗi chuỗi con trong giải thuật HOTSAX