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

DSpace at VNU: Phát triển một số kỹ thuật trong đối sánh mẫu

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

ĐẠ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
TRONG ĐỐI SÁNH MẪU

LUẬN VĂN THẠC SĨ

Hà Nội - 2007


ĐẠ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
TRONG ĐỐI SÁNH MẪU
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




LỜ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


là 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


Mở 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:


Chƣơ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



1.1
1.2 Chương 1
1.2.1.1.1 CƠ SỞ LÝ THUYẾT

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


-


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


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


Phầ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=x1, x2, …, xn 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<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)
C

2. Tính không âm
D(x, y) ≥ 0 với  x, y;

D(x,y)=0  x=y

A

B


3. 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:
Q

L p Q, C   ( qi  ci )
p

1

p

,1  p  

i 1

C
Q
Lp(Q,C)
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


cá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 Lp(Q, C)) = Lp(Q’, C’)
3

3

2.5

2.5

2

2

1.5

1.5

1

1


0.5

0.5

0

0

50

100

150

200

250

300

0

Lp(Q,C)

0

50

100


150

200

250

300

C’ = C - mean(C)
Q’ = Q - mean(Q)
Lp(Q’,C’)
0
0

5

10

15

20

25

50

100

150


30

Hình 1.2 – Ví dụ về kỹ thuật biến đổi (shifting)

200

250

300


Tuy 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

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

Độ đo sự tƣơng đƣơng giữa hai dãy có độ dài khác nhau

Hình 1.3 - Trục thời gian cố định và trục thời gian không rõ ràng
Time warping là độ đo sự tương đương giữa hai dãy có độ dài khác nhau. Để
1.2.2

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:


Dtw ( , )  0
Dtw (C , )  Dtw ( , Q)  
Dtw (C , Q)  Dbase( First (C ), First (Q)) 
 Dtw (C , Re st (Q))

min  Dtw (Re st (C ), Q)
 D (Re st (C ), Last(Q))
 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


[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
databases”, In Proceedings of the 17th international
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
searchs in sequence databases”, In Proceedings of the 16th 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 5th 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.


[15] K. L. Tan, B. C, Ooi and L. F. Thiang (2001), “Retrieving Similar Shapes
Effectively and Efficiently”, Multimedia Tools and Applications, Kluwer
Academic Publishers, accepted for publication.
[16] B.K.Yi, H. V. Jagadish, and C. Faloutsos (1998), “Efficient retrieval of similar time sequences under time warping”, ICDE.
[17] Karp, R. M. and Rabin, M. O, “Efficient randomized pattern-matching algorithms,'' IBM Journal of Research and Development,
31, (1987), 249-260

[18] H. A. Jonnson (1996), Shape Querying Using Signature Files, Master of Science Thesis, Linkoping Institute of Technology,
Sweden
[19] />[20] . />[21] Gonzalo Navaro, Ricardo Baeza-Yates, ErkkiSutinen, Jorma Tarhio, Indexing Methods for Approximate String Matching, Bulletin
of the Technical Committee on Data Engineering, Vol. 24 (2001), No. 4
[22] />


×