MẠNG XÃ HỘI VÀ CÁC VẤN ĐỀ PHÂN TÍCH MẠNG XÃ HỘI
GIỚI THIỆU VỀ MẠNG LƯỚI XÃ HỘI
Lý thuyết đồ thị là một lĩnh vực nghiên cứu quan trọng trong Khoa học máy tính, tập trung vào các cấu trúc gồm các đỉnh và cạnh Các cạnh có thể hướng hoặc vô hướng, tùy thuộc vào bài toán cụ thể Lý thuyết đồ thị được ứng dụng linh hoạt trong nhiều tình huống, như tìm đường đi ngắn nhất, sắp xếp lịch thi cho sinh viên, và mô hình hóa mạng lưới xã hội.
Mạng lưới xã hội là cấu trúc xã hội kết nối cá nhân và tổ chức thông qua các mối quan hệ như tình bạn, tình yêu, đồng nghiệp và gia đình Nó được biểu diễn dưới dạng đồ thị, trong đó mỗi cá nhân hoặc tổ chức là một đỉnh, và các cạnh nối giữa các đỉnh thể hiện mối quan hệ xã hội giữa chúng Những mối quan hệ này chính là các nút thắt quan trọng trong mạng lưới xã hội.
Một trong những mô hình trực quan nổi bật trong thực tế là dịch vụ mạng xã hội trực tuyến, tiêu biểu là Facebook, Twitter, Instagram và YouTube Facebook là ví dụ điển hình của mạng xã hội sử dụng đồ thị vô hướng, trong khi Twitter áp dụng đồ thị có hướng.
PHÂN TÍCH MẠNG LƯỚI XÃ HỘI
Phân tích mạng lưới xã hội (PTMLXH) là quá trình nghiên cứu cấu trúc xã hội thông qua lý thuyết đồ thị, với các đỉnh (actor) và các cạnh (mối quan hệ) thể hiện các kết nối giữa các actor như cá nhân, tổ chức, doanh nghiệp, và băng đảng Các mối quan hệ này có thể bao gồm tương trợ, trao đổi thông tin và dịch vụ PTMLXH áp dụng nhiều phương pháp để chọn mẫu, thu thập và xử lý dữ liệu, nhằm mô tả và phân tích mối quan hệ giữa các actor, quy luật hình thành và biến chuyển của những mối quan hệ này, cũng như ảnh hưởng của chúng đối với hành vi của actor Tóm lại, PTMLXH nghiên cứu hành vi của actor ở mức độ vi mô, cấu trúc quan hệ ở mức độ vĩ mô, và sự tương tác giữa hai khía cạnh này.
CÁC ỨNG DỤNG CỦA PHÂN TÍCH MẠNG LƯỚI XÃ HỘI
PTMLXH, ban đầu là ứng dụng của ngành xã hội học để mô hình hóa xã hội, hiện nay đã trở thành một phương pháp đa ngành, không còn độc quyền cho một lĩnh vực nào Phương pháp này được áp dụng rộng rãi trong nhiều ngành khoa học, đặc biệt trong lĩnh vực khoa học máy tính, bao gồm các ứng dụng như truy hồi thông tin, khai phá dữ liệu và khoa học dữ liệu.
Sự đa dạng trong ứng dụng của PTMLXH đã khẳng định vai trò quan trọng của nó trong nhiều lĩnh vực như phân tích tội phạm, sinh học, kinh tế, lịch sử, địa lý và chính trị.
Các ứng dụng có thể kể đến như:
- “Detecting Key Players in Terrorist Networks” bởi Ala Berzinji, Lisa Kaati, Ahmed Rezine [5]
- Đề xuất kết bạn trên mạng xã hội trực tuyến
Các doanh nghiệp thực hiện khảo sát để nắm bắt nhu cầu của người tiêu dùng, từ đó phân tích dữ liệu nhằm phát triển sản phẩm mới Việc này không chỉ giúp đáp ứng nhu cầu thị trường mà còn góp phần tăng trưởng doanh thu hiệu quả.
CÁC PHÉP ĐO TRONG MẠNG LƯỚI XÃ HỘI
CÁC HỆ SỐ ĐO LƯỜNG CƠ BẢN
2.1.1 HỆ SỐ CỐ KẾT ( DENSITY)
Hệ số cố kết (Density) của một đồ thị phản ánh mức độ gắn kết và chặt chẽ của các mối quan hệ giữa các actor trong mạng lưới Khi độ gắn kết cao, mối quan hệ giữa các actor cũng sẽ mạnh mẽ hơn, dẫn đến sự tương trợ và hỗ trợ hiệu quả hơn Điều này cũng đồng nghĩa với việc mạng lưới có khả năng điều tiết hành vi của các actor tốt hơn Đối với đồ thị vô hướng, công thức tính Density được áp dụng để đo lường mức độ này.
𝑛(𝑛 − 1)/2 Đối với những đồ thị có hướng, ta sẽ có công thức tính Density như sau:
+ m: là tổng các mối liên hệ thực tế của mạng lưới
+ n: là tổng số đỉnh(nút) của mạng lưới
Giá trị của độ dày (density) dao động từ 0 đến 1; khi giá trị này càng gần 1, tính kết nối của mạng lưới càng mạnh mẽ Điều này dẫn đến sự hỗ trợ giữa các thành viên trong mạng lưới diễn ra hiệu quả hơn.
Ví dụ: Mạng lưới vô hướng gồm có 9 actor:
Mạng vô hướng trong đồ thị này bao gồm 9 actor và 16 cạnh, thể hiện 16 mối liên hệ thực tế Từ đó, chúng ta có thể tính toán độ dày của mạng bằng công thức Density = 9*(9-1)/2 / 16, cho kết quả khoảng 0.44444.
Ví dụ: Mạng lưới có hướng gồm 7 actor:
Mạng có hướng bao gồm 7 actor và 11 cạnh, tạo thành 11 mối liên hệ thực tế Từ đó, ta có thể tính toán mật độ mạng với công thức 𝐷𝑒𝑛𝑠𝑖𝑡𝑦 = 7∗(7−1)/11, kết quả khoảng 0.2619.
Theo J Scott cho rằng hệ số cố kết của một mạng lưới phụ thuộc vào số lượng actor trong mạng Cụ thể, khi số lượng actor tăng lên, hệ số cố kết sẽ giảm và ngược lại.
2.1.2 HỆ SỐ TRUNG TÂM TRỰC TIẾP ( DEGREE CENTRALITY)
Hệ số trung tâm trực tiếp (Degree Centrality) đo lường số lượng mối quan hệ trực tiếp của một actor với các thành viên khác trong mạng lưới Giá trị này dao động từ 0 đến 1; khi gần 1, tính trung tâm của actor càng lớn, cho thấy actor này có nhiều kết nối với các thành viên khác Actor có thể là cá nhân nổi bật, nắm giữ nhiều thông tin và có ưu thế trong việc khai thác nguồn nhân lực, đồng thời ít phụ thuộc vào các actor khác Việc tính toán giá trị của hệ số trung tâm trực tiếp là cần thiết để đánh giá vị trí của actor trong mạng lưới.
PTMLXH ta có công thức:
+ k : Tổng số mối quan hệ trực tiếp của 𝑎𝑐𝑡𝑜𝑟 𝑖 + n : Tổng số actor trong mạng lưới
Trong một mạng lưới có hướng, chúng ta cần chú ý đến hai hệ số quan trọng: in-degree và out-degree In-degree đại diện cho tổng số mối quan hệ trực tiếp mà một actor i nhận được, cụ thể là tổng số cạnh hướng đến actor i Ngược lại, out-degree thể hiện tổng số mối quan hệ trực tiếp mà actor i gửi đi, tức là tổng số cạnh hướng từ actor i đến các thành viên khác trong mạng lưới.
Ví dụ: Mạng vô hướng ví dụ hệ số trung tâm trực tiếp
Hình 3 Mạng vô hướng ví dụ hệ số trung tâm trực tiếp
Bảng Kết quả hệ số trung tâm trực tiếp dựa trên Hình 3 1
Ví dụ: Mạng có hướng ví dụ hệ số trung tâm trực tiếp
Hình 4 Mạng có hướng ví dụ hệ số trung tâm trực tiếp
Bảng Kết quả hệ 2 số trung tâm trực tiếp dựa trên Hình 4
2.1 3 HỆ SỐ TRUNG TÂM LÂN CẬN (CLOSENESS CENTRALITY)
Hệ số trung tâm lân cận (Closeness Centrality) xác định các thành viên gần gũi nhất với actor i trong mạng lưới Sự gần gũi này là tiêu chí quan trọng thể hiện vị thế của actor, vì càng gần gũi với các thành viên khác, actor càng dễ dàng tiếp cận thông tin và có uy thế hơn Do đó, actor này có khả năng ảnh hưởng đến toàn bộ mạng lưới một cách nhanh chóng Hệ số này có thể được tính toán một cách đơn giản.
+ n: Tổng số actor trong mạng lưới
+ ∑ 𝑑(𝑥, 𝑦) : Tổng số ‘bước’ (step) của đoạn đường ngắn nhất mà 𝑎𝑐𝑡𝑜𝑟 𝑖 phải đi để đến với mọi actor trong mạng
Ví dụ: Mạng vô hướng ví dụ hệ số trung tâm lân cận
Hình 5 Mạng vô hướng ví dụ hệ số trung tâm lân cận
Hệ số trung tâm lân cận, giống như hệ số trung tâm trực tiếp, cũng có in-degree và out-degree đối với đồ thị có hướng, như thể hiện trong Bảng Kết quả Hệ số Trung tâm Lân cận dựa trên Hình 5 3.
2.1 4 HỆ SỐ TRUNG TÂM TRUNG GIAN (BETWEENNESS CENTRALITY)
Hệ số trung tâm trung gian (Betweenness Centrality) là một chỉ số quan trọng để xác định một actor 'trung gian' trong mạng lưới, tức là actor có vai trò kết nối nhiều cuộc trao đổi thông tin giữa các actor khác Chỉ số này dao động từ 0 đến 1; khi một actor có hệ số gần 1, điều đó có nghĩa là actor đó đóng vai trò quan trọng trong việc kết nối và ảnh hưởng đến 'dòng chảy' thông tin trong mạng lưới Actor này có khả năng điều hướng thông tin theo hướng có lợi cho mình và thúc đẩy sự hợp tác giữa các thành viên khác trong mạng lưới.
+ 𝜎 𝑥𝑦 (𝑖) : Tổng đường đi ngắn nhất giữa 2 𝑎𝑐𝑡𝑜𝑟 𝑥 và 𝑎𝑐𝑡𝑜𝑟 𝑦 mà phải thông qua 𝑎𝑐𝑡𝑜𝑟 𝑖 + 𝜎 𝑥𝑦 : Tổng đường đi ngắn nhất giữa 2 𝑎𝑐𝑡𝑜𝑟 𝑥 và 𝑎𝑐𝑡𝑜𝑟 𝑦 trong toàn mạng lưới
+ n : Tổng số actor có trong mạng lưới
Ví dụ: Mạng vô hướng ví dụ hệ số trung tâm trung gian
Hình 6 Mạng vô hướng ví dụ hệ số trung tâm trung gian Đỉnh L M N O P Q R
Hệ số trung tâm trung gian được trình bày trong Bảng Kết quả dựa trên Hình 6 4, tương tự như hai hệ số trước đó Đối với đồ thị có hướng, hệ số trung tâm trung gian cũng bao gồm in-degree và out-degree.
2.1 5 HỆ SỐ PHÂN CỤM (CLUSTERING COEFFICIENT)
Hệ số phân cụm, được phát hiện bởi Watts và Strogatz, là tiêu chuẩn quan trọng để đo lường mức độ gắn kết giữa các actor trong mạng lưới Hệ số này được xác định dựa trên các actor láng giềng có mối liên kết với nhau, tạo thành các mạng con Nếu một actor chỉ có một láng giềng, thì không thể hình thành mạng con giữa hai actor này.
• Hệ số phân cụm cục bộ (Local Clustering Coefficient)
Hệ số phân cụm cục bộ đo lường mức độ gắn kết giữa các actor láng giềng của actor i Công thức tính hệ số này được áp dụng cho mạng lưới vô hướng.
𝑘 𝑖 (𝑘 − 1) 𝑖 : 𝑣 𝑗 , 𝑣 𝑘 ∈ 𝑁 𝑖 ; 𝑒 𝑗𝑘 ∈ 𝐸 Đối với mạng lưới có hướng ta có công thức:
+ 𝑁 𝑖 : tập hợp các actor láng giềng của 𝑎𝑐𝑡𝑜𝑟 𝑖 + E : tập hợp tất cả các mối quan hệ (cạnh) của mạng lưới.
Hệ số phân cụm cục bộ của mỗi actor trong mạng lưới được tính dựa trên các cạnh kết nối giữa các actor, với ký hiệu \( e_{jk} \) đại diện cho cạnh kết nối giữa actor \( j \) và actor \( k \) Số lượng láng giềng của actor \( i \) được ký hiệu là \( k_i \), và tổng số cạnh kết nối giữa các actor trong tập \( N_i \) được biểu diễn bằng \( |e_{jk}| \) Sau khi xác định hệ số phân cụm cục bộ cho từng actor, chúng ta có thể tính toán hệ số phân cụm cục bộ trung bình để đánh giá mức độ gắn kết của toàn bộ mạng lưới Công thức tính toán này cho phép chúng ta hiểu rõ hơn về cấu trúc và sự tương tác trong mạng lưới.
+ n: Số actor của toàn mạng lưới
• Hệ số phân cụm toàn cục (Global Clustering Coefficient)
Hệ số phân cụm toàn cục đánh giá mức độ gắn kết của toàn mạng lưới, khác với hệ số phân cụm cục bộ trung bình, được tính dựa trên bộ ba đỉnh bất kỳ trong mạng Để bộ ba này được coi là một clique, nó cần tạo thành một chu trình tam giác.
+ 𝑛𝑢𝑚𝑏𝑒𝑟 𝑡𝑟𝑖𝑎𝑛𝑔𝑙𝑒𝑠 𝑜𝑓 : tổng số tam giác được tạo bởi tất cả các bộ ba trong mạng lưới
+ 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑎𝑙𝑙 𝑡𝑟𝑖𝑝𝑙𝑒𝑡𝑠 : tổng số các actor tạo thành bộ ba
Hình 7 Ví dụ về phân cụm
SIGNED GRAPH: CÁC VẤN ĐỀ VÀ ỨNG DỤNG
Học thuyết địa vị có thể được áp dụng trong mạng lưới điều tra tội phạm, trong đó A có địa vị cao nhất, đứng đầu băng đảng, trong khi B có địa vị thấp hơn D, D cao hơn C, và C cao hơn B Điều này chứng minh rằng A là thủ lĩnh của băng nhóm.
NHẬN BIẾT CỘNG ĐỒNG (COMMUNITY DETECTION)
MODULARITY
Phương pháp Modularity là một thuật toán phổ biến trong việc phát hiện cộng đồng trong mạng lưới, đóng vai trò quan trọng trong các giải pháp phân cụm Thuật toán này đo lường cường độ phân chia của mạng thành các cộng đồng, với đồ thị có modularity cao cho thấy kết nối dày đặc giữa các nút trong cùng một mô đun và ít kết nối giữa các mô đun khác nhau Quá trình của thuật toán bao gồm hai giai đoạn: đầu tiên, tối ưu hóa mô đun cục bộ để tìm các cộng đồng nhỏ; tiếp theo, tập hợp các đỉnh của cộng đồng để xây dựng một mạng lưới mới Qua nhiều thử nghiệm, độ phức tạp của thuật toán được ước lượng là 𝑂(𝑛 log 𝑛), mặc dù chưa được chứng minh chính thức.
Giả sử mạng lưới có tất cả n đỉnh Cụ thể, ta chi mạng lưới thành 2 nhóm và đặt
𝑠 𝑖 = 1 nếu đỉnh i thuộc nhóm 1 và 𝑠 𝑖 = −1 nếu đỉnh i thuộc nhóm 2 Ta có công thức tính Modularity như sau:
+ 𝐴 𝑖𝑗 : giá trị của ma trận kề A tại hàng i và cột j + 𝑘 𝑖 : số bậc của 𝑎𝑐𝑡𝑜𝑟 𝑖
+ m: Tổng số actor của mạng lưới
Từ công thức, ta có thể xác định giá trị thấp 𝑄 trong khoảng [−1; 1] Mô đun càng cao thì kết quả thu được càng tốt, nhưng điều này cũng khiến phương pháp Modularity gặp khó khăn trong việc nhận diện các cộng đồng nhỏ.
GRIVAN NEWMAN’S ALGORITHM
Ý tưởng chính của thuật toán này là xác định và loại bỏ các cạnh kết nối giữa các cộng đồng trong mạng, những cạnh này đóng vai trò 'trung gian' Để đi từ một đỉnh này sang một đỉnh khác thuộc hai cộng đồng khác nhau, đường đi phải đi qua ít nhất một trong những cạnh trung gian đó Bằng cách thiết lập các đường đi giữa tất cả các đỉnh trong mạng và xác định các cạnh được đi qua nhiều nhất, chúng ta có thể loại bỏ chúng để phân chia mạng thành các cộng đồng riêng biệt.
Nội dung của thuật toán Girvan – Newman như sau:
1 Tính hệ số trung tâm trung gian của tất cả các cạnh trong mạng
2 Loại bỏ những cạnh có hệ số cao nhất (Nếu có từ 2 trở lên có hệ số giống nhau ta có thể loại bỏ ngẫu nhiên 1 cạnh hoặc loại bỏ tất cả các cạnh)
3 Tính toán lại hệ số trung tâm trung gian cho tất cả các cạnh bị ảnh hưởng bởi bước 2
4 Lặp lại bước 2 cho đến khi không còn cạnh nào trong mạng lưới
Thuật toán Girvan – Newman mặc dù mang lại kết quả khả quan trong nhiều tình huống, nhưng vẫn tồn tại hai nhược điểm chính Đầu tiên, thuật toán không xác định được số lượng cộng đồng mà mạng sẽ phân chia, dẫn đến khó khăn trong việc chọn lựa phép phân vùng hiệu quả nhất Thứ hai, độ phức tạp của thuật toán khá cao, với độ phức tạp là 𝑂(𝑚𝑛) trong mỗi bước lặp và tổng thời gian tính toán có thể lên tới 𝑂(𝑚𝑛)², trong trường hợp xấu nhất có thể đạt 𝑂(𝑛³) Những nhược điểm này đã thúc đẩy các nhà khoa học tìm kiếm những cải tiến cho phương pháp, nhưng những cải tiến này sẽ không được đề cập trong báo cáo này.
NODE SIMILARITY BASED ALGORITHM (NSBA)
NSBA tiến hành so sánh các đỉnh dựa vào những láng giềng của chúng, xác định rằng hai đỉnh được coi là tương tự nếu chúng chia sẻ cùng một tập hợp láng giềng Để thực hiện ý tưởng này, hệ số Jaccard được áp dụng để đo lường mức độ tương đồng giữa hai đỉnh Công thức tính hệ số Jaccard giữa hai đỉnh A và B được sử dụng để đánh giá sự giống nhau của chúng.
Khi so sánh hai đỉnh A và B, thuật toán sử dụng công thức |𝐴| + |𝐵| − |𝐴 ∩ 𝐵| để đánh giá mối quan hệ giữa chúng Kết quả trả về là một giá trị từ 0 đến 1; giá trị càng gần 1 cho thấy hai đỉnh này càng giống nhau, trong khi giá trị gần 0 cho thấy sự khác biệt lớn giữa chúng.
LABEL PROPAGATION COMMUNITY DETECTION (LPA)
Nghiên cứu cấu trúc cộng đồng trong mạng lưới xã hội lớn đòi hỏi một thuật toán nhận biết cộng đồng nhanh và chính xác Khi kích thước cộng đồng tăng, độ phức tạp của thuật toán cần duy trì gần với tuyến tính Thuật toán lan truyền nhãn (LPA) nổi bật với độ phức tạp thấp và tính dễ thực hiện, trở thành một trong những phương pháp hiệu quả nhất trong nhận biết cộng đồng Ý tưởng về thuật toán này được nghiên cứu bởi Bagrow, bắt đầu từ một đỉnh được gán nhãn, và thuật toán sẽ lan truyền tới từng đỉnh trong mạng lưới cho đến khi không còn khả năng lan truyền.
Trong lý thuyết đồ thị, một đỉnh được gọi là nội đỉnh nếu tất cả các láng giềng của nó có cùng nhãn, trong khi đỉnh không phải là nội đỉnh được gọi là ngoại đỉnh Những đỉnh đã từng thay đổi nhãn sẽ không thể thay đổi nữa và được gọi là đỉnh bị động, trong khi những đỉnh còn lại được gọi là đỉnh chủ động Tất cả các nội đỉnh đều mặc định là bị động, trong khi ngoại đỉnh có thể là chủ động hoặc bị động tùy thuộc vào láng giềng của chúng Mỗi đỉnh sẽ có một trong ba thuộc tính: nội bị động, ngoại bị động hoặc ngoại chủ động Thuật toán sẽ kết thúc khi tất cả các đỉnh đều trở thành bị động, và các đỉnh chủ động sẽ được lưu trữ trong danh sách đỉnh chủ động.
Thuật toán có nội dung như sau:
1 Vào thời điểm t = 0, đưa tất cả các đỉnh vào active node list
2 Ngẫu nhiên chọn một đỉnh chủ động từ active node list, gọi đỉnh này là i, và thay đổi nhãn của đỉnh này theo định nghĩa đã được nêu ở trên Bởi vì chỉ có những đỉnh chủ động mới được đặt ở vị trí đầu trong danh sách và những đỉnh này sẽ ở lại trong danh sách miễn là vẫn còn thuộc tính chủ động, những đỉnh được chọn sẽ thay đổi nhãn của mình trong quá trình cập nhật
3 Đầu tiên, kiểm tra xem những đỉnh đã được cập nhật đã mang thuộc tính bị động hay chưa, nếu rồi thì xóa đỉnh đó khỏi danh sách Tiếp theo, kiểm tra xem sự thay đổi tất cả láng giềng của đỉnh đó thông qua ba bước (1) nếu một nội đỉnh trở thành đỉnh ngoại chủ động, thêm đỉnh đó vào active node list (2) Loại bỏ những đỉnh láng giềng chủ động mà đã trở thành bị động ra khỏi active node list (3) Thêm những đỉnh láng giềng ngoại bị động mà đã trở thành chủ động vào active node list
4 N u active node list r ng thì d ng thu t toán; n u không ế ỗ ừ ậ ế 𝑡 += 1 và quay lại bước 2.
DEMO
DEMO HỆ SỐ CỐ KẾT TRÊN PYTHON
4.1.1 GIẢI THUẬT Đầu tiên ta cần biểu diễn đồ thị trên ma trận kề, tiếp theo ta cần tìm số cạnh của đồ thị dựa trên ma trận kề vừa biểu diễn Giải thuật tìm cạnh của đồ thị trên ma trận kề như sau:
1 Tạo một biến number_of_Edges và gán biến đó bằng 0, đồng thời cho một biến i = 0
2 Duyệt từng phần từ trong hàng thứ i của ma trận kề, nếu phần tử này khác 0 thì number_o f_Edges cộng thêm 1 đơn vị.
3 Nếu i bé hơn kích cỡ ma trận thì i cộng thêm một và quay lại bước
2, nếu không dừng thuật toán
4 Kết quả trả về số cạnh của đồ thị
Lưu ý: Đối với đồ thị vô hướ ng thì 𝑛𝑢𝑚𝑏𝑒𝑟 𝐸𝑑𝑔𝑒𝑠 = 𝑜𝑓 𝑛𝑢𝑚𝑏𝑒𝑟 𝐸𝑑𝑔𝑒𝑠 𝑜𝑓
Sau khi hoàn thành vòng lặp và xác định số cạnh của đồ thị, ta áp dụng công thức để tính hệ số cố kết Đối với đồ thị vô hướng, công thức tính mật độ (Density) sẽ được sử dụng như sau:
𝑛(𝑛 − 1)/2 Đối với những đồ thị có hướng, ta sẽ có công thức tính Density như sau:
+ m: là tổng các mối liên hệ thực tế (các cạnh) của mạng lưới
+ n: là tổng số đỉnh(nút) của mạng lưới
Hình 10 Ví dụ demo hệ số cố kế t Đối với ví dụ demo hệ số cố kết, ta sẽ có ma trận kề biểu diễn đồ thị như sau:
Ta sẽ tìm số cạnh của đồ thị bằng giải thuật đã được nêu 4.1.1 Áp dụng công th c ta có ứ 𝐷 ≈ 0.44444 , với số cạnh = 16, số đỉnh = 9.
4.1.3 KẾT QUẢ Kết quả cuối cùng của demo code Python:
Hình 11 Demo hệ số cố kết trên Python
DEMO HỆ SỐ TRUNG TÂM TRỰC TIẾP TRÊN PYTHON
4.2.1 GIẢI THUẬT Đầu tiên ta cần biểu diễn đồ thị trên ma trận kề, tiếp theo ta cần phải tìm được danh sách các bậc của đỉnh theo thứ tự Giải thuật tìm bậc của từng cạnh trong đồ thị vô hướng như sau:
1 Tạo một list rỗng, gọi list này là Degree = [], đồng thời cho một biến i = 0
2 Tạo một biến Edges và gán biến này bằng 0
3 Duyệt từng phần từ trong hàng thứ i của ma trận kề, nếu phần tử này khác 0 thì Edges cộng thêm 1 đơn vị
4 Khi đã duyệt hết tất cả các phần tử trong hàng thứ i của ma trận kề, Degree.append(Edges) Nếu i bé hơn kích cỡ ma trận thì i cộng thêm một và quay lại bước 2, nếu không dừng thuật toán
5 Kết quả trả về list Degree là số bậc của từng đỉnh theo thứ tự Với mỗi phần tử trong list Degree, ta sử dụng công thức sau đây để tính hệ số trung tâm trực tiếp cho từng đỉnh:
+ k : Tổng số mối quan hệ trực tiếp của 𝑎𝑐𝑡𝑜𝑟 𝑖 (Tổng số bậc của 𝑎𝑐𝑡𝑜𝑟 𝑖 ) + n : Tổng số actor trong mạng lưới Đối với đồ thị có hướng ta có giải thuật:
• Đối với bậc out – degree ta áp dụng tương tự như giải thuật của đồ thị vô hướng trên ma trận kề
• Đối với bậc in – degree ta áp dụng tương tự như giải thuật của đồ thị vô hướng trên chuyển vị của ma trận kề
• Áp dụng công thức tính hệ số trung tâm trực tiếp ta sẽ có bậc của out – degree và in – degree với các list InDegree và OutDegree.
Hình 12 Ví dụ demo 1 hệ số trung tâm trực tiếp Đối với demo 1 hệ số trung tâm trực tiếp, ta sẽ có ma trận kề như sau:
Ta tìm danh sách bậc của đồ thị như giải thuật đã nêu ở 4.2.1 Sau đó áp dụng công thức ta kết quả:
Hình 13 Ví dụ demo 2 hệ số trung tâm trực tiếp Đối với demo 2 hệ số trung tâm trực tiếp, ta sẽ có ma trận kề như sau:
Ta tìm danh sách in degree và out degree – – của đồ thị như giải thuật đã nêu ở 4.2.1
Sau đó áp dụng công thức ta kết quả:
DEMO HỆ SỐ TRUNG TÂM LÂN CẬN TRÊN PYTHON
Chúng tôi sử dụng thư viện networkx để giải quyết bài toán, bắt đầu bằng cách sử dụng các lệnh add_node (add_nodes_from) và add_edge (add_edges_from) để tạo ra đồ thị mong muốn.
Ta có giải thuật như sau:
1 Tạo một set rỗng, gọi set này là là Dict_Cc dùng để chứa các hệ số trung tâm lân cận của từng đỉnh theo thứ tự, đồng thời cho một biến i = 0
2 Duyệt phần tử thứ i của đồ thị (theo thứ tự đã cho trước đó), đồng thời đặt một biến d = 0
3 Duyệt tất cả các kết nối của đỉnh i tới các đỉnh khác trong đồ thị và tìm đường đi ngắn nhất của đỉnh i đến từng đỉnh, với mỗi đường đi ngắn nhất từ đỉnh i tới các đỉnh lần lượt ta sẽ có biến step đại diện cho bướ c ngắn nhất từ đỉnh i đến đỉnh đó, cứ mỗi l ần như vậy d được cập nh ật 𝑑 += 𝑠𝑡𝑒𝑝 Đồng thời áp dụng công thức tính hệ số trung tâm lân cận có công thức như sau:
+ n: Tổng số actor trong mạng lưới
+ ∑ 𝑑(𝑥, 𝑦) : Tổng số ‘bước’ (step) của đoạn đường ngắn nhất mà 𝑎𝑐𝑡𝑜𝑟 𝑖 phải đi để đến với mọi actor trong mạng.
Sau đó Dict_Cc.add( 𝐶 𝑐 )
4 Nếu i bé hơn số đỉnh của đồ thị thì i tăng một đơn vị và quay lại bước 2 Nếu không kết thúc thuật toán
5 Kết quả trả về là set Dict_Cc chứa hệ số trung tâm lân cận của tất cả các đỉnh trong đồ thị
Hình 15 Ví dụ demo hệ số trung tâm lân cận
Sử dụng các lệnh để tạo đồ thị: import networkx as nx g = nx.Graph() g.add_nodes_from([1,2,3,4,5,6]) g.add_edges_from([(1,2),(1,5),(2,3),(2,5),(3,4),(4,5),(4,6)]) Áp dụng giải thuật đã trình bày ở 4.3.1
DEMO HỆ SỐ TRUNG TÂM TRUNG GIAN TRÊN PYTHON
Chúng tôi sử dụng thư viện networkx để giải quyết bài toán, bắt đầu bằng việc sử dụng các lệnh add_node (hoặc add_nodes_from) và add_edge (hoặc add_edges_from) để xây dựng đồ thị theo yêu cầu.
Ta có giải thuật như sau:
1 Tạo một set rỗng, gọi set này là là Dict_Cb dùng để chứa các hệ số trung tâm lân cận của từng đỉnh theo thứ tự, đồng thời cho một biến i = 0
2 Duyệt phần tử thứ i của đồ thị (theo thứ tự đã cho trước đó), đồng thời đặt một biến b = 0
3 Duyệt tất cả các kết nối của đỉnh x tới tất cả các đỉnh khác trong đồ thị (trừ đỉnh i) và tìm đường đi ngắn nhất của đỉnh đến từng x đỉnh, với mỗi đường đi ngắn nhất từ đỉnh tới các đỉnh lần lượt ta x sẽ có biến count đại diện cho số lần xuất hiện của đỉnh i trong đường đi đó Sau khi đã duyệt xong ta áp dụng công thức tính hệ số trung tâm trung gian:
+ n : Tổng số actor có trong mạng lưới Sau đó Dict_Cb.add( 𝑪 𝑩 )
4 Nếu i bé hơn số đỉnh của đồ thị thì i tăng một đơn vị và quay lại bước 2 Nếu không kết thúc thuật toán
5 Kết quả trả về là set Dict_Cb chứa hệ số trung tâm trung gian của tất cả các đỉnh trong đồ thị
Hình 17 Ví dụ demo hệ số trung tâm trung gian
Sử dụng các lệnh để tạo đồ thị: import networkx as nx a = nx.Graph() a.add_nodes_from(['L','M','N','O','P','Q','R'])
Hình 9 Mô hình cân bằng của Heider Đối với các hình tam giác:
Trong các ứng dụng thực tế như mạng xã hội trực tuyến, mô hình cân bằng của Heider có thể được áp dụng để đề xuất kết bạn Ví dụ, nếu A và B là bạn bè trên Facebook, và B và C cũng là bạn bè, thì theo mô hình này, A và C có khả năng quen biết nhau nhưng chưa kết bạn Do đó, hệ thống có thể đưa ra đề xuất cho A kết bạn với C.
Học thuyết này có thể sử dụng cho cả mạng vô hướng và có hướng
Học thuyết địa vị và học thuyết cân bằng có thể được mô hình hóa thông qua các khái niệm thích và không thích Theo Guha và các đồng sự, một quan hệ trong signed graph từ A đến B có thể được hiểu theo nhiều cách khác nhau, phụ thuộc vào ý định của A khi thiết lập mối quan hệ Cụ thể, một liên kết 'dương' từ A đến B có thể có nghĩa là "B là bạn của mình" hoặc "Mình nghĩ rằng B có địa vị cao hơn mình", và điều này cũng có thể xảy ra theo chiều ngược lại.
Trong thuyết này, chúng ta cho rằng mối liên kết giữa hai diễn viên, 𝑎𝑐𝑡𝑜𝑟 𝑥 và 𝑎𝑐𝑡𝑜𝑟 𝑦, mang dấu ‘dương’ cho thấy 𝑎𝑐𝑡𝑜𝑟 𝑥 có địa vị cao hơn 𝑎𝑐𝑡𝑜𝑟 𝑦 và ngược lại Phương thức mới này giúp chúng ta đáp ứng nhu cầu hàng ngày như học hỏi, giao tiếp và xây dựng mối quan hệ mới Nhờ có PTMLXH, chúng ta có thể nghiên cứu một khối lượng lớn dữ liệu để phân tích và hiểu rõ hơn về hành vi con người.
Trong nghiên cứu nhận biết cộng đồng, các nhà nghiên cứu tập trung vào việc phân tích hành vi, suy nghĩ và xu hướng của các cá nhân trong những nhóm xã hội, được gọi là cộng đồng.
Nhận biết cộng đồng mang lại nhiều lợi ích cho các nhãn hàng, bao gồm việc hiểu rõ ý kiến của người tiêu dùng về sản phẩm từ các nhóm cộng đồng đa dạng Điều này không chỉ giúp quảng cáo sản phẩm một cách hiệu quả mà còn phù hợp với nhu cầu và đặc điểm văn hóa của từng nhóm người khác nhau.
Nhận diện cộng đồng là một thách thức lớn trong phân tích mạng xã hội, nhưng hiện nay đã có nhiều thuật toán hữu ích được áp dụng để hỗ trợ quá trình này.
Theo Santo Fortunato (2010), các phương pháp và thuật toán nhận biết cộng đồng trong mạng lưới xã hội đã được tổng hợp, với các nhóm phương pháp điển hình được xác định rõ ràng.
+ Các phương pháp truyền thống
+ Các thuật toán chia + Các phương pháp dựa trên mô đun hóa + Các thuật toán dựa trên phổ
Các thuật toán động, phương pháp dựa trên suy luận thống kê, và các phương pháp phát hiện chồng chéo cộng đồng là những khía cạnh quan trọng trong việc phân tích mạng Ngoài ra, các phương pháp nhiều lời giải và hệ thống phân cụm phân cấp cũng đóng vai trò không nhỏ trong việc phát hiện cộng đồng Để tìm hiểu chi tiết về từng phương pháp, người đọc có thể tham khảo thêm tài liệu liên quan.
Phương pháp Modularity là một kỹ thuật phổ biến trong việc phát hiện các lưới, giúp tìm ra cộng đồng mới trong giai đoạn trước Qua nhiều thử nghiệm, độ phức tạp của phương pháp này được ước lượng là 𝑂(𝑛 log 𝑛), mặc dù chưa có chứng minh chính thức.
Giả sử mạng lưới có tất cả n đỉnh Cụ thể, ta chi mạng lưới thành 2 nhóm và đặt
𝑠 𝑖 = 1 nếu đỉnh i thuộc nhóm 1 và 𝑠 𝑖 = −1 nếu đỉnh i thuộc nhóm 2 Ta có công thức tính Modularity như sau:
+ 𝐴 𝑖𝑗 : giá trị của ma trận kề A tại hàng i và cột j + 𝑘 𝑖 : số bậc của 𝑎𝑐𝑡𝑜𝑟 𝑖
+ m: Tổng số actor của mạng lưới
Từ công thức, ta có thể xác định giá trị thấp 𝑄 trong khoảng [−1; 1] Mô đun càng cao sẽ mang lại kết quả tốt hơn, nhưng điều này cũng khiến phương pháp Modularity gặp khó khăn trong việc nhận diện các cộng đồng nhỏ.
Thuật toán Girvan – Newman là một trong những thuật toán phân chia nổi bật, đóng vai trò quan trọng trong việc phát hiện cộng đồng trong mạng Thuật toán này có ý nghĩa lịch sử và phương pháp, đánh dấu sự khởi đầu của một giai đoạn mới trong nghiên cứu cộng đồng Nguyên tắc chính của thuật toán là xác định và loại bỏ các cạnh kết nối giữa các cộng đồng, những cạnh này được coi là ‘trung gian’ trong mạng lưới Để xác lập đường đi giữa hai đỉnh thuộc hai cộng đồng khác nhau, ít nhất một trong các cạnh trung gian này sẽ phải được đi qua.