Tuy nhiên độ đo này có một số nhược điểm như độ chính xác chưa cao khi áp dụng trên một số loại dữ liệu chuỗi thời gian và chưa hỗ trợ tốt cho các cấu trúc chỉ mục như R*-Tree, M-Tree… Đ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
NGÔ THẢO CHƯƠNG
TÌM KIẾM MÔ TÍP TRÊN DỮ LIỆU CHUỖI THỜI
GIAN VỚI ĐỘ ĐO XOẮN THỜI GIAN ĐỘNG DỰA VÀO
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM – ĐHQG - HCM
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: TS Võ Thị Ngọc Châu
Cán bộ chấm nhận xét 2: PGS.TS Đỗ Phúc
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 17 tháng 07 năm 2017 Thành phần Hội Đồng đánh giá luận văn thạc sĩ gồm: 1 TS Bùi Hoài Thắng
2 TS Trần Tuấn Anh
3 TS Võ Thị Ngọc Châu
4 PGS.TS Đỗ Phúc
5 TS Dương Ngọc Hiếu
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA…………
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Ngô Thảo Chương MSHV: 13070224
Ngày, tháng, năm sinh: 11/11/1987 Nơi sinh: TP.HCM Chuyên ngành: Khoa Học Máy Tính Mã số : 60.48.01
I TÊN ĐỀ TÀI:
TÌM KIẾM MÔ TÍP TRÊN DỮ LIỆU CHUỖI THỜI GIAN VỚI ĐỘ ĐO XOẮN THỜI GIAN ĐỘNG DỰA VÀO CẤU TRUC CHỈ MỤC TS-TREE II NHIỆM VỤ VÀ NỘI DUNG:
III NGÀY GIAO NHIỆM VỤ : (Ghi theo trong QĐ giao đề tài)
IV NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài)
V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên):
PGS.TS Dương Tuấn Anh
Tp HCM, ngày tháng năm 2017 CÁN BỘ HƯỚNG DẪN (Họ tên và chữ ký) CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) PGS.TS Dương Tuấn Anh TRƯỞNG KHOA….………
(Họ tên và chữ ký)
Trang 4LỜI CẢM ƠN
Lời nói đầu tiên, chúng tôi xin gửi lòng tri ân sâu sắc cùng lời cảm ơn chân thành đến PGS.TS Dương Tuấn Anh, người Thầy đã hết lòng giúp đỡ và tạo điều kiện cho chúng tôi hoàn thành tốt đề tài tốt nghiệp này bằng sự hướng dẫn, định hướng hết sức tận tình, chu đáo
Kế đến, chúng con xin dành tặng thành quả lao động này đến Cha Mẹ và những người thân trong gia đình, Người đã luôn giáo dục, động viên, khuyến khích chúng con biết phấn đấu vươn lên trong cuộc sống và đã tạo mọi điều kiện bằng sự hy sinh cao cả của mình để trao cho chúng con cơ hội bước chân vào giảng đường Đại học
- môi trường mà chúng con có thể tiếp cận những chân trời kiến thức mới và tự rèn giũa để hoàn thiện bản thân mình
Kết lời, chúng con xin gửi lời kính chúc sức khỏe đến Thầy Dương Tuấn Anh cùng Đấng Sinh Thành Chúng con cam kết với Thầy và Cha Mẹ rằng sẽ tiếp tục tự
ý thức hơn nữa để trở thành những công dân sống tốt trong xã hội
Trang 5TÓM TẮT LUẬN VĂN
Dữ liệu chuỗi thời gian hiện nay đóng vai trò quan trọng 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ế, tài chính Có rất nhiều bài toán liên quan đến quá trình khai phá dữ liệu chuỗi thời gian như: gom cụm, phân lớp, dự báo v.v… Để giải quyết các bài toán đó thì chúng ta phải thực hiện công việc tìm kiếm motif trên dữ liệu chuỗi thời gian và đây cũng là một bài toán cực kỳ quan trọng và được nhiều nhà nghiên cứu quan tâm
Một trong những bài toán phải giải quyết khi tìm kiếm motif trên dữ liệu chuỗi thời gian là chúng ta phải tính toán khoảng cách giữa các chuỗi dữ liệu thời gian Độ đo khoảng cách Euclid là một trong những độ đo được sử dụng rộng rãi trong nhiều công trình nghiên cứu Tuy nhiên độ đo này có một số nhược điểm như
độ chính xác chưa cao khi áp dụng trên một số loại dữ liệu chuỗi thời gian và chưa
hỗ trợ tốt cho các cấu trúc chỉ mục như R*-Tree, M-Tree…
Để khắc phục cả hai vấn đề trên trong các cấu trúc chỉ mục dữ liệu chuỗi thời gian thì cấu trúc chỉ mục TS-Tree và độ đo xoắn thời gian động được nghiên cứu như là một biện pháp tốt nhất để có thể tăng tốc tìm kiếm và cũng như đem lại độ chính xác cao hơn khi tìm kiếm motif trên dữ liệu chuỗi thời gian Đề tài này tập trung nghiên cứu công việc tìm kiếm motif trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian động dựa vào cấu trúc chỉ mục TS-Tree Sự hiệu quả của nó được chứng minh qua sự so sánh với giải thuật tìm kiếm motif chân phương
Trang 6One of the problems that must be considered in finding motifs on time series data is the distance computation between time series data Euclidean distance is one
of the measurements that is used widely used in many studies However, this measure has some disadvantages One of them is low accuracy and not suitable for some kinds of time series data, such as multimedia data
In order to overcome both of these problems, in the indexing data structures, the TS-Tree index structure and dynamic time wrapping distance were investigated
as the best way to accelerate the searching and also bring more precision in finding motifs on time series This thesis focuses on the finding motifs in time series under dynamic time wrapping distance based on the TS-Tree index structure Its efficiency and effectiveness are demonstrated by its comparison with the Brute Force algorithm
Trang 7LỜI CAM ĐOAN
Chúng 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 chúng 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 tháng năm 2017
Ngô Thảo Chương
Trang 8Mục lục
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 1
1.1 Giới thiệu đề tài 1
1.2 Mục tiêu của đề tài 2
1.3 Giới hạn của đề tài 2
1.4 Tóm lược những kết quả thu được 3
1.5 Cấu trúc luận văn 3
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 4
2.1 Dữ liệu chuỗi thời gian 4
2.2 Độ đo xoắn thời gian động (Dynamic Time Warping - DTW) 4
2.2.1 Chặn dưới cho khoảng cách DTW 8
2.2.2 Mở rộng chặn dưới cho độ đo xoắn thời gian động với PAA 9
2.2.3 Ký hiệu hóa chuỗi thời gian 10
2.3 Giới thiệu bài toán tìm kiếm tương tự 12
2.4 Phát hiện motif trên dữ liệu chuỗi thời gian 13
2.4.1 Khái niệm motif dữ liệu chuỗi thời gian 13
2.4.2 Một số khái niệm liên quan đến motif 13
CHƯƠNG III: CÁC CÔNG TRÌNH LIÊN QUAN 16
3.1 Giải thuật tìm kiếm chân phương (Brute Force) 16
3.2 Giải thuật chiếu ngẫu nhiên 17
3.3 Tổng quan về cây R*-Tree 19
3.3.1 Thao tác chèn thêm phần tử mới 20
3.3.2 Thao tác xóa phần tử 23
3.4 Cấu trúc chỉ mục TS-Tree 24
3.4.1 Các thành phần phân tách(Separators) 24
3.4.2 Sự rời rạc hóa 25
3.4.3 Thông tin mô tả trong cây TS-Tree 26
3.4.4 Các thao tác chèn phần tử trong cây TS-Tree 27
3.4.5 Thao tác xóa phần tử trong cây TS-Tree 28
3.4.6 Thao tác tìm kiếm trong TS-Tree 29
Trang 93.5 Cấu trúc chỉ mục TS-Tree làm việc với độ đo DTW 30
3.5.1 Tính khoảng cách tới MD (metadata) – MD Mindist 32
3.5.2 Khoảng cách ngắn nhất từ Q tới thành phần trong nút 32
CHƯƠNG IV : PHƯƠNG HƯỚNG GIẢI QUYẾT VẤN ĐỀ 34
4.1 Đề xuất giải thuật tìm kiếm Brute force trên cấu trúc chỉ mục TS-Tree 34
4.2 Mô hình thực hiện phương pháp 36
4.2.1 Tìm kiếm motif bằng phương pháp Brute Force 36
4.2.2 Tìm kiếm motif bằng phương pháp Brute Force trên cấu trúc chỉ mục TS-Tree 37
CHƯƠNG V: THỰC NGHIỆM 39
5.1 Thông tin về các bộ dữ liệu thực nghiệm 39
5.2 Thực nghiệm với các bộ dữ liệu nhỏ hơn 10.000 điểm 40
5.2.1 Dữ liệu Small Power Italia 40
5.2.2 Dữ liệu Small ECG (Điện tâm đồ) 42
5.2.3 Dữ liệu Small Power 45
5.2.4 Dữ liệu Small EEG (Điện não đồ) 47
5.2.5 Dữ liệu Memory 50
5.2.6 Dữ liệu TEK17 52
5.3 Thực nghiệm với các bộ dữ liệu lớn hơn 10.000 điểm 54
5.3.1 Dữ liệu Power 54
5.3.2 Dữ liệu ECG 57
5.3.3 Dữ liệu Power Italia 59
5.4 Bảng tổng kết và nhận xét các kết quả thực nghiệm 62
CHƯƠNG VI: KẾT LUẬN 66
6.1 Tổng kết 66
6.2 Những đóng góp của đề tài 66
6.3 Hướng phát triển của đề tài 67
DANH MỤC TÀI LIỆU THAM KHẢO 68
Trang 10DANH MỤC HÌNH ẢNH Hình 2-1 Độ đo Euclid và độ đo xoắn thời gian động (Nguồn [3]) 5
Hình 2-2: Hai mẫu dữ liệu chuỗi thời gian Q và C (Nguồn [3]) 5 Hình 2-3: Độ đo xoắn thời gian động giữa hai mẫu dữ liệu chuỗi thời gian Q và C
(Nguồn [3]) 6
Hình 2-4: Ma trận xoắn ( nguồn [3] ) 6 Hình 2-5: Hai ràng buộc toàn cục của dải Sakoe-Chiba và hình bình hành Itakura
11
Hình 2-12 Bảng tra cứu cho hàm dist() 12
Hình 2-13 Hình ảnh dữ liệu chuỗi thời gian về thiên văn học có chứa đựng 3 chuỗi
con tương đồng nhau (Trên) Phóng to về 3 mẫu A B C tương đồng nhau (Dưới) (Nguồn [1]) 13
Hình 2-14 Một chuỗi con M trùng khớp với chuỗi con C trên chuỗi thời gian T
Hình 3-1: Minh họa việc xây dựng ma trận 𝑺 với a=3, w=4 và n=16 17
Hình 3-2: Trái) {1,2} được chọn ngẫu nhiên Phải) tăng giá trị của các ô tương ứng
1 đơn vị 18
Hình 3-3: Trái) Cột {2,4} được chọn Phải) Tăng giá trị của vị trí tương ứng [2] 19 Hình 3-5 Các hình chữ nhật bao phủ nhỏ nhất (Nguồn [7]) 19
Trang 11Hình 3-6 Cấu trúc chỉ mục R-Tree (Nguồn [7]) 20
Hình 3-7 Quá trình Chèn thêm phần tử mới vào cây R*-Tree (Nguồn [4]) 21
Hình 3-8a Các đối tượng dữ liệu trong không gian (Nguồn [4]) 21
Hình 3-8b Cây R*- Tree được xây dựng dựa trên dữ liệu ở hình 1.4a (Nguồn [4]) 22
Hình 3-9 Hai phương thức tách nút (Nguồn [4]) 22
Hình 3-10 Quá trình xóa nút ra khỏi cây R*-Tree (Nguồn [4]) 23
Hình 3-11 Cho ta thấy hình ảnh các thành phần phân tách của một nút trong cây (Nguồn [9]) 25
Hình 3-12 Sự rời rạc hóa trong nút cây TS-Tree (Nguồn [4]) 26
Hình 3-13 Thông tin mô tả trong một nút cây (Nguồn [4]) 26
Hình 3-14 Cấu trúc một nút trong cây TS-Tree (Nguồn [9]) 27
Hình 3-15 Miêu các bước trong quá trình thêm nút mới (Nguồn [4]) 28
Hình 3-16 Xóa phần tử S trên cây (Nguồn [4]) 28
Hình 3-17 Quá trình tìm kiếm phần tử trong cây (Nguồn 4) 29
Hình 3-18 Tính toán S l-Mindist, Sr-Mindist, MD-Mindist từ đối tượng Q tới phần tử trong nút (Nguồn [4]) 31
Hình 3-19 MD-Mindist Khoảng cách ngắn nhất từ Q tới thông tin mô tả 32
Hình 3-20 Khoảng cách ngắn nhất từ Q tới thành phần phân tách trái và phải (nguồn [9]) 32
Hình 4-1: Mô tả quá trình tìm kiếm trong cây TS-Tree 35
Hình 4-2: Mô hình phương pháp tìm kiếm Brute Force 36
Hình 4-3 : Mô hình tìm kiếm motif trên cấu trúc chỉ mục TS-Tree 37
Hình 4-4: Nút R1, R2, R3, R4, R5, R6 thỏa mãn điều kiện tìm kiếm 38
Hình 4-5: Nút R1, R3, R4 thỏa mãn điều kiện tìm kiếm 38
Hình 5-1: Dữ liệu Small Power Italia có kích thước 7.000 điểm 40
Hình 5-2: Motif tìm thấy bởi giải thuật BF_DTW với bộ dữ liệu Small Power Italia 41
Hình 5-4: Dữ liệu Small ECG có kích thước 7.900 điểm 43
Hình 5-5: Motif tìm thấy bởi giải thuật BF_DTW trong bộ dữ liệu Small ECG46 43
Trang 12Hình 5-6: Motif tìm thấy bởi giải thuật BF_DTW trong bộ dữ liệu Small ECG 44
Hình 5-7: Dữ liệu Small Power có kích thước 7.000 điểm 45 Hình 5-8: Motif tìm thấy bởi giải thuật BF_DTW trong bộ dữ liệu Small Power 46 Hình 5-9: Motif tìm thấy với giải thuật BF_DTW_TStree trong bộ dữ liệu Small
Power 47
Hình 5-10: Dữ liệu EEG có kích thước 7.000 điểm 48 Hình 5-11: Motif tìm thấy bởi giải thuật BF_DTW trong bộ dữ liệu Small EEG 48 Hình 5-12: Motif tìm thấy với giải thuật BF_DTW_TStree trong bộ dữ liệu Small
EEG 49
Hình 5-13: Dữ liệu Memory có kích thước 6.872 điểm 50 Hình 5-14: Motif tìm thấy với giải thuật BF_DTW trong bộ dữ liệu Memory 51 Hình 5-15: Motif tìm thấy với giải thuật BF_DTW_TStree trong bộ dữ liệu Memory
52
Hình 5-16: Dữ liệu TEK17 có kích thước 5.000 điểm 52 Hình 5-17: Motif tìm thấy với giải thuật BF_DTW trong bộ dữ liệu TEK17 53 Hình 5-18: Motif tìm thấy với giải thuật BF_DTW_TStree trong bộ dữ liệu TEK17
54
Hình 5-19: Dữ liệu Power có kích thước 25.000 điểm 55 Hình 5-20: Motif tìm thấy với giải thuật BF_DTW trong bộ dữ liệu Power 55 Hình 5-21: Motif tìm thấy với giải thuật BF_DTW_TStree trong bộ dữ liệu Power
56
Hình 5-22: Dữ liệu ECG có kích thước 25.000 điểm 57 Hình 5-23: Motif tìm thấy với giải thuật BF_DTW trong bộ dữ liệu ECG 58 Hình 5-24: Motif tìm thấy với giải thuật BF_DTW_TStree trong bộ dữ liệu ECG
Trang 13DANH MỤC BẢNG
Bảng 3.1 Bảng mô tả về các bước hiện thực giải thuật find 1-motif brute force 16 Bảng 4.1: Giải thuật Find 1-motif brute force_TStree 34 Bảng 5.1: Bảng tổng kết về số thể hiện motif và thời gian thực thi trên các tập dữ
liệu nhỏ hơn 10.000 điểm 62
Bảng 5.2: So sánh thời gian thực hiện trên các tập dữ liệu 63 Bảng 5.3: Bảng tổng kết về số thể hiện motif và thời gian thực thi trên các tập dữ
liệu lớn hơn 10.000 điểm 64
Bảng 5.4: Bảng so sánh thời gian chạy của hai giải thuật trên các tập dữ liệu đã thực
nghiệm 65
Trang 14CHƯƠNG I:
GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu đề tài
Trong thời đại ngày nay việc phát triển khoa học và công nghệ đang diễn ra một cách mạnh mẽ, trong đó lĩnh vực công nghệ thông tin là một trong những lĩnh vực phát triển nhất của xã hội Con người ngày càng muốn số hóa mọi thứ xung quanh mình để
có thể mang lại nhiều tiện ích phục vụ cho cuộc sống Tất cả các dữ liệu từ các lĩnh vực khác nhau như tài chính, sinh học, âm nhạc, phim ảnh, y khoa, hóa học, vật lý, v.v…
đều được số hóa và lưu trữ trên các hệ thống máy tính Dữ liệu chuỗi thời gian (time
series data) ngày càng đóng một vai trò quan trọng trong đời sống của con người nên được sự quan tâm của các nhà khoa học đầu trên thế giới
Cùng với sự bùng nổ của dữ liệu hiện nay, việc khai phá dữ liệu đã và đang là mối quan tâm rất lớn của các nhà khoa học máy tính Rất nhiều giải thuật khai phá dữ liệu
đã được ứng dụng vào các chương trình máy tính phục vụ nhu cầu của con người Bên cạnh đó nhiều giải thuật khai phá dữ liệu cũng đã được ứng dụng trên dữ liệu chuỗi thời
gian để giải quyết nhiều bài toán khác nhau, trong đó bài toán tìm kiếm mô típ (motif)
trên chuỗi thời gian với thời gian ngắn và chính xác là một trong thách thức mà các nhà khoa học đang phải giải quyết
Hiện nay có rất nhiều cấu trúc chỉ mục (index structure) được các nhà khoa học đề
xuất để lưu trữ dữ liệu chuỗi thời gian như A-tree, M-tree, R*-tree, TS-tree… nhằm tăng tốc quá trình truy xuất dữ liệu Các cấu trúc chỉ mục A-tree, M-tree, R*-tree hoạt động với dữ liệu ít chiều (dưới 20 chiều) và hỗ trợ độ đo phổ biến Euclid Dữ liệu chuỗi thời gian là dữ liệu nhiều chiều và độ đo Euclid cũng bộc lộ nhiều khuyến điểm khi tính toán khoảng cách giữa 2 mẫu dữ liệu chuỗi thời gian Hiện tại đã có nghiên cứu áp dụng
việc lưu trữ dữ liệu chuỗi thời gian bằng cấu trúc chỉ mục TS-Tree kết hợp với độ đo xoắn thời gian động (Dynamic Time Warping - DTW) và cũng đã đạt được một số kết
quả cho thấy sự hiệu quả nhất định
Để giải quyết bài toán tìm motif trên dữ liệu chuỗi thời gian không chỉ đòi hỏi một cấu trúc chỉ mục hỗ trợ tốt quá trình tìm kiếm mà còn đòi hỏi phải có các giải thuật tìm kiếm hiệu quả để cho ra kết quả chính xác trong thời gian ngắn nhất Với một số kết quả khả quan từ đề tài nghiên cứu lưu trữ dữ liệu chuỗi thời gian dựa trên cấu trúc chỉ mục
Trang 15TS-Tree với độ đo DTW thì đề tài này tiếp tục nghiên cứu vấn đề phát hiện motif trên
dữ liệu chuỗi thời gian với độ đo xoắn thời gian động dựa vào cấu trúc chỉ mục TS-Tree
1.2 Mục tiêu của đề tài
Như đã nói ở trên mục tiêu chính của đề tài là giải quyết bài toán tìm kiếm motif trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian động dựa vào sự hỗ trợ của cấu trúc chỉ mục TS-Tree Để thực hiện mục tiêu tổng quát đã đề ra, cần thực hiện từng bước những mục tiêu nhỏ như sau:
Khảo sát độ đo xoắn thời gian động và cấu trúc chỉ mục TS-tree
Khảo sát một số nghiên cứu cải tiến độ đo xoắn thời gian động
Nghiên cứu một số giải thuật phát hiện trên dữ liệu chuỗi thời gian
Đề xuất giải thuật phát hiện motif trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian động dựa vào cấu trúc chỉ mục TS-Tree
Kiểm tra độ hữu hiệu của giải thuật đề xuất bằng cách thử nghiệm một số bộ
dữ liệu chuỗi thời gian mẫu
Đánh giá, báo cáo kết quả
Phương pháp nghiên cứu của đề tài là dựa trên kết quả thực nghiệm Trước tiên sẽ khảo sát về cấu trúc chỉ mục TS-tree và độ đo xoắn thời gian động để tìm hiểu về những điểm mạnh cũng như những hạn chế của cấu trúc chỉ mục này Sau đó đề xuất và hiện thực một giải thuật tìm kiếm motif trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian đông dựa vào sự hỗ trợ của cấu trúc chỉ mục TS-Tree Để kiểm tra độ hiểu quả của giải thuật đề xuất chúng tôi đưa dữ liệu vào chạy thực tế và so sánh kết quả với phương pháp
tìm kiếm motif bằng giải thuật tìm kiếm chân phương (Brute Force)
Bên cạnh mục tiêu trước mắt là dùng giải thuật đã nêu trên để giải quyết bài toán tìm motif đề tài còn là tiền đề để một số nghiên cứu kế tiếp tìm ra một số giải thuật mới hiệu quả hơn nhằm giải quyết bài toán tìm motif một cách hiệu quả nhất Đây là một mục tiêu cần thiết cho nhu cầu khai phá dữ liệu chuỗi thời gian nhưng sẽ đòi hỏi một thời gian nghiên cứu lâu dài hơn
1.3 Giới hạn của đề tài
Do thời gian có hạn, nên phạm vi nghiên cứu của đề tài trước mắt tập trung vào việc quyết bài toán tìm kiếm motif trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian động dựa vào cấu trúc chỉ mục TS-tree
Trang 16Do hạn chế về thời gian và vấn đề khó khăn trong việc tiếp cận dữ liệu chuỗi thời gian trong thực tế Ở đây, dữ liệu được sử dụng là các bộ dữ liệu mẫu được dùng trong cộng đồng các nhà nghiên cứu về dữ liệu chuỗi thời gian Dữ liệu chuỗi thời gian được ứng dụng trong nhiều lĩnh vực khác nhau, do đó chúng có sự khác nhau về hình dáng cũng như kích thước Công việc kiểm tra độ hiệu quả của giải thuật tìm kiếm motif chỉ được thể hiện thông qua các bộ dữ liệu mẫu đại diện cho một số lãnh vực khác nhau
1.4 Tóm lược những kết quả thu được
Với việc tập trung vào mục đích chính của luận văn trong suốt quá trình thực hiện và qua thử nghiệm trên một số tập dữ liệu mẫu chúng tôi thấy được ưu điểm của phương pháp tìm kiếm motif dựa vào cấu trúc chỉ mục TS-Tree với độ đo xoắn thời gian động
có những ưu điểm như sau:
+ Thời gian đáp ứng nhanh hơn so với phương pháp tìm kiếm Brute Force
+ Thích nghi được với các chuỗi dữ liệu lớn
+ Thời gian tìm kiếm không phụ thuộc vào sự thay đổi kích thước của chuỗi con
1.5 Cấu trúc luận văn
Chương I: chương này giới thiệu tổng quan và tại sao lại chọn đề tài, mục tiêu, giới
hạn và tóm lược các kết quả thu được
Chương II: trình bày cơ sở lý thuyết liên quan cần tìm hiểu bao gồm độ đo xoắn
thời gian động, các phương pháp thu giảm kích thước của dữ liệu chuỗi thời gian, bài toán tìm kiếm tương tự, khái niệm motif trên dữ liệu chuỗi thời gian
Chương III: trong chương này tập trung khảo sát các công trình liên quan đến luận
văn bao gồm: phương pháp tìm kiếm motif dựa vào giải thuật tìm kiếm chân phương
(Brute Force), phương pháp tìm kiếm motif dựa vào giải thuật chiếu ngẫu nhiên, cấu trúc chỉ mục R*-Tree, cấu trúc chỉ mục TS-Tree
Chương IV: Trình bày cấu trúc chỉ mục TS-Tree làm việc với độ đo xoắn thời gian
động Đề xuất giải thuật tìm kiếm motif trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian động dựa vào cấu trúc chỉ mục TS-Tree
Chương V: tiến hành đưa dữ liệu vào thực nghiệm trên giải thuật đề xuất và giải
thuật tìm kiếm chân phương sau đó so sánh kết quả và đưa ra một số nhận xét về kết quả thu được
Chương VI: Chúng tôi đưa ra một số kết luận sau khi thực hiện đề tài
Trang 17CHƯƠNG II:
CƠ SỞ LÝ THUYẾT
Trong chương này sẽ trình bày những kiến thức liên quan đến bài toán tìm kiếm motif trên dữ liệu chuỗi thời gian Chúng tôi sẽ trình bày khái niệm về dữ liệu chuỗi thời gian, độ đo xoắn thời gian động, khái niệm về bài toán tìm kiếm tương tự trên dữ liệu
chuỗi thời gian và khái niệm về motif
2.1 Dữ liệu chuỗi thời gian
Chuỗi thời gian là một chuỗi trị số thực, mỗi trị biểu diễn một giá trị một giá trị đo tại những thời điểm cách đều nhau Có thể xem chuỗi thời gian là một tập hợp chuỗi dữ
liệu 2 chiều (T,X) Trong đó T là tập thời điểm xác định T= (t1, t2… ) với ti thuộc R, còn
X là tập hợp giá trị quan sát được tại từng thời điểm thuộc tập T đó Với những giá trị quan sát thu nhận được tại những khoảng thời gian bằng nhau thì ta có được n giá trị
quan sát trong khoảng thời gian đó thì chuỗi có thể được xem là dữ liệu trong không
2.2 Độ đo xoắn thời gian động (Dynamic Time Warping - DTW)
Độ đo xoắn thời gian động được Berndt và Clifford giới thiệu vào năm 1994 [10] trong công trình nghiên cứu về độ đo DTW(xoắn thời gian động) trong cơ sở dữ liệu
Độ đo DTW hiệu quả hơn độ đo Euclid trong việc tính toán khoảng cách giữa 2 mẫu dữ liệu chuỗi thời gian Trên thực tế có những mẫu dữ liệu chuỗi thời gian giống nhau nhưng khi tính toán bằng độ đo Euclid thì lại cho kết quả khác xa nhau Chính vì thế nên độ đo Euclid thường cho ra kết quả tính toán kém chính xác hơn so với độ đo xoắn thời gian động đối với các dữ liệu nhiều chiều
Bên cạnh đó có rất nhiều công trình nghiên cứu ứng dụng độ đo xoắn thời gian động vào trong các thực tế như: công trình nghiên cứu của Gavrila và Davis năm 1995 trong ngành sinh trắc học, Munich và Perona năm 1999 trong ngành chữ ký điện tử, Kovacs
và Vajna năm 2000 trong dữ liệu vân tay Tuy nhiên độ đo xoắn thời gian động có một nhược điểm là thời gian tính toán không được nhanh
Trang 18Trước khi tìm hiểu về độ đo khoảng cách DTW chúng ta sẽ nói sơ qua về độ đo
khoảng cách Euclid Giả sử chúng ta có 2 chuỗi thời gian Q = Q1, Q2,…., Qn và C = C1, C2, …, Cn Độ đo khoảng cách Euclid được xác định bằng công thức sau:
Độ do Euclid có ưu điểm là dễ hiểu, dễ tính toán nhưng độ đo này không làm việc
tốt trên dữ liệu nhiễu, dữ liệu chuỗi thời gian liên quan đến lĩnh vực đa phương tiện
(multimedia) Hình 2-1 dưới đây mô tả sự khác nhau giữa hai độ đo Euclid và độ đo DTW
Hình 2-1 Độ đo Euclid và độ đo xoắn thời gian động (Nguồn [3]) 1
Giả sử ta có 2 chuỗi thời gian Q và C có chiều dài lần lượt là n và m với Q = Q1, Q2, Q3, … , Qn và C = C1, C2, C3, … , Cm theo hình 2-2 và độ đo xoắn thời gian động
Trang 19Hình 2-3: Độ đo xoắn thời gian động giữa hai mẫu dữ liệu chuỗi thời gian Q và C
(Nguồn [3])3
Để tính toán độ đo xoắn thời gian động giữa hai chuỗi trên, ta xây dựng một ma trận
có kích thước n*m với n là số hàng của ma trận và m là số cột của ma trận Trong đó phần tử (i th ,j th ) của ma trận chứa khoảng cách d(qi,cj) giữa hai điểm qi, cj trên 2 chuỗi dữ liệu Q và C
Trong đó d(qi, cj) được tính toán như sau:
Trang 20Có rất nhiều đường xoắn thỏa mãn các điều kiện trên nhưng chúng ta chỉ quan tâm đến đường xoắn có chi phí tối thiểu:
Độ phức tạp của giải thuật khi tính toán độ đo khoảng cách DTW là O(m*n) Do
phải tính toán trên toàn bộ tập ma trận nên thời gian tính toán của độ đo DTW là khá cao
Đối với việc tính toán độ đo xoắn thời gian động chúng ta có một số ràng buộc sau:
- Điều kiện biên: w1 = (1,1) và wk = (m,n) ràng buộc này yêu cầu đường xoắn
phải bắt đầu và kết thúc ở hai góc đối diện của ma trận
- Tính liên tục: wk = (a,b) thì wk-1 = (a',b') trong đó a-a' ≤ 1 và b-b' ≤ 1 Ràng
buộc này yêu cầu đường xoắn phải di chuyển giữa những ô liền kề (kể cả những ô liền kề theo đường chéo)
- Tính đơn điệu tăng: wk = (a,b) thì wk-1 = (a',b'), với a-a' ≥ 0 và
b-b' ≥ 0 Ràng buộc này yêu cầu các điểm trong đường xoắn W phải có tính
đơn điệu tăng theo thời gian
Như đã đề cập ở trên việc tính toán trên toàn bộ ma trận nhằm tìm ra đường xoắn có chi phí tối thiểu tốn thời gian khá cao Nhằm giảm thiểu chi phí tính toán cũng như hạn chế việc tìm ra những đường xoắn không phù hợp, công trình nghiên cứu của nhóm tác
giả Sakoe-Chiba, tác giả Itakura [11] đã đề xuất ra những ràng buộc toàn cục (global
constraints) để tăng tốc thời gian tính toán của độ đo xoắn thời gian động như hình 2-5
Hình 2-5: Hai ràng buộc toàn cục của dải Sakoe-Chiba và hình bình hành Itakura
(Nguồn[3])
Trang 212.2.1 Chặn dưới cho khoảng cách DTW
Mặc dù độ đo xoắn thời gian động cho kết quả tính toán chính xác nhưng lại gây ra chi phí tính toán cao Để giải quyết vấn đề trên Keogh [3] đã đề xuất chỉ tính toán khoảng cách chặn dưới để giảm thiểu chi phí tính toán
Ta định nghĩa chặn dưới (L) và chặn trên (U) của chuỗi dữ liệu chuỗi thời gian như sau: Ui = max (qi-r : qi+r), Li = min (qi-r: qi+r)
Trong đó chỉ số r được định nghĩa tùy theo mô hình hoặc xem như là khoảng trong của độ đo xoắn thời gian động Với Wk = (i,j) ta có j-r ≤ i ≤ j+r
Ta có mô hình chặn trên và chặn dưới theo Sakoe-Chiba, Itakura như hình 2-6
Đối với dải Sakoe-Chiba, r không phụ
0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
𝑛
Theo hình 2-7 ta có tổng bình phương khoảng cách từ mỗi phần của chuỗi thời gian
C không nằm trong lớp bao giữa U và L tới các cạnh trực giao gần nhất của lớp bao để
thu được khoảng cách chặn dưới Keogh
Hình 2-7 Khoảng cách LB_Keogh trong 2 mô hình Sakoe-Chiba(A) và Itakura(B)
(Nguồn [3])7
Trang 222.2.2 Mở rộng chặn dưới cho độ đo xoắn thời gian động với PAA
Để giảm thiểu chi phí tính toán của độ đo xoắn thời gian động ta đã có cải tiến bằng cách tính toán theo cận trên và cận dưới Ngoài ra chúng ta có thể tiếp tục cải tiến giải thuật xoắn thời gian động bằng việc thu giảm chiều trong chuỗi dữ liệu thời gian cần tính toán bằng một số phương pháp như Fourier Transforms [14], Wavelets [15],
Piecewise Aggregate Approximation (PAA)[16] Trong đó Phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation - PAA) được Keogh và các đồng sự đề
nghị năm 2000 Phương pháp được lựa chọn vì cách tính toán rất đơn giản, chúng ta có
thể tuần tự xấp xỉ k giá trị liền kề nhau thành cùng một giá trị trung bình bình cộng của
k điểm đó
Giả sử chúng ta có một chuỗi thời gian có chiều dài n được biến đổi thành về chuỗi
thời gian khác có số chiều ít hơn N ( với 1 ≤ N ≤ n) có dạng 𝐶̅ = 𝑐̅1, 𝑐̅2, , 𝑐̅N Phần tử thứ i được tính toán theo công thức 2.4:
Hình 2-8 Phương pháp xấp xỉ gộp từng đoạn PAA (Nguồn [3]) 8
Từ phương pháp PAA thì chúng ta sẽ có cận trên (𝑈 ̂) và cận dưới (𝐿̂) mới như
hình 2-9:
Trang 23Hình 2-9 Cận trên và cận dưới sau khi xấp xỉ gộp từng đoạn PAA (Nguồn [3]) 9
Ta tiếp tục định nghĩa hàm chặn dưới LB_PAA để tính khoảng cách giữa 2 dữ liệu chuỗi thời gian theo công thức 2.5:
𝐿𝐵_𝑃𝐴𝐴(𝑄, 𝐶̅) = √∑𝑛
𝑁{
(𝑐̅𝑖− 𝑈̂𝑖)2𝑖𝑓 𝑐̅ > 𝑈̂𝑖(𝑐̅𝑖− 𝐿̂𝑖)2𝑖𝑓 𝑐𝑖 < 𝐿̂𝑖
MINDIST(Q,R)= √∑ 𝑛
𝑁{
(𝑙𝑖 − 𝑈̂𝑖)2𝑖𝑓 𝑙 > 𝑈̂𝑖(ℎ𝑖− 𝐿̂𝑖)2𝑖𝑓 ℎ𝑖 < 𝐿̂𝑖
0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
𝑛
Trong công thức trên R mang ý nghĩa là hình chữ nhật bao phủ nhỏ nhất của chuỗi
dữ liệu thời gian sau khi biến đổi PAA
2.2.3 Ký hiệu hóa chuỗi thời gian
Trong một công trình nghiên cứu năm 2003 của mình Lin, Keogh và các cộng sự đã
đề xuất một phương pháp rời rạc hóa có tên là xấp xỉ gộp ký hiệu hóa (symbolic aggregate approximation - SAX) dựa trên phương pháp thu giảm số chiều PAA và giả
sử dữ liệu thu giảm số chiều đã được chuẩn hóa SAX là quá trình ánh xạ biểu diễn PAA
của chuỗi thời gian thành một chuỗi ký tự rời rạc Gọi a là kích thước của bộ ký hiệu
mà được dùng để rời rạc hóa chuỗi thời gian Để ký hiệu hóa chuỗi thời gian ta phải tìm thấy các trị (điểm ngắt ) sau đây: 𝛽1, 𝛽2, , 𝛽a-1 với 𝛽1< 𝛽2< < 𝛽a-1 [19][5]
Trang 24Điểm ngắt (Breakpoints): các điểm ngắt là một danh sách các con số được sắp xếp
𝛽 = 𝛽1, , 𝛽a-1 Danh sách các điểm ngắt này chịu ảnh hưởng của bảng phân bố Gauss N(0,1) và từ 𝛽1 đến 𝛽a-1 = 1/a
Hình 2-10 dưới đây mô tả các điểm ngắt cho các giá trị của a từ 3 đến 6
Hình 2-10 Bảng danh sách các điểm ngắt cho các giá trị10
Sau khi đã áp dụng phương pháp PAA để tạo chuỗi thời gian rời rạc hóa thì ta dùng các điểm ngắt để ánh xạ các hệ số PAA vào các ký tự theo công thức 2.7
Công thức mã hóa chuỗi thời gian 𝑇̅ = 𝑡̅1,𝑡̅2, 𝑡̅n thành ký hiệu ci
Hình vẽ 2-11 mô tả việc ánh xạ các hệ số PAA vào các ký tự 'a', 'b', 'c'
Hình 2-11 Mô tả ánh xạ chuỗi thời gian thành chuỗi ký tự cbccbaab (Nguồn [2])11
Từ (word): Một chuỗi con C có chiều dài n có thể được viết lại như một từ 𝐶̂ =
𝑐̂1, ,𝑐̂w Với ai đại diện cho phần tử thứ i của một bảng ký tự, ví dụ
a1 = a và a2 = b Sau đó chiếu từ một chuỗi 𝐶̅ tới một từ 𝐶̂ như sau:
𝑐̂i = ai , iff 𝛽j-1 ≤ 𝑐̅𝑖 < 𝛽j
Tuy nhiên khi ta chuyển đổi dữ liệu về dạng ký tự, ta cần định nghĩa hàm MINDIST
để trả về khỏang cách tối thiểu giữa 2 chữ theo dữ liệu ban đầu theo công thức sau
Trang 25
𝑀𝐼𝑁𝐷𝐼𝑆𝑇 (𝑄̂, 𝐶̂) = √𝑛
𝑤√∑𝑤 (𝑑𝑖𝑠𝑡(𝑞̂𝑖, 𝑐̂𝑖))2 𝑖=1 (2.8)
Công thức tính toán khỏang cách tối thiểu giữa 2 từ
Hàm dist() được xây dựng bằng một bảng tra cứu như hình 2-12
Hình 2-12 Bảng tra cứu cho hàm dist() 12
Giá trị trong các ô được tính toán theo công thức
(2.9)
2.3 Giới thiệu bài toán tìm kiếm tương tự
Trong việc khai thác thông tin trên dữ liệu chuỗi thời gian, chúng ta có rất nhiều bài toán khác nhau như gom cụm, phân lớp, tìm motif, phát hiện mẫu bất thường, khai phá luật kết hợp và trực quan hóa dữ liệu Trong đó thì tìm kiếm motif là một trong những bài toán cơ bản của việc khai thác thông tin trên chuỗi dữ liệu thời gian Với mục đích
là tìm kiếm những chuỗi con giống nhau trên mẫu dữ liệu chuỗi thời gian để từ đó chúng
ta có thể dự đoán xu hướng dữ liệu trong tương lai Sau đây là một số ví dụ trong thực
tế
- Nhận dạng những công ty có kiểu mẫu tăng trưởng giống nhau
- Xác định những chứng khoán có giá biến động theo một kiểu cách giống nhau
- Tìm xem một giai điệu nhạc có tương tự với một đoạn nhạc nào trong tập hợp những bản nhạc có bản quyền
- Tìm những tháng trong quá khứ mà lượng mưa giống như tháng vừa rồi Các yêu cầu truy vấn trên dữ liệu chuỗi thời gian có thể chia làm 2 loại:
So trùng toàn bộ: (whole matching) Đối với những truy vấn so trùng toàn bộ thì
chiều dài của chuỗi dữ liệu truy vấn và chiều dai chuỗi dữ liệu ban đầu là bằng nhau
Trang 26Bà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
So trùng chuỗi con: (subsequence matching) Trong trường hợp so trùng chuỗi
con 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
2.4 Phát hiện motif trên dữ liệu chuỗi thời gian
2.4.1 Khái niệm motif dữ liệu chuỗi thời gian
Trên một chuỗi thời gian việc tìm kiếm các mẫu định nghĩa trước là một trong
những bài toán cơ bản cả khai phá dữ liệu chuỗi thời gian Bên cạnh đó việc tìm kiếm những mẫu chưa biết trước và xuất hiện một cách thường xuyên trong chuỗi thời gian cũng là một bài toán được quan tâm rất nhiều và người ta gọi những mẫu đó là motif Hình 2-13 sẽ minh họa chuỗi thời gian có chứa motif
Hình 2-13 Hình ảnh dữ liệu chuỗi thời gian về thiên văn học có chứa đựng 3 chuỗi
con tương đồng nhau (Trên) Phóng to về 3 mẫu A B C tương đồng nhau (Dưới)
(Nguồn [1])13
2.4.2 Một số khái niệm liên quan đến motif
Chuỗi con (Subsequence): Cho một chuỗi thời gian T có chiều dài m, một chuỗi
con C của T có chiều dài n ( n≤m) là một mẫu tiếp nối từ T C = tp, …, tp+n-1 for 1≤ p
≤m –n+1
Trang 27Vì tất cả các chuỗi con có thể một motif tiềm ẩn, bất kỳ thuật toán khai phá motif nào cũng phải tìm ra tất cả chuỗi con, điều này có thể đạt được bằng cách sử dụng cửa
sổ trượt
Cửa sổ trượt (Sliding Window): Một chuỗi thời gian T có chiều dài m, và một
định nghĩa của người dùng về chiều dài của một chuỗi con là n, một ma trận S của tất cả
các chuỗi con có thể được xây dựng bằng cách trượt một cửa sổ có kích thước là n dọc
theo T và đưa chuỗi con Cp vào trong hàng thứ p th của S Kích thước của ma trận S là (m – n+1) theo n
Trùng khớp (Match): Cho một số thực R được gọi là khoảng cách và một chuỗi thời gian T chứa đựng một chuỗi con C bắt đầu từ vị trí p và một chuỗi con M bắt đầu
từ vị trí q D là độ đo khoảng cách giữa C và M Nếu D(C,M) ≤R , thì M được gọi là
trùng khớp với chuỗi con C theo hình 2-14
Hình 2-14 Một chuỗi con M trùng khớp với chuỗi con C trên chuỗi thời gian T
(Nguồn [2])14
Trùng khớp tầm thường (Trivial Match): Cho một chuỗi thời gian T trong đó có
chứa một chuỗi con C bắt đầu từ vị trí p và một chuỗi con trùng khớp M bắt đầu từ vị trí
q Ta gọi chuỗi con M là trùng khớp tầm thường với chuỗi con C nếu như p = q và không tồn tại một chuỗi con M’ nào bắt đầu từ vị trí q’ để mà D(C,M’) > R, cũng như q<q’<p hoặc p<q’<q Hình 2-15 mô tả sự trùng khớp tầm thường của chuỗi con tìm
kiếm được với chuỗi con C trên chuỗi thời gian
Trang 28Hình 2-15 Chuỗi con tìm kiếm trùng khớp hoàn toàn với chuỗi con C (Nguồn [2])15
Motif bậc K (K-Motif(n,R)): Cho một chuỗi thời gian T, một chuỗi con có chiều
dài n và khoảng R Motif bậc một (1-Motif(n,R)) quan trọng nhất trong T là một chuỗi
con C1 có số lần trùng khớp không tầm thường (non-trivial matches) cao nhất Motif bậc
K (K-Motif(n,R)) có ý nghĩa nhất trong T là các chuỗi con Ck có số lần trùng khớp không
tầm thường cao nhất, và thỏa mãn điều kiện D(Ck,Ci) >2R cho cả 1≤i<K Hình 2-16 mô
tả khoảng cách giữa 2 motif trong chuỗi thời gian
Hình 2-16 Mô tả các motif trong K-motif phải khác nhau 1 khoảng ít nhất là 2R
(Nguồn [1])16
Các chuỗi con thuộc về cùng một motif bậc K được gọi là các thể hiện (instance)
của motif bậc K đó
Trong chương này chúng tôi đã khảo sát cơ sở lý thuyết về dữ liệu chuỗi thời gian,
độ đo xoắn thời gian động, khái niệm bài toàn tìm kiếm tương tự , tìm kiếm motif trên
dữ liệu chuỗi thời gian Tất cả những cơ sở lý thuyết trên sẽ đã được sử dụng trong các
công trình liên quan đến vấn đề mà luận văn đang thực hiện là tìm kiếm motif trên dữ
liệu chuỗi thời gian với độ đo xoắn thời gian động dựa vào cấu trúc chỉ mục Trong
chương tiếp chúng tôi sẽ khảo sát các công trình liên quan đến bài toán tìm kiếm motif
Trang 29CHƯƠNG III:
CÁC CÔNG TRÌNH LIÊN QUAN
Trong chương này sẽ khảo sát một số giải thuật tìm kiếm motif đã và đang được sử dụng nhiều trong các nghiên cứu về bài toán tìm kiếm motif trên dữ liệu chuỗi thời gian đồng thời cũng sẽ khảo sát cấu trúc chỉ mục TS-Tree với độ đo khoảng cách DTW để
áp dụng vào bài toán tìm kiếm motif nhằm tăng tốc quá trình tìm kiếm những vẫn đảm bảo được độ chính xác
3.1 Giải thuật tìm kiếm chân phương (Brute Force)
Trong công trình nghiên cứu của J Lin, E Keogh và các đồng sự [1] có đề xuất giải
thuật tìm kiếm motif bậc nhất chân phương (find 1-motif brute force) Các bước thực
hiện của giải thuật sẽ được miêu tả trong bảng 1
Bảng 3-1 - Bảng mô tả về các bước hiện thực giải thuật find 1-motif brute force 1
(với T là chiều dài của chuỗi thời gian, n là chiều dài chuỗi con, R là ngưỡng khoảng
cách giữa 2 chuỗi con) Giải thuật tìm kiếm chân phương có ưu điểm là dễ hiện thực cho ra kết quả tìm kiếm motif chính xác nhưng thời gian tìm kiếm lâu và độ phức tạp cao Độ phức tạp
hàm bậc hai
Trang 30Tuy giải thuật tìm kiếm chân phương có nhược điểm là độ phức tạp cao nhưng theo khảo sát của chúng tôi trong các công trình nghiên cứu gần đây vẫn áp dụng giải thuật này Công trình của hai tác giả Cao Duy Trường và Dương Tuấn Anh năm 2015[17] đưa ra một phương pháp phát hiện motif trên cơ sở dữ liệu chuỗi thời gian với
độ đo xoắn thời gian động Phương pháp phát hiện motif của Trường và Anh sử dụng
bộ kỹ thuật(suite of technique) tăng tốc việc tính khoảng cách xoắn thời gian động được
đưa ra năm 2012 của tác giả Rakthamanon và các cộng sự [18] với hai cải tiến là sử dụng độ đo Euclid làm cận trên của độ đo xoắn thời gian động và sử dụng cấu trúc chỉ mục Wedge Tree để hỗ trợ quá trình so trùng Tuy nhiên mục tiêu của phương pháp này
là tìm kiếm motif trong một cơ sở dữ liệu chuỗi thời gian, trong đó motif là một chuỗi thời gian riêng biệt khác với mục tiêu của luận văn là tìm kiếm motif trên dữ liệu chuỗi thời gian trong đó motif là một chuỗi con trên dữ liệu chuỗi thời gian dài
3.2 Giải thuật chiếu ngẫu nhiên
Năm 2001, Buhler và Tompa cộng sự đã đề xuất phương pháp chiếu ngẫu nhiên
để tìm kiếm motif [12] và sau đó được sử dụng trong các công trình sau này [2][19] Đầu tiên tác giả sử dụng phương pháp PAA để thu giảm số chiều Sau đó, tác giả tiếp tục sử dụng phương pháp SAX để rời rạc hóa chuỗi dữ liệu đã được thu giảm
Giả sử chúng ta có chuỗi thời gian T gồm 1000 điểm, chứa hai chuỗi con chiều dài
16 là T1 và T58 giống nhau , nhưng vì lý do nào đó xảy ra nhiễu ở vị trí 8 đến 12 Đầu tiên chúng ta sẽ chọn ra các chuỗi con bằng cách sử dụng cửa sổ trượt n Tiếp
theo chúng ta sẽ dùng phương pháp PAA và SAX để biến đổi các chuỗi con thành các
kí tự để thành lập ma trận 𝑆̂ Chú ý rằng các chỉ số hàng của 𝑆̂ cho chúng ta vị trí các
chuỗi con tương ứng trong T Hình 2.12 minh họa quá trình này
Hình 3-1: Minh họa việc xây dựng ma trận 𝑺̂ với a=3, w=4 và n=1617
Trang 31Tiếp theo, chúng ta sẽ khởi tạo một ma trận đụng độ [985,985] có giá trị khởi đầu bằng 0
Sau khi xây dựng ma trận 𝑆̂ chúng ta bắt đầu thực hiện phép chiếu ngẫu nhiên như sau:
Chọn ngẫu nhiên hai cột của 𝑆̂ (Ví dụ trong hình 2.13, hai cột {1,2} được chọn, hình 2.14 – hai cột {2,4} được chọn) Nếu giá trị của hai cột 1 và 2 của
hai hàng i, j của chuỗi S giống nhau thì chúng ta vị trí [i,j] của ma trận va
chạm sẽ được tăng lên một đơn vị
Lặp lại bước trên với một số lần nhất định, chúng ta sẽ có một ma trận đụng
độ Số bước lặp này lớn hay nhỏ tùy thuộc vào số kí tự được mã hóa và cửa
sổ trượt trong giải thuật SAX Nếu tất cả các giá trị trong ma trận S là giống nhau thì không có motif nào được tìm thấy Ngược lại rất có thể là [58,1] là rất lớn so với các giá trị khác Từ ma trận đụng độ này, chúng ta sẽ dễ dàng tìm được 1-motif của T
Hình 3-2 và 3-3 mô tả quá trình chọn ngẫu nhiên hai cột và thay đổi giá trị của ma trận đụng độ ở các vị trí tương ứng
Nhược điểm của phương pháp này là ta phải chọn các thông số để thu giảm số chiều
của PAA, số lượng các kí tự mã hóa trong SAX và chiều dài cửa sổ trượt w cho giải
thuật chiếu ngẫu nhiên hợp lý Nếu các thông số này không được chọn hợp lý thì chương trình chạy rất lâu, đồng thời có thể không tìm được motif
Hình 3-2: Trái) {1,2} được chọn ngẫu nhiên Phải) tăng giá trị của các ô tương ứng 1
đơn vị 18
Trang 32Hình 3-3: Trái) Cột {2,4} được chọn Phải) Tăng giá trị của vị trí tương ứng [2]19
3.3 Tổng quan về cây R*-Tree
Cấu trúc chỉ mục R*-Tree là một cây cân bằng giống như B-Tree với những nút
lá chứa con trỏ tới đối tượng dữ liệu thật (data object) Cấu trúc chỉ mục R*-Tree chủ yếu làm việc trên dữ liệu không gian, nó gắn liền với khái niệm hình chữ nhật bao phủ nhỏ nhất (minimum bouding rectangles - MBR) Những hình chữ nhật bao nhỏ nhất này
là vùng không gian bao quanh đối tượng dữ liệu hay bao quanh các MBR trong nó sao cho diện tích bao phủ là nhỏ nhất R*-Tree là một cải tiến của R-Tree trong quá trình chèn nút trong R-Tree nhằm làm tăng tốc quá trình truy xuất và thao tác trên cây.[7][8]
Hình 3-5 Thể hiện các hình chữ nhật bao phủ nhỏ nhất các đội tượng hoặc bao lấy một hình chữ nhật bao phủ khác
Hình 3-5 Các hình chữ nhật bao phủ nhỏ nhất (Nguồn [7])20
Hình 3-6 Cấu trúc R-Tree được xây dựng từ các hình chữ nhật bao phủ trong hình 3-5
Trang 33Hình 3-6 Cấu trúc chỉ mục R-Tree (Nguồn [7])21
Một số tính chất trên cây R*-Tree:
- Mọi nút lá bao gồm từ m tới M phần tử ( nếu đó không phải là nút gốc)
- Cấu trúc phần tử trong R*-Tree là (I, MBR) Trong đó I là con trỏ tới con MBR là hình chữ nhật tối thiểu bao lấy các đối tượng n chiều
- Nút gốc phải có tối thiểu 2 nút con trừ khi nút đó là nút lá
- Tất cả nút lá phải cùng cấp ( tính chất này chứng minh R*-Tree luôn là cây cân bằng khi các nút lá luôn có cùng chiều cao)
Khi làm việc với cấu trúc chỉ mục R*-Tree, chúng ta sẽ thường xuyên bắt gặp các định nghĩa sau:
- Diện tích chồng lên nhau (overlap area) của 2 hình chữ nhật là diện tích chung
- Ei rectangle là hình chữ nhật bao nhỏ nhất của phần tử Ei
3.3.1 Thao tác chèn thêm phần tử mới
Quá trình thao tác chèn thêm phần tử mới vào cây sẽ được thực theo mô tả của hình vẽ 3-7[4][6]
Trang 34Hình 3-7 Quá trình Chèn thêm phần tử mới vào cây R*-Tree (Nguồn [4])22
Giải thích:
- Thao tác chèn một phần tử vào trong R*-Tree là sau khi phần tử được chèn vào trong R*-Tree không được vi phạm bất kỳ luật nào đối với R*-Tree Khi bắt đầu giải thuật, ta sẽ phải tìm kiếm những nút lá phù hợp nhất trên tiêu chí
là nút lá đó sau khi chèn thêm phần tử vào thì có độ mở rộng hình chữ nhất bao phủ là nhỏ nhất và đồng thời diện tích chống lên nhau của các thành phần trong nút đó cũng là nhỏ nhất
- Sau khi chọn được nút lá phù hợp thì ta chèn phần tử vào trong nút lá đó Nếu
sau khi chèn mà các nút lá bị đầy ( số phần tử lớn hơn M) thì chúng ta phải
tiến hành công việc phân chia lại thành 2 nút con Sau đó sẽ chúng ta sẽ tiến hành kiểm tra lại tình trạng nút cha, nếu nút cha vi phạm thì ta sẽ tiếp tục phân chia Đến khi từ nút lá đang xét tới nút gốc là hoàn toàn hợp lệ
Hình 3-8a Các đối tượng dữ liệu trong không gian (Nguồn [4])23
Trang 35Hình 3-8b Cây R*- Tree được xây dựng dựa trên dữ liệu ở hình 1.4a (Nguồn [4])24
Giả sử ta muốn thêm giá trị X vào trong cây R*-Tree, giá trị X được thể hiện bằng
vị trí hình chữ nhật theo hình 3-8a Các phương thức tiến hành như sau:
- Tại nút gốc có 2 thành phần R1 và R2 để lựa chọn Vì 2 thành phần này không
chỉ đến nút lá nên việc lựa chọn sẽ dựa trên tiêu chí mở rộng diện tích hình
chữ nhật bao nhỏ nhất là tối thiểu Nếu chọn R2 thì phải mở rộng R2 trong khi R1 thì không cần mở rộng Ta chọn nhánh R1
- Tại nút con có chứa (R3 và R4) là nút chỉ thẳng đến nút lá nên việc lựa chọn
sự mở rộng diện tích chồng lên nhau của một nút thành phần là ít nhất Trường
hợp này nếu chọn R4 thì phải mở rộng diện tích R4 lúc này diện tích chồng lên nhau của R3 và R4 sẽ lớn hơn nếu chọn nhánh R3 Vì thế ta chọn nhánh R3 để điền giá trị X vào theo hình 3-8b
Hình 3-9 Hai phương thức tách nút (Nguồn [4])25
- Giả sử trường hợp ta chèn giá trị X vào một nút đầy ( số lượng thành phần là M) Lúc này sẽ xảy ra quá trình phân chia nút Quá trình tách nút sẽ dựa trên 3
giá trị liên quan đến 2 nhóm thành phần diện tích bao phủ, chu vi, diện tích chồng lên nhau Theo hình 3-9 cách phân chia nút sẽ được diễn ra theo cách a)
Trang 36hơn là theo cách b) Quá trình tách nút có thể lan truyền lên đến nút gốc nếu nút tách gây đầy nút cha của nó
3.3.2 Thao tác xóa phần tử
Quá trình xóa một nút trong cây sẽ tìm nút lá có chứa thành phần tương ứng và xóa đi Tuy nhiên, sau khi xóa một thành phần trong nút, có thể gây ra tình trạng số
lượng thành phần quá thấp (nhỏ hơn m) Nếu điều này xảy ra thì quá trình chỉnh lại cây
sẽ đươc thực hiện như sau:[4][6]
- Xóa đệ qui các nút khỏi các nút cha của nó cho đến khi nút bị xóa thành phần vẫn vẫn còn hợp lệ Đồng thời giữ lại các cây con bị xóa
- Chèn tất cả các thành phần trong các cây con bị xóa trong quá trình trước
Hình sẽ minh họa các quá trình xóa phần tử ra khỏi cây với m = 2 và M = 5
Hình 3-10 Quá trình xóa nút ra khỏi cây R*-Tree (Nguồn [4])26
Trang 373.4 Cấu trúc chỉ mục TS-Tree
Cấu trúc chỉ mục TS-Tree được đề xuất bởi Assent và các cộng sự năm 2008[9] Mục đích thiết kế cấu trúc chỉ mục TS-Tree là tạo ra một cấu trúc chỉ mục mang thông tin nén trong dữ liệu thời gian Nén ở đây có nghĩa là các dữ liệu thời gian tương tự nhau
sẽ được đặt trong cùng cây con qua đó giảm thiểu việc lưu trữ cấu trúc chỉ mục này.Và
hơn nữa, nó đảm bảo không có sự phủ lấp (overlap) các dữ liệu con trong các nhánh
cây Trong các nút của cây có lưu thông tin mô tả chi tiết nhằm giúp cho quá trình tỉa nhánh hiệu quả trong lúc duyệt cây[9]
Các thành phần trong cấu trúc chỉ mục TS-Tree
Cấu trúc TS-Tree là giống với cây R*-Tree [7][8, tuy nhiên cấu trúc nút trong cây
và thông tin lưu trong mỗi phần tử của nút là hoàn toàn khác với R*-Tree Trong Tree chúng ta lưu thông tin mô tả về cận trên và cận dưới của các chiều trong dữ liệu thời gian sau khi đã được rời rạc hóa bằng giải thuật rời rạc và phân tách các phần tử
TS-trong nút bằng thành phần phân tách (separators)
3.4.1 Các thành phần phân tách(Separators)
Một thành phần phân tách S giữa 2 dữ liệu thời gian T1 và T2 là một dữ liệu chuỗi
thời gian thỏa mãn các điều kiện sau đây:
- T1 ≤ S (S có thông tin lớn hơn hoặc bằng các phần tử bên trái nó)
- S ≤ T2 ( S có thông tin nhỏ hơn hoặc bằng phần tử bên phải nó)
- Chiều dài S là nhỏ nhất nếu có thể Tức là sẽ không tồn tại S’ nào nằm giữa T1
và T2 và chiều dài nhỏ hơn S
Trong đó một dữ liệu a được xem là nhỏ hơn dữ liệu b khi và chỉ khi:
(∃𝑗< min{|𝑎|, |𝑏|} ∀𝑖 ∈ {1, … , 𝑗 − 1}: 𝑎𝑖 = 𝑏𝑖 ∧ 𝑎𝑗 < 𝑏𝑗)
∨ (|𝑎| ≤ |𝑏| ∧ ∀𝑖∈ {1, … , |𝑎|}: 𝑎𝑖 = 𝑏𝑖)
Trang 38Hình 3-11 Cho ta thấy hình ảnh các thành phần phân tách của một nút trong cây
(Nguồn [9])27
Trong hình 3-11 các thành phần phân tách là các trị số nằm giữa các phần tử chứa thông tin của cây TS-Tree Các thành phần phân tách lần lượt là {5.09; 8,9; 10.05; 11.9} Với các phần tử nằm giữa các thành phần phân tách thì tất cả các đối tượng trong nhánh con trái có giá trị tại chiều đang xét nhỏ hơn hoặc bằng giá trị tại các thành phần phân tách Ngược lại nhánh con phải có giả trị tại chiều đang xét lớn hơn hoặc bằng các thành phần phân tách
Theo hình 5.1 chúng ta có các thông tin các thành phần phân tách và thông tin các cây con nằm giữa như sau:
Các luật trong việc chuyển đổi rời rạc hóa
Giả sử chúng ta có Q = {q1…qn} là một sự rời rạc hóa của dữ liệu chuỗi thời gian T={t1…tn} trong giới hạn tập ký hiệu {s1….sn} nếu thỏa mãn các yêu cầu sau đây:
- Mỗi ký hiệu trong Q thì được biểu diễn như là 1 ký hiệu si trong {s1…sn}
Trang 39- Mỗi dữ liệu thời gian sau khi được biểu diễn luôn nằm trong giá trị lớn nhất
Hình 3-12 Sự rời rạc hóa trong nút cây TS-Tree (Nguồn [4])28
3.4.3 Thông tin mô tả trong cây TS-Tree
Mỗi phần tử trong nút của cây TS-Tree chứa những thông tin của cận trên và cận dưới của cây con mà phần tử đó trỏ tới Những thông tin cận trên và cận dưới này rất phù hợp cho quá trình duyệt cây cũng như quá trình tỉa nhánh cây qua đó làm cho quá trình truy vấn được tăng tốc Việc sử dụng thông tin cận trên cận dưới giúp cho việc áp dụng độ đo xoắn thời gian động được tốt hơn.Theo hình 3-13 là sự mô tả thông của một nút trong cây gồm có các thành phần phân tách, cây con, và cận trên cận dưới
Hình 3-13 Thông tin mô tả trong một nút cây (Nguồn [4])29
Trang 40Cấu trúc chỉ mục dạng cây TS-Tree
phần phân tách và k thông tin mô tả
- Mỗi nút lá trong TS- Tree có i phần
tử với n≤i≤2n
- Trong khi đó một nút gốc có
1≤i≤2n phần tử Các phần tử trong
này thì đã được rời rạc hóa từ một
dữ liệu thời gian sang f ký tự
Trong cấu trúc cây TS-tree thì các nút trong được dùng sự rời rạc hóa thô ( rough
quantization) cho các thành phần phân tách, trong khi đó thì ở các nút lá có thông tin
mô tả sau khi dùng sự rời rạc hóa tinh (fine quantization) Hình 3-14 mô tả chi tiết về
sự rời rạc hóa thô và rời rạc hóa tinh của các nút trong cây TS-Tree
Hình 3-14 Cấu trúc một nút trong cây TS-Tree (Nguồn [9])30
3.4.4 Các thao tác chèn phần tử trong cây TS-Tree.
Quá trình chèn phần tử mới trong cây có thể được tóm tắt trong sơ đồ sau Hình 3-15 trình bày các bước trong quá trình thêm một nút mới trong cây TS-Tree