3.2.1 Kiến trúc hệ thống
Cơ sở dữ liệu sách truyện được xây dựng với hai bộ phận chính:
(a) Thông tin sách: Tên sách, tác giả, năm xuất bản, nhà xuất bản, thể loại, lĩnh vực, số trang, số lượt tải, số lượt xem,…
(b) Sở thích người dùng: Thông tin người dùng, sở thích của từng người dùng về tác giả, ngôn ngữ, lĩnh vực, thể loại, số trang, số lượt tải, số lượt xem,….
Ánh xạ vào cơ sở dữ liệu sách truyện ta có các bảng tương ứng như sau: (1) Thông tin sách: bảng Sách, Nhà xuất bản, Thể loại, Lĩnh vực, …
35
Hình 6. Cơ sở dữ liệu sách
(2) Sở thích người dùng: Người dùng, sở thích về thể loại, lĩnh vực, nhà xuất bản, độ tuổi, tác giả,…
Biểu diễn sở thích người dùng theo định nghĩa doi(q) = < dT(u), dF(u) >; mức độ liên kết d.
36
Hình 7. Cơ sở dữ liệu sở thích
Đối với các bảng lưu trữ thông tin sở thích khác cũng tương tự như trình bày trên. Như vậy hồ sơ người dùng được lưu trữ trong cơ sở dữ liệu gồm thông tin người dùng và thông tin sở thích.
3.2.2 Xử lý truy vấn cá nhân hóa
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.