Với sự phát triển nhanh chóng 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 những mẫu tươn
Trang 1NGUYỄN QUỐC VIỆT HÙNG
NHẬN DẠNG MẪU ĐÁNG QUAN
TÂM 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 2007
Trang 2ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM
- -oOo -
Tp HCM, ngày tháng năm 2007
NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ và tên học viên : Nguyễn Quốc Việt Hùng Giới tính : Nam ;/ Nữ Ngày, tháng, năm sinh : 02/09/1982 Nơi sinh : Quảng Ngãi
Chuyên ngành : Khoa học Máy tính
Khoá : 2005
1- TÊN ĐỀ TÀI :
NHẬN DẠNG MẪU ĐÁNG QUAN TÂM TRONG TẬP DỮ LIỆU CHUỖI THỜI GIAN
2- NHIỆM VỤ LUẬN VĂN :
3- NGÀY GIAO NHIỆM VỤ :
4- NGÀY HOÀN THÀNH NHIỆM VỤ :
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : 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 CHỦ NHIỆM BỘ MÔN
(Họ tên và chữ ký)
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : TS Dương Tuấn Anh
Cán bộ chấm nhận xét 1 :
Cán bộ chấm nhận xét 2 :
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 tháng năm 2007
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 05 tháng 11 năm 2007
Nguyễn Quốc Việt Hùng
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 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 từ đại học tới 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 Cha Mẹ Nhờ công lao dưỡng dục của Người mà chúng con mới có được thành quả như ngày hôm nay Con 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 LUẬN VĂN
Tìm kiếm tương tự trên dữ liệu chuỗi thời gian ngày càng đóng vai trò quan trọng trong lĩnh vực khai phá dữ liệu Với sự phát triển nhanh chóng 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 những mẫu tương tự 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 tất cả những mẫu con trùng với chuỗi truy vấn trên dữ liệu chuỗi thời gian 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 lập chỉ mục
Chúng tôi sử dụng khoảng cách Euclid cho việc tìm kiếm thô ban đầu và đề
ra cách biểu diễn những mẫu hình dạng trừu tượng để nâng cao chất lương so trùng mẫu dựa trên hình dạng Ngoài ra, chúng tôi còn đề nghị cách lập chỉ mục mới,
phương pháp xấp xỉ tuyến tính gộp từng đoạn kết hợp với giải thuật tìm kiếm nhánh và cận trên cây hậu tố của phương pháp gộp ký hiệu hóa, để nâng cao hiệu
quả tìm kiếm Qua thực nghiệm cho thấy, những kỹ thuật tìm kiếm tương tự mà chúng tôi đề nghị đều hiệu quả với những dữ liệu có nhiễu hay dữ liệu bị co giãn và tịnh tiến
Trang 7ABSTRACT
Similarity search on time-series data sets is of growing inportance in data mining With the increasing amount of time-series data in many application, from financial to scientific, it is important to study methods of retrieving similarity patterns effciently and user friendly for business decission making
The thesis proposes methods of efficient retrieval of all subsequences in the time series databases similar to a query sequence Two kinds of the methods, similarity measures and indexing techniques, are designed and implemented
We use Euclidean distance as the basis for similarity queries on time-series data and design an innovative representation technique which abstracts the shapes
in time series sequences to enhance similar patterns based on shape Moreover, we
propose new indexing technique, the piecewise linear aggregate approximation combining branch and bound algorithm on suffix tree of the symbolic aggregate
approximation method, to speed up searching The experiments show that the
retrieval technique we propose is also efficient with noisy, scaled and shifted data
Trang 8MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT LUẬN VĂN iii
ABSTRACT iv
MỤC LỤC v
DANH MỤC HÌNH vii
DANH MỤC BẢNG ix
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 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 so trùng mẫu con 2
1.3 Mục tiêu và giới hạn của đề tài 4
1.4 Tóm lược những 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 NỀN TẢNG 7
2.1 Cây hậu tố (suffix tree) 7
2.1.2 Quá trình tạo cây hậu tố (suffix tree): 8
2.1.3 Tìm kiếm trên cây hậu tố 10
2.2 Tìm đường thẳng tốt nhất qua một tập điểm 10
2.3 Một số vấn đề về xác suất 11
CHƯƠNG 3 NHỮNG CÔNG TRÌNH LIÊN QUAN 14
3.1 Các công trình về phương pháp đo độ tương tự 14
3.1.1 Độ đo Minkowski 15
3.1.2 Phương pháp xoắn thời gian động 18
3.1.3 Phương pháp chuỗi con chung dài nhất (longest common subsequence ) 21
3.1.4 Phương pháp tính độ tương tự dựa trên xác suất 22
3.2 Các phương pháp thu giảm số chiểu dữ liệu 23
3.2.1 Phương pháp không thích nghi dữ liệu 24
3.2.2 Phương pháp thích nghi dữ liệu 26
3.3 Các phương pháp rời rạc hóa dữ liệu 28
3.4 Các công trình về cấu trúc lập chỉ mục (indexing) cho dữ liệu chuỗi thời gian 31
3.5 Kết luận 33
Trang 9CHƯƠNG 4 HỆ THỐNG SO TRÙNG MẪU CON 35
4.1 Đặt vấn đề 35
4.2 Hướng giải quyết 35
4.3 Kiến trúc hệ thống 37
4.4 Cách đánh giá độ tương tự 39
4.4.1 Quá trình chuẩn hóa dữ liệu 40
4.4.2 So trùng mẫu 42
4.4.3 Tuyến tính hóa các chuỗi dữ liệu thời gian 44
4.4.4 Cách đánh giá tính 2 chuỗi sau khi tuyến tính hóa 46
4.5 Lập chỉ mục đa mức để nâng cao tốc độ tìm kiếm 49
4.5.2 Cách mã hóa dữ liệu bằng phương pháp PAA [21] 50
4.5.3 Cách thu giảm số chiều bằng phương pháp PLAA 53
4.5.4 Rời rạc hóa dữ liệu bằng phương pháp SAX 59
4.5.5 Xây dựng chỉ mục dựa trên cây hậu tố 64
4.6 Kết luận 67
CHƯƠNG 5 THỰC NGHIỆM 69
5.1 So sánh kết quả tương tự 69
5.2 So sánh các phương pháp lập chỉ mục 71
5.2.1 Thực nghiệm: độ chặt chận dưới 71
5.2.2 Thực nghiệm: Tỉ lệ thu giảm truy xuất (pruning power) 74
5.2.3 Thực nghiệm: hệ thống hiện thực 76
5.3 Kết luận 80
CHƯƠNG 6 KẾT LUẬN 82
6.1 Tổng kết 82
6.2 Những đóng góp của đề tài 83
6.3 Hướng phát triển 83
CÔNG TRÌNH CÔNG BỐ 85
TÀI LIỆU THAM KHẢO 86
PHỤ LỤC 1: BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH - VIỆT i
Trang 10DANH MỤC HÌNH
Hình 1.1 Đường biểu diễn dữ liệu chuỗi thời gian 2
Hình 1.2 Minh họa so trùng mẫu con .4
Hình 2.1 Cây hậu tố của từ mississippi 8
Hình 2.2 Quá trình tạo cây hậu tố của chuỗi mississippi 9
Hình 2.3 Đồ thị phân bố xác suất chuẩn 12
Hình 3.1 Minh họa 2 đường giống nhau, nhưng đường cơ bản khác nhau 17
Hình 3.2 Minh họa 2 đường giống nhau, nhưng biên độ dao động khác nhau .17
Hình 3.3 (a) tính khoảng cách theo Euclid (b) tính khoảng cách theo DWT .19
Hình 3.4 Minh họa cách tính khoảng cách theo DWT 20
Hình 3.5 Minh họa phương pháp LCS 21
Hình 3.6 Minh họa cách biến đổi dữ liệu ban đầu theo các
phương pháp DFT, DWT, PAA 25
Hình 3.7 Minh họa cách biến đổi dữ liệu ban đầu theo các phương pháp SVD, APCA, PLA .27
Hình 3.8 Minh họa phương pháp rời rạc hóa chuỗi bit 29
Hình 3.9 Minh họa phương pháp rời rạc hóa theo góc nghiêng 29
Hình 3.10 Rời rạc hóa dữ liệu ban đầu theo phương pháp SAX .30
Hình 3.11 Cách tạo cây K-D-Tree 32
Hình 3.12 Cách tạo cây R-tree 33
Hình 4.1 Sơ đồ kiến trúc hệ thống 38
Hình 4.2 Chuẩn hóa dữ liệu 41
Hình 4.3 Giải thuật so trùng mẫu 43
Hình 4.4 Giải thuật so trùng dựa trên hình dạng 45
Hình 4.5 Cách mã hóa các trạng thái đoạn tuyến tính - u2 d 10 u 1 47
Hình 4.6 Cây phân cấp các trạng thái của đường tuyến tính 48
Hình 4.7 Minh họa tư tưởng mã hóa dữ liệu 49
Hình 4.8 Thu giảm số chiều bằng phương pháp PAA 51
Hình 4.9 Các trường hợp cùng giá trị trung bình nhưng khoảng cách khác nhau 53
Hình 4.10 Minh họa quá trinh ánh xạ dữ liệu của phương pháp PLAA sang không gian PAA và PLA 54
Hình 4.11 Minh họa quá trình rời rạc hóa thành chuỗi ký tự theo phương pháp SAX 61
Hình 4.12 Xét vị trí tương quan giữa các điểm 63
Hình 4.13 Cây hậu tố của chuỗi S = abcbcabcaa 65
Trang 11Hình 4.14 Minh họa quá trình tìm kiếm chuỗi Q = cba trên cây hậu tố của chuỗi
S = abcbcabcaa bằng giải thuật nhánh và cận 67
Hình 5.1 Kết quả so trùng mẫu (1) Sau giai đoạn SAX ta thu được mẫu (2), (3), (4) Sau
giai đoạn PLA kết quả chỉ còn lại mẫu (3) 70 Hình 5.2 Kết quả thực nghiệm về độ chặt chận dưới của các phương pháp PAA,PLAA và
SAX 73
Hình 5.3 Kết quả thực nghiệm về tỉ lệ thu giảm truy xuất (pruning power) của các phương
pháp PAA,PLAA và SAX 76
Hình 5.4 Kết quả thực nghiệm về chi phí CPU chuẩn hóa của các phương pháp PAA,
PLAA và PLAA+SAX theo tỉ lệ thu giảm 77
Hình 5.5 Kết quả thực nghiệm về chi phí CPU chuẩn hóa của các phương pháp PAA,PLAA
và PLAA+SAX (phóng to Hình 5.4.) 79 Hình 5.6 Kết quả thực nghiệm về chi phí CPU chuẩn hóa của các phương pháp PAA,PLAA
và PLAA+SAX theo kich thước dữ liệu 80
Trang 12DANH MỤC BẢNG
Bảng 2.1 Bảng tra phân bố xác suất chuẩn chuẩn hóa 12 Bảng 4.1 Bảng danh sách các trạng thái của đường tuyến tính dựa trên góc nghiên 47 Bảng 4.2 Bảng xác định các khoảng chia tương ứng với số ký tự 61
Bảng 5.1 Số chuỗi con trùng nếu dùng phương pháp SAX và phương pháp SAX kết hợp
PLA 71
Trang 13CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
Chương giới thiệu đề tài này sẽ trình bày yêu cầu, mục tiêu và nội dung sơ lược của đề tài Đồng thời ở đây cũng nêu lên những động cơ trong nghiên cứu và trong thực tiễn đòi hỏi cần phải thực hiện đề tài này
1.1 Dữ liệu chuỗi thời gian
Dữ liệu có yếu tố thời gian là sự quan sát tuần tự theo thời gian Dữ liệu này
có thể là 2 chiều hay nhiều chiều nhưng đó phải có 1 chiều là thời gian Có rất nhiều loại dữ liệu khác nhau có yếu tố thời gian và thông thường đây là những dữ liệu rất lớn (very large database) Theo khảo sát từ 4000 hình ngẫu nhiên trên các
tờ báo xuất bản giai đoạn 1974 – 1989 thì 75% là các hình biểu diễn dữ liệu chuỗi thời gian Đặt biệt, trong thời đại hiện nay, thông tin là rất quan trọng Tuy nhiên
dữ liệu thì quá lớn nên cần phải sử dụng công cụ máy tính để tìm được những thông tin từ nguồn dữ liệu đó Chính vì vậy những nghiên cứu và ứng dụng dữ liệu chuỗi thời gian là những lĩnh vực rất rộng lớn và cần thiết của khoa học máy tính
và các ngành khoa học khác
Trong phạm vi nghiên cứu của đề tài này, ta quan tâm đến dữ liệu chuỗi thời
gian được biểu diễn bằng một chuỗi các số thực X = x 1 x 2 ……x n Trong đó x i là giá
trị đo ở thời điểm thứ i Hình 1.1trình bày đường cong biểu diễn dữ liệu chuỗi thời
gian
Nhữ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 đồ (EKG) là 1 GigaByte
Phụ thuộc vào nhiều yếu tố chủ quan
Việc đánh giá mức độ tương tự giữa các dữ liệu phụ thuộc vào yếu tố chủ quan của người dùng, của tập dữ liệu và những công việc này đều phải làm bằng tay
Trang 14Dữ 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
Bị nhiễu, thiếu một vài giá trị, dữ liệu không sạch…
Hình 1.1 Đường biểu diễn dữ liệu chuỗi thời gian
1.2 Những yêu cầu đòi hỏi phải so trùng mẫu con
Bài toán so trùng mẫu 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 và hiệu quả để tìm trong cơ sở dữ liệu
chuỗi thời gian (time series) những mẫu con trùng hoặc xấp xỉ với mẫu yêu cầu
Bài toán so trùng mẫu là một bài toán rất cơ bản trong lĩnh vực nghiên cứu về dữ liệu chuỗi thời gian Đặc biệt, nó rất quan trọng đối với các dữ liệu chuỗi thời gian
có tính chất lịch sử hay các dữ liệu không gian - thời gian (spatio-temporal data)
Một số dạng yêu cầu truy vấn mà ta thường gặp:
Lĩnh vực tài chính, thương mại như giá cả thị trường chứng khoán, số lượng sản phẩm bán được…
Tìm trong quá khứ, những giai đoạn mà số lượng sản phẩm bán được như tháng vừa rồi
2 2 2 2 2 2 2
Trang 15 Tìm những sản phẩm có chu kỳ bán hàng giống nhau
Tìm đoạn nhạc bản quyền trong một bài há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 những tháng trong quá khứ mà lượng mưa giống như tháng vừa rồi
Tìm những năm khô hạn, mực nước các sông ở mức thấp
Các lĩnh vực khác dữ liệu không phải là thời gian Sau đó, từ dữ liệu này ta chuyển về dạng dữ liệu chuỗi thời gian Như bài toán nhận dạng chữ viết hay các bài toán trong lĩnh vực xử lý ảnh được chuyển thành bài toán dữ liệu hướng chuỗi thời gian
Mặc dù có nhiều loại khác nhau, nhưng các yêu cầu truy vấn có thể chia làm
2 loại:
So trùng toàn bộ: Đối với những truy vấn so trùng toàn bộ thì chiều dài của
dữ liệu truy vấn và chiều dài dữ liệu ban đầu là bằng nhau Bài toán này ta thường được dùng trong việc gom cụm, hay phân loại dữ liệu chuỗi thời gian Ví dụ, “tìm giá chứng khoán của những công ty nào thay đổi giống nhau”
So trùng một phần: Trong trường hợp so trùng một phần thì chiều dài của
dữ liệu truy vấn ngắn hơn rất nhiều so với chiều dài của dữ liệu ban đầu Vì vậy, nhiệm vụ chính là tìm những đoạn trong dữ liệu ban đầu tương tự với dữ liệu truy vấn Một số ứng dụng của bài toàn này là tìm những mẫu dữ liệu quan trọng hay những thay đổi bất thường trong dữ liệu ban đầu Ví dụ: “tìm những khoảng thời gian mà giá của thị trường chứng khoán không đổi trong một khoảng thời gian”,
“tìm những thời điểm mà giá chứng khoán giảm đột ngột”, hay “những thời điểm nào mà giá chứng khoán thay đổi theo dạng hình răng cưa”…
Bài toán so trùng mẫu con là bài toán rất căn bản của lĩnh vực nghiên cứu về
dữ liệu chuỗi thời gian Từ bài toán so trùng mẫu con trên dữ liệu chuỗi thời gian thì ta có thể mở rộng thành so trùng toàn bộ Ngoài ra, có nhiều bài toán khác cũng
Trang 16sử dụng bài toán so trùng trùng mẫu con Ví dụ: bài toán gom cụm (clustering), phân loại (classification), tìm quy luật của dữ liệu (rule discovery), phát hiện điểm bất thường (novelty detection), dự báo dữ liệu trong tương lai (prediction)…
1.3 Mục tiêu và giới hạn của đề tài
Hình 1.2 Minh họa so trùng mẫu con ( Từ nguồn [26])
Mục tiêu chính của luận văn là so trùng mẫu con trên dữ liệu chuỗi thời
gian Khi đó, từ 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 đó, ta cho phép người dùng đặc tả một mẫu dữ liệu truy vấn (mẫu này thường rất nhỏ so với dữ liệu ban đầu) Khi đó, chương trình sẽ tìm trong dữ liệu đầu những mẫu con nào tương tự với mẫu truy vấn Các mẫu con tương tự với mẫu truy vấn về hình dạng và độ chênh lệch là ít nhất ( Xem Hình 1.2)
Bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian cũng chính là bài toán tìm kiếm Tuy nhiên thông thường kích thước dữ liệu để tìm kiếm là rất lớn
Vì vậy, những ứng dụng này đòi hỏi phải sử dụng các phương pháp lập chỉ mục
Phương pháp lập chỉ mục là phương pháp nhằm nâng cao tốc độ tìm kiếm
Phương pháp lập chỉ mục có thể là giảm số chiều để giảm kích thước dữ liệu hoặc
có thể sử dụng những cấu trúc biểu diễn dữ liệu nhằm nâng cao tốc độ tìm kiếm
Bài toán so trùng mẫu con thì có nhiều khía cạnh khác nhau để nghiên cứu
Ví dụ như phải đưa ra cách tính mức độ tương tự một cách tổng quát phù hợp cho
Dữ liệu ban đầu
Chuỗi con tương tự nhất Mẫu truy vấn cần tìm
Trang 17nhiều dữ liệu, hiện thực các giải thuật mà không cần tham số truyền vào, đưa ra giải pháp để truy vấn một cách linh hoạt, phải giải quyết vấn đề kích thước các mẫu
không bằng nhau… Tuy nhiên, luận văn này giới hạn nghiên cứu ở những khía
Giao diện tương tác phải thân thiện
1.4 Tóm lược những 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 đã xây dựng hệ thống so trùng chuỗi con trên dữ liệu chuỗi thời gian Hệ thống này có 2 thành phần chính Thành phần thứ nhất cho phép người dùng đưa dữ liệu chuỗi thời gian ban đầu vào hệ thống Sau đó hệ thống sẽ chuẩn hóa dữ liệu, mã hóa dữ liệu và lập chỉ mục cho dữ liệu chuỗi thời gian này Thành phần thứ hai có nhiệm vụ nhận chuỗi con truy vấn và so trùng để tìm chuỗi con nào trong chuỗi dữ liệu ban đầu phù hợp nhất
Trong thành phần thứ nhất, sau khi tìm hiểu về các cách mã hóa và lập chỉ
mục, chúng tôi đề ra giải pháp lập chỉ mục kết hợp phương pháp xấp xỉ tuyến
tính gộp từng đoạn (Piecewise Linear Aggregate Approximation -PLAA) và phương pháp xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate approXimation - SAX) Phương pháp PLAA là phương pháp mới do chúng tôi đề nghị PLAA thực
sự hiệu quả hơn so với 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ự đề nghị năm 2000 [21] và hiện
tại đang được sử dụng phổ biến Phương pháp SAX là phương pháp lập chỉ mục mới do J Lin đề nghị năm 2003 [10] Tuy nhiên, trong luận văn này chúng tôi đã
vận dụng cấu trúc dữ liệu cây hậu tố kết hợp giải thuật tìm kiếm nhánh và cận vào
phương pháp SAX để nâng cao cách hiệu quả tìm kiếm
Trang 18Trong thành phần thứ hai là so trùng chuỗi con Trong thành phần này thì cách xác định độ tương tự giữa các mẫu là quan trọng nhất Cũng giống như các
nghiên cứu khác, chúng tôi cũng sử dụng khoảng cách Euclid Tuy nhiên, cách
đánh giá này chỉ sử dụng trong bước tìm kiếm thô ban đầu Các kết quả sau giai đoạn tìm kiếm thô sẽ được tinh chỉnh trong bước kế tiếp Bước này chúng tôi đưa
ra cách đánh giá dựa trên hình dạng với các mẫu hình dạng được định nghĩa trước
Do đó, kết quả của mẫu so trùng sẽ phù hợp hơn, trực quan hơn
Như vậy, với hệ thống đã hiện thực mà chúng tôi sẽ trình bày chi tiết ở những chương sau sẽ đã đáp ứng nhữ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 của phần còn lại của luận văn theo cấu trúc sau đây:
Chương II sẽ giới thiệu một số lý thuyết phức tạp mà chúng ta sẽ sử dụng
trong luận văn Trước hết đó là cấu trúc dữ liệu cây hậu tố (suffix tree) sẽ được sử dụng để lập chỉ mục dữ liệu Sau đó, là lý thuyết tìm đường thẳng tốt nhất (best fit
line) đi qua tập điểm cho trước Cuối cùng là một số lý thuyết về phân bố xác suất
và tính chất phân bố xác suất chuẩn
Chương III 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 tương tự và được tiến hành ở các khía cạnh đánh giá độ tương tự, mã hóa dữ liệu và lập chỉ mục
Chương IV trình bày những vấn đề đặt ra khi so trùng mẫu con Trong chương này sẽ phân tích những vấn đề chính mà hệ thống cần phải giải quyết Vấn
đề đó chính là định nghĩa thế nào gọi là 2 mẫu tương tự nhau? Và tổ chức dữ liệu như thế nào để có thể tìm kiếm nhanh? Sau đó, chúng tôi sẽ trình bày từng bước cách giải quyết 2 vấn đề này
Chương V là một số kết quả thực nghiệm
Chương VI là một số kết luận sau khi thực hiện đề tài
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT NỀN TẢNG
Trong đề tài này để giải quyết bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian thì một số vấn đề lý thuyết của các lĩnh vực khác sẽ được sử dụng Do đó, chương này sẽ trình bày những điểm cơ bản của các lý thuyết đó Trước hết, đó là
cấu trúc dữ liệu cây hậu tố, cách xây dựng cũng như cách tìm kiếm trên cây hậu tố
Cấu trúc dữ liệu này sẽ được sử dụng trong quá trình lập chỉ mục cho dữ liệu chuỗi thời gian, sau khi dữ liệu chuỗi thời gian được rời rạc hóa thành dòng ký tự
Ngoài ra, trong giai đoạn tuyến tính hóa dữ liệu chuỗi thời gian thì ta phải biểu diễn đường dữ liệu đó thành những đoạn thẳng Khi đó sẽ đặt ra vấn đề tìm đường thẳng tốt nhất đi qua một tập điểm cho trước Đường thẳng này phải thể hiện được đặc trưng của tập hợp điểm trên
Cuối cùng vấn đề phân bố xác suất Với mỗi loại dữ liệu khác nhau thì nó có
phân bố xác suất khác nhau Trong những nghiên cứu về lĩnh vực tài chính, thì
phân phối xác suất có dạng đặc biệt Đó là phân bố xác suất chuẩn Đây là vấn để quan trọng để ta có thể đưa ra cách mã hóa ký tự hợp lý trong phương pháp SAX
2.1 Cây hậu tố (suffix tree)
Trước khi tìm hiểu về cây hậu tố thì ta tìm hiểu về khái niệm hậu tố Hậu
tố của 1 chuỗi là những phần còn lại của chuỗi khi ta bỏ một số ký tự đầu của
Trang 20Bây giờ ta sẽ xây dựng cây hậu tố Cây hậu tố là cây trong đó có m lá với m
là chiều dài của chuỗi ban đầu tướng ứng với m chuỗi con hậu tố Ngoài ra, bất kỳ nút lá i nào của cây thì khi nối các chuỗi của các cạnh trên lối đi từ nút gốc đến nút nút lá i thì cũng bằng chính xác chuỗi con hậu tố thứ i của chuỗi ban đầu
Hình 2.1là cây hậu tố của chuỗi mississippi
Hình 2.1 Cây hậu tố của từ mississippi
2.1.2 Quá trình tạo cây hậu tố (suffix tree):
Quá trình xây dựng cây hậu tố là quá trình thêm tuần tự các chuỗi con hậu tố vào cây Trong quá trình thêm này, các cạnh sẽ biểu diễn cho một chuỗi con, còn các nút sẽ cho biết vị trí xuất hiện của chuỗi con đó trong chuỗi ban đầu
Để tạo cây hậu tố cho chuỗi mississippi, thì đầu tiên ta đưa chuỗi con thứ
1 vào cây Khi đó cây có dạng như Hình 2.2(a) Tiếp theo đưa chuỗi thứ 2 vào cây Chuỗi thứ 2 và chuỗi thứ 1 không có chung phần tiền tố nên nó sẽ tạo thêm nhánh riêng từ gốc như Hình 2.2(b) Tiếp tục ta thêm chuỗi thứ 3, như Hình 2.2(c) Khi thêm chuỗi thứ 4, thì chuỗi thứ 4 “sissippi” và chuỗi thứ 3 “ssissippi” có chung
Trang 21phần tiền tố “s” nên không thêm nhánh thứ 4 từ gốc mà thêm vào từ nút trung gian
để biểu diễn cho nhánh 3 và 4 có chung phần tiền tố “s” Hình 2.2(d) là hình ảnh
của cây sau khi thêm nhánh 4 Quá trình cứ tiếp tục đến khi thêm chuỗi hậu tố cuối
cùng thêm vào Khi đó cây hậu tố sẽ có hình dạng như Hình 2.2(e)
Hình 2.2 Quá trình tạo cây hậu tố của chuỗi mississippi
root
1 missisippi root
1
missisippi
2 issisippi
root
1 missisippi
2 issisippi
3
sisippi
4 isippi
Trang 222.1.3 Tìm kiếm trên cây hậu tố
Quá trình tìm kiếm trên cây hậu tố hoàn toàn giống với tìm kiếm trên cây từ
điển (Trie tree), cây tìm kiếm nhị phân (Binary search tree) Khi tìm chuỗi truy vấn
Q trong chuỗi ban đầu thì lần lượt theo từng ký tự của Q ta sẽ đi theo các nhánh
của cây hậu tố Quá trình tìm kiếm chỉ dừng lại khi ta đã đi đến nút lá trên cây hậu
tố hoặc đã duyệt đến ký tự cuối cùng của chuỗi truy vấn Q
Xét về khía cạnh độ phức tạp, khi xây dựng cây hậu tố thì sẽ có k chuỗi con
hậu tố lần lượt thêm vào cây Trong đó k là chiều dài của chuỗi ban đầu Do đó, độ
phức tạp của giải thuật xây dựng cây là O(k)
Mặc khác, đối với tìm kiếm, thì quá trình này sẽ dừng lại khi ta đi đến nút lá
trên cây hoặc khi đã duyệt qua toàn bộ ký tự trong chuỗi truy vấn Q Vì vậy, độ
phức tạp của giải thuật tìm kiếm là O(n) Trong đó, n là chiều dài của chuỗi truy
vấn
Cây hậu tố vừa trình bày là cây hậu tố đơn giản Để cải thiện quá trình xây
dựng và tìm kiếm thì có thể sử dụng cây hậu tố liên kết (suffix linked tree) phức
tạp hơn nhưng hiệu quả hơn
2.2 Tìm đường thẳng tốt nhất qua một tập điểm
Bài toán tìm đường thẳng đi qua n điểm đã được đặt ra rất nhiều Đường
thẳng này gọi là đường thẳng tốt nhất ( best fit line ) Có nhiều loại đường thẳng
tốt nhất này tùy theo từng cách định nghĩa Trong luận văn này, đường thẳng tốt
nhất là đường thẳng đi qua n điểm và tổng bình phương khoảng cách Euclid của
các điểm so với đường này là nhỏ nhất
Với tập n điểm (x 1 , y 1 ), … (x n , y n ) thì đường thẳng tốt nhất có dạng y= ax+b Bây giờ ta phải tìm hệ số a, b sao cho cực tiểu tổng sau:
1
2)]
*([
Để thỏa mãn yêu cầu trên, giá trị của a, b được xác định theo công thức sau:
Trang 232 1 1
2
1 1 1
)()(
))(
()(
i i
n i i n
i i n
i i i
x x
n
y x y
x n a
2 1 1
2
1 1
1 1
2
)()(
))(
())(
i i
n i i n
i i i n
i i n
i i
x x
n
x y x y
x b
Trong công thức trên thì khi ta tịnh tiến tập điểm ban đầu theo vectơ thì
giá trị của a sẽ không đổi Chỉ có giá trị b là thay đổi Do đó khi tịnh tiến như vậy,
các đường thẳng tốt nhất sẽ song song với nhau Điều này hoàn toàn phù hợp với lý thuyết
2.3 Một số vấn đề về xác suất
Trong toán học, hàm mật độ xác suất dùng để biểu diễn một phân bố xác
suất theo tích phân Hàm hàm mật độ xác suất luôn có giá trị không âm và tích
phân của nó từ −∞ tới +∞ có giá trị bằng 1 Nếu một phân bố xác suất có mật độ
f(x), thì về mặt trực quan, khoảng vi phân (vô cùng bé) [x, x + dx] có xác suất bằng f(x) dx
Một cách không chính thức, hàm mật độ xác suất có thể được coi là phiên
bản được làm mịn của một biểu đồ tần số: nếu ai đó liên tiếp đo đạc bằng thực nghiệm các giá trị của một biến ngẫu nhiên liên tục và tạo một biểu đồ tần số mô tả tần suất tương đối của các miền biến thiên của kết quả, thì biểu đồ tần số đó sẽ trông giống với mật độ xác suất của biến ngẫu nhiên đó (giả sử rằng biến được lấy mẫu đủ thường xuyên và các miền biến thiên của kết quả là đủ nhỏ)
Một cách chính thức, một phân bố xác suất có mật độ f(x) thì xác suất của khoảng [a, b] được xác định bởi công thức
v
Trang 24với hai số bất kỳ a và b
Trường hợp a= −∞ và b=+∞, khi đó tích phân toàn phần của f phải bằng 1
Phân bố chuẩn, còn gọi là phân bố Gauss, là một phân bố xác suất cực kì
quan trọng trong nhiều lĩnh vực Nó là họ phân bố có dạng tổng quát giống nhau,
chỉ khác tham số vị trí và tỉ lệ: trung bình ("mean") và độ lệch chuẩn
("variability"), tương ứng Phân bố chuẩn chuẩn hóa (standard normal
distribution) là phân bố chuẩn với mean là 0 và độ lệch chuẩn là 1 Với phân bố
chuẩn chuẩn hóa thì mật độ xác suất có dạng chuông như Hình 2.3
Hình 2.3 Đồ thị phân bố xác suất chuẩn
Bảng 2.1 Bảng tra phân bố xác suất chuẩn chuẩn hóa
Dựa vào đường biểu diễn phân bố xác suất và công thức định nghĩa về mật
độ xác suất thì ta có thể tính xác suất xuất hiện của giá trị x với x nằm trong khoảng
Trang 25[a,b] Từ đó, để thuận tiên cho việc tính toán người ta đưa ra bảng tra phân bố xác
suất chuẩn ( 0 Từ bảng này ta có thể xác định xác suất của x với x < z là P(x < z)
Ví dụ: P(x < 0.43) = 0.666 ; P (x < 0.67) = 0.75
Trang 26CHƯƠNG 3: NHỮNG CÔNG TRÌNH LIÊN QUAN
Bài toán so trùng dữ liệu chuỗi thời gian được đề cập từ lâu Do đó có nhiều công trình nghiên cứu để giải quyết vấn đề này và các công trình nghiên cứu này có thể chia làm loại sau:
Thứ nhất là các công trình nghiên cứu nhằm đưa ra cách đánh giá về độ tương tự Cho đến hiện tại thì có nhiều cách đánh giá được đề nghị Tùy theo từng loại ứng dụng khác nhau, từng mục đích khác nhau mà ta sẽ dùng cách đánh giá khác nhau
Thứ hai là cách công trình mã hóa dữ liệu Do dữ liệu chuỗi thời gian thường rất lớn Vì vậy nhiều phương pháp mã hóa dữ liệu được đề nghị nhằm thu giảm kích thước dữ liệu để nâng cao tốc độ tìm kiếm Ngoài ra, các phương pháp
mã hóa dữ liệu còn nhằm mục đích chuẩn hóa dữ liệu Trong các phương pháp mã
hóa dữ liệu thì có 2 loại phương pháp chính đó là phương pháp thu giảm số chiều
(dimensional reduction) và phương pháp rời rạc hóa (discretization)
Thứ ba đó là các công trình về xây dựng các cấu trúc dữ liệu hỗ trợ lập chỉ mục Với phương pháp mã hóa thu giảm dữ liệu thì tốc độ truy vấn vẫn chưa hiệu quả Vì vậy, nhiều công trình đã đề nghị những cấu trúc dữ liệu nhằm hỗ trợ cho quá trình tìm kiếm trên dữ liệu mã hóa Vấn đề lập chỉ mục là vấn đề rất quan trọng trong bài toán dữ liệu chuỗi thời gian cũng như bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian
Với các hướng như vậy, ta sẽ xem xét những công trình những công trình liên quan cho đến nay Đối với mỗi phương pháp sẽ có những ưu, nhược điểm khác nhau, cũng như có những khía cạnh ứng dụng khác nhau phụ thuộc vào loại dữ liệu
và loại ứng dụng
3.1 Các công trình về phương pháp đo độ tương tự
Vấn đề quan trọng nhất của bài toán tìm kiếm tương tự là cách tính khoảng
cách của 2 đối tượng O 1 , O 2 Trong trường hợp 2 đối tượng này giống nhau thì
Trang 27khoảng cách này sẽ là 0 và ngược lại càng khác nhau thì khoảng cách càng lớn Để
có thể tính toán và so sánh thì cách khoảng cách này được biểu diễn thành các số thực
Tuy nhiên, độ đo khoảng cách giữa cách đối tượng nên thỏa các tính chất sau:
1 D(x,y) = 0 nếu và chỉ nếu x =y
2 D(x,y) = D(y,x)
3 D(x,y) >= 0 với mọi x,y
4 D(x,y) < D(x,z) + D(y,z) Trong 4 tính chất trên, ta thấy tính chất 1 và 2 là rất trực quan Tính chất 3 cũng rất cần thiết Nếu khoảng cách có thể nhỏ hơn 0 thì hai đối tượng khác nhau gồm nhiều thành phần nhưng tổng khoảng cách của các thành phần có thể bằng 0 Điều này là trái với tính chất 1 Tính chất còn lại - tính chất 4 - không phải là tính chất bắt buộc nhưng cũng rất hợp lý Khi tính toán thì độ phức tạp hay thời gian
tính toán rất quan trọng Tính chất 4 nhằm hỗ trợ kỹ thuật lập chỉ mục (indexing)
Với kỹ thuật này, từ những kết quả tính toán đã biết, ta có thể bỏ qua những không gian tìm kiếm mà chắc chắn không có lời giải thỏa mãn yêu cầu Do đó, thời gian tính toán sẽ giảm
Đối với bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian thì dữ liệu được biểu diễn thành các dãy số thực :
X= x1 x2 … xn
Y = y1 y2 …yn
Ta cần phải tính độ tương tự của 2 mẫu này Sim(X,Y) và đã có nhiều cách
đánh giá khác nhau được trình bày [1], [2], [8], [12], [13], [15], [18], [32] Sau đây
là những phương pháp đánh giá mức độ tương tự đã được đề nghị
3.1.1 Độ đo Minkowski
Trong phương pháp này thì Sim(X,Y) được định nghĩa:
Trang 28Sim (X, Y) = p
n i
p i
i y x
Nó có khả năng mở rộng cho nhiều bài toán khác này như lập chỉ
mục, gom cụm… Đặt biệt, cách tính này rất phù hợp khi ta sử dụng
các phép biến đổi Fourier rời rạc (Discrete Fourier Transform -
DFT) hay phép biến đổi Wavelet rời rạc (Discrete Wavelet
Transform - DWT)
Nhược điểm:
Nhạy cảm với nhiễu
Không thích hợp khi dữ liệu có đường căn bản (base line) khác nhau
( Hình 3.1): ví dụ như giá chứng khoáng của A và B thay đổi rất giống nhau nhưng A giao động ở 100 còn B giao động ở mức 40 Như vậy A và B là rất khác nhau mặc dù hình dáng rất giống nhau
Không thích hợp khi dữ liệu có biên độ dao động khác nhau ( Hình
3.2): Trong trường hợp giá chứng khoán của 2 công ty A và B thay đổi rất giống nhau nhưng mà biên độ giao động của A là 20 và 80 còn biên độ giao động của B là 30 và 50 thì độ tương tự của A và B là rất
khác nhau
Trang 29Hình 3.1 Minh họa 2 đường giống nhau, nhưng đường cơ bản khác nhau
Phương pháp chuẩn hóa dữ liệu chuỗi thời gian trước khi áp dụng các giải
thuật so trùng mẫu dựa trên giá trị trung bình và độ lệch chuẩn [13] Trong
đó, biến đổi dữ liệu Q thành dữ liệu Q’ có cùng đường căn bản theo công
thức sau:
0 0.
1 1.
2 2.
3
D(Q,C)
0 10 20 30 40 50 60 70 80 90 100
Trang 30Q’ = Q – mean(Q)
Với mean(Q) là giá trị trung bình của Q
Để các dữ liệu có cùng biên độ dao động thì ta dùng phép biến đổi sau: 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
Phương pháp trung bình di chuyển (moving average) [35] để 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 Ví dụ trong trường hợp k=3 thì
x’i = (xi-1 + xi + xi+1) /3
3.1.2 Phương pháp xoắn thời gian động
Tuy nhiên, việc so trùng 2 đường biểu diễn dữ liệu bằng cách tính khoảng
cách từng cặp điểm 1- 1 (điểm thứ i của đường thứ I so với điểm thứ i của đường
thứ II) là không phù hợp trong trường hợp 2 đường này không hoàn toàn giống nhau nhưng hình dạng biến đổi rất giống nhau Như trong Hình 3.3, 2 đườ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 xa 1-1giữa 2 đườ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 gọi là xoắn thời gian động (Dynamic
Time Warping - DTW) [4]
Dữ liệu vào của phương pháp DTW là 2 đường dữ liệu chuỗi thời gian và thông số w – khung cửa sổ xoắn (warping window) ràng buộc 2 điểm i và j có thể ánh xạ nhau nếu | i – j | ≤ w Dữ liệu ra là tổng khoảng cách của các điểm được
ánh xạ với nhau
Trang 31Hình 3.3 (a) tính khoảng cách theo Euclid (b) tính khoảng cách theo DWT
( Từ nguồn [26])
Cách tính DWT:
Cách đơn giản nhất để tính DWT của 2 đường X và Y là ta xây dựng ma trận
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
ô (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 đó
Tuy nhiên, ta có thể dùng quy hoạch động để giải quyết bài toán này Trong
đó, công thức truy hồi để tính D(i, j):
D(i,j) = | xi – yj | + min { D(i – 1, j), D(i – 1, j – 1), D(i, j – 1) }
Trang 32Hình 3.4 Minh họa cách tính khoảng cách theo DWT
Nhận xét phương pháp DTW:
Ưu điểm:
Phương pháp DWT thì hiểu quả hơn rất nhiều so với phương pháp
tính khoảng cách theo Euclid Đặt biệt trong các bài toán phân loại (classfication), gom cụm (clustering) hay trong các các ứng dụng nhận dạng giọng nói…
Phương pháp DWT cho phép nhận dạng những mẫu có hình dạng
giống nhau nhưng chiều dài hình dạng về mặt thời gian có thể khác nhau
Nhược điểm:
Nhược điểm lớn nhất của DTW là thời gian chạy rất lâu, gấp hàng trăm đến hàng nghìn lần Ban đầu đưa ra giải thuật DTW thì w = n (n
là chiều dài của dữ liệu) Khi đó, độ phức tạp là O(n 2 ) Do đó, ta đưa
ra thông số cửa sổ xoắn w (w < n) để giảm độ phức tạp là O(wn) Những cải tiến để phươmg pháp DTW hiệu quả hơn:
X
j = i + w
Trang 33 Dùng phép ánh xạ để chuyển cách biểu diễn ban đầu sang cách biểu diễn khác bằng cách nén dữ liệu và giảm tần số lấy mẫu Khi đó việc
tính toán theo DTW nhanh hơn
Trong phương pháp DTW trình bày ở trên ta dùng thông số w để giới hạn miền tìm kiếm Cải tiến này gọi là cận dưới (lower bound) Miền
tìm kiếm này có thể giới hạn bởi 2 đường thẳng song song như trên hoặc có thể có hình dạng khác (tùy theo từng hợp cụ thể)
3.1.3 Phương pháp chuỗi con chung dài nhất (longest common subsequence )
Hình 3.5 Minh họa phương pháp LCS
Điểm nổi bật của phương pháp chuỗi con chung dài nhất là nó cho phép bỏ
qua những điểm bất thường khi so sánh ( Hình 3.5) Tư tưởng chính của giải
thuật này là tìm những dãy con chung Hai dãy có dãy con chung càng dài thì càng
giống nhau Ví dụ, cho 2 chuỗi X, Y
X= 3, 2, 5, 7, 4, 8, 10, 7
Y = 2, 5, 4, 7, 3, 10, 8, 6 LCS = 2, 5, 7, 10
Độ tương tự của X, Y: Sim(X, Y) = |LCS|
Tuy nhiên, phương pháp này cũng giống như phương pháp tính khoảng cách Euclid, trước khi áp dụng phương pháp dãy con chung dài nhất, ta nên biến đổi dữ
Cho phép bỏ qua
Trang 34liệu ban đầu thông qua các phép biến đổi như tịnh tiến (shifting) đường căn bản hay phép co giãn biên độ (scaling)
Bên cạnh đó, các giá trị rất khó bằng nhau một cách chính xác Vì vậy ta phải định nghĩa tham số ε cho phép khoảng sai lệch giữa 2 giá trị được gọi là
giống nhau
Trên cơ sở đó, đã có nhiều cải tiến khác nhau cho phương pháp LCS này:
So sánh chuỗi con không co giãn biên độ (scale)
So sánh chuỗi con có dùng phép co giãn biên độ cục bộ và biến đổi đường căn bản
So sánh chuỗi con có dùng phép co giãn biên độ toàn cục và biến đổi đường căn bản
3.1.4 Phương pháp tính độ tương tự dựa trên xác suất
Khác với những phương pháp trước là dựa trên sự khác nhau về khoảng
cách (distance), thì phương pháp này dựa trên sự khác nhau về đặc điểm (feature)
Khi áp dụng phương pháp này ta phải biểu diễn chuỗi ban đầu và chuỗi truy vấn dựa trên những đặc điểm đã được định nghĩa trước như tăng, giảm, không đổi… Sau đó, từ chuỗi dữ liệu ban đầu này ta xây dựng mô hình xác suất chuyển trạng
thái Markov dự trên những đặc điểm hữu hạn đã được định nghĩa trước Khi người
dùng đưa vào chuỗi truy vấn, nó sẽ được rời rạc hóa thành chuỗi các đặc điểm Sau
đó, với mô hình xác suất đã được định nghĩa áp dụng giải thuật Markov hoặc
Viterbi … để tính xác suất cho các chuỗi con Phương pháp tính độ tương tự dựa
trên xác suất là hướng tiếp cận mới và rất được quan tâm hiện nay
Ưu điểm:
Phương pháp này đã tích hợp các phép biến đổi tịnh tiến (shifting),
co giãn biên độ (amplitude scale), và xoắn thời gian (time warping)
Định nghĩa về độ tương tự rất gần gũi với suy nghĩ của con người là dựa trên hình dáng đặc điểm
Trang 35 Khi sử dụng phương pháp này ta có thể sử dụng những nghiên cứu ở một số lĩnh vực khác như xử lý ngôn ngữ tự nhiên, so trùng mẫu ký
tự và các kỹ thuật nhận dạng dựa trên xác suất
có trùng nhau không)
Hai vấn đề quan trọng nhất của tìm kiếm tương tự là :
Định nghĩa độ tương tự giữa hai mẫu
Tổ chức dữ liệu để nâng cao tốc độ tìm kiếm Cách định nghĩa độ tương tự đã được trình bày trong phần trên, trong phần sau sẽ trình bày về các cách tổ chức dữ liệu hỗ trợ việc tìm kiếm Để việc tìm kiếm thực hiện nhanh thì các nghiên cứu tập trung vào 2 vấn đề chính: giảm số chiều của
dữ liệu và lập chỉ mục (indexing)
3.2 Các phương pháp thu giảm số chiều dữ liệ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 a 1 a 2 ….a 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 (dimensional reduction)
Trang 363.2.1 Phương pháp không thích nghi dữ liệu
Sở dĩ phương pháp này gọi là không thích nghi vì các đường cơ bản là
những đường được định nghĩa trước và không phụ thuộc vào dữ liệu như đường
sin, cosin, đường haar…
Từ ý tưởng này nhiều phương pháp đã được đề nghị (Hình 3.6) như phương
pháp biến đổi Fourier rời rạc (Discrete Fourier Transform - DFT) [19], [35], phương pháp biến đổi Wavelet rời rạc (Discrete Wavelet Transform - DWT) [7], [17], [34], [42], xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation - PAA) [21], [29], [10], [11], [25]
Phương pháp DFT:
Phương pháp biến đổi rời rạc Fourier do R Agrawal và cộng sự đề nghị [2] Trong phương pháp biến đổi Fourier thì đường dữ liệu ban đầu được biểu diễn bởi các đường căn bản Nhưng đường căn bản trong trường hợp này là đường sin và
cosin
Ngoài khả năng nén dữ liệu, với cách tính khoảng cách dựa trên khoảng
cách Euclid thì phương pháp Fourier cho phép so sánh gián tiếp 2 chuỗi X, Y thông qua khoảng cách của 2 chuỗi X f , Y f đã được biến đổi Sở dĩ phép biến đổi
Fourier rời rạc có tính chất trên là vì:
D(X, Y) ≥ α D(Xf , Yf ) (trong đó α là hằng số)
Vì vậy, phương pháp Fourier đã được sử dụng trong nhiều ứng dụng và một
số phương pháp lập chỉ mục như F-index, ST-index … đã được đề nghị Ưu diểm
của phương pháp này là thích hợp với các loại đường biểu diễn dữ liệu khác nhau
và giải thuật để biến đổi dữ liệu chỉ có độ phức tạp O(nlgn) Tuy nhiên, nhược
điểm lớn nhất rất khó giải quyết nếu các đường biểu diễn có chiều dài khác nhau
k
k w t B w t A
t C
1
)) 2 sin(
) 2 cos(
( )
Trang 37Hình 3.6 Minh họa cách biến đổi dữ liệu ban đầu theo các
phương pháp DFT, DWT, PAA (Từ nguồn [25])
ψ = ψ( 2j x−i) i = 0,… 2j -1
i j
ψ (t) Với
1 với 0< t <0.5 -1 với 0.5< t <1
0 trường hợp còn lại
=
0 20 40 60 80 100 120 0 20 40 60 80 100 120 0 20 40 60 80 100 120
Trang 38Ngoà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… Tuy nhiên, Haar
Wavalet đã được sử dụng rất nhiều trong khai phá dữ liệu chuỗi thời gian và lập chỉ
mục [34]
Giải thuật Wavelet rất hiệu quả bởi vì nó mã hóa đơn giản và nhanh Độ
phức tạp của việc mã hóa này là tuyến tính Đặc biệt, giải thuật này rất thích hợp
với những dữ liệu tĩnh ít thay đổi Bởi vì đường Haar cũng không thay đổi liên tục
Một ưu điểm của giải thuật Wavelet là nó hỗ trợ một số phương pháp tính khoảng cách khác không phải là dựa trên khoảng cách Euclid
Tuy nhiên nhược điểm lớn nhất là chiều dài chuỗi dữ liệu ban đầu của nó phải là một số lũy thừa 2 Còn chiều dài của chuỗi truy vấn cũng nên là số lũy thừa của 2 thì giải thuật mới thực hiện hiệu quả
Phương pháp PAA
Phương pháp xấp xỉ gộp từng đoạn do E Keogh và cộng sự đề nghị [21] Phương pháp này rất đơn giản, ta 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 đó Qúa trình cứ tiếp tục như vây từ
trái sang phải Kết quả cuối cùng là đường thẳng có dạng bậc thang
Với phương pháp này, thời gian tính toán rất nhanh và cách biểu diễn của nó
hỗ trợ nhiều hàm tính khoảng cách
3.2.2 Phương pháp thích nghi dữ liệu
Cũng giống như phương pháp không thích nghi dữ liệu, thì phương pháp này cũng biểu diễn dữ liệu ban đầu bằng những đường cơ bản Tuy nhiên, những đường này là phụ thuộc vào dữ liệu Mỗi loại dữ liệu khác nhau sẽ có các đường cơ bản khác nhau ( Hình 3.7) Như vậy dễ dàng nhận thấy cách biểu diễn này hiệu quả hơn, nhưng ngược lại thời gian để biến đổi sẽ lớn hơn rất nhiều Một số phương
pháp thích nghi dữ liệu là phân rã trị kỳ dị (Singular Value Decomposition - SVD) [27], xấp xỉ tuyến tính từng đoạn (Piecewise Linear Approximation - PLA ) [14],
Trang 39[20], [22], [30], [32], xấp xỉ hằng số từng đoạn thích nghi (Adaptive Piecewise
Constant Approximation - APCA ) [23]
Hình 3.7 Minh họa cách biến đổi dữ liệu ban đầu theo các phương pháp SVD, APCA, PLA (Từ nguồn [25])
Phương pháp SVD
Phương pháp phân rã trị kỳ dị do F Korn và cộng sự đề nghị [27] Phương pháp SVD cũng giống như phương pháp DFT, DWT Tuy nhiên, đường cơ bản thì phụ thuộc vào dữ liệu Những đường cơ bản này gọi là đường eigenwave Với mỗi
dữ liệu thì ta có giải thuật để xây dựng đường eigenwave Tuy nhiên độ phức tạp của phương pháp SVD là rất cao Và mỗi khi thêm dữ liệu mới vào thì ta phải chạy lại giải thuật Đây là nhược điểm chính mà phương pháp SVD không được sử dụng rộng rãi Ưu điểm lớn nhất của giải thuật này là các đường eigenwave cho phép ta
thấy được hình dạng của dữ liệu
0 20 40 60 80 100 120 0 20 40 60 80 100 120 0 20 40 60 80 100 120
Trang 40Phương pháp APCA:
Phương pháp xấp xỉ hằng số từng đoạn thích nghi do E Keogh và cộng sự
đề nghị [23] Phương pháp APCA giống như phương pháp PAA là xấp xỉ dữ liệu ban đầu thành những đoạn thẳng nằm ngang Tuy nhiên, nó khác với PAA là các đoạn này có kích thước bằng nhau, còn APCA thì kích thước của các đoạn nằm
ngang là khác nhau Tuy nhiên phương pháp này rất ít được sử dụng
Phương pháp PLA:
Phương pháp xấp xỉ tuyến tính từng đoạn do E Keogh và cộng sự đề nghị
[19] Trong phương pháp này ta sẽ biểu diễn dữ liệu ban đầu bằng chuỗi các đoạn thẳng tuyến tính Các đoạn thẳng này có thể rời nhau hoặc liên tục Cách biểu diễn này rất trực quan và nó phù hợp để nén tất cả các loại dữ liệu chuỗi thời gian Hơn thế nữa, việc tìm các chuỗi đoạn thẳng này có thể thực hiện trong thời gian tuyến tính và ta có thể áp dụng rộng rãi nhiều cách tính khoảng cách khác nhau như là phép truy vấn mờ hay có thể thay đổi theo yêu cầu của người dùng…
Nhược điểm lớn nhất là chưa có phép lập chỉ mục hiệu quả cho cách biểu diễn này Tuy nhiên, với các biểu biễn tuyến tính thì việc tìm kiếm cũng thực hiện rất nhanh chóng
3.3 Các phương pháp rời rạc hóa dữ liệu
Trong phương pháp rời rạc hóa thì từ dữ liệu ban đầu, ta sẽ chia thành
những đoạn dữ liệu nhỏ hơn Quá trình chia thành những đoạn nhỏ này được gọi là
quá trình rời rạc hóa Sau đó, tương ứng với mỗi đoạn nhỏ này ta sẽ mã hóa chúng
bởi những đặc trưng của đoạn Tập hợp những đặc trưng của những đoạn nhỏ này
sẽ biểu diễn cho dữ liệu ban đầu
Khác với những phương pháp trước thì độ tương tự được tính dựa trên khoảng cách Trong phương pháp này, độ tương tự được tính dựa trên những đặc
trưng (feature) Phương pháp rời rạc hóa thành chuỗi bit (bitstring) do E Keogh và cộng sự đề nghị [20] là một trong những phương pháp rời rạc hóa đặc trưng đầu tiên của phương pháp này Trong phương pháp rời rạc hóa thành chuỗi bit, thì từ