Phát biểu truy vấn
Câu truy vấn dựa trên SQL chuẩn. Đầu vào dữ liệu bao gồm hai thành phần:
(a) Câu truy vấn ban đầu là SQL chuẩn
Ví dụ:
Select * From Books where Books.SoTrang= “66”
37
doi(q) = < dT(u), dF(u) > (thành phần chọn lọc sở thích)
với ∀ u∈ DA làm hài lòng sở thích q, dT(u), dF(u) ∈ [-1,1] và dT(u)*dF(u) ≤ 0
doi (q) = <d>, d ∈ [0, 1] (thành phần tham gia sở thích)
Ví dụ:
<Like_LinhVuc= ‘ Chính trị xã hội’, 0.2, 0>
<Like_LinhVuc.ID = Customers.ID, 0.4>
Xử lý truy vấn dựa trên sở thích
Hình 8. Mô hình xử lý truy vấn dựa trên sởthích người dùng
Quản lý hồ sơ người dùng bao gồm: Thêm mới, Sửa, Xóa thông tin sở thích người
dùng. Thành phần sở thích bao gồm: Sở thích về lĩnh vực, thể loại, độ tuổi, ngôn
ngữ, tác giả của sách.
38
Mô tả tóm tắt:
Tên chức năng: Thêm mới
Mục đích: Giúp người dùng thêm mới thông tin sở thích cá nhân
Tác nhân: Người sử dụng
Tóm lược: Khi người dùng đã đăng nhập thành công có thể lựa chọn các chức năng
thêm mới, sửa, xóa thông tin sở thích cá nhân. Với chức năng thêm mới, hệ thống
sẽ kiểm tra thông tin người dùng nhập vào, nếu không hợp lệ thì thông báo lỗi và
cho phép nhập lại. Nếu các thông tin nhập vào đầy đủ và hợp lệ, hệ thống cho phép
thêm thông tin này vào CSDL. Sau khi người dùng thêm mới, họ có thể kiểm tra lại
thông tin đã nhập vào một cách dễdàng, đồng thời có thể sửa hoặc xóa sở thích.
Mô tả kịch bản:
Thông tin đầu vào: Thuộc tính, giá trị, dT, dF, mức độ liên kết
Điều kiện đầu vào: dT.dF ≤ 0
Dòng sự kiện chính:
Hành động của tác nhân Phản ứng của hệ thống
1. Chọn chức năng đăng nhập khi đã
có tài khoản hoặc sau khi đăng kí xong
hệ thống tựđộng cho thành viên vào
trang đăng nhập.
3. Nhập thông tin tài khoản đểđăng
nhập
4. Gửi thông tin đăng nhập tới hệ thống
2. Hiển thị trang đăng kí (nếu được yêu cầu)
5. Kiểm tra thông tin đăng nhập, nếu đúng
thì cho phép truy cập hệ thống, sai thì thông
báo lỗi, ngược lại, thông báo đăng nhập
thành công
39
6. Nháy nút Sở thích trên menu
8. Chọn danh mục sở thích cần thêm
mới (chọn thuộc tính)
10. Chọn giá trị, dT, dF, mức độ liên
kết
7. Mở trang quản lý sở thích cá nhân
9. Hiển thị trang thêm mới sởthích tương
ứng
11. Hệ thống kiểm tra điều kiện, nếu hợp lệ
thì chèn thêm bản ghi mới vào cơ sở dữ liệu.
Và ngược lại thì thông báo lỗi và cho người
dùng nhập lại (gọi thủ tục thêm mới sở
thích)
Các chức năng khác như sửa, xóa sở thích mô tả tương tự như chức năng thêm mới.
Cấu trúc sở thích:
(1) Sở thích về lĩnh vực bao gồm các thuộc tính: Mã sở thích, tên lĩnh vực, mã
người dùng, mức độ thích và mức độ quan tâm đến các trường hợp khác, cuối cùng
là mức độ liên kết các sở thích về lĩnh vực với các sở thích khác.
(2) Sở thích về thể loại bao gồm các thuộc tính: Mã sở thích, tên thể loại, mã người
dùng, mức độ thích và mức độ quan tâm đến các trường hợp khác, cuối cùng là mức
độ liên kết các sở thích về thể loại với các sở thích khác.
(3) Sở thích về ngôn ngữ bao gồm các thuộc tính: Mã sở thích, tên ngôn ngữ, mã
người dùng, mức độ thích và mức độ quan tâm đến các trường hợp khác, cuối cùng
là mức độ liên kết các sở thích về ngôn ngữ với các sở thích khác.
(4) Sở thích về độ tuổi bao gồm các thuộc tính: Mã sở thích, độ tuổi, mã người
dùng, mức độ thích và mức độ quan tâm đến các trường hợp khác, cuối cùng là mức
độ liên kết các sở thích về độ tuổi với các sở thích khác.
(5) Sở thích về tác giả bao gồm các thuộc tính: Mã sở thích, tên tác giả, mã người
dùng, mức độ thích và mức độ quan tâm đến các trường hợp khác, cuối cùng là mức
độ liên kết các sở thích về tác giả với các sở thích khác.
40
Các sở thích này được liên kết với nhau nhờ ID người dùng. Mỗi người dùng có một
hồ sơ riêng với các thành phần sở thích được định nghĩa như trên.
Xử lý Preferences:
Xây dựng các thủ tục gọi đến SQL server xử lý kết hợp truy vấn ban đầu và sở
thích cá nhân. Sau đó, ta thu được một truy vấn mới giúp đưa ra kết quả cá nhân
hóa tốt nhất.
SQL Server
(a) Thủ tục Thêm mới sở thích về lĩnh vực:
if(md1. md2>0) hoặc (md1=0 and md2=0)
begin
(Thông báo: Giá trị chọn không hợp lý,chọn lại giá trị')
end
insert into Like_LinhVuc
(b) Thủ tục sửa sở thích về lĩnh vực:
if(md1. md2>0) hoặc (md1=0 and md2=0)
begin
(Thông báo: Giá trị chọn không hợp lý,chọn lại giá trị')
end
update Like_LinhVuc
(c) Thủ tục xóa sở thích về lĩnh vực:
delete Like_LinhVuc
where ID
(e) Truy vấn dựa trên sở thích người dùng:
Begin
1. R: = {}; Pactive: = PK; MEDI: = (Pactive) (tính toán theo công thức (6));
Xây dựng Qs (truy vấn có mặt và truy vấn vắng mặt 1-1) ( if dT>0, dF≤ 0)
và Qa (truy vấn vắng mặt 1-n) (if dT≤0, dF>0)
41
2. Foreach qi ∈ Qs
2.1. if các sở thích khác nhau trong Qs, Qa không đáp ứng tiêu chí L thì dừng thuật
toán
2.2. thực thi qi
2.3. Foreach t trả về bởi qi, t ∉ R
1. thực thi truy vấn có mặt và truy vấn vắng mặt với bộ dữ liệu t: Qi (t) thu
được P : = {prefs hài lòng bởi t trong các kết quả của qi và Qi }
2. thực thi truy vấn vắng mặt 1- n với bộ dữ liệu t: Qi (t) thu được
A .: = {các sở thích hài lòng bởi t trong kết quả Qi }
3. Prefs = P ∪ A ;
4. Prefs : = PK - Prefs
5. if t đáp ứng tiêu chí L
tính toán dt (dt là mức độ quan tâm) căn cứ vào dT, dF, thành phần
chọn lọc và thành phần tham gia sở thích
R: = add (R, t, Prefs , Prefs , dt)
end for
2.4. output tất cả các t ∈ R với dt ≥ MEDI
2.5. Pactive: = Pactive – {sở thích trong qi}; MEDI: = (Pactive)
end for
3. Foreach qi ∈ Qa
3.1. if phần còn lại của sở thích trong Qa không đáp ứng tiêu chí L thì dừng
thuật toán và trả về tập R
3.2. thực thi qi
3.3. Foreach t trả về bởi qi, t ∉ R
1. thực hiện truy vấn vắng mặt 1-n Qi (t); lưu t vào danh sách thỏa mãn
truy vấn Qi thu được danh sách Ids : = add (Ids , t)
42
3. Prefs d: = PK - Prefs
4. if t đáp ứng tiêu chí L
tính toán dt căn cứ vào dT và dF truyền vào; gán R bằng danh
sách mới R: = add (R, t, Prefs , Prefs , dt)
end for
3.4. output tất cả các t ∈R chưa có đầu ra với dt ≥ MEDI
3.5. Pactive: = Pactive – {sở thích trong qi}; MEDI: = (Pactive)
end for
4. if sở thích trong các truy vấn trong Qa đáp ứng tiêu chí L
4.1. thực thi Q
4.2. Foreach t trả về bởi Q, t ∉ R, t ∉ Ids
1. Prefs : = {tất cả các truy vấn vắng mặt 1-n }
2. if t đáp ứng tiêu chí L
tính toán dt với dT và dF tương ứng và gán R bằng danh sách mới
R: = add (R, t, Prefs , Prefs , dt)
End for
5. output các bộ dữ liệu còn lại từ R End
3.3 Đánh giá
(1)Với câu truy vấn:
Select * From Books where Books.SoTrang= “66”
Tập kết quả thu được như sau:
43
Hình 9. Ví dụ truy vấn không kết hợp sở thích
(2)Với câu truy vấn :
Select * From Books where Books.SoTrang= “66”
Kết hợp Preference:
<Like_LinhVuc= ‘ Chính trị xã hội’, 0.2, 0>
<Like_LinhVuc.ID = Customers.ID, 0.4>
44
Hình 10. Ví dụ truy vấn kết hợp sở thích
Kết quả của truy vấn là đáp ứng ít nhất là L tiêu chí và thỏa mãn sở thích cá nhân được
tích lũy trong một danh sách R có thứ tự giảm mức độ quan tâm. Như vậy, việc kết hợp
truy vấn với sở thích cá nhân không những mang lại sự hài lòng cho người dùng mà
còn giúp thu hẹp phạm vi tìm kiếm, cho phép một sự phục hồi nhanh chóng của bộ dữ
liệu.
45
KẾT LUẬN
Tôi đã tìm hiểu được về vào cá nhân hóa truy vấn và mô hình sở thích, cá nhân
hoá các thuật toán truy vấn hiệu quả, các hàm xếp hạng, và thử nghiệm kết quả. Cá
nhân hoá quyền truy cập cơ sở dữ liệu thông tin [10] sẽ mở ra cánh cửa cho những
thách thức mới và cơ hội cho tương lai. Kết hợp sở thích cá nhân với các khía cạnh
khác của bối cảnh một truy vấn gọi đến các tùy biến khác, chẳng hạn như thời gian của
vị trí người sử dụng, ngày, thiết bị được sử dụng để truy vấn, ... chắc chắn là một thách
thức nghiên cứu ưu tiêntrong tương lai gần.
Hơn nữa, kể từ khi truy vấn cá nhân làm thay đổi trải nghiệm tìm kiếm, người
sử dụng giao diện cần để cung cấp một cách đơn giản hơn để giải thích những gì hệ
thống thực hiện để cá nhân hoá truy vấn hoàn thiện hơn. Vì vậy, một hướng nghiên cứu
thú vị là hướng tới thiết kế của giao diện người dùng cho phép người dùng kiểm soát
mức độ của cá nhân hóa truy vấn, và có thể giúp làm giảm bớt câu trả lời không chính
xác. Một vấn đề khác thú vị là biểu diễn sở thích với một mô hình cao hơn có ánh xạ từ
lược đồ cơ sở dữ liệu, và các thuật toán (bán) tự động xây dựng hồ sơ người dùng.
TÀI LIỆU THAM KHẢO
[1] Agrawal, R., Wimmers, E. A Framework for Expressing and Combining
Preferences. Proc.of ACM SIGMOD, 2000.
[2] André E., Rist, T. From adaptive hypertext to personalized web companions.
Comm. of the ACM, 45(5), 43-46, 2002.
[3] Borzsonyi, S., Kossmann, D., Stocker, K. The Skyline Operator. Proc. of ICDE,
421–430, 2001.
[4] Bruno, N., Chaudhuri, S., Gravano, L. Top- k Selection Queries over Relational
Databases: Mapping Strategies and Performance Evaluation. ACM TODS, 27(2), 153-
187, 2002.
[5] Chomicki, J. Preference Formulas in Relational Queries. ACM TODS, 28(4), 427–
466, 2003.
[6] Koutrika, G., Ioannidis, Y. Personalization of Queries in Database Systems. Proc.
of ICDE, 2004.
46
[6] Collins, A., Quillian, M. Retrieval Time from Semantic Memory. J. of Verbal
Learning and Verbal Behaviour, Vol 8, 240-247, 1969
[7] Fishburn, P. Preference Structures and Their Numerical Representations. Theor.
Comput. Sci. 217, 359–383, 1999.
[8] Hansson, S. O. Preference Logic. In Handbook of Philosophical Logic, D. Gabbay,
Ed. Vol.8, 2001.
[9] Ilyas, I., Shah, R. Aref, W., Vitter, J., Elmagarmid, A. Rank-aware Query
Optimization.Proc. of ACM SIGMOD, 2004.
[10] Internet Movies Database. Available at www.imdb.com
[11] Karypis, G. Evaluation of Item-Based Top-N Recommendation Algorithms. Proc.
of
CIKM, 247-254, 2001.
[12] Kießling, W., Köstler, G.. Preference SQL-Design, Implementation, Experiences.
Proc. of VLDB, 2002.
[13] Kießling, W. Foundations of preferences in database systems. Proc. of. VLDB,
2002.
[14] Koutrika, G., Ioannidis, Y. Personalization of Queries in Database Systems. Proc.
of
ICDE, 2004.
[15] Lacroix, M., Lavency, P. Preferences: Putting More Knowledge into Queries.
Proc. of VLDB, 217–225, 1987.
[16] Liu F., Yu C., Meng W. Personalized Web Search by Mapping User Queries to
Categories.Proc. of ACM CIKM, 558-565, 2002.
[17] Papadias, D., Tao, Y., Fu, G., Seeger, B. An Optimal and Progressive Algorithm
for
Skyline Queries. Proc. of ACM SIGMOD, 467–478, 2003.
[18] Pitkow, J., Schutze, H., et al. Personalized Search. Comm. of the ACM, 45(9),
2002.
[19] Shahabi, C., Banaei-Kashani, F., Chen, Y., McLeod D. Yoda: An Accurate and
Scalable Web-based Recommendation System. Proc. of COOPIS, 2001.
[20] Wellman,M.P., Doyle, J. Preferential semantics for goals. Proc. of the National
Conf. on AI, 698–703, 1991.
[21] Zhu, L., Meng W. Learning-Based Top-N Selection Query Evaluation over
Relational Databases. Proc. of WAIM, 2004.
Một phần của tài liệu
CÁ NHÂN HÓA TRUY VẤN DỰA TRÊN SỞ THÍCH NGƯỜI DÙNG
(Trang 36 -36 )