Ngày nay, đối sánh mẫu hay mở rộng hơn là tìm kiếm đối sánh mẫu dữ liệu được ứng dụng rộng rãi trong nhiều lĩnh vực như: xử lý văn bản, tài chính và thị trường chứng khoán, thương mại, g
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THUỶ KHÁNH
PHÁT TRIỂN MỘT SỐ KỸ THUẬT
LUẬN VĂN THẠC SĨ
Hà Nội - 2007
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THUỶ KHÁNH
PHÁT TRIỂN MỘT SỐ KỸ THUẬT
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
Mã số: 1.01.10
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TSKH NGUYỄN XUÂN HUY
Hà Nội - 2007
Trang 3LỜI CẢM ƠN
Em xin gửi lời biết ơn chân thành nhất đến PGS.TSKH Nguyễn Xuân Huy, người đã tận tình hướng dẫn em trong suốt quá trình thực hiện luận văn, cho em nhiều lời động viên cũng như những chỉ dẫn quý báu để em có thể thực hiện tốt được đề tài này
Bên cạnh đó, em xin chân thành cảm ơn các thầy cô trong khoa Công Nghệ Thông Tin đã hết lòng trong công tác giảng dạy, tận tình cung cấp nhiều kiến thức cần thiết trong suốt những năm học tại trường
Trong quá trình thực hiện đề tài, không thể không kể đến sự giúp đỡ, đóng góp ý kiến
và những lời động viên hết mình của bạn bè xung quanh, điều này thật sự đã giúp cho tôi rất nhiều Xin chân thành cám ơn các bạn
Và cuối cùng, con xin gửi đến bố mẹ và gia đình lòng biết ơn vô bờ bến Công lao dưỡng dục của bố mẹ, niềm tin mãnh liệt vào con của bố mẹ đã giúp con vượt qua được những giờ phút khó khăn nhất, khắc phục được những trở ngại lớn lao nhất để hoàn thành đề tài này
MỞ ĐẦU
Trong những năm gần đây, sự phát triển của công nghệ thông tin và ngành công nghiệp phần cứng đã làm cho khả năng thu thập và lưu trữ dữ liệu của các
hệ thống thông tin tăng nhanh Bên cạnh đó việc tin học hoá các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng
ta một lượng dữ liệu lưu trữ lớn Nhiều cơ sở dữ liệu đã được sử dụng trong các hoạt động sản xuất, kinh doanh, quản lí , trong đó có những cơ sở dữ liệu cực lớn cỡ Gigabyte, thậm chí là Terabyte Sự gia tăng này đã dẫn tới một yêu cầu
Trang 4là cần có những kĩ thuật và công cụ mới để phân tích, dự đoán dự báo thông tin dựa trên khối dữ liệu đó Do vậy, các kĩ thuật đối sánh đã trở thành một trong những vấn đề quan tâm của CNTT thế giới hiện nay
Đối sánh mẫu (pattern matching) là một chủ đề quan trọng của lĩnh vực xử
lý văn bản Bài toán đối sánh mẫu (chính xác) tổng quát được phát biểu là: Cho xâu mẫu P độ dài m và xâu (văn bản) S độ dài n trên cùng bảng chữ A Tìm một (hoặc tất cả) xuất hiện của mẫu P trong S Nhiều phương pháp kinh điển giải bài toán đối sánh mẫu được giới thiệu chi tiết trong [4,5]
Ngày nay, đối sánh mẫu hay mở rộng hơn là tìm kiếm đối sánh mẫu dữ liệu được ứng dụng rộng rãi trong nhiều lĩnh vực như: xử lý văn bản, tài chính
và thị trường chứng khoán, thương mại, giáo dục, y tế, sinh học, bưu chính viễn thông ,…
Với lĩnh vực khoa học công nghệ dự đoán dự báo có nhiều triển vọng trong tương lai, và cũng phù hợp với xu thế hiện nay là áp dụng công nghệ
thông tin vào mọi lĩnh vực của đời sống, nên em đã chọn hướng “Phát triển một số kỹ thuật trong đối sánh mẫu dữ liệu” cho luận văn của mình
Với mỗi lĩnh vực lại có cách biểu diễn mẫu dữ liệu cho từng lĩnh vực đó, việc tìm kiếm đối sánh cũng dựa trên cách biểu diễu mẫu để có những phương pháp tìm kiếm và đối sánh phù hợp nhất Trong khuôn khổ luận văn, em lựa chọn nghiên cứu dựa trên mẫu dữ liệu tuần tự theo thời gian
Dữ liệu tuần tự theo thời gian là một dãy các giá trị, đại diện cho số đo của một đại lượng tại các khoảng thời gian khác nhau
Hình 0.1 - Ví dụ về dữ liệu tuần tự theo thời gian
Trang 5Mở rộng ra, cơ sở dữ liệu tuần tự theo thời gian là một bộ sưu tập với số lượng lớn của dữ liệu tuần tự theo thời gian
Ví dụ:
- Cơ sở dữ liệu chứa tất cả sự vận động của giá cổ phiếu trong thị trường chứng khoán
- Cơ sở dữ liệu doanh số bán hàng theo thời gian
- Cơ sở dữ liệu nhiệt độ về lưu lượng dòng chảy, độ mặn và mức độ xâm nhập mặn của sông Mekong
- Cơ sở dữ liệu nhiệt độ hàng ngày
- Cơ sở dữ liệu điện tâm đồ
- …
Khi biểu diễn các dãy dữ liệu tuần tự theo thời gian, dễ dàng nhận thấy mỗi dãy đều có một dáng điệu riêng tùy thuộc vào sự thay đổi giá trị trong dãy Bài toán đối sánh mẫu bản chất là bài toán tìm kiếm mẫu dữ liệu tương đương trong dữ liệu tuần tự theo thời gian Việc tìm kiếm các mẫu thích hợp trong dữ liệu tuần
tự theo thời gian đóng vai trò quan trọng trong các ứng dụng thuộc hầu hết lĩnh vực khoa học, kinh tế và kỹ thuật như tìm kiếm giai điệu, tìm các mẫu giá chứng khoán trong quá khứ để có thể dự đoán khuynh hướng giá trong tương lai, số lượng sản phẩm bán ra, dự báo mức độ ô nhiễm môi trường, lũ lụt hay
dự báo thời tiết,…
Nội dung của luận văn gồm các chương mục sau:
Trang 6Chương 1: Cơ sở lý thuyết
Trình bày các lý thuyết quan trọng liên quan
Chương 2: Một số kỹ thuật trong đối sánh mẫu
Mô tả các kỹ thuật đối sánh và cách áp dụng các vấn đề lý thuyết đã nêu
Chương 3: Cài đặt, kết quả thử nghiệm
Cài đặt chương trình, sơ lược về cách sử dụng, các kết quả thử nghiệm
Phụ lục: Phụ lục A: Danh mục hình vẽ
Phụ lục B: Bộ dữ liệu nguồn
Trang 71.1
1.2 Chương 1
1.1 BIỂU DIỄN DỮ LIỆU TUẦN TỰ THEO THỜI GIAN
Cũng như đối với hầu hết các vấn đề khác của khoa học máy tính, việc biểu diễn dữ liệu chính là chìa khóa mở ra các giải pháp đạt hiệu quả cao Đối với
dữ liệu tuần tự theo thời gian, một số phương pháp biểu diễn dữ liệu tuần tự theo thời gian cấp cao đã được đề xuất, bao gồm phép biến đổi Fourier, Wavelets (sóng nhỏ), ánh xạ ký tự/biểu tượng và biểu diễn tuyến tính Piecewise (PLR) Trong đó, một trong những phương pháp biểu diễn được sử dụng phổ biến nhất là xấp xỉ tuyến tính Piecewise Cách biểu diễn này được nhiều nhà nghiên cứu khác nhau sử dụng để hỗ trợ gom cụm, phân lớp, chỉ mục và khai mỏ luật kết hợp trong dữ liệu tuần tự theo thời gian Liên quan đến
phương pháp này, đã có nhiều thuật toán ra đời Tuy nhiên, theo [8], tất cả các
thuật toán này đều có những thiếu sót không tránh khỏi khi đứng trên phương diện khai thác dữ liệu
Các thuật toán phân đoạn cũng có thể được phân thành các loại: theo lô hay trực tuyến
Trong [8] cũng đã phân tích 3 thuật toán cơ bản để phân đoạn dữ liệu:
- Cửa sổ trượt (Sliding Windows): một phân đoạn lớn dần lên cho đến khi
nó vượt quá một giới hạn sai số nào đó Quá trình lặp lại với điểm dữ liệu kế tiếp không trong phân đoạn xấp xỉ mới
- Trên - Dưới (Top-Down): dữ liệu tuần tự theo thời gian được chia một cách đệ quy cho đến khi gặp một điều kiện dừng nào đó
Trang 8- Dưới lên trên (Bottom-Up): bắt đầu từ xấp xỉ có khả năng tốt nhất, các phân đoạn được trộn cho đến khi gặp một điều kiện dừng nào đó
Các tác giả [8] cũng đã tiến hành các thực nghiệm, và nhận thấy rằng thuật toán cửa sổ trượt là thuật toán trực tuyến, thực hiện kém nhất Vấn đề chính với thuật toán cửa sổ trượt là không bao quát được các bản sao “offline” của nó Các cách tiếp cận Bottom-Up và Top-Down cho ra kết quả tốt hơn, nhưng là
“offline” và yêu cầu quét qua toàn bộ tập dữ liệu Đây là một thực tế, trong nhiều trường hợp có thể còn không thực hiện được trong ngữ cảnh khai mỏ dữ liệu
Thách thức đối với dữ liệu tuần tự theo thời gian là: tìm kiếm sự khác nhau hoặc tương đương nhau đối với 2 bộ dữ liệu tuần tự theo thời gian (trong cùng một lĩnh vực)
Ví dụ cho 2 bộ dữ liệu X=x1, x2,…, xn Y= y1, y2,…, yn
hãy cho biết X và Y tương đương hay khác nhau? Vấn đề này thật khó vì chúng ta thường có khái niệm chủ quan về sự tương đương, tương đương ở đây phụ thuộc vào khách thể, vào từng lĩnh vực và công việc cụ thể
Trang 9Phần 2 Để giải quyết vấn đề này phải có độ đo về sự tương đương cho phép đối sánh dữ liệu ở mức độ xấp xỉ, ngoài ra còn có thể sử dụng các thuật toán như: chỉ mục, phân lớp, gom cụm, phân đoạn dữ liệu,…để tìm ra các mẫu trong tập dữ liệu tuần tự theo thời gian tương ứng của chúng
Phần 3 Thách thức thứ hai đối với dữ liệu tuần tự theo thời gian là việc lập chỉ mục: cho hai bộ dữ liệu tuần tự theo thời gian X=x 1 , x 2 , …, x n và Q Tìm bộ hoặc các bộ dữ liệu con trong
X mà tương đương với Q Để giải quyết vấn đề này một cách hiệu quả ta lập chỉ mục trên dữ liệu X
Phần 4 Một bộ dữ liệu tuần tự theo thời gian có chiều dài n (n bản ghi, hay một đối tượng tại n thời điểm khác nhau) có thể được coi như một bộ trong không gian n chiều Lập chỉ mục trực tiếp cho không gian này thì không hợp lý vì nó có số chiều rất lớn (có thể là hàng triệu hoặc hàng tỷ chiều) Ý tưởng chính của việc cải tiến là sử dụng kỹ thuật để giảm bớt số chiều của không gian như biến đổi Fourier hoặc biến đổi Cosine rời rạc, tức là ánh xạ dữ liệu tuần tự theo thời gian có độ dài n vào không gian thấp hơn có k chiều (k<<n)
1.2 ĐỘ ĐO SỰ TƯƠNG ĐƯƠNG
Cho O1 và O2 là hai đối tượng tồn tại trong thế giới thực Khoảng cách hay độ
đo tương đương giữa chúng được biểu diễn bằng D(O1,O2)
Các thuộc tính của độ đo tương đương:
1 Tính đối xứng:
D(x, y) = D(x,y)
2 Tính không âm
D(x, y) ≥ 0 với x, y; D(x,y)=0 x=y
A
C
B
Trang 103 Bất đẳng thức tam giác:
D(A, B) ≤ D(A, C) + D(B, C)
1.2.1 Độ đo sự tương đương giữa hai dãy có độ dài bằng nhau
Cho dãy dữ liệu C = (c1, c2, ……., cm) là dãy dữ liệu nguồn được lưu trữ trong
cơ sở dữ liệu
Gọi Q = (q1, q2, ……., qn) (n < m) là dãy dữ liệu mẫu để truy vấn trên dãy dữ liệu nguồn Q, C cũng là một dãy tuần tự (giả sử dãy này cũng được lấy mẫu theo cùng một cách như Q)
Cho đến thời điểm này, đã có một số độ đo được đề xuất để tính khoảng cách giữa hai dãy, trong số các độ đo này, độ đo được sử dụng phổ biến nhất là độ
đo Lp(Q, C), độ đo này được [5] định nghĩa như sau:
p c
q C
Q L
Q
i
p p i i
1
1
Hình 1.1 -Độ đo sự tương đương của hai dãy bằng nhau
Độ đo Lp(Q, C) được sử dụng rộng rãi và được xem như là độ đo khoảng cách trong quá trình tìm kiếm tương đương dữ liệu tuần tự theo thời gian
Trong trường hợp đặc biệt, với p=1 được gọi là độ đo khoảng cách Manhattan
và p= 2 chính là độ đo khoảng cách Euclid Trong lĩnh vực nghiên cứu đối sánh
Q
C
Lp(Q,C)
Trang 11các dãy con, khoảng cách Euclid được xem là độ đo chủ đạo Tuy nhiên, có thể chọn độ đo Manhattan để đo sự tương đương
Trong nhiều ứng dụng dùng dữ liệu tuần tự theo thời gian, người ta thường xem xét sự khác biệt về dáng điệu hoặc khuynh hướng của dữ liệu hơn là sự khác nhau về giá trị các phần tử Vì thế, [6] đã đề xuất một độ đo khoảng cách giữa hai dãy, trong đó xem xét sự tương đương về dáng điệu, ngay cả khi các giá trị số của chúng hoàn toàn khác nhau Do quan tâm đến việc ánh xạ các giá trị chính xác của các chuyển động lên - xuống của dáng điệu sử dụng trong độ
đo, nên các tác giả dùng kỹ thuật biến đổi (shifting), từ dãy gốc ban đầu, lấy giá trị của các phần tử trừ cho giá trị trung bình của các phần tử Sau đó, dùng
độ đo Lp(Q, C) giữa các phiên bản sau khi đã biến đổi này Độ đo mới được định nghĩa hình thức như sau:
Q’= Q – mean(Q)
C’= C- mean(C)
với mean(Q), mean(C) là giá trị trung bình của các giá trị các phần tử trong dãy
Q và dãy C
Với 2 dãy Q, C có cùng độ dài, độ đo khoảng cách L p (Q, C)) = L p (Q’, C’)
Hình 1.2 – Ví dụ về kỹ thuật biến đổi (shifting)
0 50 100 150 200 250 300
0
0.5
1
1.5
2
2.5
3
0 50 100 150 200 250 300 0
0.5 1 1.5 2 2.5 3
0 50 100 150 200 250 300
Q’ = Q - mean(Q) C’ = C - mean(C)
L p (Q,C)
L p (Q’,C’)
Trang 12Tuy nhiên, chỉ có thể sử dụng độ đo Lp(Q, C) để đo khoảng cách giữa hai dãy
có độ dài bằng nhau
Khi độ đo khoảng cách giữa 2 bộ dữ liệu tuần tự theo thời gian không rõ ràng - bóp méo (warping) trong dữ liệu, một kỹ thuật chung để khử nhiễu là tính giá trị trung bình tại mỗi điểm của dữ liệu so với các điểm kề gần nó Trong một số trường hợp ta cũng không muốn bỏ đi sự bóp méo này vì chúng rất đặc trưng trong từng loại dữ liệu, lúc đó ta cần dùng tới độ đo khác
1.2.2 Độ đo sự tương đương giữa hai dãy có độ dài khác nhau
Time warping là độ đo sự tương đương giữa hai dãy có độ dài khác nhau Để xác định khoảng cách nhỏ nhất giữa hai dãy tuần tự, Time warping cho phép mỗi phần tử của một dãy đối sánh với một hay một số các phần tử lân cận của một dãy khác Trong [6] đã đưa ra định nghĩa về độ đo khoảng cách này như sau
Định nghĩa 1:
Cho hai dãy tuần tự C= C1, C2, …., Cm và Q = Q1, Q2, … , Qn, khoảng cách Time warping Dtw được định nghĩa đệ quy như sau:
Trục thời gian cố định
Fixed Time Axis
Các điểm dữ liệu được nối
thẳng hàng (“one to one”)
Trục thời gian không rõ ràng Warped Time Axis
Các điểm dữ liệu được nối thành hàng phi tuyến
Hình 1.3 - Trục thời gian cố định và trục thời gian không rõ ràng
Trang 13
)) ( ), ( (Re
) ), ( (Re
)) ( Re , ( min
)) ( ),
( (
) , (
) , ( )
, (
0 ) , (
Q Last C
st D
Q C st D
Q st C D
Q First C
First D
Q C D
Q D
C D D
tw tw tw
base tw
tw tw
tw
Với:
- : là dãy rỗng
- First(C) = C1 , First(Q) = Q1
- Last(C) = Cn , Last(Q) = Qm
- Rest(C) = (C2, C3,…., Cn) , Rest(Q) = (Q2, Q3,…., Qm)
- Dbase là hàm trả về khoảng cách giữa hai phần tử
Trong cơ sở dữ liệu gồm các dãy có độ dài khác nhau, các dãy dữ liệu có khoảng cách Time warping so với dãy truy vấn nhỏ hơn giá trị dung sai cho trước thì được xem như tương đương nhau
Trong mô hình tương đương được đề cập trong [6], khoảng cách Time warping trong định nghĩa 1 được viết lại như sau:
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Nguyễn Đức Khoa (2004), Phát triển các kỹ thuật Heuristics trong khai
khoáng dữ liệu theo thời gian, Luận văn Thạc sĩ ngành Tin
học, Trường Đại học Khoa Học Tự Nhiên, ĐHQG TPHCM,
TP HCM
[2] Nguyễn Đình Phương Loan (2005), Tìm kiếm dữ liệu theo dáng điệu, Luận
văn Thạc sĩ ngành Tin học, trường Đại học Khoa học Tự Nhiên, ĐHQG.TPHCM
Trang 14[3] Nguyễn Thị Thanh Huyền, Bùi Kiên Cường, Phan Trung Huy , Các thuật toán
tìm kiếm xâu con và tìm kiếm tựa ngữ nghĩa có sử dụng otomat mờ, Kỷ yếu
Hội thảo quốc gia lần thứ VI về “Một số vấn đề chọn lọc của Công nghệ thông
tin”, Thái Nguyên, 2003
Tiếng Anh
[4] Alfred V Aho, Algorithms for Finding Pattern in Strings, Chapter V,
Handbook of Theoretical Computer Science, Vol A, Jan Van Leeuwen, Algorithms and Complexity, The MIT Press.,
1990, pp 257-299
[5] Christian Charras, Thierry Lecroq, Hanbook of Exact String- matching
Algorithms
[6] Kim S, Park S, Chu W (2001), “An index-based approach for similarity
search supporting time warping in large sequence
conference on data engineering, pp 607 – 614
[7] E.Keogh, K.Chakrabarti, S.Mehrotra, M.Pazzani, “Locally Adaptive
Dimensionality Reduction for Indexing Large Time Series Databases”
[8] E Keogh, S Chu, D Hart, and M Pazzani (2001), “An online Algorithm
for Segmenting Time series” In Proceedings of 2001 IEEE
International Conference on Data Mining, pp 289 – 296
[9] V Gaede, O Gunther ( 1998), “Multidimensional Access Methods”,
ACM Computing Surveys, 30 (2), pp 170 – 231
[10] A Guttman (1984), R-Tree: A Dynamic Index structure for Spatial Searching,
proc Of SIGMOD, pp 47 – 57
[11] K Chakrabarti, S Mehrotra (1999), “The Hybrid Tree – An Index
Structure for High Dimensional Feature Spaces”, In Proc
Int Conf On Data Engineering, p 440 – 447
[12] Park S, Kim S, Chu W (2001), “Segment-based approach for subsequence
ACM symposium
on applied computing, Las Vegas, NV, pp 248 – 252
[13] Huang, Y & Yu, P S (1999), “Adaptive query processing for time-series
data”, In Proceedings of the 5 th Int’l Conference on Knowledge Discovery and
Data Mining, San Diego, CA, Aug 15 – 18, pp 282 – 286
[14] Y Morinaka, M Yoshikawa, T Amagasa and S Uemura (2001), “The
L-index - An Indexing Structure for Efficient Subsequence Matching in Time Sequence Database”, PAKDD