1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

23 408 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu này nhằm giới thiệu về cấu trúc splay tree – cây splay và ứng dụng splay tree trong “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”

Trang 1

LỜI MỞ ĐẦU

Môn học Cấu trúc dữ liệu nâng cao là một môn cơ bản, nền tảng cho mỗi người họcvà 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ứurất nhiều cấu trúc dữ liệu cùng với những ứng dụng của chúng trong thực tế Tài liệu này

nhằm giới thiệu về cấu trúc splay tree – cây splay và ứng dụng splay tree trong “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”

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 tôi cũng xin chân thànhcảm ơn các bạn bè và đồng nghiệp đã nhiệt tình giúp đỡ để tôi hoàn thành bài tập này.Mặc dù đã cố gắng nhưng chắc hẳn tài liệu không tránh khỏi những thiếu sót Vì vậychúng tôi rất mong được Thầy cùng các bạn nhận xét và góp ý để tôi được để tài liệu nàyđược hoàn thiện hơn

Chúng tôi xin trân thành cảm ơn!

Hà Nội, tháng 1 năm 2012

Nhóm học viên thực hiện:

Đỗ Quang Hòa - Lê Thanh Mai

Trang 2

Phần 1: Splay tree

1.1 Giới thiệu về Splay tree

Splay tree được các tác giả D.D.Sleator và R.E.Tarjan đưa ra năm 1983 CâySplay là cây tìm kiếm nhị phân, song mỗi phép toán trên cây đi kèm theo thao tác cấutrúc lại cây, như các cây tự điều chỉnh khác là cây AVL hay cây đỏ đen, được gọi làsplaying cây Với cây AVL hoặc cây đỏ - đen, chúng ta không quan tâm tới tần suất truycập của các phần tử dữ liệu, mà thay cho điều đó chúng ta luôn luôn đảm bảo cây khôngbao giờ mất cân bằng tại mọi đỉnh, và do đó thời gian thực hiện các phép toán trên cây làO(logn) Để cài đặt cây AVL hoặc cây đỏ - đen, ta cần phải đưa vào mỗi đỉnh thông tinvề sự cân bằng hoặc về màu của đỉnh đó

Trong khi đó, Splaying cây 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 các dữ liệu được thường xuyên truy cập lên gần gốc cây, vàvì vậy sự truy cập tới các dữ liệu đó sẽ nhanh hơn Ưu điểm của Splay cây là chúng takhông cần lưu thông tin về sự cân bằng của các đỉnh, và do đó, tiết kiệm được bộ nhớ vàsự cài đặt cũng đơn giản hơn

Bên cạnh đó, Splay tree là cây nhị phân tìm kiếm nên cũng khá rõ ràng, dễ hiểu vàdễ dàng thực hiện các thao tác cơ bản như: tìm kiếm, xoá, chèn,…

Ý tưởng của Splay tree là sắp xếp các 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 các nút trong có nhiều con cháu hay các nút lá

Việc chuyển một đỉnh v bất kỳ lên gốc cây là rất đơn giản bằng cách sử dụng các phép quay cây (trái hoặc phải), mỗi lần quay đỉnh v được chuyển lên 1 mức Chẳng hạn,

di chuyển nút được truy nhập x về gốc bởi phép quay:

Trang 3

1.2 Nguyên tắc hoạt động của splay tree

Trên cây splay, các phép quay được định nghĩa bằng các quy tắc quay để quay dầnnút được xét về gốc

Có 2 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 trên chođến khi 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ừ trên xuống dưới đến khiđến nút đang được truy cập

- Trên cây splay, các phép quay được định nghĩa bằng các quy tắc quay để quaydần nút được xét về gốc Nếu x là gốc của cây 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à luôn đảm bảo cây Splay vẫn làcây tìm kiếm nhị phân, phương pháp Bottom Up sử dụng 3 quy tắc quay cơ 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-ZigCha của

phải là gốc của cây, nút x là con trái ( hoặc con phải) của nút gốc, cha của nút x là con

phải (hoặc con 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

Trang 4

Dạng 3: Zig-Zag

Cha của nút x khụng là gốc của cõy, nút x là con trỏi (hoặc con phải) của nút gốc, cha của nút x là con phải (hoặc con 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

Vớ dụ: Áp dụng quy tắc quay đờ̉ quay nút a thành nút gốc

i h

b và a đều là con phải,

áp dụng quy tắc zig-zig

i h g

f

e d a b c

i h

H f

e d a b c

II JJ

G A

B

F

D

E D C

i h

H

g f

a

b c

J

G A

E D C

i h

H f

a

b c

I J

G A

E D

Cha của a là nút d, khụng phải là nút gốc,

d là con trỏi, cũn a là con phải,Áp dụng quy tắc

zig-zag

Trang 5

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à luôn đảm bảo cây Splay vẫn làcây tìm kiếm nhị phân, phương pháp Bottom Up sử dụng 4 quy tắc quay cơ 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

E

D C

h

H f

G A

E

D C

G A

B

F

E

D C

G A

B

F

E

D C

a

h

i

I J H

g

e

G F

a

h

i

I J H

e

G F

Cha của a là nút f, không phải là nút gốc, f là con trái, còn a là con phải

Áp dụng quy tắc zig-zag

Cha của a là nút h, không phải là nút gốc, a và h đều là con tráiÁp dụng quy tắc zig-zig

Trang 6

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à con trái (hoặc conphả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 chacủ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à con trái (hoặc con phải), cha của nút Zlà con 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: sắp xếp lại cây

Trang 7

Zig

Trang 8

1.3 Các phép cập nhật trên Splay Tree

1.3.1 Find (i, T) - Tìm kiếm nút i trên cây T

- Tìm kiếm nút i trên T, như 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 trên đường dẫn tìmkiếm về gốc

Ví dụ tìm nút 42 trên cây T

5 0

6 0

7 0

6 5

6 3

6 6

4 0

4 3

2

0

1

Dạng zig-zag =>quay nút

43 quanh nút 40, quay nút 43 quanh 50

Nút 42 không tìm thấy trên cây, nút 43 được thăm lần cuối cùng trên đường dẫn tìm kiếm

=> quay nút 43

4 3

4 0

2 0

1 6

4 3

5 0

6 0

7 0

6 5

6 3

6 6

Ví dụ tìm nút 65 trên cây T

50

60

70 65

40

43 20

16

Dạng zig

=>quay nút 65 quanh nút

70, quay nút 65 quanh 60

7 0

6 5

6 6

6 0

6 3

5 0

4 0

4 3

2 0

1 6

Dạng zig-zag

=> quanh 65 quanh 50

65

Trang 9

1.3.2 Catenate (T1,T2) - Nối 2 cây T1 và T2 được 1 cây BST

- Tìm nút i lớn nhất trong cây T1

- Quay i về làm gốc T1

- Nối T2 làm con phải của nút gốc i

Ví dụ nối 2 cây

sau

1.3.3 Split (i,T) – Tách cây T tại 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 hoặc liên kết phải của nút i

=> cây T được tách tại nút i thành 2 cây : T1, T2

5 5

7 5

9 0

6 5

10

2 5

2 9

8

23 5

10 25 29

Trang 10

Trường hợp 2: iÏT

• Quay nút i- (nút có giá trị liền trước i) hoặc 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- hoặc liên kết trái của i+

• => cây T được tách tại nút i- hoặc i+ thành 2 cây: T1, T2

Cắt liên kết phải của i

Cắt liên kết trái của i

T2 T1

ii

T2 T1

i

T 1

i -

Cắt liên kết phải của

i-Cắt liên kết trái của i +

T 2

T 1

ii -

Quay i + về

gốc

T 2

T 1

i +

T 2

T 1

i +

9

-Cắt liên kết trái của nút 60

Ví dụ tách cây T tại nút 60

5 0

6 0

7 0 6

5 6 3

6 6

4 0

4 3

2 0

60

70 65

Quay nút 60 (dạng zig)

Trang 11

1.3.4 Insert (i,T)

Insert (i,T) - Phép chèn 1

- Chèn nút vào như trong BST

- Quay nút vừa được chèn về gốc

- Nếu đã có i trong 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 2 cây con T1, T2

- Nối cây T1 thành con bên trái của nút i, T2 thành con bên phải của nút i

Ví dụ chèn nút 42 vào cây T

6 0

7 0

6 5

6 3

6 6

4 0

4 3

Cây T1

4 0

2 0

1 6

Cây T2

4 3 5 0

6 0

7 0

6 5

6 3

6 6 4

0

2 0

1 6

4 3

5 0

6 0

7 0

6 5

6 3

6 6

Nối T1 thành con trái của 42

Nối T2 thành con phải của 42

Trang 12

1.3.5 Delete (i,T) – Xoá nút i khỏi cây T

• Quay nút i về nút gốc của cây T (nếu nút i không có trên cây T thi quay nút được thăm lần cuối cùng trên đườ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 cây T1 và T2

• Xóa nút i

• Catenate(T1, T2)

Ví dụ xóa nút 40 khỏi cây T

Ví dụ xóa nút 80 khỏi cây T

Quay nút 40 về gốc 40

2 0

5 0 6 0 7 0 6 5 6 3

6 6

4 3

2 0 1 6

2 5

5 0

6 0

7 0 6

5 6 3

6 6

4 0

4 3

Quay nút i liên kết phải của nút i, Cắt liên kết trái và

xóa nút i

T’ T2

T1 ii

T

Catenate(T1, T2)

T2 T1

ii

50

60

70 65

40

43 20

70

Trang 13

Phần 2 : 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 cũng như lượng sử dụng của World Wide Web vẫn đang tiếptục tạo ra những thách thức và nhu cầu to lớn mới Nhu cầu mong muốn dự đoán được những sởthích của người dùng nhằm giải quyết và cải thiện việc duyệt một trang web có thể đạt đượcthông qua việc cá nhân hóa các trang web Kỹ thuật cá nhân hóa được thực hiện dựa trên nhữngkhai báo về sở thích cụ thể của người dùng và một quá trỡnh lặp đi lặp lại của việc kiểm địnhhoạt động duyệt web của người dùng, thu thập những yêu cầu của quá trỡnh này về cỏc đốitượng bản thể học (ontological objects) và lưu giữ chúng trong các hồ sơ (profile) nhằm mụcđích cung cấp các nội dung mang tính cá nhân Vấn đề mà chúng ta sẽ đề cập là trường hợp khimột số trang web trở nên phor biến trong một giai đoạn ngắn và được truy cập thường xuyên liêntục trong 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 năng trongtươ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 caonày Do đó, trong bài báo này, chúng tôi sẽ đề xuất một kỹ thuật cá nhân hóa web mới, dựa trêncá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à các đống Nhị phân (Binary Heaps)(2) Chúng tôi sẽ 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ờigian và chứng mỡnh về mặt hiệu năng của đề xuất đưa ra Thêm nữa, chúng tôi sẽ so sánh về cảhai mặt lý thuyết và thử nghiệm kỹ thuật đề xuất đó với các cách tiếp cận khác nhằm chứngmỡnh cho tính hiệu quả của nó Giải pháp của chúng tôi đạt được độ phức tạp về không gianO(P2) và chạy trong thời gian là k.logP, tại đó k là số lượng các trang và P là số lượng các đốitượng bản thể (ontonology) của các 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 các tri thứctrên Web lên các cấp độ mới Bất chấp những nỗ lực dành cho các vấn đề về nghiên cứu và kỹthuật, có rất ít các ứng dụng thực tế triển khai và đánh giá về web ngữ nghĩa đối với những ngườidùng thực Web ngữ nghĩa chỉ có thể được cung cấp nếu nó được vận hành bởi nhu cầu, ngữcảnh, các hồ sơ của người dùng để có thể tích hợp một cách liên tục các tri thức lên web nhằmcung cấp các nội dung thực sự được mong đợi

Ngữ cảnh và sự tùy biến (customization) là một trong những yếu tố chủ yếu quyết định tínhchính xác, hiệu quả, phù hợp của các thông tin truy cập trên các thư viện số của Internet mà nóichung lại đó là Web ngữ nghĩa Trong các ứng dụng Web truyền thống, người dùng duyệt Webtheo các 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ờucầ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àocũng 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 sẽ cung cấpcác hướng đi thay thế cho việc xuất bản dữ liệu, và tăng cường khả năng cho người dùng trongviệ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 đượcdựa trên chất lượng của hồ sơ người dùng và mối quan hệ giữa các đối tượng nội dung Việc môhỡnh húa cỏc dữ liệu sẽ được xuất bản và hồ sơ người dùng bằng các đối tượng bản thể học(ontologies) sẽ cho phép thể hiện được hiệu quả hơn các mối quan tâm của người dùng và các

Trang 14

mối quan hệ giữa các bộ phận thông tin, thông qua việc thúc đẩy các tính năng tiên tiến của côngnghệ Web ngữ nghĩa Chính các mối quan hệ về ngữ nghĩa này có thể được khai thác để thuđược các kết quả về cá nhân hóa được chính xác hơn.

Kỹ thuật cá nhân hóa được thực hiện dựa trên những khai báo về sở thích cụ thể của ngườidùng và một quá trỡnh lặp đi 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 quá trỡnh này về cỏc đối tượng bản thể học (ontological objects) vàlưu giữ chúng trong các hồ sơ (profile) nhằm mục đích cung cấp các nội dung mang tính cánhân

Chúng tôi hướng tới việc lưu giữ các dữ liệu quan hệ giữa các đối tượng bản thể học liênquan đến tính phổ biến của chúng và các yêu cầu của người dùng về các đối tượng bản thể liênquan đến việc duyệt các nội dung đó Các thuật toán về cá nhân hóa và tiến cử nhằm đưa ra cáckiến nghị các 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 cácmẫu duyệt web của người dùng trong quá khứ Vấn đề chúng ta quan tâm là trường hợp khi một

số trang web trở nên phổ biến trong một thời gian ngắn và được truy cập thường xuyên trongkhô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ậpnày và giới thiệu được các trang web có lượng truy cập cao này đến người dùng tiềm năng tươnglai có cùng mối quan tâm chung Vỡ thế, trong 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à các đống Nhị phân (Binary Heaps)(2) Chúng tôi sẽ 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ờigian và chứng mỡnh về mặt hiệu năng của đề xuất đưa ra Thêm nữa, chúng tôi sẽ so sánh về cảhai mặt lý thuyết và thử nghiệm kỹ thuật đề xuất đó với các cách tiếp cận khác nhằm chứng minhcho tính hiệu quả của nó 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 trong thời gian là k.logP, tại đó k là số lượng các trang và P là số lượng các đối tượng bảnthể (ontonology) của các trang Web

II Các nghiên cứu trước đây

Việc cá nhân hóa Web đó trở thành một vấn đề quan trọng do sự phổ biến của các ứng dụngvề 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ừ cáctri 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 các thôngtin được thu thập khác, ví dụ như về vị trí truy cập của người dùng, các mẫu về duyệt web củangười dùng trong quá khứ, hay các đồ mà họ đó mua trờn mạng [16,5,6,7,9] Một vấn đề rấtquan trọng khác nữa là cấu trúc của một trang web và các nghiên cứu mang tính thống kê về cácliên kết và trang web nằm trong cấu trúc đó UPR là một thuật toán về Đánh giá bậc của trangweb (Page Rank) tại đó kết hợp các dự liệu sử dụng và các kỹ thuật phân tích về các liên kếtnhằm đánh giá về khả năng truy cập của các trang Web dựa trên sự quan trọng của chúng trongmộ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 khaiphỏ dữ liệu sử dụng web (Web usage data mining personalization) [1] Vi dụ, một thuật toánphân lớp cho việc các nhân hóa Web dựa trên kỹ thuật khai thác các dữ liệu sử dụng web đóđược đề xuất Thuật toán này gắn cho tài khoản người dùng cả các thông tin mang tính chất tĩnh,thông qua các kỹ thuật xếp nhóm cổ điển, và các hành vi động của người dùng, từ đó đề xuất mộtthuật toán phân lớp lại mới và hiệu quả hơn [17]

Việc kết hợp Điện toán Thông minh (Computational Intelligent) cũng đó được ứng dụngtrong ngữ cảnh của quá trỡnh cỏ nhõn húa Web, thụng qua việc cung cấp cỏc vớ dụ khỏc nhauvề cỏc hệ thống thụng minh, được thiết kế để cung cấp cho người sử dụng Web các 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]

Ngày đăng: 30/12/2015, 20:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w