1. Trang chủ
  2. » Luận Văn - Báo Cáo

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ĩ)

78 186 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 78
Dung lượng 2,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ĩ)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 1

HỌ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

LUẬN VĂN THẠC SĨ KỸ THUẬT

(Theo định hướng ứng dụng)

THÀNH PHỐ HỒ CHÍ MINH – 2018

Trang 2

-

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

LUẬN VĂN THẠC SĨ KỸ THUẬT

(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS DƯƠNG THỊ THÙY VÂN

THÀNH PHỐ HỒ CHÍ MINH – 2018

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác Việc tham khảo từ các công trình, nguồn tài liệu khác đã được trích dẫn như yêu cầu

Tp Hồ Chí Minh, ngày 16 tháng 05 năm 2018

Học viên thực hiện luận văn

Huỳnh Cẩm

Trang 4

LỜI CẢM ƠN

Tôi xin gởi lời cảm ơn chân thành và sâu sắc đến TS Dương Thị Thuỳ Vân

đã tận tình hướng dẫn, động viên, giúp đỡ tôi rất nhiều trong suốt quá trình thực hiện luận văn, Cô đã đóng góp ý kiến và tạo mọi điều kiện tốt nhất để tôi hoàn thành luận văn này

Tôi xin cảm ơn quý Thầy, Cô ở trường Học Viện Công Nghệ Bưu Chính Viễn Thông cơ sở Tp.Hồ Chí Minh đã dạy dỗ, truyền đạt nhiều kiến thức cần thiết trong quá trình học tập

Tôi xin cảm ơn Cha, Mẹ, gia đình, bạn bè và đồng nghiệp đã luôn động viên, khích lệ và tạo mọi điều kiện thuận lợi giúp tôi hoàn thành luận văn này

Mặc dù đã cố gắng song luận văn cũng không tránh khỏi những thiếu sót Tôi rất mong nhận được những ý kiến đóng góp của Thầy Cô để tôi có thể hoàn thiện hơn đề tài của mình

Xin trân trọng cảm ơn

Tp Hồ Chí Minh, ngày 16 tháng 05 năm 2018

Học viên thực hiện luận văn

Huỳnh Cẩm

Trang 5

MỤC LỤC

CHƯƠNG 1 – TỔNG QUAN 4

1.1 Giới thiệu 4

1.1.1 Dữ liệu chuỗi thời gian 4

1.1.2 Các loại dữ liệu chuỗi thời gian 4

1.1.3 Các bài toán trong dữ liệu chuỗi thời gian 6

1.2 Tổng quan về bài toán phát hiện chuỗi bất thường 7

1.3 Những khó khăn và thách thức 10

1.3.1 Những thách thức khi nghiên cứu về dữ liệu chuỗi thời gian 10

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 10

1.4 Mục tiêu nghiên cứu 11

1.5 Đối tượng và phạm vi nghiên cứu 11

1.5.1 Đối tượng nghiên cứu: 11

1.5.2 Phạm vi nghiên cứu: 11

1.6 Phương pháp nghiên cứu 12

CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT 13

2.1 Thu giảm số chiều chuỗi thời gian 13

2.2 Rời rạc hóa chuỗi thời gian 14

2.3 Các kỹ thuật phát hiện bất thường 16

2.3.1 Dựa vào cửa sổ trượt (Window based) 16

2.3.2 Dựa vào sự tương tự (Proximity based) 19

2.3.3 Dựa vào dự đoán 20

2.3.4 Dựa vào mô hình Markov ẩn 21

2.3.5 Dựa vào phân đoạn 22

2.4 Một số khái niệm cơ bản 23

Trang 6

2.4.1 Chuỗi thời gian (Time series) 23

2.4.2 Chuỗi con (Subsequence) 23

2.4.3 Cửa sổ trượt (Slide windows) 24

2.4.4 Trùng khớp (Match) 24

2.4.5 Trùng khớp không tầm thường (Non-Self Match) 24

2.4.6 Mật độ có trọng số (weighted density) 24

2.5 Giải thuật phát hiện chuỗi bất thường 25

2.5.1 Giải thuật Brute force 25

2.5.2 Giải thuật phát hiện chuỗi bất thường Heuristic 26

CHƯƠNG 3 – GIẢI THUẬT VÀ THỰC NGHIỆM 28

3.1 Đặt vấn đề 28

3.2 Hướng giải quyết vấn đề 29

3.2.1 Thu giảm số chiều theo phép biến đổi PAA 29

3.2.2 Rời rạc hóa dữ liệu theo phép biến đổi SAX 29

3.2.3 Xây dựng giải thuật đề xuất dựa trên giải thuật HOTSAX 29

3.3 Dữ liệu thực nghiệm 32

3.4 Thiết lập thực nghiệm 33

3.5 Kết quả thực nghiệm và đánh giá 34

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 44

DANH MỤC TÀI LIỆU THAM KHẢO 46

PHỤ LỤC 1 – BÀI BÁO KHOA HỌC ĐÃ CÔNG BỐ 50

PHỤ LỤC 2 – TẬP DỮ LIỆU ECG 58

Trang 7

DANH SÁCH BẢNG

Bảng 2.1: Giá trị hop thay đổi, kích thước cửa sổ cố định là 3 17

Bảng 2.2: Thuật toán tìm chuỗi bất thường Brute force 26

Bảng 2.3: Giải thuật phát hiện chuỗi bất thường Heuristic 26

Bảng 3.1: Tính mật độ có trọng số cho mỗi chuỗi con 30

Bảng 3.2: Giải thuật phát hiện chuỗi bất thường dựa trên Heuristics 31

Bảng 3.3: Đặc điểm của các tập dữ liệu thực nghiệm 32

Bảng 3.4: Cố định giá trị w = 5, thay đổi giá trị a trên tập dữ liệu VIDEO 35

Bảng 3.5: Cố định giá trị w=5, thay đổi giá trị a trên tập dữ liệu ECG 36

Bảng 3.6: Cố định giá trị w=5, thay đổi giá trị a trên tập dữ liệu POWER 37

Bảng 3.7: Cố định giá trị w=5 thay đổi giá trị a trên tập dữ liệu PATIENT 38

Bảng 3.8: Cố định giá trị w=10, thay đổi giá trị a trên tập dữ liệu SpaceShuttle 39

Bảng 3.9: Cố định giá trị a, thay đổi giá trị w trên tập dữ liệu VIDEO 40

Bảng 3.10: Cố định giá trị a, thay đổi giá trị w trên tập dữ liệu ECG 40

Bảng 3.11: Cố định giá trị a, thay đổi giá trị w trên tập dữ liệu POWER 41

Bảng 3.12: Cố định giá trị a, thay đổi giá trị w trên tập dữ liệu PATIENT 41

Bảng 3.13: Cố định giá trị a, thay đổi giá trị w trên tập dữ liệu SpaceShuttle 42

Trang 8

DANH SÁCH HÌNH VẼ

Hình 1.1: Đường biểu diễn một chuỗi thời gian 4

Hình 1.2: Chuỗi thời gian tuần hoàn – đồng bộ 5

Hình 1.3: Chuỗi thời gian không tuần hoàn – đồng bộ 5

Hình 1.4: Chuỗi thời gian tuần hoàn – không đồng bộ 6

Hình 1.5: Chuỗi thời gian không tuần hoàn – không đồng bộ 6

Hình 2.1: Phương pháp biểu diễn PAA với N = 128, m = 8 ([31]) 14

Hình 2.2: Hình minh hoạ phương pháp SAX với a = 3 15

Hình 2.3: Một chuỗi thời gian bất thường (màu đỏ), một chuỗi thời gian bình thường (màu xanh) Chuỗi bất thường bỏ qua chu kỳ cuối (vùng bất thường) 19

Hình 3.1: Hướng giải quyết vấn đề 29

Hình 3.2: Chuỗi con bất thường của tập dữ liệu VIDEO 35

Hình 3.3: Chuỗi con bất thường của tập dữ liệu ECG 36

Hình 3.4: Chuỗi con bất thường của tập dữ liệu POWER 37

Hình 3.5: Chuỗi con bất thường của tập dữ liệu PATIENT 38

Hình 3.6: Chuỗi con bất thường của tập dữ liệu SpaceShuttle 39

Trang 9

MỞ ĐẦ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

Trang 10

- 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 biế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] 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)

Trang 11

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

Chươ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 12

CHƯƠNG 1 – TỔNG QUAN

Chương 1 giới thiệu tổng quan về luận văn bao gồm những nội dung chính như sau: 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

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

Trang 13

loại chuỗi thời gian khác nhau Chúng ta cho một tập dữ liệu gồm n chuỗi thời gian

T = {t 1 , t 2 , , t n } như sau:

- Tuần hoàn và đồng bộ: Mỗi t i ϵ T có một chu kỳ thời gian không thay đổi (p)

và mỗi chuỗi thời gian được bắt đầu cùng lúc Tập dữ liệu công suất [23] trong Hình 1.2 tương ứng với mức sử dụng điện năng hàng tuần của một kế hoạch nghiên cứu

- Không tuần hoàn và đồng bộ: Chuỗi thời gian không có bất cứ sự tuần hoàn

nào, nhưng chúng được bắt đầu cùng lúc Dữ liệu valve [23] trong Hình 1.3 tương ứng với các phép đo lường hiện tại được ghi trên một valve trên một con

tàu vũ trụ

Hình 1.2: Chuỗi thời gian tuần hoàn – đồng bộ

Hình 1.3: Chuỗi thời gian không tuần hoàn – đồng bộ

Trang 14

- Tuần hoàn và không đồng bộ: Mỗi chuỗi thời gian có một chu kỳ khoảng thời gian xác định cụ thể, nhưng chúng không bắt đầu cùng lúc Dữ liệu động cơ [23] Hình 1.4 tương ứng với chức năng hoạt động của một động cơ cảm ứng

- Không tuần hoàn và không đồng bộ: Chuỗi thời gian không có chu kỳ, cũng không bắt đầu cùng lúc Hình 1.5 tương ứng với tín hiệu vật lý thu được từ kho PhysioNet [24]

1.1.3 Các bài toán trong dữ liệu chuỗi thời gian

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, giáo dục, … Sau đây là một số bài toán điển hình trong khai phá 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

Hình 1.4: Chuỗi thời gian tuần hoàn – không đồng bộ

Hình 1.5: Chuỗi thời gian không tuần hoàn – không đồng bộ

Trang 15

- 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á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)

Kỹ thuật này chia chuỗi thời gian thành các cửa sổ có kích thước xác định, ý nghĩa của kỹ thuật này là sự bất thường trong chuỗi thời gian có thể được tìm thấy trong một hay nhiều chuỗi con bất thường

Kỹ thuật dựa vào cửa sổ trượt [25] rút trích các cửa sổ có cùng chiều dài m

(gọi là chuỗi con - subsequences) từ chuỗi thời gian bằng cách trượt cửa sổ một lúc một hay nhiều ký hiệu trên chuỗi thời gian đó 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 cửa sổ của nó

Kỹ thuật dựa vào cửa sổ trượt có thể phát hiện được một chuỗi thời gian bất thường hoặc một chuỗi con bất thường trong chuỗi thời gian Vì toàn bộ chuỗi thời gian được chia thành các chuỗi con nhỏ nên có thể dễ dàng xác định nếu có một chuỗi con là bất thường Nếu toàn bộ chuỗi thời gian là bất thường thì tất cả các

Trang 16

chuỗi con cũng là bất thường, do đó kỹ thuật dựa trên cửa sổ trượt cũng sẽ tìm được

nó rất tốt

Hạn chế của kỹ thuật dựa vào cửa sổ trượt là kích thước cửa sổ phải được lựa chọn cẩn thận để nó có thể tìm được sự bất thường Kích thước tối ưu của cửa sổ phụ thuộc vào độ dài của vùng bất thường trong chuỗi thời gian bất thường Một hạn chế khác là chi phí tính toán lớn

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 Euclid, Độ đo khoảng cách biến đổi thời gian động (Dynamic Time Warping - DTW) [26], Cosin,

… Điểm bất thường của mỗi chuỗi thời gian kiểm thử tương ứng với tập chuỗi thời

gian huấn luyện được tính dựa trên phương pháp k-NN hoặc gom nhóm (clustering)

- Phương pháp k-NN: điểm bất thường của chuỗi thời gian kiểm thử là khoảng

cách giữa nó với chuỗi thời gian lân cận thứ k của nó trong tập chuỗi thời gian

huấn luyện

- Phương pháp gom nhóm: tập chuỗi thời gian huấn luyện được gom nhóm và

mỗi nhóm có một trung tâm nhóm Điểm bất thường của chuỗi thời gian kiểm thử là khoảng cách giữa nó với trung tâm nhóm gần nhất của nó

Ưu điểm của kỹ thuật dựa vào sự tương tự là phát hiện nhanh chuỗi thời gian

là bất thường hay không Hạn chế của kỹ thuật này là khó xác định chính xác các chuỗi con bất thường trong chuỗi thời gian Để xác định chính xác vị trí bất thường trong chuỗi thời gian thì cần phải thực hiện tiền xử lý chuỗi thời gian đó Hạn chế thứ 2 là hiệu suất của kỹ thuật này phụ thuộc rất nhiều vào sự chọn lựa độ đo tương

tự thích hợp, đây là một việc không dễ

Dựa vào dự đoán (Prediction Based)

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ê [27], [28], [29], hầu hết là tìm kiếm mẫu ngoại lệ Một kỹ thuật phát hiện bất thường dựa vào mô hình dự đoán thường bao gồm các bước sau:

Học một mô hình dự đoán trên tập chuỗi thời gian huấn luyện, sử dụng m quan sát để dự đoán quan sát thứ (m+1)

Trang 17

 Đối với mỗi chuỗi thời gian kiểm thử, sử dụng mô hình dự đoán học được ở

bước 1, dự báo sự quan sát ở từng thời điểm bằng cách sử dụng m quan đã

nhìn thấy trước đó

Hạn chế của kỹ thuật này là chiều dài của chuỗi sinh ra từ mô hình dự đoán

(m) cần được lựa chọn rất cẩn thận vì nó ảnh hưởng đến việc xác định vị trí bất

thường Ưu điểm của kỹ thuật phát hiện chuỗi bất thường dựa vào dự đoán là có thể phát hiện được một chuỗi thời gian bất thường hoặc một chuỗi con bất thường trong chuỗi thời gian

Dựa vào mô hình Markov ẩn (Hidden Markow Models Based)

Mô hình Markov ẩn (Hidden Markov model – HMM) [30] thường được sử dụng để đặc tả một hệ thống thông qua các tham số quan sát được của nó Nhiệm vụ của mô hình là từ các tham số quan sát được, xác định các tham số ẩ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ể

Các kỹ thuật dựa trên HMM giả định rằng có tồn tại một quá trình ẩn là quá trình Markov và sinh ra chuỗi thời gian bình thường Trong trường hợp không có quá trình Markov cơ bản, các kỹ thuật này có thể không tìm được chuỗi bất thường Các kỹ thuật phát hiện bất thường dựa trên HMM xây dựng một mô hình Markov cho chuỗi thời gian Do đó, chúng ước lượng hành vi bất thường đối với từng quan sát trong chuỗi thời gian nên có thể phát hiện được tất cả các loại bất thường: một quan sát bất thường trong chuỗi thời gian, một chuỗi con bất thường trong một chuỗi thời gian hay toàn chuỗi thời gian bất thường

Dựa vào phân đoạn (Segmentation Based)

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

Trang 18

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

Vì cả giai đoạn huấn luyện thực hiện phân đoạn và giai đoạn kiểm thử thực hiện kiểm tra mỗi quan sát với mô hình huấn luyện đều trải qua quá trình tính toán nhiều nên các kỹ thuật phát hiện bất thường này thường không có hiệu quả cao

Kỹ thuật phát hiện bất thường này tính toán điểm bất thường cho mỗi quan sát trong chuỗi thời gian Do đó, các kỹ thuật này thường có thể phát hiện được tất cả các loại bất thường: một quan sát bất thường trong chuỗi thời gian, một chuỗi con bất thường trong một chuỗi thời gian hay toàn chuỗi thời gian bất thường

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)

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

Trang 19

 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:

Đố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

Trang 20

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

 Cài đặt phương pháp đề xuất sử dụng Matlab

 Xây dựng các bộ dữ liệu thực nghiệm

 Thực nghiệm và đánh giá, so sánh phương pháp được đề xuất trong luận văn với các phương pháp đã công bố

Trang 21

CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT

Chương này trình bày về các phương pháp thu giảm số chiều chuỗi thời gian, các phương pháp 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 trên dữ liệu chuỗi thời gian và các giải thuật phát hiện chuỗi con bất thường

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 Phương pháp PAA được Keogh và cộng sự đề xuất năm 2000 [31] và được trình bày chi tiết sau đây

Phương pháp xấp xỉ gộp từng đoạn (PAA)

Ý tưởng của phương pháp xấp xỉ gộp từng đoạn là tuần tự xấp xỉ k giá trị liền

kề nhau thành một giá trị, là giá trị trung bình cộng của k giá trị đó Thứ nhất, chuỗi

thời gian gốc được chuẩn hóa, và sau đó chuỗi thời gian chuẩn hóa này được chia

thành các phân đoạn bằng nhau gồm k giá trị Quá trình phân đoạn này được bắt đầu

từ đầu chuỗi thời gian cho đến cuối chuỗi thời gian và các phân đoạn sinh ra không chồng chéo với nhau Cuối cùng, mỗi phân đoạn được biểu diễn bởi giá trị trung

bình cộng của k giá trị trong phân đoạn Cụ thể, một chuỗi thời gian chuẩn hóa C =

{c 1 , c 2 , , c N } (với j = 1, 2, …, N) sẽ được thu giảm về một chuỗi thời gian

𝐶̅ = {𝑐̅ , … , 𝑐1 ̅̅̅̅} (với i = 1, 2, …, m), trong đó m là số chiều thu giảm, 1 ≤ m ≤ N và 𝑚

𝑐̅ là giá trị trung bình cộng của phân đoạn thứ i, được tính theo công thức sau: 𝑖

𝐶̅ =𝑖 𝑚

𝑁 ∑ 𝑐𝑗 ([31])

𝑁 𝑚𝑖

𝑗=𝑚(𝑖−1)+1𝑁

Trang 22

Các phân đoạn bằng nhau này được gọi là các khung Mỗi phân đoạn được biểu diễn bởi giá trị trung bình cộng của nó Vectơ của các giá trị trung bình cộng của các phân đoạn biểu diễn chuỗi thời gian thu giảm 𝐶̅ của chuỗi thời gian gốc C Kết quả của quá trình thu giảm số chiều PAA là đường thẳng có dạng bậc thang (Hình 2.1)

Hình 2.1: Phương pháp biểu diễn PAA với N = 128, m = 8 ([31]Error! Reference

source not found.)

Số phân đoạn m là tham số do người dùng xác định, khi m = N thì chuỗi thời

gian thu giảm sẽ giống với chuỗi thời gian gốc Phương pháp PAA khá trực quan và đơn giản trong tính toán và nó đã được chứng minh là rất hữu hiệu, thích hợp và hỗ trợ các phương pháp tính khoảng cách khác như: khoảng cách Euclid, DTW, Minkowski

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

Trang 23

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

Phương pháp SAX do Lin và các cộng sự đề xuất năm 2003, được xây dựng dựa trên phương pháp thu giảm số chiều PAA Chuỗi thời gian ban đầu được chia thành từng đoạn, sau đó tính giá trị trung bình của những đoạn này rồi ánh xạ thành các ký tự bằng cách sử dụng điểm ngắt (breakpoint) Các điểm ngắt này được lựa chọn dựa trên bảng xác xuất của phân bố xác suất của đường cong Gauss, các vùng

đó sẽ được biểu diễn thành các ký tự Giả sử gọi a là kích thước bộ ký hiệu được

dùng để rời rạc hoá chuỗi thời gian, cho 𝛼𝑖 là ký hiệu thứ i trong bộ ký hiệu và ta đã

tìm được các điểm ngắt có giá trị 𝛽1, 𝛽2, … , 𝛽𝑎−1 với 𝛽1 < 𝛽2 < ⋯ < 𝛽𝑎−1 Chuỗi

thời gian T = t 1 , t 2 , …, t w sẽ được rời rạc hoá thành chuỗi ký hiệu C = c 1 c 2 …c w

Trong đó mỗi phần tử c i được ánh xạ thành một ký hiệu theo công thức:

𝑐𝑖 = {

𝛼1 𝑡𝑖 ≤ 𝛽1

𝛼𝑎 𝑡𝑖 > 𝛽𝑎−1

𝛼𝑘 𝛽𝑘−1 < 𝑡𝑖 ≤ 𝛽𝑘

Hình 2.2: Hình minh hoạ phương pháp SAX với a = 3

Hình 2.2 minh họa sử dụng phương pháp SAX để rời rạc hóa về chuỗi ký tự

cho một chuỗi thời gian có chiều dài N = 128, m = 8, a = 3 và kết quả rời rạc hóa là

chuỗi ký tự baabccbc được gọi là một từ (word)

Trong đó:

𝛼1 = 𝑎, 𝛼2 = 𝑏, 𝛼3 = 𝑐

𝛽1 = −0.5 (𝑏𝑟𝑒𝑎𝑘𝑝𝑜𝑖𝑛𝑡 1)

𝛽2 = 0.5 (𝑏𝑟𝑒𝑎𝑘𝑝𝑜𝑖𝑛𝑡 2)

Trang 24

2.3 Các kỹ thuật phát hiện bất thường

Mục này khảo sát các kỹ thuật phát hiện chuỗi bất thường đã được đề xuất Nhìn chung, 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) Cử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ó Một

cơ chế dựa trên cửa sổ trượt được mô tả tổng quát như sau:

Cho một tập chuỗi thời gian huấn luyện S training = {S 1 , S 2 , …, S n }, mỗi chuỗi

thời gian S i được rút trích p cửa sổ, tương ứng là s i1 , s i2 , s ip Tương tự, cho

tập chuỗi thời gian kiểm thử S test ={T 1 , T 2 , …, T n }, chia mỗi chuỗi thời gian T i

thành p’ cửa sổ, tương ứng là t i1 , t i2 , , t ip’

Điểm bất thường của mỗi cửa sổ kiểm thử (A(t ij )) được tính dựa trên độ đo

tương tự giữa nó và cửa sổ huấn luyện Hàm đo độ tương tự này có thể là độ

đo khoảng cách như Euclidean, Manhattan hoặc các giá trị tương quan, …

Các chuỗi con thu được bằng cách trượt cửa sổ kích thước m trên chuỗi thời gian và di chuyển nó với một bước nhảy (h) nhất định mỗi lần Trường hợp bước

Trang 25

nhảy h = 1, nghĩa là trượt lần lượt từng ký hiệu, số lượng cửa sổ rút trích gần bằng kích thước chuỗi thời gian, do đó khối lượng tính toán lớn Trường hợp bước nhảy h

quá lớn thì có khả năng mất thông tin Trường hợp đặc biệt là bước nhảy bằng kích

thước cửa sổ (h = m), giữa các cửa sổ không có sự chồng chéo

Với cửa sổ kích thước m, nếu h = 1 thì xác suất bất thường được phát hiện bởi ít nhất 1 cửa sổ là 1, nếu h > 1 thì xác suất này sẽ giảm Cho tập huấn luyện chứa n chuỗi thời gian tương tự abcabcabc, với mỗi ký tự là một giá trị thực Nếu kích thước cửa sổ là 3, cửa sổ huấn luyện cho bất kỳ bước nhảy h nào cũng chỉ gồm các chuỗi con sau: abc, bca, cab Cho chuỗi kiểm thử abccabcabc, với sự xuất hiện của c sau chuỗi con abc đầu tiên là bất thường Bảng 2.1 liệt kê tất cả các cửa sổ kiểm thử được rút trích với các bước nhảy h khác nhau:

Bảng 2.1: Giá trị hop thay đổi, kích thước cửa sổ cố định là 3

hop (h) Windows

1 abc, bcc, cca, cab, abc, bca, cab, abc

Khi h = 1 và h = 2, sự xuất hiện bất thường của ký tự c trong chuỗi kiểm thử

abccabcabc được phát hiện bởi cửa sổ bcc và cca vì không có bất kỳ sự tương tự

nào giữa 02 cửa sổ này với những cửa sổ huấn luyện Khi h có giá trị 3 hoặc 4 thì sự xuất hiện bất thường của ký tự c không được phát hiện vì ký tự c bị bỏ qua trong quá trình trượt cửa sổ Do đó, giá trị của h cần phải được chọn cẩn thận

Các kỹ thuật phát hiện chuỗi bất thường dựa trên cửa sổ trượt có thể sử dụng các phương pháp khác nhau để gán điểm bất thường (anomaly score) cho cửa sổ (chuỗi con) Ví dụ, điểm bất thường của một cửa sổ kiểm thử có thể là khoảng cách

giữa nó và cửa sổ lân cận thứ k (kth nearest neighbor) của nó trong tập cửa sổ huấn luyện Một phương pháp khác được đề xuất trong công trình, Ma cùng cộng sự [32] phân loại tập cửa sổ huấn luyện thành một lớp SVM Điểm bất thường của mỗi cửa

Trang 26

sổ kiểm thử có giá trị 0 hoặc 1 nếu nó được phân loại là bình thường hay là bất thường dựa trên lớp huấn luyện SVM

Ưu nhược điểm:

Kỹ thuật dựa vào cửa sổ trượt có thể phát hiện được một chuỗi thời gian bất thường hoặc một chuỗi con bất thường trong chuỗi thời gian Vì toàn bộ chuỗi thời gian được chia thành các chuỗi con nhỏ nên có thể dễ dàng xác định được một chuỗi con là bất thường Nếu toàn bộ chuỗi thời gian là bất thường thì tất cả các chuỗi con cũng là bất thường, do đó kỹ thuật dựa trên cửa sổ trượt cũng sẽ tìm được

sự bất thường khá tốt

Hạn chế của kỹ thuật dựa vào cửa sổ trượt là kích thước cửa sổ phải được lựa chọn cẩn thận để nó có thể phát hiện được sự bất thường Kích thước tối ưu của cửa

sổ phụ thuộc vào độ dài của vùng bất thường trong chuỗi thời gian bất thường Ví

dụ, trong tập dữ liệu Power ở Hình 2.2, vùng bất thường có kích thước bằng với chu

kỳ của chuỗi thời gian Do đó, nếu m được chọn nhỏ hơn kích thước của chu kỳ thì

hiệu quả sẽ giảm Một hạn chế khác của kỹ thuật dựa trên cửa sổ trượt là chi phí tính toán lớn Vì mỗi cặp cửa sổ kiểm thử và cửa sổ huấn luyện đều được tính toán

nên độ phức tạp tính toán là O((nl)2), với l là chiều dài trung bình của chuỗi thời gian, n là số chuỗi thời gian kiểm thử và huấn luyện trong cơ sở dữ liệu

Trang 27

Hình 2.3: Một chuỗi thời gian bất thường (màu đỏ), một chuỗi thời gian bình thường

(màu xanh) Chuỗi bất thường bỏ qua chu kỳ cuối (vùng bất thường)

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 Euclid, Độ đo khoảng cách biến đổi thời gian động (Dynamic Time Warping - DTW), Cosin, …

Độ đo Euclid đơn giản, dễ hiểu và tính toán nhanh nhưng không thể sử dụng khi các chuỗi thời gian có độ dài khác nhau Độ đo DTW thường thích hợp cho dữ liệu chuỗi thời gian phi tuyến tính hoặc có độ dài khác nhau Hạn chế của độ đo DTW là

nó thực hiện so khớp quá nhiều, làm cho chi phí tính toán lớn và cũng có thể làm sai lệch khoảng cách thực tế giữa các chuỗi thời gian

Điểm bất thường của mỗi chuỗi thời gian kiểm thử tương ứng với tập chuỗi

thời gian huấn luyện được tính dựa trên phương pháp k-NN hoặc gom nhóm

(clustering)

Trang 28

Phương pháp k-NN: điểm bất thường của chuỗi thời gian kiểm thử là khoảng

cách giữa nó với chuỗi thời gian lân cận thứ k của nó trong tập chuỗi thời gian huấn luyện

Phương pháp gom nhóm: tập chuỗi thời gian huấn luyện được gom nhóm và

mỗi nhóm có một trung tâm nhóm Điểm bất thường của chuỗi thời gian kiểm thử là khoảng cách giữa nó với trung tâm nhóm gần nhất của nó

Ưu nhược điểm:

Ưu điểm của kỹ thuật dựa vào sự tương tự là phát hiện nhanh chuỗi thời gian

là bất thường hay không Hạn chế của kỹ thuật này là khó xác định chính xác các chuỗi con bất thường trong chuỗi thời gian Để xác định chính xác vị trí bất thường trong chuỗi thời gian thì cần phải thực hiện tiền xử lý chuỗi thời gian đó Hạn chế thứ 2 là hiệu suất của kỹ thuật này phụ thuộc rất nhiều vào sự chọn lựa độ đo tương

tự thích hợp, đây là một việc không dễ

Thách thức khác với dữ liệu chuỗi thời gian là chuỗi thời gian khác nhau có thể được tạo ra ở các điều kiện và thời điểm khác nhau và do đó chúng có thể không đồng bộ Vì vậy, các độ đo như Euclid và DTW có thể xem xét hai giai đoạn sai lệch thời gian không giống nhau mặc dù chúng gần như tương tự nhau

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ê, hầu hết là tìm kiếm mẫu ngoại lệ Động cơ của kỹ thuật này là các chuỗi thời gian bình thường được sinh ra bởi một quá trình thống kê và các chuỗi thời gian bất thường thì 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ừ tập dữ liệu huấn luyện bao gồm các 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 Một kỹ thuật phát hiện bất thường dựa vào mô hình dự đoán thường bao gồm các bước sau:

Học một mô hình dự đoán trên tập chuỗi thời gian huấn luyện, sử dụng m quan sát để dự đoán quan sát thứ (m+1)

 Đối với mỗi chuỗi thời gian kiểm thử, sử dụng mô hình dự đoán học được ở bước 1, dự báo sự quan sát ở từng thời điểm bằng cách sử dụng các quan sát

đã nhìn thấy trước đó (m quan sát trước đó)

Trang 29

Sai số dự báo tương ứng với mỗi quan sát là một hàm tính sự khác biệt giữa giá trị dự báo và quan sát thực tế

Ưu nhược điểm:

Tương tự như các kỹ thuật dựa trên cửa sổ, chiều dài của chuỗi sinh ra từ mô hình dự đoán cần được lựa chọn rất cẩn thận vì nó ảnh hưởng đến việc xác định vị trí bất thường Trong Hình 2.2, vùng bất thường có cùng chiều dài với chu kỳ của

chuỗi thời gian Do đó, nếu chiều dài chuỗi sinh ra m được chọn nhỏ hơn chiều dài chu kỳ thì hiệu suất sẽ kém, trong khi hiệu suất sẽ cải thiện nếu m được chọn lớn hơn chiều dài chu kỳ Nhưng nếu giá trị của m quá lớn thì chúng ta sẽ sinh ra một

tập chuỗi thời gian có số chiều lớn, có thể làm tăng độ phức tạp tính toán

Ưu điểm của kỹ thuật phát hiện chuỗi bất thường dựa vào dự đoán là có thể phát hiện được một chuỗi thời gian bất thường hoặc một chuỗi con bất thường trong chuỗi thời gian Vì toàn bộ chuỗi thời gian được chia thành các quan sát và kỹ thuật phát hiện bất thường này tính toán điểm bất thường cho mỗi quan sát trong chuỗi thời gian nên có thể xác định được chuỗi con bất thường hoặc cả chuỗi thời gian bất thường

2.3.4 Dựa vào mô hình Markov ẩn

Mô hình Markov ẩn (Hidden Markov model – HMM) thường được sử dụng để đặc tả một hệ thống thông qua các tham số quan sát được của nó Nhiệm vụ của mô hình là từ các tham số quan sát được, xác định các tham số ẩ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ể

Cho một chuỗi huấn luyện, chúng ta có thể xây dựng một mô hình HMM đơn () bao gồm các tham số mô tả dữ liệu như phân bố trạng thái ban đầu, xác suất chuyển đổi trạng thái, … Mỗi chuỗi thời gian huấn luyện có thể có một mô hình cụ thể hoặc tất cả chuỗi huấn luyện có cùng một mô hình Một kỹ thuật phát hiện chuỗi bất thường dựa trên HMM hoạt động như sau:

Trang 30

 Cho một chuỗi thời gian huấn luyện, Otrain = O1….On, được xem là một chuỗi các quan sát gián tiếp của mô hình HMM Tồn tại một thủ tục có thể xác định các tham số HMM bằng cách cực đại hóa xác suất P(Otrain|λ)

 Ở giai đoạn kiểm thử, đưa vào một chuỗi chưa xác định Otest=O’1… O’n, xác suất P(Otest|λ) được tính theo mô hình huấn luyện ở trên Trong số các chuỗi thời gian kiểm thử, chuỗi bất thường là chuỗi có giá trị P(Otest|λ) nhỏ nhất

Ưu nhược điểm:

Các kỹ thuật dựa trên HMM giả định rằng có tồn tại một quá trình ẩn là quá trình Markov và sinh ra chuỗi thời gian bình thường Trong trường hợp không có quá trình Markov cơ bản, các kỹ thuật này có thể không tìm được chuỗi bất thường Các kỹ thuật phát hiện bất thường dựa trên HMM xây dựng một mô hình Markov cho chuỗi thời gian Do đó, chúng ước lượng hành vi bất thường đối với từng quan sát trong chuỗi thời gian nên có thể phát hiện được tất cả các loại bất thường: một quan sát bất thường trong chuỗi thời gian, một chuỗi con bất thường trong một chuỗi thời gian hay toàn chuỗi thời gian bất thường

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 Một kỹ thuật phát hiện bất thường dựa vào phân đoạn như sau:

 Giai đoạn huấn luyện: cho một hoặc nhiều chuỗi thời gian huấn luyện, xây dựng một mô hình huấn luyện trong đó mỗi trạng thái liên tiếp biểu diễn một phân đoạn đồng nhất của chuỗi thời gian

Trang 31

 Giai đoạn kiểm thử: cho một chuỗi thời gian kiểm thử X={x1, x2, …, xn}, mô hình huấn luyện được sử dụng để dự đoán nó là chuỗi bất thường hay không theo các bước sau:

Với x 1, trạng thái hiện tại được thiết lập là trạng thái đầu tiên

Ưu nhược điểm:

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à tất cả chuỗi thời gian huấn luyện có thể được phân thành các phân đoạn đồng nhất nhau, trong trường hợp nếu không thể thực hiện điều này, phương pháp phân đoạn không thể thành công

Ngoài ra, vì cả giai đoạn huấn luyện thực hiện phân đoạn và giai đoạn kiểm thử thực hiện kiểm tra mỗi quan sát với mô hình huấn luyện đều trải qua quá trình tính toán nhiều nên các kỹ thuật phát hiện bất thường này thường không có hiệu quả cao

Kỹ thuật phát hiện bất thường dựa vào phân đoạn xây dựng một mô hình huấn luyện cho chuỗi thời gian và tính toán điểm bất thường cho mỗi quan sát trong chuỗi thời gian Do đó, các kỹ thuật này thường có thể phát hiện được tất cả các loại bất thường: một quan sát bất thường trong chuỗi thời gian, một chuỗi con bất thường trong một chuỗi thời gian hay toàn chuỗi thời gian bất thường

2.4 Một số khái niệm cơ bản

2.4.1 Chuỗi thời gian (Time series)

Chuỗ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

Trang 32

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

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 33

2.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 độ

Trang 34

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 gian,

|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 Chi tiết về giải thuật

Brute force được trình bày trong Bảng 2.2

Bảng 2.2: Thuật toán tìm chuỗi bất thường Brute force

Return[ best_so_far_dist, best_so_far_loc ]

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.3: Giải thuật phát hiện chuỗi bất thường Heuristic

Trang 35

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

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 36

CHƯƠ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

Trang 37

3.2 Hướng giải quyết vấ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 được giải quyết theo trình tự các bước được mô tả trong Hình 3.1 Trong đó:

Dữ liệu đầu vào: là chuỗi thời gian chiều dài m (được lấy từ các tập dữ liệu

kiểm thử chuẩn);

 Tiền xử lý dữ liệu: bao gồm các bước thu giảm số chiều, rời rạc hóa dữ liệu;

 Giải thuật đề xuất: giải thuật phát hiện chuỗi bất thường được đề xuất dựa trên giải thuật HOTSAX

Dữ liệu đầu ra: vị trí chuỗi con bất thường chiều dài n trong chuỗi thời gian chiều dài m đầu vào

3.2.1 Thu giảm số chiều theo phép biến đổi PAA

Như trình bày trong chương 2, phần 2.1, dữ liệu chuỗi thời gian chiều dài m,

Chuỗi kết quả sau thu giảm số chiều, D = d 1 …d w , có chiều dài w nhỏ hơn rất nhiều

so với chiều dài m của chuỗi thời gian gốc ban đầu

3.2.2 Rời rạc hóa dữ liệu theo phép biến đổi SAX

Chuỗi thời gian sau khi được thu giảm số chiều theo phép biến đổi PAA sẽ được rời rạc hóa dữ liệu theo phép biến đổi SAX được trình bày trong chương 2,

phần 2.2 Mỗi giá trị trung bình trong chuỗi thu giảm số chiều D được biểu diễn

bằng một ký tự thông qua bảng Breakpoint của phép biến đổi SAX

3.2.3 Xây dựng giải thuật đề xuất dựa trên giải thuật HOTSAX

Như đã trình bày ở mục 2.5.2, chương 2, giải thuật HOTSAX cho phép sử dụng các Heuristic để thiết lập thứ tự chuỗi con dự tuyển được chọn xét tại vòng lặp ngoài và vòng lặp trong của giải thuật Brute force Do đó, chúng tôi đề xuất sử dụng mật độ có trọng số của mỗi chuỗi con như là Heuristic để xác định thứ tự xét của các chuỗi con trong hai vòng lặp lồng nhau của giải thuật HOTSAX Ý tưởng của

Hình 3.1: Hướng giải quyết vấn đề

Trang 38

giải thuật đề xuất dựa trên mật độ có trọng số, là một độ đo thông tin (information

measure), nên tác giả đặt tên cho giải thuật là IDD (Information theory based

Discord Discovery) Chi tiết về giải thuật phát hiện chuỗi bất thường IDD được

trình bày trong Bảng 3.1 và Bảng 3.2

Bảng 3.1: Tính mật độ có trọng số cho mỗi chuỗi con

Input: A time series with length of m

Output: 1 st discord length of n

Step 1: Tất cả chuỗi con được rút trích từ chuỗi thời gian gốc chiều dài m

bằng phương pháp cửa sổ trượt và được rời rạc hóa thành chuỗi ký tự bằng

phép biến đổi SAX với chiều dài w

Step 2: Tính mật độ có trọng số cho mỗi chuỗi con sau phép biến đổi SAX

Compute U/IND(C i ) according to (1)

Compute E(C i ) according to (2)

Compute W (C i ) according to (3)

For i = 1 to m-n+1 do

For j = 1 to w do

Compute Den Cj (x i ) according to (4)

Compute WDen(xi) according to (5)

Step 3: Dựa vào mật độ có trọng số của mỗi chuỗi con, chúng tôi tạo

Heuristic cho vòng lặp ngoài và vòng lặp trong và chạy giải thuật phát hiện

chuỗi bất thường dựa trên Heuristics được trình bày trong Bảng 3.2

Trang 39

Bảng 3.2: Giải thuật phát hiện chuỗi bất thường dựa trên Heuristics

End End //End non-self match test End //End Inner Loop

IF nearest_neighbor_dist > best_so_far_dist

best_so_far_dist = nearest_neighbor_dist best_so_far_loc = p

End End //End Outer Loop

Return[ best_so_far_dist, best_so_far_loc ]

Trong giải thuật ở Bảng 3.1, các công thức (1), (2), (3), (4), (5) là những công thức tính mật độ có trọng số của mỗi chuỗi con được trình bày trong chương 2, mục 2.4.6 Sau khi tính mật độ có trọng số cho mỗi chuỗi con, tác giả thiết lập Heuristic cho vòng lặp ngoài và vòng lặp trong như sau:

Heuristic vòng lặp ngoài (Outer Loop Heuristic): thứ tự các chuỗi con dự

tuyển cho vòng lặp ngoài được xếp như sau: chuỗi con x i có giá trị WDen(x i ) nhỏ

nhất được xét đầu tiên, sau đó các chuỗi con còn lại được xét theo thứ tự ngẫu

nhiên Ý tưởng của Heuristic này là nếu chuỗi con x i có giá trị WDen(x i ) nhỏ nhất

thì chuỗi con x i có khả năng là chuỗi bất thường cao nhất

Ngày đăng: 24/08/2018, 16:46

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm