Thuật toán Girvan-Newman

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu mô hình phân cụm có thứ bậc các đồ thị dữ liệu (Trang 44)

2.3.1. Giới thiệu về độ đo modularity

Có nhiều thuật toán để phân cụm đồ thị dữ liệu. Hầu hết các thuật toán này đều hoạt động tốt trên các bộ dữ liệu nhân tạo hoặc các bộ dữ liệu thực tế mà các cụm đã biết trước. Tuy nhiên, có một câu hỏi đặt ra đó là làm sao để đánh giá chất lượng của các cấu trúc cụm đã được phân chia bởi các thuật toán này khi chúng ta làm việc trên các bộ dữ liệu thực tế mà chưa biết trước các cụm đó. Một khái niệm mà chúng ta đã biết đó một cụm tốt khi các cạnh bên trong cụm đó là dày đặc hơn. Một nút được kết nối tới nhiều nút khác trong cụm hơn là kết nối tới các nút khác cụm. Một độ đo được định nghĩa bởi Girvan và Newman [9, 13, 16] đó là độ đo đơn thể Q được sử dụng

cho việc đánh giá chất lượng của các cụm . Đặt Avw là phần tử của ma trận kề biểu diễn đồ thị dữ liệu:

Avw = {1 𝑛ế𝑢 𝑐ó 𝑐ạ𝑛ℎ 𝑛ố𝑖 𝑔𝑖ữ𝑎 𝑐á𝑐 đỉ𝑛ℎ 𝑣 𝑣à 𝑤 0 𝑛ế𝑢 𝑘ℎô𝑛𝑔 𝑐ó 𝑐ạ𝑛ℎ 𝑛ố𝑖 𝑔𝑖ữ𝑎 𝑣 𝑣à 𝑤

(2.3)

và giả sử các đỉnh được chia vào trong các cụm với đỉnh v sẽ thuộc cụm cv. Theo đó, số phép phân chia các cạnh vào trong các cụm, tức là kết nối các đỉnh nằm cùng cụm là: ∑𝑣𝑤𝐴𝑣𝑤𝛿(𝑐𝑣, 𝑐𝑤) ∑𝑣𝑤𝐴𝑣𝑤 = 1 2𝑚∑ 𝐴𝑣𝑤𝛿(𝑐𝑣, 𝑐𝑤) 𝑣𝑤 (2.4)

với hàm 𝛿 nhận giá trị như sau: 𝛿(𝑖, 𝑗) = 1 nếu i=j và 𝛿(𝑖, 𝑗) =0 trong trường hợp còn lại.

m = 1

2∑𝑣𝑤𝐴𝑣𝑤 là số cạnh của đồ thị. (2.5) Bậc kv của đỉnh v được đỉnh nghĩa là số cạnh gắn với v:

kv = ∑ 𝐴𝑤 𝑣𝑤 (2.6)

Nếu các kết nối giữa các đỉnh được tạo ra ngẫu nhiên thì xác suất tồn tại một cạnh kết nối hai đỉnh v và w liên quan đến bậc của đỉnh sẽ là: kvkw/2m.

Khi đó giá trị modularity Q được tính như sau:

𝑄 = 1

2𝑚∑ [𝐴𝑣𝑤−𝑘𝑣𝑘𝑤 2𝑚 ]

𝑣𝑤

𝛿(𝑐𝑣, 𝑐𝑤) (2.7)

Một giá trị Q cao tức là thể hiện một phép phân hoạch cụm tốt. Do đó nhiệm vụ của bài toán là đi tìm giá trị Q cao nhất có thể. Tuy nhiên, với một không gian tìm kiếm vô cùng lớn (độ phức tạp NP-khó) khiến cho việc tìm phương án tối ưu của Q là không khả thi.

2.3.2. Độ đo trung gian

• Khái niệm:

 Độ đo trung gian của một đỉnh được tính bằng tổng số các đường đi ngắn nhất ngang qua đỉnh đang xét chia cho tổng số các đường đi ngắn nhất của toàn mạng. Nói cách khác, độ đo trung gian dùng để xác định vị trí của tác nhân trong mạng mà nó có khả năng kết nối đến những cặp tác nhân hay những nhóm tác nhân khác.

• Công thức tính:

- Cho đồ thị G = (V, E) có n đỉnh.

- Công thức tính Độ đo trung gian của đỉnh v :

(2.8) Trong đó:

: Tổng số đường đi ngắn nhất từ đỉnh s đến t và có qua đỉnh v (s ≠ v ≠ t). : Tổng số các đường đi ngắn nhất từ đỉnh s đến t (s ≠ v ≠ t).

-Công thức tính độ đo trung gian của đỉnh v theo dạng chuẩn:

𝐶𝐵′(𝑣) = 𝜎𝐵(𝑣)

(𝑛−1)(𝑛− 2) / 2 (2.9)

• Miền giá trị:

Độ đo này có miền giá trị nằm trong khoảng [0..1], node có giá trị càng lớn thì node đó sẽ có sự ảnh hưởng tới việc phân bổ cấu trúc của các cụm hay nhóm trong mạng càng lớn. Một tác nhân có vai trò trung tâm càng lớn trong mạng thì sẽ có tầm ảnh hưởng lớn trong việc kiểm soát mọi thông tin trao đổi giữa các tác nhân khác trong mạng.

2.3.3. Thuật toán phân cụm Girvan-Newman

Thay vì việc tìm kiếm những nút mạng trong đồ thị có độ gắn kết cao với nhau, phương pháp phân cụm 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 nhóm có thứ bậc, thay vì cố gắng để xây dựng một biện pháp tìm cạnh trung tâm của cụm, chúng ta đi tìm những cạnh ít trung tâm nhất, cạnh đó được gọi tên là cạnh giữa cụm. Thuật toán này dựa trên quan niệm cho rằng khi các cụm được gắn kết với nhau thì đường đi giữa cụm này đến cụm khác sẽ đi qua các cạnh nối giữa các cụm 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ụm 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ác cụm 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ậ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. Theo Freeman, 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 đỉ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 nú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án Girvan-Newman [9, 13, 16].

Để tìm các cạnh trong mạng nối hai đỉnh thuộc hai cụm khác nhau, khái quát đây là cạnh có độ trung gian cao, và xác định độ đo trung gian này bằng cách tính số đường đi ngắn nhất giữa các cặp đỉnh mà có qua nó. Với một đồ thị m cạnh và n đỉnh thì thời gian tính toán cho giai đoạn này là O(mn) .Với đồ thị có trọng số, độ đo trung gian của cạnh có trọng số đơn giản được tính bằng độ đo trung gian của cạnh không có trọng số chia cho trọng số của cạnh đó.

Nếu một mạng lưới bao gồm các cụm hoặc nhóm chúng chỉ được liên kết nối yế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ụm 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ối các cụm sẽ là cạnh có độ đô trung gian cao. Bằng cách loại bỏ các cạnh, thuật toán Girvan-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ác bước sau:

1. Tính độ đo trung gian cho tất cả các cạnh trong mạng. 2. Hủy bỏ các cạnh có độ trung gian cao nhất.

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ỏ.

Hình 2.5: Ví dụ phát hiện cụm sử dụng thuật toán Girvan - Newman [7]. 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ụm 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ụm 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ụm 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ụm 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ụm trên.

2.4. Thuật toán CNM (Clauset-Newman-Moore)

Thuật toán CNM được đề xuất bởi Clauset, Newman và Moore [5] là một phương pháp phân cụm phân cấp tích tụ. Thuật toán này sử dụng độ đo đơn thể Q được đề xuất bởi Girvan và Newman như đã giới thiệu ở chương 1 để làm độ đo cho việc tối ưu hóa kết quả phân cụm.

Một giá trị cao của Q thể hiện phép phân cụm tốt cho đồ thị hiện tại, do đó nhiệm vụ của CNM là đi tìm giá trị Q cao nhất trong tập ứng cử của nó. Việc tìm giá trị Q cực đại toàn cục trên tập các phương án có thể là rất khó hay nói cách khác là tốn rất nhiều thời gian (không khả thi với thời gian thực), do đó trong CNM, các tác giả đề xuất kỹ thuật tối ưu hóa xấp xỉ hay còn gọi là phương pháp tối ưu tham lam.

Tương tự như thuật toán của Girvan-Newman, CNM cũng bắt đầu với việc phân hoạch mỗi đỉnh vào một cụm đơn lẻ, sau đó sẽ lặp lại việc kết hợp hai cụm với nhau sao cho phép hợp nhất này sẽ làm tăng Q lên một giá trị lớn nhất. Với mạng có n đỉnh thì sau n-1 phép kết hợp như vậy sẽ phân hoạch toàn bộ các đỉnh vào trong một cụm đơn và thuật toán kết thúc. Toàn bộ tiến trình này sẽ được tạo thành một cây kết quả trong đó các lá của cây là các đỉnh của mạng gốc và các nút bên trong tương ứng với phép kết hợp. Cây này biểu diễn dưới dạng cấu trúc "dendrogram" và nó thể hiện việc phân cụm có thứ bậc mạng trên thành các cụm ở tất cả các mức khác nhau. Cách thực thi trực tiếp của ý tưởng này mà Girvan-Newman áp dụng là lưu ma trận kề của đồ thị như một mảng các số nguyên và lặp lại việc trộn các cặp hàng - cột tương ứng với việc trộn các cụm với nhau. Đối với trường hợp đồ thị thưa, cách thực hiện này gây lãng phí bộ nhớ và thời gian thực thi đối với các phần tử có giá trị 0 trong ma trận này, mà với đồ thị thưa số phần tử 0 rất nhiều. Bởi vậy, CNM đề xuất thuật toán mới nhằm tăng tốc độ công việc trên bằng cách loại bỏ những phép toán không cần thiết.

Trước tiên, CNM định nghĩa 2 đại lượng sau:

𝑒𝑖𝑗 =1

2∑ 𝐴𝑣𝑤𝛿(𝑐𝑣, 𝑖)𝛿(𝑐𝑤, 𝑗)

𝑣𝑤

(2.10)

𝑎𝑖 = 1

2𝑚∑ 𝑘𝑣𝛿(𝑐𝑣, 𝑖)

𝑣

(2.11)

là phép phân hoạch các cạnh gắn các đỉnh trong cụm i.

Tiếp đến, ký hiệu 𝛿(𝑐𝑣, 𝑐𝑤) = ∑ 𝛿(𝑐𝑖 𝑣, 𝑖)𝛿(𝑐𝑣, 𝑖) ta sẽ được (2.12).

𝑄 = 1 2𝑚∑ [𝐴𝑣𝑤−𝑘𝑣𝑘𝑤 2𝑚 ] ∑ 𝛿(𝑐𝑣, 𝑖)𝛿(𝑐𝑤, 𝑖) 𝑖 𝑣𝑤 = ∑ [ 1 2𝑚∑ 𝐴𝑣𝑤𝛿(𝑐𝑣, 𝑖)𝛿(𝑐𝑤, 𝑖) 𝑣𝑤 − 1 2𝑚∑ 𝑘𝑣𝛿(𝑐𝑣, 𝑖) 1 2𝑚∑ 𝑘𝑤𝛿(𝑐𝑤, 𝑖) 𝑤 𝑣 ] 𝑖 = ∑(𝑒𝑖𝑖 − 𝑎𝑖2 𝑖 ) (2.12)

Công việc của thuật toán CNM liên quan đến việc tìm sự thay đổi của giá trị Q được tạo ra do sự hợp nhất các cặp cụm và chọn giá trị lớn nhất trong số chúng. Ta đặt ∆𝑄𝑖𝑗 là sự thay đổi của Q khi hợp nhất hai cụm i và j. Trên thực tế, việc tìm cặp i, j cho ∆𝑄𝑖𝑗 lớn nhất tốn rất nhiều thời gian. Vì thế CNM thay bằng việc lưu trữ ma trận kề của mạng và tính toán giá trị ∆𝑄𝑖𝑗, nó thay bằng việc lưu trữ và cập nhật một ma trận các giá trị của ∆𝑄𝑖𝑗. Do việc kết hợp hai cụm mà không có cạnh nối chúng sẽ không làm tăng Q nên CNM chỉ lưu các ∆𝑄𝑖𝑗 với các cặp i, j mà việc hợp nhất khi chúng có một hay nhiều cạnh nối. Do ma trận này có cùng độ hỗ trợ như ma trận kề, nó cũng sẽ thưa như ma trận kề gốc và có thể biểu diễn chúng với các cấu trúc dữ liệu hữu hiệu. Tiếp nữa, CNM xây dựng một cấu trúc dữ liệu hữu hiệu khác để lưu trữ các giá trị ∆𝑄𝑖𝑗 lớn nhất tại các bước. Hai sự cải tiến này sẽ giúp cho việc tiết kiệm về bộ nhớ và thời gian thực thi của CNM.

CNM tổ chức 03 cấu trúc dữ liệu như sau:

1. Một ma trận thưa chứa các ∆𝑄𝑖𝑗 cho mỗi cặp cụm i, j với tối thiểu 1 cạnh nối giữa chúng. CNM lưu trữ mỗi hàng của ma trận vừa giống cây nhị phân cân bằng (các phần tử có thể tìm kiếm hay chèn mới với độ phức tạp O(logn)) và như cấu trúc max-heap (phần tử lớn nhất có thể tìm được trong thời gian hằng số).

2. Một cấu trúc max-heap H lưu trữ phần tử lớn nhất của mỗi hàng trong ma trận ∆𝑄𝑖𝑗 cùng với các nhãn i, j tương ứng với cặp cụm được hợp nhất.

3. Một mảng vector thông thường cho việc lưu trữ các phần tử ai. Như đã nói ở trên, CNM bắt đầu với việc mỗi đỉnh sẽ nằm trong 1 cụm đơn lẻ, với trường hợp này thì eij = 1/2m nếu i và j được kết nối và =0 trong trường hợp còn lại. ai = ki/2m.

Do đó, CNM sẽ khởi tạo ma trận ∆𝑄𝑖𝑗 như sau:

∆𝑄𝑖𝑗 = {1/2𝑚 − 𝑘𝑖𝑘𝑗/(2𝑚) 2 𝑛ế𝑢 𝑐ó 𝑐ạ𝑛ℎ 𝑛ố𝑖 𝑖, 𝑗 0 𝑛ế𝑢 𝑖 𝑘ℎô𝑛𝑔 𝑛ố𝑖 𝑣ớ𝑖 𝑗 (2.13) Và 𝑎𝑖 = 𝑘𝑖 2𝑚 𝑣ớ𝑖 𝑚ọ𝑖 𝑖 (2.14)

Các bước của thuật toán:

1. Tính toán các giá trị khởi tạo của ∆𝑄𝑖𝑗 và ai tương ứng với công thức (2.13), (2.14) và tạo cấu trúc max-heap với các phần tử lớn nhất cho mỗi hàng của ma trận ∆𝑄.

2. Chọn giá trị ∆𝑄𝑖𝑗 lớn nhất trong cấu trúc max-heap H, hợp nhất hai cụm i, j tương ứng, cập nhật ma trận ∆𝑄, heap H và ai, đồng thời tăng giá trị modularity Q lên một lượng ∆𝑄𝑖𝑗.

3. Lặp lại bước 2 cho tới khi chỉ còn lại 1 cụm.

Cấu trúc dữ liệu mà CNM xây dựng giúp việc cập nhật các giá trị trong bước 2 rất nhanh chóng. Nếu hợp nhất hai cụm i, j và đánh lại nhãn là j cho cả hai cụm này, CNM chỉ cần cập nhật hàng và cột thứ j, đồng thời xóa bỏ hàng và cột thứ i. Luật cập nhật sẽ như sau:

Nếu cụm k đã từng kết nối với cả cụm i và j thì:

∆𝑄𝑗𝑘′ = ∆𝑄𝑖𝑘+ ∆𝑄𝑗𝑘 (2.15a)

Nếu k chỉ kết nối với i mà không kết nối với j thì:

∆𝑄𝑗𝑘′ = ∆𝑄𝑖𝑘− 2𝑎𝑗𝑎𝑘 (2.15b)

Nếu k chỉ kết nối với j mà không nối với i thì:

Với các sự điều chỉnh ở trên, thuật toán CNM có độ phức tạp về thời gian là O(mdlogn) với một mạng n đỉnh, m cạnh và d là độ sâu của cây dendrogam, tức là CNM có hiệu năng rất cao. Trong bài báo giới thiệu về CNM, các tác giả đã thực thi thuật toán với một mạng gồm 400.000 đỉnh và 2 triệu cạnh với thời gian thực thi rất nhanh.

2.5. Thuật toán Rosvall-Bergstrom

Để hiểu được cấu trúc của các mạng xã hội, mạng tin sinh cỡ lớn, sẽ rất thuận tiện nếu phân tích chúng thành các đơn vị con hay các modul nhỏ hơn. Trong [14], Rosvall - Bergstrom phát triển một nền tảng lý thuyết thông tin cho khái niệm về độ đo modularity trong các mạng. Các tác giả xác định các modul trong mạng bằng cách tìm một phép nén tối ưu cho topology của mạng đó dựa trên cấu trúc của nó. Hình 2.6 dưới đây minh họa một nền tảng cơ bản cho việc phân cụm (xác định các cộng đồng) trong mạng. Chúng ta hình dung quá trình mô tả một mạng phức tạp bằng một bản tóm tắt đơn giản về cấu trúc modul của nó như một quá trình truyền thông. Cấu trúc liên kết của một mạng phức tạp là một biến ngẫu nhiên X, một tín hiệu biết được dạng đầy đủ của mạng X và nhằm mục đích chuyển tải nhiều thông tin hơn tới bộ tiếp nhận tín hiệu trong thời gian ngắn hơn. Để làm được điều này, tín hiệu mã hóa thông

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu mô hình phân cụm có thứ bậc các đồ thị dữ liệu (Trang 44)

Tải bản đầy đủ (PDF)

(87 trang)