Truy vấn dữ liệu hướng người dùng Truy vấn dữ liệu hướng người dùng Truy vấn dữ liệu hướng người dùng 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 1LUẬN VĂN THẠC SĨ KHOA HỌC
NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ:
LÊ DOÃN PHƯỚC
Người hướng dẫn khoa học: TS VŨ TUYẾT TRINH
HÀ NỘI 2006
Trang 2Lời cảm ơn
Em xin gửi tới TS Vũ Tuyết Trinh – Bộ môn Hệ thống thông tin - Khoa CNTT - Đại học Bách Khoa Hà Nội lời cảm ơn chân thành và sâu sắc nhất vì những hướng dẫn tận tình về mặt định hướng cho luận văn cũng như những giúp đỡ hết sức cụ thể về mặt chuyên môn Em cũng cảm ơn các thầy cô giáo thuộc khoa CNTT đã tạo điều kiện cho em được học tập và nghiên cứu trong suốt quá trình học cao học
Cuối cùng, tôi xin gửi lời càm ơn tới gia đình và bạn bè, những người đã giúp đỡ và động viên tôi trong quá trình học tập và thực hiện luận văn này
Trang 3MỤC LỤC
24TMỤC LỤC24T 3
24TDANH MỤC CÁC HÌNH VẼ24T 4
24TMỞ ĐẦU24T 5
24TCHƯƠNG I: TỔNG QUAN24T 7
24T1.1.24T 24TKhái niệm về truy vấn dữ liệu hướng người dùng24 T 7
24T1.2.24T 24TTổng quan về truy vấn trong CSDL và tìm kiếm thông tin24 T 8
24T1.3.24T 24TKết hợp các kỹ thuật tìm kiếm thông tin và truy vấn trong CSDL24T 10
24TCHƯƠNG II:24T 12
24TTÌM KIẾM THÔNG TIN24T 12
24T2.1.24T 24TGiới thiệu chung24 T 12
24T2.2.24T 24TCác mô hình xử lý tìm kiếm24 T 14
24T2.2.124T 24TMô hình không gian vectơ24T 14
24T2.2.224T 24TMô hình xác suất24T 18
24T2.3.24T 24TTiếp cận hướng người dùng bằng kỹ thuật biểu diễn và xử lý user profile24 T 24
24T2.4.24T 24TKết luận và đánh giá2 4T 31
24TCHƯƠNG III:24 T 33
24TTRUY VẤN TRONG CÁC HỆ CƠ SỞ DỮ LIỆU24T 33
24T3.1.24T 24TQuy trình xử lý câu truy vấn trong cơ sở dữ liệu24 T 33
24T3.2.24T 24TCâu truy vấn lựa chọn k bản ghi (top-k query)24T 35
24T3.2.1.24T 24THàm tính điểm24T 36
24T3.2.2.24T 24TĐại số quan hệ có xét đến thứ tự24T 38
24T3.2.3.24T 24TMô hình thực thi truy vấn top-k24T 42
24T3.2.4.24T 24TTối ưu hóa thực thi top-k query24T 44
24T3.3.24T 24TPreference SQL2 4T 47
24T3.3.1.24T 24TCú pháp24T 47
24T3.3.2.24T 24TĐánh giá và kiểm soát chất lượng kết quả24T 51
24T3.3.3.24T 24TCài đặt thực thi24T 53
24TCHƯƠNG IV24T 56
24TKẾT HỢP KỸ THUẬT USER PROFILE VÀO CÁ THỂ HOÁ TRUY VẤN TRONG CÁC HỆ CƠ SỞ DỮ LIỆU24T 56
24T4.1.24T 24TMô hình biểu diễn Preference24 T 57
24T4.1.1.24T 24TPreference cơ sở (Atomic Preference)24T 59
24T4.1.2.24T 24TPreference ẩn (Implicit Preference)24T 64
24T4.1.3.24T 24TKết hợp các preference24 T 66
24T4.1.4.24T 24TXếp thứ tự các preference2 4T 68
24T4.2.24T 24TLựa chọn Preferences24 T 69
24T4.3.24T 24TSinh kết quả truy vấn hướng người dùng24T 73
24TKẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN24 T 80
24TTÀI LIỆU THAM KHẢO24T 82
Trang 4DANH MỤC CÁC HÌNH VẼ
24TUHình 2.1: Quy trình xử lý chung của một hệ thống IRU24T 12
24TUHình 2.2: Tính điểm số của văn bản theo mô hình vectơU24T 16
24TUHình 2.3: Chuẩn hóa vectơ bằng hình cầu đơn vịU24T 17
24TUHình 2.4: Mô hình khái niệmU24T 18
24TUHình 2.5: Không gian sự kiệnU24T 20
24TUHình 2.6: Tiếp cận học tham sốU24T 22
24TUHình 2.7: Tìm kiếm hướng người dùng bằng user profileU24T 25
24TUHình 2.8 : Ví dụ về các loại cạnh biểu thị quan hệ giữa các từU24T 28
24TUHình 2.9: Đồ thị biểu diễn user profileU24T 28
24TUHình 3.1: Quy trình xử lý truy vấn trong cơ sở dữ liệuU24T 34
24TUHình 3.2: Mô hình tìm kiếm plan thực thi tối ưu cho câu truy vấnU24T 35
24TUHình 3.3: Mô hình thực thi truy vấn Top-KU24T 44
24TUHình 3.4: Tích hợp Preference SQLU24T 53
24TUHình 4.1: Cấu trúc cơ sở dữ liệu phim dùng để minh họa trong chương 4U24T 58
24TUHình 4.2: Các dạng hàm eURU(d)URU(u)U24T 61
24TUHì nh 4.3: Một phần profile của John biểu diễn dưới dạng đồ thịU24T 64
24TUHình 4.4: Ví dụ minh họa về preference ẩn được biểu diễn bởi đồ thịU24T 65
24TUHình 4.5: Biểu diễn truy vấn bằng đồ thịU24T 70
24TUHình 4.6: Minh họa về đường đi trong personalization graphU24T 71
Trang 5M Ở ĐẦU
Ngày nay, công nghệ thông tin (CNTT) ngày càng đi sâu vào hầu hết các lĩnh
vực của đời sống xã hội Thông tin được số hóa - gọi chung là thông tin điện tử ngày càng trở nên phong phú và đồ sộ, thực tế đó đặt ra yêu cầu khai thác kho thông tin điện tử này một cách có hiệu quả để phục vụ con người Tuy nhiên, yêu
cầu về khai thác thông tin lại có thể đa dạng với các (nhóm) người dùng khác nhau nên đặt ra vấn đề về cách khai thác thông tin cho phù hợp hơn với yêu cầu đặc thù của từng (nhóm) người sử dụng
Hiện nay, tồn tại hai cách tiếp cận phổ biến trong lưu trữ và khai thác thông tin Đó là tìm kiếm thông tin (Information Retrieval - IR) và cơ sở dữ liệu (Database – DB) Theo cách ti ếp cận DB, thông tin được lưu trữ có cấu trúc
Người dùng truy xuất dữ liệu thông qua các câu hỏi truy vấn có định dạng do một
hệ quản trị cơ sở dữ liệu (Database Management System – DBMS) quy định với
những điều kiện lựa chọn được phát biểu rõ ràng Kết quả trả về thường là các
bản ghi tìm thấy trong DB Trái lại, đối tượng của IR lại là các văn bản
(document) với thông tin cần tìm kiếm hầu hết ở dạng text Các yêu cầu truy xuất
của người dùng được thực hiện trên nội dung của văn bản chứ không cấu trúc
chặt chẽ như truy xuất trong DBMS Điều kiện để một văn bản có mặt ở kết quả
có thể không rõ ràng như các bản ghi trong DB Một văn bản được đưa ra ở kết
quả nếu nó có một mối “liên hệ” nào đó với yêu cầu truy xuất Trong một tập kết
quả trả lời cho một câu truy vấn, người ta có thể tìm thấy các văn bản liên hệ
“chặt chẽ” với yêu cầu truy vấn cũng như các văn bản “ít” liên quan hơn Đây là
một đặc trưng cơ bản của cách tiếp cận tìm kiếm thông tin nhờ kỹ thuật phân loại
và xếp hạng văn bản
Trong mỗi cách tiếp cận trên (DB và IR), các kỹ thuật truy vấn thông tin tập trung khai thác các đặc trưng cơ bản của thông tin cần khai thác, cấu trúc dữ liệu đối với cách tiếp cận DB và nội dung, ngữ nghĩa văn bản đối với cách tiếp cận IR
Trang 6Kết hợp các kỹ thuật này có thể là hướng phát triển tốt cho phép khai thác một
khối lượng thông tin đồ sộ dựa cả trên cấu trúc cũng như nội dung của nó Truy
vấn thông tin thích nghi cho từng (nhóm) người dùng có thể được gọi chung là truy vấn hướng người dùng
Luận văn tập trung vào tìm hiểu một cách “tiếp cận lại” giữa DB và IR cho phép tăng độ mềm dẻo của quá trình biểu diễn và xử lý các truy vấn và nhằm mục đích xử lý tốt hơn các yêu cầu truy vấn của từng (nhóm) người dùng
Nội dung của luận văn (không kể phần mở đầu) gồm có 4 chương và 1 phần
kết luận
Chương 1: Tổng quan về truy vấn dữ liệu hướng người dùng Truy vấn dữ
liệu trong tìm kiếm thông tin (IR) và trong cơ sở dữ liệu (Database) và các hướng
tiếp cận hướng người sử dụng So sánh truy vấn trong IR và trong Database
Chương 2: Trình bày về các mô hình và kỹ thuật trong tìm kiếm thông tin
(Information Retrieval) Mô hình xây d ựng và khai thác user profile trong tìm
kiếm thông tin trên Internet
Chương 3: Trình bày về truy vấn trong các hệ CSDL Biểu diễn truy vấn
hướng người dùng theo hướng nghiên cứu Preference SQL Trình bày về thực thi
truy vấn (query processing) và thực thi truy vấn Top-K
Chương 4: Trình bày ý tưởng phát triển cho thực thi truy vấn trong Database,
đó là kết hợp kỹ thuật biểu diễn và xử lý user profile vào xử lý truy vấn hướng
người dùng trong Database
Kết luận và hướng phát triển của đề tài
Trang 7CHƯƠNG I: TỔNG QUAN
1.1 Khái ni ệm về truy vấn dữ liệu hướng người dùng
Trong thực tế, có rất nhiều ứng dụng phục vụ cho rất nhiều người sử dụng
sống trong nhiều môi trường văn hóa với nhiều tính cách và thói quen khác nhau
Cơ sở dữ liệu của những ứng dụng này có thể rất lớn và đa dạng, có thể có nhiều định dạng khác nhau như text, multimedia, markup language,…Ví dụ như hệ
thống hỗ trợ khách hàng của một công ty phần mềm, nhà sản xuất điện tử, hoặc
một nhà cung cấp dịch vụ Internet (ISP) Hệ thống nhận yêu cầu trợ giúp và khiếu
nại thông qua email hoặc 1 hệ thống tổng đài điện thoại (call-center) Những câu
hỏi của khách hàng có dạng như: “Máy tính xách tay của tôi model là …, có một
vấn đề với driver của card Wave-LAN Tôi đã cố gắng thử khắc phục bằng những
cách sau:… nhưng không thành công và nhận được thông báo lỗi như sau …”
Một số thông tin trong câu hỏi có thể được chuyển thành trường có cấu trúc như
như NotebookModel, còn lại một số dữ liệu ở dạng text không có cấu trúc
Một ví dụ khác là ứng dụng về lưu trữ tin tức (news archive): Các hãng phát
hành báo chí hàng ngày sản xuất và phát hành ra thị trường một số lượng lớn tin
tức với các ảnh và có thể cả âm thanh được thu âm kèm theo Thách thức đầu tiên
nằm trong việc quản lý việc dư thừa thông tin, ví dụ rất nhiều các bài báo chỉ sao chép từ bài báo khác với sự sửa chữa không đáng kể Tất nhiên, trong các bài báo
mới cũng mang các dữ liệu như thông tin chi tiết về bài báo lúc ban đầu (ví dụ
như các tin tức ở trang nhất) Các dữ liệu này được dùng bởi các nhà báo chuyên nghiệp (không giống như những người dùng bình thường khi tìm kiếm thông tin trên Internet) Vì vậy, các nhà báo thực hiện tìm kiếm trên nhiều ngôn ngữ, bao
gồm các phản hồi có liên quan, cụm từ đồng nghĩa và ontology (ví dụ trong sự kết
hợp với điều kiện về không gian thời gian như “mùa hè 1998 ở Paris” và các tựa bài báo liên quan như “Mùng 1 tháng 8 năm 1998 ở London”)
Trang 8Như vậy, cần có những ứng dụng nhận yêu cầu và cung cấp thông tin cho
người sử dụng một cách mềm dẻo và có tính tới những thói quen, tính cách, sở thích của từng người khác nhau hoặc từng nhóm người khác nhau Những ứng
dụng như vậy được gọi là những hệ truy vấn dữ liệu hướng người dùng Cụ thể
hơn thì hệ truy vấn dữ liệu hướng người dùng mà ta cần hướng tới cần có khả
năng biểu diễn yêu cầu của người dùng một cách uyển chuyển nhằm có thể cá thể hóa yêu cầu của từng người dùng; và cũng cần phải có những kỹ thuật thực thi truy vấn thích hợp để trả về kết quả phù hợp với sở thích, thói quen của từng
người sử dụng
Truy vấn dữ liệu hướng người dùng là việc tìm kiếm thông tin hoặc thực hiện truy vấn trong cơ sở dữ liệu nhằm đưa ra kết quả phù hợp với sở thích, thói quen
của từng người hoặc từng nhóm người sử dụng
Để có thể tiếp cận tới tính “hướng người dùng”, ta phải quan tâm tới cả phía
tương tác với người dùng (front-end) lẫn phía bên trong hệ thống (back-end)
Người dùng tương tác với hệ thống truy vấn dữ liệu thông qua các câu hỏi truy
vấn, như vậy để hỗ trợ cho tính “hướng người dùng” ở phía front-end, ta cần quan tâm tới khả năng hỗ trợ cho người dùng trong việc biểu diễn yêu cầu của mình Còn ở phía back-end, ta cần quan tâm tới khả năng xử lý những yêu cầu truy vấn
của người dùng để trả về cho người dùng những thông tin sát với sở thích và
những mối quan tâm của người dùng (kết quả hướng người dùng hay kết quả được cá thể hóa – personalized answers)
1.2 T ổng quan về truy vấn trong CSDL và tìm kiếm thông tin
Hiện nay, tồn tại hai kiểu lưu trữ và khai thác thông tin phổ biến Đó là sử
dụng các hệ thống tìm kiếm thông tin (Information Retrieval System - IR) hoặc
dùng các hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) Để
có thể xây dựng được một hệ truy vấn dữ liệu hướng người dùng, ta cần xem xét
những đặc trưng riêng của hai lĩnh vực này
Trang 9Hệ thống tìm kiếm thông tin (Information Retrieval System) là hệ thống làm
việc trên nguồn thông tin dưới dạng các văn bản (document) để tìm ra những văn
bản có liên quan tới yêu cầu của người dùng Quá trình quan trọng nhất của một
hệ thống tìm kiếm thông tin là bước sắp xếp theo mức độ liên quan của mỗi văn
bản với yêu cầu của người dùng Quá trình sắp xếp này được gọi là ranking, hàm
số được dùng để đánh giá mức độ liên quan của văn bản so với yêu cầu của người dùng được gọi là ranking function Trong tìm kiếm thông tin (Information
Retrieval – IR), ta c ũng gọi yêu cầu của người dùng là truy vấn
Ví dụ phổ biến nhất của IR là hệ thống tìm kiếm thông tin trên Internet như Yahoo Search, Google, MSN Search Người dùng đưa vào truy vấn dưới dạng
những đoạn văn bản ngắn nhập vào giao diện Web, hệ thống sẽ tìm trong các Website và trong các file văn bản (dạng plain text hoặc dạng định kiểu như HTML, XML, PDF, ) để tìm ra những văn bản có liên quan nhiều nhất với truy
vấn và kết xuất kết quả tìm kiếm cho người dùng cũng trên giao diện Web (có
link kèm theo để người dùng có thể chuyển tiếp tới văn bản gốc)
Trái với IR System, tìm kiếm trong cơ sở dữ liệu có những điểm khác cơ bản Thông tin trong cơ sở dữ liệu là thông tin có tính tổ chức và có cấu trúc Chẳng
hạn trong các cơ sở dữ liệu quan hệ như Oracle, IBM DB2, MS SQL Server,…,
dữ liệu được tổ chức thành các bảng (table) quan hệ, người dùng tìm kiếm thông tin trong CSDL thông qua các câu truy vấn Khác với truy vấn trong IR, truy vấn trong Database dựa trên những điều kiện Boolean, mỗi bản ghi chỉ có 2 trạng thái
là thỏa mãn hoặc không thỏa mãn điều kiện truy vấn; mỗi bản ghi được kết xuất ở
kết quả của truy vấn chỉ khi bản ghi đó thỏa mãn điều kiện truy vấn Ngoài ra,
hiện nay truy vấn trong Database được hỗ trợ tốt hơn IR đối với những dữ liệu multimedia (image, audio, ), hỗ trợ tốt hơn trong tìm kiếm Full-text search với nhiều định dạng: rich text, XML, Word, …
Trang 101.3 Kết hợp các kỹ thuật tìm kiếm thông tin và truy vấn trong CSDL
Trước đây, database và tìm kiếm thông tin IR là hai lĩnh vực đang được phát triển tách biệt với nhau Cách đây ba thập kỷ, các chương trình ứng dụng được phát triển dựa trên những yêu cầu và tiêu chí khác nhau; một số ứng dụng thương
mại cổ điển như tính bảng lương (payroll) hay quản lý tồn kho (inventory
management) được phát triển dựa trên Database, một số ứng dụng khác như
chương trình tóm tắt các tác phẩm được xuất bản hoặc bằng sáng chế được phát triển dựa trên IR Ngày nay tình hình đã thay đổi rất nhiều, các ứng dụng đều cần
cả dữ liệu có cấu trúc và các dữ liệu ở dạng text Tích hợp dữ liệu có cấu trúc và
dữ liệu text là một trong những mong muốn của nhiều sản phẩm ứng dụng thương
mại Các ứng dụng tiêu biểu cần sự tích hợp này là:
- Hệ thống hỗ trợ khách hàng: theo dõi các luồng khiếu nại của khách hàng và phản hồi từ nhà cung cấp; và trong trường hợp lý tưởng phải tự động xác định được phản hồi nào đã trùng với phản hồi trước đó
- Hệ thống chăm sóc sức khoẻ: truy cập vào hệ thống thông tin điện tử
với nguồn thông tin cung cấp bởi các bệnh viện, phòng thí nghiệm
dược phẩm, các bác sĩ,…; hệ thống có khả năng giám sát tình hình sức khoẻ chung của các khu vực dân cư cũng như dự báo sớm về khả năng
xuất hiện dịch bệnh trong cộng đồng
- Tìm kiếm thông tin trong mạng intranet trong đó có nhiều dữ liệu có
cấu trúc cũng như những dữ liệu ở dạng text
Các ứng dụng loại này cần cả khả năng của hệ quản trị cơ sở dữ liệu và khả
năng của một hệ tìm kiếm thông tin (IR) Trong nhiều trường hợp, các câu truy
vấn được viết theo các chuẩn truyền thống như SQL hay XQuery không đủ mềm
dẻo để thể hiện được các yêu cầu đặc thù của ứng dụng trong việc cho điểm (scoring) và xếp thứ tự (ranking) những kết quả tìm được Ngược lại, hệ thống
tìm kiếm thông tin (IR) lại thiếu những hỗ trợ có hiệu quả cho việc xử lý dữ liệu
có cấu trúc và siêu dữ liệu (metadata), IR cũng không cho phép những người phát
Trang 11triển ứng dụng (developer) quản lý thông qua các hàm xếp thứ tự (ranking
function)
Như vậy, xây dựng một hệ thống lưu trữ và xử lý dữ liệu kết hợp được những
ưu điểm của Database và của IR là mục tiêu của nhiều nghiên cứu hiện nay Có
một số giải pháp đang được nghiên cứu như hệ thống hỗ trợ khách hàng QUID System hoặc đề tài nghiên cứu luận án tiến sĩ của Ihab F Ilyas (Purdue University) Trong luận án của mình – Ilyas đã đưa ra một kiểu truy vấn mới
nhằm kết hợp các kỹ thuật tìm kiếm trong IR vào trong Database
Cũng như việc kết hợp giữa các kỹ thuật của truy vấn trong Database và trong
IR System, ta cũng có thể kết hợp các hướng tiếp cận hướng người dùng của truy
vấn trong Database và trong IR System với nhau để tận dụng những ưu điểm của các những hướng tiếp cận này Đó là tính mềm dẻo của truy vấn trong IR và tính
có tổ chức, có cấu trúc, khả năng xử lý dữ liệu hiệu quả của Database
Trang 12CHƯƠNG II:
TÌM KIẾM THÔNG TIN
Chương này sẽ đi sâu tìm hiểu về tìm kiếm thông tin, các mô hình xử lý và cách tiếp cận hướng người dùng bằng kỹ thuật biểu diễn và xử lý user profile
2.1 Giới thiệu chung
Tìm kiếm thông tin đề cập trong chương này là quá trình tìm kiếm các từ khóa
(keyword) trong các v ăn bản (document) [TL12] Hiện nay, các dịch vụ tìm kiếm
thông tin bằng giao diện Web trên Internet trở nên rất phổ biến như Google, AltaVista, MSN Search, Yahoo Search,…
Hình 2.1 mô tả quy trình xử lý chung của một hệ thống IR đối với một yêu
cầu truy vấn:
Hình 2.1: Quy trình xử lý chung của một hệ thống IR
Trang 13Ở quy trình trong hình 2.1, người dùng đưa vào các từ khóa để thực hiện tìm
kiếm và nhận được một danh sách các văn bản được xếp thứ tự và có liên kết
(link) t ới văn bản gốc Một văn bản có thể coi là một “gói từ” (bag of word) Thứ
tự, vị trí của các từ trong gói không được xem xét đến Do văn bản thu thập được
có những định dạng khác nhau (text, HMTL, XML,…) nên cần phải tiền xử lý
v ăn bản trước khi có thể lưu trữ, xử lý,… Từ khóa có thể được coi là một nhóm
nhỏ các từ Tập hợp các từ khóa cần tìm được gọi là truy vấn (query) Các câu hỏi
truy vấn của người dùng cũng phải được phân tích cú pháp trước khi có thể xử lý
Việc tìm kiếm từ khóa trong văn bản dựa trên xếp hạng (ranking) các văn bản
theo mức độ liên quan tới từ khóa của câu truy vấn
Thứ hạng của một văn bản đối với một truy vấn chịu tác động của các thông
số sau [TL12]:
- Tần số liên quan (Relative frequency) của một văn bản đối với một truy
vấn: tính bằng số từ khóa của truy vấn xuất hiện trong văn bản
- Mức độ gần gũi (proximity) của hai từ khóa trong một văn bản: tính bằng
số từ xen giữa 2 từ khóa trong truy vấn tại vị trí có mặt của 2 từ khóa đó trong văn bản Thông số này chỉ có ý nghĩa ta xét đến thứ tự của các từ trong văn bản
- Mức độ đặc trưng (specificity) của một từ khóa: thể hiện mức độ đặc thù,
mức độ quan trọng của từ khóa Từ khóa mô tả khái niện có nội hàm càng rộng thì độ đặc trưng càng nhỏ Ví dụ từ khóa “Microsoft” có độ đặc trưng cao hơn từ khóa “corporation” vì “Microsoft” dùng để chỉ tập đoàn Microsoft trong khi “corporation” có ý nghĩa là “tập đoàn” nói
chung
Mức độ phổ biến (popularity) của một văn bản: là đại lượng xấp xỉ để đánh
giá số lượng người quan tâm tìm đọc văn bản Thông số này thường được tính các
phương pháp ước lượng
Trang 14Như vậy, vấn đế chính đặt ra đối với một hệ thống IR là xử lý quá trình xếp
thứ tự các văn bản theo yêu cầu truy vấn và cần phải biểu diễn các yêu cầu truy
vấn cũng như văn bản theo một dạng thích hợp cho việc xử lý
2.2 Các mô hình xử lý tìm kiếm
Để xử lý truy vấn trong tìm kiếm thông tin, ta cần đưa ra các mô hình xử lý tìm kiếm Một mô hình xử lý phải cho phép biểu diễn văn bản, câu truy vấn, hàm tìm kiếm Bên cạnh đó, nó còn phải làm rõ khải niệm về độ liên quan giữa văn
bản và truy vấn Khái niệm này có thể được biểu diễn một cách nhị phân hoặc
bằng một giá trị xác định trong một miền liên tục
Hiện nay, có nhiều mô hình xử lý tìm kiếm: mô hình Boolean, mô hình không gian vectơ, mô hình xác suất, mô hình ngôn ngữ,…[TL12], mỗi mô hình sử dụng
một số trong số các thông số được nêu ở 2.1 Luận văn xin trình bày hai mô hình được ứng dụng rộng rãi, đó là mô hình không gian vectơ và mô hình xác suất
2.2.1 Mô hình không gian vect ơ
Mô hình không gian vectơ (vector space model) được sử dụng trong các hệ
thống tìm kiếm thông tin từ thuở sơ khai [TL12] Mỗi chiều của không gian vectơ ứng với một từ khóa của truy vấn, số chiều của không gian vectơ là số từ khóa của truy vấn, mỗi văn bản được coi là một điểm trong không gian đó
Mô hình này dùng 2 thông số là tần số liên quan và mức độ đặc trưng xác định
thứ tự văn bản trả về ở kết quả Hàm xác định thứ tự văn bản được gọi là ranking
function
Thông số tần số liên quan trong mô hình không gian vectơ:
Với mỗi tập từ khóa wR1R, wR2R,…,wRnR, để tìm thông số tần số liên quan cho các
văn bản dR1R, dR2R,…dRmR ta lập ma trận boolean trong đó mỗi cột đại diện cho 1 từ khóa, mỗi dòng đại diện cho 1 văn bản ô có giá trị 0 có nghĩa là từ khóa tương ứng không có trong văn bản, ô có giá trị 1: từ khóa tương ứng có trong văn bản:
Trang 15Bảng 2.1: Ma trận boolean biểu diễn quan hệ giữa văn bản và từ khóa
Dựa trên ma trận này, ta có thể tính tần số liên quan của văn bản đối với truy
vấn Tần số liên quan của văn bản dRiR là số lượng ô có giá trị 1 trên dòng i
Thông s ố mức độ đặc trưng mô hình không gian vectơ:
Giả sử cần tìm xác định độ đặc trưng hay đặc thù của một từ khóa wRiR, rõ ràng
độ đặc thù của wR i R tỷ lệ nghịch với số lượng văn bản có chứa wRiR Gọi DRfR(w) là số
văn bản có chứa từ khoá w thì độ đặc trưng của w tỷ lệ nghịch với DRfR(w) Ngoài
ra trong số các từ khóa có một số từ ít quan trọng hơn những từ khác Do đó,
người ta định nghĩa một thông số ký hiệu là IDF (nghịch đảo tần số văn bản) để
xác định độ đặc trưng của từ khóa w:
IDF(w) = log(N/DRfR(w))
IDF là thông s ố đặc trưng cho bản thân các từ khóa IDF cho biết về số lần
xuất hiện của một từ khóa trong văn bản và cho biết cả độ quan trọng của từ đó Tuy nhiên ta không thể dùng bảng 2.1 để tính thông số này, tức là không thể tính
IDF mà chỉ quan tâm tới sự có mặt, vắng mặt của từ khóa trong văn bản Để tính
IDF ta phải sử dụng tần số xuất hiện của từ khóa trong văn bản
0 0 0 1 1
0 1 1 0 0
1 1 0 0 0
Trang 16Ngoài ra để cho biết độ quan trọng của 1 từ trong 1 văn bản, người ta đưa ra thông số tần số từ (Term Frequency – TF), tần số từ được tính cho từng cặp (từ,
văn bản):
T ần số từ(w, d)
= < Số lần xuất hiện từ w trong văn bản d> / <Số từ trong d>
Hàm tính điểm của văn bản (scoring function):
Hàm tính điểm là hàm toán học dùng để xác định “điểm số” của 1 văn bản đối với một tập các từ khóa trong truy vấn Điểm số của văn bản sẽ được dùng để xếp
thứ tự các văn bản và sau đó kết xuất ra kết quả trả về cho người cần tìm kiếm
Giả sử người dùng đã đưa vào truy vấn q =(wRq1R, wRq2R, …, wRqrR), ta cần xác định
điểm số của văn bản d Có nhiều cách để đánh giá văn bản d theo truy vấn q,
chẳng hạn theo góc giữa 2 vectơ q, d hoặc theo khoảng cách giữa hai đỉnh của
2 vectơ: q , d (hình 2.1)
Hình 2.2: Tính điểm số của văn bản theo mô hình vectơ
Dùng mô hình không gian vectơ ta có thể tính được điểm số của các văn bản:
Score(d) = TF(wR 1 R, d) x IDF(wR 1 R) + TF(wR 2 R, d) x IDF(wR 2 R) +
…
ếu chẳng hạn văn bản d ỉ có mặt từ w ủa truy vấn w thì ta có:
Trang 17TF(wR 2 R, d) = TF(wR 3 R, d) =….= 0,
do đó:
Score(dR 3 R) = TF(wR 1 R, dR 3 R) x IDF(wR 1 R) Điểm số của văn bản càng cao thì văn bản đó càng gần với truy vấn
Có hai cách tính điểm số là theo khoảng cách giữa ngọn của vectơ biểu diễn truy vấn và vectơ biểu diễn văn bản và theo độ lớn của góc giữa 2 vectơ này Thứ
tự các văn bản khi sắp xếp giảm dần theo điểm số tính theo 2 cách trên là không
giống nhau do độ dài các vectơ là không bằng nhau, ví dụ nếu một văn bản có
chứa 2 từ trong truy vấn và một văn bản khác chứa 20 từ trong truy vấn thì đương nhiên độ dài của chúng là không tương đương Do đó, ta cần chuẩn hóa để các vectơ đều có cùng độ dài Muốn vậy, ta dùng 1 hình cầu đơn vị (unit sphere) và
đặt tất cả các vectơ vào hình cầu này: gốc vectơ nằm ở tâm, ngọn vectơ nằm trên
bề mặt hình cầu (hình 2.2):
Hình 2.3: Chu ẩn hóa vectơ bằng hình cầu đơn vị
Ta tính điểm số của các văn bản d bằng một hàm số có tham số là số đo góc
(q,d) Sau đó sắp xếp các văn bản theo thứ tự điểm số đã tính được Một cách
phổ biến là điểm số được tính theo hàm cosin Do đó, toàn bộ quá trình sắp xếp
các văn bản với truy vấn được gọi là “quá trình sắp xếp TF-IDF bằng cosin đồng
dạng”
Trang 182.2.2 Mô hình xác suất
Như đã trình bày ở trên, truy vấn trong IR dựa trên việc xác định thứ tự các văn bản ở kết quả Thứ tự này không luôn luôn tường minh Mô hình xử lý truy
vấn theo xác suất được phát triển dựa trên tính chất không tường minh này
Phần này sẽ trình bày về mô hình khái niệm (conceptual model) – mô tả cách
phát triển một lớp các mô hình xác suất Sau đó là các vấn đề chung của mọi mô hình xác suất, đó là không gian sự kiện (event space), quy tắc xếp thứ tự xác suất (probability ranking principle – PRP) và k ỹ thuật học tham số (parameter
learning)
a Mô hình khái niệm
Mối quan hệ giữa các văn bản và biểu diễn (presentation) của văn bản, giữa
truy vấn và biểu diễn của truy vấn được minh hoạ trong mô hình khái niệm ở hình 2.3:
Hình 2.4: Mô hình khái ni ệm
Truy vấn có tính chất duy nhất, nghĩa là một truy vấn là một yêu cầu thông tin
nhất định của một người nhất định Vì vậy hai truy vấn của hai người khác nhau (hoặc của cùng một người tại hai thời điểm khác nhau) có thể là khác nhau Tồn
tại một quan hệ liên quan giữa một truy vấn và một văn bản của một người ở cùng một thời điểm
Trang 19Gọi R là tập hợp văn bản được quan tâm, R là tập hợp các văn bản không
được quan tâm Ký hiệu R = {R, R}, khi đó quan hệ liên quan giữa văn bản và truy vấn được mô tả bởi ánh xạ Q x D R
Khi so sánh chất lượng của các mô hình khác nhau thì mức biểu diễn là một tiêu chí quan trọng Từ nhận xét này ta rút ra hai định hướng cho sự phát triển các
mô hình xử lý truy vấn theo xác suất:
- Tối ưu hóa chất lượng lấy dữ liệu cho một biểu diễn Xem xét một số hình
thức mô tả sự phụ thuộc giữa các từ khóa trong truy vấn là một phương pháp quan trọng
- Phát triển các mô hình chi tiết hóa mức biểu diễn của các truy vấn và văn
bản Mô hình cần cung cấp thông tin chi tiết hơn về các từ trong truy vấn,
ví dụ thông tin về tần số xuất hiện của từ khoá trong văn bản, hoặc thông tin ở đầu ra của phương thức phân tích văn bản nâng cao (advanced text
analysis) (ví d ụ phân tích cho các cụm từ - phrases)
b Không gian sự kiện
Trong mô hình khái niệm, không gian sự kiện Q x D là tập hợp các cặp văn
bản – truy vấn (dRm R, qRkR) (hình 2.5) Cặp văn bản – truy vấn (dRm R, qRkR) được coi là sự
kiện văn bản dRmRđược người dùng quan tâm ở mức độ nào khi đưa ra truy vấn qRkR
Với mỗi cặp (dRm R, qRkR) ta có một đánh giá về mức độ liên quan giữa chúng, ký hiệu
là r(dRmR, qRkR) ∈ R Ta thừa nhận rằng mức độ liên quan r(dRmR,U qURkR) cho những văn
Trang 20bản khác nhau đối với cùng một truy vấn là độc lập với nhau
Hình 2.5: Không gian s ự kiện
Do hệ IR xử lý dựa trên biểu diễn của các văn bản/truy vấn nên IR xử lý như nhau đối với các văn bản/truy vấn có cùng biểu diễn Điều này được minh họa ở hình 2.5 bằng ánh xạ giữa các dòng kề nhau tới cùng một biểu diễn truy vấn qRkR và các cột kề nhau tới cùng một mô tả văn bản dRmR Với mô hình này, các xác suất
P(R|qRk R, dRmR) được thể hiện rõ ràng: Mỗi cặp (qRkR, dRmR) tương ứng với một tập hợp
những thành phần có cùng biểu diễn (được minh họa trong hình là một ma trận con) Vì vậy P(R|qRk R, dRmR) là phần tập hợp văn bản-truy vấn có liên quan
c Quy tắc xếp thứ tự xác suất PRP
Quy tắc xếp thứ tự xác suất PRP nói rằng thứ tự văn bản là tối ưu khi các văn
bản được sắp xếp theo giá trị giảm của xác suất liên quan của chúng tới truy vấn
Trang 21Chứng minh quy tắc này như sau: gọi Clà chi phí để tìm ra một văn bản không
liên quan, C là chi phí để tìm ra một văn bản liên quan Quy tắc trên nói rằng văn
bản dRmR là văn bản tiếp theo được chọn để kết xuất ra kết quả nếu như:
C.P(R|qRkR, dRmR) + C (1-P(R|qRkR, dRmR))
≤ C P(R|qRkR, dRjR) + C (1-P(R|qRkR, dRjR)
với mọi dRjR thu ộc tập hợp văn bản chưa được chọn và dRjR ≠ dRmR Nói cách khác, ta chọn văn bản mà chi phí kỳ vọng là thấp nhất Vì C < C nên điều kiện trên tương đương với:
P(R|qRkR, dRmR) ≥ P(R|qRkR, dRjR) (Quy tắc PRP được chứng minh !)
Quy tắc PRP có thể được mở rộng để xử lý trong trường hợp mức độ liên
quan của 1 văn bản so với truy vấn được biểu diễn bởi một đại lượng có thể có nhiều giá trị (multivalue) chứ không phải chỉ hai giá trị 0, 1 (binary): Giả sử có n
giá trị RR1R < RR2R < … RRnR, là chi phí tìm kiếm tương ứng cho n văn bản với các đánh
giá chi phí: CR1R, CR2R, …, CRnR Khi đó văn bản được xếp thứ tự theo chi phí kỳ vọng:
C
1
),
|(
d K ỹ thuật học tham số
Trang 22Hình 2.6: Ti ếp cận học tham số
Một mô hình xác suất tốt không chỉ xử lý truy vấn dựa trên bản thân câu truy
vấn mà còn phải dựa trên các phản hồi của người dùng, quá trình tiếp thu của mô hình xác suất từ những phản hồi của người dùng được gọi là quá trình tự học tham số Nếu ta tổ chức mô hình theo hướng tự học tham số thì có thể tiếp cận theo ba hướng như trong hình 2.4 Trong mỗi cách tiếp cận, ta phân biệt ra làm hai pha là pha học và pha ứng dụng Ở pha học, ta có dữ liệu phản hồi cho tập con
QRLR x DRLR x TRLR c ủa tập Q x D x T (trong đó T chỉ tập các từ) Từ tập dữ liệu phản
hồi này ta sẽ kế thừa các tham số xác suất Các tham số này được sử dụng trong pha ứng dụng để thêm thông tin cho mô tả của các văn bản và truy vấn
Trong hướng tiếp cận học liên quan với truy vấn , thông tin phản hồi được dùng để tính trọng số cho các từ tìm kiếm có trong truy vấn qRkR Ở đây, ta có các thông tin liên quan của tập các văn bản DRLR , và ta có thể ước lượng các tham số cho tập hợp từ TRLR có mặt trong các văn bản này Pha ứng dụng được giới hạn tới cùng một truy vấn và tập hợp từ TRLR , nhưng có thể áp dụng mô hình này cho tất cả
văn bản thuộc D
Trang 23Hướng tiếp cận học liên quan văn bản độc lập với hướng tiếp cận học liên
quan truy vấn: mô hình đánh chỉ mục theo xác suất sẽ thu thập các dữ liệu phản
hồi cho một văn bản dRmR xác định từ tập hợp truy vấn QRLR với tập hợp từ vựng TRLR
có mặt trong các truy vấn Các tham số được học từ các dữ liệu phản hồi này chỉ
có thể dùng cho cùng một văn bản và cùng một tập hợp từ vựng TRLR (có mặt trong truy vấn) nhưng với tất cả truy vấn Vấn đề chính với hướng tiếp cận này là trong
thực tế không có đủ dữ liệu phản hồi cho một văn bản, vì vậy hầu như không có cách nào để ước lượng tham số theo hướng tiếp cận này
Trở ngại chính đối với hai hướng tiếp cận trên là phạm vi giới hạn của ứng
dụng, vì pha ứng dụng bị giới hạn vào một query hoặc một văn bản Để khắc
phục khó khăn này, ta phải đưa ra mức độ trừu tượng hóa cho các văn bản, truy
vấn và từ vựng Hướng tiếp cận liên quan mô tả dựa trên tư tưởng giống như
phương thức nhận dạng mẫu (pattern recognition method), một mô tả liên quan
bao gồm giá trị của các đặc tính của đối tượng đang được xem xét (“đối tượng” ở đây bao gồm các truy vấn, văn bản và từ vựng) Ở pha học, các tham số có quan
hệ với các đặc tính được rút ra từ ví dụ học UQURLRP P x DRLR x TRLR Ở pha ứng dụng, không có hạn chế với tập con UQURARP P x DRAR x TRAR của các đối tượng mà các tham số
có khả năng được áp dụng: cả truy vấn mới cũng như văn bản mới và từ vựng
mới đều được xem xét Đây là một phương thức học dài hạn (long-term learning method), vì dữ liệu phản hồi có thể được thu thập từ tất cả các truy vấn, vì vậy kích thước của các mẫu học sẽ tăng theo thời gian, đồng thời đại lượng xác suất ước tính cũng có thể tăng
Trang 242.3 Ti ếp cận hướng người dùng bằng kỹ thuật biểu diễn và xử lý user profile
Để giúp người dùng phải đưa ít yêu cầu hơn và kết quả thu được sát với sở thích, mức độ quan tâm của người dùng hơn bằng cách lưu lại thông tin về thói quen, sở thích cá nhân,… của người dùng vào profile riêng của từng người qua
việc tự động phân tích lịch sử sử dụng của người dùng hoặc người dùng tự định nghĩa profile Từ đó khi người dùng đưa vào một câu truy vấn thì ta sẽ kết hợp
nội dung câu truy vấn với profile của người dùng để đưa ra câu truy vấn mới sát
hơn với sở thích, thói quen, mức độ quan tâm của người sử dụng Vấn đề đặt ra là cách cách tổ chức profile, cách thu thập thông tin vào profile và thuật toán dùng
kết hợp nội dung của câu truy vấn và profile của người dùng để đưa ra câu truy
vấn mới
Để dễ hình dung, xét ví dụ về việc tìm kiếm thông tin trên Web, các môtơ truyền thống trả về cùng một kết quả với cùng cách sắp xếp cho tất cả người dùng
nếu như họ thực hiện cùng một truy vấn (cùng một nhóm từ khoá) Những kết
quả này có thể trải rộng trên rất nhiều lĩnh vực, có nhiều lĩnh vực nằm ngoài sự quan tâm của người tìm kiếm Như vậy, người tìm kiếm sẽ mất nhiều thời gian duyệt qua các kết quả để tìm được đúng kết quả mình cần Ngoài ra, nếu phải duyệt quá lâu người tìm kiếm sẽ mất kiên nhẫn và sẽ đưa ra một truy vấn khác
Một khía cạnh quan trọng khác của vấn đề này là người dùng thường chỉ đưa ra
một số lượng ít các từ khóa do thói quen - những từ khóa này thường mang nghĩa chung chung và có thể tìm thấy trong rất nhiều lĩnh vực Ví dụ với từ khóa tìm
kiếm là “Java Programming”, có người muốn tìm kiếm các tutorial, số khác
lại quan tâm tới source code Hiện tượng nhập nhằng về ngữ nghĩa này còn bị gây
ra bởi các hiện tượng từ đồng nghĩa (synonym) và đồng âm ( homonym) Ví dụ, khi
người dùng đưa ra từ khóa tìm kiếm là “apple” thì có thể họ muốn tìm thông tin liên quan tới “apple” như một loại hoa quả, cũng có thể họ quan tâm tới thông tin
về tập đoàn “Apple Computer” Như vậy, nếu như không có thông tin thêm thì
Trang 25search engine không thể đoán được ý định thực sự của người tìm kiếm Từ đó đặt ra yêu cầu cần cá nhân hóa (personalization) việc tìm kiếm của người dùng Kiến trúc chung của hệ thống tìm kiếm hỗ trợ cá nhân hóa có thể được mô tả bằng hình vẽ sau [TL5]:
Hình 2.7: Tìm ki ếm hướng người dùng bằng user profile
Thông tin của user được lưu trữ trong User Profile , Nội dung của nó được truy
xuất bởi module User Profiling Người dùng tương tác thông qua module User
Module search personalization được đặt ngay trên search engine truyền thống hoặc
có thể được tích hợp với search engine Search personalization gồm 2 module nhỏ là
query disambiguation và result ranking Query disambiguation sẽ thêm các
từ/thuật ngữ (term) bổ sung vào các từ khóa tìm kiếm mà người dùng đã nhập Ví
dụ nếu người dùng thường quan tâm tới “programming” thì khi người dùng tìm kiếm với từ khóa “java”, module Query disambiguation sẽ thêm
“programming” vào cụm từ tìm kiếm thành “java programming” Module
Result Ranking chịu trách nhiệm xếp hạng các kết quả tìm kiếm, như thế những
kết quả có liên quan tới “programming” sẽ được liệt kê đầu tiên – phù hợp với
sở thích quan tâm tới “programming” của người dùng
Trang 26a User Profile
Giả sử rằng các truy vấn được công thức hóa thành sự kết hợp giữa các
từ/thuật ngữ (term) bằng các toán tử logic Ta dùng các ký hiệu tR 1 R, tR 2 R,… để
biểu thị các từ Các toán tử logic gồm AND, OR, NOT với ý nghĩa thông
thường Nếu như trong cụm từ tìm kiếm: giữa 2 từ không có toán tử thì toán tử
mặc định là AND Một số ví dụ về các truy vấn theo dạng này:
"Java AND programming"
"geological AND phenomenon"
Dấu ngoặc đơn cũng được dùng để nhóm 1 cụm từ và toán tử:
"geological AND (phenomenon OR formation)"
Hệ thống sử dụng đồ thị (graph) G(V,E) để mô hình hóa user profile trong đó tập hợp nút V là tập các từ Tập hợp nút này được xây dựng dựa trên lịch sử tương
tác giữa người dùng về hệ thống, các ontology,…Các nút thuộc V có trọng số (weight) biểu thị mức độ quan tâm của người dùng Trọng số là một số thực trong khoảng [0, 1], giá trị 1 thể hiện mức độ quan tâm cao nhất (gần như luôn luôn quan tâm), giá trị 0 thể hiện mức độ quan tâm thấp nhất (gần như không bao
giờ quan tâm) Trọng số các nút sẽ được sử dụng để sắp xếp kết quả truy vấn Tập cạnh E cũng mang trọng số và biểu thị quan hệ giữa các từ Mỗi cạnh nối
từ từ tR i R tới từ tR j R được liên kết với 1 toán tử logic nhất định và biểu thị khả năng
viết lại (rewriting) thuật ngữ tR i R bằng thuật ngữ tR j R
Tập hợp E=C ∪D∪N∪S trong đó :
- Tập hợp C gồm các cạnh thể hiện quan hệ kết hợp (conjunction)
Một cạnh conjunction tR i R_tR j R chỉ ra rằng tR i R có thể được viết lại thành tR i R AND tR j R
- Tập hợp D gồm các cạnh thể hiện quan hệ tách rời (disjunction)
Một cạnh disjunction tR i R_tR j R chỉ ra rằng tR i R có thể được viết lại thành
t OR t
Trang 27- Tập hợp N gồm các cạnh thể hiện quan hệ phủ định (negation) Một
cạnh negation tR i R_tR j R chỉ ra rằng tR i R có thể được viết lại thành tR i R
NOT tR j R
- Tập hợp N gồm các cạnh thể hiện quan hệ thay thế (substitution)
Một cạnh substitution tR i R_tR j R chỉ ra rằng tR i R có thể được viết lại thành tR j R
Bảng dưới đây tóm tắt ý nghĩa và mô tả ký hiệu đồ họa của các loại cạnh nói trên :
conjunction tR i R có thể xem xét thay thế bởi tR i R AND tR j
disjunction tR i R có thể xem xét thay thế bởi tR i R OR tR j
negation tR i R có thể xem xét thay thế bởi tR i R NOT tR j
subtitution tR i R có thể xem xét thay thế bởi tR j
Bảng 2.5
Trọng số của cạnh tR i R_tR j R thể hiện sự quan trọng của việc viết lại (rewriting)
tR i R thành tR j R Trọng số của cạnh cũng là một số thực trong khoảng [0, 1]
Dưới đây là hình vẽ ví dụ về các loại cạnh nối giữa các từ và trọng số của
Trang 28chúng :
Hình 2.8 : Ví dụ về các loại cạnh biểu thị quan hệ giữa các từ
Trong hình 2.9, "Java" có thể được thay thế bởi "Java AND
Programming" với độ quan trọng là 0.6; "AI" có thể được thay thế bởi
"Artificial Inteligent" với trọng số là 0.8 ; "Java" có thể thay thế
bởi "Java NOT Coffee" với độ quan trọng là 1 (mức cao nhất) – có nghĩa
không xét những văn bản có mặt "Java" mà có mặt "Coffee"; "Cartoon"
có thể được thay thế hoàn toàn (độ quan trọng bằng 1) bởi "animation" Thông thường đồ thị biểu diễn user profile sẽ là đồ thị không liên thông do có
nhiều lĩnh vực tách rời nhau (các thuật ngữ không có liên quan với nhau) Hình
2.10 là một ví dụ về đồ thị biểu diễn user profile của người dùng :
Trang 29Trong đồ thị này có 2 thành phần liên thông Một liên quan đến "background
image" và m ột liên quan đến "Java programming" Hai thành phần không có mối
liên hệ gì với nhau Mặt khác, một thành phần liên thông có thể chứa nhiều hơn
một lĩnh vực người dùng cần Trong đồ thị ở hình 2.10, "Java programming" liên
thông với "database system" Nói chung, với mỗi cặp đỉnh tR i R và tR j R , chỉ có thể nhiều nhất 1 cạnh tR i R_tR j R mà kiểu của nó phản ánh ý niệm chính của tR i R trong tương quan với tR j R Mặt khác, tR i R_tR j R và tR j R_tR j R có thể cùng tồn tại Ví dụ ‘Java’ được nối với
‘programming’ và ‘programming’ cũng được nối tới ‘Java’, trọng số của 2 cạnh này là không bằng nhau, do ‘programming’ còn được nối với ‘C’ Việc viết lại (rewriting) có thể không chỉ phụ thuộc vào các cạnh nối trực tiếp mà có thể thông qua các cạnh trung gian trên đồ thị Trọng số của đường đi gián tiếp này được tính dựa trên trọng số các cạnh thuộc đường đi Đặc biệt, nếu DR N R là tập hợp các
trọng số các cạnh thuộc đường đi thì trọng số gián tiếp có thể được xác định bởi
hàm fRTR(DR N R) Về mặt nguyên tắc, có thể có nhiều hàm fRTR(DR N R) nhưng hàm này phải
thỏa mãn điều kiện : fRTR(DR N R) ≤ min(DR N R)
Ta sử dụng phép nhân các tham số của fRTRđể tính trọng số gián tiếp Trong đồ
thị hình 2.10, trọng số của việc viết lại gián tiếp thuật ngữ ‘Java’ bởi
dụng thuật toán QDP (Query Disambiguation and Personalization):
Đầu vào (input): Q: User query; U: user profile; CXT: ngữ cảnh (context)
của query, CTX(tR j R, Q) = TRUE khi tR j R thuộc ngữ cảnh của Q
Trang 30Có một số điều kiện xác định ngữ cảnh như:
- Trọng số gián tiếp của tất cả đường đi nối từ mới tR j R tới truy vấn Q đều
phải lớn hơn ngưỡng T
- Số lượng cạnh của mỗi đường đi nối từ mới tR j R tới Q phải nhỏ hơn
ngưỡng T
Đầu ra (output): Truy vấn đã được sửa đổi Q’
Thuật toán QDP dựa trên thuật toán tìm đường đi ngắn nhất trong đồ thị có
trọng số Đồ thị có trọng số ở đây là biểu diễn đồ thị của user profile Thuật toán
lặp đi lặp lại quá trình duyệt từng từ đã có mặt trong truy vấn, tìm các từ trong user profile sao cho đường nối từ từ mới đó tới từ đang xét thỏa mãn điều kiện CTX
Mô tả sơ bộ thuật toán:
QDP algorithm
Input: Query Q, User Profile U, Query-Context Criterion CXT
/*CXT(tj,Q)=TRUE then tj is in the context of Q */
Output: Modified query Q’
Trang 31Ví dụ về thực hiện thuật toán QDP:
c Mô tả cài đặt ở mức prototype:
Hiện nay Google cung cấp một search engine về tìm kiếm thông tin trên Internet và cung cấp giao diện cho người lập trình ứng dụng là google web API service - một chương trình chạy trên web cho phép tìm kiếm và xử lý các thông tin tìm được, ta có thể sử dụng google web API service để xây dựng module Search Interface Truy vấn sau khi được cá nhân hóa bằng thuật toán QDP được dịch sang một dạng cú pháp theo quy định của google: tìm kiếm chính xác một
cụm từ thì cụm từ đó được bao bọc bởi dấu nháy kép (“) Muốn tìm văn bản không có một từ nào đó thì đặt dấu ‘-‘ ở ngay trước từ đó Hệ thống lấy kết quả
của google trả về, tiến hành xếp thứ tự theo trọng số của các từ trong user profile
và trả kết quả cho người dùng
2.4 Kết luận và đánh giá
Như vậy, chương này đã trình bày xong các vấn đề liên quan đến tìm kiếm thông tin Vấn đề xử lý truy vấn trong tìm kiếm thông tin đã được trình bày ở mục các mô hình xử lý tìm kiếm (mục 2.2) Tuy nhiên những mô hình này chỉ xử lý
dựa trên yêu cầu truy vấn, cụ thể là dựa trên bản thân các từ khóa truy vấn và
chưa có tiếp cận hướng người dùng Mục 2.4 đã trình bày hướng tiếp cận User Profile để cá thể hóa câu truy vấn Tuy nhiên đây chỉ là một phương pháp áp dụng
ở mức độ biểu diễn truy vấn chứ chưa đi sâu vào xử lý truy vấn Đó là do User Profile được đặt tách biệt và ở tầng trên của phần xử lý Nói cách khác, quá trình
cá thể hóa truy vấn ở đây được xây dựng độc lập trên một hệ tìm kiếm thông tin
Trang 32Để tăng hiệu quả xử lý, ta có thể kết hợp quá trình cá thể hóa vào trong quá trình xử lý Khi đó, mô hình xử lý sẽ phải có nhiều thay đổi Khi kết hợp cá thể hoá thì quá trình xử lý cấn phải quan tâm đến ngữ nghĩa của các từ khóa truy vấn Bên cạnh đó, khái niệm tần số liên quan giữa văn bản với từ khóa cấn phải được
mở rộng do ta có thể thêm vào câu truy vấn một số từ khóa mới lấy từ quan hệ
ngữ nghĩa trong User Profile Khi tính tần số liên quan giữa văn bản với những từ khóa mới này ta phải nhân thêm với hệ số là trọng số của các quan hệ ngữ nghĩa
giữa các từ khóa trong user profile
Trang 33CHƯƠNG III:
TRUY VẤN TRONG CÁC HỆ CƠ SỞ DỮ LIỆU
Trong chương này, luận văn sẽ trình bày tổng quan về quy trình xử lý câu truy vấn trong cơ sở dữ liệu Trên cơ sở đó, luận văn đi sâu xem xét quy trình xử
lý truy vấn Top-K - một hướng tiếp cận của truy vấn hướng người dùng Luận
văn cũng đi sâu vào Preference SQL - một hướng tiếp cận để biểu diễn câu truy
vấn hướng người dùng
3.1 Quy trình x ử lý câu truy vấn trong cơ sở dữ liệu
Trong các hệ quản trị CSDL, quá trình thực hiện truy vấn bao gồm 3 bước là [TL2]: phân tích (Parser) cú pháp câu truy vấn, tối ưu hóa (Optimizer) câu truy
vấn và thực thi (Execution) câu truy vấn (hình 3.1):
Trang 34Hình 3.1: Quy trình x ử lý truy vấn trong cơ sở dữ liệu
Trong quy trình xử lý truy vấn ở hình 3.1, yêu cầu truy vấn thường được biểu
diễn bằng ngôn ngữ SQL trong các hệ quản trị cơ sở dữ liệu quan hệ Cú pháp chung của câu lệnh SQL như sau:
<Hà nh động> (SELECT/INSERT/UPDATE/DELETE,…)
<Danh sách các trường chịu tác động>
[FROM]
<Danh sách các quan hệ trong phạm vi tác động>
[WHERE <Điều kiện lựa chọn các bản ghi chịu tác động>]
Trong quy trình xử lý truy vấn ở hình 3.1, quá trình tối ưu hóa có nhiệm vụ xác định cách thực thi tối ưu (best plan) cho truy vấn (đã được phân tích cú
pháp) Quá trình tìm kiếm cách thực thi tối ưu được thực hiện theo hình 3.2:
Trang 35Hình 3.2: Mô hình tìm kiếm plan thực thi tối ưu cho câu truy vấn
Việc xác định phạm vi của không gian tìm kiếm cách thực thi tối ưu được
thực hiện bằng 2 module là Algebraic Space và Method-Structure Space Module
Algebraic Space xác định danh sách cách thực thi ở mức các phép toán đại số
Module Method-Structure Space xác định phạm vi các lựa chọn cài đặt ở mức các
phương thức, cấu trúc để thực thi từng phép toán đại số
3.2 Câu truy v ấn lựa chọn k bản ghi (top-k query)
Một câu truy vấn sau khi được thực thi qua quy trình ở mục 3.1 có thể cho
rất nhiều kết quả (nhiều bản ghi thỏa mãn điều kiện lựa chọn) Tuy nhiên, người dùng thường chỉ quan tâm đến một phần kết quả hoặc không đủ thời gian để duyệt và xem tất cả các kết quả Vì thế, cần xếp hạng (ranking) các kết quả trả về
của câu truy vấn cũng như cần giới hạn số kết quả trả về của câu truy vấn Những
Trang 36câu truy vấn có giới hạn số kết quả trả về được gọi là top-k query hay ranking
query Top-k query là một hướng rất quan trọng của truy vấn dữ liệu hướng
người dùng trong DB, vấn đề đặt ra là cần tìm một mô hình để thực thi có hiệu
quả top-k query
Đối với những câu truy vấn thông thường, ta có thể dùng đại số quan hệ
(relational algebra) để biểu diễn chúng Ta sẽ mở rộng đại số quan hệ thành đại
số quan hệ có xét đến thứ tự (rank-relational algebra) để có thể biểu diễn được
các top-k query [TL3] Sau đó, ta cũng cần tìm một mô hình hiệu quả để thực thi top-k query biểu diễn bởi đại số quan hệ có xét đến thứ tự Cuối cùng, ta phải xét
đến quá trình tối ưu hóa việc thực thi top-k query sao cho chi phí thực thi là nhỏ
nhất
3.2.1 Hàm tính điểm
Trong thực thi top-k query, việc sắp thứ tự các bản ghi ở kết quả là một quá trình then chốt Để có thể sắp thứ tự các bản ghi thì mỗi bản ghi cần có một đánh giá hay “điểm số” Do đó phải có một hàm tính điểm cho các bản ghi Hàm tính
điểm này có tham số là các mệnh đề (predicate) của các thuộc tính thuộc bản ghi
“Mệnh đề” của một thuộc tính có thể là bản thân thuộc tính, hoặc là tích số hay
tổng số, hiệu số của thuộc tính với một hằng số (Ở đây ta coi những thuộc tính tham gia vào hàm tính điểm đều phải là thuộc tính có giá trị số, hoặc được ánh xạ
tới giá trị số) Trước khi tính giá trị của hàm tính điểm ta cần chuẩn hóa giá trị
của các mệnh đề trong hàm tính điểm về khoảng [0, 1]
Tính chất đơn điệu của các hàm tính điểm
Cho quan hệ R và hàm tính điểm Score định nghĩa trên quan hệ R
Với q=(vR1R, vR2R,…vRnR) là truy v ấn Top-K trên quan hệ R
Khi đó, nếu bản ghi t=(tR1R, tR2R,…,tRnR) và t’=(tR1R’, tR2R’,…, tRnR’) thỏa mãn điều kiện:
|tRiR’-qRiR| ≤ |tRiR -qRiR| với i=1,…, n (nói cách khác, t’ gần với q hơn t với tất cả các
thuộc tính)
Trang 37Dưới đây là một số hàm tính điểm thông dụng:
• Hàm Min
Giả sử ta cần tính điểm số của bản ghi t=(tR1R, tR2R, …, tRnR) so với 1 bản ghi đích q=(qR 1 R, qR 2 R, …, qR n R) (có thể coi bản ghi này là bản ghi đạt điểm số tối ưu và
ta cần so sánh mức độ phù hợp của các bản ghi t so với bản ghi đích q này) Hàm
tính điểm Min được định nghĩa như sau:
n
t q
n
t q
1
|
|
chính là trung bình
cộng của tổng các hiệu tọa độ của 2 vectơ t và q
Từ định nghĩa của các hàm tính điểm trên ta thấy rằng giá trị hàm Min phụ
thuộc vào mức độ chênh lệch lớn nhất của một thuộc tính của bản ghi đang xét và thuộc tính tương ứng của bản ghi đích Như vậy, muốn giá trị của hàm tính điểm
lớn thì tất cả mức độ chênh lệch giữa hai thuộc tính tương ứng của bản ghi đang xét và bản ghi đích đều phải có giá trị nhỏ Để dễ hình dung, nếu coi mỗi thuộc tính là một tiêu chí lựa chọn bản ghi thì ta có thể dùng hàm Min làm hàm tính
điểm khi cần đảm bảo tất cả các tiêu chí đều nhất thiết phải được thỏa mãn ở một
mức độ nào đó Ngược lại, đối với các hàm Euclidean và Sum, nếu một tiêu chí
Trang 38lựa chọn đạt được xấp xỉ thì có thể “bù” được cho những tiêu chí khác Do đó,
Eulidean và Sum dùng để tính điểm trong trường hợp các tiêu chí không nhất thiết
phải được thỏa mãn và mức độ đánh giá phụ thuộc như nhau đối với các tiêu chí
3.2.2 Đại số quan hệ có xét đến thứ tự
Để biểu diễn truy vấn thông thường người ta dùng đại số quan hệ Với top-k query, do có xét đến thứ tự và có hạn chế số lượng bản ghi ở kết quả cho nên cần đưa ra đại số quan hệ có xét đến thứ tự để biểu diễn chúng
Trước hết ta cần đưa ra định nghĩa về những thành phần quan trọng của đại số quan hệ có xét đến thứ tự:
- Định nghĩa về giá trị cận trên (upper bound) hay giá trị lớn nhất (maximal
possible score) c ủa 1 bản ghi t:
Giả sử ta cần tính giá trị của hàm tính điểm F(pR1R,pR2R,… ,pRnR),quá trình tính giá trị của F được chia thành n bước Giả sử ở bước j+1, tập hợp các thuộc tính đã
được tính là ρ = {pR1R …pRjR} Khi đó ta định nghĩa điểm cận trên (upper bound)
của 1 bản ghi t theo biểu thức:
FRρR(pR1R,pR2R,…pRnR)[t] = F (pRjR=pRjR(t) nếu pR i R ∈ ρ, pR j R= 1 nếu pR i R ∉ ρ
- Định nghĩa về quan hệ có thứ tự (rank-relation):
Cho quan hệ R, hàm tính điểm F(pR 1 R,pR 2 R,… ,pR n R), P là tập con của tập hợp {pR 1 R, pR 2 R,…,pR n R} Khi đó ta định nghĩa quan hệ có thứ tự RRPRP Pbao gồm các bản ghi
của quan hệ R nhưng có xét đến thứ tự của chúng, thứ tự của các bản ghi được
sắp xếp dựa trên điểm số của từng bản ghi, điểm số của bản ghi t chính là điểm cận trên FR ρ R(pR 1 R,pR 2 R,…pR n R)[t]của bản ghi đó
Ngoài ra ta cũng có thể định nghĩa về quan hệ thứ tự <RRpR giữa các bản ghi như sau:
tR 1 R<R Rp RtR 2 R ⇔ FRPR[tR 1 R]<R Rp R FRPR[tR 2 R]
Ví dụ:
Trang 39Xét quan hệ R(a, b) và pR1R, pR2RR Rlà các mệnh đề đã được chuẩn hóa về khoảng [0, 1]:
- Phép sắp xếp thứ tự bản ghi theo giá trị của hàm tính điểm, ký hiệu là
ΤRF(p1,…,pn)R(…), trong đó F(pR1R, pR2R,…,pRnR) là hàm tính điểm bản ghi dùng làm cơ sở cho phép sắp xếp
ấy K bản ghi đầu tiên λ
Trang 40- Phép sắp xếp thứ tự bản ghi theo giá trị của một thuộc tính, ký hiệu là
µ được định nghĩa như sau:
- Phép chọn (selection), ký hiệu: σ với điều kiện c (điều kiện boolean)
• t∈σc (RRpR) n ếu và chỉ nếu t∈R pvà t thỏa mãn điều kiện c
- Phép join hai quan hệ, ký hiệu ∞
• t∈R p1∞ c S p2 nếu và chỉ nếu t∈R p1 x S p2 và t thỏa mãn điều kiện c
• t 1 < Rp1∞ c Sp2 t 2 nếu và chỉ nếu F p1∪p2 [t 1 ] < F p1∪p2 [t 2 ]