Đối với một đồ thị có bất kỳ cạnh có hướng nào, có hai loại thành phần liên thơng là thành phần liên thông mạnh và thành phần liên thông yếu [32].
2.1.1.2. Thành phần liên thông mạnh
Trong đồ thị có hướng, một đồ thị con được cho là liên thơng mạnh nếu mọi đỉnh đều có khả năng tiếp cận tới mọi đỉnh khác. Như vậy, thành phần liên thơng mạnh khi có một đường đi theo mỗi hướng giữa các cặp đỉnh trong đồ thị. Điều này nghĩa là, một đường đi tồn tại từ đỉnh đầu tiên đến đỉnh thứ hai, và một đường đi khác tồn tại từ đỉnh thứ hai đến đỉnh đầu tiên.
Trong đồ thị có hướng G, một cặp đỉnh u và v được cho là liên kết chặt chẽ với nhau nếu giữa chúng có một đường đi theo mỗi hướng. Các mối quan
25 hệ hai chiều này gọi là quan hệ tương đương và đồ thị con chứa nhiều nhất những quan hệ tương đương này sẽ được gọi là thành phần liên thơng mạnh.
Hình 2.4. Hình ảnh ví dụ thành phần liên thơng mạnh
Như vậy, thành phần liên thơng mạnh trong đồ thị có hướng G là đồ thị con liên thông mạnh và lớn nhất.
2.1.1.3. Thành phần liên thông yếu
Tương tự với thành phần liên thông mạnh, thành phần liên thông yếu là một đồ thị con cực đại trong đồ thị có hướng G. Nhưng đường đi ở đồ thị liên thơng yếu khơng tính tới yếu tố tương đương. Nghĩa là thành phần đó có thể tồn tại cặp nút mà chỉ có đường đi một chiều giữa hai nút.
Hình 2.5. Hình ảnh ví dụ thành phần liên thơng yếu
Trong một đồ thị G có hướng, thành phần liên thơng mạnh có thể là tập con của thành phần liên thông yếu.
Trong các mạng vơ hướng, khơng có gì khác biệt nếu ta chọn thành phần mạnh hay thành phần yếu vì kết quả khơng khác nhau. Hơn nữa, các
26 thành phần yếu trong mạng có hướng bằng với các thành phần trong mạng vô hướng.
2.1.2. Cliques
Thuật ngữ đồ thị con hoàn chỉnh lần đầu được đưa ra bởi Erdős & Szekeres (1935)[25]. Thuật ngữ cliques ra đời sau đó vào năm 1949 bởi Luce & Perry [26] . Một đồ thị con hoàn chỉnh là một mơ hình cliques.
Một cliques được định nghĩa là một đồ thị con cực đại, trong đó mọi thành viên của biểu đồ được kết nối với mọi thành viên khác của biểu đồ. Cliques là tập hợp các nút có mật độ = 1,0.
Hình 2.6. Hình ảnh ví dụ về Cliques
Thuộc tính của cliques đó là chỉ số mật độ của cliques sẽ bằng 1. Tất cả các đỉnh sẽ có kết nối với n-1 đỉnh cịn lại. Khoảng cách giữa mỗi cặp là 1. Tỷ lệ giữa các mối quan hệ trong nhóm là vơ hạn. Và tất cả các bộ ba đều có tính bắc cầu.
Trong thực tế, các cliques hoàn chỉnh khơng hữu ích lắm. Chúng có xu hướng chồng lên nhau nhiều và bị giới hạn về kích thước.
27
Hình 2.7. Hình ảnh ví dụ cliques thực tế chồng lên nhau
Do đó, các nhà lý thuyết đồ thị đã nới lỏng yêu cầu kết nối hoàn chỉnh (với các mức độ thành công khác nhau). Dưới đây, tôi sẽ giới thiệu k- cores.
2.1.3. K-cores
K-core là khái niệm được đưa ra bởi Christopher và cộng sự vào năm
2003[27] . Ý tưởng đơn giản của k-coreslà mỗi nút cần được kết nối với ít
nhất k nút khác trong mạng. Trong mơ hình mạng, sự phân bố bậc cho thấy sự tập trung cục bộ của các mối quan hệ xung quanh nút nhưng nó khơng cho chúng ta biết liệu các nút có bậc cao có được nhóm lại hay rải rác khắp nơi trên mạng. Trong phần này, ta xem xét k-cores. Khái niệm này xác định các cụm đỉnh được kết nối chặt chẽ. K-cores xác định các mạng con dày đặc, vì vậy chúng giúp tìm ra các nhóm con gắn kết.
Định nghĩa: Một k -core là một đồ thị con tối đa trong đó mỗi đỉnh có bậc ít nhất bằng k trong mạng con.
28
Hình 2.8. Hình ảnh ví dụ về k-cores
Như ví dụ trên, 0-core được thể hiện bằng màu xanh lam, 1-core là màu vàng, 2-cores là màu xanh lá cây và 3-cores là màu đỏ.
Trên thực tế, có thể có nhiều nhóm 3-cores. Và các nhóm này được lồng vào nhau: một đỉnh trong 3-cores cũng là một thành phần trong 2-cores nhưng ngược lại thì khơng chắc.
Để tìm các nhóm con gắn kết bằng k-cores, ta sẽ loại bỏ k -cores thấp nhất khỏi mạng cho đến khi mạng chia thành các thành phần tương đối đậm đặc. Sau đó, mỗi thành phần được coi là nhóm con gắn kết vì chúng có ít nhất k lân cận trong thành phần. Lưu ý rằng các đỉnh đã bị loại bỏ trong quá trình này khơng phải là một phần của nhóm con gắn kết.
Như vậy, sự gắn kết thường được thể hiện qua mật độ và sự kết nối. Mật độ xác định số lượng liên kết tới đỉnh. Một mạng lưới được kết nối mạnh mẽ nếu nó chứa các đường dẫn giữa tất cả các đỉnh của nó và được kết nối khi tất cả các đỉnh của nó được nối với nhau bằng các đường bán dẫn. Điều này cũng áp dụng cho các phần của mạng (mạng con). Có một số kỹ thuật để phát hiện các nhóm con gắn kết dựa trên mật độ và tính kết nối, ba trong số đó được trình bày trong phần này là: thành phần, k –cores, và cliques. Cả ba kỹ thuật đều giả định các mẫu kết nối tương đối dày đặc trong các nhóm
29 con, nhưng chúng khác nhau về mật độ tối thiểu yêu cầu, thay đổi từ ít nhất một kết nối với tất cả các kết nối có thể có (cliques).
2.2. Một số thước đo thống kê mô tả đặc trưng cho mạng xã hội
Ngoài những thước đo trên đồ thị trên, mạng còn rất nhiều thước đo thống kê đánh giá một mạng như đường kính, sức mạnh (strength) của một nút hay hệ số phân cụm của một nút trong mạng.
2.2.1. Khoảng cách trong mạng
Một đường đi trong mạng vô hướng hay gọi là đường đi trong đồ thị vô hướng là một chuỗi các đỉnh P = (v1, v2, …, vn) V * V * V *…* V.
Trong đó, vi tiếp giáp vi+1 với 1 i n.
Một đường như vậy sẽ được gọi là một con đường có độ dài n-1 từ v1 đến vi.
Có thể có nhiều con đường giữa hai đỉnh bất kì. Trong đó, con đường ngắn nhất giữa hai đỉnh sẽ được gọi là khoảng cách giữa hai đỉnh.
Như vậy, ta có khái niệm khoảng cách giữa hai đỉnh của đồ thị là số cạnh trên đường đi ngắn nhất của đồ thị. Đây được gọi là khoảng cách ngắn nhất và được ký hiệu là L[28] .
Trường hợp khơng có đường đi nào nối hai đỉnh, tức là hai đỉnh này thuộc hai thành phần liên thơng khác nhau thì khoảng cách giữa hai đỉnh này được coi là vơ hạn.
Ta có một số khái niệm liên quan:
Đỉnh cơ lập v là đỉnh có khoảng cách lớn nhất với tất cả các đỉnh khác trong đồ thị. Đây có thể coi là nút xa nhất trong đồ thị.
Đường kính của đồ thị khoảng cách lớn nhất giữa các cặp đỉnh trong đồ thị. Để tìm được đường kính của đồ thị, ta cần xác định khoảng cách ngắn nhất giữa hai đỉnh bất kì trong đồ thị. Khi đó, đường kính sẽ là khoảng cách ngắn nhất có giá trị lớn nhất mà ta tìm thấy.
30
2.2.2. Sức mạnh của nút trong mạng
Thực tế, trên mạng không chỉ xét tới hướng của cạnh, mà ta cịn có thể xét trọng số của cạnh.
Trọng số của cạnh là sức mạnh mối quan hệ giữa hai nút. Trọng số của cạnh giữa hai nút i và j thường được kí hiệu là wi,j.
Một chỉ số ta có thể đề cập tới là sức mạnh[29] của một nút- hay gọi là độ mạnh của một nút.
Độ mạnh của nút trong mạng vơ hướng sẽ được tính như sau:
( , )
( ) j i E wji
s i =
Với: s(i) là độ mạnh của đỉnh i
wi,j là trọng số giữa hai đỉnh i và j của đồ thị
Với đồ thị có hướng, ta có thể chia làm độ mạnh vào: in-strength sin(i)
và độ mạnh ra: out-strength sout(i) của nút i là tổng trọng số của cạnh đi vào
và đi ra tương ứng.
Ta tính in-strength của nút i sẽ được tính như sau:
( , ) ( ) w in ji j i E s i =
với wji là trọng số của cạnh từ nút j đến nút i. Ta tính in-strength của nút i sẽ được tính như sau:
( , ) ( ) w out ij i j E s i = với wi j là trọng số của cạnh từ nút i đến nút j. 2.2.3. Hệ số phân cụm mạng
Hệ số đo lường phân cụm mạng – C là hệ số được tính theo trung bình mật độ địa phương với Cv là mật độ mạng cá nhân tại nút v. Khái niệm này được đưa ra lần đầu bởi Holland và Leinhardt vào năm 1971[30].
31 v v C C n =
Hệ số phân cụm cục bộ Ci cho đỉnh vi sẽ được tính như sau trong mạng vơ hướng: 1 *( 1) / 2 0 0 1 i i i i i i i k if d d d C if d or d − = =
Trong mạng có hướng, mật độ được tính như sau:
1 *( 1) 0 0 1 i i i i i i i k if d d d C if d or d − = =
Trong đó, ki là số đỉnh lân cận của đỉnh i.
Một mạng có đặc trưng thế giới nhỏ là mơ hình mạng có L tương đối nhỏ và C tương đối lớn.
2.3. Bài toán phát hiện cộng đồng trong mạng xã hội
Mơ hình mạng xuất hiện xung quanh ta rất nhiều. Những ví dụ ta có thể kể đến như mạng xã hội cộng đồng trên facebook, twitter, hay youtube,…. Xây dựng một mạng xã hội có rất nhiều ứng dụng, chẳng hạn như dự đoán liên kết, phát hiện bất thường,… Trong bài luận này, tôi sẽ đi sâu vào bài toán phát hiện cộng đồng. Đây là một bài toán cơ bản trong phân tích mạng, nhưng nó cũng có vai trị rất lớn. Việc phát hiện cộng đồng giúp ta tìm ra cách ứng xử riêng với từng nhóm đối tượng mà ta quan tâm.
2.3.1. Giới thiệu bài toán phát hiện cộng đồng
Một mạng được coi là có cấu trúc cộng đồng nếu các nút có thể dễ dàng nhóm lại thành tập hợp các nút sao cho mỗi nhóm nút có mật độ kết nối nội bộ cao. Nguyên tắc của việc phát hiện cộng đồng cho rằng hai nút bất kì có khả năng có kết nối chặt chẽ hơn nếu hai nút đó cùng là thành viên trong một cộng đồng và có liên kết ít chặt chẽ hơn nếu hai nút khác cộng đồng.
32
2.3.1.1. Khái niệm
Trong các mạng được tìm thấy, ví dụ như mạng máy tính, mạng xã hội, mạng sinh học, ta thấy được một số điểm chung trong mạng như tính chất thế giới nhỏ, phân bố bậc theo luật lũy thừa. Nhưng điểm khác của các mạng này là cấu trúc cộng đồng [37].
Hình 2.9. Hình ảnh ví dụ phân cộng đồng
Vậy cộng đồng là gì? Cộng đồng là một nhóm người hoạt động chung một mục đích. Cộng đồng trên mạng xã hội có thể coi là một nhóm người có cùng sở thích, quan điểm, có chung mục đích về một lĩnh vực nào đó như cộng đồng khoa học, cộng đồng xử lý ngôn ngữ tự nhiên, cộng đồng văn hóa - thể thao. Về định nghĩa[31] , cộng đồng là sự phân vùng tập hợp của các đỉnh. Mỗi một nút trong mạng sẽ được đưa vào một cộng đồng. Đây là trường hợp đơn giản và hầu hết các phương pháp đều hướng đến việc phát hiện cộng đồng theo kiểu này. Tuy nhiên, vẫn có thể xảy ra trường hợp một nút thuộc hai hoặc nhiều cộng đồng. Trong phần nghiên cứu dưới đây, tôi đề cập tới việc phát hiện cộng đồng cho mỗi nút là duy nhất.
2.3.1.2. Các phương pháp phát hiện cộng đồng
Các cộng đồng đã được điều tra từ những năm 1920 trong lĩnh vực xã hội học. Tuy nhiên, tại thời điểm đó, máy móc chưa hiện đại đã ảnh hưởng lớn tới việc phát triển bài toán này. Kể từ năm 2002, Girvan và Newman [31]
33 các nhà nghiên cứu từ khoa học máy tính đã nghiên cứu sâu rộng về phát hiện cộng đồng bằng cách sử dụng cấu trúc mạng và thông tin ngữ nghĩa cho cả mạng tĩnh và mạng động, mạng nhỏ và mạng lớn.
Để phát hiện được cộng đồng trong một mạng ngẫu nhiên là tương đối khó. Số lượng cộng đồng trong mạng thường là không xác định, đồng thời, kích thước và mật độ cũng khơng đồng đều. Hiện nay đã có rất nhiều phương pháp hỗ trợ giúp ta phát hiện cộng đồng mạng với mức độ thành công khác nhau [32] [33].
Phương pháp đầu tiên kể đến là phương pháp cắt tối thiểu. Trong phương pháp này, mạng chia làm những phần được xác định trước, thường có cùng kích thước và được chọn sao cho số lượng cạnh giữa các nhóm có ít nhất có thể. Ví dụ có thể kể đến là bài tốn cân bằng tải cho tính tốn song song. Tuy nhiên, phương pháp này không được đánh giá tối ưu trong phát hiện cộng đồng[34].
Phương pháp phân cụm phân cấp (Hierarchical Clustering): đây là nhóm phương pháp khai phá cấu trúc cộng đồng phân cấp theo ba phương pháp: phân chia, cộng gộp và phép lai [35]. Trong phương pháp này, ta định nghĩa một thước đo tương tự để định lượng dạng tương đồng giữa các cặp nút. Các độ đo thường sử dụng là độ đo cosine, chỉ số Jaccard hay khoảng cách Hamming giữa các ma trận kề. Sau đó, các nút có độ tương đồng với nhau sẽ được nhóm lại thành một cộng đồng. Có hai dạng phân nhóm phổ biến là phân cụm liên kết đơn [36]. Phân cụm này sẽ xác định hai nhóm được coi là cộng đồng riêng biệt khi và chỉ khi tất cả các cặp nút trong các nhóm khác nhau có độ tương đồng thấp hơn một ngưỡng nhất định. Dạng thứ hai là phân cụm liên kết hoàn chỉnh [37]. Trong dạng này, tất cả các nút trong một cộng đồng sẽ phải lớn hơn một ngưỡng nhất định.
Phương pháp thứ ba kể tới là phương pháp tối ưu hóa modularity. Đây là một trong những phương pháp được sử dụng rộng rãi trong bài tốn phát hiện cộng đồng. Tính modularity là một hàm tính tốn đo lường chất lượng
34 một bộ phận cụ thể trong mạng thành các cộng đồng. Phương pháp tối đa hóa modularity phát hiện các cộng đồng bằng cách tìm kiếm những phần trên mạng có modularity cao. Vì tìm kiếm tồn diện trên tất cả thường khó thực hiện. Do vậy, các thuật toán thực tế thường dựa trên các phương pháp tối ưu hóa gần đúng như thuật tốn tham lam, mô phỏng (simulated annealing) hoặc tối ưu hóa phổ. Các cách tiếp cận khác nhau cũng sẽ có tốc độ và độ chính xác khác nhau[38].
Suy luận thống kê -Stochastic Block Model (SBM) là một mơ hình tổng hợp được áp dụng rộng rãi bằng cách gán các nút vào các cộng đồng và kiểm soát khả năng xảy ra của chúng. Ưu điểm của phương pháp này là tính ngun tắc của nó và khả năng giải quyết vấn đề trên thống kê cơ bản. Hầu hết, các phương pháp tài liệu đều dựa trên mơ hình khối ngẫu nhiên [39].
Các phương pháp dựa trên cliques. Cliques là những đồ thị con trong đó mọi nút được kết nối với mọi nút khác trong cliques. Phương pháp này có thể tạo ra những cộng đồng chồng chéo lên nhau.
2.3.1.3. So sánh phát hiện cộng đồng và phân nhóm
Theo M.Newman [34], ta có thể lập luận rằng phát hiện cộng đồng tương tự như phân cụm.
Phân cụm là một kỹ thuật học máy trong đó các điểm dữ liệu tương tự được nhóm vào cùng một cụm dựa trên các thuộc tính của chúng. Mặc dù phân cụm có thể được áp dụng cho các mạng, nhưng nó là một lĩnh vực rộng hơn trong học máy không giám sát, liên quan đến nhiều loại thuộc tính.