Trả lời các truy vấn không tường minh sử dụng các phụ thuộc hàm xấp xỉ và các tương tự khái niệm Trả lời các truy vấn không tường minh sử dụng các phụ thuộc hàm xấp xỉ và các tương tự khái niệm Trả lời các truy vấn không tường minh sử dụng các phụ thuộc hàm xấp xỉ và các tương tự khái niệm luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 2-
LUẬN VĂN THẠC SĨ KHOA HỌC
TRẢ LỜI CÁC TRUY VẤN KHÔNG TƯỜNG MINH SỬ DỤNG CÁC PHỤ
THUỘC HÀM XẤP XỈ VÀ CÁC TƯƠNG TỰ KHÁI NIỆM
NGÀNH: SƯ PHẠM KĨ THUẬT
LƯƠNG THỊ HỒNG LAN
Người hướng dẫn khoa học: TS NGUYỄN KIM ANH
HÀ NỘI 2007
Trang 3M ục lục
Mở đầu 5
Chương 1 Tổng quan về truy vấn không tường minh 1.1 Truy vấn không tường minh là gì? 8
1.2 Bài toán đặt ra 10
1.3 Các công việc liên quan đến việc hỗ trợ trả lời các truy vấn không tường minh 12
1.4 Nới lỏng điều kiện truy vấn 23
1.5 Kết luận 28
Chương 2 Tính toán các phụ thuộc hàm xấp xỉ 2.1 Phụ thuộc hàm và phụ thuộc hàm xấp xỉ 30
2.2 Tính toán các phân hoạch và các phụ thuộc 33
2.3 Lược bớt phụ thuộc 40
2.4 Tính toán các phụ thuộc hàm xấp xỉ 43
2.5 Đánh giá 51
2.6 Kết luận 53
Chương 3 Trả lời các truy vấn không tường minh 3.1 Nới lỏng truy vấn sử dụng phụ thuộc hàm xấp xỉ 54
3.2 Nghiên cứu các tương tự khái niệm 58
3.3 Trả lời các truy vấn không tường minh 63
3.4 Đánh giá và so sánh 67
3.5 Kết luận 75
Kết luận và hướng phát triển 76
Tài liệu tham khảo 78
Trang 4Các thu ật ngữ viết tắt trong luận văn
AFD (Approximate functional dependence): Phụ thuộc hàm xấp xỉ
EIM (Enterprise Information Management): Trình quản lý thông tin doanh nghiệp
IM (Intelligent Mediator): Bộ điều khiển thông minh
IR (Information Retrieval): Tìm kiếm thông tin
PIM (Personal Information Management): Trình quản lý thông tin cá nhân WWW (World Wide Web): Mạng toàn cầu
Trang 5MỞ ĐẦU
Trong những năm gần đây, trên cơ sở phát triển và ứng dụng công nghệ Internet, khối lượng dữ liệu trên máy tính đã tăng trưởng không ngừng theo cả hai phương diện tạo mới và thu thập Sự mở rộng các dữ liệu khoa học về địa
lý, địa chất, khí tượng do vệ tinh thu thập, sự giới thiệu quảng bá mã vạch đối
với hầu hết các sản phẩm thương mại, việc tin học hoá sâu rộng các thương
vụ và giao dịch, sự phát triển việc ứng dụng CNTT trong quản lý hành chính nhà nước đã phát sinh ra một khối lượng dữ liệu khổng lồ Mặt khác, trong bối cảnh nền tảng cho một xã hội thông tin, nhu cầu nhận được thông tin một cách nhanh chóng, chính xác cũng như nhu cầu thu nhận được "tri thức" từ
khối lượng thông tin khổng lồ nói trên đã trở nên cấp thiết Bối cảnh đó đã đòi hỏi những phương pháp tiếp cận mới mà trong đó điển hình nhất là các phương pháp thuộc lĩnh vực khai phá dữ liệu và khám phá tri thức trong các
và xuất bản các trang web rất rẻ So sánh với các phương pháp khác như sản
xuất tờ rơi hay quảng cáo trên báo và tạp chí thì trang web rẻ hơn rất nhiều và
lại được cập nhật thường xuyên hơn đến hàng tỷ người sử dụng, vì vậy mà ngay cả các công ty rất nhỏ cũng có khả năng đưa các sản phẩm và dịch vụ của họ lên WWW Hơn nữa có rất nhiều các công ty hoạt động bán hàng trực
Trang 6tuyến trên Internet, vì vậy mà nhu cầu đưa các thông tin lên WWW là hoàn toàn tự nhiên Nhưng với việc tăng không ngừng các site thì việc tìm ra một trang hay thậm chí một site mà mỗi cá nhân đang cần lại thực sự là một vấn
đề ngày càng khó khăn
Các mô hình xử lí truy vấn cơ sở dữ liệu luôn giả thiết rằng người dùng
biết cô ấy muốn gì và có thể công thức hóa câu truy vấn sao cho biểu thị đúng đắn ý muốn của cô ấy Nhưng với tốc độ phát triển nhanh chóng của mạng WWW, một số lượng lớn các cơ sở dữ liệu như cơ sở dữ liệu khoa học, lịch sử…đang ngày càng trở nên dễ tiếp cận để làm hài lòng những đòi hỏi
của người dùng Thường thì những người sử dụng này có thể không biết cách
diễn tả chính xác những cái mà họ cần và công thức hóa câu truy vấn nên có thể dẫn tới kết quả trả lời không thỏa mãn yêu cầu của họ Mặc dù người sử dụng không biết làm sao để diễn tả câu hỏi của họ nhưng khi câu trả lời là
một tập hỗn loạn các kết quả có các mức độ tương đương khác nhau tới câu truy vấn thì chúng có thể đưa ra những bộ dữ liệu nào liên quan tới chúng Do
đó, các mô hình xử lí câu truy vấn cơ sở dữ liệu phải bao quát cả các khái niệm hệ thống của IR sao cho người dùng chỉ cần có những ý tưởng mờ về những thứ cô ấy cần đều có thể công thức hóa câu truy vấn nói lên những thứ
cô ấy cần và thích tạo ra một tập hợp xếp hạng các câu trả lời Sự dịch chuyển trong mô hình cũng cần phải có sự trợ giúp của các câu truy vấn không tường minh Điều này cũng được đề cập tới trong một vài nghiên cứu
cơ sở dữ liệu gần đây
Trong luận văn này chúng tôi giới thiệu một cách tiếp cận mới qua việc khai thác các phụ thuộc hàm xấp xỉ và các tương tự khái niệm để hỗ trợ trả
lời cho các truy vấn mờ, truy vấn không tường minh thông qua cơ sở dữ liệu web Chúng tôi cũng sử dụng ví dụ minh hoạ dưới đây để giới thiệu một cách tổng quan về hướng tiếp cận của chúng tôi
Trang 7Ví dụ: Giả thiết một người sử dụng muốn tìm kiếm ô tô có giá khoảng 10000$ trong cơ sở dữ liệu ô tô, CarDB (Make, Model, Year, Price, Location) Dựa trên lược đồ cơ sở dữ liệu người dùng có thể đưa ra câu truy vấn sau:
Q: - CarDB(Model = Camry, Price < 10000)
Dựa trên việc nhận câu truy vấn, CarDB sẽ cung cấp một danh sách các Camry mà có giá dưới 10000$ Tuy nhiên cũng có thể giới thiệu Accord cũng
là một chiếc ô tô giống tương tự, người dùng có thể quan tâm xem luôn tất cả các Accord có giá dưới 10000$ Người dùng cũng có thể thích chiếc Camry giá 10500$
Trong ví dụ trên, mô hình xử lí câu truy vấn do CarDB sử dụng không gợi
ý rằng những chiếc Accord hay Camry có giá cao hơn như là một câu trả lời quan tâm khi người dùng không đặc biệt hỏi về chúng trong câu truy vấn của
họ Điều này sẽ buộc người dùng vào những vòng quay chán ngắt của việc đưa ra câu hỏi lặp đi lặp lại cho tất cả các mô hình tương tự trước khi người dùng nhận được câu trả lời thỏa mãn Một cách để tự động hóa điều này là cung cấp cho bộ xử lý câu truy vấn những thông tin về các mô hình tương tự (
ví dụ như nói rằng Accord có độ tương tự 0.9 với Camry) Trong khi các cách
tiếp cận thử nghiệm, nhược điểm của họ là có sự thu nhận của các độ đo
tương tự chuyên biệt miền – một vấn đề mà chỉ gây khó chịu khi là tăng thêm các cơ sở dữ liệu có thể truy cập công cộng
Đây là động lực cho cách tiếp cận tiếp cận của chúng tôi: hơn là chuyển
trọng tâm của việc cung cấp các giá trị hàm tương tự và các yêu cầu thuộc tính tới người dùng, chúng tôi đưa ra một hướng tiếp cận chuyên biệt miền để rút và tự động xếp hạng hiệu quả các bộ dữ liệu thoả mãn câu truy vấn không tường minh thông qua cơ sở dữ liệu web Đặc biệt, chúng tôi chú ý tới việc
Trang 8khám phá các ngữ nghĩa vốn được giới thiệu trong các bộ (như khi chúng đại
diện cho các đối tượng thế giới thực) và cấu trúc của các mối quan hệ dự kiến bởi cơ sở dữ liệu Chúng tôi không tập trung đưa con người ra khỏi vòng quay, nhưng để để giảm bớt đáng kể số lượng đầu vào thì người dùng phải cung cấp câu trả lời thỏa mãn Đặc biệt chúng ta muốn kiểm tra chúng ta có
th ể thỏa mãn yêu cầu của người dùng tới mức nào khi chỉ sử dụng thông tin trong cơ sở dữ liệu: chúng ta có thể tạo mô hình khái niệm tương tự của
ng ười dùng gần gũi ra sao khi chỉ sử dụng các thông tin sẵn có trong cơ sở
d ữ liệu?
Với mục tiêu là khai phá các phụ thuộc hàm xấp xỉ và các khái niệm tương
tự để hỗ trợ trả lời cho các truy vấn không tường minh, nội dung luận văn được định hướng vào các vấn đề sau:
- Tìm hiểu về các truy vấn mờ, truy vấn không tường minh
- Tìm hiểu các phụ thuộc hàm xấp xỉ giữa các thuộc tính, sự nới
lỏng điều kiện truy vấn dựa trên các phụ thuộc hàm xấp xỉ
- Tìm hiểu các khái niệm tương tự, từ đó đưa ra cách tiếp cận để đánh giá một cách tự động các khoảng cách ngữ nghĩa giữa các giá trị
của các thuộc tính
- Đưa ra một khung xử lý truy vấn có tích hợp các kỹ thuật cho phép chiết xuất thông tin và nghiên cứu cơ sở dữ liệu, từ đó xác định một cách hiệu quả câu trả lời cho các truy vấn không tường minh
Do đó, luận văn có bố cục như sau:
Chương 1 với tiêu đề là Tổng quan về truy vấn không tường minh giới
thiệu sơ bộ các khái niệm cơ bản về truy vấn tường minh, truy vấn không
tường minh, các cách tiếp cận và sự nới lỏng điều kiện truy vấn
Trang 9Chương 2 với tiêu đề là Tính toán các phụ thuộc hàm xấp xỉ Nội dung
của chương này đi tìm hiểu các phụ thuộc hàm, phụ thuộc hàm xấp xỉ và phương pháp để tính toán các phụ thuộc hàm xấp xỉ giữa các thuộc tính
Chương 3 Trả lời các truy vấn không tường minh Chương này giới thiệu
về cách tiếp cận mới của chúng tôi để trả lời cho các truy vấn không tường minh, sử dụng các phụ thuộc hàm xấp xỉ để nới lỏng điều kiện truy vấn, tìm hiểu các tương tự khái niệm và sử dụng chúng để hỗ trợ trả lời cho các truy vấn không tường minh
ra một số hạn chế chưa hoàn thiện cài đặt thực sự Đồng thời luận văn cũng đề
xuất một số hướng nghiên cứu cụ thể tiếp theo của tác giả luận văn
Qua đây, tôi cũng xin gửi lời cảm ơn đến cô giáo TS Nguyễn Kim Anh, người đã giúp đỡ tôi rất nhiều trong quá trình làm luận văn đồng thời cũng xin cảm ơn gia đình và các đồng nghiệp đã động viên, giúp đỡ tôi để tôi hoàn thành luận văn này
Trang 10Chương 1
1.1 Truy v ấn không tường minh là gì?
Truy v ấn tường minh: là một truy vấn của người dùng yêu cầu dữ liệu thỏa
mãn chính xác các ràng buộc của truy vấn
Ví dụ như truy vấn Q:- CarDB(Make = “Ford”) là một truy vấn tường minh, tất cả các bộ dữ liệu kết quả của nó phải có thuộc tính “Make” có giá trị
là “Ford”
Truy v ấn không tường minh: là một truy vấn người dùng mà yêu cầu sự
phù hợp gần chính xác nhưng không nhất thiết phải chính xác với các ràng buộc của truy vấn Các câu trả lời cho truy vấn không tường minh phải được
xếp hạng theo mức độ gần gũi/ tương tự với các ràng buộc của truy vấn
Ví dụ như truy vấn Q:- CarDB (Make like “Ford”) là một truy vấn không
tường minh, câu trả lời phải có thuộc tính “Make” giới hạn bởi các giá trị tương đương với “Ford”
Như vậy một truy vấn không tường minh là một truy vấn có các ràng buộc truy vấn mềm dẻo hơn so với truy vấn tường minh và có yêu cầu đối sánh
tương tự chứ không yêu cầu phải chính xác như ở truy vấn tường minh Cho nên một câu truy vấn không tường minh có thể chuyển đổi sang truy vấn tường minh bằng việc siết chặt các quan hệ trong ràng buộc truy vấn Ví dụ
như, siết chặt quan hệ “like” thành “equal-to” trong truy vấn không tường minh cho chúng ta truy vấn tường minh “Make = Ford”
Trang 11Vì sao chúng ta ph ải quan tâm tới việc hỗ trợ trả lời các truy vấn không
Như chúng ta đã biết sự phát triển nhanh như vũ bão của Internet đã làm
đa dạng hoá các cơ sở dữ liệu, bao gồm cơ sở dữ liệu khoa học, hệ thống điều tra du lịch, … sự tăng trưởng của các hệ thống này dẫn đến sự thay đổi lớn trong mô tả yêu cầu của người dùng để làm sao có thể đáp ứng yêu cầu của người dùng “sự hài lòng ngay tức khắc” Bởi vậy đa số các cơ sở dữ liệu sẵn sàng trên Internet và Web đều cung cấp giao diện dựa trên mẫu để cho phép người dùng có thể tương tác dễ dàng với với cơ sở dữ liệu Các yêu cầu của
người dùng tự động được chuyển đổi tới các câu truy vấn thông qua cơ sở dữ
liệu Các giao diện dựa trên mẫu này mặc dù rất dễ dàng sử dụng nhưng chỉ
hỗ trợ các câu truy vấn nối tiếp với vị từ chọn lọc được đưa ra qua cơ sở dữ liệu, các truy vấn tường minh chính xác phù hợp với các bộ dữ liệu
Mặt khác do hệ thống cơ sở dữ liệu ngày càng đa dạng nên làm tăng thêm
độ phức tạp của các kiểu dữ liệu như những tài liệu siêu văn bản, các hình ảnh… mà các giao diện lại thiếu các mô hình linh hoạt, các thông tin miền Hơn nữa các giao diện truy vấn cơ sở hiện nay lại giới hạn khả năng truy vấn
Sự đa dạng của các kiểu dữ liệu là khó có thể tính toán đúng các câu truy vấn trên chúng Cho nên người dùng có vẻ khó khăn trong việc rút ra được những thông tin mà mình mong muốn
Thêm nữa người dùng thường mong muốn “gần như thế” thay thế cho việc mong muốn “chính xác” Cho nên các câu truy vấn mờ truy vấn không tường minh do người dùng đưa ra có thể nhận lại các câu trả lời không như mong đợi Thường thì người dùng phải tính toán lại các câu truy vấn trước khi họ
nhận được câu trả lời thỏa mãn Như vậy việc thiếu kiến thức về nội dung của
Trang 12cơ sở dữ liệu và khả năng câu hỏi có hạn của giao diện có thể làm cho người dùng không thu được kết quả thỏa mãn từ cơ sở dữ liệu
Các vấn đề ở trên có thể được giải quyết bởi việc cung cấp những câu trả lời tương tự nếu người dùng không đưa ra một câu truy vấn tường minh, một truy vấn có các yêu cầu một cách chính xác Câu trả lời sẽ được xếp hạng dựa trên độ tương thích của chúng với câu truy vấn của người dùng Với các lý do
ở trên thì việc cung cấp các cách để hỗ trợ trả lời cho các truy vấn không tường minh là rất cần thiết đối với các giao diện cơ sở dữ liệu hiện nay
Cụ thể hơn chúng ta sẽ minh họa vấn đề hỗ trợ trả lời hco các truy vấn
tường minh bằng bài toán cụ thể sau và các thách thức gặp phải khi giải quyết bài toán
Ans (Q) = {x | x ∈ R, Sim (Q, x) > ε} với ε ∈ {0, 1}
Cơ sở dữ liệu M hỗ trợ mô hình xử lí truy vấn boolean (ví dụ như một bộ
có thể thỏa mãn hoặc không thỏa mãn truy vấn) Để truy nhập các bộ dữ liệu
của R chúng ta phải đưa ra các truy vấn có cấu trúc trên R Các câu trả lời cho
Q phải được xác định mà không thay đổi mô hình dữ liệu của M
1.3.2 Thách thức đặt ra khi giải quyết bài toán
Với bài toán đặt ra ở trên ví dụ có câu truy vấn của người dùng là:
Trang 13Q:- CarDB (Model like Camry, Price like 10000)
Giả thiết rằng người dùng tìm kiếm ô tô giống như Camry sẽ rất hạnh phúc nếu chỉ ra rằng ô tô mẫu Camry thỏa mãn hầu hết các ràng buộc của cô ấy Từ đây, chúng ta thu được truy vấn bởi việc siết chặt các ràng buộc từ “likeness”
tới “=”:
Qpr :- CarDB (Model = Camry, Price = 10000)
Nhiệm vụ của chúng ta bắt đầu với việc trả lời những bộ dữ liệu đối với
Qpr- gọi là tập cơ sở, nhưng chúng ta lại tìm thấy các bộ khác tương tự với các
bộ trong tập cơ sở và xếp hạng chúng dưới dạng tương tự Q ý kiến của chúng
ta là xem từng bộ trong tập cơ sở như là câu truy vấn lựa chọn và đưa ra sự
giảm nhẹ của các câu truy vấn lựa chọn này tới cơ sở dữ liệu để tìm kiếm các
bộ tương tự bổ sung Ví dụ như, nếu một trong các bộ của tập cơ sở là
Make = Toyota, Model = Camry, Price= 10000, Year = 2000
Chúng ta có thể đưa ra câu truy vấn giảm bớt một vài ràng buộc thuộc tính trong bộ dữ liệu này ý kiến này dẫn tới thách thức đầu tiên: Sự giảm bớt nào
sẽ sản sinh ra nhiều bộ tương tự? Một khi chúng ta đưa ra ý tưởng này và
quyết định lược bớt truy vấn, chúng ta có thể đưa chúng cho cơ sở dữ liệu và tạo các bộ dữ liệu bổ sung sao cho tương tự như các bộ trong tập cơ sở Tuy nhiên, không giống như tập cơ sở, những bộ dữ liệu này có thể có những mức thay đổi sao cho thích ứng với người dùng Do đó chúng cần được sắp xếp trước khi đưa tới người dùng Điều này dẫn tới khó khăn thứ hai: Làm thế nào
để tính toán được độ tương tự giữa câu truy vấn và bộ trả lời? Vấn đề của
chúng tôi càng phức tạp bởi quan tâm của chúng tôi trong việc tạo ra các đánh giá tương tự không phụ thuộc vào ma trận khoảng cách cung cấp bởi
người dùng
Trang 14Vậy để hỗ trợ trả lời cho các truy vấn không tường minh, chúng ta cần giải quyết các vấn đề sau:
- Mô hình về độ tương tự: để trả lời các truy vấn không tường minh đòi hỏi phải mở rộng mô hình xử lí truy vấn dạng nhị phân (trong
đó có các bộ thỏa mãn hoặc không thỏa mãn truy vấn) tới một mô hình
của mức độ (theo đó một bộ được đưa ra có phải là một câu trả lời thỏa mãn hay không)
- Ước lượng sự tương tự ngữ nghĩa: Việc mong đợi người sử dụng
“không chuyên” của hệ thống cung cấp các độ đo tương tự để đánh giá
mức độ tương tự giữa các giá trị gắn với một thuộc tính được đưa ra là không thực tế Vì thế, một vấn đề quan trọng nhưng khó khăn mà chúng ta phải đối mặt là phát triển các hàm tương tự độc lập miền mà
có độ xấp xỉ gần với “mong muốn của người dùng”
- Thứ tự các thuộc tính: để cung cấp các kết quả có sắp xếp cho câu truy vấn, chúng ta phải kết hợp các độ tương tự được đưa ra trên các thuộc tính riêng biệt của quan hệ vào một số đo tương tự toàn bộ của mỗi bộ dữ liệu Trong khi độ đo này có thể khác nhau giữa các
người dùng, hầu hết người dùng thường không có khả năng định lượng
một cách chính xác mức độ quan trọng gán cho một thuộc tính
1.3 Các công vi ệc liên quan đến việc hỗ trợ trả lời các truy vấn không
Trang 151.3.1 S ử dụng thông tin không tường minh và không chắc chắn
Các hệ thống thông tin đều tồn tại mô hình, cách lưu trữ và khôi phục tất
cả các dữ liệu Vấn đề xuất hiện khi một số dữ liệu bị mất đi hoặc không biết chính xác hoặc khi một thuộc tính không phù hợp với một đối tượng đặc biệt
Hướng nghiên cứu này cho phép một số giá trị thuộc tính là giá trị tường minh, một chuỗi biểu thị giá trị bị mất, một chuỗi biểu thị giá trị không phù hợp hoặc là giá trị không tường minh Những giá trị không tường minh được giới thiệu trong sự đánh giá câu truy vấn, khi nó không hiển nhiên là đối tượng nào cần được khôi phục Để điều khiển được sự không chắc chắn này, hai tập các đối tượng được khôi phục trong mỗi truy vấn: một tập các đối
tượng chắc chắn thoả mãn đầy đủ và một tập có lẽ chỉ thỏa mãn một vài mức
độ không chắc chắn
Các hệ thống thông tin tồn tại các mô hình, lưu trữ, thao tác và khôi phục nhiều kiểu dữ liệu khác nhau, ví dụ như danh sách những người làm thuê, các đơn hàng, các báo cáo và tất cả các kiểu tài liệu Một mô hình thông thường được đưa ra là coi tất cả dữ liệu như là các đối tượng Theo [5], từng kiểu đối tượng được mô hình hóa bằng việc lựa chọn một số thuộc tính biểu diễn cho giá trị nào mà được gán Ví dụ như một viết tắt có thể được mô hình hóa và
lưu trữ như sau:
sender(memo-34) = Jim Smith
receiver(memo-34) = John Brown
subject(memo-34) = “Hệ thống sẵn sàng”
text(memo-34) = “Hệ thống không sẵn sàng vào 4/7”
Những thuộc tính tiêu biểu là sender, receiver, subject và text, và các giá
trị được nhìn thấy
Trang 16Đây là cách nhìn về mô hình dữ liệu đơn giản Một số ngoại lệ sẽ xuất hiện khi có đòi hỏi đặc biệt, và khi nghiên cứu các thông tin không tường minh và không chắc chắn trong các hệ thống thông tin [5] quan tâm đến việc phát triển các phương pháp hữu ích và chắc chắn để điều khiển các ngoại lệ này
Giả thiết thường xuyên một giá trị thuộc tính bị mất tích hoặc không biết trong hệ thống Ví dụ như người làm thuê có thể miễn cưỡng cung cấp các thông tin cá nhân như tuổi hoặc tôn giáo, người gửi có thể không thêm được tiêu đề đối tượng vào trong viết tắt, hoặc tác giả có thể quên đặt ngày tháng cho các tài liệu Một hệ thống phải trình bày và thao tác trên các giá trị này
một cách có ý nghĩa
Có một vài hạn chế trong phương pháp mô hình mẫu Trong một vài trường hợp thuộc tính đại diện không áp dụng được cho tất cả các đối tượng
Ví dụ nếu công ty không có máy fax thì thuộc tính “fax number” không phù
hợp với đối tượng lưu trữ của công ty đó Tương tự, nếu một người làm thuê
chưa kết hôn thì bất kỳ thuộc tính liên quan đến vợ hoặc chồng thì không phù hợp với người đó Điều quan trọng là hệ thống có thể biểu diễn rằng một thuộc tính không phù hợp với một đối tượng đặc biệt nào đó Nếu có thể làm như vậy thì chúng ta sẽ lợi thế là có thể phân biệt được các đối tượng nào mất giá trị và đối tượng nào có các thuộc tính không phù hợp
Hơn nữa giá trị thuộc tính chính xác chưa được biết đến nhưng một vài giá trị không tường minh lại sẵn có và chúng ta có thể sử dụng chúng Ví dụ như ngày và vị trí của cuộc họp tới không sẵn có nhưng chúng ta biết nó được tổ
chức vào tháng giêng ở New York hay Paris Thông tin không tường minh này có thể rất hữu ích cho người dùng
Có hai kiểu giá trị không tường minh được quan tâm Đầu tiên, nơi thông tin sẵn có trong danh sách các giá trị, một trong chúng là giá trị chính xác
Trang 17Đây là một miền p Ví dụ như vị trí của cuộc họp là ở Paris hay London Thứ hai chúng ta quan tâm đến trường hợp khi nào thông tin không tường minh là một vùng các giá trị và giá trị đúng nằm trong vùng này Đó là vùng p Ví dụ như tuổi của nhân viên trong khoảng từ 17 đến 65
Cách tiếp cận này sẽ mô hình hoá cho từng kiểu đối tượng bởi một tập hợp các thuộc tính tiêu biểu và cho phép mỗi giá trị theo một trong số sau: một giá trị chính xác thông thường, một miền p, một vùng p, một giá trị đặc biệt biểu thị “thuộc tính không áp dụng được” hoặc một giá trị biểu thị “thuộc tính không được biết đến” Hai tập hợp các đối tượng thu được trong câu trả lời
của mỗi truy vấn có thể thoả mãn truy vấn hoàn toàn hoặc có thể thoả mãn
một số mức độ không chắc chắn Sự không chắc chắn này được đánh giá và
sử dụng để xếp hạng các đối tượng biểu diễn cho người dùng
Hướng nghiên cứu sử dụng ngôn ngữ WHIRL để cung cấp các kết quả trả
lời xấp xỉ bằng việc chuyển đổi các giá trị thuộc tính trong cơ sở dữ liệu thành vector văn bản và sử dụng mô hình không gian vector để xếp hạng chúng
Trong hướng nghiên cứu này Cohen sẽ xem xét các khía cạnh khác nhau
của sự hợp nhất dữ liệu: sự hợp nhất của cơ sở dữ liệu mà thiếu các miền chung Để minh họa vấn đề này, hãy xem xét một quan hệ p với mô hình p (company, industry) mà liên kết công ty với mô tả ngắn về công nghiệp của
họ, và quan hệ q thứ hai với mô hình q (company, website) có quan hệ công
ty với trang chủ của họ Nếu p và q được lấy từ các cơ sở dữ liệu hỗn tạp khác nhau thì cùng công ty có thể được biểu thị bằng các hằng số X và X’ khác nhau ở trong p và q tương ứng, để không thể kết nối p và q theo cách thông thường
Trang 18Nói chung hầu hết các cơ sở dữ liệu chứa các miền trong đó các hằng số riêng lẻ tương ứng với các thực thể trong thế giới thực, ví dụ như các miền tên bao gồm số lượng khoá học, các tên riêng, tên công ty, tên phim và tên địa danh Hầu hết các hướng nghiên cứu về tích hợp dữ liệu trước kia hoặc giả thiết “các miền tên” là diện rộng hoặc giả thiết “các hằng số tên” cục bộ có
thể được vẽ trong một miền diện rộng bởi quá trình tiêu chuẩn hóa đơn giản một cách tương đối
Tuy nhiên việc kiểm tra các nguồn thông tin của thế giới thực đem lại nhiều trường hợp trong đó việc tạo ra một miền diện rộng bởi sự tiêu chuẩn hóa là khó khăn Nói chung việc ánh xạ từ “các hằng số tên” tới các thực thể
thực có thể khác từ cơ sở dữ liệu đến cơ sở dữ liệu , khó có thể xác định nếu hai hằng số cùng được đề cập đến (nghĩa là, đề cập cùng một thực thể)
Trong nhiều nguồn dữ liệu thế giới thực, đặc biệt là những thứ tìm thấy trên mạng xác định nếu hai hằng số tên cùng được nói đến xa hơn mức bình
thường Nó thường xuyên đòi hỏi các kiến thức chi tiết về thế giới và mục đích câu truy vấn của người dùng hoặc cả hai yêu cầu trên Chúng ta cũng chú
ý rằng vấn đề miền chung thì có cả mặt phê phán lẫn mặt cơ bản: phê phán là
từ một ánh xạ không thích hợp từ miền địa phương đền miền diện rộng sẽ dẫn đến những câu trả lời sai lầm hay các câu trả lời thiếu cho câu truy vấn của
người dùng, và cơ bản ở chỗ khi tất cả các công nghệ trước về tích hợp các cơ
sở dữ liệu hỗn dùng đều yêu cầu có các miền chung Trong hướng nghiên cứu này, Cohen loại bỏ giả thiết tồn tại các miền chung hoặc có thể xây dựng các
miền chung đó một cách dễ dàng Thay vào đó giả thiết rằng các tên được gán cho các thực thể của thế giới thực đã được kiểm tra ngôn ngữ tự nhiên
Với giả thiết này, việc xác định rằng nếu hai tên cùng được nói đến là vấn đề hiểu ngôn ngữ tự nhiên không giới hạn, ngay lập tức dẫn đến kết luận không
Trang 19thể xác định việc cùng nói đến một cách đáng tin cậy Do đó, việc xác định tên cùng được nói đến không nên điều khiển bằng các công cụ tự động
Thay vào đó, Cohen đề xướng ra một ngôn ngữ logic mới cho sự hợp nhất
dữ liệu gọi là ngôn ngữ WHIRL WHIRL nắm giữ các tên miền cục bộ gốc và các lý do rõ ràng về độ tương tự của cặp các tên, sử dụng độ đo thống kê của
độ tương tự tài liệu trong quá trình IR Như những hệ thống cơ sở dữ liệu truyền thống, câu trả lời các truy vấn của người dùng là tập hợp các bộ dữ liệu, tuy nhiên những bộ dữ liệu này được sắp xếp theo trật tự để có thể đưa ra cho người dùng câu trả lời tốt nhất trước WHIRL cho rằng những bộ dữ liệu
là tốt hơn khi nắm giữ được các điều kiện cùng tham khảo tên yêu cầu bởi các truy vấn người dùng
Như vậy WHIRL kết hợp vài thuộc tính của các hệ thống IR thống kê, và vài thuộc tính của các hệ thống cơ sở dữ liệu Giống như các hệ thống IR
thống kê, WHIRL lập luận về sự giống nhau của các tài liệu, và các câu trả
lời đưa ra được sắp xếp có trật tự Tuy nhiên giống như các hệ thống cơ sở dữ liệu, các câu trả lời của WHIRL là các bộ dữ liệu thay thế cho các tài liệu, và truy vấn WHIRL có thể kéo theo nhiều quan hệ khác nhau thay vì một tập hợp tài liệu đơn
Thêm nữa Cohen còn sử dụng mô hình không gian vector để biểu diễn dữ
liệu Theo phương pháp này, mỗi văn bản được biểu diễn như một vector có các thành phần là thể hiện từ khoá tương ứng có mặt hoặc không có mặt trong văn bản đó Mỗi từ khoá lại có một trọng số biểu diễn về mức độ quan trọng
của nó trong văn bản Cụ thể là, nếu một thuật ngữ xuất hiện trong mô tả thì
vị trí tương ứng của nó trong vector sẽ có giá trị 1, ngược lại giá trị của vị trí
đó là 0 Yêu cầu tìm kiếm thông tin sẽ xác định tất cả các thuật ngữ có thể được dùng và sau đó chuyển tất cả các thuật ngữ này thành dạng vector trong
Trang 20cùng một không gian Khi đó tất cả các tài liệu tương tự có thể được biểu diễn
bởi không gian vector trên
Chọn lọc chuẩn của mô hình cơ sở này là việc sử dụng những thuật ngữ có trọng lượng Vị trí tương ứng của vector tương ứng với một thuật ngữ sẽ biểu
thị độ liên quan của thuật ngữ này với tài liệu Các trọng số có thể được gán
bởi người dùng hoặc có thể tự động nhận được bằng cách đếm tần số xuất hiện của thuật ngữ đó trong tài liệu Trọng lượng của một thuật ngữ thể hiện tầm quan trọng của thuật ngữ đó so với các thuật ngữ khác cùng mô tả tài liệu cũng như mức độ quan hệ của thuật ngữ đó đối với tài liệu này so với tài liệu khác Quá trình gán các giá trị đó được gọi là quá trình đánh chỉ số (indexing) Hiện nay có nhiều phương pháp đánh chỉ số trong đó chủ yếu dựa vào tần số xuất hiện của các từ hoặc mối quan hệ giữa sự xuất hiện của các từ trong văn bản Như vậy thì số chiều của không gian vector là lực lượng của
tập các từ khóa, nhưng số chiều của vector theo cách biểu diễn này là rất lớn
Đó cũng là hạn chế của hướng tiếp cận này
1.4.3 Sử dụng giao diện hỗ trợ các truy vấn mờ
Theo Motro, yêu cầu dữ liệu có thể chia thành hai loại truy vấn: truy vấn
cụ thể và truy vấn mờ Phương pháp truy vấn cụ thể thiết lập các thuộc tính có quan hệ với nhau một cách cứng nhắc khi so sánh các tiêu chí cụ thể Nếu không có dữ liệu thoả mãn chính xác yêu cầu của truy vấn thì kết quả sẽ trả về
là null Còn trong truy vấn mờ thì yêu cầu có thể linh hoạt hơn, kết quả đưa ra
là các thuộc tính có quan hệ gần gũi với yêu cầu của truy vấn Từ đó người dùng có thể lựa chọn kết quả mà mình mong muốn
Motro mở rộng một hệ thống cơ sở dữ liệu quy ước bằng việc thêm một toán tử similar-to mà sử dụng các độ đo khoảng cách trên các giá trị thuộc
Trang 21tính để làm sáng tỏ truy vấn mơ hồ Các độ đo khoảng cách được yêu cầu bởi toán tử similar-to phải được cung cấp bởi người thiết kế cơ sở dữ liệu
Khoảng cách là khái niệm dùng để xác định mức độ tương tự giữa các giá trị dữ liệu Mỗi miền cơ sở dữ liệu được đưa ra với việc xác định khoảng cách
giữa các giá trị của chúng gọi là độ đo dữ liệu Ví dụ trong cơ sở dữ liệu về nhà hàng có thể có các độ đo để xác định khoảng cách về cách chế biến, vị trí, giá cả cũng như khoảng cách giữa các nhà hàng
Để là sáng tỏ thêm các truy vấn mơ hồ trong giao diện của mình Motro sử
dụng thêm phép so sánh lựa chọn mờ (toán tử similar-to) Đây là phép so sánh
để xác định bên trong khoảng cách định trước một giá trị cụ thể Ví dụ phép
so sánh mờ “lớp similar-to Tin1” có thể có các giá trị thoả mãn như Tin2, Tin3…
Giao diện Vague do Motro đưa ra để trả lời các truy vấn mờ cung cấp cho
người thiết kế cơ sở dữ liệu 4 lựa chọn: sử dụng một trong các độ đo có sẵn; cung cấp các thủ tục để tính toán khoảng cách giữa hai thành phần bất kì của miền; cung cấp một quan hệ để lưu trữ khoảng cách giữa hai thành phần bất
kì của miền; và sử dụng một quan hệ tham chiếu (cơ sở dữ liệu đang tồn tại tham chiếu đến miền nay) Trong trường hợp này, khoảng cách giữa các phần
tử của miền sẽ được xác định bằng khoảng cách giữa các bộ dữ liệu của chúng trong quan hệ tham chiếu, trong đó khoảng cách các bộ dữ liệu là hợp của các khoảng cách đơn giữa các thành phần tương ứng
Mỗi bộ trong kết quả của truy vấn có chứa các so sánh mờ sẽ bao hàm một
số sai lệch so với giá trị cụ thể trong phép so sánh Bằng cách kết hợp các sai
lệch đơn lẻ vào một giá trị đơn, Vague có thể đưa ra kết quả cho người dùng theo thứ tự tối ưu nhất Như vậy ta có hai thời điểm Vague kết hợp các
Trang 22khoảng cách nhỏ thành một khoảng cách: kết hợp khoảng cách của các loại độ
đo và biểu diễn kết quả của phép truy vấn
Vague kết hợp những nét đặc trưng để tạo nên tính linh hoạt của nó Ví dụ như nó cho phép kích thước đa dạng cho mỗi tên miền, với khả năng lựa chọn kích thước thích hợp cho mỗi câu hỏi; nó cho phép người sử dụng đánh giá
mối liên hệ quan trọng của những đặc tính của kích thước tham khảo và nó cho phép người sử dụng bày tỏ thiện ý để thỏa hiệp trong việc phục hồi liên quan một số điều kiện không rõ ràng
Việc nghiên cứu tương đương được sử dụng trong các hệ thống để chỉ rõ tài liệu nào có các từ “gần” với nhau Chúng ta áp dụng khái niệm độ tương đương này để tìm kiếm qua cơ sở dữ liệu bất kì các đối tượng mà “ tương đương” với đối tượng quan tâm Trong khi một vài ngữ cảnh yêu cầu các kết
quả tường minh, nhiều cơ sở dữ liệu trên mạng lại có thể giúp người dùng đưa
ra kết quả và làm mịn truy vấn Trong trường hợp này thì việc ước lượng độ tương đương được tập trung nghiên cứu Ví dụ chúng ta có thể tìm kiếm một người có tên là “Schwarttz” nhưng không biết người này là một nhân viên, một nhà quản lý hay là một khách hàng Tiến hành tìm kiếm trong cơ sở dữ
liệu, nếu ta biết rằng người được nhắm đến bằng cách này hay cách khác có
một bản ghi riêng thì chúng ta có thể chỉ ra tập gốc, sắp xếp nó theo các lời giải thích quan hệ gần gũi của từng người
Đối với việc nghiên cứu sự gần gũi đối tượng, tác giả đưa ra một cơ sở dữ
liệu đơn giản như một lựa chọn các đối tượng có quan hệ bằng một hàm khoảng cách Các đối tượng có thể là các bộ dữ liệu, các bản ghi, hoặc các đối
tượng thực hoặc thậm chí cả các trường trong cấu trúc Hàm khoảng cách được cung cấp bởi hệ thống hoặc nhà quản trị, nó chỉ rõ “quan hệ gần gũi”
Trang 23giữa các cặp đối tượng (nhưng không cần thiết là tất cả các cặp đối tượng) Ví
dụ như trong cơ sở dữ liệu cá nhân, mỗi đối tượng riêng có thể có một thước
đo về sự gần gũi tốt Hai cá nhân làm việc cùng cơ quan có quan hệ gần gũi (mỗi cá nhân liên kết tới cùng một cơ quan); nếu hai cơ quan cùng kết hợp trên cùng một sản phẩm thì một cá nhân của cơ quan này có quan hệ với cá nhân ở cơ quan khác, nhưng mức độ gần gũi là ít hơn
Việc nghiên cứu tương đương vốn đã ít được quan tâm Nếu có thể mô tả thông tin mong muốn một cách tường minh thì tốt hơn là nên sử dụng các truy vấn cơ sở dữ liệu truyền thống Tuy nhiên việc nghiên cứu sự gần gũi lại rất
hữu ích khi thực tế không đưa ra một truy vấn cụ thể hoặc khi người dùng
muốn đơn giản việc tìm kiếm dựa trên sự thích hợp chung của các đối tượng
dữ liệu khác nhau
Vấn đề cơ bản của việc nghiên cứu độ gần gũi là sắp xếp các đối tượng trong tập đưa ra (tập Find) dựa trên độ gần gũi của các đối tượng trong một
tập khác (tập Near) Giả thiết rằng các đối tượng được kết nối bằng một
“khoảng cách” số Sau đây là mô hình khái niệm của việc nghiên cứu độ tương đương:
Hình 1.1 : Kiến trúc nghiên cứu tương đương Một hệ thống cơ sở dữ liệu lưu trữ một tập hợp các đối tượng Các ứng dụng đưa ra câu truy vấn Find và Near ở cơ sở dữ liệu (ví dụ như những truy
Trang 24vấn này đi tìm kiếm các từ khóa) Cơ sở dữ liệu ước lượng các truy vấn và chuyển tập kết quả đối tượng Find và Near sang công cụ phân tích độ tương đương Sau đó công cụ phân tích tương đương sẽ sắp xếp lại tập Find, sử dụng thông tin khoảng cách (và có thể sắp xếp các đối tượng Find và Near đầu tiên) Thông tin khoảng cách này được cung cấp bởi một modul khoảng cách
Dựa trên khái niệm nó cung cấp cho công cụ phân tích sự gần gũi tập hợp
bộ ba (X, Y, d) với d là khoảng cách giữa hai đối tượng X và Y Giả thiết rằng khoảng cách đưa ra lớn hơn hoặc bằng 1 Sau đó, công cụ phân tích sự gần
gũi sử dụng các khoảng cách cơ sở để tính toán độ dài của đường đi ngắn nhất
giữa các đối tượng
Với công cụ phân tích sự gần gũi, cơ sở dữ liệu sẽ đơn giản đồ thị với các đỉnh có trọng số Điều đó có nghĩa là hệ thống cơ sở dữ liệu quản lý các dữ
liệu theo đồ thị, và đòi hỏi các dữ liệu phải được mô tả dưới dạng đồ thị Đây
cũng là điểm bất lợi của hướng tiếp cận này
1.4.5 Nhận xét
Tóm lại qua các hướng tiếp cận trên đưa ra các vấn đề nổi trội như:
• Chúng yêu cầu người dùng phải cung cấp các hướng dẫn bổ sung để quyết định độ tương tự;
• Sử dụng một toán tử mới để đo khoảng cách;
• Các phương pháp trên không thể áp dụng được với các cơ sở dữ liệu
hiện có khi chúng đòi hỏi một số lượng lớn thông tin xác định lĩnh vực hoặc là phải ước lượng trước hoặc là được đưa ra bởi người dùng
• Thêm nữa chúng đòi hỏi sự thay đổi của mô hình dữ liệu
Trang 25Trong khi đó mong muốn của người dùng là có thể tối thiều hóa được dữ
liệu đầu vào mà không làm ảnh hưởng tới cơ sở dữ liệu sẵn có, có thể ứng dụng với cơ sở dữ liệu web Cho nên khác với các hướng tiếp cận trên, giải pháp mà chúng tôi đề nghị trong chương 3 sẽ đưa ra các kết quả được xếp
hạng mà không phải tổ chức lại cơ sở dữ liệu và do đó dễ dàng thực thi trên
bất kỳ cơ sở dữ liệu nào
1.4 N ới lỏng điều kiện truy vấn
Thông thường một bộ điều khiển thông minh (IM) có kiến trúc logics chính như trong hình 1.2 để giúp cho người dùng nhận được các kết quả thỏa mãn mong muốn của họ
Thông tin của người dùng cần được mã hóa thành câu truy vấn Q và câu trả lời của IM đối với truy vấn Q có thể có dạng một tập các thành phần hoặc một tập truy vấn mới Câu trả lời là một tập các thành phần khi IM tìm thấy
có một kết quả thoả mãn truy vấn trong dữ liệu, mặt khác trong trường hợp không tim thấy kết quả thoả mãn thì IM gợi ý đưa ra một tập các truy vấn mới
bằng cách nới lỏng hay thắt chặt một số ràng buộc của truy vấn ban đầu
Tighten Relax Item
Trang 26Hình 1.2 Kiến trúc của IM
Cụ thể khi trả lời một câu truy vấn không tường minh thì phải nới lỏng các ràng buộc của truy vấn tường minh tương ứng để đưa ra được các câu truy vấn mới có các ràng buộc truy vấn mềm dẻo hơn, linh hoạt hơn, để từ đó ta có
thể đưa ra các câu trả lời thỏa mãn với yêu cầu của người dùng
Sự nới lỏng truy vấn làm thay đổi định nghĩa truy vấn theo cách là số
lượng các thành phần thu được bằng cách tăng truy vấn Cho Q’ = (20 ≤ x3 ≤ 50) là một nới lỏng của truy vấn Q = (x1 = T) ∧(20 ≤ x3 ≤ 50) với ràng buộc đầu được nới lỏng Một truy vấn tiêu biểu được nới lỏng khi tập kết quả thu được từ không gian thành phần X là trống, hoặc khi người sử dụng quan tâm đến việc có nhiều ví dụ hơn để ước lượng
Hình 1.3 Quá trình nới lỏng truy vấn Quá trình gợi ý nới lỏng truy vấn được miêu tả ở hình 1.3 Trong trường hợp này IM nhận giá trị đầu vào là một truy vấn Q = C1∧…∧Cm và xây dựng
một tập hợp các truy vấn nới lỏng Q1 … Qk, sao cho từng Qi nới lỏng chỉ một ràng buộc trên truy vấn gốc Giả thiết chúng sử dụng một truy vấn Q = (( x1 = ski) ∧(x2 = cavalese) ∧ (x3 = T) ∧ (x4 ≤ 100) , chúng ta tìm kiếm trong cơ sở
dữ liệu của hoạt động dịch vụ thể thao, và các thuộc tính là SportType, Location, School, Cost Quá trình nới lỏng được diễn ra như sau:
Thực hiện các truy vấn khác
Phân tích kết
quả
Q1….Qn
Trang 27dụ trên, người dùng có thể quan tâm tới vài trường học đắt tiền hoặc ở trong Cavalese nhưng anh ta lại quan tâm tới môn thể thao trược tuyết chứ không phải là câu cá Modul này xác định các ràng buộc thuộc tính không được nới lỏng, như ở ví dụ trên thì chỉ các thuộc tính Cost và Location có thể được nới
lỏng
b, Nới lỏng ràng buộc đơn:
Bất cứ khi nào ràng buộc nới lỏng được xác định thì ta xác định một phiên
bản nới lỏng (C’t) đối với mỗi ràng buộc Tùy theo kiểu đặc tính ta có hai cách tiến cận khác nhau:
- Nới lỏng ràng buộc thuộc tính có tính chất biểu tượng: trong trường hợp này nới lỏng có nghĩa là ràng buộc bị vứt bỏ
- Nới lỏng ràng buộc thuộc tính có đặc tính số nguyên và số thực: trong
trường hợp này giới hạn của các giá trị cho phép được mở rộng bởi một phần trăm nhất định có thể thay đổi tùy theo kiểu thuộc tính
Sau bước này các ràng buộc được nới lỏng trong Q là x2 = ALL, x3 = ALL
và x4 ≤ 110 Từ khoá ALL có nghĩa là tất cả các giá trị đều phù hợp với thuộc tính đó
c, Thực hiện các truy vấn khác:
Trong bước này đối với từng ràng buộc có thể được nới lỏng, một phiên
bản nới lỏng mới của truy vấn người sử dụng đầu tiên được xây dựng với chỉ riêng các ràng buộc được nới lỏng Trong ví dụ, chúng ta có 3 truy vấn mới
Q1 = (( x1 = ski) ∧ (x2 = ALL) ∧ (x3 = T) ∧ (x4 ≤ 100)
Trang 28Q2 = (( x1 = ski) ∧ (x2 = Cavalese) ∧ (x3 = ALL) ∧ (x4 ≤ 100)
Q3 = (( x1 = ski) ∧ (x2 = Cavalese) ∧ (x3 = T) ∧ (x4 ≤ 110)
Các truy vấn được nới lỏng này được thực hiện và số các thành phần khôi phục bởi từng truy vấn đơn được xác định là (count)2
d, Phân tích kết quả:
Khi thu được kết quả thì chúng ta phải phân tích chúng Mục đích để biết
rằng nếu truy vấn được nới lỏng đưa ra một cải tiến mới tức là nếu tập kết quả
mới đối với từng truy vấn là không rỗng hoặc quá lớn Giữa những truy vấn
đó vẫn trả lại tập rỗng (hoặc tập quá lớn) thì xuất hiện 2 trường hợp: nếu ràng buộc nới lỏng đưa ra một thuộc tính có tính chất biểu tượng thì truy vấn không thể nới lỏng thêm được nữa; nếu thuộc tính có tính chất là số nguyên hay số thực thì một nới lỏng mới (hoặc thắt chặt) được thực hiện thử bằng việc gửi thông tin này tới modul Nới lỏng ràng buộc đơn Ta giả thiết rằng trong ví dụ của chúng ta Q1 trả lại 10 thành phần, Q2 trả về 0 và Q3 trả về 5 thành phần Sau đó hai truy vấn mới được đưa ra cho người dùng là Q1 và Q3
tức là hệ thống cho người dùng biết là có trường trượt tuyết: nó ở trong Cavalese nhưng giá ít hơn 100 hoặc nó ở trong Cavalese nhưng giá cao hơn một ít nhưng dưới 110
Ví dụ như phương pháp nới lỏng truy vấn sử dụng các mô hình linh hoạt Đưa ra một mô hình linh hoạt như là một công cụ mô hình dành cho những
cấu trúc dữ liệu mập mờ và đa dạng trong thực tế Các cách tiếp cận chỉ ra rằng cấu trúc của các miền riêng thường phức tạp và bởi mô hình tự nhiên của
nó nên cho phép tính chất mập mờ hoặc sự dư thừa nào đó để có thể nắm bắt được tất cả các ngữ nghĩa mở rộng Trái ngược với các mô hình cứng rắn và được định nghĩa trước trong mô hình dữ liệu truyền thống, mô hình linh hoạt
có thể chứa các định nghĩa chồng chéo lên nhau trong cấu trúc dữ liệu
Trang 29Tùy thuộc vào các đặc trưng này, các mô hình linh hoạt là một công cụ phù hợp để quản lý dữ liệu có cấu trúc mập mờ trong hệ thống EIM và PIM khác nhau Trong đó dùng một mô hình truy vấn để cho phép người dùng tìm kiếm hiệu quả các thông tin có cấu trúc và không có cấu trúc bằng việc khai thác các mô hình linh hoạt cho sự nới lỏng truy vấn
Trong hệ thống PIM và EIM người sử dụng thường tìm kiếm mục tiêu trên các thực thể (như tài liệu, trang web, email), chúng sử dụng một mô hình truy vấn hướng thực thể đối với mô hình linh hoạt Trong mô hình này, đối tượng của một truy vấn thường là một thực thể đơn Một người sử dụng có thể biểu
thị những mong muốn của cô ấy bằng cách chỉ rõ các thuộc tính của thực thể
hoặc các mối quan hệ của thực thể này với các thực thể khác Ví dụ để thể hiện truy vấn bài báo có tiêu đề “XML Query” và tác giả có tên là “Daniel” như sau:
Q1: Select Doc As E1
Where E1.title contains “XML query”
And E1.ISA-paper contains “True”
And E1.Author contains E2 And E2.name contains “Daniel”
Để đơn giản hóa sự phân tích, ta hạn chế toán tử so sánh trong truy vấn để chỉ chứa (∋) và đầu nối giữa các tiêu chuẩn lựa chọn để chỉ kết nối (không tách rời hoặc phủ định) Từ đây truy vấn của chúng ta có thể được biểu diễn như một kết nối của các vị từ theo dạng “A ∋ t ” với A là một thuộc tính hoặc quan hệ và t là một thời hạn hoặc thực thể Ví dụ Q1 có thể viết lại như sau: Q1: {E1\E1.title ∋ ‘XML’∧ E1.title ∋ ‘Query’ ∧E1.ISA-paper ∋ ‘True’ ∧ E1.author ∋ E2 ∧ E2.name ∋ ‘Daniel’}
Trang 30Mọi thực thể thỏa mãn vị từ này có thể là câu trả lời đúng cho truy vấn
Hơn nữa truy vấn này có thể mở rộng để chứa thêm các toán tử Ví dụ ta có thể chuyển truy vấn về dạng thông thường rời rạc và xử lý từng mệnh đề nối tiếp riêng
Khi từng dữ liệu chỉ sử dụng tập con của các thuộc tính và quan hệ được định nghĩa trong mô hình linh hoạt, các thuộc tính trong truy vấn phải được nới lỏng để thu được tất cả các kết quả phù hợp Sự nới lỏng này đạt được bằng cách mở rộng các kiểu thuộc tính hoặc các quan hệ Ví dụ Q1 có thể được nới lỏng bằng cách mở thêm E2.name ∋ ‘Daniel’ thành E2.first-name ∋
‘Daniel’ mà vẫn thu được các kết quả phù hợp Bằng việc nới lỏng truy vấn, một truy vấn có thể chuyển thành một tập hợp các câu truy vấn
Nhưng sự nới lỏng truy vấn cũng có thể đưa ra các kết quả không phù hợp,
hệ thống cần phải trả lại các kết quả truy vấn dựa trên xác suất thích hợp giữa chúng Điều đó có nghĩa là một truy vấn Q0 có thể được nới lỏng thành Q1∨
Q2∨…∨Qn, chúng ta nên trả kết quả về theo xác suất P(Q0Q1), P(Q0Q2), …, P(Q0Qn) với P(QiQj) biểu diễn xác suất mà kết quả của Qj cũng phù hợp kết quả với Qi Ví dụ như, Q0 = {E A ∋ a ∧ B ∋ b} được nới lỏng thành
Q1∨Q2 với Q1 = {EA1 ∋ a ∧ B1 ∋ b} và Q2 = {E A2 ∋ a ∧ B2 ∋ b} Nếu chúng ta biết rằng P( A ∋ a ∧ B ∋ b A1 ∋ a ∧ B1 ∋ b) < P(A ∋ a ∧ B ∋ bA2 ∋
a ∧ B2 ∋ b), ta sẽ trả về kết quả của Q2 thay cho kết quả của Q1 bởi Q2 sẽ thu được nhiều kết quả phù hợp hơn Q1
1.5 K ết luận
Trang 31Truy vấn không tường minh là một truy vấn có các ràng buộc truy vấn
mềm dẻo chỉ yêu cầu cấc cầu trả lời có sự phù hợp gần chính xác (nhưng không nhất thiết phải chính xác) với các ràng buộc của truy vấn
Do sự phát triển nhanh chóng của Internet đã là cho các cơ sở dữ liệu ngày càng đa dạng, nên làm tăng thêm độ phức tạp của các kiểu dữ liệu Sự đa dạng
của các kiểu dữ liệu làm cho khó có thể tính toán đúng các câu truy vấn trên chúng Hơn nữa các giao diện hiện nay thường chỉ hỗ trợ các câu truy vấn tường minh với các ràng buộc truy vấn chính xác phù hợp với các bộ dữ liệu Thêm nữa người dùng thường mong muốn “gần như thế” chứ không phải là mong muốn chính xác Cho nên các câu truy vấn mờ, truy vấn không tường minh do người dùng đưa ra có thể không nhận được các kết quả thoả mãn yeu cầu của người dùng
Vậy làm thế nào để có thể hỗ trợ trả lời cho các truy vấn không tường minh để đưa ra được câu trả lời phù hợp với mong muốn của người dùng Bài toán được đưa ra Vấn đề có thể giải quyết bằng việc cung cấp các câu trả lời
tương tự nếu không đưa ra câu hỏi chính xác Để làm như vậy chúng ta phải
đi nới lỏng ràng buộc truy vấn, từ đó đưa ra được nhiêu câu trả lời tương đương Có nhiều cách nới lỏng điều kiện truy vấn nhưng ở đây trong luận văn này chúng tôi sử dụng các phụ thuộc hàm xấp xỉ để nới lỏng
Sau đây, chúng tôi sẽ đi giới thiệu về cách tính toán phụ thuộc hàm xấp xỉ dựa trên các phân hoạch do thuật toán TANE đưa ra Cụ thể về các khái niệm
cơ sở về phụ thuộc hàm xấp xỉ và cách tính được trình bày chi tiết trong
chương 2
Trang 32Chương 2
2.1 Ph ụ thuộc hàm và phụ thuộc hàm xấp xỉ
Các phụ thuộc hàm là các mối quan hệ giữa các thuộc tính của quan hệ:
một phụ thuộc hàm là giá trị của một thuộc tính được xác định duy nhất bởi
các giá trị của vài thuộc tính khác
Thông thường một phụ thuộc hàm thông qua một lược đồ quan hệ R và
được biểu diễn là X → A với X ⊆ R và A ∈ R Phụ thuộc xác định hoặc
được căn cứ vào một quan hệ r trên R nếu đối với tất cả cặp các hàng t, u
∈ r chúng ta có: nếu t[B] = u[B] đối với mọi B ∈ X thì t[A] = u[A] (chúng ta
có thể nói rằng t và u cho phép trên X và A)
Một phụ thuộc X → A là tối thiểu (trong r) nếu A không phải phụ thuộc
hàm trên bất kì tập con nào của X, nghĩa là nếu Y → A không có trong r với
bất kỳ Y ⊂ X Phụ thuộc X → A được xác định nếu A∈ X
Một phụ thuộc hàm xấp xỉ là một phụ thuộc hàm được xác định hầu hết
Các phụ thuộc này phát triển trong nhiều cơ sở dữ liệu khi có một phụ thuộc
tất nhiên giữa các thuộc tính, nhưng một số hàng chứa lỗi hoặc xuất hiện
ngoại lệ theo quy tắc Việc khám phá các phụ thuộc hàm xấp xỉ không mong
đợi nhưng hiệu quả dường như được coi là một kết quả hiện thực và được
quan tâm trong một vài ứng dụng khai phá dữ liệu
Trang 33Có một vài cách định nghĩa độ xấp xỉ của một phụ thuộc X → A Định nghĩa chúng ta sử dụng dựa trên số lượng ít nhất các bộ cần loại bỏ trong quan hệ r đối với X → A được xác định trong r: lỗi g3 (X→A) = 1 – (max {|s|
s ⊆ r và X→ A xác định trong s})/|r| Phép đo g3 là một giải thích như là phần loại trừ của các bộ hoặc các lỗi ảnh hưởng tới phụ thuộc
Phụ thuộc hàm X→A là một phụ thuộc hàm xấp xỉ nếu nó không chặt trên
một tỷ lệ nhỏ các bộ Một cách cụ thể, cho ngưỡng lỗi ε, 0 ≤ ε ≤ 1, nói X→A
là một phụ thuộc hàm xấp xỉ khi và chỉ khi sai số lỗi g3 (X→A) tối đa là ε, trong đó sai số được đo như là tỷ lệ các bộ vi phạm phụ thuộc hàm
khác nhau bất kỳ trùng nhau trên X Ví dụ: πx chỉ bao gồm các lớp tương đương độc nhất Tuy nhiên nếu sự duy nhất của X không được xác định trên
một phần nhỏ các bộ trong r, thì X được xem là khóa xấp xỉ Nếu sai số error(X) là lượng nhỏ nhất các bộ dữ liệu cần loại bỏ khỏi quan hệ r đối với X
là một siêu khóa Nếu sai số error(X) ≤ ε thì X là một khóa xấp xỉ Lỗi error(X) = 1 - πx⁄ r
Một số tác giả cũng đưa ra vài thước đo khác nhau để tính xấp xỉ các phụ thuộc hàm và khóa xác định trong một cơ sở dữ liệu Giữa chúng độ đo g3 do Kivinen và Mannila [6] đưa ra được chấp nhận rộng rãi Độ đo g3 được định nghĩa là tỷ lệ tối thiểu số các bộ dữ liệu bị loại bỏ khỏi quan hệ R để thực hiện
phụ thuộc hàm X → Y với tổng số các bộ trong R Định nghĩa này phù hợp
với định nghĩa về khóa và phụ thuộc xấp xỉ cho ở trên
Từ đây, chúng ta sử dụng TANE, thuật toán phát triển bởi Huhtala [14] để khai phá hiệu quả tất cả các AFDs trong cơ sở dữ liệu và các khóa xấp xỉ mà
có độ đo xấp xỉ g3 dưới ngưỡng lỗi do người dùng xác định Thuật toán
Trang 34TANE dùng để trích các AFD và các khóa xấp xỉ dựa trên sự phân hoạch Và khai phá các AFD và các khóa sử dụng một tập con của cơ sở dữ liệu được trích ra bằng cách thăm dò
Sau đây chúng ta sẽ đi tìm hiểu thuật toán TANE để tính toán các phụ thuộc hàm và phụ thuộc xấp xỉ dựa trên các phân hoạch Sự đổi mới của thuật toán này phần lớn là một cách xác định mới khi nào một phụ thuộc được xác định hay không Các thuật toán trước hầu hết dựa vào cả việc sắp xếp lặp lại các hàng quan hệ và so sánh từng hàng với nhau, và điều này có thể không hiệu quả đối với các quan hệ lớn Khác với chúng, thuật toán TANE lần lượt duy trì thông tin về các hàng được cho phép trên tập các thuộc tính Việc xác định khi nào một phụ thuộc được xác định hay không thể thực hiện bằng cách kiểm tra khi nào các hàng xác định phía bên trái khi nào xác định phía bên phải Hơn nữa ta cũng dễ dàng nhận ra các hàng nào không xác định phía bên
phải Do đó hướng nghiên cứu này có thể mở rộng tới các phụ thuộc xấp xỉ Thông thường, hướng nghiên cứu này có thể được mô tả bằng các phân hoạch
và các lớp tương đương Vài tập thuộc tính X phân chia các hàng theo một quan hệ: các hàng cho phép ở trên X là tương đương (đối với X), và các lớp tương đương tạo thành phân hoạch
Ngoại trừ việc đọc lần đầu ở cơ sở dữ liệu gốc, thuật toán TANE mới chỉ quan tâm tới việc nhận dạng hàng Điều này có 2 tác dụng: Đầu tiên, các giá trị và các dạng thuộc tính khác nhau có thể bị loại bỏ, và thực tế kiểm soát được công việc tính toán trên số nguyên Do đó các thao tác trên các phân
hoạch đơn giản và nhanh chóng Thứ hai là việc nhận dạng hàng có thể được
sử dụng hiệu quả trong các ứng dụng khai phá dữ liệu trong thực tế Ví dụ
như các ngoại lệ của các phụ thuộc xấp xỉ đều được quan tâm, và nội dung của các hàng này luôn sẵn sàng đáp ứng Một tác dụng lớn của việc sử dụng
Trang 35các phân hoạch là cho phép khám phá các phụ thuộc xấp xỉ một cách hiệu
quả
Kết quả thực nghiệm cho thấy rằng thuật toán rất có hiệu quả trong thực tế
và điều đó làm cho việc khai phá các phụ thuộc hàm và phụ thuộc xấp xỉ có
thể thực hiện được thậm chí tới hàng trăm bộ
tường minh
Các phụ thuộc hàm xấp xỉ cho biết mối quan hệ giữa các thuộc tính của
một quan hệ và có thể sử dụng để xác định mức độ ảnh hưởng của sự thay đổi giá trị của một thuộc tính đến các thuộc tính khác Cho nên chúng ta có thể tính được các phụ thuộc hàm xấp xỉ giữa các thuộc tính của quan hệ và sử dụng chúng để xác định quá trình nới lỏng Quá trình nới lỏng bao gồm việc trích các bộ bằng cách xác định và thực thi các truy vấn đã nới lỏng thu được
bằng cách giảm các ràng buộc trên truy vấn hiện có
2.2 Tính toán các phân ho ạch
Thông thường một phụ thuộc X→A được xác định nếu mọi hàng dữ liệu được xác định trên X thì cũng xác định trên A Việc nghiên cứu khám phá các phụ thuộc dựa trên việc xem xét tập các hàng dữ liệu mà xác định trên một vài tập thuộc tính Chúng tôi mô tả ý kiến này đơn giản hơn bằng cách áp dụng các lớp tương đương và các phân hoạch trong các quan hệ
Hai hàng t và u tương đương với một tập X các thuộc tính được đưa ra nếu
t[A] = u[A] với mọi A trong X Một vài tập thuộc tính X phân chia các hàng quan hệ thành các lớp tương đương Chúng ta biểu diễn lớp tương đương của
Trang 36một hàng t ∈ r đối với tập X ⊆ R được đưa ra bởi [t]x, ví dụ [t]x = {u ∈ r
t[A] = u[A] với mọi A ∈ X}.Tập πx = {[t]x t ∈ r} của các lớp tương đương là
một phân hoạch của r đối với X
Tập πx là một lựa chọn các tập tách rời (các lớp tương đương) của các hàng Điều đó có nghĩa là mỗi tập có một giá trị duy nhất đối với tập thuộc tính X, và sự hợp nhất của các tập cân bằng với quan hệ r Rank |π| của phân
hoạch π là số lượng các lớp tương đương trong π
Ví dụ 1: Cho quan hệ trong hình 2.1
Trang 37π{D} = {{1, 4, 7}, {2}, {3}, {5}, {6}, {8}}
Xem xét quan hệ trong hình 2.1: Thuộc tính A có giá trị 1 chỉ trên các
hàng t 1 và t 2 nên chúng ta tạo được một lớp tương đương [t 1]{A} = [t 2]{A} ={1, 2} Tất cả các phân hoạch đối với A là π{A} = { {1, 2}, {3, 4, 5}, {6, 7, 8}} Phân hoạch đối với {B, C} là π{B, C} = { {1}, {2}, {3, 4}, { 5}, {6}, {7},
{8}}
Một phân hoạch π là tinh lọc của một phân hoạch π’ khác nếu mỗi lớp
tương đương trong π là một tập con của một số lớp tương đương của π’ Ví dụ như, cho rằng πX tinh lọc π{A} và xem xét một vài lớp tương đương [t]X trong
πX Theo định nghĩa các lớp tương đương, chính xác là các hàng tương đương với t đối với X là ở trong [t]X; theo định nghĩa của tinh lọc thì tất cả ở trong cùng một lớp tương đương [t]{A} và do đó có cùng giá trị đối với A Chúng ta
π{B, C} suy diễn π{A} Trong quan hệ ở hình 1, phụ thuộc được xác định khi
từng lớp cân bằng trong π{B, C} bao hàm trong một số lớp tương đương trong
π{A}
Phụ thuộc {A}→ B trong hình vẽ không được xác định: lớp tương đương
[t3]{A} = {3, 4, 5}, không được bao hàm trong lớp tương đương nào trong π{B}
Trang 38Kiểm tra một cách đơn giản khi nào phụ thuộc X→ A xác định và không xác định Nếu πX tinh lọc π{A} , rồi cộng thêm A vào X mà không làm phá vỡ lớp tương đương nào của πX; do đó πX∪{A} = πX Mặt khác πX∪{A} luôn suy diễn ra πX, πX∪{A} không thể có số lớp tương đương giống như πX trừ khi
πX∪{A} và πX là cân bằng Chúng ta sẽ chỉ rõ ra trong bổ đề sau:
Bổ đề 2: Một phụ thuộc hàm X→ A được xác định khi và chỉ khi πX=
πX∪{A}
Có hai cách để giảm yêu cầu về thời gian và không gian trong khi làm việc với các phân hoạch Cách thứ nhất là thay thế các phân hoạch bởi một biểu diễn hoàn thiện hơn gọi là các phân hoạch Stripped Cách thứ hai là phương pháp tính toán nhanh lỗi xấp xỉ g3
Cả hai cách trên đều cần tới khái niệm siêu khóa xấp xỉ Độ đo lỗi g3 có thể được mở rộng tới các thuộc tính khác của quan hệ Thông thường nó có thể
mở rộng tới đặc tính của một tập thuộc tính là siêu khóa Một tập thuộc tính X
là siêu khóa nếu không có hai hàng nào xác định trên X, ví dụ πX chỉ bao gồm các lớp tương đương duy nhất Tập X là một khóa nếu nó là một siêu khóa và không có tập con nào của nó là một siêu khóa Chúng ta định nghĩa g3(X) là phần trăm tối thiểu các hàng cần loại bỏ khỏi quan hệ r đối với siêu khóa X
Nếu g3(X) nhỏ thì X là siêu khóa xấp xỉ Lỗi g3(X) được tính toán dễ dàng từ phân hoạch πX bởi hàm sau:
( )
r X
Trang 39một cách trực quan về việc loại bỏ các lớp tương đương duy nhất này là một
lớp tương đương duy nhất (ở phía bên trái) không thể phá vỡ và độc lập được Chúng ta có thể sử dụng các phân hoạch stripped để tính toán một cahs an toàn khi các quan hệ tinh lọc của các phân hoạch không bị ảnh hưởng và do
đó bổ đề 1 có thể thực hiện với phân hoạch stripped một cách tốt hơn Bổ đề 2 không thực hiện được đối với phân hoạch tách bởi vì πˆxcó thể tương tự như πˆx∪{ }A thậm chí πx khác πx∪{A} Tuy nhiên g3(X) = g3(Y) khi và chỉ khi
Nếu g3(X)– g3(X∪{A}) > ε hoặc g3(X) < ε, ta không cần tính toán
g3(X→A) để tìm khi nào X→A xác định xấp xỉ hay không
Để tìm được tất cả các phụ thuộc không quan trọng tối thiểu, chúng ta phải tìm kiếm thông qua không gian của các phụ thuộc không quan trọng và kiêm
Trang 40rtra tính hợp lệ và tối thiểu của từng phụ thuộc Thông thường chúng ta cần làm hai việc: tính toán các phân hoạch và kiểm tra tối thiểu
Việc lựa chọn tất cả các phụ thuộc có thể thực hiện được ở phía bên trái là lựa chọn tất cả các tập thuộc tính Ví dụ như tạo một tập lưới ngăn chặn như trong hình 2.2 Trong vài ứng dụng khai phá dữ liệu các lưới ngăn chặn này được tìm kiếm rất hiệu quả nhờ vào thuật toán tìm kiếm theo mức Thuật toán tìm kiếm theo mức bắt đầu tìm kiếm từ các tập duy nhất, và thực hiện qua từng mức lưới cho đến khi tìm thấy các phụ thuộc tối thiểu xác định Hiệu quả của thuật toán tìm kiếm theo mức dựa trên việc giảm tính toán trên từng mức
bằng cách dùng kết quả của các mức trước Sau đây chúng ta cũng dùng kết
quả của các mức trước để tính toán các phân hoạch và kiểm tra tính tối thiểu
Hình 2.2 Tập lưới ngăn chặn đối với {A, B, C, D}