ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG
DƯƠNG THỊ TÌNH
NGHIÊN CỨU ĐỘ ĐO TRUNG GIAN VÀ THUẬT TOÁN
PHÁT HIỆN CỘNG ĐỒNG TRÊN MẠNG XÃ HỘI
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2020
LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả nghiên cứu trong luận văn này là do tự
bản thân tôi tìm hiểu dưới sự hướng dẫn của PGS. TS. Đoàn Văn Ban. Các
chương trình thực nghiệm do chính bản thân tôi lập trình, các kết quả là hoàn
toàn trung thực. Các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn
gốc.
TÁC GIẢ LUẬN VĂN
Dương Thị Tình
LỜI CẢM ƠN
Để hoàn thành được luận văn này, tôi đã nhận được rất nhiều sự quan
tâm, giúp đỡ và góp ý quý báu của các cá nhân và tập thể.
Trước hết tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS. Đoàn
Văn Ban đã quan tâm, định hướng và đưa ra những góp ý chỉnh sửa quý báu
cho tôi trong quá trình làm luận văn tốt nghiệp.
Đồng thời tôi cũng xin chân thành cảm ơn sự góp ý chân thành của các
thầy, cô giáo Viện Công nghệ thông tin, các thầy, cô giáo Trường Đại học Công
nghệ thông tin và Truyền thông Thái Nguyên đã tạo mọi điều kiện thuận lợi
cho tôi hoàn thành đề tài này.
Dù đã rất cố gắng nhưng chắc chắn sẽ không tránh khỏi những thiếu sót
vì vậy rất mong nhận được sự góp ý của các thầy, cô và các bạn để luận văn
này được hoàn thiện hơn.
Tôi xin chân thành cảm ơn!
Thái Nguyên, tháng 08 năm 2020
Dương Thị Tình
MỤC LỤC
Trang
MỞ ĐẦU .......................................................................................................... 1 CHƯƠNG 1 MẠNG XÃ HỘI VÀ CÁC ĐỘ ĐO TRÊN ĐỒ THỊ MẠNG XÃ HỘI ............................................................................................................ 4 1.1. MẠNG XÃ HỘI ......................................................................................... 4 1.2. CẤU TRÚC CỘNG ĐỒNG MẠNG XÃ HỘI ...................................................... 8 1.3. CÁC ĐỘ ĐO TRÊN ĐỒ THỊ MẠNG XÃ HỘI .................................................. 11 1.3.1. Hệ số cố kết của mạng .................................................................. 12 1.3.2. Hệ số trung tâm vector đặc trưng .................................................. 13 1.3.3. Độ đo trung tâm của đỉnh .............................................................. 14 1.3.4. Hệ số trung gian của đỉnh ............................................................. 18 1.3.5. Độ đo trung gian của cạnh ............................................................ 20 1.4. THUẬT TOÁN TÍNH ĐỘ TRUNG GIAN ....................................................... 22 1.5. KẾT LUẬN CHƯƠNG ............................................................................... 26
CHƯƠNG 2 THUẬT TOÁN PHÁT HIỆN CỘNG ĐỒNG MẠNG XÃ HỘI ......................................................................................................................... 27 2.1. BÀI TOÁN PHÁT HIỆN CỘNG ĐỒNG TRÊN ĐỒ THỊ MẠNG XÃ HỘI ............... 27 2.2. THUẬT TOÁN PHÂN CỤM PHÂN CẤP ........................................................ 28 2.3. THUẬT TOÁN PHÁT HIỆN CỘNG ĐỒNG DỰA TRÊN TỐI ƯU HOÁ ĐỘ ĐO ĐƠN THỂ ............................................................................................................... 30 2.4. THUẬT TOÁN PHÁT HIỆN CỘNG ĐỒNG DỰA VÀO ĐỘ ĐO TRUNG GIAN ...... 30 2.5. PHÁT HIỆN CÁC CỘNG ĐỒNG GỐI NHAU .................................................. 33 2.5.1. Phát hiện các k-cliques trong mạng xã hội ................................... 34 2.5.2. Thuật toán phát hiện k-clique........................................................ 36 2.5.3. Thuật toán EAGLE ....................................................................... 38 2.5.4. Đánh giá thuật toán ....................................................................... 43 2.6. KẾT LUẬN CHƯƠNG 2............................................................................. 44
CHƯƠNG 3 ỨNG DỤNG THUẬT TOÁN GIRVAN-NEWMAN TRONG PHÁT HIỆN CỘNG ĐỒNG MẠNG XÃ HỘI .......................................... 45
3.1. MÔ TẢ BÀI TOÁN PHÁT HIỆN CỘNG ĐỒNG MẠNG XÃ HỘI ........................ 45 3.2. CHƯƠNG TRÌNH PHÁT HIỆN CỘNG ĐỒNG MẠNG XÃ HỘI .......................... 45 3.2.1. Bộ cơ sở dữ liệu ............................................................................ 45 3.2.2. Môi trường thử nghiệm ................................................................. 47 3.2.3. Thử nghiệm và đánh giá ................................................................ 49 3.3. KẾT LUẬN CHƯƠNG 3............................................................................. 54
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 55 TÀI LIỆU THAM KHẢO ............................................................................ 56
DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Mạng xã hội Facebook ...................................................................... 7
Hình 1.2. Mạng xã hội Zing me ........................................................................ 7
Hình 1.3. Mô hình mạng lưới cộng tác của các nhà khoa học làm việc tại SFI 9
Hình 1.4. Đồ thị có 4 đỉnh và 5 cạnh .............................................................. 15
Hình 1.5. Những đồ thị hình sao, bánh xe có số đỉnh 3, 4, 5, 6, 7 .................. 17
Hình 1.6. Đồ thị mạng xã hội đơn giản gồm 7 nút ......................................... 21
Hình 2.1. Phát hiện cộng đồng mạng sử dụng Girven-Newman .................... 32
Hình 2.2. Ví dụ 1-clique, 2-clique và 3-clique................................................ 35
Hình 2.3. 2-cliques, 2-clan và 2-club .............................................................. 36
Hình 2.4. (a), (b). Mạng ban đầu ..................................................................... 40
Hình 2.5. (c). Các cộng đồng được phát hiện bởi thuận toán của Newman ... 41
Hình 2.6.(d). Các cộng đồng được phát hiện bởi thuật toán k-clique ............. 41
Hình 2.7.(e). Các cộng đồng thể hiện sự chồng chéo và phân cấp rõ ràng được phát hiện bởi thuật toán EAGLE ..................................................................... 42
Hình 3.1. Mô phỏng số cộng đồng tìm được trong đồ thị simple_network. ... 49
Hình 3.2. Mô phỏng số cộng đồng tìm được trong bộ dữ liệu dolphin. ......... 50
Hình 3.3. Mô phỏng số cộng đồng tìm được trong bộ dữ liệu karate. ............ 50
Hình 3.4. Mô phỏng số cộng đồng tìm được trong bộ dữ liệu football. ......... 51
Hình 3.5. Mô phỏng kết quả tìm kiếm cộng đồng trên bộ dữ liệu amazon_small ......................................................................................................................... 51
DANH MỤC CÁC BẢNG
Bảng 3.1. Mô tả chi tiết về các bộ dữ liệu được sử dụng trong phát hiện cộng đồng mạng ....................................................................................................... 47
Bảng 3.2. Thông tin phần cứng được sử dụng ................................................ 48
Bảng 3.3. Bảng tổng hợp kết quả của 2 thuật toán Girvan-Newman và k-cliques trên các bộ dữ liệu khác nhau .......................................................................... 53
1
MỞ ĐẦU
1. Lý do chọn đề tài
Sự phát triển vượt bậc của công nghệ thông tin làm cho lượng thông tin
được lưu trữ trên các thiết bị nhớ không ngừng tăng lên. Những đồ thị lớn và
mạng (networks) là những mô hình toán học tự nhiên cho những đối tượng
tương tác với nhau như mối quan hệ giữa con người trong mạng xã hội, các cấu
trúc phân tử trong mạng sinh học, mạng biểu diễn gene, ... Trong thực tế, cỡ
của các mạng như thế khá lớn mà khả năng phân tích, khai thác các tính chất
của chúng lại rất hạn chế. Mặt khác, xu thế phát triển công nghệ và ngày càng
xuất hiện nhiều loại hình truyền thông mạng xã hội dẫn đến sự thay đổi về hành
vi của con người trong xã hội và hình thành những cộng đồng trực tuyến. Hành
vi con người thay đổi dẫn đến nhiều hình thức kinh doanh, tiếp thị, dịch vụ và
kể cả trong lĩnh vực giáo dục, an ninh, chính trị cũng thay đổi theo từ cách tiếp
cận cho đến việc quản lý người dùng.
Sự phát triển nhanh chóng của các mạng xã hội kéo theo sự bùng nổ dữ
liệu trên mạng xã hội. Đây là một nguồn thông tin hết sức hữu ích, liên tục được
cập nhật. Một đặc trưng bản chất của mạng xã hội là tính cộng đồng. Mạng xã
hội và bài toán phát hiện cộng đồng mạng xã hội là nội dung nghiên cứu mang
tính thời sự, là nhu cầu bức thiết trong thời điểm hiện nay và nó đang thu hút
được rất nhiều sự quan tâm của các nhà khoa học thuộc các lĩnh vực khác nhau
như xã hội học, khoa học máy tính, kinh tế, sinh học, …
Do đó, việc đánh giá một sự vật, hiện tượng theo từng cộng đồng có ý
nghĩa to lớn trong việc xác định mối quan tâm của từng nhóm đối tượng. Vì em
quyết định lựa chọn đề tài “Nghiên cứu độ đo trung gian và thuật toán phát
hiện cộng đồng trên mạng xã hội” để nghiên cứu làm luận văn thạc sĩ của
mình.
2
2. Mục đích nghiên cứu
Những mục tiêu nghiên cứu của luận văn:
- Tìm hiểu mạng xã hội, cấu trúc cộng đồng trên đồ thị mạng xã hội và
các phương pháp tìm kiếm cấu trúc cộng đồng mạng xã hội
- Nghiên cứu các độ đo trên đồ thị mạng xã hội và tìm hiểu các thuật
toán phát hiện cấu trúc cộng đồng trên mạng xã hội
- Xây dựng ứng dụng phát hiện cộng đồng mạng xã hội ở tập dữ liệu đã
được công bố trên mạng.
3. Đối tượng nghiên cứu
- Lý thuyết đồ thị
- Mạng xã hội và mô hình cộng đồng mạng xã hội
- Thuật toán Girvan-Newman phát hiện cộng đồng mạng
4. Phạm vi nghiên cứu
+ Lý thuyết:
- Kỹ thuật khai phá dữ liệu đồ thị,
- Các thuật toán phát hiện cấu trúc cộng đồng của mạng xã hội.
+ Thực nghiệm:
- Thực nghiệm chương trình phát hiện cộng đồng mạng dựa trên họ các
thuật toán Girvan-Newman và k-cliques
- Áp dụng chương trình để phát hiện cộng đồng mạng trên một số bộ dữ
liệu mạng xã hội trực tuyến.
5. Ý nghĩa khoa học
3
Đây là một hướng nghiên cứu lý thuyết và ứng dụng về phân tích và phát
hiện cộng động mạng xã hội.
6. Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Sưu tập các tài liệu có liên quan
đến đề tài, nghiên cứu để hiểu sâu các nội dung vấn đề cần nghiên cứu.
- Phương pháp nghiên cứu thực nghiệm: Cài đặt thử nghiệm kiểm thử
chương trình
- Phương pháp trao đổi khoa học: Trao đổi nội dung nghiên cứu với giáo
viên hướng dẫn, với các đồng nghiệp để đề xuất và giải quyết các nội dung luận
văn đề ra.
7. Cấu trúc đề tài
Luận văn được chia thành các phần chính như sau:
Chương 1: Mạng xã hội và các độ đo trên đồ thị mạng xã.
Chương 2: Thuật toán xác định cấu trúc cộng đồng mạng.
Chương 3: Ứng dụng thuật toán GN trong phát hiện cộng đồng mạng
xã hội
Kết luận và hướng phát triển
4
CHƯƠNG 1
MẠNG XÃ HỘI VÀ CÁC ĐỘ ĐO TRÊN ĐỒ THỊ MẠNG XÃ HỘI
Mạng xã hội là một tập hợp các thực thể được kết nối với nhau thông qua
các mối quan hệ, mối liên kết, ... Phân tích mạng xã hội là xem xét các mối
quan hệ xã hội dựa vào lý thuyết đồ thị bao gồm các đỉnh và các cạnh (còn được
gọi là các liên kết hoặc kết nối). Các đỉnh được xem là những cộng đồng riêng
lẻ trên mạng, và các cạnh là các mối quan hệ giữa các cộng đồng. Cộng đồng
mạng xã hội là một tập hợp các cá nhân (tác nhân, thực thể) tương tác với nhau
thông qua các phương tiện truyền thông cụ thể, có khả năng vượt qua những
ranh giới địa lý và chính trị để theo đuổi lợi ích hay mục tiêu chung. Chương
này giới thiệu khái quát về mạng xã hội và các độ đo phúc vụ cho phân tích,
phát hiện cộng đồng trên đồ thị mạng xã hội.
1.1. Mạng xã hội
Mạng xã hội là một cấu trúc xã hội xã hội được tạo ra từ các thực thể, tác
nhân (actor) hoặc các tổ chức được liên kết, kết nối bởi một hoặc nhiều quan
hệ với nhau [3], [4], [27]. Theo Fortunato và các cộng sự [25] mạng xã hội là
một tập hợp các thực thể được kết nối với nhau bằng một tập hợp các mối quan
hệ, liên kết, như quan hệ bạn bè, gia đình, cộng sự hay trao đổi thông tin,…
Các mối quan hệ giữa các thực thể có thể mang nhiều nội dung khác nhau từ
sự tương trợ, trao đổi thông tin cho đến việc trao đổi hàng hóa, các dịch vụ, …
Mạng cung cấp nhiều cách khác nhau để các tổ chức thu thập thông tin, cạnh
tranh với nhau trong việc thiết lập giá kinh doanh hoặc chính sách, … Mạng xã
hội thường có những đặc tính như sau [11], [25], [26]:
Dựa vào người dùng (User-based): Trước khi các mạng xã hội như
Facebook hoặc MySpace trở thành chuẩn mực, các trang web dựa trên nội
dung được cập nhật bởi người dùng và được các khách truy cập Internet
5
để đọc, tham khảo thông tin. Không có người dùng, mạng sẽ là một không
gian trống chứa đầy các diễn đàn, ứng dụng và phòng trò chuyện trống.
Hướng của nội dung đó được xác định bởi bất kỳ ai tham gia vào cuộc
thảo luận. Đây là những gì làm cho các mạng xã hội trở nên thú vị và năng
động hơn nhiều đối với người dùng Internet thông thường.
Tương tác (Interactive): Một đặc điểm khác của các mạng xã hội hiện đại
là các thực thể thường xuyên tương tác thông qua các mối liên kết. Điều
này có nghĩa là một mạng xã hội không chỉ là một bộ sưu tập các phòng
chat, diễn đàn, …, các trang web như Facebook còn chứa đầy các ứng
dụng chơi trò chơi, quảng cáo, bán hàng online, phổ biến tin tức, … Các
mạng xã hội trở thành trò tiêu khiển mà nhiều người dùng lựa chọn nhiều
hơn trên truyền hình bởi vì nó không chỉ là giải trí, học tập, trao đổi công
việc và đó còn là cách thức để mọi người kết nối, tương tác với nhau.
Hướng đến cộng đồng (Community-driven): Mạng xã hội được xây dựng
và phát triển từ các khái niệm về cộng đồng. Điều này có nghĩa là giống
như các cộng đồng hoặc các nhóm xã hội trên toàn thế giới được thành lập
dựa trên thực tế là các thành viên có niềm tin hoặc sở thích chung, có
chung điểm chung, ...
Các mối quan hệ (Relationships): Không giống như các trang web trong
quá khứ, các mạng xã hội phát triển mạnh về các mối quan hệ. Càng có
nhiều mối quan hệ trong mạng, các thực thể càng thiết lập được vai trò
trung tâm của mạng đó. Tồn tại tính địa phương, mối quan hệ giữa các
thực thể có xu hướng tạo thành các cụm (cộng đồng). Đồng thời tạo môi
trường cho việc tương tác và chia sẻ thông tin giữa các thành viên trong
mạng như người thân, đồng nghiệp, gia đình, bạn bè, người hâm mộ, …
Cảm xúc về nội dung (Emotion over content): Một đặc điểm độc đáo khác
của mạng xã hội là yếu tố cảm xúc. Mặc dù các trang web trong quá khứ
6
tập trung chủ yếu vào việc cung cấp thông tin cho khách truy cập, nhưng
mạng xã hội ngày nay thực sự mang đến cho người dùng sự an toàn về
mặt cảm xúc và cảm giác rằng dù có chuyện gì xảy ra, bạn bè của họ vẫn
ở trong tầm kiểm soát.
Trong mạng có nhiều kiểu liên kết như liên kết vô hướng, liên kết một
chiều, liên kết hai chiều, … Ta có thể biểu diễn mạng mạng xã hội bằng một
đồ thị (được gọi là đồ thị mạng xã hội) mà các thực thể được biểu diễn bởi các
đỉnh, còn các liên kết được biểu diễn bởi các cạnh. Trong đó với hai đỉnh A và
B có cạnh nối với nhau là thể hiện mối quan hệ giữa chúng. Ngoài ra, các liên
kết này còn có thể đánh trọng số để biểu diễn độ mạnh yếu của mối liên kết.
Mạng xã hội phát triển rất nhanh chóng, với số lượng người tham gia và mối
quan hệ với nhau rất lớn đòi hỏi phải có những phương pháp nghiên cứu phù
hợp về mạng xã hội.
Ví dụ 1.1.
Mạng xã hội Facebook là mạng xã hội được coi là phổ biến nhất hiện
nay, Facebook là mạng xã hội miễn phí do công ty Facebook Inc điều hành.
Người sử dụng có thể tham gia các mạng lưới được tổ chức theo thành phố, nơi
làm việc, trường học và khu vực để liên kết và giao tiếp với người khác trên thế
giới. mọi người đều có thể kết bạn và gửi tin nhắn cho nhau, và cập nhật thông
tin của mình cho bạn bè biết. Tên của Facebook nhắc tới những cuốn sổ lưu
niệm dùng để ghi tên những thành viên của cộng đồng campus mà một số
trường đại học và cao đẳng tại Mỹ đưa cho các sinh viên mới vào trường, phòng
ban, và nhân viên để có thể làm quen với nhau trong khuôn viên trường.
7
Hình 1.1. Mạng xã hội Facebook
Zing me là một trong những mạng xã hội phố biến hiện nay tại Việt Nam,
nó có khả năng kết nối người dùng trên phạm vi rộng lớn, đồng thời khi sử
dụng bạn có thể tham gia các trò chơi, tiện ích, tính năng kết nối cộng đồng mà
ứng dụng đang sở hữu. Ngoài ra ở Việt Nam còn có thể kể đến mạng xã hội
Zalo.
Hình 1.2. Mạng xã hội Zing me
8
Trên mạng, một số đỉnh có liên kết chặt chẽ với nhau tạo thành từng 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) [1], [9].
Đây là một tính chất quan trọng của mạng xã hội và đang ngày càng được nhiều
người quan tâm nghiên cứu, phân tích cấu trúc cộng đồng của mạng xã hội bởi
tần quan trọng của chúng. Khả năng phát hiện và phân tích các cộng đồng sẽ
cung cấp cho chúng ta những sự giúp đỡ vô giá để hiểu biết và hình dung được
những cấu trúc, tính chất đặc trưng của mạng xã hội.
1.2. Cấu trúc cộng đồng mạng xã hội
Cấu trúc cộng đồng mạng xã hội (Community social structure) gọi tắt là
cộng đồng mạng xã hội là một tập hợp các tác nhân tương tác thông qua các
phương tiện truyền thông cụ thể, có khả năng vượt qua những ranh giới địa lý
và chính trị để theo đuổi lợi ích hay mục tiêu chung. Cộng đồng là một nhóm
các thực thể có những tính chất tương tự nhau, liên kết chặt chẽ với nhau hơn
và cùng đóng một vai trò nhất định trong mạng xã hội. Một cộng đồng được
mô tả như một nhóm các đỉnh (đồ thị con) cùng chia sẻ các thuộc tính chung
hoặc đóng vai trò tương tự trong một mạng. Một cộng đồng có thể được định
nghĩa là một tập hợp các đỉnh có mật độ liên kết giữa các đỉnh cao và mật độ
liên kết thấp với phần còn lại của mạng. Nói một cách khác một cộng đồng
được tạo ra bởi một tập hợp các tác nhân có tương tác thường xuyên với nhau
hơn so với cá nhân khác ngoài cộng đồng. Do vậy, nó thường là một tập hợp
như: bạn bè, đồng nghiệp, nhóm những người có cùng sở thích, cùng chuyên
môn, mối quan tâm, … [1], [3], [9], [14], [26], ...
Ví dụ 1.2.
Hình 1.3. hiển thị các thành phần kết nối lớn nhất trong mạng lưới các
cộng tác nghiên cứu của các nhà khoa học làm việc tại Viện Santa Fe (SFI). Đồ
9
thị bao gồm 118 đỉnh đại diện cho các nhà khoa học làm việc tại SFI và các
cộng tác viên của họ. Các cạnh được liên kết giữa các nhà khoa học khi họ đã
công bố cùng với nhau ít nhất một bài báo. Ở mạng này ta quan sát được một
số cộng đồng, mỗi cộng đồng biểu hiện cho những tác giả đã cùng nhau công
bố một hay nhiều bài báo khoa học. Mặt khác ta cũng thấy giữa các cộng đồng
trong mạng trên chỉ có một số ít mối liên kết. Các đỉnh cùng màu là cùng một
cộng đồng theo các lĩnh vực nghiên cứu của SFI.
Hình 1.3. Mô hình mạng lưới cộng tác của các nhà khoa học làm việc tại SFI
Trong mạng xã hội, việc trích xuất, phát hiện được những cấu trúc cộng
đồng là rất hữu ích vì nó giúp chúng ta nghiên cứu được cấu trúc tổng thể của
mạng. Khái niệm của khám phá, phát hiện cộng đồng tương tự như phân vùng
(phân cụm) đồ thị nhưng có một số khác biệt như trong phân vùng đồ thị, số
lượng nhóm và kích thước của chúng đã được biết trước, nhưng trong trường
hợp phát hiện ra cộng đồng, chúng ta không biết về số lượng cộng đồng trong
mạng và cộng đồng cũng có thể không cùng kích cỡ với nhau.
10
Một số ứng dụng chính của bài toán phát hiện cộng đồng mạng xã hội
[1], [3], [4] , [14], [25] là:
- Phát hiện cộng đồng có thể được sử dụng trong tư vấn thông tin và xác
định được những cộng đồng có cùng một số quan tâm, sở thích tương tự.
- Cộng đồng cũng sẽ giúp chúng ta hiểu cấu trúc của mạng xã hội, làm rõ
các thuộc tính và chức năng của mạng.
- Phát hiện các cộng đồng để hiểu hành vi của mạng xã hội trong quy mô
lớn vì nó sẽ làm rõ các quá trình chia sẻ thông tin và truyền bá thông tin.
- Các phương pháp phát hiện cộng đồng có lợi thế lớn trong việc định
tuyến nhận thức trong xã hội và ngăn chặn thông tin độc hại trên mạng
xã hội.
- Các cộng đồng trong mạng sinh học giúp chúng ta hiểu các cơ chế cơ
bản kiểm soát các quá trình thay đổi của các tế bào.
- Trong các cộng đồng mạng của các khách hàng có cùng sở thích có thể
được sử dụng để tạo ra hệ thống tư vấn thông tin để nâng cao hiệu quả
của sản xuất, kinh doanh.
- Có thể dễ dàng hiểu được các cấu trúc của các đồ thị phức tạp với sự trợ
giúp của các cộng đồng được phát hiện.
- Mạng xã hội loài người thể hiện cấu trúc cộng đồng mạnh mẽ. Một mạng
lưới có cấu trúc cộng đồng mạnh bao gồm các cộng đồng, các cộng đồng
này có nhiều kết nối trong đó và ít kết nối giữa các cộng đồng. Cấu trúc
cộng đồng không chỉ ảnh hưởng đến sự lây lan của bệnh truyền nhiễm
trong cộng đồng nhưng cũng bảo vệ mạng khỏi dịch bệnh quy mô lớn.
- Trong hệ sinh học và hệ chăm sóc sức khỏe, có nhiều thuật toán phát
hiện cộng đồng được phát triển cho các mạng xã hội cũng có thể được
mở rộng thành công cho các mạng sinh học. Ví dụ phát hiện cộng đồng
11
được sử dụng trong Calderone để so sánh các mạng tương tác Alzheimer
và Parkinson.
1.3. Các độ đo trên đồ thị mạng xã hội
Theo quan điểm cấu trúc, chúng ta có thể mô hình hóa các mối quan hệ
trong mạng xã hội như là đồ thị vô hướng G = (V, E), với V là tập các đỉnh và
E là tập các cạnh, được gọi là đồ thị mạng xã hội. Tập V biểu diễn cho các
thành viên (tác nhân) của mạng xã hội, còn E thể hiện mối quan hệ xã hội giữa
các thành viên với nhau. Dựa vào lý thuyết đồ thị, cấu trúc mạng xã hội cũng
có thể được biểu diễn thông qua ma trận liền kề A = (Aij) ∈ {0, 1}n×n, với n =
|V| và Aij = 1 nếu hai đỉnh i và j có cạnh nối giữa chúng (có liên kết - quan hệ
trực tiếp với nhau), ngược lại Aij = 0.
Để áp dụng được kỹ thuật khai phá dữ liệu trong phân tích mạng xã hội
và phát hiện cộng đồng thì trước tiên phải định nghĩa được độ đo khoảng cách
(distance measure) giữa các đỉnh, cạnh của đồ thị. Khi các cạnh của đồ thị được
gắn nhãn thì các nhãn này có thể được sử dụng như là độ đo khoảng cách, tùy
thuộc vào những gì mà chúng đại diện. Nhưng khi các cạnh không có nhãn,
như đồ thị “bạn bè” thì cần phải định nghĩa độ đo khoảng cách giữa các đỉnh.
Giả thiết mạng xã hội được biểu diễn bởi một đồ thị G = (V, E), trong đó
V là tập các đỉnh, E là tập các cạnh. Trước tiên ta quy ước, những đỉnh gần
nhau (closed) nếu chúng có cạnh nối trực tiếp giữa chúng, ngược lại là những
đỉnh xa nhau (distant). Khoảng cách giữa đỉnh x và y V, ký hiệu là d(x, y),
có thể định nghĩa d(x, y) theo hai cách:
d(x, y) = 0 nếu (x, y) E, ngược lại là d(x, y) = 1.
Hoặc d(x, y) = 1 nếu có cạnh nối giữa chúng, và bằng khi chúng xa
nhau, không có cạnh nối giữa chúng.
12
Tuy nhiên, cả hai trường hợp trên đều không phải là định nghĩa độ đo
khoảng cách thực sự (metric), bởi chúng không thỏa mãn bất đẳng thức tam
giác. Dễ nhận thấy, nếu có cạnh nối A với B và cạnh nối B với C, thì không có
gì đảm bảo có cạnh nối A với C.
Có nhiều độ đo (measures) khác nhau được sử dụng để phân loại, phân
tích, đánh giá đồ thị mạng xã hội. Chúng thường được sử dụng bởi các nhà
nghiên cứu và người dùng thương mại để phân tích các đặc điểm của mạng xã
hội được xem xét. Các phép đo quan trọng nhất được xác định phần lớn đều
dựa trên lý thuyết đồ thị. Tasleem Arif [4] sử dụng các hệ số cố kết mạng và hệ
số trung tâm vector đặc trưng [24] để phân tích, đánh giá mạng xã hội. Freeman
[12] đề xuất một tập các độ đo (Measures) xác định độ trung tâm của các đỉnh,
cạnh trên đồ thị, như hệ số trung tâm trực tiếp theo bậc của đỉnh, hệ trung tâm
lân cận và độ trung gian (Betweenness) và được sử dụng nhiều trong phân tích
mạng xã hội và phát hiện các cộng đồng.
1.3.1. Hệ số cố kết của mạng
Trong phân tích mạng xã hội có rất nhiều hệ số để so sánh các mạng xã
hội với nhau, một trong những hệ số quan trọng nhất đó là hệ số cố kết (Density,
Cohesion) [4]. Khi hệ số cố kết của mạng càng lớn, mức độ gắn kết, sự chặt
chẽ của các mối quan hệ giữa các thực thể (tác nhân) trong mạng càng lớn, và
do đó, sự tương trợ, hỗ trợ, … giữa các tác nhân cũng càng nhiều, càng hiệu
quả hơn, sự điều tiết của mạng đối với hành vi của tác nhân cũng cũng mạnh
mẽ hơn và ngược lại. Một cách tổng quát, tính cố kết của mạng lưới là tỷ lệ
giữa tổng các mối liên hệ thực tế trong mạng và tổng các mối quan hệ lý thuyết
của nó (tức là tổng các mối quan hệ có thể có của mạng). Hệ số cố kết của đồ
thị G, được tính như sau:
(1.1)
𝐷𝐺 =
2 𝑘 𝑛 (𝑛−1)
13
Trong đó, k là tổng các mối liên hệ thực tế của mạng, k = |E| và n = |V|.
Giá trị của hệ số này chạy từ 0.00 - 1.00. Càng gần tới giá trị 1.00 thì tính cố
kết của mạng lưới càng mạnh và do đó sự tương trợ, sự trao đổi thông tin, …
giữa các thành viên trong mạng được diễn ra càng tốt và ngược lại. Theo Scott
[27], hệ số cố kết của mạng lưới phụ thuộc vào số lượng tác nhân của nó, tức
là khi càng có nhiều tác nhân thì hệ số cố kết của nó càng nhỏ và ngược lại. Đối
với những đồ thị đầy đủ (clique) thì hệ số cố kết là tuyệt đối, tức là DG = 1.00.
1.3.2. Hệ số trung tâm vector đặc trưng
Dựa trên ý tưởng là những tác nhân có vị trí trung tâm, có tầm ảnh hưởng
hay nổi tiếng trên mạng là những tác nhân có quan hệ với nhiều tác nhân mà
bản thân những tác nhân đó cũng là tác nhân trung tâm (có tầm ảnh hưởng hay
nổi tiếng). Do vậy, độ trung tâm không chỉ phụ thuộc vào số các đỉnh liền kề
mà còn phụ thuộc vào độ trung tâm của những đỉnh liền kề với những đỉnh đó.
Độ trung tâm hay vị thế (status) của đỉnh thường xác định tổng quát theo quan
hệ đệ quy (recursively related) theo các độ trung tâm hoặc vị thế mà chúng có
mối liên kết (trực tiếp hoặc gián tiếp) với nhau. Độ đo đó được gọi là độ trung
tâm vector đặc trưng (Eigenvector centrality) [24].
Giả thiết A = (Aij) là ma trận liền kề không âm của đồ thị có hướng G =
(V, E). Độ trung tâm vector đặc trưng xi của đỉnh i được định nghĩa như sau:
(1.2) xi = Ai1x1 + Ai2x2 + … + Ainxn, i = 1, 2, …, |V| = n
Độ trung tâm của mỗi đỉnh xi là một hàm của những đỉnh có liên kết
với đỉnh đó. Tập các phương trình (1.2) được thể hiện theo ma trận (AT là ma
trận chuyển vị của A) là:
AT x = x (1.3)
14
Độ trung tâm của mỗi đỉnh được xác định theo hàm tuyến tính độ trung
tâm của những đỉnh có liên kết với đỉnh đó.
Khi nghiên cứu sức mạnh của các cộng đồng trên mạng xã hội, vị thế của
tác nhân được tăng lên bởi những đề cử (nominations) từ những người nhận
được nhiều đề cử khác. Trong cộng đồng mạng truyền thông, những người nhận
được nhiều trao đổi thông tin từ những người khác sẽ có nhiều nguồn thông tin
là có giá trị và tốt hơn.
Khi xét độ trung tâm của đỉnh i: cùng với tập các đỉnh lân cận của nó là
N(i), ta có:
𝑗∈𝑁(𝐼) = ∑ 𝐴𝑖𝑗
𝑗
(1.4) 𝑥𝑖 = ∑ 𝑥𝑗 𝑥𝑗
Độ trung tâm vector đặc trưng được định nghĩa theo cách này phụ thuộc
vào số các đỉnh lân cận |N(i)| và số các liên kết với nó là xj, j ∈ N(i). Cần lưu ý
rằng j N(i) thì Aij = 0 nên ta có công thức (1.4).
Hệ phương trình (1.2) cho nghiệm là vector đặc trưng x khác 0 khi ma
trận A có giá trị đặc trưng là 1. Độ đo vector đặc trưng là độ đo trung tâm chuẩn
để phân tích mạng xã hội [11], [26], [27].
1.3.3. Độ đo trung tâm của đỉnh
Chúng ta xét một đồ thị vô hướng G = (V, E) bất kỳ (liên thông hoặc
không liên thông). Xét cặp đỉnh (vi, vj) bất kỳ, không phân biệt thứ tự. Giữa
chúng có thể có một hoặc nhiều đường đi. Nếu có đường đi giữa chúng thì độ
dài đường đi là bằng số cạnh (tổng trọng số trên các cạnh đối với đồ thị có trọng
số) trên đường đi đó. Trong số các đường đi đó sẽ có một số đường đi ngắn
nhất. Nếu (vi, vj), (vj, vi) E, thì đường đi ngắn nhất sẽ có độ dài là 1. Trường
hợp đường đi ngắn nhất lớn hơn 1 thì chắc chắn phải có ít nhất một đỉnh khác
nằm trên đường đi ngắn nhất nối giữa vi với vj và những đỉnh này có tiềm năng
15
để điều khiển sự liên thông hay truyền thông (Control communications) giữa
các đỉnh vi, vj.
Ví dụ 1.3.
Xét đồ thị ở Hình 1.4. Giữa v1 và v3 có 2 đường đi ngắn nhất có độ dài
là 2, một đi qua v2, còn đường kia đi qua v4 và những đỉnh này có tiềm năng
điều khiển sự liên thông giữa các đỉnh v1, v3.
v3
v2 v4
v1
Hình 1.4. Đồ thị có 4 đỉnh và 5 cạnh
Chúng ta nghiên cứu và khái quát hóa khái niệm “khoảng giữa”, hay “độ
trung gian” (Betweenness) trong lý thuyết đồ thị [5]. Trước tiên xét một đỉnh
vk V và cặp các đỉnh (vi, vj) bất kỳ không phân biệt thứ tự với i j k.
Chúng ta định nghĩa độ trung gian (khoảng giữa) bộ phận của đỉnh vk đối
với (vi, vj), ký hiệu là Bij(vk) như sau:
Nếu giữa vi và vj không có đường đi thì Bij(vk) = 0
Ngược lại, nếu giữa chúng có đường đi, nghĩa là chúng liên thông với
nhau qua một số đường đi. Khi đó xác suất trao đổi, quan hệ giữa chúng
là 1/gij, với gij là số đường đi ngắn nhất giữa vi và vj. Như vậy, tiềm năng
mà vk điều khiển (control) thông tin trao đổi (mối quan hệ) giữa vi với vj
được xác định bằng chính bằng xác suất mà vk nằm trên những đường đi
ngắn nhất giữa chúng. Ký hiệu gij(vk) là số đường đi ngắn nhất có đi qua
vk, ta có
(1.5) Bij(vk) = gij(vk) / gij
16
Ví dụ 1.4.
Trên Hình 1.4., v2, v4 có xác suất nằm trên 2 đường đi ngắn nhất giữa v1
và v2 là ½. Như vậy, nếu vk nằm trên tất cả các đường đi ngắn nhất giữa vi và
vj thì Bij(vk) = 1. Trong những trường hợp này, thì vk là cần thiết để điều khiển
mối liên kết giữa vi và vj.
Để xác định được độ trung tâm (centrality) tổng thể của đỉnh vk trên đồ
thị thì cần phải tính tổng tất cả các độ trung gian bộ phận của vk đối với tất cả
các cặp đỉnh trên đồ thị.
Định nghĩa 1.1. Độ trung tâm của đỉnh vk trong đồ thị G = (V, E), ký hiệu là
C(vk) được xác định như sau:
, với |V| = n (1.6) C(vk) =
Nếu vk xuất hiện trên tất cả các đường đi ngắn nhất giữa hai đỉnh vi, vj
thì C(vk) tăng lên 1. Trường hợp vk chỉ xuất hiện trên một số đường đi ngắn
nhất giữa hai đỉnh vi, vj thì C(vk) sẽ tăng lên với một giá trị tương ứng là tỉ số
những lần xuất hiện trên những đường đi ngắn nhất giữa vi, vj như công thức
(1.5).
Độ trung tâm của đỉnh vk, C(vk) chính là hệ số tiềm năng để điều khiển
sự liên kết giữa các đỉnh trên đồ thị.
Việc tính C(vk) phụ thuộc vào hai yếu tố chính:
1. Sắp xếp các cạnh để xác định vị trí của vk và những đường đi ngắn
nhất giữa các cặp đỉnh.
2. Số đỉnh n trên đồ thị.
Chúng ta nhận thấy, độ trung tâm của đỉnh vk đạt được giá trị cực đại khi
mọi đỉnh khác trong G đều có cạnh nối với vkvà vk nằm trên tất cả các đường
17
đi ngắn nhất có độ dài lớn hơn 1. Những đồ thị như thế sẽ có dạng hình sao
(Star) hoặc bánh xe (wheel) như Hình 1.5 trong đồ thị, khi mọi đỉnh đều đến
được (có đường đi) tới tất cả các đỉnh khác (trực tiếp hoặc gián tiếp đi qua vk)
thì số đường đi giữa chúng là n * (n – 1)/2, trong đó có n-1 được nối với vk.
Vậy, độ trung tâm của đỉnh vk cực đại sẽ là
= (1.7) max C(vk) =
Ví dụ 1.5. Những đồ thị hình sao và bánh xe có số đỉnh 3, 4, 5, 6, 7.
Hình 1.5. Những đồ thị hình sao, bánh xe có số đỉnh 3, 4, 5, 6, 7
Một số độ đo “trung tâm” chuẩn:
𝑡∈𝑉
𝑐𝑙𝑜𝑠𝑒𝑛𝑒𝑠 𝑐𝑒𝑛𝑡𝑟𝑎𝑙𝑖𝑡𝑦 (𝑆𝑎𝑏𝑖𝑑𝑢𝑠𝑖, 1966) 𝐶𝐶(𝑣) = ∑ 1 𝑑𝐺(𝑣, 𝑡)
𝑔𝑟𝑎𝑝ℎ 𝑐𝑒𝑛𝑡𝑟𝑎𝑙𝑖𝑡𝑦 (𝐻𝑎𝑔𝑒 𝑎𝑛𝑑 𝐻𝑎𝑟𝑎𝑟𝑦, 1995) 𝐶𝐺(𝑣) = 1 𝑚𝑎𝑥𝑡∈𝑉𝑑𝐺(𝑣, 𝑡)
𝑠≠𝑣≠𝑡∈𝑉
𝐶𝑆(𝑣) = ∑ 𝜎𝑠𝑡(𝑣) 𝑠𝑡𝑟𝑒𝑠𝑠 𝑐𝑒𝑛𝑡𝑟𝑎𝑙𝑖𝑡𝑦 (𝑆ℎ𝑖𝑚𝑏𝑒𝑙, 1953)
𝑠≠𝑣≠𝑡∈𝑉
𝜎𝑠𝑡(𝑣) 𝜎𝑠𝑡
𝑏𝑒𝑡𝑤𝑒𝑒𝑛𝑛𝑒𝑠𝑠 𝑐𝑎𝑛𝑡𝑟𝑎𝑙𝑖𝑡𝑦 𝐶𝑆(𝑣) = ∑
(𝐹𝑟𝑒𝑒𝑚𝑎𝑛 1977; 𝐴𝑛𝑡ℎ𝑜𝑛𝑖𝑠𝑠𝑒, 1971)
18
Những độ đo trung tâm chuẩn chỉ ra rằng cạnh đó có thể đi tới những
cạnh khác trên những đường đi ngắn nhất tương ứng.
1.3.4. Hệ số trung gian của đỉnh
Độ đo trung tâm của mạng hay đồ thị được xác định theo hai cách. Cách
thứ nhất dựa vào lý thuyết đồ thị, trung tâm của đồ thị được đánh giá theo bậc
(degree), hay độ lân cận của các đỉnh trong đồ thị. Những đỉnh có bậc cực đại
có thể được xem như là tâm điểm của đồ thị. Đo theo cách này thì việc ứng
dụng sẽ bị hạn chế, bởi nó chỉ áp dụng được cho những bài toán như thiết kế
truyền thông với mục đích là nhằm đạt được hiệu quả truyền thông cực đại.
Cách thứ hai là dựa vào ưu thế trội (domination) của các đỉnh. Một thực thể
(đỉnh) có ưu thế trội là thực thể có thể điều khiển sự truyền thông trên mạng
(đồ thị).
Theo quan điểm của Freeman [12], một tác nhân nào đó trong mạng có
thể ít gắn kết với các thành viên khác trong mạng (tức hệ số trung tâm trực tiếp
thấp, bậc của đỉnh không cao), cũng không "gần gũi" lắm với mọi thành viên
trong mạng (tức hệ số trung tâm lân cận thấp), nhưng lại là "cầu nối" (bridge),
là "trung gian" cần thiết trong mọi cuộc trao đổi trong mạng. Nếu một tác nhân
đóng được vai trò trung gian càng lớn trong mạng lưới, tác nhân đó sẽ càng ở
vị trí thuận lợi trong việc "kiểm soát" mọi giao dịch, mọi thông tin trong mạng;
tác nhân đó cũng tác động đến mạng một cách dễ dàng bằng cách thanh lọc
hoặc "lái" thông tin lưu chuyển trong mạng theo hướng có lợi cho mình nếu
muốn; đồng thời tác nhân đó cũng đứng ở vị trí tốt nhất để thúc đẩy sự phối
hợp giữa các thành viên khác trong mạng. Freeman [12] đã đề xuất độ đo trung
tâm trung gian (betweenness centrality) gọi tắt là độ đo trung gian của một đối
tượng trong mạng xã hội là số các cá thể có thể trao đổi với nhau thông qua đối
tượng đó. Những đỉnh (cá thể) xuất hiện trên nhiều đường đi ngắn nhất giữa
19
các đỉnh có độ trung gian cao hơn những đỉnh không nằm trên những đường đi
ngắn nhất đó.
Chúng ta xét một đồ thị liên thông G = (V, E) bất kỳ (những đỉnh độc lập
không cần xét). Xét cạnh (cặp đỉnh) (vi, vj) bất kỳ, không phân biệt thứ tự đỉnh
đầu, đỉnh cuối. Giữa chúng có thể có một hoặc nhiều đường đi. Nếu có đường
đi giữa chúng thì độ dài đường đi là bằng số cạnh (tổng trọng số trên các cạnh
đối với đồ thị có trọng số) trên đường đi đó. Trong số các đường đi đó sẽ có
một số đường đi ngắn nhất. Nếu (vi, vj), (vj, vi) E, thì đường đi ngắn nhất sẽ
có độ dài là 1. Trường hợp đường đi ngắn nhất có độ dài (tổng số cạnh trên
đường đi) lớn hơn 1 thì chắc chắn phải có ít nhất một đỉnh khác nằm trên đường
đi ngắn nhất nối giữa vi với vj và những đỉnh này có tiềm năng để điều khiển
sự liên thông hay truyền thông (control communications) giữa các đỉnh vi, vj.
Cho trước đồ thị G = (V, E) có n đỉnh, độ trung gian CB(v) của đỉnh v
được xác định như sau:
- Với mỗi cặp đỉnh (s, t), tính tất cả các đường đi ngắn nhất nối giữa chúng
- σst;
- Với mỗi cặp đỉnh (s, t), tính phân số giữa những đường đi ngắn nhất σst(v)
có đi qua v và số các đường đi ngắn nhất từ s tới t là σst(v)/σst;
- Tính tổng các phân số của tất cả các cặp đỉnh (s, t).
Ta ký hiệu σst là số đường đi ngắn nhất đi từ s tới t, và σst(v) là số đường
đi ngắn nhất đi từ s tới t và có đi qua v. Khi đó độ đo trung gian kí hiệu là CB(v)
của đỉnh v sẽ được tính như sau:
𝑠≠𝑡≠𝑣
(1.8) CB(v) = ∑ 𝜎𝑠𝑡(𝑣) /𝜎𝑠𝑡
Hệ số này cũng đi từ 0.00 đến 1.00. Khi một tác nhân nào đó có hệ số
trung tâm trung gian càng gần đến 1.00 thì số lượng quan hệ giữa các tác nhân
20
khác phải "thông qua" tác nhân này càng nhiều và do đó ảnh hưởng của tác
nhân này trên mạng cũng càng lớn.
Chúng ta nhận thấy, độ trung tâm của đỉnh v đạt được giá trị cực đại khi
mọi đỉnh khác trong G đều có cạnh nối với v và v nằm trên tất cả các đường đi
ngắn nhất có độ dài lớn hơn 1. Những đồ thị như thế sẽ có dạng hình sao (star)
hoặc hình bánh xe (wheel) [7],[12].
Tuy nhiên, việc sử dụng những độ đo này chỉ phù hợp cho những mạng,
trong đó khái niệm độ trung gian (Betweenness) được xem là quan trọng trong
tiềm năng ảnh hưởng tới quá trình xử lý sự liên kết giữa các đỉnh. Như trong
nghiên cứu các mạng truyền thông (Communication Network), vấn đề quan
trọng là cần xác định những cạnh có tiềm năng điều khiển truyền thông để đảm
bảo mạng truyền thông hiệu quả và bền vững.
1.3.5. Độ đo trung gian của cạnh
Chúng ta đã nghiên cứu ba độ đo C(vk) để xác định những tâm điểm của
đồ thị và chúng được ứng dụng trong nhiều mục đích khác nhau. Tuy nhiên,
việc sử dụng những độ đo này chỉ phù hợp cho những mạng, trong đó khái niệm
độ trung gian (Betweenness) được xem là quan trọng trong tiềm năng ảnh
hưởng tới quá trình xử lý sự liên kết giữa các đỉnh. Như trong nghiên cứu các
mạng truyền thông (Communication Network), vấn đề quan trọng là cần xác
định những cạnh có tiềm năng điều khiển truyền thông để đảm bảo mạng truyền
thông hiệu quả và bền vững.
Chúng ta định nghĩa độ đo “độ trung gian” (Betweenness) các cạnh trên
đồ thị như sau.
Định nghĩa 1.2. Độ trung gian của cạnh (a, b) là số các cặp đỉnh x và y mà cạnh
(a, b) nằm trên đường đi ngắn nhất nối giữa x và y.
21
Lưu ý: x, y có thể trùng với a, b.
Ta hình dung, cạnh (a, b) giữa hai cộng đồng thì a và b không nằm trong
cùng một cộng đồng. Một cạnh nằm giữa hai cộng đồng (được xem như là cầu
nối giữa hai cộng đồng đó), do vậy số các đường đi ngắn nhất đi qua cạnh đó
thường là khá lớn.
Ví dụ 1.6. Xét đồ thị
Hình 1.6. Đồ thị mạng xã hội đơn giản gồm 7 nút
Trên đồ thị ở Hình 1.6., cạnh (B, D) có độ trung gian là lớn nhất, bởi nó
nằm trên 12 đường đi ngắn nhất nối giữa các nút A, B, và C với D, E, F, và G,
3 × 4 = 12. Cạnh (D, F ) chỉ có 4 đường đi ngắn nhất nối giữa các nút A, B, C
và D với F.
Độ trung gian của cạnh e, ký hiệu là CB(e), được xác định như sau:
𝑠≠𝑡
𝛿𝑠𝑡 𝛿𝑠𝑡(𝑒)
(1.9) 𝐶𝐵(e) = ∑
Với hai đỉnh s, t V, cạnh e E và st(e) là số đường đi ngắn nhất đi từ
đỉnh s tới đỉnh t và đi qua cạnh e.
Độ đo trung gian của đỉnh v cũng có thể tính thông qua công thức tính
1
độ đo trung gian của cạnh e.
𝑒∈Γ(v)
2
∑ (1.10) 𝐶𝐵(𝑣) = 𝐶𝐵(e) − (𝑛 − 1)
22
Trong đó, Γ(v) là tập các cạnh kề với v và n là số đỉnh của thành phần
chứa v.
1.4. Thuật toán tính độ trung gian
Để tính độ trung gian của các đỉnh, cạnh thường phải thực hiện qua 2
bước:
1. Tính độ dài và số đường đi ngắn nhất giữa các cặp đỉnh
2. Tính tổng tất cả các độ trung gian của các cạnh.
Công việc chính của quá trình này là phát hiện tất cả các đường đi ngắn
nhất từ đỉnh tới gốc. Định nghĩa tập tiền tố của đỉnh v trên các đường đi ngắn
nhất từ s như sau:
(1.11) 𝑃𝑠(𝑣) = {𝑢 ∈ 𝑉: {𝑢, 𝑣} ∈ 𝐸, 𝑑𝐺(𝑠, 𝑢) = 𝑑𝐺(𝑠, 𝑢) + 𝑤(𝑢, 𝑣)}.
Bổ đề 1.1 (Tổ hợp của đường đi ngắn nhất) For s v ∈ V
𝑠≠𝑣≠𝑡∈𝑉
(1.12) 𝐶𝐵(𝑣) = ∑ 𝛿𝑠𝑡(𝑣)
Chứng minh. Theo giả thiết tất cả các trọng số đều là số dương, cạnh cuối của
đường đi ngắn nhất đi từ s tới v là cạnh (u, v) ∈ E sao cho dG(s, u Từ Bổ đề 1.1 suy ra, số đường đi ngắn nhất đi từ s tới v kết thúc bằng cạnh này đúng bằng số đường đi ngắn nhất đi từ s tới u. Sự phụ thuộc của s ∈ V vào một đỉnh v ∈ V , được định nghĩa như sau: 𝑡∈𝑉 𝛿𝑠(𝑣) = ∑ 𝛿𝑠𝑡(𝑣) Bổ đề 1.2 Nếu tồn tại đúng một đường đi ngắn nhất đi từ s ∈ V tới mọi đỉnh t ∈ V, thì sự phụ thuộc của s vào v ∈ V sẽ là 𝑤∶𝑣∈𝑃𝑠(𝑤) (1.13) 𝛿𝑠(𝑣) = ∑ (1 + 𝛿𝑠(𝑤)) 23 Để thực hiện thuật toán tính độ đo trung gian của các đỉnh trên đồ thị một cách hiệu quả, người ta thường sử dụng phương pháp duyệt theo chiều rộng BFS (Breadth-First Search) [11]. Thuật toán duyệt theo chiều rộng tìm kiếm các đường đi ngắn nhất từ đỉnh gốc qua các cạnh tới tất cả các đỉnh khác trong đồ thị. Các cạnh giữa các mức của quá trình duyệt BFS bắt đầu từ đỉnh gốc X sẽ tạo thành đồ thị định hướng, phi chu trình, được gọi DAGX. Brandes đề xuất thuật toán duyệt theo chiều rộng [21] bắt đầu từ mỗi đỉnh x V và tính độ đo trung gian của các cạnh trên đồ thị DAGx. Với mỗi đỉnh v trên DAGx, khoảng cách của đỉnh v đến gốc x, được ký hiệu là dv, là số các cạnh trên đường đường đi ngắn nhất từ x đến v. Thuật toán nhanh xác định trung tâm của độ trung gian FABC (Faster Algorithm for Betweenness Centrality) trên đồ thị không có trọng số [5] được thực hiện như sau. Thuật toán FABC: Thuật toán thực hiện 4 bước. Bước 1 – Khởi tạo giá trị biến chung CB[r] ← 0, r ∈ V ; for r ∈ V do{ Bước 2 – Khởi tạo biến cục bộ S ← empty stack; Q ← empty queue; P [w] ← empty list, w ∈ V ; σ[t] ← 0, t ∈ V ; σ[r] ← 1; d[t] ← ∞, t ∈ V ; d[r] ← ∞; enqueue r → Q; } 24 Bước 3 – Duyệt theo BFS while Q not empty do{ dequeue v ← Q; push v → S; for all neighbor w of v do{ // w được tìm thấy lần đầu if d[w] = ∞ then { enqueue w → Q; d[w] ← d[v] + 1;} if d[w] = d[v] + 1 then { σ[w] ← σ[w] + σ[v]; append v → P [w]; } } Bước 4 – Tích lũy vào CB δ[v] ← 0, v ∈ V ; while S not empty do pop w ← S; for all v ∈ P [w] do { δ[v] ← δ[v] +σ[v]/σ[w](1 + δ[w]); if w != r then CB[w] ← CB[w] + δ[w]; 25 } Sau phần khởi tạo các giá trị cho mảng CB[v], v V, stack S, và 3 mảng bổ sung. Mảng σ xác định số đường đi ngắn nhất từ mỗi đỉnh tới gốc r của cây các đường đi ngắn nhất, mảng d đo khoảng cách của mỗi đỉnh từ gốc cây BFS. Đối với đồ thị không có trọng số, đây chính là số cạnh cực tiểu giữa mỗi đỉnh và gốc của cây. Ban đầu, khoảng cách của các đỉnh và gốc đều gán bằng ∞. Mảng P, là danh sách liên kết, mỗi đỉnh v là một danh sách liên kết P[v], chứa tất cả các đỉnh đứng trước v trong cây duyệt theo chiều rộng BFS. Bước 3 và Bước 4 là các thành phần chính của thuật toán. Bước 3 duyệt theo chiều rộng BFS từ gốc cho trước để tìm đường đi ngắn nhất tới tất cả các đỉnh khác. Trong bước này, mỗi phần tử được đặt vào một hàng đợi khi nó được tìm thấy. Khi duyệt theo chiều rộng, khoảng cách từ gốc s tới từng đỉnh v được tính. Với mỗi đỉnh v được tìm thấy trong lần duyệt BFS sẽ tương ứng với một danh sách các đỉnh cha, những đỉnh gần gốc hơn. Tất cả những đường đi ngắn nhất đi qua đỉnh cha của các đỉnh v và những đỉnh này được tích lũy vào σ[v]. Ở công thức (1.7), σst(v) xác định số đường đi ngắn nhất đi từ s đến t mà có qua v và σst là số đường đi ngắn nhất đi từ s đến t. Nếu không có đường đi ngắn nhất đi từ s đến t và qua v thì σst(v) = 0. Bước 4 tính độ trung gian CB (betweenness centrality) kỹ thuật tích lũy phụ thuộc (dependency accumulation technique) của Brandes [5]. Trong [5] đã chứng minh được quan hệ sau: {𝑤 |𝑣∈𝑃𝑠(𝑤)} 𝜎𝑠𝑣
𝜎𝑠𝑤 (1.14) 𝛿𝑠(𝑣) = ∑ (1 + 𝛿𝑠(𝑤)). 26 Từ đó suy ra rằng không cần thiết phải tính lâu hơn tổng của tất cả các phụ thuộc cặp như quan hệ đệ qui. Ngoài ra ở đây có thể tính δs(w), thông qua thuật toán tìm đường đi ngắn nhất từ gốc s đến một đỉnh còn lại của đồ thị. Phân tích độ phức tạp Kích thước bộ nhớ của stack, queue và các mảng σ và d là O(|V| ), nghĩa là cỡ của các cấu trúc bổ sung được giới hạn bằng số đỉnh V của đồ thị. Bộ nhớ cần thiết cho mảng liên kết được giới hạn bởi số cạnh E, đó là O(|E|). Bởi mỗi lần duyệt BFS được tính độc lập, chỉ cần duy trì một bản copy của những cấu trúc này, Bước 2 thực hiện duyệt cây BFS qua O(|V| + |E|) bước tính toán. Không gian bộ nhớ của mảng CBcủa thuật toán là O(|V| + |E|). Do vậy, độ phức tạp tính toán của việc duyệt cây BFS là O(|V| + |E|) và của việc tích lũy sự phụ thuộc (dependency accumulation) cũng vào khoảng O(|V| + |E|), số các bước cực đại được xác định bởi số đỉnh cha là O(|E|), và số đỉnh con tương ứng là O(|V|). Vậy, độ phức tạp của thuật toán sẽ là O(|V|2 +|V| * |E|). Trong trường hợp |E|>|V|, thì độ phức tạp của thuật toán sẽ là O(|V| * |E|). 1.5. Kết luận chương Trong nội dung chương này học viên đã trình bày giới thiệu về mạng xã hội và các đặc tính của mạng xã hội, cộng đồng mạng xã hội và phát hiện cộng đồng mạng xã hội, tiếp theo là các độ đo trong mạng xã hội, thuật toán xác định độ đo trung gian trên mạng xã hội. Ở chương tiếp theo của luận văn học viên sẽ trình bày về cấu trúc cộng đồng mạng xã hội, một số phương pháp phát hiện cộng đồng và tập trung vào thuật toán Girvan-Newman, sử dụng độ đo trung gian để phát hiện cấu trúc cộng đồng mạng xã hội. 27 CHƯƠNG 2 THUẬT TOÁN PHÁT HIỆN CỘNG ĐỒNG MẠNG XÃ HỘI Hầu hết các phương pháp phát hiện cấu trúc cộng đồng trên mạng xã hội đều tập trung vào việc nghiên cứu các mối liên kết giữa các thực thể để xác định các cộng đồng. Trong chương này luận văn giới thiệu những thuật toán phổ biến phát hiện cộng đồng trên đồ thị mạng xã hội như thuật toán phân cụm đồ thị, thuật toán Girvan-Newman, sử dụng độ đo trung gian để phát hiện cấu trúc cộng đồng mạng xã hội và thuật toán phát hiện các cộng đồng gối nhau. 2.1. Bài toán phát hiện cộng đồng trên đồ thị mạng xã hội Bài toán: Phát hiện cộng đồng trong mạng xã hội và đưa ra danh sách những đỉnh mạng thuộc từng cộng đồng đó. Đầu vào: Đồ thị mạng xã hội G = (V, E) gồm tập V có các đỉnh: v1, v2,…, vn và tập E các liên kết E = {(vi,vj)}. Đầu ra: Tập các cộng đồng Ci và tập hợp các đỉnh thuộc các cộng đồng đó: {C1, C2,..., Ck}. 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 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. Một tập hợp các đỉnh trên đồ thị được coi là một cộng đồng nếu mật độ cạnh bên trong nó cao hơn so với mật độ của các cạnh giữa đỉnh của nó và những cạnh bên ngoài. Phát hiện cộng đồng mạng xã hội là một trong những lĩnh vực nghiên cứu quan trọng nhất trong bài toán phân tích mạng xã hội. Phát hiện cộng đồng mạng xã hội có tầm quan trọng lớn trong xã hội học, sinh học và khoa học máy tính. Phát hiện cộng đồng mạng xã hội gặp thách thức lớn đặc biệt sự phức tạp 28 tính toán bị chi phối bởi hai yếu tố chính. Yếu tố đầu tiên phải kể đến là kích thước của mạng xã hội rất lớn. Yếu tố thứ hai liên quan đến bản chất của mạng xã hội là động, có cấu trúc phát triển tăng dần theo thời gian. Chính những thách thức này đã thu hút được một số lượng lớn các nhà nghiên cứu. Phát hiện cộng đồng nhằm mục đích nhóm các đỉnh liên kết mạnh theo các mối quan hệ giữa chúng để tạo thành các đồ thị con từ đồ thị ban đầu. Các mạng xã hội thường được mô hình hoá dưới dạng đồ thị nên việc phát hiện cộng đồng trên mạng xã hội dựa trên cơ sở lý thuyết đồ thị còn được gọi là bài toán phân vùng đồ thị hay phân cụm đồ thị. Trong nhiều thập kỷ qua, số các giải pháp phát hiện cấu trúc cộng đồng trên mạng xã hội đã được nghiên cứu là rất nhiều và thường xuyên [1], [2], [3], [20], [25]. Về cơ bản các thuật toán này được chia thành bốn nhóm thuật toán chính và dưới đây sẽ trình bày các thuật toán chính của các phương pháp này. 2.2. Thuật toán phân cụm phân cấp Nhóm thuật toán phát hiện cộng đồng truyền thông bao gồm các thuật toán phân cụm theo đồ thị, phân cụm phân cấp, phân cụm phân hoạch, phân cụm theo phổ và thuật toán phân chia. Đồ thị có thể chứa cấu trúc phân cấp, mỗi cộng đồng có thể là một tập hợp các cụm nhỏ ở các cấp độ khác nhau [11], [17]. Trong các trường hợp như vậy, các kỹ thuật phân cụm phân cấp được sử dụng để xác định cộng đồng nhiều cấp của đồ thị. Kỹ thuật phân cụm phân cấp dựa trên đo độ tương tự của đỉnh. Chúng không cần xác định trước kích thước và số lượng các cộng đồng. Nhưng chất lượng phát hiện cộng đồng không cao do việc lựa chọn độ đo tương tự của đỉnh. Thuật toán sắp xếp dữ liệu đã cho thành cấu trúc có dạng hình cây, cây 29 này được xây dựng theo kỹ thuật đệ quy, cây phân cụm xây dựng theo hai phương pháp Bottom-up và Top - down. Thuật toán phân cụm phân cấp điển hình sử dụng chiến lược phân cụm Top - down là thuật toán BIRCH (Balanced iterative reducing and clustering using hierarchies) [31]. Đầu vào: Cơ sở dữ liệu gồm n đối tượng, ngưỡng T, k Đầu ra: k cụm dữ liệu Bước 1. Thuật toán duyệt tất cả các đối tượng trong cơ sở dữ liệu và khởi tạo một cấu trúc cây. Một đối tượng được chèn vào đỉnh lá gần nhất tạo thành cụm con. Nếu đường kính của cụm con này lớn hơn ngưỡng T thì đỉnh lá được tách. Khi một đối tượng thích hợp được chèn vào đỉnh lá, tất cả các đỉnh trỏ tới gốc của cây được cập nhật với các thông tin cần thiết. Bước 2. Nếu cây hiện thời không có đủ bộ nhớ thì tiến hành xây dựng một cây nhỏ hơn bằng cách điều khiển bởi tham số T, khi tăng tham số T thì đồng thời sẽ làm nhập một số cụm con thành cụm lớn, làm cho cây nhỏ hơn. Bước 3. Thực hiện phân cụm, các đỉnh lá của cây lưu giữ các đại lượng thống kê của các cụm con. Thuật toán sử dụng các đại lượng thống kê này để áp dụng một số kỹ thuật phân cụm như k-means. Bước 4. Phân phối lại các đối tượng dữ liệu bằng cách dùng các đối tượng trọng tâm cho các cụm đã được khám phá từ bước 3. Thuật toán BIRCH gặp một số nhược điểm như: chất lượng của các cụm không được tốt, tham số T có ảnh hưởng rất lớn tới chất lượng phân cụm. Hạn chế đối với các thuật toán phân cụm đồ thị là các thuật toán phân cụm thường phụ thuộc vào khoảng cách cơ bản giữa các điểm để lựa chọn các điểm dữ liệu nào có quan hệ là gần nhau với mỗi điểm khác và các điểm dữ liệu 30 nào không có quan hệ hoặc có quan hệ là xa nhau với các điểm khác. Các thuật toán phân cụm đồ thị có độ phức tạp rất lớn khi thực hiện việc xác định nghiệm tối ưu toàn cục cho bài toán phân cụm dữ liệu. 2.3. Thuật toán phát hiện cộng đồng dựa trên tối ưu hoá độ đo đơn thể Độ đo đơn thể (Modularity) [1], [3], [13] được sử dụng để đánh giá chất lượng thuật toán phát hiện cộng đồng, độ đo có giá trị càng lớn thể hiện độ chính xác của thuật toán càng cao, chất lượng việc phát hiện cộng đồng được đánh giá là tốt. Thuật toán tìm kiếm tham lam của Newman [13], là thuật toán đầu tiên được đề xuất nhằm tối ưu hóa độ đo đơn thể (mô đun). Đây là một kỹ thuật tích tụ, trong đó ban đầu mỗi đỉnh thuộc về một mô đun riêng biệt, sau đó chúng được hợp nhất lặp lại dựa trên mức độ tăng các mô đun. Thuật toán có độ phức tạp thời gian tính toán là 𝑂(𝑛3), với n là số đỉnh của đồ thị. Thuật toán tìm kiếm tham lam điển hình là thuật toán Louvain. Thuật toán đơn thể hóa Louvain (Louvain modularity) được đề xuất bởi Blondel và các cộng sự [17] là một thuật toán heuristic tìm kiếm tham lam để phát hiện các cộng đồng ở đồ thị có trọng số và dựa trên tối ưu hoá độ đo đơn thể. Nó gán các cộng đồng khác nhau cho mỗi đỉnh và lặp lại việc hợp nhất các đỉnh dựa trên mức độ tăng của độ đo đơn thể. Nếu không đạt được, thì đỉnh vẫn ở trong cấu trúc cộng đồng của chính nó. Thuật toán được lặp đi lặp lại cho đến khi không thể cải tiến thêm nữa. Độ phức tạp tính toán của thuật toán là O(nlogn). 2.4. Thuật toán phát hiện cộng đồng dựa vào độ đo trung gian Bài toán phát hiện cộng đồng tập trung vào việc từ một đồ thị mạng xã hội, tìm ra những cụm, nhóm cộng đồng có mối liên hệ chặt chẽ với nhau. Qua trực quan có thể dễ dàng tìm ra những nhóm cộng đồng có độ trung tâm (tập trung) cao, nhưng không phải cộng đồng nào cũng được hình thành bằng các 31 mối liên hệ chặt chẽ và dễ thấy, một số cộng đồng có thể được hình thành ẩn. Điều quan trọng là phải tìm được sự phân phối của các cạnh giữa các đỉnh, từ đó đưa ra các cộng đồng tồn tại trong mạng xã hội. Thay vì việc tìm kiếm những đỉnh trong đồ thị có độ gắn kết cao với nhau, phương pháp phát hiện cộng đồng bằng thuật toán phân chia được đưa ra như một cách giải quyết hữu hiệu. Để tránh các khuyết điểm của phương pháp phân cụm phân cấp, thay vì cố gắng để xây dựng một giải pháp tìm cạnh trung tâm của cộng đồng, chúng ta đi tìm những cạnh có độ trung gian cao nhất, cạnh đó được gọi tên là cạnh nối (cầu nối) giữa các cộng đồng. Girvan-Newman [17] cho rằng khi các cộng đồng được gắn kết với nhau thì đường đi giữa cộng đồng này đến cộng đồng khác sẽ đi qua các cạnh nối giữa các cộng đồng với tần suất cao. Mục đích chính của thuật toán là tìm những cạnh nối đó. Thay vì việc xây dựng cộng đồng bằng cách thêm vào các cạnh có độ trung tâm cao nhất, chúng ta sẽ xây dựng bằng cách loạn bỏ dần dần các cạnh nối (cầu nối) từ đồ thị ban đầu. Khi đó, các cộng đồng trong mạng sẽ bị ngắt kết nối với nhau, ta có thể xác định được cách phân vùng đồ thị thành các phần nhỏ riêng biệt. Để làm được việc này, điều quan trọng nhất của thuật toán là việc tính toán như thế nào, sử dụng tính chất nào để phát hiện ra những cạnh nối này, từ đó loại bỏ chúng ra khỏi đồ thị. Thuật toán lần đầu tiên được đề xuất bởi Freeman [12]. Theo Freeman, các cạnh nối được coi là cạnh có số lượng con đường ngắn nhất giữa các cặp đỉnh khác nhau chạy qua nó. Cạnh nối có ảnh hưởng rất lớn đến dòng chảy của thông tin giữa các đỉnh khác, đặc biệt là trong trường hợp thông tin lưu truyền trong mạng chủ yếu theo con đường ngắn nhất. Thuật toán điển hình nhất trong các thuật toán chia này là thuật toán Girvan-Newman [13, 20]. Thuật toán Girvan-Newman (GN) duyệt qua mỗi đỉnh (nút) v một lần và tính số đường đi ngắn nhất từ v tới những đỉnh khác có đi qua từng cạnh đó. Tư 32 tưởng chính của thuật toán GN được thực hiện theo kỹ thuật phân cụm phân cấp. Input: Đồ thị mạng xã hội G = (V, E) Output: Tập các cộng đồng Bước 1. Tính độ trung gian của tất cả các cạnh trong mạng, Bước 2. Tìm những cạnh có độ trung gian lớn nhất và loại bỏ chúng, Bước 3. Tính lại độ trung gian của tất cả các cạnh trong các thành phần còn lại, Bước 4. Lặp lại từ bước 2 cho đến khi đến khi không có cạnh nào vượt qua ngưỡng của độ độ trung gian cho trước hoặc không còn cạnh trung gian. Ví dụ 2.2. Sử dụng thuật toán GN để phát hiện cộng đồng cho đồ thị sau Hình 2.1. Phát hiện cộng đồng mạng sử dụng Girven-Newman Thuật toán Girvan-Newman khá đơn giản và dễ hiểu. Toàn bộ thuật toán có thể được biểu diễn trong một dendrogram, ở đây ta có thể hiểu là thuật toán đi từ gốc đến các lá. Các nhánh của cây biểu diễn cho các phép loại bỏ cạnh để chia đồ thị thành các cộng đồng riêng rẽ. 33 Thuật toán Girvan-Newman đưa lại kết quả tương đối tốt trong nhiều trường hợp, mặc dù vậy nó vẫn gặp phải một số nhược điểm: 1. Thuật toán Girvan-Newman sử dụng phương pháp loại trừ đến khi không có cạnh nào vượt qua ngưỡng của độ trung gian cao nhất, vì vậy nên số lượng cộng đồng hoàn toàn không kiểm soát trước được. Bên cạnh đó, thuật toán sử dụng nhiều phép phân vùng, khó có thể xác định được phép phân vùng nào mang lại hiệu quả tốt nhất. 2. Do tại mỗi lượt thực hiện, thuật toán tính lại độ trung gian của mỗi cạnh liên quan sau khi xóa đi cạnh có độ trung gian lớn nhất nên độ phức tạp thời gian là khá cao. Giả sử với đồ thị n đỉnh, số cạnh phải xóa đi khỏi đồ thị là m cạnh thì ta cần lượng thời gian tính toán O(mn) cho mỗi lần lặp. Tổng thời gian chạy thuật toán O(m2n). Trong trường hợp xấu nhất, mỗi đỉnh được chia ra thành một cộng đồng riêng rẽ thì độ phức tạp thời gian của thuật toán sẽ lên đến O(n3). 3. Trên thực tế, mỗi đơn vị nút mạng có thể thuộc vào rất nhiều cộng đồng khác nhau. Ví dụ với một cá nhân A, đóng góp vai trò là một nút trên mạng xã hội có thể thuộc vào nhiều nhóm: Bạn cùng lớp, đồng nghiệp cùng công ty, anh em họ hàng trong gia đình… Nhưng với cách phân chia của Girvan-Newman không giải quyết được hiện tượng chồng chéo cộng đồng trên. 2.5. Phát hiện các cộng đồng gối nhau Trong thực tế trên mạng xã hội nói riêng, mạng truyền thông nói chung thì phần lớn các cộng đồng không rời nhau hoàn toàn mà chúng có thể gối nhau (overlap), chồng lấp hay giao nhau trong một phạm vi nào đó, nghĩa là một số đỉnh có thể thuộc nhiều hơn một cộng đồng. Ví dụ mạng cộng tác trong nghiên cứu khoa học (collaboration networks), một tác giả có thể tham gia nghiên cứu cùng với một số nhà khoa học khác trong nhiều nhóm khác nhau, hay trong 34 mạng logic-sinh học (bio-logical networks), một protein có thể tương tác với nhiều nhóm của các protein khác [1], [14]. Để phát hiện những cộng đồng vừa gối nhau vừa phân cấp, thuật toán EAGLE (agglomerativE hierarchicAl clusterinG based on maximaL cliquE) [14] đề cập đến tập các cliques cực đại và thực hiện theo kỹ thuật gộp nhóm (tích tụ dần). Đồ thị G có clique C là tập các đỉnh của một đồ thị con đầy đủ thuộc G, sao cho có cạnh nối giữa hai đỉnh bất kỳ của C và đường đi ngắn nhất giữa hai đỉnh v, w bất kỳ đó đều có độ dài 1 d(v, w) k. Cộng đồng mạng có mật độ liên kết tương đối dày đặc, khi tập các đỉnh (một cộng đồng) liên kết với phần còn lại của mạng nhiều hơn, mật độ liên kết của một clique là cao nhất trong tất cả các tập đỉnh con của đồ thị (mạng). Những cộng đồng có mật độ liên kết dày đặc này sẽ chứa đựng một clique lớn gọi là tâm (lõi) của cộng đồng. 2.5.1. Phát hiện các k-cliques trong mạng xã hội Trong mạng xã hội, có những nhóm con cố kết (cohesive subgroups) với nhau như các nhóm công tác, các đội thể thao, đảng phái chính trị, các giáo phái, hay những tổ chức bí mật như các các nhóm mafia, hay nhóm khủng bố, … Những nhóm cố kết như vậy được thể hiện trong lý thuyết đồ thị bằng các cliques hay k-clique (phường hội), k-club (câu lạc bộ) và k-clan (phe phái), ... Định nghĩa 2.1. Trong đồ thị G = (V, E), với v, w V, đường trắc địa (geodesics) là đường đi ngắn nhất nối hai đỉnh và khoảng cách giữa hai đỉnh, ký hiệu là g(v, w) là độ dài của đường trắc địa. Định nghĩa 2.2. Tập con cực đại các đỉnh C V được gọi là k-clique, nếu với mọi cặp đỉnh v, w (v w) thuộc C thì 1 ≤ g(v, w) ≤ k. 35 Nói cách khác, k-cliques là tập các đỉnh của đồ thị con của một đồ thị mà giữa hai đỉnh bất kỳ đều có đường đi đến được nhau với độ dài nhỏ hơn hoặc bằng k. Tập cực đại theo nghĩa không còn đỉnh nào khác trong đồ thị có khoảng cách nhỏ hơn hoặc bằng k tới các đỉnh của đồ thị con đó. Hiển nhiên, 1-clique là đồng nhất với clique, bởi khoảng cách giữa hai đỉnh bằng 1, nghĩa là có cạnh nối chúng với nhau. 2-clique tạo thành đồ thị con đầy đủ với độ dài các đường đi là 1 hoặc 2. Khoảng cách đường đi bằng 2 trong mạng xã hội có thể được xem như quan hệ “Bạn của bạn” (friend of a friend) hay các websites giống như LinkedIn, mỗi thành viên có thể liên kết qua 2 hay 3 cấp. Ví dụ 2.3. Hình 2.2. minh họa về 1-clique, 2-clique và 3-clique. Hình 2.2. Ví dụ 1-clique, 2-clique và 3-clique Mô hình k-clique cũng có một số hạn chế như một số đỉnh có thể cách xa nhóm, nghĩa là khoảng cách giữa hai đỉnh có thể tương ứng với đường đi bao gồm những đỉnh không nằm trong k-clique. Ví dụ, đồ thị trên Hình 2.3, có 2-cliques là C = {v1,v2, v3, v4, v5}, trong đó có hai đỉnh 4, 5 có khoảng cách là v2 (đi qua đỉnh v6), nhưng đỉnh v6 lại không nằm trong C. Để khắc phục những hạn chế đó, người ta sử dụng khái niệm đường kính (diameter) dựa trên mô hình k-clan và k-club. Đường kính của đồ thị G = (V, E) được xác định bởi 36 diam(G) = max g(u, v) với mọi u, v ∈ V. Định nghĩa 2.3. Một k-club là tập con S các đỉnh của đồ thị G sao cho đồ thị con được cảm sinh bởi S có đường kính nhỏ hơn hoặc bằng k. Hay nói cách khác, k-Club tương tự như k-clique nhưng định nghĩa chặt hơn. Các đỉnh trên đường dẫn ngắn nhất phải thuộc về đồ thị con đó Định nghĩa 2.4. k-Clan là một k-clique, mà đối với tất cả các đường dẫn ngắn nhất trong đồ thị con , khoảng cách nhỏ hơn hoặc bằng k. Hệ quả: mọi k-clan là k-club và k-clique. 𝑘 − 𝐶𝑙𝑎𝑛 = 𝑘 −𝐶𝑙𝑖𝑞𝑢𝑒 ⋂ 𝑘 − 𝐶𝑙𝑢𝑏 Lưu ý, để tìm tất cả các k-clan, trước tiên hãy tìm tất cả k-clique S, sau đó loại bỏ những k-clique có khoảng cách lớn hơn k trong đồ thị con cảm sinh. Hình 2.3. 2-cliques, 2-clan và 2-club 2.5.2. Thuật toán phát hiện k-clique Khai phá dữ liệu đồ thị để làm rõ hơn cấu trúc của đồ thị mạng xã hội, thông qua phân tích các nhóm con cố kết của mạng trên cơ sở phát hiện các k- clique. Với thuật toán hai pha (two-phase) tìm các cộng đồng k-clique như sau: Input: Đồ thị G và khoảng cách k. Output: các k-clique được bao phủ. Tìm tất cả các k-clique lớn nhất trong đồ thị. 1.
1.1 Xác định bậc kth của đồ thị. 1.2 Áp dụng thuật toán tìm clique lớn nhất. 37 2. Tìm các k-clique được bao phủ trong đồ thị G. 2.1 Áp dụng thuật toán bao phủ. Thuật toán tìm k-clique cực đại Biến đổi đồ thị G = (V, E) sang đồ thị G = (V, E)k sao cho với mọi i, j V, d(i, j) ≤ k. Đồ thị G = (V, E)k được tạo ra từ bậc kth của đồ thị G có cùng tập đỉnh như G và một cạnh mới giữa hai đỉnh nếu giữa chúng có một liên kết với độ dài lớn nhất là k. Tìm đồ thị con đầy đủ lớn nhất của một đồ thị cho trước chính là bài toán tìm clique cực, bằng cách đi tìm giới hạn dưới của bài toán cực đại với các phương pháp heuristics [17] và tìm kiếm (meta-heuristic) Tabu Search [27]. Giả sử n = |S| là lực lượng (số đỉnh) của clique S và Ak(S) là tập con các đỉnh có k cạnh liên thuộc trong S. Vậy định nghĩa A(S) là tập các đỉnh liền kề 𝑛
với các đỉnh của S và A(S) có thể chia thành các nhóm con:A(S) = ⋃
𝑘=1 𝐴𝑘(𝑆) Tập hợp số các đỉnh |V| của đồ thị bằng tổng số đỉnh liên thuộc A(S) và 𝑛
𝑘=1 . không liên thuộc A0(S), ta có ∑ |𝐴𝑘(𝑆)| + 𝑛 Gọi N(S) là tập lân cận khi chúng sinh ra clique S’ trong tập S và: N+ (S) = {S´ : S´= S ∪{vi}, vi ∈ An(S)} N– (S) = {S´ : S´= S \{vi}, vi ∈ S} N0 (S) = {S´ : S´= S ∪{vi}\{vk}, vi ∈ An-1(S), vk ∈ S} Khi S là clique hiện thời thì S* là clique cực đại đã tìm được, T là danh sách trong bảng tabu và N(S) là các cấu trúc lân cận. Thuật toán: Clique cực đại theo đánh giá (heuristic)Tabu:
Input: Gk, đồ thị con đầy đủ (clique) S Output: clique S* 1. T = ∅; S* = S; 38 2. while 2.1. 2.2. cập nhật T;} 2.2.1. if (N+(S) \ T ≠ null) then chọn S’ là cực đại
else if (N0(S) \ T ≠ null) then {chọn S’ là cực đại;
else {chọn S’ trong N–(S) là cực đại; cập nhật T; } 2.3. cập nhật S = S’ ; 2.4. if (|S| > |S*|) S* = S; 3. }; 4. return S*; Tìm một clique lớn nhất trong đồ thị Gk tương đương với việc tìm một k-clique lớn nhất trong đồ thị G. Để tạo ra một tập hợp lớn hơn với các k-clique cực đại, bằng cách thuật toán bắt đầu nhiều lần (multi-start) để gọi thuật toán tìm clique cực đại theo đánh giá Tabu [27]. 2.5.3. Thuật toán EAGLE Để phát hiện những cộng đồng vừa gối nhau vừa phân cấp, thuật toán EAGLE (agglomerativE hierarchicAl clusterinG based on maximaL cliquE) [14] đề cập đến tập các cliques cực đại và thực hiện theo kỹ thuật gộp nhóm (tích tụ dần). Đồ thị G có clique C là tập các đỉnh của một đồ thị con đầy đủ thuộc G, sao cho có cạnh nối giữa hai đỉnh bất kỳ của C và đường đi ngắn nhất giữa hai đỉnh v, w bất kỳ đó đều có độ dài 1 d(v, w) k. Cộng đồng mạng có mật độ liên kết tương đối dày đặc, khi tập các đỉnh (một cộng đồng) liên kết với phần còn lại của mạng nhiều hơn, mật độ liên kết của một clique là cao nhất trong tất cả các tập đỉnh con của đồ thị (mạng). Những cộng đồng có mật độ liên kết dày đặc này sẽ chứa đựng một clique lớn gọi là tâm (lõi) của cộng đồng. Thuật toán EAGLE được thực hiện qua hai giai đoạn: 39 1. Tạo ra một cây dendrogram: a) Tìm tất cả các cliques cực đại trên mạng và bỏ qua những clique cực đại thứ cấp, những clique còn lại và các đỉnh thứ cấp (bao gồm một đỉnh duy nhất) được thực hiện như là những cộng đồng khởi tạo ban đầu, tính độ tương đồng giữa các cặp cộng đồng, b) Chọn những cặp cộng đồng có độ tương đồng cực đại và kết hợp chúng thành một cộng đồng mới, tính độ tương đồng giữa cộng đồng mới các cộng đồng khác, c) Lặp lại bước b. cho đến khi chỉ còn lại một cộng đồng. 2. Chọn những vị trí cắt thích hợp để chia cây dendrogram thành các cộng đồng: Xác định độ đo phù hợp để đánh giá quá trình phân cụm và độ đo sự phân chia của các cộng đồng gối nhau [13], với độ đo được sử dụng là EQ được định nghĩa như sau: 𝐸𝑄 = ] (2.10) [𝐴𝑣𝑤 − 1
2𝑚 𝑘𝑣𝑘𝑤
2𝑚 1
𝑂𝑣𝑂𝑤 ∑
𝑖 ∑
𝑣∈𝐶𝑖,𝑤∈𝐶𝑖 Trong đó, Ov là số các cộng đồng có chứa đỉnh v. Trong thuật toán EAGLE, độ tương đồng S giữa cộng đồng C1 và C2 được định nghĩa như sau: 𝑣∈𝐶1,𝑤∈𝐶2,𝑣≠𝑤 𝑆 = ] (2.11) ∑ [𝐴𝑣𝑤 − 1
2𝑚 𝑘𝑣𝑘𝑤
2𝑚 Trong đó, Avw là phần tử của ma trận liền kề của đồ thị mạng (đồ thị vô 1 hướng, không trọng số). Nếu có cạnh nối v với w thì Avw = 1, ngược lại Avw = 2 0. Tổng số cạnh trên mạng là 𝑚 = và mức độ của đỉnh v là kv. ∑ 𝐴𝑣𝑤
𝑣𝑤 40 Khi mỗi đỉnh chỉ thuộc một cộng đồng thì EQ = 0, EQ có giá trị cao sẽ thể hiện cấu trúc cộng đồng nhiều hơn. Ví dụ 2.4. Đồ thị (mạng) ban đầu Hình 2.4.(a) có 23 đỉnh, để mô phỏng mộ đồ thị có các cộng đồng chồng chéo và phân cấp, ta loại bỏ cạnh nối các đỉnh 9 và 13 và thêm các cạnh nối giữa đỉnh 10, 15 và 10, 13 Hình 2.4.(b). Hình 2.4. (a), (b). Mạng ban đầu Thuật toán nhanh tìm cấu trúc cộng đồng của Newman [20] phân vùng mạng dựa trên tối ưu hóa mô dun tìm thấy được ba cộng đồng, áp dụng thuật toán nhiều lần sẽ tìm thấy các cộng đồng con bên trong cộng đồng lớn đã tìm được trong Hình 2.5.(c). Nhưng sự chồng chéo của các cộng đồng không được thể hiện rõ ràng. 41 Hình 2.5. (c). Các cộng đồng được phát hiện bởi thuận toán của Newman Với thuật toán k-clique trong Hình 2.6.(d). cho thấy các cấu trúc cộng đồng được tìm thấy rõ ràng hơn nhưng không thể hiện rõ sự phân cấp. Hình 2.6.(d). Các cộng đồng được phát hiện bởi thuật toán k-clique 42 Thuật toán EAGLE cần tìm tất cả các cliques trong mạng, với các cliques cực đại sẽ phát hiện những cộng đồng gối nhau và phân cấp, tuy nhiên không phải tất cả các cliques cực đại được sử dụng. Những clique cực đại mà đỉnh của chúng là đỉnh của những cliques cực đại lớn hơn, được gọi là cliques cực đại thứ cấp (subordinate maximal cliques). Trong hình 2.7.(e), thuật toán tìm thấy các cấu trúc cộng đồng thể hiện sự chồng chéo và phân cấp rõ ràng, cộng đồng này được chia thành hai cộng đồng nhỏ hơn và có các đỉnh chung là 10, 11, 12. Hình 2.7.(e). Các cộng đồng thể hiện sự chồng chéo và phân cấp rõ ràng được phát hiện bởi thuật toán EAGLE Ví dụ 2.5. Trong Hình 2.6.(d) hai đỉnh 4 và 23 tạo thành một clique cực đại thứ cấp, bởi đỉnh 4 là đỉnh của cliques cực đại lớn hơn là {1, 2, 3, 4, 5, 6} và đỉnh 23 là đỉnh của cliques cực đại khác lớn hơn bao gồm, {18, 20, 21, 23}, {18, 20, 22, 23} và {18, 19, 22, 23}. Các clique cực đại thứ cấp thường có kích cỡ (số đỉnh) nhỏ và có thể dẫn đến những kết quả thuật toán không mong muốn. 43 Với k là một giới hạn (ngưỡng) được đặt ra để loại bỏ những cliques cực đại có số đỉnh nhỏ hơn k, và sẽ loại bỏ đi những cliques cực đại không phải là thứ cấp. Giá trị của k nhỏ thì những cliques cực đại thứ cấp bị bỏ qua, ngược lại giá trị của k cao thì những cliques cực đại không phải là thứ cấp bị sót lại. Giới hạn của k trong các mạng lớn từ 3 đến 6, trong Hình 2.6. giá trị giới hạn thích hợp là 3 và 4. 2.5.4. Đánh giá thuật toán Tiếp theo chúng ta phân tích độ phức tạp của thuật toán. Giả sử n là số đỉnh của đồ thị mạng, s là số clique cực đại được khởi tạo ban đầu của thuật toán và h là số cặp clique cực đại có quan hệ lắng giềng (neighbors) với nhau (hai cliques liên kết với nhau bởi một số cạnh hoặc gối nhau). Chúng ta xét giai đoạn đầu của thuật toán. Trong Bước 1., chúng ta cần thực hiện O(n2) phép toán để tính độ tương tự giữa từng cặp cộng đồng được khởi tạo ban đầu. Ở Bước 2., ta chỉ xét những cặp cộng đồng lắng giềng của nhau. Mỗi phép chọn phải thực hiện h phép toán và thời gian kết nối chúng nhiều nhất là O(n). Vậy, số phép toán cần thiết để thực hiện giai đoạn một của thuật toán là O(n2 + (h + n)s). Giai đoạn hai cần tính giá trị EQ tương ứng với mỗi độ phủ. Trong cài đặt, chúng ta tính giá trị EQ cho lần phát hiện đầu tiên và cập nhật lại sau mỗi lần kết nối hai cộng đồng được lựa chọn để tạo ra một cộng đồng mới. Thời gian cập nhật nhiều nhất là cỡ n2. Ngoài ra, chúng ta cần tìm tất cả các cliques cực đại trên đồ thị mạng. Đây là bài toán được biết là bài toán không phải đa thức. Tuy nhiên, trong các mạng thực tế, việc tìm tất cả các cliques cực đại là khá đơn giản bởi chúng khá thưa (sparseness). So với thuật toán phát hiện nhanh k- clique của Newman thì thuật toán EAGLE thực hiện chậm hơn. Do vậy, vấn đề là cần cải tiến EAGLE để toán phát hiện nhanh k-clique trên các mạng thực tế. 44 2.6. Kết luận chương 2 Chương 2 trình bày bài toán phát hiện cộng đồng, gồm những thuật toán phân cụm phân cấp đồ thị, thuật toán phát hiện cộng đồng dựa vào độ trung gian và GIRVAN-NEWMAN, thuật toán phát hiện cộng đồng gối nhau EAGLE dựa vào tập các clique cực đại. Thuật toán GIRVAN-NEWMAN được ứng dụng thực nghiệm để phát hiện cộng đồng trong mạng xã hội thực được trình bày ở chương 3. 45 CHƯƠNG 3 ỨNG DỤNG THUẬT TOÁN GIRVAN-NEWMAN TRONG PHÁT HIỆN CỘNG ĐỒNG MẠNG XÃ HỘI 3.1. Mô tả bài toán phát hiện cộng đồng mạng xã hội Bài toán: Phát hiện cộng đồng trong mạng xã hội và đưa ra danh sách những nút mạng thuộc từng cộng đồng đó. Đầu vào: Đồ thị mạng xã hội G = (V, E) gồm tập V có đỉnh: v1, v2,…,vn và tập E các liên kết E = {(vi,vj)}. Đầu ra: Tập các cộng đồng Ci và tập hợp các đỉnh thuộc các cộng đồng đó: {C1, C2,...,Cn} Mục tiêu của bài toán là từ các mạng xã hội cho trước được biểu diễn bằng đồ thị, 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 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. 3.2. Chương trình phát hiện cộng đồng mạng xã hội 3.2.1. Bộ cơ sở dữ liệu Hiện nay có rất nhiều bộ cơ sở dữ liệu về mạng xã hội được cung cấp miễn phí. Trong luận văn này, tôi sử dụng các bộ cơ sở dữ liệu như sau: - Simple_network và p_n: Đây là bộ dữ liệu gồm 14 đỉnh và 17 cạnh được tạo ra nhằm mục dích demo về mối quan hệ cộng đồng trong mạng. - Karate: Mạng xã hội về mối quan hệ bạn bè giữa 34 thành viên trong một câu lạc bộ karate tại một trường đại học ở Hoa Kỳ vào những năm 1977. Bộ dữ liệu này gồm 34 đỉnh và 78 cạnh. Bộ dữ liệu này được Zachary cùng các cộng sự xây dựng vào năm 1977 [28]. 46 - Dolphins: là một mạng xã hội vô hướng về mối quan hệ giữa 62 con cá heo trong một cộng đồng sống ở New Zealand được Lusseau cùng các cộng sự xây dựng năm 2003 [10]. Bộ dữ liệu này gồm 62 đỉnh và 159 cạnh. - Football: là mạng các trận bóng đá giữa các trường đại học trong kỳ mùa thu năm 2000 của Mỹ. Bộ dữ liệu này được Girvan và Newman xây dựng năm 2002 [19] bao gồm 115 đỉnh và 613 cạnh. - Amazon: là mạng mua sắm sản phẩm trực tuyến. Bộ dữ liệu Amazon được xây dựng dựa trên việc theo dõi các sản phẩm thường được cùng mua với nhau. Trong bộ dữ liệu này, mỗi đỉnh đại diện cho một sản phẩm và mỗi cạnh tương ứng là các sảm phẩm thường được mua với nhau. Bộ dữ liệu bao gồm 2 loại, bộ Amazon_small bao gồm 3,225 đỉnh và 10,262 cạnh. - Youtube: là một mạng chia sẻ video nổi tiếng trên thế giới được xây dựng bởi Google. Trong bộ dữ liệu Youtube, mỗi người sử dụng được đại diện bởi một đỉnh, mỗi thành viên này đều thuộc một hoặc nhiều nhóm quan hệ bạn bè được biểu diễn bởi các cạnh. Bộ dữ liệu này bao gồm 4,890 đỉnh, 20,787 cạnh. - DBLP: đây là mạng cộng tác giữa các nhà khoa học, trong mạng này, mỗi đỉnh thể hiện một tác giả và mỗi cạnh kết nối các tác giả với nhau nếu giữa họ đã có chung một bài báo. Bộ dữ liệu này bao gồm 10824 đỉnh, 38732 cạnh đối với DBLP_small. Các bộ dữ liệu: Amazon, Youtube, DBLP đều được Jaewon Yang và Jure Leskovec xây dựng năm 2015 [30]. 47 Bảng 3.1. Mô tả chi tiết về các bộ dữ liệu được sử dụng trong phát hiện cộng đồng mạng Bộ dữ liệu Số đỉnh Số cạnh Số cộng đồng Simple_network 14 17 4 P_n 14 24 - dolphins 62 1,159 2 football_network 115 613 12 karate 34 78 2 Amazon_small 3,225 10,262 - Dblp_small 10,824 38,732 - Youtube_small 4,890 20,787 - Amazon_big 334,863 925,872 75,149 Dblp_big 317,080 1,049,866 13,477 3.2.2. Môi trường thử nghiệm Thuật toán Girvan-Newman, thuật toán Louvian và thuật toán tìm EAGLE trong phát hiện cộng đồng đều sử dụng chung môi trường thử nghiệm như sau: - Phần cứng: Các thông tin về phần cứng được sử dụng trong luận văn thể hiện ở bảng 3.2. 48 Bảng 3.2. Thông tin phần cứng được sử dụng Thông tin phần cứng Chỉ số CPU i7-4790 24 core 2.4GHz RAM 64GB DDR4 tốc độ bus:2666Mhz GPU Không SSD 1TB NVME tốc độ 3GB/s OS Ubuntu 20.04 phiên bản 64bit - Phần mềm và ngôn ngữ lập trình Các thuật toán được sử dụng để phát hiện cộng đồng mạng đều được lập trình bằng ngôn ngữ Python phiên bản 3.7. Trình biên dịch python và các thư viện mặc định đều được cài đặt thông qua phần mềm Anaconda được tải về tại địa chỉ: https://www.anaconda.com/distribution/ Chúng tôi sử dụng trình hỗ trợ soạn thảo lập trình (IDE) là Pycharm bản Community (Free) được tải về tại: https://www.jetbrains.com/pycharm/download - Thư viện hỗ trợ Để hỗ trợ cho việc đọc, ghi và biểu diễn đồ thị chúng tôi sử dụng thư viện có sẵn là networkx của python, nếu chưa có thư viên này thì chúng ta có thể cài thông qua lệnh: “pip install networkx”. Phiên bản networkx được sử dụng trong luận văn này là bản 2.4 Để hiển thị đồ thị cũng như lưu lại dưới dạng tệp tin ảnh thì chúng tôi sử dụng thư viên matplotlib có sẵn trong Anaconda. Nếu chưa có, chúng ta có thể 49 cài đặt thư viện matplotlib theo dòng lệnh “conda install matplotlib”. Phiên bản được sử dụng trong luận văn này là bản 3.2.0 3.2.3. Thử nghiệm và đánh giá - Đối với bộ cơ sở dữ liệu nhỏ (<200 đỉnh): Hình 3.1. mô phỏng số cộng đồng tìm được dựa theo 2 thuật toán Girvan- Newman và EAGLE trên bộ dữ liệu simple network, trong đó hình (a) sử dụng thuật toán Girvan-Newman và hình (b) sử dụng thuật toán EAGLE. Có thể thấy, trên hình (b) có một số đỉnh không được tô màu, các đỉnh này có thể thuộc nhiều cộng đồng khắc nhau, do thuật toán EAGLE tìm cộng đồng gối nhau trong đồ thị nên có một số đỉnh sẽ có thể vừa thuộc cộng đồng này, vừa thuộc cộng đồng kia, như trong hình 3.1b, đỉnh 7 có thể thuộc cộng đồng {1,2,3} hoặc cộng đồng {4,5,6} hoặc kết hợp với đỉnh 8 cho ra cộng đồng mới là {7,8}. Hình 3.1. Mô phỏng số cộng đồng tìm được trong đồ thị simple_network. Kết quả phát hiện cộng đồng của 2 thuật toán Girvan-Newman và EAGLE đối với bộ dữ liệu dolphin được trình bày trong hình 3.2. 50 Hình 3.2. Mô phỏng số cộng đồng tìm được trong bộ dữ liệu dolphin. Trong đó, (a) và (b) lần lượt là kết quả tìm kiếm cộng đồng của 2 thuật toán Girvan-Newman và EAGLE. Hình 3.3. Mô phỏng số cộng đồng tìm được trong bộ dữ liệu karate. 51 Hình 3.4. Mô phỏng số cộng đồng tìm được trong bộ dữ liệu football. Hình 3.3. và hình 3.4. thể hiện kết quả tìm kiếm cộng đồng của 2 thuật toán đã nêu. Nhìn hình ảnh kết quả ta có thể thấy, thuật toán Girvan-Newman cho kết quả tốt hơn thuật toán EAGLE, tuy nhiên đối với bộ dữ liệu nhỏ rất khó có thể nhìn ra điều đó, để có cái nhìn tổng quan hơn, chúng ta xét đến các bộ dữ liệu lớn. - Đối với bộ cơ sở dữ liệu lớn (>3000 đỉnh): Hình 3.5. Mô phỏng kết quả tìm kiếm cộng đồng trên bộ dữ liệu amazon_small 52 Như hình 3.5. chúng ta có thể thấy kết quả tìm kiếm cộng đồng bằng thuật toán Girvan-Newman (hình (a)) cho cộng đồng rõ ràng và chính xác hơn so với thuật toán EAGLE (hình (b)). Việc hiển thị các đồ thị lớn là một vấn đề khó khăn, đây cũng là một thách thức lớn đối với các nhà khoa học. Để so sánh một cách chi tiết và rõ ràng hơn giữa hai thuật toán Girvan- Newman và EAGLE. Chúng ta có thể theo dõi bảng 3.3. 53 Bảng 3.3. Bảng tổng hợp kết quả của 2 thuật toán Girvan-Newman và k-cliques trên các bộ dữ liệu khác nhau Girvan-Newman 4 ~0 5 ~0 4 14 17 simple_network 3 ~0 3 ~0 3 14 24 p_n 2 ~0 3 ~0 3 34 78 karate 2 ~0 4 ~0 4 62 159 dolphins 12 0.02 6 ~0 4 115 613 football - 1.27 57 0.18 205 3,225 10,262 amazon_small - 23.17 95 6.7 63 4,890 20,787 youtube_small - 27.23 241 0.278 1,441 10,824 38,732 dblp_small 4.2 109,192 317,080 1,049,866 13,477 1199 112,043 dblp_big 5.45 213,951 334,863 925,872 75,149 541.17 215,108 amazon_big 54 Nhìn bảng 3.3. chúng ta có thể thấy thời gian chạy của thuật toán EAGLE nhanh hơn nhiều so với thuật toán Girvan-Newman. Do thuật toán EAGLE tìm kiếm cộng đồng gối nhau, do đó số lượng cộng đồng tìm được bằng thuật toán này thường lớn hơn so với thuật toán Girvan-Newman. Đối với 3 bộ dữ liệu amazon_small, dblp_small và youtube_small, hiện tại chưa có công bố về số lượng cộng đồng và danh sách cộng đồng chính xác của các bộ dữ liệu này, đo đó cột “Cộng đồng đúng” ở 3 bộ dữ liệu này được ký hiệu bởi dấu “-”. ~0 tương ứng là thời gian thực hiện của thuật toán xấp xỉ bằng 0 giây. 3.3. Kết luận chương 3 Chương này trình này thử nghiệm 2 thuật toán phát hiện cộng đồng là Girvan-Newman và EAGLE. Qua quá trình thử nghiệm, chúng ta rút ra được một số nhận xét sau: - Về độ chính xác: Thuật toán Girvan-Newman cho kết quả tốt hơn thuật toán EAGLE. - Về thời gian chạy: Thuật toán Girvan-Newman chậm hơn thuật toán tìm kiếm EAGLE. - Với các bộ dữ liệu chứa đồ thị có kích thước rất lớn (hơn 1 triệu đỉnh và hơn 2 triệu cạnh) thì thuật toán Girvan-Newman không thể xử lý được. 55 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết 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à những vấn đề được nhiều nhà nghiên cứu quan tâm trong thời đại hiện nay. Luận văn tập trung nghiên cứu độ đo trung gian và thuật toán phát hiện cộng đồng trên mạng xã hội. Các kết quả chính mà luận văn đạt được như sau: Trình bày mạng xã hội và các các độ đo trên đồ thị mạng xã hội. Giới thiệu thuật toán phát hiện cấu trúc cộng đồng trên mạng xã hội: thuật toán phân cụm đồ thị, thuật toán Girvan–Newman, thuật toán phát hiện k- cliques, thuật toán EAGLE phát hiện cộng đồng gối nhau. Thử nghiệm thuật toán Girvan-Newman và thuật toán tìm EAGLE để phát hiện cộng đồng trong mạng xã hội. Các thuật toán được chạy trên các bộ dữ liệu chuẩn kích thước số đỉnh và số cạnh khác nhau. Hướng phát triển - Áp dụng cho vùng dữ liệu lớn và tổng quan hơn như các mạng xã hội Facebook, Twitter, Google… Nhưng đòi hỏi cấu hình máy chủ phải rất lớn. - Cài đặt và thử nghiệm các thuật toán khác như CONGA. 56 TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt ĐỒNG TRÊN MẠNG XÃ HỘI, Báo cáo đề tài VAST01.09/14-15, 2015 [1]. Đoàn Văn Ban (chủ nhiệm đề tài), PHÂN TÍCH, PHÁT HIỆN CẤU TRÚC CỘNG [2]. Hoàng Thị Thanh Giang, Nguyễn Thị Thúy Hạnh, Nguyễn Hoàng Huy, So sánh một số thuật toán phân cụm phổ cho dữ liệu biểu diễn gene, Tạp chí Khoa học và Phát triển, tập 13, số 6: 1008-1015, 2015. [3]. Lê Minh Tiến, Tổng quan phương pháp phân tích mạng xã hội trong nghiên cứu xã hội, Tạp chí Khoa học Xã hội, số 09, tr. 66-77, 2006. Tài liệu tiếng Anh [4]. Arif, T., The Mathematics of Social Network Analysis: Metrics for Academic Social Networks, International Journal of Computer Applications Technology and Research, Volume 4 - Issue 12, 889 - 893, (2015), ISSN: 2319-8656. [5]. Brandes, U., A faster algorithm for betweenness centrality. Journal of Mathematical Sociology, 25(2):163-177. (2001). [6]. Brandes, U., Pich, C., Centrality estimation in large networks. International Journal of Bifurcation and Chaos. (2007). [7]. Cavique, Luís, Armando B. Mendes, and Jorge MA Santos. "An algorithm to discover the k-clique cover in networks." Portuguese Conference on Artificial Intelligence. Springer, Berlin, Heidelberg, 2009. [8]. Chuan Shi, Yanan Cai, Di Fu, Yuxiao Dong, Bin Wu, A link clustering based overlapping community detection algorithm, Data & Knowledge Engineering 87 (2013) 394–404 57 [9]. Clauset, A., Newman, M. E., and Moore, C.: Finding community structure in very large networks. Physical Review E, 70(6):066111, (2004). [10]. D. Lusseau, K. Schneider, O. J. Boisseau, P. Haase, E. Slooten, and S. M. Dawson, Behavioral Ecology and Sociobiology 54, 396-405 (2003). [11]. Dutta, K.: Graph Theoretic Approach to Social Network Analysis, International Journal of Scientific Research in Science and Technology, (4) 2: 1550-1557, (2018). [12]. Freeman, L.C. A set of measures of centrality based on betweenness. Sociometry 40, 35-41, 1977 [13]. Girvan, M., Newman, M. E. J.: Community structure in social and biological networks, Proceedings of the National Academy of Sciences of the United States of America, Vol.99, No.12, pp. 7821-7826 (2002). [14]. Gregory, S.: An Algorithm to Find Overlapping Community Structure in Networks. In: Kok, J.N., Koronacki, J., López de Mántaras, R., Matwin, S., Mladeni$, D., Skowron, A. (eds.) PKDD 2007. LNCS (LNAI), vol. 4702, pp. 91–102. Springer, Heidelberg (2007) [15]. Huawei Shen, Xueqi Cheng, Kai Cai, and Mao-Bin Hu, Detect overlapping and hierarchical community structure in networks, Physica A 388 (2009) 1706-1712. [16]. Johnson D.S.: Approximation algorithms for combinatorial problems, Journal of Computer and System Science, 9, 256-278 (1974) [17]. Kernighan, B. W., and Lin, S.: An efficient heuristic procedure for partitioning graphs. Bell system technical journal, 49(2), 291-307 (1970). [18]. M. E. J. Newman, Mixing patterns in networks. Phys. Rev. E 67, 026126 (2003). 58 [19]. M. Girvan and M. E. J. Newman, Proc. Natl. Acad. Sci. USA 99, 7821-7826 (2002). [20]. M.E.J. Newman and M. Girvan (2003), Finding and evaluating community structure in networks. Preprint cond-mat/0308217. [21]. Nam, P. Nguyen., Thang, N. Dinh., Ying, Xuan., and My T. Thai.: Adaptive algorithms for detecting community structure in dynamic social networks, in INFOCOM, 2011 Proceedings IEEE, pp. 2282 - 2290, (2011). [22]. Newman, Mark EJ. "Fast algorithm for detecting community structure in networks." Physical review E 69.6 (2004): 066133 [23]. Nicosia, Vincenzo, et al. "Extending the definition of modularity to directed graphs with overlapping communities." Journal of Statistical Mechanics: Theory and Experiment 2009.03 (2009): P03024. [24]. Ruhnau, B.: Eigenvector-centrality – a node-centrality? Social Networks 22(4): 357-365 (2000). [25]. Santo Fortunato (2010), Community detection in graphs, Technical Report, Complex Networks and Systems Lagrange Laboratory, ISI Foundation, Torino, ITALY, arXiv:0906.0612v2 (2010). [26]. Scott, J.: Social network analysis: a Handbook. London: SAGE publications, (1991). [27]. Soriano P., Gendreau M.: Tabu search algorithms for the maximum clique, In: Clique, Coloring and Satisfiability, Second Implementation Challenge DIMACS, Johnson D.S., Trick M.A. (Eds.), 221-242 (1996) [28]. W. W. Zachary, An information flow model for conflict and fission in small groups, Journal of Anthropological Research 33, 452-473 (1977). 59 [29]. Wikipedia, Link: https://vi.wikipedia.org/wiki/Cư_dân_mạng, Truy cập ngày 14 tháng 3 năm 2020. [30]. Yang, Jaewon, and Jure Leskovec. "Defining and evaluating network communities based on ground-truth." Knowledge and Information Systems 42.1 (2015): 181-213. [31]. Zhang, T., Ramakrishnan, R., Livny, M.: "BIRCH: an efficient data clustering method for very large databases". Proceedings of the 1996 ACM SIGMOD international conference on Management of data - SIGMOD'96. pp. 103-114. doi:10.1145/233269.233324, (1996). [32]. Zhao, F. and Tung, A. K.: Large scale cohesive subgraphs discovery for social network visual analysis. VLDB, pages 85-96, (2012).EAGLE
Bộ dữ liệu
Số đỉnh
Số cạnh
Cộng đồng đúng
Thời gian
Thời gian
Cộng đồng
Cộng đồng
(giây)
(giây)