Đại Học Quốc Gia Tp. Hồ Chí Minh
Trường Đại Học Công Nghệ Thông Tin
Báo cáo môn học Cơ Sở Dữ Liệu Nâng Cao
TÌM HIỂU MẠNG XÃ HỘI VÀ CÁC KỸ THUẬT
PHÂN TÍCH
GVHD : PGS.TS Đỗ Phúc
Học Viên : Đỗ Duy Phúc
Mã Học Viên: CH1101122
Lớp: Cao Học K6
Tháng 8 năm 2012
Lời Mở Đầu
Ngành nghiên cứu các mạng lưới là một chủ đề nghiên cứu sôi động và thu hút bởi khả
năng mô hình hóa của chúng cho nhiều hệ thống phức tạp trong thế giới thực. Trong đó,
mạng xã hội là một trong những đối tượng nghiên cứu phức tạp và thú vị nhất. Đặc biệt là
với sự xuất hiện và phát triển mạnh mẽ của các trang mạng xã hội ảo hiện nay trên
Internet.
Với khả năng thu hút người dùng mạnh mẽ và đông đảo, các trang mạng xã hội tuy ảo
nhưng lại là nơi thu nhặt được lượng thông tin khổng lồ từ người dùng ở thế giới thật.
Khi phân tích khối lượng thông tin này, chúng ta sẽ có được nhiều thông tin, tri thức quý
giá cho nghiên cứu khoa học và ứng dụng vào thực tiễn.
Bài viết này sẽ giới thiệu về mạng xã hội, đồng thời giới thiệu các khái niệm và kỹ thuật
phân tích nhằm thu nhận các thông tin ở nhiều khía cạnh khác nhau của một mạng xã hội.
Các thông tin thu được sẽ cho ta một cái nhìn thấu đáo về bản chất của các mạng lưới, về
các cá thể, tổ chức tham gia vào đó và mối quan hệ giữa chúng. Điều này có thể giúp ích
cho các nhà khoa học nghiên cứu về bản chất xã hội hay hỗ trợ các nhà quản lý trong việc
đưa ra các quyết định, chính sách ảnh hưởng đến các thành phần trong mạng lưới do
mình kiểm soát.
Mục Lục
I. Giới Thiệu Mạng Xã Hội
Một mạng xã hội (social network) là một cấu trúc lý thuyết trong xã hội học có ý nghĩa
cho việc nghiên cứu các mối quan hệ giữa các cá thể, nhóm, tổ chức, hoặc cho cả một
cộng đồng. Cụ thể hơn, nó là một cấu trúc được tạo thành từ một tập các tác nhân (actor
- có thể xem là các cá thể người hoặc các tổ chức) và các mối quan hệ hai ngôi giữa
những tác nhân này. Với quan điểm theo hướng mạng xã hội như trên, cung cấp cho ta
một cách rõ ràng để phân tích cấu trúc của toàn bộ thực thể xã hội. Các nghiên cứu về các
cấu trúc này sử dụng các kỹ thuật phân tích mạng xã hội (social network analysis) để
xác định các mô hình địa phương và toàn cục, định vị được các cá thể có tính ảnh hưởng,
và kiểm tra được các động lực của mạng. Các kỹ thuật phân tích này sẽ được trình bày ở
các phần tiếp theo của bài báo cáo này.
Bên cạnh các mạng xã hội phản ánh đời sống thực, thì trên Internet hiện nay có sự xuất
hiện nổi bật của các trang mạng xã hội, hay còn gọi là các mạng xã hội ảo. Các trang
mạng này là dịch vụ nối kết các thành viên cùng sở thích trên Internet lại với nhau với
nhiều mục đích khác nhau không phân biệt không gian và thời gian.
Các trang mạng xã hội có những tính năng như chat, e-mail, phim ảnh, voice chat, chia sẻ
file, blog và xã luận. Mạng đổi mới hoàn toàn cách cư dân mạng liên kết với nhau và trở
thành một phần tất yếu của mỗi ngày cho hàng trăm triệu thành viên khắp thế giới. Các
dịch vụ này có nhiều phương cách để các thành viên tìm kiếm bạn bè, đối tác: dựa theo
nhóm (ví dụ như tên trường hoặc tên thành phố), dựa trên thông tin cá nhân (như địa chỉ
e-mail hoặc screen name), hoặc dựa trên sở thích cá nhân (như thể thao, phim ảnh, sách
báo, hoặc ca nhạc), lĩnh vực quan tâm: kinh doanh, mua bán
Hiện nay thế giới có hàng trăm mạng mạng xã hội khác nhau, với MySpace và Facebook
nổi tiếng nhất trong thị trường Bắc Mỹ và Tây Âu; Orkut và Hi5 tại Nam Mỹ; Friendster
tại Châu Á và các đảo quốc Thái Bình Dương. Mạng xã hội khác gặt hái được thành công
đáng kể theo vùng miền như Bebo tại Anh Quốc, CyWorld tại Hàn Quốc, Mixi tại Nhật
Bản và tại Việt Nam xuất hiện rất nhiều các mạng xã hội như: Zing Me, YuMe, Tamtay
II. Kỹ Thuật Phân Tích Mạng Xã Hội
Kỹ thuật phân tích mạng xã hội (Social Network Analysis - SNA ) là một cách phân
tích có phương pháp các mạng xã hội. Cách phân tích này nhìn các quan hệ xã hội theo
quan điểm lý thuyết đồ thị, bao gồm các nốt (node - đại diện các tác nhân đơn lẻ trong
mạng) và các ràng buộc (tie – đại diện các mối quan hệ giữa các cá thể, như là tình bạn,
họ hàng, vị trí trong tổ chức, quan hệ đôi lứa, v.v…) Và các mô hình này thường được
biễu diễn dưới dạng sơ đồ mạng (giống như đồ thị), nơi các nốt được biểu diễn thành các
điểm, còn các ràng buộc biểu diễn thành các đường thẳng nối giữa các điểm.
SNA sẽ ánh xạ và đo đạt các mối quan hệ và dòng thông tin giữa các tác nhân (như là con
người, các nhóm, các tổ chức, giữa các máy tính, URL, và các thực thể khác có kết nối
thông tin và tri thức với nhau). Các kết quả phân tích này thường rất hữu ích cho các nhà
tư vấn quản lý trong rất nhiều lĩnh vực.
Để thấu hiểu được đặc tính của các mạng lưới và các cá thể tham gia vào trong mạng đó,
chúng ta cần đánh giá vị trí của các tác nhân trong mạng. Viêc đo đạc định vị mạng lưới
là công việc đi tìm độ trung tâm (centrality) của một nốt. Các kết quả đo đạt này sẽ cho
chúng ta cái nhìn thấu đáo về các vai trò và các phân nhóm khác nhau trong một mạng
lưới: ai là những người kết nối, những ai là chuyên gia, những ai là người dẫn đầu, những
ai là cầu nối, ai biệt lập, nơi đâu là các cụm nhóm và ai tham gia trong đó, ai là phần lõi
trung tâm của mạng lưới, và ai đang nằm ở vùng biên của mạng,v.v…
II.1. Các mục tiêu phân tích mạng xã hội phổ biến
Mạng “Kite Network”
Chúng ta hãy xem xét một mạng xã hội, mạng “Kite Network” ở trên, được phát triển
bởi David Krackhardt, một nhà nghiên cứu hàng đầu về các mạng xã hội. Hai nốt trong
mạng được nối với nhau nếu chúng thường “nói chuyện” với nhau, hoặc tương tác theo
một cách nào đó. Andre thường tương tác với Carol, nhưng lại không có với Ike. Vì thế
Andre và Carol được nối với nhau, và không có liên kết được vẽ giữa Andre và Ike.
Mạng lưới này cho ta thấy một cách hiệu quả sự phân biệt rõ ràng giữa ba phép đo đạc về
độ trung tâm cá thể phổ biến: Độ trung tâm cấp bậc (Degree Centrality), Độ trung
tâm trung gian (Betweenness Centrality), và Độ trung tâm kề cận (Closeness
Centrality).
II.1.1. Độ trung tâm cấp bậc - Degree Centrality
Các nhà nghiên cứu mạng xã hội đo đạc hoạt động của mạng lưới cho một nốt bằng cách
sử dụng khái niệm về cấp độ (degree) – đó là số lượng các kết nối trực tiếp mà một nốt
có được. Trong mạng Kite Network ở trên, Diane có nhiều kết nối trực tiếp nhất, làm cho
cô ấy trở thành nốt chủ động nhất trong mạng. Cô ta trở thành một ‘người kết nối’
(connector) hay một ‘trung tâm’ (hub) trong mạng này. Một quan điểm phổ biến trong
phân tích các mạng lưới cá thể là “càng nhiều kết nối càng tốt”. Điều này không phải lúc
nào cũng đúng. Điều thật sự quan trọng là nơi mà những kết nối đó dẫn đi đâu và chúng
kết nối đến những phần chưa kết nối như thế nào. Ở đây Diane chỉ có những kết nối đến
những nốt khác cùng nhóm cụm với cô ấy. Có nghĩa cô ấy chỉ kết nối đến những người
đã có sẵn kết nối với nhau.
II.1.2. Độ trung tâm trung gian - Betweenness Centrality
Trong khi Diane có nhiều mối quan hệ trực tiếp, Heather có ít các kết nối trực tiếp hơn –
ít hơn mức trung bình trong mạng. Nhưng theo cách nhìn khác, cô ấy có một vị trí tốt
nhất trong mạng – nằm ở giữa hai khu vực quan trọng. Cô ta nắm một vai trò môi giới
trong mạng lưới. Điểm tốt là cô ấy có một vai trò đầy sức mạnh trong mạng, và điểm xấu
là cô ấy cũng là một điểm chết của hệ thống. Không có cô ta, Ike và Jane sẽ bị cắt khỏi
luồng thông tin và kiến thức từ nhóm của Diane. Một nốt với tính trung gian cao
(betweenness) cao sẽ có sự ảnh hưởng lớn đến cái gì sẽ được không được truyền đi trên
mạng. Do đó, Heather là người có khả năng thao túng đầu ra của mạng lưới.
II.1.3. Độ trung tâm kề cận - Closeness Centrality
Fernando và Garth có ít kết nối hơn Diane, nhưng các mối liên kết của họ cho phép họ
truy cập đến tất cả các nốt trong mạng nhanh hơn bất kỳ ai khác. Họ có các đường đi
ngắn nhất đến tất cả các nốt khác. Điều đó cho thấy họ gần (close) với tất cả mọi người
nhất. Họ có một vị trí xuất sắc để theo dõi luồng thông tin trong mạng, họ có một tầm
nhìn tốt nhất về cái đang được diễn ra trong mạng.
II.1.4. Độ tập trung của mạng - Network Centralization
Các mức độ trung tâm riêng biệt của mạng lưới cung cấp cái nhìn thấu đáo về các vị trí
của các cá thể trong mạng. Các mối quan hệ giữa các mức độ trung tâm của tất cả các nốt
có thể bộc lộ ra nhiều thông tin về cấu trúc tổng quan của toàn mạng.
Một mạng lưới có độ tập trung rất cao thường bị thống trị bởi một hoặc một vài nốt trung
tâm. Nếu những nốt này bị loại bỏ hoặc tổn hại, mạng lưới có thể nhanh chống bị phân
mảnh thành nhiều phần con tách biệt. Một nốt có tính trung tâm cao lại trở thành một
điếm chết. Một mạng tập trung xung quanh một điểm trung tâm nhiều kết nối có thể sụp
đổ một cách bất ngờ và đột ngột nếu điểm trung tâm đó bị vô hiệu hoặc loại bỏ đi. Các
điểm trung tâm là các nốt có cấp bậc (degree) và tính trung gian (betweeness) cao.
Một mạng lưới ít tập trung sẽ không có điểm chết nào. Nó sẽ có khả năng chịu đựng và
đàn hồi cao hơn với các cuộc tấn công có chủ đích hoặc các sự sụp đổ bất thường. Vì
nhiều nốt và liên kết có thể bị đứt gãy và sụp đỗ thì mạng lưới vẫn cho phép các nốt còn
lại tiếp tục chạm được đến các nốt còn lại trong mạng bằng con đường khác. Mạng lưới
kiểu này sẽ khó bị sụp đổ bất ngờ.
II.1.5. Hệ số cụm - Clustering Coefficient
Trong lý thuyết đồ thị, hệ số cụm (clustering coefficient) là một thước đo mức độ xu
hướng kết nhóm lại với nhau của các nốt trong đồ thị. Có bằng chứng cho thấy rằng trong
các mạng lưới trong cuộc sống thật, cụ thể là các mạng xã hội, những nốt có xu hướng
tạo các nhóm liên kết chặc chẽ thường có đặc tính là có mật độ tương đối cao các mối
ràng buộc [1]. Xác suất xuất hiện các mối ràng buộc này thường có xu hướng lớn hơn
mức xác suất trung bình một ràng buộc được thiết lập ngẫu nhiên giữa hai nốt [2].
II.1.6. Phần tử chủ chốt - Key players
Phần tử chủ chốt (key player) là các phần tử trong mạng được cho là quan trọng khi
được xem xét theo một vài tiêu chuẩn. Việc xác định các phần tử chủ chốt là một trong
những mục tiêu quan trọng khi phân tích các mạng xã hội.
Chúng thường thường xác định được dựa trên hai yêu cầu sau:
- Thứ nhất, các phần tử chủ chốt là các nốt mà nếu bị loại bỏ khỏi mạng sẽ gây việc
gián đoạn tối đa việc trao đổi thông tin giữa các nốt. Khi theo tiêu chí này, việc
xác định dựa trên mục đích phát tán thứ gì đó một cách tối ưu trên mạng bằng
cách sử dụng các phần tử chủ chốt như là các điểm gieo thông tin ban đầu. Độ
trung tâm trung gian (Betweenness Centrality) phù hợp với tiêu chí này.
- Cách thứ hai là lựa chọn các nốt có liên kết tối đa đến các nốt còn lại. Dựa theo
tiêu chí này, các nốt chủ chốt được xác định là có khả năng làm gián đoạn hoặc
làm phân mảnh mạng hoàn toàn, đột ngột nếu chúng bị loại bỏ. Và Độ trung tâm
cấp bậc (Degree Centrality) được sử dụng cho tiêu chí này.
Ngoài ra, các kỹ thuật phân tích mạng lưới còn đưa ra các tiêu chuẩn đo đạc khác mà ta
có thể tìm hiểu thêm như:
- Network Reach
- Network Integration
- Boundary Spanners
- Peripheral Players
II.2. Các công thức được áp dụng cho các mục tiêu phân tích mạng xã hội
Cho một đồ thị G = (V, E) với V là tập đỉnh, E là tập cạnh, ta có:
II.2.1. Độ trung tâm cấp bậc - Degree Centrality
Trong đó:
n là số đỉnh của đồ thị
deg(v) số liên kết trực tiếp của đỉnh v hay còn gọi là bậc đỉnh
II.2.2. Độ trung tâm trung gian - Betweenness Centrality
st
st
!v" #$%&
II.2.3. Độ trung tâm kề cận - Closeness Centrality
Trong đó: là số bước đi từ đỉnh t tới đỉnh v/chiều dài từ v tới t
'
II.2.4. Hệ số cụm - Clustering coefficient
Với một cạnh e
ij
là cạnh nối đỉnh i với đỉnh j. Tập đỉnh láng giềng N
i
cho một đỉnh v
i
được định nghĩa là tập các đỉnh có liên kết trược tiếp đến v
i
, công thức toán học:
Ta gọi k
i
là số lượng các đỉnh, |N
i
|, trong tập láng giềng N
i
.
Khi đó hệ số cụm C
i
cho một đỉnh v
i
được tính bằng tỉ lệ giữa các liên kết giữa các đỉnh
trong tập đỉnh láng giềng chia cho số lượng các liên kết có thể tồn tại giữa chúng. Với
một đồ thị có hướng, e
ij
phân biệt với e
ji
, và vì thế với mỗi tập láng giềng N
i
sẽ có k
i
(k
i
–
1) liên kết có thể tồn tại giữa các đỉnh láng giềng (k
i
là số lượng đỉnh láng giềng của đỉnh
đang xét). Do đó, công thức hệ số cụm cho các đồ thị có hướng sẽ như sau:
Một đồ thị không có hướng có đặc tính là e
ij
với e
ji
được xem là như nhau. Vì thế, nếu
một đỉnh v
i
có k
i
láng giềng, k
i
(k
i
– 1)/2 cạnh có thể tồn tại giữa các đỉnh ấy. Do đó, công
thức hệ số cụm cho các đồ thị không có hướng có thể được định nghĩa như sau:
Từ các công thức trên, ta có công thức hệ số cụm trung bình cho toàn mạng như sau:
III.3 Bài tập ví dụ
Để có cái nhìn rõ ràng và dễ hiểu hơn, ta đi qua một ví dụ tính toán cụ thể như sau:
Cho mạng xã hội các actor : v1, v2, v3, v4,v5, v6 và các link: (v1,v2) ; (v1,v3); (v3,v4);
(v3,v2); (v2,v4), (v4,v5), (v4,v6)
()
Hãy:
(* Tính degree, betweenness centrality, closeness centrality của từng nút trong mạng
xã hội.
* Hệ số cụm của từng nút và toàn bộ mạng xã hội
* Tim tập các key players ( chủ thể chủ chốt ) trong mạng xã hội
Bài giải:
- Đồ thị cho mạng xã hội là:
Đồ thị G
- Ma trận kề (adjacency matrix):
+( + + + + +
+( ( ( ) ) )
+ ( ( ( ) )
+ ( ( ( ) )
+ ) ( ( ( (
+ ) ) ) ( )
+ ) ) ) ( )
- Liệt kê tất cả đường đi ngắn nhất giữa 2 đỉnh bất kỳ trong đồ thị, ta có:
[V1, V2, V4]
[V1, V2, V4, V5]
[V1, V2, V4, V6]
[V1, V3, V4]
[V1, V3, V4, V5]
[V1, V3, V4, V6]
[V2, V1]
[V2, V3]
((
[V2, V4, V6]
[V3, V1]
[V3, V4, V5]
[V4, V2]
[V4, V3]
[V4, V5]
[V4, V6]
[V5, V4, V2]
[V6, V4, V3]
[V6, V4, V5]
(* Tính degree, betweenness centrality , closeness centrality của từng nút trong mạng
xã hội trên
, Tính degree centrality
- .///0/%1
+(
+
+
+
+
+
, Tính betweenness centrality
- 2/3///0/%1
+(
(
+ !456&("
+ !456&("
+ !456&("
+ !456&("
+ !456&("
, Tính closeness centrality
- 0//0/%1
+(
+ !456&("
+ !456&("
+ !456&("
+ !456&("
+ !456&("
2. Tính Clustering Coefficient (Hệ số cụm)
, Tính hệ số cụm cho từng nút
-
7$/7/80/
(
+(
+
+
+
+
+
, Tính hệ số gom cụm cho toàn mạng
3. Tìm key player:
Dựa vào các nốt có giá trị tốt nhất ở các tiêu chí Degree Centrality, Beetweeness
Centrality và Closeness Centrality để tìm tập key player:
Ta có:
Max(C
D
(V)) = {V4}
Max(C
B
(V)) = {V4}
Max (C
C
(V)) = {V4}
Tập key player = {V4}
III.4 Chương trình demo
Để hỗ trợ kiểm tra các công thức trên, một chương trình demo được viết để tính toán tự
động các kết quả. Chương trình demo được viết bằng ngôn ngữ ruby. Hiện tại do mục
đích để thực tính toán nên chương trình chỉ có giao diện console đơn giản.
Cách sử dụng đơn giản như sau:
- Chương trình là một tập tin đuôi .exe, có thể click để chạy trực tiếp
- Input của chương trình là một tập tin có tên input.txt chứa thông tin về đồ thị
mạng xã hội cần tính toán các thông số phân tích. Định dạng của tập tin gồm hai
phần:
o Dòng đầu tiên dùng để nhập danh sách các nhãn đỉnh trong đồ thị, hoặc chỉ
đơn giản con số N cho biết tổng số đỉnh trong đồ thị. Nếu danh sách nhãn
không liệt kê cụ thể thì các nhãn tự động sinh ra theo số thứ tự từ 1 đến N
(
o Các dòng tiếp tiếp theo miêu tả ma trận kề của các đỉnh, thể hiện các cạnh
trong đồ thị.
Ví dụ cho tập tin input.txt
- Chương trình hỗ trợ tính toán cho cả đồ thị có hướng và vô hướng (dựa trên dữ
liệu ma trận kề nhập vào).
- Kết quả tính toán sẽ được xuất ra của sổ console và được lưu vào tập tin
output.txt
(
Ví dụ về output của chương trình
(
Tài Liệu Tham Khảo
[1] M. Mohamed Sathik and A. Abdul Rasheed (November 2009). “A Centrality
Approach to Identify Sets of Key Players in an Online Weblog”. International Journal of
Recent Trends in Engineering,Vol 2, No. 3: 85 – 87.
[2] Stephen P. Borgatti (2006). “Identifying sets of key players in a social network”.
Comput Math Organiz Theor 12: 21–34
[3] />[4] />[5] />(