Tải bản đầy đủ (.pdf) (78 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.24 MB, 78 trang )

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


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

CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN
MÃ SỐ

: 8480104

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


i

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


ii

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


iii

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


iv

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


v

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


vi

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


1

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 (nonconforming 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.


2

-

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


3


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.


4

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


5

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 = {t1, t2, . . . , tn} như sau:
- Tuần hoàn và đồng bộ: Mỗi ti ϵ 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.

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

- 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.3: Chuỗi thời gian không tuần hoàn – đồng bộ


6

- 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.

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

- 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].

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

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.


7


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


8

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



9



Đố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=O1…..On là quan sát không trực tiếp của một chuỗi thời gian ẩn
Q=Q1…..Qn, 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


10

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)
có thể lên đến 1GB.
 Phụ thuộc nhiều vào yếu tố chủ quan của người dùng và tập dữ liệu khi
đánh giá mức độ tương tự giữa các chuỗi thời gian.
 Dữ liệu không đồng nhất: định dạng của dữ liệu khác nhau, tần số lấy mẫu
khác nhau. Ngoài ra, dữ liệu có thể bị nhiễu, thiếu một vài giá trị hoặc
không sạch.

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.


11

 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 =x1, x2,
x3, …, xn với xi là giá trị đo được ở thời điểm thứ i.


12

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


13

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 =
{c1, c2, ...., cN} (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:

𝐶̅𝑖 =

𝑚
𝑁

𝑁
𝑖
𝑚


𝑁
𝑗= (𝑖−1)+1

𝑚

𝑐𝑗

([31])


14

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



15

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 = t1, t2, …, tw sẽ được rời rạc hoá thành chuỗi ký hiệu C = c1c2…cw.
Trong đó mỗi phần tử ci đượ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)


16

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 Straining= {S1, S2, …, Sn}, mỗi chuỗi
thời gian Si được rút trích p cửa sổ, tương ứng là si1, si2 , . . . sip. Tương tự, cho
tập chuỗi thời gian kiểm thử Stest={T1, T2, …, Tn}, chia mỗi chuỗi thời gian Ti
thành p’ cửa sổ, tương ứng là ti1, ti2 , . . ., tip’



Điểm bất thường của mỗi cửa sổ kiểm thử (A(tij)) đượ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


17

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

2

abc, cca, abc, cab

3

abc, cab, cab

4

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


×