THUẬT TOÁN PHÁT HIỆN CỘNG ĐỒNG DỰA VÀO ĐỘ ĐO TRUNG GIAN

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu độ đo trung gian và thuật toán phát hiện cộng đồng trên mạng xã hội (Trang 37 - 40)

Bài toán phát hiện cộng đồng tập trung vào việc từ một đồ thị mạng xã hội, tìm ra những cụm, nhóm cộng đồng có mối liên hệ chặt chẽ với nhau. Qua trực quan có thể dễ dàng tìm ra những nhóm cộng đồng có độ trung tâm (tập trung) cao, nhưng không phải cộng đồng nào cũng được hình thành bằng các

mối liên hệ chặt chẽ và dễ thấy, một số cộng đồng có thể được hình thành ẩn. Điều quan trọng là phải tìm được sự phân phối của các cạnh giữa các đỉnh, từ đó đưa ra các cộng đồng tồn tại trong mạng xã hội.

Thay vì việc tìm kiếm những đỉnh trong đồ thị có độ gắn kết cao với nhau, phương pháp phát hiện cộng đồng bằng thuật toán phân chia được đưa ra như một cách giải quyết hữu hiệu. Để tránh các khuyết điểm của phương pháp phân cụm phân cấp, thay vì cố gắng để xây dựng một giải pháp tìm cạnh trung tâm của cộng đồng, chúng ta đi tìm những cạnh có độ trung gian cao nhất, cạnh đó được gọi tên là cạnh nối (cầu nối) giữa các cộng đồng. Girvan-Newman [17] cho rằng khi các cộng đồng được gắ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ạnh nố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ạnh nối đó. Thay vì việc xây dựng cộng đồng bằng cách thêm vào các cạnh có độ trung tâm cao nhất, chúng ta sẽ xây dựng bằng cách loạn bỏ dần dần các cạnh nối (cầu nối) từ đồ thị ban đầu. Khi đó, các cộ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 biệt. Để làm được việc này, điều quan trọng nhất của thuật toá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 [12]. Theo Freeman, các cạnh nối được coi là cạnh có số lượng con đường ngắn nhất giữa các cặp đỉnh khá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ác đỉnh 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án Girvan-Newman [13, 20]. Thuật toán Girvan-Newman (GN) duyệt qua mỗi đỉnh (nút) v một lần và tính số đường đi ngắn nhất từ v tới những đỉnh khác có đi qua từng cạnh đó. Tư

tưởng chính của thuật toán GN được thực hiện theo kỹ thuật phân cụm phân cấp.

Input: Đồ thị mạng xã hội G = (V, E) Output: Tập các cộng đồng

Bước 1. Tính độ trung gian của tất cả các cạnh trong mạng,

Bước 2. Tìm những cạnh có độ trung gian lớn nhất và loại bỏ chúng,

Bước 3. Tính lại độ trung gian của tất cả các cạnh trong các thành phần còn lại, Bước 4. Lặp lại từ bước 2 cho đến khi đến khi không có cạnh nào vượt qua

ngưỡng của độ độ trung gian cho trước hoặc không còn cạnh trung gian.

Ví dụ 2.2. Sử dụng thuật toán GN để phát hiện cộng đồng cho đồ thị sau

Hình 2.1. Phát hiện cộng đồng mạng sử dụng Girven-Newman

Thuật toán Girvan-Newman khá đơn giản và dễ hiểu. Toàn bộ thuật toán có thể được biểu diễn trong một dendrogram, ở đây ta có thể hiểu là thuật toán đi từ gốc đến các lá. Các nhánh của cây biểu diễn cho các phép loại bỏ cạnh để chia đồ thị thành các cộng đồng riêng rẽ.

Thuật toán Girvan-Newman đưa lại kết quả tương đối tốt trong nhiều trường hợp, mặc dù vậy nó vẫn gặp phải một số nhược điểm:

1. Thuật toán Girvan-Newman sử dụng phương pháp loại trừ đến khi không có cạnh nào vượt qua ngưỡng của độ trung gian cao nhất, vì vậy nên số lượng cộng đồng hoàn toàn không kiểm soát trước được. Bên cạnh đó, thuật toán sử dụng nhiều phép phân vùng, khó có thể xác định được phép phân vùng nào mang lại hiệu quả tốt nhất.

2. Do tại mỗi lượt thực hiện, thuật toán tính lại độ trung gian của mỗi cạnh liên quan sau khi xóa đi cạnh có độ trung gian lớn nhất nên độ phức tạp thời gian là khá cao. Giả sử với đồ thị n đỉnh, số cạnh phải xóa đi khỏi đồ thị là m cạnh thì ta cần lượng thời gian tính toán O(mn) cho mỗi lần lặp. Tổng thời gian chạy thuật toán O(m2n). Trong trường hợp xấu nhất, mỗi đỉnh được chia ra thành một cộng đồng riêng rẽ thì độ phức tạp thời gian của thuật toán sẽ lên đến O(n3).

3. Trên thực tế, mỗi đơn vị nút mạng có thể thuộc vào rất nhiều cộng đồng khác nhau. Ví dụ với một cá nhân A, đóng góp vai trò là một nút trên mạng xã hội có thể thuộc vào nhiều nhóm: Bạn cùng lớp, đồng nghiệp cùng công ty, anh em họ hàng trong gia đình… Nhưng với cách phân chia của Girvan-Newman không giải quyết được hiện tượng chồng chéo cộng đồng trên.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu độ đo trung gian và thuật toán phát hiện cộng đồng trên mạng xã hội (Trang 37 - 40)