Luận án Nghiên cứu và phát triển một số độ đo liên kết trong bài toán khuyến nghị cộng tác - Phạm Minh Chuẩn

LỜI CAM ĐOAN. 2

LỜI CẢM ƠN. 3

MỤC LỤC . 4

GIẢI THÍCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT. 6

DANH MỤC CÁC BẢNG. 8

DANH MỤC CÁC HÌNH ẢNH, ĐỒ THỊ . 9

MỞ ĐẦU . 11

1. TỔNG QUAN VỀ BÀI TOÁN KHUYẾN NGHỊ CỘNG TÁC. 16

1.1 Bài toán khuyến nghị cộng tác trong mạng đồng tác giả. 16

1.1.1 Mạng xã hội và mạng đồng tác giả. 16

1.1.2 Bài toán khuyến nghị cộng tác . 20

1.1.3. Tổng quan về các độ đo liên kết trong mạng đồng tác giả . 26

1.2. Một số kiến thức liên quan . 34

1.2.1. Các phương pháp phân lớp. 34

1.2.2 Phân cụm mờ và phân cụm bán giám sát mờ . 38

1.2.3. Phân tích theo chủ đề. 41

1.3. Kết luận. 43

2. CÁC ĐỘ ĐO LIÊN KẾT MỞ RỘNG TRONG MẠNG ĐỒNG TÁC GIẢ . 44

2.1. Độ đo liên kết dựa trên trọng số mở rộng. 44

2.2. Các độ đo liên kết dựa trên nội dung bài báo . 46

2.3. Thuật toán tính độ đo liên kết và đánh giá độ phức tạp của thuật toán . 50

2.4. Đánh giá các độ đo liên kết trong mạng đồng tác giả. 58

2.4.1. Chuẩn bị dữ liệu . 58

2.4.2. Kịch bản thực nghiệm. 60

2.4.3. Kết quả thực nghiệm. 63

2.5 Kết luận. 77

3. BÀI TOÁN KHUYẾN NGHỊ CỘNG TÁC. 785

3.1. Giới thiệu. 78

3.2. Khuyến nghị cộng tác mới. 79

3.3. Khuyến nghị cộng tác tăng cường . 88

3.3. Kết luận. 96

KẾT LUẬN VÀ KIẾN NGHỊ. 97

TÀI LIỆU THAM KHẢO . 99

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN. 108

pdf108 trang | Chia sẻ: trungkhoi17 | Lượt xem: 478 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận án Nghiên cứu và phát triển một số độ đo liên kết trong bài toán khuyến nghị cộng tác - Phạm Minh Chuẩn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đo liên kết dựa trên trọng số mở rộng Dễ nhận thấy, trong mạng đồng tác giả việc xác định trọng số cộng tác giữa hai tác giả đã được nhiều nghiên cứu quan tâm bởi nó là cơ sở để xây dựng các độ đo liên kết trọng số. Nếu trọng số liên kết càng phản ánh một cách khách quan thì hiệu quả của các độ đo liên kết trọng số càng lớn trong việc dự đoán cộng tác. Trong [28] đã đề xuất cách tính trọng số cộng tác giữa hai tác giả là số lượng bài báo đã cộng tác với nhau (𝜔𝑛𝑝). Với cách này, đã phản ánh được một phần mức độ cộng tác giữa hai tác giả. Tuy nhiên, trong một số trường hợp nếu hai cặp tác giả cùng có số lượng bài báo đã viết chung giống nhau thì không thể xác định được cặp tác giả nào có mức độ cộng tác cao hơn nếu không xem xét thêm các thông tin khác. Do vậy, để giải quyết được tình huống này, trong [66] đã đề xuất trọng số cộng tác dựa trên số tác giả trong mỗi bài báo (𝜔𝑛𝑎). Trên thực tế, mức độ cộng tác giữa các tác giả trong bài báo có số lượng đồng tác giả ít hơn sẽ cao hơn so với những bài báo có số lượng đồng tác giả nhiều hơn. Mức độ cộng tác giữa các tác giả ngoài việc phụ thuộc vào số lượng tác giả trong mỗi bài báo còn phụ thuộc vào thứ tự của mỗi tác giả trong bài báo. Chẳng hạn, trong một bài báo một số tác giả đứng đầu tiên thường có mức độ cộng tác với nhau cao hơn so với những trường hợp còn lại. Ngoài ra, yếu tố thời gian công bố của mỗi bài báo cũng phản ánh mức độ thường xuyên cộng tác giữa các tác giả. Vì vậy, trọng số liên kết giữa hai tác giả được tính dựa trên thứ tự của các tác giả trong bài báo và thời gian mà bài báo công bố đã được đề xuất trong [94] (xem công thức (1.5)). Để minh họa rõ hơn độ đo liên kết dựa trên trọng số như đã đề cập, luận án sẽ xem xét việc tính toán giá trị độ đo liên kết thông qua ví dụ về mạng đồng tác giả trong (Hình 1.3 và Bảng 1.1) đối với hai cặp tác giả là (v3, v1) và (v3, v6). Đối với trọng số liên kết dựa trên số lượng bài báo đã viết chung giữa hai tác giả thì 𝑆𝐶𝑁 𝑛𝑝 (v3, v1) = 2 do giữa hai tác giả v3 và v1 có một tác giả láng giềng chung là tác giả v2 (xem Hình 1.3), và số lượng bài báo viết chung giữa hai tác giả v3 và v2 là 3, giữa hai tác giả v2 và CHƯƠNG 2 45 v1 là 1 bài báo (xem Bảng 1.1); tương tự 𝑆𝐶𝑁 𝑛𝑝 (v3, v6) = 2. Như vậy, thông qua giá trị của độ đo liên kết trọng số dựa trên số lượng bài báo viết chung, có thể nhận thấy khả năng cộng tác giữa tác giả v3 và tác giả v1 cũng như tác giả v3 và tác giả v6 trong tương lai là như nhau. Tiếp đến, tính giá trị độ đo liên kết trọng số dựa trên số lượng tác giả trong mỗi bài báo sẽ nhận được 𝑆𝐶𝑁 𝑛𝑎(v3, v1) = (3 + 1/3)/2  1.67, và 𝑆𝐶𝑁 𝑛𝑎(v3, v6) = (3 + 1/2)/2 = 1.75 do giữa hai tác giả v3 và v2 có 3 bài báo được viết chung và trong cả ba bài báo này đều chỉ do hai tác giả này viết. Vì vậy, trọng số liên kết trong mỗi bài báo được xác định bằng 1 (theo công thức (1.15)) và do đó tổng trọng số giữa tác giả v3 và v2 là 3; đối với tác giả v2 và tác giả v1 có một bài báo được viết chung song trong bài báo đó lại bao gồm 4 tác giả vì thế trọng số liên kết giữa hai tác giả v2 và v1 được xác định bằng 1/3. Tương tự như vậy, giữa hai tác giả v2 và v6 có một bài báo được viết chung và số lượng tác giả trong bài báo đó là 3 vì vậy trọng số liên kết giữa hai tác giả này là 1/3. Dễ nhận thấy rằng, đối với độ đo liên kết trọng số dựa trên số lượng bài báo chung trong một số trường hợp cho ra giá trị độ đo liên kết như nhau. Điều này gây khó khăn trong việc dự đoán mức độ cộng tác trong tương lai. Khi áp dụng độ đo liên kết trọng số dựa trên số lượng tác giả trong mỗi bài báo, giá trị độ đo liên kết đã có sự phân biệt hơn (𝑆𝐶𝑁 𝑛𝑎(v3, v1) = 1.67 so với 𝑆𝐶𝑁 𝑛𝑎(v3, v6) = 1.75). Tuy vậy, sự khác biệt giữa 𝑆𝐶𝑁 𝑛𝑎(v3, v1) và 𝑆𝐶𝑁 𝑛𝑎(v3, v6) là chưa nhiều để tác giả v3 đưa ra quyết định cộng tác với tác giả v1 hay v6. Giả sử trong công thức (1.11), nếu thay thế trọng số cộng tác 𝜔𝑛𝑝 bởi 𝜔𝑝𝑡 thì giá trị độ đo liên kết trọng số dựa trên thứ tự tác giả và thời gian công bố của mỗi bài báo đối với hai cặp tác giả (v3, v1) và (v3, v6) được tính bằng 𝑆𝐶𝑁 𝑝𝑡 (v3, v1) = 1.29 và 𝑆𝐶𝑁 𝑝𝑡 (v3, v6)  0.805. Khác với độ đo trọng số dựa trên số tác giả trong mỗi bài báo, mức độ tương đồng 𝑆𝐶𝑁 𝑝𝑡 (v3, v1) > 𝑆𝐶𝑁 𝑝𝑡 (v3, v6), có sự khác biệt này là do giữa hai cặp tác giả (v2, v1) và (v2, v6) có sự khác biệt về thứ tự tác giả trong bài báo cùng với thời gian công bố giữa hai bài báo được viết chung bởi cặp tác giả (v2, v1) và (v2, v6). Có thể thấy rằng, trọng số liên kết 𝜔𝑝𝑡 cũng đã phản ánh được một khách quan hơn mức độ cộng tác giữa hai tác giả so với hai loại trọng số liên kết 𝜔𝑛𝑝 và 𝜔𝑛𝑎. Thật tiếc, cho đến nay, chưa có nghiên cứu nào sử dụng loại trọng số này trong các độ đo liên kết có trọng số như đã đề cập. Do vậy, luận án đã đề xuất các độ đo liên kết trọng số mở rộng dựa trên thứ tự của các tác giả và thời gian bài báo được xuất bản xác định bởi các công thức (2.1), (2.2), và (2.3) tương ứng với các ký hiệu độ đo liên kết lần lượt là 𝑆𝐶𝑁 𝑝𝑡 , 𝑆𝐴𝐴 𝑝𝑡 , 𝑆𝐽𝐶 𝑝𝑡 . 46 Các công thức từ (2.1) đến (2.3) đã được công bố trong nghiên cứu CT5. ( ) ( ) ( , ) ( , ) ( , ) 2 pt ptpt CN z u v u z v z S u v       (2.1) ( ) ( ) ( ) ( , ) ( , ) ( , ) 1 2 (1 ( , )) pt AA pt pt z u v ptz z S u v u z v z Log z z             (2.2) ( ) ( ) ( ) ( ) ( , ) ( , ) 2( , ) ( , ) ( , ) pt pt z u v pt JC pt ptu u v v u z v z S u v u u v v                 (2.3) Trong đó, 𝜔𝑝𝑡(𝑢, 𝑣) được xác định bởi công thức (1.5) trong chương 1. 2.2. Các độ đo liên kết dựa trên nội dung bài báo Các độ đo liên kết dựa trên trọng số giới thiệu trong mục 1.1.3 và mục 2.1 đã phản ánh được mức độ liên kết giữa hai cặp tác giả thông qua số lượng tác giả, thứ tự của các tác giả và thời gian xuất bản các bài báo. Tuy nhiên, trong mạng đồng tác giả, mỗi một mối cộng tác giữa hai tác giả lại ẩn chứa nội dung của bài báo mà hai tác giả cộng tác, nội dung của các bài báo mà mỗi tác giả đã viết có thể cho chúng ta biết về chủ đề hay lĩnh vực họ đang nghiên cứu, từ đó có thể biết được liệu những tác giả nào có lĩnh vực hay nội dung nghiên cứu tương đồng (hoặc gần) với tác giả cần xem xét, từ đó có thêm thông tin để dự đoán xem hai tác giả nào sẽ có khả năng cộng tác với nhau trong tương lai. Một số nghiên cứu trước đó đã xem xét mức độ tương đồng giữa hai tác giả thông qua tập các từ khóa xuất hiện trong các bài báo hoặc tập các từ xuất hiện trong tên và nội dung tóm tắt của bài báo [5, 50, 75, 92], sử dụng véc-tơ trọng số TF-IDF [87] hoặc xem xét mức độ tương quan giữa các tác giả dựa trên các lĩnh vực mà các bài báo họ đã công bố được u v z Pu = {pu1, pu2, , pum} Puz = {puz1, , puzk} Pv = {pv1, pv2, , pvn} Pvz = {pvz1, , pvzq} Nz = {(x1, (x1, z)), , (xl, (xl, z))} (u, z) (v, z) Hình 2.1 Minh họa độ đo liên kết mở rộng 47 phân vào [54]. Với cách này, không xem xét được tính tương đồng ngữ nghĩa hai tập từ, bởi lẽ hai từ khác nhau vẫn có thể có nghĩa tương đồng hoặc cùng thuộc về một chủ đề nào đó hoặc có thể cùng một mảng nghiên cứu được phân vào các lĩnh vực khác nhau và một lĩnh vực nghiên cứu có thể được diễn đạt với các tên khác nhau. Vì vậy, trong luận án này đã sử dụng phương pháp phân tích chủ đề để xác định mức độ tương đồng giữa hai bài báo. Trên thực tế, có nhiều phương pháp phân tích theo chủ đề. Tuy nhiên, vì khuôn khổ luận án có hạn nên chỉ lựa chọn kỹ thuật LDA bởi kỹ thuật này khá trực quan, có nhiều mã nguồn đáng tin cậy được chia sẻ trên mạng Internet có thể sử dụng lại được và đã được sử dụng trong mô hình CTR [86] để khuyến nghị bài báo khoa học. Mặt khác, việc hai tác giả u, v đã từng cùng cộng tác với một tác giả z nào đó cũng sẽ là cầu nối để hai tác giả u, v sẽ cộng tác với nhau trong tương lai. Độ đo liên kết đã được đề xuất như KMC [92] hay AKMC [75] mới chỉ xem xét mức độ tương đồng giữa hai tác giả u, v thông qua hai tập bài báo (Pu, Pv) được công bố bởi họ (dựa trên hai tập từ khóa hoặc hai tập từ xuất hiện trong nội dung tóm tắt của các bài báo) mà chưa xem xét đến mức độ tương đồng giữa tập bài báo được viết bởi tác giả u, z (Puz) với tập bài báo được viết chung bởi tác giả v, z (Pvz). Nếu hai tập bài báo (Pu, Pv) chỉ có một vài bài báo liên quan đến nhau, nhưng nếu những bài báo liên quan này lại xuất hiện tương ứng trong hai tập bài báo (Puz, Pvz) thì khả năng cộng tác giữa u và v càng cao bởi họ đã từng cùng cộng tác với tác giả z trong một số lĩnh vực. Từ phân tích trên kết hợp với những khảo sát về sự ảnh hưởng của nội dung bài báo đến các độ đo liên kết trong công trình nghiên cứu CT3, độ đo liên kết mở rộng dựa trên nội dung bài báo trong mạng đồng tác giả được luận án đề xuất. Hình 2.1 sẽ minh họa cho độ đo liên kết đã đề xuất. Hình 2.1 xem xét sự tương tác giữa hai tác giả u và v thông qua một tác giả z có mối cộng tác với cả hai tác giả u và v. Pu và Pv lần lượt là tập các bài báo đã được công bố bởi tác giả u và v; Puz và Pvz là tập các bài báo được công bố bởi cặp tác giả (u, z) và (v, z) tương ứng; (u, z) và (v, z) là trọng số liên kết giữa u với z, và v với z tương ứng; Nz là tập các tác giả đã cộng tác với z cùng với trọng số liên kết với z. Để xác định mức độ tương đồng giữa hai tác giả, có thể kết hợp mức độ tương đồng giữa hai tập bài báo được công bố bởi hai tác giả u, v (S(Pu, Pv) có thể xem như là mức độ tương đồng về lĩnh vực nghiên cứu) với mức độ tương tự giữa hai tập bài báo được viết chung bởi hai tác giả (u, z) và (v, z) (S(Puz, Pvz)) dựa trên ý tưởng của độ đo liên kết trọng số theo láng giềng chung (𝑆𝐶𝑁 𝑛𝑝 ). 48 Có hai cách kết hợp là kết hợp tích và kết hợp tuyến tính. a) Kết hợp tích, ký hiệu là SP_LDAcosin(u, v) được tính theo công thức (2.4) [CT5] _ cos ( ) ( )1 ( , ) 1 ( , ) ( , ) 1 1 1 ( ) ( )u v uz vz P LDA in z u vS P P S P P S u v u ve e          (2.4) Trong đó, ( , )u v av avx x u vSP P P av avx x u v    (2.5) 1 1 ( ) ( ), 1: m av u ui i x j x j j K m    (2.6) ( , )uz vz av avx x uz vzSP P P av avx x uz vz    (2.7) 1 1 ( ) ( ), 1, k av uz uzi i x j x j j K k    (2.8) Xu = {xu1,,xum}, Xv = {xv1,,xvn}, Xuz = {xuz1,,xuzk}, Xvz = {xvz1,,xvzq} lần lượt là tập các véc-tơ trong không gian K chiều, biểu diễn các bài báo trong Pu, Pv và Pvz tương ứng; 𝑥𝑢 𝑎𝑣là véc-tơ trung bình từ tập các bài báo của tác giả u; m, n lần lượt là số lượng bài báo được công bố bởi tác giả u, v; k, q lần lượt là số bài báo được viết chung bởi tác giả u và z, và v và z. Trong công thức (2.4), mức độ tương đồng giữa hai tác giả càng cao nếu họ có nhiều tương đồng về lĩnh vực nghiên cứu và mức độ tương đồng trung bình giữa tập các bài báo của hai nút với láng giềng chung càng cao. b) Kết hợp tuyến tính, ký hiệu là SLDAcosin (u, v) Độ đo liên kết dựa trên nội dung bài báo (SLDAcosin) được xây dựng dựa trên sự kết hợp tuyến tính mức độ tương đồng giữa hai tập bài báo mà hai tác giả đã công bố (trong Hình 2.1 chính là hai tập Pu và Pv), và mức độ tương đồng giữa hai tập bài báo mà mỗi tác giả đã viết chung với tác giả láng giềng chung (trong Hình 2.1 là tập Puz và Pvz). SLDAcosin được xác định bởi công thức (2.9). ( ) ( ) ( , ) cos 1 ( , ) (1 ) ( , ) | ( ) ( ) | u v uz vz z u v S u v LDA in SP P P SP P P u v              (2.9) 49 Trong đó, hệ số kết hợp  (0, 1), S(Pu, Pv) được tính theo công thức (2.5) và S(Puz, Pvz) được tính theo công thức (2.7). Mức độ tương đồng giữa hai tác giả dựa trên nội dung bài báo được đề xuất trong công thức (2.9) có thể áp dụng cho hai tác giả bất kỳ, trong trường hợp hai tác giả không có láng giềng chung (tức là không có tác giả nào cùng viết chung với hai tác giả đó) thì thành phần thứ hai (chứa S(Puz, Pvz)) trong công thức (2.9) sẽ bằng 0. Như vậy, công thức (2.9) có tính phổ quát cao hơn công thức (2.4), đồng thời tham số  cho phép điều chỉnh sự ảnh hưởng của từng thành phần (thành phần thứ nhất chứa S(Pu, Pv), và thành phần thứ hai chứa S(Puz, Pvz)) tùy thuộc vào từng trường hợp cụ thể. Phương pháp LDA được sử dụng để phân tích mỗi bài báo vào K chủ đề khác nhau (K nguyên dương), thông tin của mỗi bài báo được sử dụng để phân tích chủ đề bao gồm tên và nội dung tóm tắt của bài báo với mong muốn xác định được một cách chính xác nhất và có tính tương đồng cao về ngữ nghĩa lĩnh vực nghiên cứu của mỗi tác giả thông qua nội dung của các bài báo. Sau khi áp dụng kỹ thuật LDA đối với tập các bài báo, sẽ nhận được một véc-tơ độ thuộc p trong không gian K chiều tương ứng với bài báo thứ p, các giá trị của mỗi phần tử jp trong p cho biết bài báo thứ p thuộc vào chủ đề thứ j với độ thuộc bằng bao nhiêu. Véc-tơ p được luận án sử dụng như là một véc-tơ đặc trưng cho bài báo thứ p, và dùng để tính các độ đo liên kết mở rộng mà luận án đã đề xuất. Trên cơ sở các độ đo liên kết trọng số đã được giới thiệu trong mục 1.1.3 và mục 2.1, và độ đo liên kết dựa trên nội dung bài báo (SLDAcosin) đã được đề xuất, có thể kết hợp các độ đo liên kết trọng với chỉ số SLDAcosin để tạo ra một độ đo liên kết mở rộng nhằm tăng cường (cải thiện) mức độ chính xác dự đoán khi áp dụng vào bài toán dự đoán liên kết trong mạng đồng tác giả. Trên cơ sở đó, việc kết hợp các độ đo liên kết trọng số với SLDAcosin đã được đề xuất trong luận án theo các công thức tổng quát từ (2.10) đến (2.12). Các đề xuất của luận án về việc kết hợp tuyến tính giữa các độ đo liên kết trọng số với độ đo liên kết dựa trên nội dung bài báo trên cơ sở việc phân tích sự ảnh hưởng của các độ đo liên kết trong mạng đồng tác giả đã được công bố trong công trình nghiên cứu CT2. _ cos cos( , ) ( , ) (1 ) ( , ) type type CN LDA in CN LDA inS u v S u v S u v      (2.10) type type AA_LDAcosin AA LDAcosin( , ) ( , ) (1 ) ( , )S u v S u v S u v      (2.11) type type JC_LDAcosin LDAcosin( , ) ( , ) (1 ) ( , )JCS u v S u v S u v      (2.12) Trong đó, type  {‘np’, ‘na’, ‘pt’} tương ứng với các kiểu trọng số liên kết, hệ số kết hợp   (0, 1) cho biết mức độ ảnh hưởng của độ đo liên kết trọng số đến độ đo liên kết kết 50 hợp, hệ số này cũng sẽ được tính thông qua thực nghiệm. Như vậy, ba kiểu trọng số liên kết và ba độ đo liên kết khi kết với hợp đô đo SLDAcosin sẽ cho ra được 9 cách kết hợp khác nhau. 2.3. Thuật toán tính độ đo liên kết và đánh giá độ phức tạp của thuật toán Trong mục này, luận án trình bày các thuật toán dưới dạng giả mã để tính toán giá trị độ đo liên kết dựa trên trọng số và dựa trên nội dung bài báo đã trình bày bày trong mục 1.1.3, 2.1 và 2.2. Ở đây, giả thiết mạng đồng tác giả được lưu dưới dạng danh sách kề. Do vậy, tập láng giềng ((u)) của một tác giả đã được xác định. Đầu tiên, luận án sẽ trình bày thuật toán 2.1 để xác định ba loại trọng số (type = {‘np’, ‘na’, ‘pt’}) làm cơ sở để tính toán các độ đo liên kết trọng số. Thuật toán 2.1 Weighted_based_type Đầu vào: Tập quan các hệ cộng tác E(T), tc thời gian hiện tại, tf là thời gian đầu tiên hai tác giả u, v cộng tác, loại trọng số cần tính type và tập các bài báo P(T). Đầu ra: Giá trị trọng số dựa trên type ứng với các cặp tác giả u, v có quan hệ cộng tác trong E(T) (𝜔𝑡𝑦𝑝𝑒). 1: For (u,v)  E(T) 2: (u,v) := 0 3: For p  Puv // tập các bài báo được viết chung bởi hai tác giả u, v 4: If type == ‘np’ 5: (u,v) := (u,v) + 1 6: Else 7: If type == ‘na’ 8: (u,v) := (u,v)+ 1/(p.numofauthors - 1) 9: Else // tính trọng số theo type = ’pt’ 10: tp := p.year; du := p.order(u); dv := p.order(v); t0 := tf - 1 11: (u,v) := (u,v) + DCL(du, dv)*(tp – t0)/(tc – t0) 12: End If 13: End If 14: End For 15: End For // DCL(du, dv) được xác định theo công thức (1.4) trong chương 1 51 Mệnh đề 2.1. Thuật toán 2.1 có độ phức tạp thời gian là O(NDQ). Trong đó, N là tổng số tác giả trong mạng, D và Q lần lượt là số láng giềng lớn nhất và số bài báo lớn nhất của một tác giả nào đó. Chứng minh. Dễ nhận thấy, thuật toán sẽ thực hiện hai vòng For lồng nhau (dòng 1, 3). - Xét vòng For thứ 2 (dòng 3): Dễ nhận thấy, cần phải duyệt vòng For theo tập số bài báo chung của hai tác giả u, v (Puv). Do vậy, độ phức tạp thời gian được xác định là T1 (Q) = O(Q). - Xét vòng For thứ 1 (dòng 1): Dễ nhận thấy, cần phải duyệt vòng For theo số lượng cộng tác trong E(T). Do vậy, độ phức tạp thời gian được xác định là T2 (|E(T)|, Q) = |E(T)|T1(Q) = O(|E (T)|Q). Mặt khác, do đồ thị biểu diễn mối quan hệ cộng tác giữa các tác giả là một đơn đồ thị vô hướng. Vì vậy, ta có mối quan hệ (tổng bậc của tất cả các nút bằng hai lần số cạnh) 2|E(T)| = ∑ |Γ(𝑣)|𝑣∈𝑉(𝑇) . Từ đó, |E (T)|  ND/2. Như vậy, độ phức tạp thời gian khi xét với vòng For thứ nhất là T2(N, D, Q) = O(NDQ). Tóm lại, độ phức tạp thời gian của thuật toán 2.1 là: T(N, D, Q) = T2 (N, D, Q) = O(NDQ). Do các độ đo liên kết trọng số dựa trên CN (bao gồm 𝑆𝐶𝑁 𝑡𝑦𝑝𝑒 , với type là kiểu trọng số liên kết) đều có cách tính tương tự nhau, chỉ khác biệt ở việc tính trọng số liên kết giữa hai tác giả. Nên để cho ngắn gọn, luận án sẽ trình bày một thuật toán chung để tính toán giá trị của các độ đo liên kết trọng số dựa trên CN thông qua Thuật toán 2.2 dưới đây. Mệnh đề 2.2. Thuật toán 2.2 có độ phức tạp thời gian là O(NDQ +ND2). Trong đó, N là tổng số tác giả trong mạng, D và Q lần lượt là số láng giềng lớn nhất và số bài báo lớn nhất của một tác giả nào đó. Chứng minh. Dễ nhận thấy, thuật toán sẽ thực hiện tính trọng số cho các quan hệ cộng tác (type) theo Thuật toán 2.1, sau đó thực hiện ba vòng For lồng nhau (dòng 1, 3, 4). - Để tính trọng số cho các quan hệ cộng tác theo Thuật toán 2.1 thì độ phức tạp thời gian được xác định là T1(N, D, Q) = O(NDQ). - Xét vòng For thứ 3 (dòng 4): cần duyệt theo số láng giềng của tác giả v ((v)), do đó độ phức tạp thời gian được xác định là T2(D) = O(D). - Xét vòng For thứ 2 (dòng 3): cần duyệt theo số láng giềng của tác giả u ((u)), do đó độ phức tạp thời gian được xác định là T3(D) = DT2(D) = O(D2). - Xét vòng For thứ nhất (dòng 1): cần duyệt theo tất cả các tác giả trong mạng (V(T)), do đó độ phức tạp thời gian được xác định là T4(N, D) = NT3(D) = O(ND2). 52 Tóm lại, độ phức tạp thời gian của thuật toán 2.2 là: T(N, Q, D) = T1(N, D, Q) + T4(N, D) = O(NDQ+ND 2). Thuật toán 2.2 Weighted_Metrics_based_CN Đầu vào: Tập các tác giả V(T), tập các cộng tác E(T ), tập các bài báo P(T) và type  {‘np’, ‘na’, ‘pt’} tương ứng với các kiểu trọng số liên kết. Đầu ra: Giá trị độ đo liên kết trọng số dựa trên CN ứng với các cặp tác giả có chung láng giềng (𝑆𝐶𝑁 𝑡𝑦𝑝𝑒 ). 1: type := Weighted_based_type(E(T ), P(T), type)// tính trọng số liên kết cho các quan hệ cộng tác 2: For u  V(T) 3: hset := new HashSet() 4: For v  (u) 5: For x  (v)\{u} 6: If (check(x) ==0 && hset.contains(x)) 7: 𝑆𝐶𝑁 𝑡𝑦𝑝𝑒(𝑢, 𝑥) := 𝑆𝐶𝑁 𝑡𝑦𝑝𝑒(𝑢, 𝑥) + (type(u, v) + type(v, x))/2 8: Else If (check(x) == 0) 9: hset.add(x) 𝑆𝐶𝑁 𝑡𝑦𝑝𝑒(𝑢, 𝑥) := (type(u, v) + type(v, x))/2 10: End If 11: End For 12: End For 13: Check(u) := 1 14: End For 53 Tương tự như các độ đo liên kết trọng số dựa trên CN, các độ đo liên kết trọng số dựa trên AA (bao gồm 𝑆𝐴𝐴 𝑡𝑦𝑝𝑒 ) cũng được trình bày trên một Thuật toán chung để tính toán giá trị của các độ đo liên kết dựa trên Thuật toán 2.3 dưới đây. Thuật toán 2.3 Weighted_Metrics_based_AA Đầu vào: Tập các tác giả V(T), tập các cộng tác E(T ), tập các bài báo P(T) và type  {‘np’, ‘na’, ‘pt’} tương ứng với các kiểu trọng số liên kết. Đầu ra: Giá trị độ đo liên kết trọng số dựa trên AA ứng với các cặp tác giả có láng giềng chung (𝑆𝐴𝐴 𝑡𝑦𝑝𝑒 ). 1: type := Weighted_based_type(E(T ), P(T), type)// tính trọng số liên kết cho các quan hệ cộng tác 2: For u  V(T) 3: For v  (u) // lần lượt xét các láng giềng của u 4: wv := 0 hset : = new HashSet() 5: For y  (v) // lần lượt xét các láng giềng của v 6: wv := wv + type(y, z) // tính tổng trọng số của v 7: End For 8: For x  (v)\{u} // lần lượt xét các láng giềng của v 9: If (check(x) ==0 && hset.contains(x)) 10: 𝑆𝐴𝐴 𝑡𝑦𝑝𝑒(𝑢, 𝑥) := 𝑆𝐴𝐴 𝑡𝑦𝑝𝑒(𝑢, 𝑥) + ( ( , ) ( , )) 2 (1 ) type typeu v v x Log wv    11: Else If (check(x) == 0) 12: hset.add(x) 13: 𝑆𝐴𝐴 𝑡𝑦𝑝𝑒(𝑢, 𝑥) := ( ( , ) ( , )) 2 (1 ) type typeu v v x Log wv    14: End If 15: End For 16: End For 17: Check(u) := 1 18: End For 54 Mệnh đề 2.3. Thuật toán 2.3 có độ phức tạp thời gian là O(NDQ +ND2). Trong đó, N là tổng số tác giả trong mạng, D và Q lần lượt là số láng giềng lớn nhất và số bài báo lớn nhất của một tác giả nào đó. Chứng minh. Dễ nhận thấy, thuật toán sẽ tính toán trọng số liên kết cho các quan hệ cộng tác (type), sau đó thực hiện hai vòng For lồng nhau (dòng 2, 3), đối với vòng For thứ hai thì thực hiện hai vòng For liên tiếp (dòng 5, 8). - Để tính trọng số cho các quan hệ cộng tác theo Thuật toán 2.1 thì độ phức tạp thời gian được xác định là T1(N, D, Q) = O(NDQ). - Xét vòng For dòng 5: cần duyệt theo số láng giềng của tác giả v ((v)), do đó độ phức tạp thời gian được xác định là T2(D) = O(D). - Xét vòng For dòng 8: cần duyệt theo số láng giềng của tác giả v ((v)), do đó độ phức tạp thời gian được xác định là T3(D) = O(D). - Xét vòng For thứ hai (dòng 3): cần duyệt theo số láng giềng của tác giả u ((u)), do đó độ phức tạp thời gian được xác định là T4(D) = D(T2(D)+T3(D)) = O(D2). - Xét vòng For thứ nhất (dòng 1): cần duyệt theo tất cả các tác giả trong mạng (V(T)), do đó độ phức tạp thời gian được xác định là T5 (N, D) = NT4(D) = O(ND2). Tóm lại, độ phức tạp thời gian của thuật toán 2.3 là: T(N, Q, D) = T1(N, D, Q) + T5(N, D) = O(NDQ+ND 2). Tương tự như hai Thuật toán 2.2 và 2.3, các độ đo liên kết trọng số dựa trên JC (bao gồm 𝑆𝐽𝐶 𝑡𝑦𝑝𝑒 ) cũng được trình bày trên một Thuật toán chung để tính toán giá trị của các độ đo liên kết theo Thuật toán 2.4 dưới đây. Mệnh đề 2.4. Thuật toán 2.4 có độ phức tạp thời gian O(NDQ +ND2). Trong đó, N là tổng số tác giả trong mạng, D và Q lần lượt là số láng giềng lớn nhất và số bài báo lớn nhất của một tác giả nào đó. Chứng minh. Dễ nhận thấy, thuật toán sẽ tính toán trọng số liên kết cho các quan hệ cộng tác (type), sau đó từ dòng 2 đến dòng 9 thuật toán sẽ thực hiện hai vòng For lồng nhau (dòng 2, 4), từ dòng 10 đến 23 thuật toán sẽ thực hiện ba vòng For lồng nhau (dòng 10, 12, 13). - Để tính trọng số cho các quan hệ cộng tác theo Thuật toán 2.1 thì độ phức tạp thời gian được xác định là T1(N, D, Q) = O(NDQ). - Xét vòng For dòng 4: cần duyệt theo số láng giềng của tác giả u ((u)), do đó độ phức tạp thời gian được xác định là T2(D) = O(D). - Xét vòng For dòng 2: cần duyệt theo tất cả các tác giả trong mạng (V(T)), do đó độ phức tạp thời gian được xác định là T3(N, D) = NT2(D) = O(ND). 55 - Xét vòng For dòng 13: cần duyệt theo số láng giềng của tác giả v ((v)), do đó độ phức tạp thời gian được xác định là T4(D) = O(D). - Xét vòng For dòng 12: cần duyệt theo số láng giềng của tác giả u ((u)), do đó độ phức tạp thời gian được xác định là T5(D) = DT4(D) = O(D2). - Xét vòng For dòng 10: cần duyệt theo tất cả các tác giả trong mạng (V(T)), do đó độ phức tạp thời gian được xác định là T6(N, D) = NT5(D) = O(ND2). Tóm lại, độ phức tạp thời gian của thuật toán 2.4 là: T(N, Q, D) = T1(N, D, Q)+T3(N, D)+T6(N, D) = O(NDQ)+ O(ND)+O(ND 2) = O(NDQ+ND2). Thuật toán 2.4 Weighted_Metrics_based_JC Đầu vào: Tập các tác giả V(T), tập các cộng tác E(T ), tập các bài báo P(T) và type  {‘np’, ‘na’, ‘pt’} tương ứng với các kiểu trọng số liên kết. Đầu ra: Giá trị độ đo liên kết trọng số dựa trên JC ứng với các cặp tác giả có chung láng giềng (𝑆𝐽𝐶 𝑡𝑦𝑝𝑒 ). 1: type := Weighted_based_type(E(T ), P(T), type)// tính trọng số liên kết cho các quan hệ cộng tác 2: For u  V(T) 3: w(u) := 0 5: For each y  (u) 7: w(u) := w(u) + type(u, y) 8: End For 9: End For 10: For u  V(T) 11: hset : = new HashSet() 12: For each v  (u) // lần lượt xét các láng giềng của u 13: For each x  (v)\{u} // lần lượt xét các láng giềng của v 14: If (check(x) ==0 && hset.contains(x)) 15: 𝑆𝐽𝐶 𝑡𝑦𝑝𝑒(𝑢, 𝑥)= 𝑆𝐽𝐶 𝑡𝑦𝑝𝑒(𝑢, 𝑥) + (type(u, v) + type(v, x))/2(w(u)+w(x)) 16: Else If (check(x) == 0) 17: hset.add(x) 18: 𝑆𝐽𝐶 𝑡𝑦𝑝𝑒(𝑢, 𝑥)= (type(u, v) + type(v, x))/2(w(u)+w(x)) 19: End If 20: End For 21: End For 22: Check(u) := 1 23: End For 56 Giá trị độ đo liên kết dựa trên nội dung bài báo P_LDAcosin và LDAcosin sẽ được xác định dựa trên Thuật toán 2

Các file đính kèm theo tài liệu này:

  • pdfluan_an_nghien_cuu_va_phat_trien_mot_so_do_do_lien_ket_trong.pdf
Tài liệu liên quan