I.3 Lý thuyết các độ đo trong mạng xã hộiBiện pháp trung tâm Centrality Measures: Tính trung tâm là một tập hợp các chỉ số được sử dụng để xác định mức độ quan trọng và ảnh hưởng của một
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
-✰ -
�-� -✰ -BUILDING A SOCIAL NETWORK USING LINK PREDICTION TO
SUGGEST FRIENDS IN SOCIAL NETWORKS
ĐỒ ÁN MÔN MẠNG XÃ HỘI
(IS353.M21.HTCL)
Nhóm sinh viên thực hiện:
Huỳnh Văn Pháp – 19521987 Hoàng Nhật Trung – 19522421 Phan Thành Bảo Trọng – 19522411 Nguyễn Thùy Linh – 19521758
Thành phố Hồ Chí Minh, 05/2022
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
-✰ -
�-� -✰ -BUILDING A SOCIAL NETWORK USING LINK PREDICTION TO
SUGGEST FRIENDS IN SOCIAL NETWORKS
ĐỒ ÁN MÔN MẠNG XÃ HỘI
(IS353.M21.HTCL)
Nhóm sinh viên thực hiện:
Huỳnh Văn Pháp – 19521987 Hoàng Nhật Trung – 19522421 Phan Thành Bảo Trọng – 19522411 Nguyễn Thùy Linh – 19521758
Thành phố Hồ Chí Minh 05/2022
Trang 3MỤC LỤC
CHƯƠNG I TỔNG QUAN VỀ ĐỀ TÀI 10
1.1 Lí do chọn đề tài 10
1.2 Mô tả dữ liệu 10
1.2.1 Nguồn dữ liệu 10
1.2.2 Mô tả dữ liệu 10
CHƯƠNG II CƠ SỞ LÝ THUYẾT 12
2.2 Lí thuyết về Nodes và Edges 12
2.2.1 Thế nào Nodes và Edges 12
2.2.2 Edges Direction 12
2.2.3 Edge Weight 12
2.3 Lý thuyết các độ đo trong mạng xã hội 13
2.3.1 Độ đo Degree Centrality 13
2.3.2 Độ đo Betweenness Centrality 13
2.3.3 Độ đo Closeness Centrality 14
2.3.4 Độ đo Clustering Coefficient 14
2.4 Lý thuyết các thuật toán dùng trong mạng xã hội 14
2.3.1 Cộng đồng 14
2.3.2 Một số thuật toán khám phá cộng đồng 15
2.3.2.1 Thuật toán Page Rank 15
2.3.2.2 Thuật toán Girvan Newman 15
CHƯƠNG III THUẬT TOÁN DỰ ĐOÁN LIÊN KẾT TRÊN MẠNG XÃ HỘI 17
3.1 Các thuật toán dự đoán liên kết truyền thống 17
3.2.1 Local Similarity Index 17
3.1.1.1 Common Neighbors 17
3.1.1.2 Preferential Attachment 17
3.1.1.3 Adamic-Adar 18
3.1.1.4 Resource Allocation 18
3.2.2 Overall Similarity Index 18
3.1.2.1 Katz 18
3.1.2.2 Random Walk with Restart (RWR) 19
3.2 Các thuật toán dự đoán liên kết dựa trên khả năng điều khiển của nút 20
3.2.3 Thuật toán CNGF 21
3.2.4 Thuật toán KatzGF 22
3.3 Các thuật toán dự đoán liên kết dựa trên nút nhiều thuộc tính 23
Trang 4CHƯƠNG IV TIỀN XỬ LÝ DỮ LIỆU VÀ TRỰC QUAN HÓA DỮ LIỆU LÊN ĐỒ THỊ 25
4.1 Tiền xử lí dữ liệu 25
4.2 Tạo mạng liên kết 25
4.3 Trực quan hóa mạng liên kết 26
CHƯƠNG V PHÂN TÍCH, TRỰC QUAN HÓA CÁC ĐỘ ĐO TRONG MẠNG XÃ HỘI 27
5.1 Độ đo Degree Centrality 27
5.2 Độ đo Betweenness Centrality 36
5.3 Độ đo Closeness Centrality 39
5.4 Độ đo Clustering Coeficient 42
CHƯƠNG VI PHÂN TÍCH, TRỰC QUAN HÓA CÁC THUẬT TOÁN SỬ DỤNG TRONG MẠNG XÃ HỘI 45 6.1 Thuật toán Page Rank 45
6.2 Thuật toán Girvan NewMan 48
6.2.1 Phân tích, trực quan hóa biểu trên Python liên kết theo Girvan NewMan 48
6.2.2 Nhận xét 49
CHƯƠNG VII PHÂN TÍCH, XÁC MINH CÁC THUẬT TOÁN DỰ ĐOÁN LIÊN KẾT 50
7.1 Thuật toán Common Neighbors 50
7.2 Thuật toán Preferential Attachment 51
7.3 Thuật toán Jaccard Coefficient 52
7.4 Thuật toán Resource Allocation 53
7.5 Thuật toán Adamic/Adar 54
7.6 Thuật toán Katz 55
CHƯƠNG VIII PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG 56
8.1 Usecase Diagram 56
8.2 Activity Diagram 58
8.2.1 Activity – Độ đo 58
8.2.2 Activity – Phân tích 59
8.2.3 Activity – Dự đoán 61
8.2.4 Activity – Trực quan 61
8.2.5 Activity – Import 62
8.3 Sequence Diagram 63
8.3.1 Sequence – Độ đo 63
8.3.2 Sequence – Phân tích 64
8.3.3 Sequence – Dự đoán 66
8.3.4 Sequence – Trực quan 67
8.3.5 Sequence – Import 68
Trang 5PHỤ LỤC 69
A Tài liệu tham khảo 69
B Phân công thành viên 70
DANH MỤC HÌNH ẢN
Trang 6Hình 1: Dữ liệu trong dataset 9
Hình 2: Minh họa Nodes và Egdes 10
Hình 3: Hai đồ thị mạng xã hội có cùng độ nút 18
Hình 4: Đồ thị con được trích xuất chứa các nút dự đoán và nút lân cận chung 19
Hình 5: Tiền xử lí dữ liệu 23
Hình 6: Cài đặt đồ thi có hướng cho mạng 23
Hình 7: Lưu trữ thống kê cho mỗi node 23
Hình 8: Tính tổng số node và cạnh 23
Hình 9: Trực quan hóa mạng liên kết 24
Hình 10: Trực quan hóa mạng liên kết theo độ đo Degree Centrality 26
Hình 11: Top 10 nodes có Degree Centrality cao nhất 27
Hình 12: Tần số và xác xuất xuất hiện Degree Centrality 28
Hình 13: Trực quan hóa mạng liên kết theo độ đo In-Degree Centrality 29
Hình 14: Top 10 nodes có In-Degree Centrality cao nhất 30
Hình 15: Tần số và xác xuất xuất hiện In-Degree Centrality 31
Hình 16: Trực quan hóa mạng liên kết theo độ đo Out-Degree Centrlity 32
Hình 17: Top 10 nodes có Out-Degree Centrality cao nhất 33
Hình 18: Tần số và xác xuất xuất hiện Out-Degree Centrality 34
Hình 19: Trực quan hóa mạng liên kết theo độ đo Betweeness Centrlity 35
Hình 20: Top 10 nodes có Betweeness Centrality cao nhất 36
Hình 21: Tần số và xác xuất xuất hiện Betweenness Centrality 36
Hình 22: Trực quan hóa mạng liên kết theo độ đo Closeness Centrlity 38
Hình 23: Top 10 nodes có độ Closeness Centrality cao nhất 39
Hình 24: Tần số và xác xuất xuất hiện Closeness Centrality 39
Hình 25: Trực quan hóa mạng liên kết theo độ đo Clustering Coefficient 41
Hình 26: Top 10 nodes có độ Clustering Coeficient cao nhất 42
Hình 27: Tần số và xác xuất xuất hiện Clustering Coeficient 42
Hình 28: Phân tích, trực quan hóa biểu đồ dữ liệu trên Python bằng PageRank 44
Hình 29: Top 10 nodes có độ Page Rank cao nhất 45
Hình 30: Tần số và xác xuất xuất hiện Page Rank 45
Hình 31: Phân tích, trực quan hóa biểu trên Python liên kết theo Girvan NewMan 47
Hình 32: Usecase Diagram 49
Hình 33: Activity Diagram - Độ đo 50
Hình 34: Activity Diagram - Phân tích 52
Hình 35: Activity Diagram - Dự đoán 53
Hình 36: Activity Diagram - Trực quan 53
Hình 37: Activity Diagram - Import 54
Hình 38: Sequence Diagram - Độ đo 55
Hình 39: Sequence Diagram - Phân tích 57
Trang 7Hình 40: Sequence Diagram - Dự đoán 58 Hình 41: Sequence Diagram - Trực quan 59 Hình 42: Sequence Diagram - Import 60
DANH MỤC BẢNG
Bảng 1: Thông tin chi tiết về dataset 10
Trang 8LỜI CẢM ƠN
Em xin chân thành cảm ơn trường Đại học Công nghệ Thông tin và Khoa Hệ ThốngThông Tin đã tạo điều kiện cho em hoàn thành tốt đồ án môn học Mạng xã hội Trong quátrình học tập môn này đã giúp cho nhóm chúng em có được rất nhiều kinh nghiệm quý báu.Đặc biệt, nhóm chúng em xin gửi lời biết ơn sâu sắc đến cô Thái Bảo Trân – Giảng viênhướng dẫn môn Mạng xã hội (IS353.M21.HTCL) đã dành thời gian quý báo và trực tiếphướng dẫn tận tình, đóng góp ý kiến giúp nhóm hoàn thành tốt báo cáo môn học
Thông qua quá trình thực hiện đồ án, chúng em đã phần nào củng cố, tích lũy đượcnhững kiến thức về Mạng xã hội Bên cạnh đó là biết sử dụng thêm một số công cụ để phântích, rất có ích cho chúng em sau này Bên cạnh đó, chúng em còn rút ra được nhiều kinhnghiệm trong công việc làm nhóm Hi vọng mọi thứ sẽ được áp dụng và phát triển trongtương lai
Trong thời gian thực hiện đề tài, vì thời gian và kiến thức có hạn nên không tránh khỏinhiều sai sót Vì vậy, nhóm rất mong nhận được những góp ý bổ sung từ cô để đề tài hoànthiện hơn
Một lần nữa, chúng em xin chân thành cảm ơn
Nhóm sinh viên thực hiện
Trang 9NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 10CHƯƠNG I TỔNG QUAN VỀ ĐỀ TÀI
I.1 Lí do chọn đề tài
Hiện tại với sự phát triển nhanh chóng, mạng xã hội trực tuyến đã là một phần trongcuộc sống của mọi người Rất nhiều hệ thống xã hội học, sinh học và thông tin có thể sửdụng mạng để mô tả, trong đó các nút đại diện cho cá nhân và các cạnh đại diện cho mốiquan hệ giữa các cá nhân hoặc sự tương tác giữa các cá nhân Dự đoán liên kết không chỉ cóthể được sử dụng trong lĩnh vực mạng xã hội mà còn có thể được áp dụng trong các lĩnh vựckhác Như trong tin sinh học, dự đoán liên kết có thể được sử dụng để khám phá các tươngtác giữa các protein, trong lĩnh vực thương mại điện tử, dự đoán liên kết có thể được sửdụng để tạo ra hệ thống khuyến nghị và trong lĩnh vực bảo mật, dự đoán liên kết có thể giúptìm ra các băng đảng tội phạm khủng bố ẩn Dự đoán liên kết có liên quan chặt chẽ đếnnhiều lĩnh vực
Internet tràn ngập các trang mạng xã hội Một trong những khía cạnh quan trọng nhấtcủa bất kỳ mạng xã hội nào là việc sử dụng hệ thống giới thiệu bạn bè
I.2 Mô tả dữ liệu
I.2.1 Nguồn dữ liệu
Link Dataset: https://snap.stanford.edu/data/ego-Facebook.html
I.2.2 Mô tả dữ liệu
Dataset gồm 4039 nodes, 88234 cạnh với 2 cột dữ liệu Mỗi hàng đại diện cho mộtngười dùng có mối quan hệ bạn bè với người dùng khác
Trang 11Hình 1: Dữ liệu trong datasetThông tin chi tiết về Dataset:
FromNodeID ID của người dùng ban đầu
ToNodeID ID của người dùng có mối quan hệ bạn
bè với người dùng ban đầuBảng 1: Thông tin chi tiết về dataset
Ego Networks NIPS, 2012
Trang 12CHƯƠNG II CƠ SỞ LÝ THUYẾT
I.2 Lí thuyết về Nodes và Edges
II.2.1 Thế nào Nodes và Edges
Một nút (node) được hiểu là đại điện một thực thể, một actor trong việc tạo ra liên kếtmạng
Cạnh (Edge): các cạnh thể hiện sư hiện diện của một kết nối hoặc mối quan hệ giữahai nút
Hình 2: Minh họa Nodes và Egdes
II.2.2 Edges Direction
Có hai loại cạnh: cạnh có hướng và cạnh vô hướng Trước khi xây dựng lên mạngcần phải giải mã dữ liệu của chúng ta chứa loại cạnh nào khi xây dựng biểu đồ mạng
+ Các cạnh được định hướng: được áp dụng từ nút này sang nút khác với một nút bắtđầu và một nút kết thúc
+ Các cạnh không định hướng: các mối quan hệ này được đáp lại bởi cả hai bên màkhông có nút bắt đầu và nút kết thúc rõ ràng
II.2.3 Edge Weight
Trọng số của một cạnh là số lần cạnh đó xuất hiện giữa hai nút cụ thể
Trang 13I.3 Lý thuyết các độ đo trong mạng xã hội
Biện pháp trung tâm (Centrality Measures): Tính trung tâm là một tập hợp các chỉ
số được sử dụng để xác định mức độ quan trọng và ảnh hưởng của một nút cụ thể đối vớitoàn bộ mạng Các biện pháp trung tâm được sử dụng trên các nút cụ thể trong mạng vàkhông cung cấp thông tin ở cấp độ mạng Ví dụ 3 độ do trung tâm dưới đây:
II.2.4 Độ đo Degree Centrality
Độ của một nút là số cạnh mà nút đó có Số đo này giúp ta đo số lượng của các mốiquan hệ trực tiếp của một tác nhân nào đó với các thành viên khác trong mạng xã hội
deg( ) ( )
+ Deg(v): tổng số các liên kết trực tiếp đến đỉnh v (bậc của đỉnh)
II.2.5 Độ đo Betweenness Centrality
Betweenness Centrality: đo lường tầm quan trọng của các kết nối của một nút
trong việc cho phép các nút đến các nút khác (trong một bước nhảy) Khoảng giữa của mộtnút là số đường đi ngắn nhất mà nút được đưa vào chia cho tổng số đường đi ngắn nhất.Điều này sẽ cung cấp tỷ lệ phần trăm đường dẫn ngắn nhất trong mạng mà nút đang ở trongđó
Số đo trung tâm trung gian xác nhận một tác nhân nào đó trong mạng có thể có thể có
ít gắn kết với các thành viên khác trong mạng xã hội (số đo bậc trung tâm thấp), cũng khônggần gũi lắm với các thành viên khác (số đo trung tâm lân cận thấp), nhưng lại là cầu nối(bridge) hay nhà trung gian cần thiết trong mọi cuộc trao đổi trong mạng
CB (v) = Trong đó:
+ là số đường đi ngắn nhất đi từ đỉnh s đến đỉnh t của toàn mạng
+ = là số đường đi ngắn nhất đi từ đỉnh s đến đỉnh t và đi qua đỉnh v
+ Số đo trung gian tương đối được tính theo cách sau: Số đo trung gian cho đồ thị vô
hướng:
Trang 14II.2.6 Độ đo Closeness Centrality
Mức độ gần gũi là độ đo đo lường mức độ kết nối của một nút với mọi nút khác trongmạng Mức độ gần gũi của một nút là số bước trung bình cần thiết để tiếp cận mọi nút kháctrong mạng Bước nhảy là đường đi của một cạnh từ nút này đến nút khác
Trong một đồ thị liên thông, độ đo gần trung tâm của một nút là thước đo mức độtrung tâm trong mạng, được tính bằng nghịch đảo của tổng độ dài của các đường đi ngắnnhất giữa nút và tất cả các nút khác trong biểu đồ Do đó, một nút càng ở trung tâm thì nócàng gần với tất cả các nút khác
Số đo Closeness Centrality được tính bằng công thức sau:
II.2.7 Độ đo Clustering Coefficient
Clustering Coefficient là độ đo mức độ mà các nút trong biểu đồ có xu hướng tậphợp lại với nhau Bằng chứng cho thấy rằng trong hầu hết các mạng trong thế giới thực, vàđặc biệt là các mạng xã hội, các nút có xu hướng tạo ra các nhóm liên kết chặt chẽ với đặcđiểm là mật độ quan hệ tương đối cao; khả năng này có xu hướng lớn hơn xác suất trungbình của một hòa được thiết lập ngẫu nhiên giữa hai nút
I.4 Lý thuyết các thuật toán dùng trong mạng xã hội
2.3.1 Cộng đồng
Cộng đồng được tạo từ các cá nhân sao cho các cá nhân trong cùng một nhóm sẽtương tác với nhau thường xuyên hơn với các cá nhân nằm ngoài nhóm Có ba cách tiếp cận
để khám phá cộng đồng trong mạng xã hội:
+ Dựa trên cấu trúc mạng xã hội để khám phá cộng đồng.
+ Dựa trên thông tin trao đổi theo các tương tác trên mạng xã hội.
+ Dựa trên vừa cấu trúc và nội dung trao đổi.
2.3.2 Một số thuật toán khám phá cộng đồng
2.3.2.1 Thuật toán Page Rank
PageRank là thuật toán phân tích các liên kết được dùng trong Google Search để xếphạng các trang web
+ Thuật toán này chỉ định giá trị nhất định cho mỗi thành phần của một tập hợp cácvăn bản liên kết với nhau, ví dụ như World Wide Web
Trang 15+ Mục đích "đo" tầm quan trọng tương đối của các liên kết trong tập hợp đó.
+ Áp dụng cho bất kỳ tập hợp văn bản nào có trích dẫn đối ứng và liên kết cụ thể.+ Giá trị (weight) mà nó gán cho bất kỳ thành phần E được gọi là PageRank của E
và ký hiệu là PR (E)
2.3.2.2 Thuật toán Girvan Newman
Thuật toán Girvan Newman dựa trên quan niệm cho rằng khi các cộng đồng đượcgắn kết với nhau thì đường đi giữa cộng đồng này đến cộng đồng khác sẽ đi qua các cạnhnối giữa các cộng đồng với tần suất cao Mục đích chính của thuật toán là tìm những cạnhnối đó Thay vì việc xây dựng cộng đồng bằng cách thêm vào các cạnh mạnh mẽ nhất,chúng ta sẽ xây dựng bằng cách loại bỏ dần dần các cạnh nối từ đồ thị ban đầu Khi đó, cáccộng đồng trong mạng sẽ bị ngắt kết nối với nhau, ta có thể xác định được cách phân vùng
đồ thị thành các phần nhỏ riêng rẽ Để làm được việc này, điều quan trọng nhất của thuậttoán là việc tính toán như thế nào, sử dụng tính chất nào để phát hiện ra những cạnh nối này,
từ đó loại bỏ chúng ra khỏi đồ thị Thuật toán lần đầu tiên được đề xuất bởi Freeman TheoFreeman, các cạnh được coi là cạnh có số lượng con đường ngắn nhất giữa các cặp đỉnhkhác nhau chạy qua nó Cạnh nối có ảnh hưởng rất lớn đến dòng chảy của thông tin giữa cácnút khác, đặc biệt là trong trường hợp thông tin lưu truyền trong mạng chủ yếu theo conđường ngắn nhất Thuật toán điển hình nhất trong các thuật toán chia này là thuật toánGirvan-Newman
Nếu một mạng lưới bao gồm các cộng đồng hoặc nhóm chúng chỉ được liên kết nốiyếu bằng một nhóm cạnh, thì tất cả các đường đi ngắn nhất giữa các cộng đồng khác nhau
sẽ phải đi dọc theo một trong số ít các cạnh thuộc nhóm cạnh đó Vì vậy, các cạnh kết nốicác cộng đồng sẽ là cạnh có độ trung gian cao Bằng cách loại bỏ các cạnh, thuật toánGirvan-Newman tách được thành các nhóm riêng biệt Thuật toán được thực hiện theo cácbước sau:
+ Bước 1: Tính độ đo trung gian cho tất cả các cạnh trong mạng.
+ Bước 2: Hủy bỏ các cạnh có độ trung gian cao nhất.
+ Bước 3: Tính lại độ trung gian cho tất cả các cạnh bị ảnh hưởng theo các cạnh đã loại
bỏ
+ Bước 4: Lặp lại từ bước 2 cho đến khi không còn các cạnh trung gian
Trang 16CHƯƠNG III THUẬT TOÁN DỰ ĐOÁN LIÊN KẾT TRÊN MẠNG XÃ HỘI 3.1 Các thuật toán dự đoán liên kết truyền thống
Dự đoán liên kết là một lĩnh vực nghiên cứu quan trọng trong khai thác dữ liệu.Nhiều tác vụ khai thác dữ liệu liên quan đến mối quan hệ giữa các đối tượng Dự đoán liênkết có thể được sử dụng cho các hệ thống khuyến nghị, mạng xã hội, truy xuất thông tin vànhiều lĩnh vực khác
Đưa ra đồ thị của mạng xã hội tại thời điểm G = <V, E> và nút v i và nút v j, dự đoán
liên kết là dự đoán xác suất liên kết giữa nút v i và nút v j Có thể thấy thông qua định nghĩa
về dự đoán liên kết, nhiệm vụ dự đoán liên kết được chia thành hai loại Loại đầu tiên là dựđoán rằng liên kết mới sẽ xuất hiện trong thời gian tới Loại thứ hai là dự báo liên kết ẩnchưa biết trong không gian
Framework dễ nhất của thuật toán dự đoán liên kết là dựa trên tính tương đồng của
thuật toán Bất kỳ cặp nút x và nút y nào, gán cho nút này là một hàm Similiarity (x, y), hàm này được định nghĩa là hàm tương đồng giữa các nút x và y Sau đó sắp xếp các cặp nút phù
hợp với các giá trị hàm từ lớn nhất đến nhỏ nhất, giá trị của hàm tương đồng càng lớn thìxác suất liên kết trong các nút càng lớn
III.2.1 Local Similarity Index
Cơ chế đính kèm ưu tiên có thể được sử dụng để tạo ra mô hình phát triển mạng
không cần quy mô Xác suất tạo ra một liên kết mới của nút u tỷ lệ thuận với bậc của
nút Điều này cũng giống như chân lý “người giàu ngày càng giàu hơn” trong kinh tế
Trang 17học Do đó, xác suất liên kết giữa nút u và nút v tỷ lệ thuận với d u d v Tương tự với cơ chếnày, chỉ số tương tự PA có thể được xác định như sau:
Lưu ý rằng chỉ số tương đồng không yêu cầu bất kỳ thông tin nút lân cận nào; do đó,chỉ số tương đồng này có độ phức tạp tính toán thấp nhất
3.1.1.3 Adamic-Adar
Chỉ số tương đồồng này gán giá trị hàm tương đồồng cao hơn cho một nút mức độnhỏ Thuật toán Adamic-Adar tin rằng mối quan hệ thuộc sở hữu của ít đối tượng hơn, sovới mối quan hệ thuộc sở hữu của nhiều đối tượng hơn, thì có ảnh hưởng lớn hơn đến dựđoán liên kết Định nghĩa của nó như sau:
3.1.1.4 Resource Allocation
Chỉ số tương đồng này được lấy cảm hứng từ các ý tưởng về các tài nguyên mạng
phức tạp được phân bổ động Trong cặp nút u, v không có liên kết trực tiếp, nút u có thể phân bổ một số tài nguyên cho nút v thông qua các nút lân cận chung của chúng Những nút
lân cận chung đảm nhận vai trò của những ‘người qua đường’ Trong trường hợp đơn giảnnhất, giả định rằng mỗi nút qua đường có một đơn vị tài nguyên; nó phân bổ các tài nguyên
này cho các nút lân cận một cách đồng đều Do đó, độ tương đồng của nút u và nút v có thể được định nghĩa là số lượng tài nguyên mà nút u nhận được từ nút v; cụ thể là
III.2.2 Overall Similarity Index
3.1.2.1 Katz
Năm 1953, Katz mô tả sự tương đồng bằng cách sử dụng đường dẫn toàn cầu (globalpath) Ý tưởng của phương thức này là càng nhiều đường đi giữa hai nút thì độ tương đồnggiữa hai nút càng lớn Phép đo Katz được định nghĩa như sau:
Với là số đường đi giữa nút u và nút v và độ dài của đường là l là một tham số từ 0
đến 1 Tham số này được sử dụng để kiểm soát sự đóng góp của đường dẫn đến sự tươngđồng; đường dẫn càng dài thì đường dẫn tạo ra sự tương đồng càng ít Độ phức tạp tính toán
Trang 183.1.2.2 Random Walk with Restart (RWR)
Chỉ báo này là một ứng dụng trực tiếp của thuật toán Xếp hạng trang
(PageRank) Một người đi bộ (walker) ngẫu nhiên bắt đầu từ nút u sẽ đến hàng xóm (neighbor) ngẫu nhiên của nó với xác suất c lặp đi lặp lại và trả về nút u với xác suất đại diện cho xác suất của walker ngẫu nhiên đến nút v trong điều kiện trạng thái ổn định Do đó, chúng ta có , với vị trí P là ma trận chuyển giao Nếu nút u được kết nối với nút v, thì ; hoặc
Vì vậy, giải pháp là Hệ số RWR có thể được định nghĩa là
So với chỉ số tương đồng cục bộ, chỉ số tương đồng toàn cầu cần nhiều thông tin cấutrúc liên kết mạng tổng thể hơn Mặc dù hiệu suất của chỉ số tương đồng tổng thể tốt hơn chỉ
số tương đồng cục bộ, nhưng nó có hai sai sót nghiêm trọng: thứ nhất, việc tính toán chỉ sốtương đồng toàn cầu rất tốn thời gian và khi mạng lớn, chương trình tính toán này không thểthực hiện Thứ hai, đôi khi thông tin cấu trúc liên kết toàn cầu không có sẵn, đặc biệt là khi
sử dụng cách tiếp cận phi tập trung để triển khai thuật toán Do đó, việc thiết kế chỉ số tươngđồng như thế nào là đặc biệt quan trọng, nó dễ tính toán và độ chính xác cao
Mặc dù các thuật toán dự đoán liên kết truyền thống đã tạo ra một số hiệu quả dựđoán, nhưng chúng không tận dụng được đầy đủ thông tin về cấu trúc liên kết Thuật toáncác nút lân cận chung đối xử bình đẳng với tất cả các nút lân cận chung; nó không phân biệtcác tác động khác nhau của các nước nút lân cận khác nhau đối với dự đoán liên kết Thuậttoán Katz phân biệt ảnh hưởng của các đường dẫn khác nhau có độ dài khác nhau, nhưng nókhông phân biệt ảnh hưởng của các đường dẫn có cùng độ dài đến dự đoán liên kết Cácthuật toán này chỉ xem xét các đặc điểm cấu trúc liên kết của mạng, coi mạng xã hội là tĩnh
và bỏ qua các thuộc tính thời gian và thuộc tính nút của mạng xã hội
3.2 Các thuật toán dự đoán liên kết dựa trên khả năng điều khiển của nút
Trong trường hợp Hình 2, thuật toán dự đoán liên kết truyền thống cho rằng mức độ
tương đồng được tính toán giữa nút A và nút B cũng giống như mức độ tương đồng giữa nút X và nút Y Tuy nhiên, khi trích xuất đồ thị con có chứa nút A, nút B và các nút lân cận chung của chúng; nút X, nút Y và các nút lân cận chung của chúng, như trong Hình 3.2, có thể thấy rằng các đường dẫn giữa nút A và nút B nhiều hơn các đường dẫn giữa nút X và
Trang 19nút Y Theo thuật toán Katz, độ tương đồng của nút A và nút B cao hơn độ tương đồng của nút X và nút Y.
Hình 3: Hai đồ thị mạng xã hội có cùng độ nút
Hình 4: Đồ thị con được trích xuất chứa các nút dự đoán và nút lân cận chung
Quan sát mật độ của đồ thị con lân cận được trích xuất, nếu đồ thị con lân cận chungdày đặc hơn, thì các nút trong đồ thị con đóng góp nhiều hơn vào dự đoán liên kết Gán mật
độ của đồ thị con cho mỗi nút, có thể thấy rằng nếu lân cận chung chiếm tỷ lệ càng lớn trong
các lân cận của nút, thì nó có khả năng tạo ra liên kết mới giữa nút A và nút B càng
lớn Công thức sau để đo lực hướng dẫn của nút:
Trang 20với là bậc của nút và là bậc của nút trong đồ thị con được trích xuất.
III.2.3Thuật toán CNGF
Bằng cách giới thiệu định nghĩa về khả năng điều khiển của nút, chúng ta biết rằngkhả năng điều khiển của các nút khác nhau là khác nhau Sự tương đồng giữa hai nút có thểđược biểu diễn bằng tổng khả năng điều khiển của mỗi nút Khả năng điều khiển của các nútlân cận chung lớn hơn và khả năng liên kết mới giữa hai nút lớn hơn Công thức mức độtương đồng của hai nút như sau:
với là số lượng liên kết mà nút được kết nối với các nút lân cận chung
các nút Độ phức tạp này có thể được chấp nhận trong mạng quy mô lớn
III.2.4Thuật toán KatzGF
Ý tưởng của thuật toán Katz là nếu có nhiều đường đi giữa hai nút thì khả năng tồntại một liên kết mới trong hai nút càng lớn Thuật toán Katz không phân biệt sự đóng gópcủa các đường dẫn có cùng độ dài Khả năng điều khiển của nút có thể phân biệt sự đónggóp của các nút khác nhau một cách hiệu quả Ta có thể sử dụng khả năng điều khiển núttrong thuật toán Katz Bởi vì các nút khác nhau, nên sự đóng góp của các đường dẫn cócùng độ dài là khác nhau Dựa trên những ý tưởng này, thuật toán KatzGF ra đời Các thuậttoán KatzGF đã tích hợp thông tin nút cục bộ và thông tin mạng xã hội toàn cầu một cáchhợp lý
Phần quan trọng nhất của thuật toán KatzGF là cách thiết kế công thức cho mức độtương đồng giữa hai nút Có tính đến sự đóng góp của các nút khác nhau trên cùng độ dàiđường dẫn là khác nhau, công thức KatzGF như sau:
với tham số nằm trong khoảng từ 0 đến 1 Tham số này được sử dụng để kiểm soát
sự đóng góp của đường dẫn đến sự tương đồng; đường dẫn càng dài thì càng ít sự đóng góp
là bậc của nút z trong đồ thị con chứa các nút kiểm tra và tất cả các nút đường dẫn giữa các
Trang 21nút kiểm tra là bậc của nút z Công thức đầu tiên tính toán khả năng điều khiển của mỗi nút
trên đường dẫn giữa các cặp nút và tính tổng khả năng điều khiển của tất cả các nút đườngdẫn như là phần đóng góp của đường dẫn đến dự đoán liên kết
xã hội Khi quy mô mạng lớn thì độ phức tạp về thời gian của thuật toán KatzGF là rất cao.Thuật toán này cần biết thông tin toàn cầu của mạng xã hội Điều này cũng khó đạt đượctrong đời thực nên thuật toán KatzGF không phù hợp với mạng quy mô lớn
3.3 Các thuật toán dự đoán liên kết dựa trên nút nhiều thuộc tính
Thuật toán dự đoán liên kết truyền thống chỉ chặn ảnh chụp thời gian của mạng xãhội, bỏ qua các đặc điểm thời gian của mạng Thực tế, mạng xã hội thay đổi liên tục theothời gian
Xét theo đặc điểm thời gian của mạng, đồ thị mạng xã hội có thể được chia thành các
chuỗi đồ thị khác nhau phù hợp với một bước thời gian nhất định G = < Các đồ thị này là rời rạc Và {là một tập hợp thời gian rời rạc Đối với i, j, 1, sớm hơn Việc lựa chọn bước
thời gian phụ thuộc vào ứng dụng Bước thời gian có thể được đặt là một tháng hoặc mộtnăm
Để minh họa vai trò của thống kê thời gian nút đối với dự đoán liên kết tốt hơn,chúng ta có thể thực hiện một phép tính tương tự với đường trung bình động của tài chính
Ta sử dụng đường trung bình động (moving average) để trích xuất các xu hướng phát triểndài hạn từ dữ liệu nhiễu ngắn hạn trong tài chính Đường trung bình động là giá trị trungbình của một giá trị chỉ số trong một khoảng thời gian nhất định Ví dụ, xem xét giá trị độ
hội, chúng ta có thể loại bỏ một số dữ liệu nhiễu bằng cách sử dụng giá trị trung bình củathuộc tính nút và nhận một xu hướng ổn định trong dài hạn
Kết hợp khả năng điều khiển nút và bậc trung bình của nút, ta có thể dự đoán liên kếtdựa trên các thuộc tính cấu trúc liên kết nút và thuộc tính thời gian mạng Trong phần này,thực hiện một số sửa đổi về định nghĩa khả năng điều khiển nút và thêm các thuộc tính thời
gian vào định nghĩa khả năng điều khiển nút Ta nhận được chuỗi biểu đồ G = <từ biểu đồ mạng xã hội G = (V, E), trong đó mỗi biểu đồ là một biểu đồ vô hướng Trong mỗi đồ thị, ta
Trang 22tính toán và tương ứng Sau đó, sử dụng ý tưởng về đường trung bình động của các nút,tính bậc trung bình của nút trong toàn bộ mạng và đồ thị con được trích xuất Bậc trung bìnhcủa nút trong đồ thị con được trích xuất là Bậc trung bình của nút trong toàn bộ đồ thị là Cuối cùng, đưa và vào công thức định nghĩa của khả năng điều khiển nút, ta được công thứcmới kết hợp các thuộc tính thời gian:
Với định nghĩa mới trước đó, chúng ta có thể sửa đổi thuật toán CNGF và thuật toánKatzGF Kết hợp thuật toán CNGF với các thuộc tính cấu trúc liên kết mạng xã hội và thuộctính thời gian, ta được thuật toán CNGF_T Công thức là:
Công thức tương đồng mới trong KatzGF_T:
Trang 23CHƯƠNG IV TIỀN XỬ LÝ DỮ LIỆU VÀ TRỰC QUAN HÓA DỮ LIỆU LÊN
ĐỒ THỊ 4.1 Tiền xử lí dữ liệu
Hình 5: Tiền xử lí dữ liệu
4.2 Tạo mạng liên kết
Cài đặt đồ thi có hướng cho mạng:
Hình 6: Cài đặt đồ thi có hướng cho mạngBảng lưu trữ thống kê cho mỗi node:
Hình 7: Lưu trữ thống kê cho mỗi nodeTổng số Node và cạnh:
Hình 8: Tính tổng số node và cạnh
Trang 244.3 Trực quan hóa mạng liên kết
Hình 9: Trực quan hóa mạng liên kết
Trang 25CHƯƠNG V PHÂN TÍCH, TRỰC QUAN HÓA CÁC ĐỘ ĐO TRONG MẠNG
XÃ HỘI 5.1 Độ đo Degree Centrality
Degree Centrality
+ Trực quan hóa mạng liên kết theo độ đo Degree Centrality
Trang 26Hình 10: Trực quan hóa mạng liên kết theo độ đo Degree Centrality
Trang 27+ Top 10 nodes có Degree Centrality cao nhất:
Hình 11: Top 10 nodes có Degree Centrality cao nhất
Trang 28+ Tần số và xác xuất xuất hiện Degree Centrality
Hình 12: Tần số và xác xuất xuất hiện Degree Centrality
In-Degree Centrality
+ Trực quan hóa mạng liên kết theo độ đo In-Degree Centrality
Trang 29Hình 13: Trực quan hóa mạng liên kết theo độ đo In-Degree Centrality
Trang 30+ Top 10 nodes có In-Degree Centrality cao nhất:
Hình 14: Top 10 nodes có In-Degree Centrality cao nhất
Trang 31+ Tần số và xác xuất xuất hiện In-Degree Centrality:
Hình 15: Tần số và xác xuất xuất hiện In-Degree Centrality
Out-Degree Centrality
+ Trực quan hóa mạng liên kết theo độ đo Out-Degree Centrlity:
Trang 32Hình 16: Trực quan hóa mạng liên kết theo độ đo Out-Degree Centrlity
Trang 33+ Top 10 nodes có Out-Degree Centrality cao nhất:
Hình 17: Top 10 nodes có Out-Degree Centrality cao nhất
Trang 34+ Tần số và xác xuất xuất hiện Out-Degree Centrality
Hình 18: Tần số và xác xuất xuất hiện Out-Degree Centrality
Nhận xét:
+ Qua việc phân tích trên Python Ví dụ, lấy ra top 3 nodes có các ID:107,1684 ,1912 có độ đo Out-Degree cao nhất Hay nói cách khác đây lànhững ID đi kết bạn nhiều nhất Các ID: 1888, 2543, 1800 có độ đo In-Degreecao nhất, hay nói cách khác đây là những ID có bạn bè nhiều nhất
5.2 Độ đo Betweenness Centrality
Trực quan hóa mạng liên kết theo độ đo Betweeness Centrlity