II. PJK烏O"X影"XÉ"P浦K"FWPI<
2 Cơ sở lý thuyết
2.5 đo tương tự Similarity Measurement
2.5.1 Giới thiệu
Trong phân cụm dữ liệu, các đối tượng dữ liệu cần phân tích được cho dưới nhiều hình thức. Mỗi đối tượng được mơ tả thơng qua các thuộc tính của nó. Cho một tập dữ liệu X chứa n đối tượng trong không gian k chiều; x1, x2, x3 là các đối tượng thuộc X: x1 = (t1, t2, . . . , tk), x2 = (u1, u2, . . . , uk), x3 = (v1, v2, . . . , vk). Trong
đó ti, ui, vi(i ∈ [1, k]) là các đặc trưng của thuộc tính tương ứng với các đối tượng
x1, x2, x3 .Khi đó, khái niệm “các kiểu dữ liệu” và “các kiểu thuộc tính dữ liệu” được xem là tương đương nhau.
Khi các giá trị của thuộc tính đã được xác định người ta tìm cách thích hợp để xác định “khoảng cách” giữa các đối tượng, hay chính là phép đo tương tự dữ liệu. Đây là các hàm đo sự giống nhau giữa các cặp đối tượng dữ liệu. Thơng thường, chúng ta tính độ tương tự (Similarity) hoặc độ phi tương tự (Dissimilarity). Giá trịcủa hàm tính độ tương tự càng lớn thì sự giống nhau giữa các đối tượng càng lớn và ngược lại. Hàm tính độ phi tương tự và hàm tính độ tương tự là tỉ lệ nghịch với nhau.
Tất cả độ đo sau đây được xác định trong không gian metric (Metric space). Bất kỳ một metric nào cũng là một độ đo nhưng điều ngược lại không đúng. Độ đo ở đây có thể là độ tương tự hoặc phi tương tự. Một tập dữ liệu X là một khơng gian metric nếu:
• Với mỗi cặp đối tượng x, y thuộc X đều xác định một số thực d(x, y) theo một quy tắc nào đó được gọi là khoảng cách giữa x và y.
• Quy tắc đó phải thỏa mãn các tính chất sau:
– d(x, y)≥0 nếu x̸=y – d(x, y) = 0 nếu x=y – d(x, y) = d(y, x) – d(x, y)≤d(x, z) +d(z, x) 2.5.2 Mốt số hàm thông dụng 2.5.2.1 Hệ số Jaccard
Giải thuật Chỉ mục Jaccard, hay còn gọi là giải thuật tỉ lệ của giữa phần giao và phần hợp của hai tập hợp, là giải thuật được đưa ra bởi nhà Tốn học Pháp Paul Jaccard. Như đã nói ở trên, giải thuật này là kết quả tính tốn độ tương đồng giữa giao của hai tập hợp và hợp của hai tập hợp, được tính tốn như sau:
J(A, B) = |A∩B|
|A∪B| =
|A∩B|
|A|+|B| − |A∩B|
Nếu tập AA và tập BB đều rỗng, mặc định J(A,B)= 1. Giá trị của J(A,B) luôn phải thoả mãn điều kiện sau: 0≥J(A, B)≥1
2.5.3 Khoảng cách Euclidean
Khoảng cách Euclid giữa hai điểm trong không gian Euclid là độ dài của đoạn thẳng nối hai điểm đó. Có thể tính nó từ tọa độ Descartes của hai điểm bằng cách sử dụng định lý Pythagoras, do đó cịn có tên gọi khác là khoảng cách Pythagoras (. Hai danh pháp trên được đặt theo tên của hai nhà toán học Hy Lạp cổ đại Euclid và Pythagoras, dù Euclid không dùng số để chỉ khoảng cách và mối liên hệ giữa định lý Pythagoras với việc tính khoảng cách chưa được thiết lập cho đến thế kỷ 18.
Xét hai điểm X và Y thuộc không gian k chiều, khoảng cách d(X,Y) giữa hai điểm X và Y là: d(x, y) = ( k X i=1 |xi−yi|2)1/2 2.5.4 Khoảng cách Mahattan
Khoảng cách Manhattan, còn được gọi là khoảng cách L1 hay khoảng cách trong thành phố, là một dạng khoảng cách giữa hai điểm trong không gian Euclid với hệ tọa độ Descartes. Đại lượng này được tính bằng tổng chiều dài của hình chiếu của đường thẳng nối hai điểm này trong hệ trục tọa độ Descartes.
Xét hai điểm X và Y thuộc không gian k chiều, khoảng cách d(X,Y) giữa hai điểm X và Y được tính theo cơng thức sau:
d(x, y) =
k
X
i=1
2.5.5 Khoảng cách Minkowski
Khoảng cách Minkowski là một biện pháp phức tạp hơn một chút so với hầu hết. Nó là một số liệu được sử dụng trong không gian vectơ định mức (khơng gian thực n-chiều), có nghĩa là nó có thể được sử dụng trong một khơng gian mà khoảng cách có thể được biểu diễn dưới dạng vectơ có độ dài.
Xét hai điểm X và Y thuộc không gian k chiều, khoảng cách d(X,Y) giữa hai điểm X và Y được tính theo cơng thức sau:
d(x, y) = (
k
X
i=1
|xi−yi|q)1/q
Trong đó, thơng số q là một tham số có thể được điều chỉnh để phù hợ cho bài toán cần giải quyết. Các giá trị q thường được dùng là 2,3 hoặc 4.
2.5.6 Kết luận
Có thể nhận ra rằng, các hàm đo độ giống nhau hoặc khoảng cách giữa hai điểm thường được sử dụng được thiết kế với dữ liệu dạng rời rạc, nhị phân hoặc liên tục. Chúng không được thiết kể để giải quyết các bài toán liên quan tới sự giống nhau của dữ liệu: sự giống nhau của dữ liệu là sự tương đồng về các giá trị của các phần tử trong tập dữ liệu, sự tương đồng đó có thể là sự tương đồng về phần tử (hai thuộc tính dữ liệu có chung các phần tử), sự tương đồng về ngữ nghĩa (hai thuộc tính dữ liệu cùng là về các bang của Hoa kỳ), ...
Vì vậy, việc sử dụng các độ đo khoảng cách, đo độ tương đồng truyền thống là khơng hiệu quả đối với bài tốn tìm độ tương đồng về dữ liệu. Chính vì vậy trong [7], Renee J. Miller đã đề ra các giải pháp để đo độ tương đồng của dữ liệu. Nghiên cứu của Miller sẽ được trình bày ở phần sau.
2.6 Cơng trình nghiên cứu giải pháp Table Union Search của Renee J. Miller
2.6.1 Giới thiệu
Nghiên cứu [7] của Miller là nghiên cứu giải quyết bài tốn tìm kiếm các bảng có thể kết hợp lại với nhau. Theo Miller định nghĩa, hai bảng được gọi là có thể kết hợp với nhau (unionable) nếu chúng có các thuộc tính tới cùng lĩnh vực (domain). Để giải quyết bài toán này, Miller đã định nghĩa bài tốn tốn tìm kiếm các bảng có thể kết hợp lại với nhau thành bài tốn tìm kiếm k phần tử giống nhất (top-k query). Để có thể sử dụng giải thuật top-k query, Miller cần phải định nghĩa ra một độ đo khoảng cách có thể sử dụng cho các tập dữ liệu. Dựa trên định nghĩa về các bảng có thể kết hợp, nghiên cứu đã đề ra các thước đo độ giống nhau trên ba lĩnh vực (domain) là tập hợp (Set Domain), ngữ nghĩa (Semantics Domain) và ngôn ngữ tự nhiên (Natural Language Domain). Miller cũng đã định nghĩa ra cách để tổng hợp ba lĩnh vực này lại với nhau. Tuy nhiên, cách tổng hợp còn khá đơn sơ, là một hàm max đơn giản.
Set Domain có thể được hiểu một cách đơn giản là Domain (lĩnh vực) tổ hợp tập hợp: một lĩnh vực D là một tập hợp hữu hạn bao gồm nhiều giá trị đơn lẻ (discrete value). Một ví dụ cho trường hợp này là tổ hợp tên của các thành phố ở Hoa Kỳ: (Chicago, Seatle, San Francisco, Las Vegas, Houston, New York, Boston, Portland, Atlanta), ta gọi tập hợp này là Domain C . Giả sử ta có thêm hai thuộc tính A (Chicago, Seatle, Houston) và B (Las Vegas, Chicago, Houston, New York). Dễ dàng có thể nhận ra rằng cả mọi phần tử của A và B thuộc Domain C, do vậy, ta có thể nói rằng A và B đều thuộc Set Domainc C. Chi tiết về cách tính độ tương đồng theo Set Domain sẽ được trình bày ở phần sau.
Semantics Domain có thể được hiểu là Domain về ngữ nghĩa. Giả sử ta có hai tập thuộc tính là A (Chicago, Seatle, San Francisco, Las Vegas) và B (Boston, Portland, Atlanta). Thay vì phải tìm một Set Domain C chứa tồn bộ các phần tử của A và B, ta có thể nhận ra rằng cả thuộc tính A và B đều là tập hợp của tên các thành phố ở nước Mỹ - hay nói cách khách, ngữ nghĩa của (semantics) A và
B đều là "tên của các thành phố của Hoa Kỳ". Vì vậy, A và B sẽ thuộc cùng một Semantic Domain. Việc tìm kiếm các Semantic Domain là một vấn đề lên quan tới cac1 lĩnh vực về ontology, knowledge base. Chi tiết về cách tính độ tương đồng theo Semantics Domain có thể được tham khảo thêm trong [7].
Natural Language Domain được tác giả đề ra để giải quyết các trường hợp mà Semantics Domain và Set Domain không thể giải quyết được: Set Domain sẽ giải quyết trường hợp hai thuộc tính có nhiều phần tử trùng nhau (lý do sẽ được trình bày ở phần sau), Sematics Domain cần phải sử dụng các nhãn (label) ngữ nghĩa (semantics) nên các giá trị khơng có nhãn ngữ nghĩa như tên bài báo, nghiên cứu khoa học sẽ không thể được ánh xạ sang một nhãn ngữ nghĩa được. Vì vậy, cần phải có một Domain về ngơn ngữ tự nhiên để xử lý các trường hợp này. Cách để kiểm tra xem hai thuộc tính A và B có cùng một Natural Language Domain được phát triển dựa trên các kĩ thuật về xử lý ngơn ngữ tự nhiên và có thể được xem trong [7].
Vì đây chỉ là nghiên cứu sơ khởi cho các nghiên cứu sau, tôi sẽ chỉ áp dụng Set Domain trong luận văn này. Các Domain còn lại sẽ được nghiên cứu thêm ở trong các nghiên cứu sau.
2.6.2 Set Unionability
Trong luận văn này, tôi chỉ dùng Set Unionability để đo độ tương đồng giữa hai tập dữ liệu vì đây là nghiên cứu khởi đầu cho các nghiên cứu về phương pháp kết hợp dữ liệu sử dụng giải thuật gom cụm. Set Unionability là độ đo độ tương đồng sử dụng phương pháp Set Domain. Trong đó, một Domain D có thể được hiểu là một tập các giá trị rời rạc. Đánh đánh giá xem thuộc tính A và B có đến từ cùng một Set Domain D hay không, ta giả sử A là một tập lấy mẫu ngẫu nhiên của D và chúng ta sẽ kiểm tra xem liệu B có có phải là một mẫu ngẫu nhiên của D hay khơng. Bởi vì Domain D là khơng thể biết trước được nên chúng ta gỉa sử A là một tập lấy mẫu của D và phần tử của A là các giá trị biết được của D. Sau đó, chúng ta có thể dùng kích thước của vùng giao hai tập A và B như là một phép thử thống kê để tính tốn tỉ lệ cả A và B đều đến từ cùng mợt Domain D. Các kiến thức liên quan tới phép thử này có thể được xem thêm tại [37].
Giả sử rằng D chứa các giá trị của A như là các "success value"và chúng ta chọn |α | mẫu từ D theo phương pháp không thay thế (without replacement). Nếu chúng ta chọn đúng phần tử trong phần giao của A và B thì chúng ta gọi đó là lần chọn thành cơng, cịn nếu khơng thì là lần chọn thất bại. Trong trường hợp này, số lần lựa chọn thành công sẽ đại diện cho khả năng cả A và B đều đến từ Set Domain D. Gọi na = |A|, nb = |B| và nD = |D|. Nếu A thuộc Set Domain D và B được rút từ from D thì phân bố của số lần chọn thành công s ( s ∈ {1, 2, ...,A∩B}) là:
p(s|na, nb, nD) = C(na, s)C(nD −na, nb−s)
C(nD, nb)
Xác xuất p(s) giúp chúng ta đánh giá độ quan trọng thống kê (statistical significance) của vùng giao - tức là có phải A và B đều đến từ cùng một Set Domain D với một kích cỡ vùng giao cụ thể. Bằng cách sử dụng vùng giao của A và B, t = |A ∈B| , ta có thể định nghĩa phân phối tích lũy (cumulative distribution) của t:
F(t|A, B) = X
0≤s≤t
p(s|na, nb, nD)
Phân phối tích lũy (cumulative distribution) trên có thể được dùng như một cách để kiểm định giả thuyết thống kê (hypothesis test), nghĩa là chúng ta có thể bác bỏ giả thuyết A và B đến từ cùng một Domain nếu giá trị F(t|A, B) nhỏ hơn ngưỡng θ. Vì vậy, ta có thể dùng F như là một thước đo độ giống nhau hay là độ
khả kết hợp (unionability) của hai tập. Set Unionability Uset(A, B) sẽ được tính bằng:
Uset(A, B) = F(t|A, B)
Có thể thấy rằng, để tính Set Unionability, chúng ta cần kích cỡ của Domain D . Tuy nhiên, trong thực tế, việc biết trước Domain D một cách chính xác là khơng thực tế và bất khả thi. Vì vậy, chúng ta sẽ giả định ra rằng Domain D xấp xỉ là một tổ hợp rời rạc (disjoint union) của A và B: nD ≈ na + nb.
Phương pháp
3.1 Giới thiệu
Như đã trình bày ở chương 1, ta có thể biết được tầm quan trọng của quy trình tổng hợp dữ liệu hệ thống dữ liệu mở và nhận thấy nhu cầu cần thiết phải nghiên cứu quy trình data union. Ở chương 2, từ các kết quả nghiên cứu trên thế giới hiện nay cũng như các kiến thức cơ sở về phân cụm dữ liệu, dữ liệu mở, các độ đo độ giống nhau được trình bày, ta có thể kết luận việc sử dụng giải thuật phân cụm phân cấp kết hợp với các độ đo độ giống nhau giữa các tập dữ liệu là hướng đi đúng đắn và hoàn toàn khả thi. Tuy nhiên, các nghiên cứu và giải pháp hiện nay vẫn chưa giải quyết bài toán data union giữa các tập dữ liệu hoặc chỉ giải quyết bài tốn tìm kiếm k tập dữ liệu (top-k searching) giống nhất với một tập dữ liệu tìm kiếm (query dataset). Ngoài ra, các nghiên cứu hiện tại vẫn chỉ dừng lại ở mức giải thuật. Vì vậy, luận văn đề xuất một hướng đi cho bài toán data union với các tập dữ liệu được lưu trữ trong datastore, đối tượng cụ thể là MongoDB. Mục tiêu của giải pháp không chỉ dừng lại ở MongoDB mà cịn có thể phát triển mở rộng cho nhiều nền tảng khác nhằm mục tiêu xây dựng một hệ thống dữ liệu mở có thể tổng hợp các tài nguyên về dữ liệu trong datas tore của chúng, đem lại giá trị sử dụng cao cho người dùng cuối.
Để có thể giải quyết bài tốn data union trong ngữ cảnh datastore, ta có nhiều bài tốn con cần phải giải quyết để đi đến kết quả:
• Làm thế nào để đo độ giống nhau giữa hai tập dữ liệu.
• Làm thế nào để đo độ giống nhau giữa hai thuộc tính (attribute) của hai tập dữ liệu.
• Khi đã có kết quả về độ giống nhau giữa các tập dữ liệu, làm thế nào để chọn ra các tập dữ liệu giống nhau để kết hợp.
• Cách kết hợp hai tập dữ liệu lại với nhau, các thuộc tính (attribute) nào là tương đương với nhau giữa hai tập dữ liệu.
Nội dung chương sẽ lần lượt trình bày các giải pháp để trả lời các câu hỏi trên. 3.2 Phương pháp đề xuất
Với mục tiêu giải quyết bài tốn data union trong datastore MongoDB, tơi xin đề ra giải pháp sau:
• Sử dụng độ đo là Set Unionability trong [7] để tìm độ giống nhau giữa các thuộc tính, các tập dữ liệu.
• Sử dụng giải thuật gom cụm phân cấp để chọn ra các tập dữ liệu giống nhau để kết hợp.
Giải pháp cụ thể sẽ bao gồm ba bước lớn như sau:
• Bước 1 - Schema Step: Tìm kiếm schema (cấu trúc) của các tập dữ liệu: các schema này sẽ được dùng trong các bước tiếp theo.
• Bước 2 - Clustering Step: Dùng giải thuật phân cụm trên các tập dữ liệu để tìm ra cách union các tập dữ liệu tốt nhất.
• Bước 3 - Union Step: Tổng hợp các tập dữ liệu ban đầu thành các tập dataset tổng hợp.
Hình 3.1: Các bước lớn của quy trình data union
Chi tiết của các bước trên sẽ được trình bày rõ hơn ở các mục sau. 3.2.1 Schema Step
Schema Step như đã trình bày ở trên sẽ thực hiện viêc trích xuất schema (cấu trúc) của các tập dữ liệu. Trong ngữ cảnh của luận văn, các tập dữ liệu sẽ được lưu trong datastore là MongoDB. Tuy nhiên, sự lựa chọn MongoDB là do ý thích cá nhân, khơng q ảnh hưởng tới q trình. Các cơng cụ cơ sở dữ liệu tài liệu khác như CouchDB, OrientDB cũng có thể được sử dụng thay cho MongoDB.
Q trình tìm kiếm, trích xuất schema của các tập dữ liệu khác đơn giản. Bao gồm các bước như sau:
Với mỗi tập dữ liệu:
• Đọc tồn bộ dữ liệu trong tập dữ liệu, lưu ý tên các thuộc tính (attribute) và kiểu các thuộc tính của tập dữ liệu, biến chúng về cấu trúc hợp lí để lưu trữ thành schema của tập dữ liệu.
• Lưu kết quả vừa tìm được để sử dụng sau này.
Như mọi người có thể thấy, cấu trúc schema ở trên khá đơn giản, chỉ bao gồm các thuộc tính của dữ liệu trong mỗi tập dữ liệu và kiểu dữ liệu tương ứng của chúng. Kết quả cuối cùng sẽ là một dictionary chứa toàn bộ cấu trúc (schema) của một tập dữ liệu trong datastore với tên cảu tập dữ liệu sẽ là khóa của cấu trúc (schema) tương ứng của tập dữ liệu. Một ví dụ về kết quả cuối cùng có thể được xem ở hình4.5.