Với sự xuất hiện của dữ liệu chuỗi thời gian trong nhiều ứng dụng từ lĩnh vực tài chính cho đến lĩnh vực khoa học, đòi hỏi phải đề ra những giải pháp tìm kiếm chuỗi con bất thường trong
Trang 1-
HUỲNH THỊ THU THỦY
NHẬN DẠNG CHUỖI CON BẤT THƯỜNG NHẤT
TRONG TẬP DỮ LIỆU CHUỖI THỜI GIAN
Chuyên ngành: Khoa học máy tính
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 11 năm 2009
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : PGS TS Dương Tuấn Anh -
Cán bộ chấm nhận xét 1 : PGS TS Đỗ Phúc -
Cán bộ chấm nhận xét 2 : TS Võ Thị Ngọc Châu -
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC
SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 08 tháng 03 năm 2010
Trang 3Tp HCM, ngày tháng năm 2009
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên : Huỳnh Thị Thu Thủy -Giới tính : Nam / Nữ ; -
Ngày, tháng, năm sinh : 11/12/1974 -Nơi sinh : TP HCM -
Chuyên ngành : Khoa học Máy tính -
Khoá : 2007 -
1- TÊN ĐỀ TÀI : NHẬN DẠNG CHUỖI CON BẤT THƯỜNG NHẤT TRONG TẬP DỮ LIỆU CHUỖI THỜI GIAN 2- NHIỆM VỤ LUẬN VĂN : - Tìm hiểu các công trình liên quan như: Các phương pháp thu giảm số chiều, các phương pháp rời rạc hóa dữ liệu, các phương pháp nhận dạng chuỗi con bất thường nhất. - Cải tiến giải thuật chân phương của nhóm Keogh, cải tiến giải thuật tìm chuỗi con bất đồng trên đĩa của nhóm Yankov Hiện thực các giải thuật chân phương của nhóm Keogh, giải thuật thuật tìm chuỗi con bất đồng trên đĩa của nhóm Yankov và những giải thuật đã được cải tiến 3- NGÀY GIAO NHIỆM VỤ : 05/09/2008 -
4- NGÀY HOÀN THÀNH NHIỆM VỤ : 30/11/2009 -
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : PGS TS Dương Tuấn Anh -
Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN CN BỘ MÔN (Học hàm, học vị, họ tên và chữ ký) QL CHUYÊN NGÀNH PGS TS Dương Tuấn Anh
Trang 4LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Ngày 21 tháng 11 năm 2009 Huỳnh Thị Thu Thủy
Trang 5LỜI CẢM ƠN
Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến PGS.TS.Dương Tuấn Anh,
người Thầy đã tận tình hướng dẫn tôi trong suốt quá trình học cao học và tạo mọi
điều kiện để tôi có thể hoàn thành luận văn này
Tôi cũng xin cảm ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất để tôi có
thể tiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng thành quả
của luận văn này cho tất cả những người thân trong gia đình tôi Tôi xin hứa sẽ tiếp
tục cố gắng phấn đấu để vươn cao hơn nữa
Trang 6TÓM TẮT
Bài toán tìm kiếm chuỗi dữ liệu thời gian bất thường ngày càng được nhiều nhà
nghiên cứu quan tâm Với sự xuất hiện của dữ liệu chuỗi thời gian trong nhiều ứng
dụng từ lĩnh vực tài chính cho đến lĩnh vực khoa học, đòi hỏi phải đề ra những giải
pháp tìm kiếm chuỗi con bất thường trong dữ liệu chuỗi thời gian một cách hiệu quả
và gần gũi người sử dụng để từ đó có thể đưa ra những quyết định đúng đắn
Đề tài này sẽ đề nghị các giải pháp tìm kiếm chuỗi con bất thường nhất trên dữ liệu
chuỗi thời gian có kích thước lớn hàng terabyte Có 2 loại giải pháp chính cần thiết
kế và hiện thực là cách đánh giá độ tương tự và các kỹ thuật tìm kiếm chuỗi con bất
thường nhất
Chúng tôi sử dụng khoảng cách Euclid làm độ đo tương tự giữa các chuỗi con trên
dữ liệu chuỗi thời gian và đề ra giải pháp để tìm kiếm chuỗi con bất thường nhất
trên dữ liệu chuỗi thời gian có dung lượng hàng terabyte chứa trên đĩa cứng Ngoài
ra chúng tôi còn đề nghị một giải pháp tìm chuỗi con bất thường nhất mà không cần
tạo tập cơ sở dữ liệu để chứa các chuỗi con Giải pháp này có ưu điểm là không cần
tạo tập cơ sở dữ liệu chứa chuỗi con nên không tốn nhiều dung lượng đĩa
Qua việc thực nghiệm trên nhiều bộ dữ liệu mẫu cho thấy, những kỹ thuật tìm kiếm
chuỗi con bất thường mà chúng tôi đề nghị đều hiệu quả trên dữ liệu có dung lượng
từ vài kilobyte đến dữ liệu có dung lượng lớn hàng terabyte
Trang 7ABSTRACT
The problem of finding unusual time series has recently attracted much attention
With the increasing amount of time-series data in many application, from financial
to scientific, it is important to study methods of finding the most unusual
subsequence in Time series effciently and user friendly for business decission
making
The thesis proposes method of efficient finding the most unusual subsequence in
multi-terabyte time series Two kinds of the methods, similarity measures and
finding the most unusual subsequence techniques, are designed and implemented
We use Euclidean distance as the basis for similarity measurement on subsequences
in time-series data and design an innovative finding technique which detects the
most subsequences in multi-terabyte time series Moreover we propose a method of
finding the most unusual subsequence that do not create a file of subsequences
database The advantage of this method is the file of subsequences database must
not be created, so can save disk space
The experiments show that the finding unusual subsequence techniques we propose
are also efficient with multi-kilobyte data to multi-terabyte
Trang 8MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT iii
ABSTRACT iv
MỤC LỤC v
DANH MỤC HÌNH ix
DANH MỤC BẢNG xi
Chương 1: GIỚI THIỆU 1
1.1 Dữ liệu chuỗi thời gian 1
1.2 Những yêu cầu đòi hỏi phải nhận dạng chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian 2
1.3 Mục tiêu và giới hạn của đề tài 3
1.4 Tóm lược kết quả đạt được 5
1.5 Cấu trúc của luận văn 6
Chương 2: Cơ sở lý thuyết 7
2.1 Dữ liệu chuỗi thời gian 7
2.2 Độ đo tương tự 8
2.2.1 Độ đo Minkowski 8
2.2.2 Phương pháp xoắn thời gian động 10
2.3 Thu giảm số chiều 11
2.4 Rời rạc hóa dữ liệu 13
2.5 Nhận dạng bất thường 14
Trang 9Chương 3: NHỮNG CÔNG TRÌNH LIÊN QUAN 16
3.1 Các phương pháp thu giảm số chiều 16
3.1.1 Phương pháp biến đổi Fourier rời rạc 16
3.1.2 Phương pháp biến đổi Wavelet rời rạc 17
3.1.3 Phương pháp phân rã giá trị riêng 18
3.1.4 Phương pháp xấp xỉ gộp từng đoạn 19
3.2 Các phương pháp rời rạc hóa dữ liệu 19
3.2.1 Phương pháp xấp xỉ gộp ký hiệu hóa 20
3.2.2 Phương pháp rời rạc hóa dựa trên góc nghiêng 21
3.2.3 Phương pháp xấp xỉ gộp ký hiệu hóa khả chỉ mục 22
3.3 Các phương pháp nhận dạng chuỗi con bất thường nhất 22
3.3.1 Phương pháp HOT SAX 23
3.3.2 Phương pháp biến đổi wavelet và sử dụng cây gia tố 25
3.3.3 Phương pháp cửa sổ thích nghi 26
3.3.4 Phương pháp phát hiện chuỗi con bất đồng trên đĩa 27
3.3.5 Các phương pháp nhận dạng bất thường khác 29
Chương 4: CẢI TIẾN PHƯƠNG PHÁP PHÁT HIỆN CHUỖI CON BẤT THƯỜNG NHẤT TRÊN ĐĨA 31
4.1 Các khái niệm dùng trong nhận dạng chuỗi bất thường 31
4.1.1 Dữ liệu chuỗi thời gian 31
4.1.2 Chuỗi con 31
4.1.3 Cửa sổ trượt 31
4.1.4 Hàm tính khoảng cách 32
4.1.5 Sự trùng khớp 33
4.1.6 Sự trùng khớp không tầm thường 33
Trang 104.1.7 Chuỗi con bất đồng 33
4.1.8 K chuỗi con bất đồng nhất 34
4.2 Phương pháp cải tiến giải thuật tìm chuỗi con bất đồng 35
4.3 Phát hiện mới 47
Chương 5: KẾT QUẢ THỰC NGHIỆM 52
5.1 Bộ dữ liệu điện tâm đồ ECG- 218c3_ipnoman 53
5.1.1 Bảng tổng kết thời gian thực hiện 53
5.1.2 Biểu đồ so sánh chi phí CPU và đồ thị biểu diễn chuỗi con bất đồng 54
5.2 Bộ dữ liệu tỉ giá EURUSD 56
5.2.1 Bảng tổng kết thời gian thực hiện 56
5.2.2 Biểu đồ so sánh chi phí CPU và đồ thị biểu diễn chuỗi con bất đồng 57
5.3 Bộ dữ liệu điện năng power_data 59
5.3.1 Bảng tổng kết thời gian thực hiện 59
5.3.2 Biểu đồ so sánh chi phí CPU và đồ thị biểu diễn chuỗi con bất đồng 60
5.4 Bộ dữ liệu chứng khoán Stock 61
5.4.1 Bảng tổng kết thời gian thực hiện 61
5.4.2 Biểu đồ so sánh chi phí CPU và đồ thị biểu diễn chuỗi con bất đồng 62
5.5 So sánh giữa giải thuật DADD cải tiến và giải thuật DADD truy xuất những chuỗi con trực tiếp trên đĩa 64
5.5.1 Bộ dữ liệu tỉ giá Eurusd 64
5.5.2 Bộ dữ liệu điện năng power data 66
Chương 6: KẾT LUẬN 69
6.1 Tổng kết 69
6.2 Đóng góp của đề tài 70
6.3 Hướng phát triển 71
Trang 11THƯ MỤC THAM KHẢO 72
PHỤ LỤC A 76
A.1 Mã giả cho giải thuật BFDD 76
A.2 Mã giả cho giải thuật HDD 77
A.3 Hai cấu trúc dữ liệu hỗ trợ cho vòng lặp Inner Loop và Outer Loop trong giải thuật HDD 78
A.4 Mã giả cho giải thuật AWDD 79
PHỤ LỤC B: CHỨNG MINH TÍNH ĐÚNG CỦA GIẢI THUẬT DADD 80
PHỤ LỤC C: BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH - VIỆT 82
Trang 12DANH MỤC HÌNH
Hình 1.1: Minh họa đồ thị biểu diễn dữ liệu chuỗi thời gian 1
Hình 2.1: Minh họa dữ liệu chuỗi thời gian 7
Hình 2.2: Các trường hợp tính chất của hai chuỗi là giống nhau nhưng giá trị khác nhau thì khoảng cách hai chuỗi sẽ rất khác nhau 9
Hình 2.3: Hai đường biểu diễn giống nhau về hình dạng nhưng lệch nhau về thời gian10 Hình 2.4: Cách tính khoảng cách theo DTW 11
Hình 2.5: Minh họa các phương pháp thu giảm số chiều DFT, DWT, SVD và PAA.12 Hình 2.6: Minh họa cho phương pháp rời rạc hóa dữ liệu chuỗi thời gian SAX 13
Hình 3.1: Các phương pháp biểu diễn dữ liệu DFT, DWT, SVD và PAA 17
Hình 3.2: Phương pháp SAX 20
Hình 3.3: Minh họa phương pháp rời rạc hóa dữ liệu dựa trên góc nghiêng 21
Hình 3.4 Phương pháp biểu diễn dữ liệu iSAX (nguồn 29) 22
Hình 3.5: Kích thước cửa sổ trượt theo chiều dài của 1 nhịp tim 26
Hình 4.1: Các chuỗi con Ci chiều dài n được trích từ chuỗi thời gian T 32
Hình 4.2: Minh họa hình ảnh cửa sổ trượt kích thước n 32
Hình 4.3: Minh họa chuỗi con M là trùng khớp với chuỗi con C 33
Hình 4.4: Các chuỗi con M là trùng khớp không tầm thường với chuỗi con C và chuỗi con U không là một chuỗi con trùng khớp không tầm thường của C 34
Hình 4.5: Minh họa những chuỗi con bất đồng Ci 35
Hình 4.6: Chuỗi con bất đồng Ci có chiều dài n trong chuỗi thời gian T 35
Hình 4.7: Minh họa tập cơ sở dữ liệu tăng dần theo thời gian .39
Hình 4.8: Phân bố khoảng cách đến lân cận gần nhất ứng với hai tập dữ liệu gồm 103 và 104 điểm 40
Trang 13Hình 4.9: Hình ảnh hai tập điểm gồm 1000 điểm và 10000 điểm 41
Hình 4.10: Mã giả cho giải thuật PDD .43
Hình 4.11: Minh họa ý tưởng tìm K khoảng cách của K chuỗi bất đồng nhất 44
Hình 4.12: Mã giả cho lần quét đĩa thứ 1 (phase 1) của giải thuật DADD 45
Hình 4.13: Mã giả cho lần quét đĩa thứ 2 (phase 2) của giải thuật DADD 46
Hình 5.1: Biểu đồ thời gian thực hiện của các giải thuật: DADD dùng PDD, DADD dùng BFDD chưa cải tiến và giải thuật BFDD của nhóm Keogh 54
Hình 5.2: Biểu diễn các chuỗi con bất đồng tìm được trên bộ dữ liệu điện tâm đồ ECG_218c3_ipnoman 54
Hình 5.3: Biểu đồ thực nghiệm về chi phí CPU các giải thuật trên bộ dữ liệu tỉ giá Eurusd 57
Hình 5.4: Biểu diễn kết quả chuỗi con bất đồng trên bộ dữ liệu tỉ giá Eurusd 58
Hình 5.5: Chi phí CPU của các giải thuật trên bộ dữ liệu điện năng power_data 60
Hình 5.6: Biểu diễn kết quả chuỗi con bất đồng trên bộ dữ liệu điện năng power_data 60 Hình 5.7: Chi phí CPU của giải thuật DADD dùng BFDD chưa cải tiến và DADD dùng BFDD cải tiến trên bộ dữ liệu chứng khoán Stock 62
Hình 5.8: Chi phí CPU của giải thuật BFDD của nhóm Keogh và DADD dùng BFDD cải tiến trên bộ dữ liệu chứng khoán Stock .63
Hình 5.9: Biểu diễn kết quả chuỗi con bất đồng trên bộ dữ liệu chứng khoán Stock 63 Hình 5.10: Chi phí CPU của các giải thuật trên bộ dữ liệu tỉ giá Eurusd 66
Hình 5.11: Chi phí CPU của các giải thuật trên bộ dữ liệu điện năng power_data .67
Trang 14DANH MỤC BẢNG
Bảng 3.1: Phân phối Gauss 21
Bảng 5.1: Kết quả thực nghiệm về chi phí CPU của các giải thuật trên bộ dữ liệu điện tâm đồ ECG- 218c3_ipnoman 53
Bảng 5.2: Chi phí CPU của các giải thuật trên bộ dữ liệu tỉ giá Eurusd 56
Bảng 5.3: Chi phí CPU của các giải thuật trên bộ dữ liệu điện năng power_data 59
Bảng 5.4: Chi phí CPU của các giải thuật trên bộ dữ liệu chứng khoán Stock 61
Bảng 5.5: Chi phí CPU của giải thuật DADD dùng tập dữ liệu chứa chuỗi con và giải thuật DADD truy xuất trực tiếp đĩa trên bộ dữ liệu tỉ giá Eurusd 64
Bảng 5.6: Chi phí CPU của giải thuật DADD dùng tập dữ liệu chứa chuỗi con và giải thuật DADD truy xuất trực tiếp đĩa trên bộ dữ liệu điện năng power_data 66
Trang 15Chương 1: GIỚI THIỆU
Chương này giới thiệu tổng quan về dữ liệu chuỗi thời gian, những yêu cầu đòi hỏi khi nhận dạng chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian và tóm lược những kết quả đề tài đã thực hiện được
1.1 Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian (time series data) là dữ liệu về đối tượng nào đó đáng quan tâm được quan sát và ghi nhận tại những điểm đều nhau trên trục thời gian Dữ liệu này thường rất lớn, có thể lên đến hàng tỷ điểm, ví dụ các dữ liệu về tài chính, chứng khoán, y học, thiên văn, thời tiết, môi trường, địa lý, … Phân tích những dữ liệu này là điều rất cần thiết nhằm phục vụ cho việc phân tích thông tin, hỗ trợ ra các quyết định,
Tuy nhiên, do vấn đề về độ lớn của những dữ liệu này nên rất cần sự hỗ trợ của công cụ máy tính giúp cho việc phân tích được tiến hành nhanh chóng nhằm đạt được thông tin kịp thời Chính vì vậy nghiên cứu và ứng dụng dữ liệu chuỗi thời gian là một lĩnh vực được nhiều người quan tâm nghiên cứu cả trong lĩnh vực khoa học máy tính lẫn các lĩnh vực khác
Phạm vi nghiên cứu của đề tài này tập trung vào dữ liệu chuỗi thời gian có dạng là
dãy các giá trị có thứ tự theo dạng T=t 1 ,t 2 , …, t m , với t i là dữ liệu tại thời điểm thứ
i Hình 1.1 là ví dụ về đồ thị biểu diễn dữ liệu chuỗi thời gian điện tâm đồ
Hình 1.1: Minh họa đồ thị biểu diễn dữ liệu chuỗi thời gian
Trang 16Những khó khăn và thách thức khi nghiên cứu dữ liệu chuỗi thời gian:
+ Dữ liệu quá lớn:
Ví dụ: Trong 1 giờ, dữ liệu điện tâm đồ (ECG) là 1 gigabyte
+ Phụ thuộc vào nhiều yếu tố chủ quan:
Thí dụ, việc xác định chuỗi con bất thường nhất phụ thuộc vào yếu tố chủ quan của người dùng, tập dữ liệu và tất cả những việc này đều phải thực hiện bằng tay
+ Dữ liệu thường không đồng nhất
+ Định dạng của các loại dữ liệu khác nhau
+ Tần số lấy mẫu khác nhau
1.2 Những yêu cầu đòi hỏi phải nhận dạng chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian
Bài toán nhận dạng chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian là tập trung vào việc thiết kế một phương pháp tìm kiếm nhanh, chính xác và hiệu quả chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian với dung lượng lớn hàng terabyte
Bài toán tìm kiếm chuỗi con bất thường nhất gần đây đã thu hút rất nhiều sự quan tâm của giới nghiên cứu Những lĩnh vực thường quan tâm đến việc tìm kiếm chuỗi con bất thường như chẩn đoán lỗi (fault diagnostics), phát hiện việc đột nhập (intrusion detection), và làm sạch dữ liệu (data cleansing) Đặc biệt gần đây bài toán tìm kiếm chuỗi con bất thường nhất đang là nhu cầu rất cần thiết cho các nhà phân tích dữ liệu về tài chính
Một số ví dụ về nhu cầu xác định chuỗi con bất thường nhất:
Lĩnh vực tài chính:
+ Cần xác định xem thời khoảng nào thị trường chứng khoán thay đổi đột biến nhất
Trang 17+ Tìm thời khoảng mà giá vàng tăng hay giảm đột biến nhất
Lĩnh vực y học:
+ Xác định khoảng nhịp tim nào của bệnh nhân là bất thường nhất và bất thường như thế nào
+ Tìm thời khoảng điện não đồ bất thường nhất
Về lĩnh vực khoa học như dữ liệu thu được của các bộ cảm biến về thời tiết, môi trường, địa lý…
+ Tìm tháng nào trong quá khứ mà lượng mưa nhiều nhất, thấp nhất + Tìm những năm khô hạn, mực nước các sông ở mức thấp nhất
Đối với những lĩnh vực không phải là thời gian, có thể biến đổi từ dữ liệu này sang dạng dữ liệu chuỗi thời gian Như các bài toán trong nhận dạng ảnh những chiếc cánh của côn trùng nào bị lỗi, đoạn video bị nhiễu, hay tìm thao tác thực hành sai khi huấn luyện bắn súng,
Việc tìm được giải thuật nhận dạng chuỗi bất thường nhất sẽ rất hữu ích, vì nó còn
có thể áp dụng được vào các công việc khai phá dữ liệu (data-mining): cải thiện chất lượng của việc gom cụm (clustering), làm sạch dữ liệu (data cleansing),v.v
1.3 Mục tiêu và giới hạn của đề tài
Mục tiêu chính của luận văn là xác định chuỗi con bất thường nhất trên dữ liệu chuỗi thời gian có kích thước lớn hàng terabyte Dữ liệu ban đầu là một chuỗi các
số thực, mỗi số thực thể hiện giá trị tại một thời điểm Với dữ liệu đó, chương trình
sẽ tạo ra một tập tin cơ sở dữ liệu chứa tất cả các chuỗi con và tìm trong tập tin cơ
sở dữ liệu này chuỗi con nào là bất thường nhất
Chuỗi con bất thường nhất là chuỗi con có khoảng cách lớn nhất so với tất cả các
chuỗi con khác trong chuỗi dữ liệu thời gian Hình 1.1 minh họa chuỗi con bất
thường nhất là chuỗi con P
Trang 18Bài toán xác định chuỗi con bất thường nhất là bài toán tìm kiếm, mà thông thường kích thước dữ liệu để tìm kiếm là rất lớn Vì vậy, đòi hỏi phải sử dụng phương pháp
nào nhằm nâng cao tốc độ tìm kiếm và có thể hiện thực trên dữ liệu lớn hàng
terabyte
Mặc dù việc tìm kiếm chuỗi con bất thường nhất trong dữ liệu thời gian là quan trọng, nhưng việc phát hiện chuỗi bất thường đa phần các giải thuật như HOTSAX
[16], WAT (Wavelet Augmented Trie) [5], AWDD (Adaptive window-based
Discord Discovey) [21]… chỉ nghiên cứu trong phạm vi xử lý dữ liệu nội (trong bộ
nhớ chính- main memory), hầu như không được nghiên cứu để xử lý dữ liệu bên ngoài (trên đĩa – disk), ngoại trừ giải thuật DADD (Disk Aware Discord Discovery)
Đa số các giải thuật trên đều chứng minh tính hiệu quả của việc phát hiện chuỗi con bất thường nhất với giả sử là dữ liệu chuỗi thời gian có thể được chứa trọn trong bộ nhớ chính (main memory) Tuy nhiên, với nhiều ứng dụng thì điều này là không thể
Ví dụ như dữ liệu về thiên văn, về web logs thì dung lượng dữ liệu có thể lớn đến hàng terabyte, khó có thể thu giảm đến mức vừa với bộ nhớ được Ngoài ra, theo thời gian thì dữ liệu được ghi nhận sẽ ngày càng phình to ra
Như vậy, trong tất cả những giải thuật nổi tiếng trên thế giới chỉ có giải thuật
DADD (Disk Aware Discord Discovery) là phát hiện chuỗi con bất thường nhất
trong dữ liệu chuỗi thời gian bằng cách tìm trực tiếp trên đĩa Với cách tìm trực tiếp
trên đĩa sẽ giúp giải quyết được vấn đề khó khăn khi kích thước dữ liệu chuỗi thời gian nếu có thu nhỏ mà vẫn còn lớn hơn kích thước bộ nhớ
Vấn đề còn lại là giải thuật DADD làm việc có hiệu quả không?
Theo giải thuật DADD thì chỉ cần 2 lần quét đĩa tuyến tính sẽ tìm ra được chuỗi con bất đồng (discord) trong tập cơ sở dữ liệu chứa tất cả các chuỗi con của chuỗi thời
gian ban đầu với một ngưỡng bất đồng cho trước Độ phức tạp thời gian tính toán
tuyến tính với dung lượng của dữ liệu chuỗi thời gian trên đĩa
Trang 19Tuy nhiên giải thuật cần tham số đầu vào là ngưỡng bất đồng r (threshold), đây là
giá trị chặn dưới của khoảng cách từ chuỗi con được xem là bất đồng so với chuỗi
con lân cận gần nhất của nó Chuỗi C i được gọi là lân cận gần nhất của một chuỗi
C k nếu như với mọi chuỗi C j mà khoảng cách của C k đối với C i là lớn nhất so với
khoảng cách của C k đối với C j Theo tác giả của giải thuật DADD, giá trị r này sẽ có
thể tìm được bằng giải thuật WAT(wavelet augmented trie) [5] Nhưng giải thuật
này hiện thực khá phức tạp nên ứng cử thứ hai được chọn là giải thuật heuristic (Heuristic Discord Discovery-HDD) của nhóm Keogh [16]
Ban đầu xét thấy giải thuật HDD nhanh hơn giải thuật BFDD, nhưng sau khi hiện thực chúng tôi đã phát hiện giải thuật HDD áp dụng trên dữ liệu thô ban đầu không hữu hiệu, lý do dữ liệu cung cấp cho giải thuật HDD là dữ liệu số thực, không phải
là dữ liệu rời rạc hóa thành dạng chuỗi các kí tự nên việc áp dụng heuristic cho các vòng lặp trong (Inner Loop) và vòng lặp ngoài (Outer Loop) không dùng được cấu trúc cây gia tố (Augment Trie) như tác giả của giải thuật HDD đã đề nghị
Nên cuối cùng giải thuật chân phương (Brute Force Discord Discovery - BFDD)
của nhóm Keogh [16] đã được chọn để cải tiến lại mà không phải là HDD Nhưng giải thuật BFDD này cũng có nhược điểm là phải được thực hiện nhiều lần thì mới
xác định được thông số r cho giải thuật DADD Do vậy giải thuật BFDD sẽ cần
phải được cải tiến lại thì mới cải thiện được tốc độ tìm kiếm chuỗi con bất đồng
Nhiệm vụ của đề tài là cải tiến lại giải thuật BFDD để xác định chuỗi con bất đồng
thứ K, đó là thông số đầu vào cho giải thuật DADD nhằm tìm ra chuỗi con bất đồng
trên tập dữ liệu chuỗi thời gian có dung lượng lớn hàng terabyte
1.4 Tóm lược kết quả đạt được
Với những yêu cầu của đề tài, sau thời gian nghiên cứu và hiện thực, chúng tôi đã đạt được những kết quả sau:
Xây dựng hệ thống tách dữ liệu chuỗi thời gian ban đầu thành tập cơ sở dữ
liệu bao gồm tất cả các chuỗi con có chiều dài n bằng phương pháp cửa sổ trượt, với
Trang 20n là chiều dài chuỗi con cần tìm Chiều dài chuỗi con là do người sử dụng nhập vào,
tùy mức độ chi tiết của người sử dụng mong muốn đối với dữ liệu chuỗi thời gian hoặc tùy theo lĩnh vực ghi nhận các giá trị dữ liệu chuỗi thời gian mà chiều dài này
có thể thay đổi khác nhau
Tìm ra một giải thuật xác định chuỗi con bất thường nhất so với tất cả các chuỗi con khác trong dữ liệu chuỗi thời gian Giải thuật này có ưu điểm là tìm được chuỗi con bất đồng trên dữ liệu lớn hàng terabyte với thời gian tìm kiếm rất nhanh
Thực nghiệm trên nhiều bộ dữ liệu khác nhau nhằm đo đạc kết quả thực nghiệm về những chi phí IO, CPU và Memory
Như vậy, với hệ thống đã hiện thực sẽ được trình bày chi tiết ở những chương sau đáp ứng yêu cầu và nhiệm vụ của đề tài
1.5 Cấu trúc của luận văn
Tổ chức những phần còn lại của luận văn theo cấu trúc sau đây:
- Chương 2 giới thiệu cơ sở lý thuyết nền tảng liên quan đến lĩnh vực dữ liệu chuỗi thời gian
- Chương 3 là tổng quan về các công trình liên quan Những công trình này nhằm cải tiến quá trình tìm kiếm chuỗi con bất thường nhất và được tiến hành ở khía cạnh đánh giá độ tương tự giữa 2 chuỗi con bất kỳ
- Chương 4 là bài toán phát hiện chuỗi con bất thường nhất và phương pháp giải quyết bài toán Chương 4 trình bày vấn đề đặt ra khi tìm chuỗi con bất thường nhất,
phân tích vấn đề chính mà hệ thống cần phải giải quyết, đó là làm thế nào để tìm
được chuỗi con bất thường nhất trên dữ liệu lớn hàng terabyte với thời gian tìm nhanh nhất
- Chương 5 là một số kết quả thực nghiệm
- Chương 6 là một số kết luận sau khi thực hiện đề tài
Trang 21Chương 2: CƠ SỞ LÝ THUYẾT
Chương này trình bày một số khái niệm về dữ liệu chuỗi thời gian, những giải pháp cần thực hiện trước khi giải quyết bài toán nhận dạng bất thường Ngoài ra trong chương này cũng trình bày sơ lược về các độ đo tương tự, điều này hỗ trợ rất nhiều cho bài toán nhận dạng chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian
2.1 Dữ liệu chuỗi thời gian
Có rất nhiều lĩnh vực cần phải lưu trữ dữ liệu của các đối tượng được ghi nhận theo thời gian như tài chính, chứng khoán, web blogs, y học, thiên văn, thời tiết, môi trường, địa lý, … Dữ liệu trong những lĩnh vực này thường rất lớn, dung lượng lên đến hàng terabyte Hình 2.1 minh họa hình ảnh dữ liệu chuỗi thời gian
Hình 2.1: Minh họa dữ liệu chuỗi thời gian
Việc xử lý và phân tích những dữ liệu này là điều rất cần thiết nhằm phục vụ cho việc phân tích thông tin, hỗ trợ ra các quyết định, Việc xử lý và phân tích dữ liệu chuỗi thời gian với dung lượng lớn sẽ rất cần sử dụng đến các phương pháp độ đo tương tự, thu giảm số chiều và rời rạc hóa dữ liệu Những phần còn lại trong chương 2 sẽ giúp hiểu rõ các phương pháp này
Trang 222.2 Độ đo tương tự
Để giải quyết các bài toán về dữ liệu chuỗi thời gian cần đo độ tương tự giữa hai chuỗi bằng cách đo khoảng cách giữa hai chuỗi này Nếu hai chuỗi hoàn toàn giống nhau thì khoảng cách bằng không Ngược lại, nếu hai chuỗi càng khác nhau thì khoảng cách càng lớn Để có thể thực hiện tính toán thì các khoảng cách này cần được biểu diễn bằng số thực
Có một tính chất rất quan trọng của khoảng cách cần được chú ý trong khi thiết kế giải thuật để giới hạn không gian tìm kiếm là:
D(x,y) < D(x,z) + D(y,z), với D(x,y) là khoảng cách giữa hai chuỗi x và y
Tính chất này tương tự định lý tổng chiều dài hai cạnh trong một tam giác luôn lớn hơn chiều dài cạnh còn lại Sau đây là một số công trình về độ đo đã có:
p i
Trong đó:
p = 1 (Manhattan)
p = 2 (Euclid)
p = ∞ (Max)
Tuy p có thể có nhiều sự lựa chọn khác nhau, nhưng trong các nghiên cứu đối với
dữ liệu chuỗi thời gian thì thường sử dụng p=2 (khoảng cách Euclid)
Ưu điểm: Độ đo Euclid tính toán dễ dàng
Trang 23Nhược điểm: Trường hợp tính chất của hai chuỗi là giống nhau nhưng giá trị khác
nhau (có đường căn bản khác nhau hay có biên độ dao động khác nhau) thì khoảng
cách độ đo tương tự giữa hai chuỗi sẽ rất khác nhau (hình 2.2)
Hình 2.2: Các trường hợp tính chất của hai chuỗi là giống nhau nhưng giá trị khác
nhau thì khoảng cách hai chuỗi sẽ rất khác nhau
Khắc phục nhược điểm:
a/ Trước khi áp dụng các giải thuật ta cần thực hiện chuẩn hóa dữ liệu sử dụng
phương pháp giá trị trung bình và độ lệch chuẩn [23], biến đổi dữ liệu Q thành Q’
có cùng đường căn bản theo công thức:
Q’ = Q – mean(Q)
Với mean(Q) là giá trị trung bình của Q
Để dữ liệu có cùng biên độ dao động, ta dùng phép biến đổi:
Q’ = (Q- mean(Q)) / var(Q)
Với mean(Q) là giá trị trung bình của Q và var(Q) là độ chệch chuẩn của Q
b/ Dùng phương pháp trung bình di chuyển (moving average) [6] để làm trơn các đường biểu diễn dữ liệu chuỗi thời gian Với phương pháp này thì Q được biến đổi thành Q’ - trong đó điểm ở vị trí i bằng trung bình cộng giá trị tại điểm i và k điểm
lân cận
Trang 242.2.2 Phương pháp xoắn thời gian động
Trường hợp hai chuỗi cần so sánh có hai đường biểu diễn không hoàn toàn giống nhau nhưng hình dạng biến đổi rất giống nhau thì khi so sánh độ tương tự giữa hai
chuỗi bằng cách so sánh từng cặp điểm 1-1 (so điểm thứ i của đường thứ nhất và điểm thứ i của đường thứ hai) là không phù hợp
Hình 2.3 minh họa hai đường biểu diễn rất giống nhau về hình dạng nhưng lệch
nhau về thời gian Trong trường hợp này, nếu tính khoảng cách bằng cách ánh xạ
1-1 giữa hai đường thì kết quả rất khác nhau và có thể dẫn đến kết quả cuối cùng
không giống như mong muốn Vì vậy, để khắc phục nhược điểm này thì một điểm
có thể ánh xạ với nhiều điểm và ánh xạ này không thẳng hàng Phương pháp này là
xoắn thời gian động(Dynamic Time Warping - DTW) [3]
Hình 2.3: Hai đường biểu diễn giống nhau về hình dạng nhưng lệch nhau về thời gian
Cách tính DTW:
Cách đơn giản nhất để tính DTW của hai đường X và Y là ta xây dựng ma trận D m x n
với m = |X| và n= |Y| Khi đó, D ij = d(x i , y j )
Sau khi xây dựng ma trận D, ta tìm đường đi từ ô (0,0) đến ô (m,n) thỏa mãn những
ràng buộc sau:
- Không được đi qua trái hay đi xuống
- Đường đi phải liên tục
Trang 25- Ô (i,j) thuộc đường đi phải thỏa |i - j| <= w
Giả sử có K ô đi từ ô (0,0) đến ô (m,n) thỏa mãn những điều kiện trên, khi đó:
Q DTW
K k
k
1
min ) , (
Hình 2.4 sẽ minh họa cách tính khoảng cách theo DTW Tuy nhiên, có thể dùng quy hoạch động để giải quyết bài toán này Với công thức truy hồi để tính D(i, j):
{ ( 1 , ), ( 1 , 1 ), ( , 1 )}min
) , (i j = x −y + D i− j D i− j− D i j−
Ưu điểm: Phương pháp DTW hiệu quả hơn phương pháp Euclid
Nhược điểm: Tốn nhiều thời gian thực thi hơn
Hình 2.4: Cách tính khoảng cách theo DTW
2.3 Thu giảm số chiều
Dữ liệu chuỗi thời gian trong những lĩnh vực cần ghi nhận dữ liệu của các đối tượng theo thời gian thường có dung lượng rất lớn Ví dụ như trong lĩnh vực thiên văn học, chứng khoán, web blog, dữ liệu cần lưu trữ theo thời gian có dung lượng lớn đến hàng terabyte Việc tìm kiếm trên dữ liệu này là rất phức tạp và không hiệu quả, hơn nữa cũng không thể nào phân tích nổi dữ liệu lớn hàng terabyte Vì vậy, vấn đề
Trang 26đặt ra là cần phải có một phương pháp nào đó để thu giảm độ lớn của dữ liệu chuỗi thời gian
Một phương pháp giải quyết được khó khăn trên đó là thu giảm số chiều
Trong phương pháp thu giảm số chiều, ta sẽ mã hóa đường biểu diễn dữ liệu chuỗi thời gian thành những đường căn bản đã được định nghĩa trước Khi đó, thay vì lưu
trữ dãy giá trị x 1 x 2 … x n , ta chỉ cần lưu trữ chuỗi y 1 y 2 ….y k là k hệ số của các đường
cơ bản Từ những đường cơ bản này ta cũng có thể phục hồi lại dữ liệu ban đầu
Nếu k càng lớn thì đường phục hồi này càng chính xác với đường ban đầu và ngược lại Như vậy, thay vì tính toán trên dữ liệu n chiều, ta chỉ cần tính toán trên dữ liệu k
chiều
Phương pháp mã hóa bằng cách biến đổi thành những đường căn bản như vậy còn
được gọi là phương pháp thu giảm số chiều (dimensionality reduction)
Trên thế giới có nhiều phương pháp thực hiện việc thu giảm số chiều đã được các công trình nghiên cứu về dữ liệu chuỗi thời gian áp dụng như phương pháp biến đổi Fourier rời rạc (Discrete Fourier Transform – DFT), phương pháp biến đổi Wavelet rời rạc (Discrete Wavelet Transform – DWT), phương pháp phân rã giá trị riêng (Singular Value Decomposition – SVD), phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation – PAA) Hình 2.5 minh họa các phương pháp DFT, DWT, SVD và PAA
Hình 2.5: Minh họa các phương pháp thu giảm số chiều DFT, DWT, SVD và PAA
Trang 27Chương 3 trong luận văn này sẽ trình bày chi tiết cách hiện thực của các phương pháp DFT, DWT, SVD và PAA
2.4 Rời rạc hóa dữ liệu
Đã tồn tại nhiều cấu trúc dữ liệu và giải thuật hữu hiệu hỗ trợ việc so trùng các chuỗi kí tự Với dữ liệu chuỗi thời gian thì dữ liệu được ghi nhận là những giá trị thực Chính vì vậy, ta không thể áp dụng những cấu trúc dữ liệu và giải thuật đã tồn tại đó để hỗ trợ cho các bài toán về dữ liệu chuỗi gian được Đây chính là điều bất lợi cho những giải thuật phân tích dữ liệu chuỗi thời gian
Vậy, phải có một phương pháp nào đấy để có thể áp dụng được những cấu trúc dữ liệu và giải thuật nói trên cho dữ liệu chuỗi thời gian nhằm tăng tính hữu hiệu của các phương pháp khi khai phá dữ liệu chuỗi thời gian
Rời rạc hóa dữ liệu (discretization) là một phương pháp giúp cho những giải thuật khai phá dữ liệu chuỗi thời gian có thể dùng được các cấu trúc dữ liệu và giải thuật
so trùng chuỗi kí tự SAX (Symbolic Aggregate approXimation) là một trong những phương pháp rời rạc hóa dữ liệu chuỗi thời gian Với dữ liệu chuỗi thời gian ban đầu, qua phương pháp rời rạc hóa SAX, chuỗi dữ liệu thời gian gồm toàn những số thực sẽ được biến đổi thành tràng các kí tự a, b, c…Hình 2.6 minh họa phương pháp rời rạc hóa dữ liệu chuỗi thời gian SAX
Hình 2.6: Minh họa cho phương pháp rời rạc hóa dữ liệu chuỗi thời gian SAX
Trang 28Sau khi dữ liệu chuỗi thời gian được rời rạc hóa thành tràng các kí tự, những phương pháp phân tích dữ liệu chuỗi thời gian có thể áp dụng được các cấu trúc dữ liệu và giải thuật của lĩnh vực so trùng chuỗi kí tự
Ngoài SAX, trên thế giới còn nhiều phương pháp rời rạc hóa dữ liệu chuỗi thời gian khác đã được đề nghị như phương pháp rời rạc hóa dữ liệu dựa trên góc nghiêng, phương pháp SAX mở rộng (Extended SAX),…Các phương pháp này sẽ được trình bày chi tiết ở chương 3
2.5 Nhận dạng bất thường
Trong dữ liệu chuỗi thời gian có nhiều bài toán như so trùng chuỗi, nhận dạng bất thường, tìm các motif, gom cụm hay phân lớp dữ liệu,…Nhận dạng bất thường
(anormally detection) là bài toán tìm kiếm chuỗi con bất thường nhất trong dữ liệu
chuỗi thời gian và nhiệm vụ của đề tài là giải quyết bài toán nhận dạng chuỗi con bất thường này
Chuỗi con bất thường nhất là chuỗi con có khoảng cách xa nhất đến các lân cận gần
nhất của nó trong chuỗi dữ liệu thời gian Nghĩa là ứng với mỗi chuỗi con C i ta sẽ tính được khoảng cách đến tất cả các chuỗi con khác bằng một độ đo, ở đây độ đo được chọn là độ đo Euclid Sau đó, trong những khoảng cách đã tính được sẽ xác
định ra khoảng cách nhỏ nhất là d i
Trong tất cả những khoảng cách d i tìm được ta chọn ra khoảng cách lớn nhất, giả sử
là d j Khi đó C j chính là chuỗi con bất thường nhất trong chuỗi dữ liệu thời gian
Hình 1.1 minh họa chuỗi con P là bất thường nhất
Hiện nay có nhiều phương pháp giải được bài toán nhận dạng bất thường đã được
áp dụng trên thế giới như phương pháp HOT SAX, WAT, DADD, … Mỗi phương pháp đều có ưu nhược điểm riêng nhưng tất cả các phương pháp trên đều không hữu hiệu lắm, vẫn còn tốn mất nhiều thời gian trong việc phát hiện chuỗi con bất thường nhất Vì vậy, bài toán nhận dạng bất thường vẫn rất cần những giải pháp hữu hiệu
Trang 29hơn nữa Đó chính là lý do mà đề tài này được chọn – “phát hiện chuỗi con bất
thường nhất trong dữ liệu chuỗi thời gian”
Chương sau sẽ trình bày chi tiết các phương pháp trên và phân tích ưu nhược điểm của từng phương pháp
Trang 30
Chương 3: NHỮNG CÔNG TRÌNH LIÊN QUAN
Chương này trình bày một số phương pháp thu giảm số chiều, rời rạc hóa dữ liệu chuỗi thời gian, những công trình nhằm cải tiến quá trình tìm kiếm chuỗi con bất thường nhất và được tiến hành với cách đánh giá độ tương tự giữa hai chuỗi con bất
kỳ dùng độ đo Euclid
3.1 Các phương pháp thu giảm số chiều
Phương pháp thu giảm số chiều (dimensionalily reduction) là cách thức biểu diễn lại
chuỗi dữ liệu thời gian X={x 1 , x 2 , ,x n } thành chuỗi dữ liệu Y={y 1 , y 2 , , y k }, k nhỏ
hơn n, k gọi là hệ số biến đổi, nếu k càng nhỏ thì đặc tính của chuỗi dữ liệu X khi chuyển thành chuỗi dữ liệu Y càng nhiều và ngược lại
Hệ số k được dùng để phục hồi lại chuỗi dữ liệu X từ chuỗi dữ liệu Y, k càng lớn thì
dữ liệu được phục hồi càng chính xác và ngược lại Do đó, đối với các phương pháp
này ta cần chọn hệ số k phù hợp, nếu chọn k quá lớn thì hiệu suất bị giảm, nếu chọn
k quá nhỏ thì thông tin khi chuyển đổi bị mất quá nhiều nên kết quả tìm được sẽ
không chính xác Sau đây là một số phương pháp thu giảm số chiều hiện có:
3.1.1 Phương pháp biến đổi Fourier rời rạc
Phương pháp biến đổi Fourier rời rạc (Discrete Fourier Transform - DFT) do R.Agrawal và các cộng sự đề nghị năm 1993 [2] Theo phương pháp này, đường dữ liệu ban đầu được biểu diễn bởi các đường cơ bản, nhưng đường cơ bản trong
trường hợp này là đường sin và cosin (hình 3.1)
Trang 31- Cho phép so sánh gián tiếp 2 chuỗi X, Y thông qua khoảng cách của hai chuỗi
X f , Y f đã được biến đổi do: D X Y( , ) ≥αD X Y( f, )f (trong đó α là hằng số)
Nhược điểm
- Khó giải quyết khi các đường biểu diễn có chiều dài khác nhau
Hình 3.1: Các phương pháp biểu diễn dữ liệu DFT, DWT, SVD và PAA
3.1.2 Phương pháp biến đổi Wavelet rời rạc
Phương pháp biến đổi Wavelet rời rạc (Discrete Wavelet Transform - DWT) do K.Chan và cộng sự đề xuất năm 1999 [6] Phương pháp DWT biểu diễn chuỗi thời
gian thành các đường Haar cơ bản (hình 3.1) Đường Haar được định nghĩa theo
công thức như sau:
1 2 , , 0 )
1 5 0 1
5 0 0 1
)
t t
i j
ψ
0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12
DFT DWT SVD PAA
Các trường hợp còn lại
Trang 32Ngoài sử dụng đường Haar, phương pháp Wavelet có thể sử dụng các đường cơ bản khác như đường Daubechies, Coiflet, Symmlet [27]…Tuy nhiên, Haar Wavelet đã được dùng rất nhiều trong khai phá dữ liệu chuỗi thời gian và lập chỉ mục [6], [7]
Ưu điểm
- Độ phức tạp phép biến đổi O(n)
- Có khả năng khử nhiễu rất cao, thích hợp với những dữ liệu tĩnh ít thay đổi
do đường Haar cũng không thay đổi liên tục
- Hỗ trợ xấp xỉ khoảng cách DTW [7]
Nhược điểm
- Chiều dài chuỗi dữ liệu phải là một số lũy thừa của hai
3.1.3 Phương pháp phân rã giá trị riêng
Phương pháp phân rã giá trị riêng (Singular Value Decomposition - SVD) do F.Korn và các cộng sự đề xuất năm 1997 [13] Phương pháp SVD biểu diễn chuỗi
thời gian thành các đường eigenwave (hình 3.1) Việc xác định đường eigenwave dựa vào giá trị riêng và vector riêng của ma trận D mxn với m là tập các chuỗi thời gian, n là số chiều Mỗi tập dữ liệu khác nhau có các đường eigenwave khác nhau
Ưu điểm
- Cho phép thấy được hình dạng dữ liệu
- Hỗ trợ các kiểu truy vấn ngẫu nhiên (ad-hoc query)
Nhược điểm
- Độ phức tạp rất cao
- Phải thực thi lại giải thuật khi chỉnh sửa tập dữ liệu
Trang 333.1.4 Phương pháp xấp xỉ gộp từng đoạn
Phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation - PAA)
do E Keogh và các cộng sự đề xuất năm 2000 [17] Phương pháp PAA tuần tự xấp
xỉ k giá trị liền kề nhau thành cùng một giá trị bằng trung bình cộng của k điểm đó
Công thức tính giá trị trung bình cộng như sau:
∑+
N n
n
N i
X
1)1(
Với n là chiều dài dữ liệu chuỗi thời gian ban đầu, N là chiều dài dữ liệu chuỗi thời
gian trong không gian thu giảm
Quá trình cứ tiếp tục như vậy từ trái sang phải và kết quả cuối cùng là đường thẳng
có dạng bậc thang (hình 3.1)
Ưu điểm
-Thời gian tính toán rất nhanh
-Hỗ trợ nhiều phương pháp tính khoảng cách (khoảng cách Euclid, DTW, khoảng cách Minkowski…)
Nhược điểm
- Xây dựng lại chuỗi ban đầu rất khó và thường sinh lỗi lớn
- Không quan tâm đến những điểm đặc biệt (điểm giá trị nhỏ nhất, lớn nhất…) trong từng đoạn xấp xỉ
3.2 Các phương pháp rời rạc hóa dữ liệu
Dữ liệu chuỗi thời gian thường là những dữ liệu liên tục và lớn nên ta cần chia dữ liệu thành những đoạn rời rạc nhỏ hơn và mã hóa các đoạn này dựa vào đặc trưng của nó, từ đó giúp cho việc phân tích và tính toán dễ dàng hơn, quá trình này gọi là
Trang 34quá trình rời rạc hóa Sau đây là một số phương pháp rời rạc hóa đã được áp dụng trên thế giới:
3.2.1 Phương pháp xấp xỉ gộp ký hiệu hóa
Phương pháp biểu diễn bằng chuỗi bit (bitstring) chỉ dùng 2 ký tự 0 và 1 để biểu
diễn nên không thể hiện được hết đặc tính của dữ liệu Do đó, J Lin và các cộng sự
đã đề xuất phương pháp xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate approXimation - SAX) vào năm 2003 [24] để thực hiện rời rạc hóa dữ liệu chuỗi thời gian
Dữ liệu ban đầu được chia thành từng đoạn bằng phương pháp PAA Sau đó, dựa trên giá trị trung bình cộng của từng đoạn, ta sẽ biểu diễn đặc trưng của đoạn thành các ký tự Khi đó, chuỗi dữ liệu ban đầu sẽ được mã hóa rời rạc thành một chuỗi các
Gần đây đã có nhiều công trình nghiên cứu theo hướng này [22], [24], [23], [11], [10], [16], [14], [20], [26], [31], [34]
Hình 3.2: Phương pháp SAX
Trang 35Phương pháp SAX có thể tương tác được các dữ liệu lớn [29], khai phá được các kỹ thuật xử lý trên dữ liệu chuỗi để thực hiện xử lý và phân tích dữ liệu Ngoài ra còn
có một số phương pháp cải tiến như SAX mở rộng (Extended SAX) [19] hay SAX khả chỉ mục (Indexable SAX – iSAX) [29] được đề nghị nhằm tăng độ chính xác và
giảm chi phí tính toán
Tuy nhiên các điểm rời rạc lại được xác định dựa trên phân phối Gauss, không cụ thể cho từng loại dữ liệu Phân phối Gauss sẽ được trình bày trong bảng 3.1 Do đó, cần phải huấn luyện dữ liệu nhằm tìm ra những điểm rời rạc thích hợp nhất tương ứng với mỗi loại dữ liệu
Bảng 3.1: Phân phối Gauss
3.2.2 Phương pháp rời rạc hóa dựa trên góc nghiêng
Phương pháp rời rạc hóa dữ liệu dựa trên góc nghiêng do B Xia đề xuất năm 1997 [32] Trong phương pháp này, dữ liệu ban đầu sẽ được tuyến tính hóa thành những đoạn thẳng Dựa trên hệ số góc của những đoạn thẳng này ta sẽ mã hóa thành các ký
tự (hình 3.3)
Hình 3.3: Minh họa phương pháp rời rạc hóa dữ liệu dựa trên góc nghiêng
Trang 363.2.3 Phương pháp xấp xỉ gộp ký hiệu hóa khả chỉ mục
Phương pháp xấp xỉ gộp ký hiệu hóa khả chỉ mục (Indexable SAX - iSAX) được đề
nghị bởi J Shieh và cộng sự năm 2008 [29] Phương pháp iSAX thu giảm số chiều
và xác định các điểm ngắt tương tự như SAX, tuy nhiên chúng ta không sử dụng
chuỗi ký tự để mã hóa, mà thay vào đó là chuỗi các bit 0, 1 (hình 3.4)
Ưu điểm
- Chúng ta có thể thao tác các kỹ thuật trên SAX [14]
- Thực hiện đa phân giải nhằm khai phá tốt các dữ liệu lớn
- Có cấu trúc chỉ mục hỗ trợ
Nhược điểm
- Mang tất cả các nhược điểm của SAX do quá trình thu giảm chiều và tính toán điểm ngắt giống như SAX
Hình 3.4 Phương pháp biểu diễn dữ liệu iSAX (nguồn 29)
3.3 Các phương pháp nhận dạng chuỗi con bất thường nhất
Trên thế giới có nhiều giải thuật tìm kiếm chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian đã được đề nghị và sử dụng Sau đây là một số giải thuật nổi tiếng cho phép tìm kiếm chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian:
Trang 373.3.1 Phương pháp HOT SAX
Phương pháp này dùng giải thuật chân phương (Brute Force Discord Discovery -
BFDD) hoặc giải thuật có heuristic (Heuristic Discord Discovery - HDD) do
E.Keogh và các cộng sự đề nghị năm 2005 [16] để tìm chuỗi con bất thường nhất trong dữ liệu chuỗi thời gian
Sau khi thu giảm số chiều bằng phương pháp xấp xỉ gộp tuyến tính PAA, dữ liệu được rời rạc hóa thành chuỗi kí tự bằng phương pháp xấp xỉ gộp ký hiệu hóa SAX, sau đó áp dụng giải thuật BFDD hoặc HDD để khám phá chuỗi con bất đồng nhất (discord) Hình A1 trong phụ lục A mô tả mã giả cho giải thuật BFDD và hình A2 trong phụ lục A mô tả mã giả cho giải thuật HDD
Ưu điểm của BFDD
- Đơn giản, dễ hiểu, dễ hiện thực, chỉ có một tham số đầu vào là kích thước chuỗi con bất thường cần tìm
Nhược điểm của BFDD
- Mất nhiều thời gian, độ phức tạp thời gian lên đến O(n 2 ), với n là kích thước
của dữ liệu chuỗi thời gian
- Chỉ thực hiện tìm kiếm trên bộ nhớ
- Không khả thi nếu dữ liệu thu gộp và xấp xỉ vẫn còn lớn hơn kích thước bộ nhớ
Giải thuật HDD được cải tiến từ giải thuật BFDD bằng cách đưa vào hai heuristic ở vòng lặp ngoài (Outer Loop) và vòng lặp trong (Inner Loop)
Heuristic trong Outer Loop: Từ chuỗi dữ liệu thời gian ban đầu có chiều dài m, dùng cửa sổ trượt có kích thước n trích ra các chuỗi con có chiều dài n (n là tham số của giải thuật và n <<m) Ngoài tham số n, tác giả còn chọn hai tham số nữa đó là
Trang 38số kí tự a cần dùng để biến đổi từ dữ liệu số thực sang chuỗi kí tự (SAX) và kích thước w của chuỗi kí tự sau khi đổi
Trong phần đề nghị giải thuật tác giả đã chọn a=3, w=3 Sau khi trích được các chuỗi con chiều dài n từ chuỗi dữ liệu ban đầu, chuỗi con được đưa vào một mảng
Những chuỗi con được đưa vào mảng theo thứ tự giảm dần của khoảng cách độ đo tương tự giữa các chuỗi con so với lân cận gần nhất của nó (các chuỗi con lân cận
của chuỗi con đang xét phải thỏa điều kiện không chồng lắp (non-overlapping) lên
chuỗi con đó) Hai cấu trúc dữ liệu hỗ trợ cho vòng lặp trong và ngoài của giải thuật HDD được minh họa trong hình A3 (phụ lục A) Như vậy, khả năng chuỗi con bất đồng (discord) sẽ là chuỗi con được xét đầu tiên trong vòng lặp Outer Loop Số
chuỗi trong mảng là (m-n+1)
Heuristic trong Inner Loop: Những chuỗi con được sắp thứ tự tăng dần theo khoảng
cách từ chuỗi đó đến chuỗi đang xét (candidate) ở vòng lặp bên ngoài (Outer Loop) Giả sử theo hình A2 (phụ lục A), giải thuật đang kiểm tra đến chuỗi C 731 trong vòng
lặp ngoài (Outer Loop), tức là trong mảng đang xét đến phần tử tại vị trí 731, qua đó
có được chuỗi caa, từ chuỗi này và thông qua cây augmented trie sẽ biết được chuỗi
xuất hiện tại các vị trí 1, 3, 731 Và đây là 3 chuỗi được viếng thăm đầu tiên trong vòng lặp trong (Inner Loop) nhưng chuỗi tại vị trí 731 sẽ không được xét vì có điều
kiện ràng buộc ở dòng lệnh thứ 8 trong hình A2 (phụ lục A) Sau đó các chuỗi còn lại được viếng thăm ngẫu nhiên ở vòng lặp trong
Ưu điểm của HDD
- Đơn giản, dễ hiểu, dễ hiện thực và chỉ có một tham số đầu vào là kích thước chuỗi con bất thường cần tìm
Nhược điểm của HDD
- Mất khá nhiều thời gian, độ phức tạp thời gian là O(mn), với n là kích thước của dữ liệu chuỗi thời gian, m là kích thước của chuỗi con
- Chỉ thực hiện tìm kiếm trên bộ nhớ
Trang 39- Không áp dụng được nếu kích thước dữ liệu sau khi thu gọn và xấp xỉ vẫn còn lớn hơn kích thước bộ nhớ
3.3.2 Phương pháp biến đổi wavelet và sử dụng cây gia tố
Phương pháp biến đổi wavelet và cây gia tố (Wavelet and Augmented Trie - WAT)
do Y Bu và các cộng sự khác đề nghị năm 2007 [5] Phương pháp được áp dụng để
tìm K chuỗi bất đồng nhất trong cơ sở dữ liệu chuỗi thời gian Phương pháp này
cũng dùng giải thuật HDD nhưng sử dụng phép biến đổi Haar wavelet để thu giảm
số chiều thay vì dùng PAA
Sau khi xấp xỉ các chuỗi con trong dữ liệu chuỗi thời gian, chuỗi con xấp xỉ được rời rạc hóa thành chuỗi các kí tự xác định Cách rời rạc hóa dựa vào các hệ số Haar wavelet (Haar wavelet coefficients) Các tác giả đã giả sử rằng những hệ số này là theo phân bố Gauss (Gaussian distribution) (bảng 3.1) Họ sử dụng những điểm cắt (cutpoints) để ánh xạ tất cả các hệ số Haar thành những kí tự khác nhau
Ví dụ: nếu hệ số thứ i từ Haar wavelet là nằm trong khoảng từ β0 đến β1, nó sẽ được
ánh xạ thành kí tự a Nếu hệ số thứ i là giữa của βj-1 và βj thì nó sẽ được ánh xạ
thành kí tự thứ j… Bằng cách này mỗi chuỗi con sẽ được ánh xạ thành một từ
Sau khi các chuỗi con được ánh xạ thành các từ, tất cả các từ được đặt trong mảng
có con trỏ tham khảo đến chuỗi con ban đầu Sử dụng mảng này để xây dựng cây gia tố (augmented trie) bằng phương pháp lặp Cuối cùng cũng sử dụng giải thuật
nhận dạng chuỗi con bất đồng có heuristic HDD K lần để xác định K chuỗi con bất
Trang 40Nhược điểm
- Chỉ diễn ra trên bộ nhớ nên nếu dữ liệu dung lượng lớn hơn kích thước bộ nhớ thì không hiệu quả
3.3.3 Phương pháp cửa sổ thích nghi
Phương pháp cửa sổ thích nghi (Adaptive window-based Discord Discovey - AWDD) do M Chuah và cộng sự đề nghị năm 2007 [8] Phương pháp này dựa vào
ý tưởng của phương pháp HOT SAX, nhưng cải tiến giải thuật bằng cách quét qua
dữ liệu ban đầu trước để tìm ra kích thước cửa sổ trượt, sau đó mới tìm khoảng cách giữa chuỗi con có kích thước là kích thước cửa sổ trượt với lân cận gần nhất của nó Chuỗi bất đồng tìm được là chuỗi có khoảng cách xa nhất tới lân cận gần nhất của
sổ trượt chính là chiều dài của một nhịp tim (hình 3.5)
Hình 3.5: Kích thước cửa sổ trượt theo chiều dài của 1 nhịp tim