Mạng xã hội, cũng như các mạng trong thực tế khác thường có mức độ về mặt tổ chức và tính thứ tự cao.Mức độ của sự phân bố là rất rộng, với phần cuối thường theo một luật dạng lũy thừa,
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trần Trung Hiếu
HỌ THUẬT TOÁN GIRVAN-NEWMAN TRONG PHÁT HIỆN CỘNG ĐỒNG VÀ CÀI ĐẶT THỬ NGHIỆM TRÊN MẠNG XÃ HỘI TRỰC TUYẾN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2011
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trần Trung Hiếu
HỌ THUẬT TOÁN GIRVAN-NEWMAN TRONG PHÁT HIỆN CỘNG ĐỒNG VÀ CÀI ĐẶT THỬ NGHIỆM TRÊN MẠNG XÃ HỘI TRỰC TUYẾN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn : PGS.TS Hà Quang Thụy
Cán bộ đồng hướng dẫn : ThS Nguyễn Cm Tú
HÀ NỘI - 2011
Trang 3
LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành và sâu sắc nhất tới thầy Hà Quang Thụy, người đã trực tiếp hướng dẫn tận tình và đóng góp những ý kiến quý báu trong suốt quá trình em làm khóa luận tốt nghiệp này
Em xin gửi lời cảm ơn tới giáo viên đồng hướng dẫn, cô Nguyễn CNm Tú cũng như các anh chị và các bạn trong phòng thí nghiệm KT-SISLAB, những người đã tận tình giúp đỡ em trong quá trình làm khóa luận
Tiếp theo em xin gửi lời cảm ơn đến đến các thầy cô giáo trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội, đã tận tâm truyền đạt những kiến thức quý báu làm nền tảng để em bước vào đời Em xin gửi lời cảm ơn tới sự hỗ trợ từ đề tài QG.10.38 trong quá trình em làm khóa luận
Cuối cùng, em xin được cảm ơn cha mẹ, bạn bè và người thân, những người đã
ở bên em, khuyến khích và động viên em trong cuộc sống, học tập
Sinh viên Trần Trung Hiếu
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan mô hình phát hiện cộng đồng trong mạng xã hội trực tuyến Twitter và thực nghiệm dựa trên họ thuật toán Girvan-Newman được trình bày trong khóa luận là do tôi thực hiện dưới sự hướng dẫn của PGS TS Hà Quang Thụy và ThS Nguyễn CNm Tú
Tất cả những tham khảo từ các nghiên cứu liên quan đều được nêu nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong khóa luận Trong khóa luận, không có việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ
về tài liệu tham khảo
Hà Nội, ngày 22 tháng 5 năm 2011
Sinh viên
Trần Trung Hiếu
Trang 5TÓM TẮT KHÓA LUẬN
Mạng xã hội và bài toán phát hiện cộng đồng trong mạng xã hội là nội dung nghiên cứu thời sự, được nhiều nhà khoa học thuộc nhiều lĩnh vực như xã hội học, kinh tế, khoa học máy tính, sinh học, … quan tâm nghiên cứu [xx] Các nhà khoa học
đã đề xuất các thuật toán phát hiện cộng đồng trong mạng xã hội, trong đó thuật toán Girvan-Newman được Girvan và Newman đề xuất năm 2002 và các cải tiến của thuật toán này được sử dụng khá phổ biến vì tính hiệu quả của chúng [xxx]
Trong khóa luận này, chúng tôi đi sâu nghiên cứu họ thuật toán Newman cho phát hiện cộng đồng, tập trung vào thuật toán CONGA (Cluster Overlapping Newman Girvan Algorithm) được Steve Gregory đề xuất năm 2007 Chúng tôi đề nghị một mô hình áp dụng thuật toán CONGA phát hiện cộng đồng trong mạng trực tuyến Twitter Hệ thống thực nghiệm phát hiện cộng đồng trong Twitter được xây dựng dựa trên phần mềm CONGA (Steve Gregory, 2010) và giao diện chương trình ứng dụng Twitter API (Yusuke Yamamoto và cộng sự, 2009)
Girvan-Kết quả phân cụm thử nghiệm trên một đồ thị con của Twitter (do chúng tôi xây dựng) được đánh giá theo phân lớp SVM cho độ đo F1 khoảng 81% cho thấy mô hình đặt ra là có tính khả thi
Trang 6MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG 1 PHÁT HIỆN CỘNG ĐỒNG TRONG MẠNG XÃ HỘI 2
1.1 Giới thiệu về mạng xã hội 2
1.1.1 Sự phát triển của mạng xã hội 2
1.1.2 Khái niệm mạng xã hội 4
1.2 Cộng đồng trong mạng xã hội và bài toán khai phá cộng đồng 6
1.3 Một số ví dụ về mạng xã hội và cấu trúc cộng đồng trong đó 8
1.4 Kết luận chương 1: 11
CHƯƠNG 2 HỌ THUẬT TOÁN GIRVAN-NEWMAN VỀ PHÁT HIỆN CỘNG ĐỒNG 12
2.1 Khái quát về các thuật toán phát hiện cộng đồng 12
2.2 Họ thuật toán Girvan-Newman 14
2.2.1 Giới thiệu về thuật toán Girvan-Newman nguyên thủy 14
2.2.2 Họ thuật toán Girvan-Newman 15
2.2.3 Thuật toán CONGA 18
2.2.4 Kết luận chương 2 22
CHƯƠNG 3 MÔ HÌNH PHÁT HIỆN CỘNG ĐỒNG TRONG MẠNG XÃ HỘI TRỰC TUYẾN TWITTER 23
3.1 Sơ bộ về mạng xã hội trực tuyến Twitter 23
3.2 Mô hình phát hiện cộng đồng trên Twitter 23
3.2.1 Mô hình 23
Trang 73.2.2 Phân tích các thành phần trong mô hình 25
3.3 Kết luận chương 3 26
CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ 27
4.1.Mô tả thực nghiệm 27
4.1.1 Mô tả dữ liệu 27
4.1.2 Môi trường thực nghiệm (phần cứng và hệ điều hành) 29
4.1.3 Các công cụ và phần mềm sử dụng 30
4.2 Thực nghiệm và đánh giá 33
4.2.1 Thực nghiệm 33
4.2.2 Đánh giá 34
4.3 Kết luận chương 4 39
KẾT LUẬN VÀ PHƯƠNG HƯỚNG 40
TÀI LIỆU THAM KHẢO 41
Trang 8DANH SÁCH CÁC HÌNH VẼ
Hình 1: Một ví dụ về sociogram 2
Hình 2: Ví dụ về một đồ thị đơn giản với 3 cộng đồng được giới hạn bằng nét gạch nối 6
Hình 3: Mô hình câu lạc bộ karate của Zachary, một trong những mô hình chuNn cho bài toán phát hiện cộng đồng trong mạng xã hội 9
Hình 4: Mô hình biểu diễn mạng lưới cộng tác của các nhà khoa học tại SFI 10
Hình 5: Mạng Lusseau biểu diễn loài cá heo ở Doubtful Sound, New Zealand 10
Hình 6: Ví dụ về phép phân chia một đỉnh trong đồ thị 19
Hình 7: Tìm phép phân chia tối ưu trong trường hợp ở hình 6 21
Hình 8: Mô hình đề xuất giải quyết bài toán phát hiện cộng đồng trên mô hình mạng xã hội trực tuyến Twitter 24
Hình 9: Minh họa file dữ liệu chứa cấu trúc các cạnh của đồ thị 28
Hình 10: Hình vẽ mô tả một phần của đồ thị xây dựng được 29
Hình 11: Định dạng dữ liệu đầu vào của phần mềm CONGA 32
Hình 12: Kết quả chạy thử nghiệm thuật toán CONGA trên đồ thị xây dựng được trên nền command line 34
Hình 13: Biểu đồ mô tả thực nghiệm với 10 phần và kết quả trung bình 38
Trang 9DANH SÁCH CÁC BẢNG
Bảng 1 Môi trường thực nghiệm (phần cứng và hệ điều hành) 30 Bảng 2: Độ đo Jaccard và Rand của 2 thuật toán CONGA và GN áp dụng cho mạng karate ở hình 3 35 Bảng 3: Độ đo vad và overlap cho một số mạng áp dụng thuật toán CONGA 37 Bảng 4: Độ chính xác của phân lớp SVM dựa trên phân chia cộng đồng của thuật toán
CONGA 38
Trang 10Nội dung chính của đề tài là nghiên cứu về bài toán phát hiện cộng đồng trong mạng xã hội, các phương pháp tiếp cận được sử dụng trong thời điểm hiện tại, từ đó đưa ra giải pháp xây dựng mạng xã hội và từ đó cài đặt thử nghiệm thuật toán phát hiện cộng đồng
Khóa luận được chia thành các phần chính như sau:
Chương 1: Phát hiện cộng đồng trong mạng xã hội
Chương 2: Họ thuật toán Girvan-Newman về phát hiện cộng đồng
Chương 3: Mô hình phát hiện cộng đồng trong mạng xã hội trực tuyến Twitter Chương 4: Thực nghiệm và đánh giá kết quả
Trang 11CHƯƠNG 1 PHÁT HIỆN CỘNG ĐỒNG TRONG
MẠNG XÃ HỘI
Jiyang Chen, 2010 [1] cho một giới thiệu khái quát về sự phát triển của quá trình nghiên cứu về mạng xã hội (social network) Nhu cầu phân tích mạng xã hội được bắt đầu từ những năm 1930 và nhanh chóng trở thành chủ đề quan trọng nhất trong xã hội học Những người đi tiên phong trong lĩnh vực này là Jacob Moreno, Kurt Lewin và Fritz Heider J.Moreno xây dựng một mô hình đặt tên là “sociometry” bằng cách hỏi những người xung quanh bạn của họ là ai, và tìm hiểu mối quan hệ của họ với những người khác.Sáng tạo của Moreno là ông đã tạo ra được một “sociogram”, một cách để biểu diễn các tính chất của một cấu hình mang tính xã hội.Khái niệm
“sociogram” sau này cũng được dùng để chỉ biểu diễn đồ thị của các mạng xã hội
Hình 1: Một ví dụ về sociogram [1]
Trong khi đó K.Lewin, trong một nghiên cứu về hành vi của các nhóm, cho rằng các tính chất về mặt cấu trúc của một đơn vị xã hội có thể biểu diễn một cách
Trang 12toán học bằng lý thuyết đồ thị và cấu trúc liên kết.F.Heider, trong các nghiên cứu về nhận thức xã hội, cũng phát minh ra thuyết cân bằng, trong đó ông cho rằng tâm trí con người luôn hướng tới sự cân bằng bằng cách giữ lại những ý tưởng mà không mâu thuẫn với ý tưởng của những người khác, điều này cũng được áp dụng vào trong thái
độ với những người xung quanh mình.Những ý tưởng này của Lewin và Heider sớm được phát triển bởi Frank Harary và Dorwin Cartwright, trong đó nhóm tác giả sử dụng lý thuyêt đồ thị để xây dựng một công cụ khá hữu hiệu trong nghiên cứu mạng
xã hội
Cũng theo [1], trong những năm 1950, các nhà nghiên cứu từ khoa Xã hội và Nhân chủng học của trường đại học Manchester, được dẫn đầu bởi John Barnes, đã bắt đầu đặt trọng tâm nghiên cứu của họ vào các mối quan hệ giữa các đối tượng trong xã hội, thay vì thiết lập các chuNn mực và định mức cho toàn bộ cấu trúc xã hội như trước; và tìm hiểu xem cấu trúc của các mối quan hệ giữa các cá thể trong xã hội có ảnh hưởng như thế nào đến toàn bộ xã hội.Từ đó, thuật ngữ “mạng xã hội”, lần đầu tiên được nhắc đến bởi Barnes năm 1954, đã đánh dấu sự phát triển chính thức của việc phân tích cấu trúc mạng xã hội
Dựa vào các nghiên cứu của Barnes và các cộng sự, vào những năm 1969 và
1970, các nhà nghiên cứu ở đại học Harvard dẫn đầu bởi Harrison C.White tiếp tục nghiên cứu và phát triển các khía cạnh toán học của mạng xã hội và biểu diễn rất nhiều khái niệm quan trọng trong xã hội học, ví dụ như khái niệm “vai trò xã hội”, sang công thức toán học và tìm cách mô hình hóa và tính toán chúng Ý tưởng chính của nghiên
cứu là việc phát hiện cấu trúc của các mạng xã hội không nên dựa vào các hạng mục
nổi tiếng và đã được định nghĩa trước đó, mà phải dựa vào mối quan hệ giữa các cá thể trong mạng và cách thức mà các mối quan hệ này cấu tạo thành mạng như thế nào.Trong một nghiên cứu sau đó, Mark Granovetter đề ra giả thiết liên kết yếu, với nội dung chính là “nếu A có liên kết mạnh tới B và C thì rất có khả năng giữa B và C tồn tại một liên kết”.Giả thiết này của Granovetter được áp dụng tương đối hiệu quả trong một số nghiên cứu sau này
Trong các ý tưởng được phát triển sau này bởi các học trò của White, lý thuyết
về “hiện tượng thế giới nhỏ” của Milgram phát biểu năm 1967 gây được sự quan tâm mạnh mẽ nhất của các nhà khoa học.Trong đó Milgram thiết lập một thí nghiệm để tìm hiểu xem qua bao nhiêu bước, hoặc liên kết là cần thiết để 2 người bất kỳ trên thế giới
có thể liên kết được với nhau.Để biết được điều này, Milgram chọn một số người ở các thành phố Omaha, Nebraska and Wichita, Kansas của Mỹ làm điểm khởi đầu và một
Trang 13số người ở Boston, Masachusett làm điểm kết thúc.Sau đó ông đưa cho những người ở điểm khởi đầu một bức thư có ghi địa chỉ là những người ở điểm kết thúc, và yêu cầu
họ chuyển bức thư này trực tiếp cho người nhận nếu họ có quen biết nhau, hoặc đưa bức thư này cho một người bạn của mình chuyển hộ, mà người bạn đó có khả năng là quen với người nhận.Kết quả là 64 trong 296 lá thư đến được tay người nhận, trong đó
số bước chuyển trung bình nằm trong khoảng 5.5 đến 6.Từ đó ông kết luận tất cả mọi người ở Mỹ được liên kết với nhau với trung bình là 6 người bạn Mặc dù thí nghiệm của ông không toàn diện và đầy đủ song giả thuyết của ôngcó giá trị thực tiễn rất lớn Trên thực tế, người ta đã tìm hiểu được nhiều mạng xã hội thỏa mãn giả thuyết của Milgram, bao gồm các mạng cộng tác khoa học và đồ thị các cuộc gọi điện thoại
Tóm lại phân tích mạng xã hội được sinh ra từ các nhu cầu chung của xã hội học, nhân chủng học, toán học, sinh học và kinh tế học.Ngày nay phân tích mạng xã hội còn được áp dụng trong nhiều lĩnh vực như kinh tế, tài chính…Tuy nhiên trong thời đại bùng nổ thông tin hiện nay với số lượng và kích thước các mạng xã hội tăng lên không ngừng, các vấn đề về quản lý thông tin xã hội trở nên khó khăn hơn Do
đó, cần thiết phải áp dụng các kỹ thuật khoa học máy tính để phân tích chính xác và hiệu quả hơn các cấu trúc xã hội trên các mạng xã hội
Mạng xã hội là một cấu trúc mang tính xã hội được cấu tạo từ các nút và các cung, trong đó các nút được liên kết với nhau bởi một hoặc nhiều cung, thể hiện kiểu mối quan hệ cụ thể [1] Mỗi nút, còn được gọi là tác nhân (actor), biểu diễn cho một đối tượng trong xã hội, có thể là một người, một tài liệu, một tổ chức, một quốc gia,…Mối liên hệ giữa các nút được biểu diễn bởi một liên kết giữa các nút đó.Liên kết này có thể là mối quan hệ bạn bè, họ hàng, đồng nghiệp,…, cũng có thể là các trao đổi tài chính, các giao dịch, số liệu,…Các liên kết này có thể là liên kết vô hướng (hay còn gọi là liên kết đối xứng ) , trong đó mối quan hệ giữa 2 nút A và B là mối quan hệ qua lại, ví dụ A là bạn B, và B cũng là bạn A, hay A và B sống cùng chung trong một căn hộ,…Các liên kết này cũng có thể là liên kết có hướng, ví dụ A thích B, nhưng B chưa chắc đã thích A, hay là A nợ tiền của B….Mặt khác, các liên kết còn có thể được đánh trọng số, trọng số này biểu diễn độ mạnh của liên kết đó giữa hai nút
Để biểu diễn mạng xã hội, các nhà phân tích mạng xã hội sử dụng 2 cấu trúc, đó
là đồ thị và ma trận kề.Để tính toán và phân tích các liên kết trong mạng, người ta
Trang 14thường ưu tiên áp dụng lý thuyết đồ thị.Thật vậy, đồ thị là một trong những công cụ rất hữu hiệu để thể hiện các thông tin về mạng xã hội.Trong biểu diễn đồ thị của mạng xã hội, các đỉnh được dùng để biểu diễn các nút và các cạnh dùng để biểu diễn liên kết giữa các nút.Các cạnh trong đồ thị có thể vô hướng hay có hướng, cũng có thể được đánh trọng số tùy thuộc vào nhu cầu biểu diễn liên kết là vô hướng hay có hướng, trọng số như thế nào
Mạng xã hội, cũng như các mạng trong thực tế khác thường có mức độ về mặt
tổ chức và tính thứ tự cao.Mức độ của sự phân bố là rất rộng, với phần cuối thường theo một luật dạng lũy thừa, vì vậy, nhiều đỉnh ở mức thấp cùng tồn tại với một số đỉnh ở mức cao.Hơn thế nữa, sự phân bố của các cạnh là không đồng đều không chỉ ở toàn thể mà còn ở mức cục bộ, với mức độ tập trung cao của các cạnh trong một số nhóm các đỉnh đặc biệt, và giữa các nhóm đó số lượng cạnh tập trung là thấp.Trong biểu diễn đồ thị của các mạng xã hội, một số nhóm các đỉnh có liên kết chặt chẽ với nhau thành các cụm, và giữa các cụm đó được nối với nhau chỉ bằng một vài cạnh
khác.Tính chất đó của các mạng trên thực tế được gọi là tính cộng đồng (community)
hay còn gọi là sự phân cụm, như trong [2] Một số ví dụ về tính công đồng như các trang web về một chủ đề có thể được kết nối hoặc kết nối tới các trang web khác cùng với chủ đề tương tự, hay các nhà khoa học cùng viết chung một bài báo hoặc cuốn sách, các nhân viên cùng thuộc một phòng ban trong một công ty,…
Tính cộng đồng được coi là một tính chất quan trọng nhất của mạng xã hội [2]
Sự phát hiện các cộng đồng trong mạng xã hội này là mục tiêu cơ bản của nhiều nghiên cứu về mạng xã hội, ví dụ như xếp hạng thực thể, phân lớp,…Người ta đặt ra khái niệm “cộng đồng” trong mạng xã hội để chỉ ra các nhóm như vậy.Từ đó người ta định nghĩa khái niệm “khai phá cộng đồng”, là quá trình nghiên cứu và phân tích các mối quan hệ trong một mạng xã hội, nhằm mục tiêu tìm ra các cộng đồng trong mạng
xã hội, và trích xuất được các thành phần Nn trong các cộng đồng đó.Khai phá cộng đồng đã dành được sự chú ý của nhiều nhà khoa học trong nhiều lĩnh vực, đặc biệt gần đây là trong lĩnh vực Khai phá dữ liệu
Trang 151.2 Cộng đồng trong mạng xã hội và bài toán khai phá cộng
đồng
Khái niệm cộng đồng, được định nghĩa là tập các thực thể có những tính chất tương tự nhau và/hoặc cùng đóng một vai trò trong một mạng xã hội Hinh 2 dưới đây chỉ ra một ví dụ về đồ thị với cấu trúc cộng đồng trong đó
Hình 2: Ví dụ về một đồ thị đơn giản với 3 cộng đồng được giới hạn bằng nét gạch nối
[2]
Trong xã hội hiện nay xuất hiện nhiều nhóm hoặc tổ chức với kích cỡ khác nhau, ví dụ như gia đình, nhóm các bạn bè hoặc đồng nghiệp, thành phố, quốc gia…Sự khuếch tán của Internet ngày nay cũng sinh ra nhiều nhóm ảo trên Web, hay còn được gọi là các cộng đồng trực tuyến.Các cộng đồng xã hội đã được nghiên cứu trong một thời gian rất dài và thường xuyên xuất hiện trong nhiều các hệ thống mạng trong sinh học, khoa học máy tính, công nghệ, chính trị, kinh tế,…ví dụ như : các nhóm protein với các chức năng tương tự nhau trong tế bào trong mạng tương tác protein, các nhóm trang web thảo luận về cùng một chủ đề hoặc các chủ đề tương tự nhau trên World Wide Web,…
Với sự phát triển nhanh chóng của các cộng đồng trong thời điểm hiện tại và nhu cầu cần thiết về tìm hiểu tính cộng đồng trong các mạng xã hội, bài toán phát hiện cộng đồng trở thành một bài toán phổ biến trong các nghiên cứu về mạng xã hội.Mục tiêu của bài toán là từ các mạng xã hội cho trước, phát hiện được các cấu trúc cộng đồng nằm trong đó và tìm hiểu về mối liên hệ bên trong các cộng đồng cũng như giữa
Trang 16các cộng đồng với nhau, mối liên hệ đó có ảnh hưởng thế nào đến cấu trúc của toàn mạng xã hội
Việc phát hiện cộng đồng có rất nhiều ứng dụng cụ thể.Ví dụ như phân cụm các Web client có sở thích tương tự nhau và gần nhau về mặt địa lý có thể cải thiện hiệu suất của việc cung cấp dịch vụ trên World Wide Web, trong đó mỗi cụm khách hàng được phục vụ bởi một server chuyên dụng.Một ứng dụng khác đó là việc xác định các cụm khách hàng có chung sở thích trong một mạng thể hiện quan hệ giữa người mua
và sản phNm trên một trang web bán hàng trực tuyến (ví dụ www.amazon.com ) có thể giúp xây dựng hệ thống tư vấn mua bán một cách hiệu quả.Ngoài ra, sự phân cụm trong các đồ thị cỡ lớn có thể được sử dụng trong việc lưu trữ các dữ liệu của đồ thị một cách thuận tiện,.Một ứng dụng khác nữa là nhóm thành cụm các nút trong mạng lưới giao thông có thể giúp ích trong việc xây dựng các bảng định tuyến nhỏ gọn giúp ích trong việc tham gia giao thông thuận tiện
Ngoài ra, việc phát hiện cộng đồng có ý nghĩa rất quan trọng vì một lý do khác.Việc xác định các môđun và ranh giới của chúng cho phép ta phân lớp các đỉnh dựa trên cấu trúc vị trí của chúng trong môđun.Từ đó, các đỉnh ở vị trí trung tâm trong môđun của chúng (có nhiều kết nối cạnh đến các đỉnh khác trong môđun) có thể đóng vai trò quan trọng trong việc điều khiển và giữ ổn định trong cụm.Mặt khác, các đỉnh ở vùng biên có thể giữ vai trò quan trọng trong việc dẫn dắt mối quan hệ và giao lưu giữa các cụm khác nhau trong mạng.Các phân lớp như thế mang một ý nghĩa nhất định trong việc nghiên cứu mạng xã hội.Cuối cùng, ta có thể nghiên cứu về đồ thị rút gọn, trong đó các đỉnh là các cụm và các cạnh là các liên kết giữa các cụm trong đồ thị ban đầu (nếu có) từ đó ta thu được một đồ thị biểu diễn mối quan hệ của các môđun trong mạng
Một khía cạnh quan trọng khác nữa trong cấu trúc cộng đồng là cách tổ chức phân cấp, cách tổ chức này có thể nhìn thấy trong hầu hết các mạng xã hội trong thực
tế Một mạng trong thực tế thường bao gồm các cộng đồng mà trong đó mỗi cộng đồng lại được cấu tạo từ một tập các cộng đồng khác, các cộng đồng con đó lại được cấu tạo bằng một tập các cộng đồng con khác nữa,…Một ví dụ dễ thấy nhất cho điều này là cơ thể con người được cấu tạo bởi các cơ quan, mỗi cơ quan được cấu tạo bởi các mô tế bào, các mô tế bào lại được cấu tạo bởi các tế bào, …Herbert A.Simon đã nhấn mạnh vai trò quan trọng của hệ thống phân cấp và sự tiến hóa của các hệ thống phức tạp [2].Sự sinh ra và tiến hóa của các hệ thống tổ chức bởi các hệ thống con ổn định là nhanh chóng hơn rất nhiều so với các hệ thống không cấu trúc, bởi vì ta có thể xây
Trang 17dựng các phần nhỏ trước và sau đó sử dụng chúng để xây dựng các thành phần lớn hơn
và cứ thế cho đến khi toàn bộ hệ thống được xây dựng.Phương pháp này khó có thể xảy ra lỗi trong quá trình xây dựng hệ thống
Việc xác đinh cộng đồng trong đồ thị cũng là một chủ đề phổ biến trong khoa học máy tính, trong đó có 2 lĩnh vực điển hình là học máy và khai phá quan điểm.Ví
dụ trong tính toán song song, việc xác định phương pháp giao các công việc cho các
bộ xử lý sao cho giảm thiểu tối đa sự liên lạc giữa chúng và tối đa hóa hiệu suất tính toán là rất quan trọng.Điều này có thể thực hiện được bằng cách chia các cụm máy tính thành các nhóm có số lượng bộ xử lý gần tương tự nhau, như vậy số lượng kết nối vật
lý giữa các vi xử lý của các nhóm khác nhau là tối thiểu.Tên gọi chính thức của vấn đề này là “phân vùng đồ thị”,được đề xuất lần đầu tiên vào năm 1970
Riêng trong lĩnh vực khai phá dữ liệu, bài toán khai phá cộng đồng trong mạng
xã hội cũng có một ứng dụng tương đối rộng rãi [1] Khai phá cộng đồng ứng dụng trực tiếp vào các bài toán chính của khai phá dữ liệu như nhận dạng thực thể, phân cụm, xếp hạng thực thể hay phân lớp thực thể, dự đoán các liên kết hay phát hiện các
đồ thị con…, trong đó các nhà khoa học quan tâm nhất đến phân cụm thực thể và xếp hạng các thực thể có liên quan đến nhau trong các cụm vừa được phân.Các bài toán này mang lại các lợi ích trực tiếp trong thực tế như trong các máy tìm kiếm, các dịch
vụ phục vụ khách hàng, hay các trang web buôn bán trực tuyến
Tóm lại, cộng đồng trong các mạng xã hội có một vai trò quan trọng trong nhiều lĩnh vực của đời sống xã hội, như khoa học máy tính, sinh học, kinh tế, chính trị,…Điều này dẫn đến nhu cầu bức thiết của bài toán phát hiện cộng đồng trong mạng
xã hội vì các lý do đã được nêu ở trên
Trong phần này, khóa luận trình bày một số ví dụ điển hình về các mạng xã hội trong thực tế [2] Các mạng xã hội này được biểu diễn dưới dạng đồ thị và có chứa các cấu trúc cộng đồng bên trong
Ví dụ đầu tiên là mô hình câu lạc bộ karate được Zachary đề xuất vào năm
1977 Đây là một trong những mô hình mạng xã hội thường được sử dụng như một mô hình chuNn để đánh giá và thử nghiệm các thuật toán phát hiện cộng đồng.Đồ thị bao gồm 34 đỉnh, đại diện cho các thành viên của một câu lạc bộ karate ở Mỹ, được quan sát trong chu kỳ 3 năm, trong đó các cạnh biểu diễn sự tương tác giữa các cá nhân mà ngoài khuôn khổ hoạt động của câu lạc bộ.Câu lạc bộ được phân thành hai phần riêng
Trang 18biệt, một phần gồm những người ủng hộ người hướng dẫn của câu lạc bộ, một phần gồm những người ủng hộ chủ tịch của câu lạc bộ đó, được biểu thị tương ứng bằng các hình vuông và tròn.Đỉnh số 34 đại diện cho chủ tịch câu lạc bộ karate, trong khi đỉnh
số 1 đại diện cho người hướng dẫn
Hình 3: Mô hình câu lạc bộ karate của Zachary, một trong những mô hình chuNn cho bài toán phát hiện cộng đồng trong mạng xã hội [2]
Ví dụ tiếp theo miêu tả một thành phần có kích thước lớn nhất trong mạng lưới cộng sự của các nhà khoa học làm việc tại viện Santa Fe (SFI).Có tất cả 118 đỉnh, biểu diễn cho các nhà khoa học ở viện và các cộng sự của họ.Một cạnh được đặt giữa 2 đỉnh nếu hai nhà khoa học được đại diện bởi 2 đỉnh đó có viết chung một bài báo.Ở mạng này ta quan sát được rất nhiều clique,mỗi clique biểu hiện cho các tất cả tác giả của một bài báo.Mặt khác ta cũng thấy tồn tại chỉ một vài kết nối giữa hầu hết các cộng đồng trong mạng trên.Các đỉnh cùng màu là kết quả phân tích và phát hiện cộng đồng sử dụng thuật toán Girvan và Newman, kết quả này cũng gần tương tự so với sự phân chia theo các lĩnh vực nghiên cứu của viện
Trang 19Hình 4: Mô hình biểu diễn mạng lưới cộng tác của các nhà khoa học tại SFI [2]
Ví dụ cuối cùng ta xét đến ở đây đó là mạng biểu diễn loài cá heo sống ở Doubtful Sound, New Zealand được phân tích bởi Lusseau năm 2003.Có tất cả 62 đỉnh
và một cạnh trong đồ thị nối giữa 2 đỉnh biểu diễn cho 2 con cá heo xuất hiện thường xuyên với nhau hơn so với mức độ bình thường dự kiến.Các con cá heo chia thành 2 nhóm sau khi một con cá heo bỏ đi khỏi nơi ở hiện tại một khoảng thời gian ( được biểu diễn bởi hình vuông và hình tròn trong hình vẽ ).Mỗi nhóm trong đồ thị là tương đối gắn kết, với một vài clique trong đó và chỉ có 6 cạnh nối giữa các nhóm khác nhau.Mạng nói trên giống như mạng của Zachary cũng thường được sử dụng để cài đặt
và đánh giá các thuật toán phát hiện cộng đồng trong mạng xã hội
Hình 5: Mạng Lusseau biểu diễn loài cá heo ở Doubtful Sound, New Zealand[2]
Trang 201.4 Kết luận chương 1
Chương 1 của bài luận đã đưa ra định nghĩa về mạng xã hội và cộng đồng trong mạng xã hội.Tiếp theo đó, chương 1 cũng trình bày vai trò và nhu cầu bức thiết của bài toán phát hiện cộng đồng trong mạng xã hội trong các lĩnh vực của đời sống và một số
ví dụ về các mạng xã hội với cấu trúc cộng đồng trong thực tế.Ở chương tiếp theo, khóa luận sẽ trình bày các phương pháp tiếp cận phổ biến cho bài toán phát hiện cộng đồng, đặc biệt là họ thuật toán Girvan-Newman trong phát hiện cộng đồng
Trang 21CHƯƠNG 2 HỌ THUẬT TOÁN GIRVAN-NEWMAN
VỀ PHÁT HIỆN CỘNG ĐỒNG
2.1 Khái quát về các thuật toán phát hiện cộng đồng
Santo Fortunato, 2010 [2] đã tổng hợp các phương pháp/thuật toán phát hiện cộng đồng trong mạng xã hội
Theo tác giả, các nhóm phương pháp điển hình là:
− 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
− Các phương pháp dựa trên suy luận thống kê
− Các phương pháp phát hiện chồng chéo cộng đồng
− 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ác phương pháp phát hiện cộng đồng động
Các phương pháp truyền thống bao gồm 4 phương pháp, đó là phân vùng đồ thị, phân cụm phân cấp, phân cụm theo vùng và phân cụm theo phổ.Nội dung tóm lược của từng phương pháp như sau:
− Phương pháp phân vùng đồ thị có mục tiêu là tìm được một phép chia đồ thị thành g nhóm với kích thước xác định trước, sao cho số lượng các cạnh nằm giữa các nhóm là tối thiểu.Trong phương pháp này, việc xác định số cụm được phân chia thành, cũng như kích thước của mỗi cụm đó là cần thiết.Phương pháp phân vùng đồ thị được áp dụng chủ yếu trong tính toán song song, phân vùng mạch và một số các giải thuật nối tiếp
− Phương pháp phân cụm phân cấp thường được sử dụng khi mạng xã hội có cấu trúc phân cấp ( tức một mạng chia làm nhiều cộng đồng con, mỗi cộng đồng con chia ra làm nhiều cộng đồng con khác, cứ như vậy …)Ý tưởng cơ bản của thuật toán phân cụm phân cấp là xác định được sự tương tự của các đỉnh trong đồ thị
Trang 22mạng bằng một độ đo tương tự, sau đó các đỉnh có độ tương tự cao được xếp vào cùng một nhóm.Phương pháp phân cụm phân cấp được áp dụng phổ biến trong phân tích mạng xã hội, sinh học, kỹ thuật, tiếp thị,…
− Phương pháp phân cụm theo vùng dựa trên ý tưởng như sau: định nghĩa trước một số k là số lượng các cụm, ta biểu diễn đồ thị trong một không gian metric sao cho mỗi đỉnh của đồ thị được biểu diễn bằng một điểm trong không gian đó.Sau đó người ta tính toán khoảng cách giữa các điểm trong không gian và lấy đó làm độ đo
sự khác nhau giữa các đỉnh trong đồ thị.Mục tiêu của phương pháp là phân tách không gian trên thành k cụm các điểm sao cho một hàm chi phí dựa trên khoảng cách của các điểm trong cụm đến tâm của cụm là lớn nhất / nhỏ nhất.Phương pháp phân cụm theo vùng được áp dụng để xác định các cụm trong các tập điểm dữ liệu
− Phương pháp phân cụm theo phổ bao gồm tất cả các phương pháp và kỹ thuật chia tập đối tượng thành các cụm sử dụng vector riêng của ma trận được định nghĩa
từ tập đối tượng đó.Đối tượng ở đây có thể được hiểu là các đỉnh của đồ thị, hoặc
có thể là các điểm của không gian metric nào đó.Phương pháp phân cụm bao gồm việc chuyển hóa các tập đối tượng thành các điểm trong một không gian, mà các điểm này là các thành phần của vector đặc trưng, sau đó các điểm được phân cụm dựa trên các phương pháp chuNn, ví dụ phương pháp phân cụm k-mean
Các phương pháp áp dụng thuật toán phân chia đều dựa trên mục đích cơ bản
là tìm ra được các cạnh nối giữa các đỉnh của các cộng đồng khác nhau, sau đó loại bỏ chúng khỏi đồ thị.Như vậy các cụm trong đồ thị sẽ bị ngắt kết nối với nhau, từ đó ta có thể phân đồ thị thành các cộng đồng.Điểm mấu chốt của phương pháp này là xác định được tính chất nào đó của các cạnh nối các cộng đồng trong đồ thị, từ đó có thế phát hiện và loại bỏ chúng ra khỏi đồ thị.Phương pháp áp dụng thuật toán chia có thể coi là một kiểu thuật toán phân cụm phân cấp, chỉ khác là thay vì tìm các cạnh có độ tương đồng cao để ghép các đỉnh của các cạnh đó thành cộng đồng, thì ở đây người ta tìm cách loại bỏ các cạnh nối giữa các cộng đồng để thu được từng cộng đồng riêng biệt.Vì vậy kết quả của các thuật toán chia có thể biểu diễn dưới dạng các mô hình phân cấp dưới dạng cây
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 Newman[3].Thuật toán này mang tính phổ biến cao, vì nó có ý nghĩa về mặt lịch sử (đánh dấu bước khởi đầu của một thời kỳ mới trong sự phát triển của phát hiện cộng đồng) cũng như về mặt phương pháp Do có nhiều lợi thế, thuật toán Girvan-Newman được sử dụng rộng rãi và phát triển thành nhiều thuật toán cải tiến sau này, tạo thành
Trang 23Girvan-họ thuật toán Girvan-Newman Chính vì lý do đó, khóa luận này tập trung nghiên cứu
họ các thuật toán GN để áp dụng vào việc phát hiện cộng đồng trong mạng xã hội trực tuyến Twitter
Nội dung điển hình của các phương pháp còn lại được trình bày chi tiết trong [2]
2.2 Họ thuật toán Girvan-Newman
2.2.1 Giới thiệu về thuật toán Girvan-Newman nguyên thủy
Các yêu cầu cơ bản cho một thuật toán phát hiện cộng đồng nói chung đó là nó phải chỉ ra một phép phân chia tự nhiên giữa các đỉnh mà không đòi hỏi người ta phải xác định số cộng đồng nên có là bao nhiêu, hay một giới hạn trong kích thước của các cộng đồng, và cũng không cần phải chỉ ra các đường đi rõ ràng như trong thuật toán phân cụm phân cấp thông thường ở phần trên.Girvan và Newman đã đề xuất một phương pháp đáp ứng được các mục tiêu này trong đó có 3 tính chất như sau [3]:
− Đây là một phương pháp chia nhỏ, trong đó các cạnh được loại bỏ dần dần
ra khỏi đồ thị, trái ngược với phương pháp phân cụm phân cấp thông thường
− Các cạnh cần loại bỏ trong mỗi bước được xác định qua một độ đo trung gian
− Sau khi loại bỏ mỗi cạnh, độ đo trung gian của các cạnh còn lại được tính lại dựa vào cạnh bị loại bỏ đó
Ý tưởng đằng sau thuật toán này là tìm và loại bỏ các cạnh nối các cộng đồng trong mạng, các cạnh đóng vai trò các nút giao thông trong mạng đó.Một đường đi giữa 2 đỉnh trong mạng thuộc 2 cộng đồng khác nhau nhất thiết phải đi qua ít nhất một trong số các cạnh như vậy, vì thế nếu ta 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ạnh nào trong đồ thị được các đường đi này đi qua nhiều nhất, ta có thể loại bỏ nó để phân chia mạng thành các cộng đồng riêng biệt
Để tính toán cạnh nào có lưu lượng giao thông nhiều nhất trong mạng theo ý tưởng mô tả ở trên, Girvan và Newman sử dụng độ đo trung gian giữa các cạnh, một
độ đo được phát triển lên từ khái niệm độ đo trung gian giữa các đỉnh rất phổ biến do Freeman đề xuất.Độ đo trung gian giữa các cạnh được định nghĩa là tổng số đường đi trắc địa giữa các cặp đỉnh trong toàn bộ đồ thị mà đi qua cạnh được xét tới.Một kiểu đường đi trắc địa được sử dụng đó là “đường đi ngắn nhất giữa hai đỉnh”.Với một đồ
Trang 24thị 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 đó
Thuật toán Girvan và Newman khá đơn giản, nội dung chính của nó chỉ là xác định cạnh có độ trung gian lớn nhất và loại bỏ nó Sau đó độ trung gian được tính lại
và lại thực hiện loại bỏ dần các cạnh tiếp tục như vậy cho đến khi không còn cạnh nào trong đồ thị.Nếu trong trường hợp có 2 cạnh với độ trung gian như nhau, ta có thể loại
bỏ một cạnh bất kỳ, hoặc loại bỏ cả 2 cạnh cùng một lúc.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 và Newman đưa lại kết quả tương đối tốt trong nhiều trường
hợp, tuy nhiên nó có hai nhược điểm chính.Thứ nhất, cũng như các thuật toán thuộc
loại truyền thống, thuật toán Girvan-Newman không xác định trước được số cộng đồng mà mạng phân chia ra sẽ là bao nhiêu, và với rất nhiều phép phân vùng như vậy,
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 Thứ hai,
thuật toán có độ phức tạp thời gian khác cao với tổng cộng m cạnh cần loại bỏ, và với thời gian tính toán O (mn) trong mỗi bước lặp, tổng thời gian tính toán là ( 2 )
n m
O hoặc xấu nhất có thể là ( 3 )
n
O [3] Hơn thế nữa, thuật toán Girvan và Newman không giải quyết được sự chồng chéo cộng đồng, tức là một đỉnh có thể thuộc vào nhiều cộng đồng khác nhau trong mạng
2.2.2 Họ thuật toán Girvan-Newman
Với những nhược điểm như trên của thuật toán Girvan-Newman, các nhà khoa học đã tìm cách cải tiến nó để thuật toán chạy tốt hơn nữa
S.Fortunato [2] đã trình bày một cách tổng hợp về một số cải tiến quan trọng sau đây đối với thuật toán Girvan-Newman:
− Năm 2004, Newman và Girvan đưa ra một phương pháp để chọn phép phân vùng tốt nhất, đó là chọn lựa phân vùng với giá trị mô đun hóa lớn nhất.Giá trị mô đun hóa là một hàm đánh giá chất lượng của phân vùng được Newman và Girvan đề xuất,
có thể được biểu diễn bằng công thức:
=
ij
j i ij
ij P C C A
m
Q ( ) ( , ) 2
Trang 25Trong đó A là ma trận đỉnh kề, m là tổng số cạnh của đồ thị, Pij biểu diễn số lượng cạnh có thể giữa 2 đỉnh i và j trong mô hình rỗng.Hàm δ có giá trị 1 nếu i và j thuộc cùng một cộng đồng và bằng 0 nếu ngược lại.Tuy nhiên, người ta nhận thấy rằng mô hình rỗng trong công thức trên không phù hợp lắm trong các mạng thực tế, vì phân phối bậc của nó là phân phối Poisson khác nhiều so với các phân phối trong mạng thực tế.Người ta thường ưa chuộng hơn các mô hình rỗng với phân phối bậc tương đương với phân phối của đồ thị ban đầu.Một cách chặt chẽ hơn, mô hình rỗng chuNn của hệ môđun yêu cầu chuỗi bậc giống với chuỗi bậc của đồ thị ban đầu.Biểu thức của hệ môđun này như sau:
=
ij
j i j i
ij C C m
k k A m
2
( 2
c c
m
d m
l Q
1
2 ] ) 2 ( [Trong đó nc là số lượng cụm, lc là tổng số cạnh nối các đỉnh trong môđun c và dc là tổng các bậc của các đỉnh thuộc c
Dựa vào công thức trên ta thấy một đồ thị con là môđun nếu đóng góp tương ứng của nó vào hệ môđun trong tổng là dương.Số lượng cạnh bên trong của cụm càng vượt quá con số dự kiến thì cộng đồng càng được định nghĩa tốt.Vì vậy giá trị hệ môđun càng lớn thì phân vùng càng tốt.Giá trị hệ môđun tối đa của đồ thị nói chung là tăng khi kích thước đồ thị và số lượng cụm được phân biệt rõ ràng tăng.Vì thế hệ môđun không dùng để so sánh chất lượng của các cấu trúc cộng đồng của các đồ thị có kích thước quá khác biệt.Hệ môđun luôn luôn nhỏ hơn 1 và có thể đạt giá trị âm trong trường hợp đồ thị chia ra mỗi đỉnh là một cộng đồng Hệ môđun đạt giá trị 0 khi cả đồ thị là một cộng đồng duy nhất
− Để cải tiến tốc độ của thuật toán Girvan-Newman, Tyler và cộng sự vào năm
2003 đã đưa ra một phương pháp mặc dù phương pháp này dẫn tới sự giảm độ chính xác.Thuật toán của Tyler và cộng sự nêu ra rằng, thay vì tính toán độ trung gian của các cạnh bằng cách tính tất cả số đường đi ngắn nhất qua một đỉnh i bất kỳ đến các