ĐẠ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
ĐẠ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 C m Tú.
HÀ NỘI - 2011
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 q báu trong
suốt q 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 q 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 q 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
LỜ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 tố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
TĨM TẮT KHĨA LUẬN
Mạng xã hội và bài tố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 tố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 tốn GirvanNewman 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).
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.
MỤ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
3.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
DANH 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 tố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 tố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
DANH 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 tố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
LỜI MỞ ĐẦU
Lý thuyết đồ thị lần đầu tiên được đưa ra bởi Euler vào năm 1736.Từ đó đến
nay người ta thực hiện rất nhiều nghiên cứu về đồ thị và các tính chất của nó.Vào thế
kỷ 20, đồ thị trở nên rất phổ biến vì ứng dụng rộng rãi của nó trong rất nhiều khía cạnh
của đời sống như sinh học, xã hội học, công nghệ thông tin, mạng thơng tin,…Vào
năm 1930 bài tốn phân tích mạng xã hội ra đời và trở thành chủ đề quan trọng nhất
trong xã hội học.Trong đó, việc phân tích và phát hiện cộng đồng trong mạng xã hội là
một nhu cầu bức thiết trong thời điểm hiện nay, vì ứng dụng quan trọng của cộng đồng
trong các 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ị,….
Nộ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 tố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ả
1
CHƯƠNG 1. PHÁT HIỆN CỘNG ĐỒNG TRONG
MẠNG XÃ HỘI
1.1
Giới thiệu về mạng xã hội
1.1.1 Sự phát triển của 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
2
toá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 ln 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 tồ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 tố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 tốn học và tìm cách mơ hình hóa và tính tố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
3
số 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 tồ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.
1.1.2 Khái niệm 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 tốn và phân tích các liên kết trong mạng, người ta
4
thườ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ỉ ở
tồ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à q 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.
5
1.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
6
cá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.
Ngồ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
7
dự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 tố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
tố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 tố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 bn 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.
1.3
Một số ví dụ về mạng xã hội và cấu trúc cộng đồng trong đó
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à
ngồi khn 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
8
biệ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 vng 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 tố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 tố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.
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 [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 vng 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]
10
1.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
tố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.
11
CHƯƠ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 tố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 tố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ị
12
mạ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 tố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 tốn chia có thể coi là
một kiểu thuật tố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 tố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 tốn điển hình nhất trong các thuật tốn chia này là thuật tốn GirvanNewman[3].Thuật tố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 tố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
13
họ thuật tố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 tố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 tố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 tố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 đồ
14
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 đó.
Thuật tố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.Tồn bộ thuật tố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 tốn thuộc
loại truyền thống, thuật tố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 tố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 tốn O (mn) trong mỗi bước lặp, tổng thời gian tính tốn là O (m 2 n) hoặc
xấu nhất có thể là O (n 3 ) [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 tố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:
Q=
1
∑ ( Aij − Pij )δ (Ci , C j )
2m ij
15
Trong đó 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:
Q=
kk
1
∑ ( Aij − 2i mj )δ (Ci , C j )
2m ij
Trong đó ki là bậc của một đỉnh i bất kỳ trong đồ thị.Vì các thành phần của tổng
đều đến từ các cặp đỉnh thuộc cùng một cụm ta có thể viết lại cơng thức như sau:
nc
Q = ∑[
c =1
lc
d
− ( c )2 ]
m 2m
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 q khác biệt.Hệ mơđun ln ln 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 tốn của Tyler và cộng sự nêu ra rằng, thay vì tính tố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
16