Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
0,95 MB
Nội dung
LỜI MỞ ĐẦU Môn học Cấu trúc dữ liệu nâng cao là một môn bản, nền tảng cho mỗi người học và làm về công nghệ thông tin Trong môn học này, chúng ta được tìm hiểu, nghiên cứu rất nhiều cấu trúc dữ liệu cùng với những ứng dụng của chúng thực tế Tài liệu này nhằm giới thiệu về cấu trúc splay tree – splay và ứng dụng splay tree “Kỹ thuật cá nhân hóa web ngữ nghĩa trường hợp bùng nổ lượng truy cập web” Chúng tơi xin trân trọng tỏ lịng biết ơn tới Tiến sĩ Nguyễn Mạnh Hùng - người trực tiếp giảng dạy môn học Cấu trúc dữ liệu nâng cao Chúng xin chân thành cảm ơn bạn bè và đồng nghiệp nhiệt tình giúp đỡ để hoàn thành bài tập này Mặc dù cố gắng hẳn tài liệu không tránh khỏi những thiếu sót Vì chúng tơi rất mong được Thầy cùng bạn nhận xét và góp ý để được để tài liệu này được hoàn thiện Chúng xin trân thành cảm ơn! Hà Nợi, tháng năm 2012 Nhóm học viên thực hiện: Đỡ Quang Hịa - Lê Thanh Mai Phần 1: Splay tree 1.1 Giới thiệu về Splay tree Splay tree được tác giả D.D.Sleator và R.E.Tarjan đưa năm 1983 Cây Splay là tìm kiếm nhị phân, song mỡi phép tốn kèm theo thao tác cấu trúc lại cây, tự điều chỉnh khác là AVL hay đỏ đen, được gọi là splaying Với AVL đỏ - đen, chúng ta không quan tâm tới tần suất truy cập của phần tử dữ liệu, mà thay cho điều chúng ta ln ln đảm bảo khơng bao giờ mất cân bằng tại mọi đỉnh, và thời gian thực hiện phép tốn là O(logn) Để cài đặt AVL đỏ - đen, ta cần phải đưa vào mỗi đỉnh thông tin về sự cân bằng về màu của đỉnh Trong đó, Splaying nhằm mục đích giảm bớt tổng thời gian truy cập dữ liệu bằng cách dịch chuyển dữ liệu được thường xuyên truy cập lên gần gốc cây, và vì sự truy cập tới dữ liệu nhanh Ưu điểm của Splay là chúng ta không cần lưu thông tin về sự cân bằng của đỉnh, và đó, tiết kiệm được bợ nhớ và sự cài đặt đơn giản Bên cạnh đó, Splay tree là nhị phân tìm kiếm nên rõ ràng, dễ hiểu và dễ dàng thực hiện thao tác bản như: tìm kiếm, xoá, chèn,… Ý tưởng của Splay tree là xếp nút vừa được xét, có tần suất sử dụng cao về gốc và xem xét với nút có nhiều cháu hay nút Việc chuyển một đỉnh v bất kỳ lên gốc là rất đơn giản bằng cách sử dụng phép quay (trái phải), mỗi lần quay đỉnh v được chuyển lên mức Chẳng hạn, di chuyển nút được truy nhập x về gốc bởi phép quay: 1.2 Nguyên tắc hoạt động của splay tree Trên splay, phép quay được định nghĩa bằng quy tắc quay để quay dần nút được xét về gốc Có phương pháp để quay: - Bottom Up: Xuất phát từ nút được truy cập, ta quay nút này từ dưới lên cho đến trở thành nút gốc - Top Down: Xuất phát từ gốc của cây, ta quay nút này từ xuống dưới đến đến nút được truy cập - Trên splay, phép quay được định nghĩa bằng quy tắc quay để quay dần nút được xét về gốc Nếu x là gốc của thì không phải thực hiện gì 1.2.1 Phương pháp Bottom Up Phụ thuộc vào cấu trúc của đường dẫn truy cập và đảm bảo Splay là tìm kiếm nhị phân, phương pháp Bottom Up sử dụng quy tắc quay bản sau: Dạng 1: Zig Giả sử cha của nút x là gốc của cây, ta thực hiện quay x quanh nút cha của x Dạng 2: Zig-Zig Cha của nút x không phải là gốc của cây, nút x là trái ( phải) của nút gốc, cha của nút x là Quay y quanh z Quay x quanh y phải (hoặc trái) của nút gốc Ta thực hiện phép quay cha của x quanh ông của x và quay x quanh cha của x Dạng 3: Zig-Zag Cha của nút x không là gốc của cây, nút x là trái (hoặc phải) của nút gốc, cha của nút x là phải (hoặc trái) của nút gốc Ta thực hiện quay x quanh cha của x và quay x quanh ông của x Quay x quanh z Quay x quanh y Ví dụ: Áp dụng quy tắc quay để quay nút a thành nút gốc i i h g f J Cha cña a nút b, nút gốc, b a phải, áp dụng quy tắc zig-zig I H e A h g I i f H G g d C a B b b D c E E H a A d F a e b B F c C F E D C J I f G c B h e A d J Cha của a là nút d, không phải là nút gốc, d là trái, a là phải,Áp dụng quy tắc zig-zag D G i a h J h g I f Cha của a là nút f, không phải là nút gốc, f là trái, a là phải Áp dụng quy tắc zig-zag H a A f g d A b B d e b B c C F e c G i C h E g e d c C F b B I G E D H Cha của a là nút h, không phải là nút gốc, a và h đều là trái Áp dụng quy tắc zig-zig G E D 1.2.2 Phương pháp phân tích Top – Down Phụ thuộc vào cấu trúc của đường dẫn truy cập và đảm bảo Splay là tìm kiếm nhị phân, phương pháp Bottom Up sử dụng quy tắc quay bản sau: Dạng 1: Zig Cha của nút Y là gốc của cây, ta thực hiện: Quay nút Y quanh nút cha của Y Nút Y trở thành nút chú của X J I f A H J a D F i Dạng 2: Zig - Zig Cha của nút Z không phải là gốc, nút Z và cha của nút Z cùng là trái (hoặc phải) của nút gốc Ta thực hiện: Quay cha của Z quanh ông của Z và quay Z quanh cha của Z Dạng 3: Zig – Zag Cha của nút Z không là gốc của cây, nút Z là trái (hoặc phải), cha của nút Z là phải (trái) của nút gốc Ta thực hiện quay cha của Z quanh ông của Z Dạng 4: Reasembling Thực hiện: xếp lại VÍ DỤ: Áp dụng quy tắc để quay nút 18 trở thành nút gốc Zi g-Z ig g -Za g i Z -6- Zig Re as em ble 1.3 Các phép cập nhật Splay Tree 1.3.1 Find (i, T) - Tìm kiếm nút i T - Tìm kiếm nút i T, BST - Nếu tìm thấy, quay nút i về gốc - Nếu khơng có i, quay nút cuối cùng được thăm đường dẫn tìm kiếm về gốc Dạng zig-zag Ví dụ tìm nút 65 T 50 =>quay nút 65 quanh nút 50 70, quay nút 65 quanh 60 40 40 20 20 16 65 60 43 43 16 65 65 25 70 63 70 66 60 66 63 5 Dạng zig => quanh 65 quanh 50 Ví dụ tìm nút 42 T Nút 42 không tìm thấy cây, nút 43 được thăm lần cuối cùng đường dẫn tìm kiếm => quay nút 43 6 6 7 5 6 6 Dạng zig-zag =>quay nút 43 quanh nút 40, quay nút 43 quanh 50 6 6 1.3.2 Catenate (T1,T2) - Nối T1 và T2 được BST - Tìm nút i lớn nhất T1 - Quay i về làm gốc T1 - Nối T2 làm phải của nút gốc i i T1 i T2 T2 T1 T1 T2 Ví dụ nối sau 10 23 5 Cây T2 Cây T1 29 25 10 1.3.3 Split (i,T) – Tách T node i Trường hợp 1: i∈ T • Quay nút i về làm gốc của T • Cắt liên kết trái liên kết phải của nút i 75 55 23 => T được tách tại nút i thành : T1, T2 60 65 90 i Cắt liên kết phải của i i T1 Quay i về gốc T1 T T2 i T2 Cắt liên kết trái của i T1 T2 Trường hợp 2: i∉T • Quay nút i- (nút có giá trị liền trước i) i+ ( nút có giá trị liền sau i) về gốc của T • Cắt liên kết phải của nút i- liên kết trái của i+ • => T được tách tại nút i- i+ thành cây: T1, T2 Quay i- về gốc Cắt liên kết phải của iT T i + Quay i + về gốc T i - i - T1 T i + T T Cắt liên kết trái của i + Ví dụ tách T tại nút 60 T T Quay nút 60 (dạng zig) T 60 50 40 65 20 6 6 70 43 63 16 50 Cắt liên kết trái của nút 60 60 40 20 16 66 70 43 Cây T1 10 65 63 66 Cây T2 -9- 1.3.4 Insert (i,T) Insert (i,T) - Phép chèn - Chèn nút vào BST - Quay nút vừa được chèn về gốc - Nếu có i T thì quay nút về gốc Insert (i,T) – Phép chèn 2: - Thực hiện Split(i,T) ta được T1, T2 - Nối T1 thành bên trái của nút i, T2 thành bên phải của nút i Nối T1 thành trái của i i Split(i,T) T T Nối T2 thành phải của i T T T Ví dụ chèn nút 42 vào T 4 5 Split(42,T) Cây T1 6 7 6 6 Nối T1 thành trái của 42 Nối T2 thành phải của 42 6 6 6 11 6 6 Cây T2 1.3.5 Delete (i,T) – Xoá nút i khỏi T • Quay nút i về nút gốc của T (nếu nút i khơng có T thi quay nút được thăm lần cuối cùng đường dẫn tim kiếm) • Cắt bỏ liên kết trái và liên kết phải của nút i, ta được hai T1 và T2 • Xóa nút i • Catenate(T1, T2) i i Cắt liên kết trái và liên kết phải của nút i, xóa nút i Quay nút i T1 T Catenate(T1, T2) T1 T2 T2 T’ Ví dụ xóa nút 40 khỏi T 40 40 Quay nút 40 về gốc 50 60 70 5 6 65 66 63 6 6 Ví dụ xóa nút 80 khỏi T 70 60 50 40 20 16 60 50 70 43 40 65 25 63 20 12 16 63 43 66 25 65 66 Phần : Bài báo khoa học KỸ THUẬT CÁ NHÂN HểA WEB NGỮ NGHĨA Trong trường hợp bùng nổ lượng truy cập web Khái lược Sự phỏt triển vũ bóo về kớch thước lượng sử dụng của World Wide Web tiếp tục tạo những thách thức và nhu cầu to lớn mới Nhu cầu mong muốn dự đốn được những sở thích của người dùng nhằm giải qút và cải thiện việc dụt mợt trang web có thể đạt được thơng qua việc cá nhân hóa trang web Kỹ thuật cá nhân hóa được thực hiện dựa những khai báo về sở thích cụ thể của người dùng và một trỡnh lặp lặp lại của việc kiểm định hoạt động duyệt web của người dùng, thu thập những yêu cầu của trỡnh này về cỏc đối tượng bản thể học (ontological objects) và lưu giữ chúng hồ sơ (profile) nhằm mục đích cung cấp nợi dung mang tính cá nhân Vấn đề mà chúng ta đề cập là trường hợp một số trang web trở nên phor biến một giai đoạn ngắn và được truy cập thường xuyên liên tục một không gian và thời gian giới hạn Mục tiêu của chúng ta là đối phó được với sự bùng nổ về lượng truy cập này và có thể tiếp tục thu hút được những người dùng tiềm tương lai có cùng những mối quan tâm chung đến với những trang web có lượng truy cập cao này Do đó, bài báo này, chúng đề xuất một kỹ thuật cá nhân hóa web mới, dựa cấu trúc dữ liệu tiên tiến Các cấu trúc dữ liệu được sử dụng bao gồm Cây Splay (1) và đống Nhị phân (Binary Heaps) (2) Chúng miêu tả kiến trúc của kỹ thuật, phân tích mức đợ phức tạp về không gian và thời gian và chứng mỡnh về mặt hiệu của đề xuất đưa Thêm nữa, chúng so sánh về cả hai mặt lý thuyết và thử nghiệm kỹ thuật đề xuất với cách tiếp cận khác nhằm chứng mỡnh cho tính hiệu quả của Giải pháp của chúng tơi đạt được độ phức tạp về không gian O(P2) và chạy thời gian là k.logP, tại k là số lượng trang và P là số lượng đối tượng bản thể (ontonology) của trang Web Cỏc từ khúa-thành phần: personalization (cá nhân hóa), ontologies (các đối tượng bản thể học), cấu trúc dữ liệu thích nghi (adaptive data structure) I Giới thiệu Web ngữ nghĩa (The Semantic Web) trở thành mợt đũn bẩy đưa việc tích hợp tri thức Web lên cấp độ mới Bất chấp những nỗ lực dành cho vấn đề về nghiên cứu và kỹ thuật, có rất ứng dụng thực tế triển khai và đánh giá về web ngữ nghĩa đối với những người dùng thực Web ngữ nghĩa chỉ có thể được cung cấp nếu được vận hành bởi nhu cầu, ngữ cảnh, hồ sơ của người dùng để có thể tích hợp một cách liên tục tri thức lên web nhằm cung cấp nội dung thực sự được mong đợi Ngữ cảnh và sự tùy biến (customization) là một những yếu tố chủ yếu quyết định tính xác, hiệu quả, phù hợp của thông tin truy cập thư viện số của Internet mà nói chung lại là Web ngữ nghĩa Trong ứng dụng Web truyền thống, người dùng duyệt Web theo cấu trúc siêu văn bản được định nghĩa trước Vỡ vậy, việc tỡm kiếm nội dung yờu cầu người dùng phải hiểu được bố cục của trang Web, mà bố cục này thỡ khụng phải lỳc nào rừ ràng Việc bổ sung và cỏc ứng dụng Web cỏc kiến nghị được cá nhân hóa cung cấp hướng thay thế cho việc xuất bản dữ liệu, và tăng cường khả cho người dùng việc tỡm kiếm cỏc dữ liệu mà họ quan tõm Tuy nhiờn, tớnh hiệu quả của việc cỏ nhõn húa được dựa chất lượng của hồ sơ người dùng và mối quan hệ giữa đối tượng nội dung Việc mô hỡnh húa cỏc dữ liệu được xuất bản và hồ sơ người dùng bằng đối tượng bản thể học (ontologies) cho phép thể hiện được hiệu quả mối quan tâm của người dùng và 13 mối quan hệ giữa bộ phận thông tin, thơng qua việc thúc đẩy tính tiên tiến của cơng nghệ Web ngữ nghĩa Chính mối quan hệ về ngữ nghĩa này có thể được khai thác để thu được kết quả về cá nhân hóa được xác Kỹ thuật cá nhân hóa được thực hiện dựa những khai báo về sở thích cụ thể của người dùng và mợt q trỡnh lặp lặp lại của việc kiểm định hoạt động duyệt web của người dùng, thu thập những yêu cầu của trỡnh này về cỏc đối tượng bản thể học (ontological objects) và lưu giữ chúng hồ sơ (profile) nhằm mục đích cung cấp nợi dung mang tính cá nhân Chúng tơi hướng tới việc lưu giữ dữ liệu quan hệ giữa đối tượng bản thể học liên quan đến tính phổ biến của chúng và yêu cầu của người dùng về đối tượng bản thể liên quan đến việc duyệt nợi dung Các thuật tốn về cá nhân hóa và tiến cử nhằm đưa kiến nghị trang web đến người dùng thông qua việc truy cập hiện tại của họ và dựa vào mẫu duyệt web của người dùng khứ Vấn đề chúng ta quan tâm là trường hợp một số trang web trở nên phổ biến một thời gian ngắn và được truy cập thường xuyên không gian và thời gian giới hạn Mục tiêu của chúng ta là giải quyết vấn đề bùng nổ về truy cập này và giới thiệu được trang web có lượng truy cập cao này đến người dùng tiềm tương lai có cùng mối quan tâm chung Vỡ thế, bài bỏo này, chỳng tụi đề xuất một kỹ thuật cỏ nhõn húa web mới, dựa trờn cỏc cấu trỳc dữ liệu tiờn tiến Các cấu trúc dữ liệu được sử dụng bao gồm Cây Splay (1) và đống Nhị phân (Binary Heaps) (2) Chúng miêu tả kiến trúc của kỹ thuật, phân tích mức đợ phức tạp về không gian và thời gian và chứng mỡnh về mặt hiệu của đề xuất đưa Thêm nữa, chúng so sánh về cả hai mặt lý thuyết và thử nghiệm kỹ thuật đề xuất với cách tiếp cận khác nhằm chứng minh cho tính hiệu quả của Giải pháp của chúng tơi đạt được độ phức tạp về không gian O(P 2) và chạy thời gian là k.logP, tại k là số lượng trang và P là số lượng đối tượng bản thể (ontonology) của trang Web II Các nghiên cứu trước Việc cá nhân hóa Web trở thành mợt vấn đề quan trọng sự phổ biến của ứng dụng về thương mại điện tử [1,7,9] Một số phương pháp cho việc cá nhân hóa website được đề xuất [1,3,4,6] Mục tiêu của mợt trang web được cá nhân hóa là thu được những ích lợi từ tri thức đạt được từ việc phân tích về hành vi duyệt web của người dùng kết hợp với thông tin được thu thập khác, ví dụ về vị trí truy cập của người dùng, mẫu về duyệt web của người dùng khứ, hay đồ mà họ mua trờn mạng [16,5,6,7,9] Một vấn đề rất quan trọng khác nữa là cấu trúc của một trang web và nghiên cứu mang tính thống kê về liên kết và trang web nằm cấu trúc UPR là mợt thuật tốn về Đánh giá bậc của trang web (Page Rank) tại kết hợp dự liệu sử dụng và kỹ thuật phân tích về liên kết nhằm đánh giá về khả truy cập của trang Web dựa sự quan trọng của chúng một sơ đồ tổng thể về việc duyệt cả trang Web [15] Mợt kỹ thuật cá nhân hóa được sử dụng rất rợng rói khỏc là kỹ thuật cỏ nhõn húa việc khai phỏ dữ liệu sử dụng web (Web usage data mining personalization) [1] Vi dụ, một thuật tốn phân lớp cho việc nhân hóa Web dựa kỹ thuật khai thác dữ liệu sử dụng web được đề x́t Thuật tốn này gắn cho tài khoản người dùng cả thông tin mang tính chất tĩnh, thơng qua kỹ thuật xếp nhóm cổ điển, và hành vi động của người dùng, từ đề x́t mợt thuật tốn phân lớp lại mới và hiệu quả [17] Việc kết hợp Điện tốn Thơng minh (Computational Intelligent) được ứng dụng ngữ cảnh của trỡnh cỏ nhõn húa Web, thụng qua việc cung cấp cỏc vớ dụ khỏc về cỏc hệ thống thụng minh, được thiết kế để cung cấp cho người sử dụng Web thông tin mà họ tỡm kiếm, mà khụng cần phải đũi hỏi họ phải hỏi một cỏch rừ ràng [19] 14 Mặt khỏc, một hệ thống cung cấp đọc tiểu thuyết online xây dựng mô hỡnh hồ sơ và đưa khuyến nghị mà không cần người dùng phải tự dẫn dắt [18] Nói chung, việc cá nhân hóa thời gian gần được sử dụng vào một số lĩnh vực khác Trong quảng cáo, một kỹ thuật xây dựng mục tiêu cho quảng cáo trực tuyến mới được đề xuất [28], với việc sử dụng và thay đổi cho phù hợp một số kỹ thuật về từ vựng và thu thập thơng tin mạnh được kiểm thử đầy đủ, để xây dựng một ước lượng về sự ham thích của mợt người dùng đối với sản phẩm và dịch vụ cụ thể dựa việc phân tích hành vi duyệt web của người dùng Hơn nữa, kỹ thuật theo hướng tiếp cận nghiên cứu thiết kế kết hợp hành vi và công nghệ được đề x́t nhằm hỡ trợ cho việc mơ hỡnh hóa người dùng tôt ứng dụng quảng cáo mobile được cá nhân hóa [29] Thậm chí trỡnh download cỏc trũ chơi điện thoại bằng thiết bị điện thoại, một hệ thống giới thiệu trũ chơi điện thoại được cá nhân hóa được đưa ra, hoạt đợng dựa việc phân tích những thời gian ngày, và thời gian tuần được sử dụng để cung cấp kinh nghiệm được cá nhân hóa nhiều [31] Ngay việc bùng nổ về lượng truy cập được coi là mợt vấn đề về thuật tốn, mợt số bài báo được trỡnh bày Mợt bợ khung (framework) về thuật toỏn mới cho phộp phỏt hiện cỏc dấu hiệu của sự bựng nổ được giới thiêu: mợt bợ cấu trúc dữ liệu tổng qt hóa nhị phân dịch chuyển (Shifted Binary Tree), và một thuật toỏn tỡm kiếm đốn nhằm tỡm mợt cấu trỳc dữ liệu hiệu quả làm đầu vào cho thuật tốn Ngoài ra, việc cá nhân hóa ngữ nghĩa được cải thiện thư viện số cổng thông tin Web Việc duyệt web theo ngữ nghĩa (Semantic Browsing) cung cấp nội dung Web được tạo một cách linh động theo ngữ cảnh, từ cải tiến lại tri thức cho phù hợp với mong muốn của người dùng Ví dụ, với một thư viện số về y học tồn tại thực tế, Thư viện điện tử quốc gia về truyền nhiễm (The National electronic Library of Infection – NeLI, www.neli.org.uk) [32], được bổ sung mới bằng một ontology về lĩnh vực truyền nhiễm, từ cho phép dịch vụ về ngữ nghĩa mới có thể được phát triển mợt cách định tính Trong quỏ trỡnh này, việc hồ sơ hóa nhóm được sử dụng để cải tiến trỡnh duyệt ngữ nghĩa, thụng qua việc tớch hợp cỏc nguồn tri thức phõn tỏn Dịch vụ được đánh giá thơng qua việc phân tích log của máy chủ web, việc cải tiến một cách linh hoạt hồ sơ và thơng qua việc phản hồi định tính từ những người dùng thực tế của cổng thơng tin NeLI Mạng Internet bao gồm Websites sử dụng những loại cấu trúc khác được coi là xương sống của trỡnh xõy dựng chỳng Tuy nhiờn, người dùng thỡ lại duyệt web dựa trờn nội dung của chỳng, khụng quan tõm đến cấu trúc Tại mục [33], chúng ta thảo luận về khả sử dụng ontologies việc khám phá cấu trúc của websites và việc sử dụng để tạo gợi ý về duyệt web cho cỏc khách viếng thăm website Mợt hệ thống log đặc biệt cho phép thu thập được dữ liệu truy cập được giới thiệu kỹ thuật được sử dụng cho việc khai phá dữ liệu Ontology của hồ sơ người dùng được xây dựng thông qua việc khai thỏc cỏc mụ hỡnh định hướng người dùng Hơn nữa, việc bổ sung thêm ứng dụng web với dữ liệu cá nhân hóa là mợt mối quan tâm nhằm cải thiện truy cập của người dùng đến nôi dung xuất bản, và vỡ vậy, cú thể đảm bảo được hoạt động duyệt thông tin của người dùng được thành công Trong mục [34], một mô hỡnh định nghĩa cho khuyến nghị cá nhân hóa bổ sung dựa việc xây dựng hồ sơ người dùng, mô hỡnh về lĩnh vực bản thể học (ontological domain models), và cỏc lý ngữ nghĩa đưa Cỏch tiếp cận này cung cấp một cỏch trỡnh bày ở cấp cao về cỏc ứng dụng được thiết kế dựa mợt mơ hỡnh siờu đặc tả lĩnh vực (domain-specific metamodel) cho ứng dụng Web gọi là WebML Việc tớch hợp dữ liệu sử dụng với nội dung, cấu trỳc hay dữ liệu hồ sơ người dùng cải thiện kết quả của trỡnh cỏ nhõn húa Trong mục [35], SEWep được trỡnh bày, là mợt hệ thống tạo cả hai nội dung là Logs về việc sử dụng ngữ nghĩa của nội dung của website nhằm mục đích nhân hóa Nợi dung Web được giải thích mợt cách ngữ nghĩa 15 sử dụng việc phân cấp khái niệm (taxonomy) C-logs được giới thiệu, là một dạng mở rộng của thư viện log thông tin về trỡnh duyệt Web, nú bao gồm cỏc tri thức kế thừa từ cỏc ngữ nghĩa của cỏc liên kết C-logs được sử dụng đầu vào cho trỡnh khai phỏ việc sử dụng Web, và đưa kết quả là tập hợp khuyến nghị được tập trung mang tính ngữ nghĩa và rợng lớn Thỏch thức của cỏc cụng nghệ khai phỏ Web nghữ nghĩa lĩnh vực học trực tuyến (eLearning) có thể liên quan đến việc dự trữ sẵn kinh nghiệm được cá nhân hóa đến với người dùng Đặc biệt là ứng dụng này có thể thu được nhu cầu và yêu cầu mang tính cá nhân của người học Trong mục [36], có đề x́t mợt bợ khung (framework) cho việc cá nhân hóa e-Learning dựa việc kết hợp hồ sơ sử dụng và ontology về lĩnh vực này Những người viết phõn biệt hai giai đoạn khác cả trỡnh, một dành cho cỏc nhiệm vụ offline bao gồm chuẩn bị dữ liệu, tạo ontology, và khai phá thông tin về sử dụng; và một là dành cho nhiệm vụ online liên quan đến việc tạo khuyến nghị đến người dùng Việc khai phá dữ liệu về sử dụng Web được sử dụng một cách hiệu quả một hướng tiếp cận cho việc cá nhân hóa tự đợng và coi là cách để vượt qua thiếu sót của cách tiếp cận truyền thống việc lọc mang tính cộng tác Bất chấp sự thành công của vấn đề đó, có hệ thống, mà giống hệ thống truyền thống hơn, không đưa vào tài khoản cỏc tri thức ngữ nghĩa về lĩnh vực liờn quan Khụng cú cỏc tri thức về ngữ nghĩa này, cỏc hệ thống cỏ nhõn húa khụng thể gợi ý được loại khác của đối tượng phức tạp dựa tḥc tính bản của chúng Các hệ thống này vừa khơng thể có khả diễn giải một cách tự động lý về mô hỡnh người dùng hay khuyến nghị với người dùng Việc tích hợp tri thức ngữ nghĩa thực tế là thách thức chủ yếu nhất cho thế hệ cá nhân hóa tiếp theo Trong mục [37], trỡnh bày nội dung khỏi quỏt về cỏc cỏch tiếp cận việc sỏp nhập cỏc tri thức ngữ nghĩa vào quỏ trỡnh khai phỏ dữ liệu sử dụng Web và cỏc quỏ trỡnh cỏ nhõn húa Đặc biệt là có thảo luận về vấn đề và đặc tả cho việc tích hợp thành công tri thức ngữ nghĩa từ nguồn khác nhau, ví dụ nợi dung và cấu trúc của Websites được sử dụng việc cá nhân hóa Và cuối cùng, trinh bày mợt bợ khung chung cho việc tích hợp đầy đủ ontologies liên quan đến một lĩnh vực với trỡnh khai phỏ việc sử dụng Web và cỏc quỏ trỡnh cỏ nhõn húa tại cỏc giai đoạn khác nhau, bao gồm việc tiền xử lý và giai đoạn khám phá mẫu, là giai đoạn cuối cùng mà tại mẫu khỏm phỏ được sử dụng cho việc cỏ nhõn húa III.Việc cỏ nhõn húa bựng nổ về truy cập Việc cá nhân hóa có thể được xác định thiết kế, quản lý và cung cấp nội dung dựa trờn cỏc thụng tin biết, quan sỏt được mang tính chất dự đốn Các kỹ thuật cá nhân hóa kết hợp mợt cá nhân người dùng, sở thích của anh/chị ta và thói quen truy cập website, với nội dung dựa hồ sơ của người dùng Trong thế giới bùng nổ thơng tin hiện nay, có rất nhiều cơng nghệ tương tự được sử dụng là một cách để lọc và tổ chức dữ liệu quan trọng nhất đối với họ Nếu được thực hiện xác, việc cá nhân hóa kinh nghiệm của mợt khách viếng thăm trang web, làm cho những thời gian mà sử dụng website, hay ứng dụng có hiệu quà và hâp dẫn Việc cá nhân hóa có thể có giá trị đối với mợt tổ chức, một cổng thông tin hay một cửa hàng trực tuyến, vỡ nú quyết định kết quả kinh doanh mong đợi tăng lượng người dùng phản hồi, liên quan đến việc quảng bá thông tin đến khách hàng Trong nghiên cứu này, chúng cố gắng để giải quyết trường hợp bùng nổ lượng truy cập cá nhân vào trang web Rất nhiều khía cạnh đời sống hàng ngày được mơ tả sự kiện [27] Một số lượng lớn không mong đợi sự kiện xảy phạm vi thời gian nhất định được gọi là một sự bùng nổ (burst), dẫn đến hành đợng tiến trỡnh khụng bỡnh thường Sự bùng nổ có thể xảy rất nhiều hoàn cảnh hàng ngày từ kinh tế đến hiện tượng tự nhiên, ví dụ hoạt động bán hàng hay sự kiện rơi Phụ thuộc vào mức độ 16 quan trọng của hiện tượng hay trỡnh quan sỏt được, việc tỡm một cỏch hiệu quả cỏc sự bựng nổ là vụ cựng cần thiết Một cỏch cụ thể, một sự bựng nổ phụ thuộc vào phạm vi thời gian mà chỳng ta tập trung vào, cũn gọi là kớch thước của cửa sổ Các sự bùng nổ xảy đối với lưu lượng truy cập của một website, và ảnh hưởng đến chức của website rất nhiều khía cạnh Khi mà ngày càng có nhiều doanh nghiệp thương mại tham gia vào hoạt động mạng, thực sự là cần thiết để làm cho website của họ hấp dẫn với khách hàng Một cách để cải thiện lưu lượng truy cập của trang web là thực hiện quảng cáo trực tuyến máy tỡm kiếm (search engine) Trong trường hợp này, bờn cạnh cỏc kết quả tỡm kiếm trờn trang web tỡm kiếm, cú một quảng cỏo được hiện thị thêm vào Một vấn đề phát sinh với việc trả tiền cho mỡi lần click vào liên kết là việc thực hiện click giả Mợt người nào có thể sử dụng đoạn mó tự đợng lập trỡnh để mô mố số lượng lớn click của một trỡnh duyệt lờn một link quảng cỏo Và dĩ nhiờn, số lượng click phải đủ lớn để đạt đượng lượng tiền mong muốn Vỡ vậy, cú một sự bựng nổ cỏc click cú thể được coi là click giả Trong bài bỏo này, chỳng tụi xử lý với trường hợp có bùng nổ lượng viếng thăm đối với một webpage, và làm thế nào để mợt người nào có thể thu được tri thức từ thực tế này và trợ giúp việc cá nhân hóa web Mợt mẫu viếng thăm hay truy cập được coi là bùng nổ (bursty) chúng xảy với cường độ lớn qua một giai đoạn thời gian giới hạn Cụ thể, trường hợp bùng nổ, một vài trang web trở nên rất phổ biến một thời gian ngắn và được truy cập rất thường xuyên một không gian thời gian giới hạn Các mẫu được quan sát một số lượng lớn ứng dụng Internet với số lượng nghiên cứu [10] Trong trường hợp mẫu về tỡm kiếm web bựng nổ, người dùng cố gắng tỡm kiếm cỏc kết quả cụ thể nào tḥc về ontology giới hạn được quan tâm một khoảng thời gian ngắn Như một trỡnh liờn tục, cần thiết phải cú một kỹ thuật thu thập và lưu giữ hiệu quả để giữ lại những ontology được cá nhân hóa và kết quả thường xuyên của người dùng Chỳng ta cú một tập cỏc ontology của Webpages và một số lượng truy cập ngẫu nhiên được thực hiện đến tất cả Webpages bởi người dùng Chúng ta xác định một tập webpages được người dùng mong muốn webpages này trở thành trang được viếng thăm nhiều nhất xác định bởi số lượng viếng thăm được ghi lại khoảng thời gian nhất định Cụ thể hơn, chúng ta đếm đối với mỡi webpage, xem có truy cập được thực hiện từ lần cuối cùng được viếng thăm Nếu số này là đủ để xác nhận trang web này được yêu thích và thời gian mà truy cập được thực hiện thỏa món, thỡ cỏc mẫu truy cập này được coi là sự bùng nổ về truy cập Vỡ sự quỏ tải của cỏc webpages, việc xử lý cỏc ontology cung cấp nhiều thuận lợi hơn, từ giúp sáng tỏ được vấn đề Với việc tăng đều của số lượng webpages, trở thành mợt vấn đề khó với mợt người dùng để có thể định vị được những thông tin mà mỡnh mong đợi một website Để người sử dụng được đơn giản, có rất nhiều website có thể tổ chức webpages của họ thành cỏc ontology nhằm hỗ trợ việc tỡm kiếm một webpage dựa trờn việc ấn định chúng với mợt ontology Do đó, mục đích của chúng ta là làm thu lại được những lợi ích của việc tổ chức Webpages thành ontologies và sử dụng chúng việc xử lý cỏc bựng nổ về truy cập đế mợt ontology xác định của Webpages Ví dụ, chúng giả sử rằng một dùng thường xuyên viếng thăm một ontology nhất định của một website cửa hàng trực tuyến và vỡ mục đích thương mại, viếng thăm ontology của video và âm Tại điểm này, mợt kỹ thuật cá nhân hóa web nhằm xử lý cỏc bựng nổ về truy cập, nờn được cung cấp tới người dùng và ontology của webpages mà người dùng lựa chọn ontology về video và õm được viếng thăm IV Cỏc trang web đối tượng thể (Ontologies) 17 Trước mơ tả thuật tốn về cá nhân hóa của chúng tơi, chúng tơi phải giải thích về cách mà trang web có thể được ấn định tương ứng với đối tượng bản thể (ontologies) Ontology khoa học máy tính là đối tượng diễn tả thực thể, ý tưởng hay sự kiện, cùng với tḥc tính và mối quan hệ của chúng, tương ứng với một hệ thống ontology cụ thể Chúng sử dụng cơng cụ phân tích log của Web có tên ORGAN, cung cấp mợt giải pháp tích hợp việc phõn tớch quỏ trỡnh xõy dựng và thực hiện, thực hiện trờn cả cỏc ngữ nghĩa về nội dung của site việc viếng thăm trang web Thơng tin về sở thích của người dùng liên quan đến chủ đề của website được trích rút ra, sau được kết hợp với ORGAN là một ứng dụng trỡnh quyết định của người quản trị về việc tổ chức lại cấu trúc của Website Do đó, trước sử dụng thuật tốn cá nhân hóa của chúng tơi site, chúng sử dụng công cụ ORGAN để quy trang web của website về cỏc Ontology phự hợp V Mô tả vấn đề (bài tốn) Chúng ta mơ tả bài tốn sau: chúng ta có mợt tập hợp P ontologies của webpages và N users Mỗi Webpage thuộc về một ontology nhất định và mỗi hồ sơ người dùng được lưu một mở rộng (splayed tree) Giống hồ sơ, chúng ta định nghĩa “logfile” của webpages mà người dùng ghợ thăm Trong mở rộng, chúng ta lưu ontology của webpages Tùy tḥc theo tḥc tính của mở rộng, hạng mục được viếng thăm cuối cùng được đưa về gốc của Trong trường hợp của chúng ta, chúng ta chỉnh sửa lại cây, vỡ hạng mục được truy cập thường xuyên nhất là hạng mục được đưa về nút gốc Trong thực tế, chúng ta hướng đến mở rộng một ontology chúng ta quan sát thấy có sự bùng nổ về lượng viếng thăm đến Sau mợt ontology được mở rợng về nút gốc có sự bùng nổ về truy cập, không cần phải cấu trúc lại hay mở rộng lại Vỡ vậy, cỏc ontology xuất hiện ở cỏc mức trờn của cõy mở rộng của mỗi người dùng là hạng mục thuộc về sở thích của người dùng 18 Từ lúc chúng ta giữ hồ sơ của mỗi người dùng, chúng ta mong muốn xây dựng được cấu trúc dữ liệu mà lưu ontology phổ biến nhất mà được nhiều người viếng thăm nhất website A mong muốn được viếng thăm nhất Vỡ vậy, đối với mỗi ontology, chúng ta xây dựng một hàng đợi Hàng đợi mà chúng ta lựa chọn cho cỏc mục đích nói được sử dụng là đống nhị phân (binary heap) Mỗi một ontology giữ một đống nhị phân với ontology khác và mức độ phổ biến của chúng Tùy tḥc vào tḥc tính của hàng đợi ưu tiên, ở nút gốc, chúng ta lưu giá trị key nhỏ nhất và chúng ta có thể truy cập chúng thời gian là O(1) Chúng ta lưu lượng phổ biến của mỗi ontology bằng dấu (-), nhằm giữ được giá trị lớn nhất nút gốc của hàng đợi ưu tiên Mỗi lần chúng ta quan sát thấy có sự bùng nổ về viếng thăm đến mợt topology A, chúng ta tăng một đơn vị đếm của độ phổ biến của ontology này tất cả hàng đợi ưu tiên của ontology tỡm thấy mức cao nhất của mở rộng của mỗi người dùng xác định Ngoài chúng ta cũn tăng lượng đếm của ontology này hàng đợi ưu tiên của ontology A Do đó, chúng ta có thể rút được ontology nào là phổ biến nhất đối với người dùng mà viếng thăm ontology A mợt thời gian cố định Phụ thuộc vào điều kiện nếu mở rộng, chúng ta lưu ontology của Webpages, có thể có mợt cách tiếp cận khác Trong trường hợp Webpages, để đảm bảo rằng, có nhất một phần lớn trang của một ontology được mở rợng về đến nút gốc, chúng ta có thể tuân theo kỹ thuật dưới Chúng ta giả sử rằng một trang x được truy cập thời gian k, đủ để xác định rằng trang này là trang được truy cập thường uyên nhất Khi đó, từ nút cha của nút này thuộc về cùng ontology, chúng ta duyệt từ dưới lên Ngưỡng của số lượng của cấp mà 19 chúng ta duyệt lên phụ thuộc vào số lượng của ontologies và Webpages Cho z là nút được duyệt trước cuối cùng của nốt x thuộc về cùng ontology với x Khi chúng ta mở rợng tất cả nút tḥc về của về với nút gốc Tiếp theo, chúng ta muốn phân biệt/ đánh dấu ontology được viếng thăm nhiều nhất bởi người dùng Các ontologies gần với nút gốc của cây, là nút được ưa thích bởi người dùng Vỡ vậy, vấn đề nhất cũn lại để quyết định là độ sâu của cây, giá trị thể hiện giới hạn, phía tất cả ontologies đều được coi là được người dùng ưa thích Thuật toỏn Khi (Webpage A của ontology W được truy cập bởi người dùng /* Thu thập cỏc thụng tin từ file log của webpage*/ Nếu (truy cập này tạo một bùng nổ về truy cập đến ontology W) Thỡ /* Sắp xếp lại splay của người dùng, từ ontology với mẫu truy cập bùng nổ cuối cùng được đưa về nút gốc*/ Di chuyển (splay) ontology W về nút gốc của mở rộng của người dùng /* Cập nhật hàng đợi ưu tiên của ontologies nhằm đưa được ontologies phổ biến của người dùng*/ Định nghĩa tập hợp ontologies, TOP, tồn tại cỏc level cao nhất của cõy mở rộng Tăng số đếm của W tất cả hàng đợi ưu tiên của ontologies thuộc về TOP Tăng số đếm của ontologies thuộc về TOP hàng đợi ưu tiên của W Trả về khuyến nghị nỳt gốc của hàng đợi ưu tiên của W endif 10 else 11 continue VI Phõn tớch A Yờu cầu về khụng gian Khi chúng ta quan tâm đến độ phức tạp về không gian, ở không gian, theo mong đợi chủ yếu là không gian được tạo bởi hai cấu trúc dữ liệu - Các Splay: Chúng ta cần một splay cho mỗi người dùng Trong trường hợp xấu nhất, tại mỗi một Splay chúng ta lưu W webpages Vỡ vậy, nếu dựa trờn cỏc trường tăng thêm cần thiết cho mỗi nút của Splay, không gian cần thiết là 5.N.W - Hàng đợi ưu tiên: đối với mỗi ontology, chúng ta sử dụng một hàng đợi ưu tiên Vỡ vậy, đối với P ontologies, chúng ta mất một khụng gian là O(P2) B Yờu cầu về thời gian Nếu liên quan đến độ phức tạp về thời gian, mỗi một truy cập cần: - ụ.log(Ŵ/ŵ), cho ụ nỳt của cõy Splay Giỏ trị này chớnh là ụ.log(#pages) - Chúng ta cần thời gian O(1) để quay trở lại nút gốc của từ mỗi hàng đợi ưu tiên Vỡ mất N.O(1) để có thể giới thiệu một ontology đến N người dùng Cuối cùng, chúng ta cần cập nhật hàng đợi ưu tiên Nói cách khác, trước giới thiệu nút gốc của một hàng đợi ưu tiên của ontology, chúng ta phải tăng khóa của 20 ontology mà chúng ta tỡm thấy sở thớch của người dùng, nếu họ hoàn toàn nằm hàng đợi ưu tiên của ontology được mở rợng (splayed) Cuối cùng, chúng ta phải tăng khóa của ontology được mở rợng đó, tất cả hàng đợi ưu tiên của mức cao nhất của mở rộng của người dùng Nghĩa là nếu tính tổng, ta mất k.logP thời gian VII Tổng kết công việc tương lai Các thuật tốn về khún nghị và cá nhân hóa có mục tiêu là giới thiệu trang web đến người dùng dựa nội dung mà họ truy cập và mẫu duyệt web khứ của họ Trong bài báo này, chúng đưa một kỹ thuật cá nhân hóa web, dựa tren cấu trúc dữ liệu tiên tiến Khái niệm của việc này là đối phó với trường hợp bùng nổ về lượng truy cập đến một trang web thông qua việc xây dựng mợt thuật tốn có tác dụng giới thiệu đến những người viếng thăm trang web của một đối tượng ontology cụ thể của trang web A, đối tượng ontologies của trang web mà những người viếng thăm A trước mong muốn được duyệt qua Các cấu trúc dữ liệu được sử dụng là Cây Splay (1) và Các đống nhị phân (Binary heaps) (2) Chúng mô tả kiến trúc của kỹ thuật phân tích đợ phức tạp về khơng gian và thời gian Giải pháp của chúng tơi đạt được đợ xác về không gian là O(P 2) và chạy mất thời gian là k.logP k là số lượng trang và P là số lượng của ontologies Các bước nghiên cứu tiếp theo tương lai bao gồm việc cải tiến thuật toán nhằm đưa vào tài khoản người dùng những phản hồi không rừ ràng của người dùng về lựa chọn sản phẩm cuối cùng, không chỉ là cửa hàng hay dịch vụ trực tuyến Đây là trường hợp đặc biệt hiệu quả cho hoạt động thực hiện về kinh doanh trực tuyến (e-businesses) dựa dịch vụ Web di động RESTful gọn nhẹ 21 KẾT LUẬN Splay tree được tác giả D.D.Sleator và R.E.Tarjan đưa năm 1983 Splaying nhằm mục đích giảm bớt tổng thời gian truy cập dữ liệu bằng cách dịch chuyển dữ liệu được thường xuyên truy cập lên gần gốc cây, và vì sự truy cập tới dữ liệu nhanh Ưu điểm của Splay là chúng ta không cần lưu thông tin về sự cân bằng của đỉnh, và đó, tiết kiệm được bộ nhớ và sự cài đặt đơn giản Vì thời gian có hạn nên chưa thể nghiên cứu sâu tìm hiểu nhiều nữa ứng dụng của splay tree Rất mong nhận được sự đóng góp ý kiến của thầy giáo và học viên khác 22 TÀI LIỆU THAM KHẢO [1] Giáo trình thuật tốn NXB Thống kế 2002 Nhóm Ngọc Anh Thư dịch [2] Slide Bài giảng môn học Cấu trúc dữ liệu nâng cao TS Nguyễn Mạnh Hùng [3] Tài liệu COMP670 online Algorithm – Self-organized – Splay Tree Hung Lau Yung [4] Handbook of Data Structures and applications 2005 Dinesh P.Mehta và Sartaj Sahni [5] Các cấu trúc dữ liệu cao cấp Website congdongCviet.com 23 ... Bài báo khoa học KỸ THUẬT CÁ NHÂN HểA WEB NGỮ NGHĨA Trong trường hợp bùng nổ lượng truy cập web Khái lược Sự phỏt triển vũ bóo về kớch thước lượng sử dụng của World Wide Web tiếp tục... tiên tiến của cơng nghệ Web ngữ nghĩa Chính mối quan hệ về ngữ nghĩa này có thể được khai thác để thu được kết quả về cá nhân hóa được xác Kỹ thuật cá nhân hóa được thực hiện dựa... nổ về truy cập Việc cá nhân hóa có thể được xác định thiết kế, quản lý và cung cấp nội dung dựa trờn cỏc thụng tin biết, quan sỏt được mang tính chất dự đốn Các kỹ thuật cá nhân