Mô hình cơ bản của mạng xã hội là một đồ thị với các đỉnh và cạnh.. Để hiểu rõ hơn về mạng xã hội, báo cáo này sẽ trình bày lý thuyết cơ bản về mô hình mạng xã hội, các đặt trưng của mạn
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
LỚP CAO HỌC TỪ XA QUA MẠNG K6 Môn học: Cơ sở dữ liệu nâng cao
Bài tiểu luận
MÔ HÌNH MẠNG XÃ HỘI
VÀ THUẬT TOÁN TÌM KEY LAYER
ỨNG DỤNG MÔ PHỎNG TÍNH TOÁN TÌM KEY LAYER
GVHD: PGS TS: Đỗ Phúc
Học viên thực hiện:
Lê Hoài Nam MSHV: CH1101106
Trang 2M c l c ục lục ục lục
I Giới thiệu chung 3
II Mô hình mạng xã hội 3
1 Khái niệm 3
2 Các khái niệm cơ bản trong mạng xã hội 4
3 Công thức tìm key layer và ví dụ minh họa 5
III Cài đặt thuật toán tìm keylayer 11
1 Tìm Degree centrality 14
2 Tìm Betweeness centrality 14
3 Tìm closeness centrality 15
4 Tìm clustering coefficent 15
IV Ứng dụng mô phỏng tìm key player cho mạng xã hội 16
1 Giới thiệu ứng dụng 16
2 Một số hình ảnh minh họa 17
V Kết luận và hướng phát triển 20
1 Kết luận 20
2 Hướng phát triển 20
VI TÀI LIỆU THAM KHẢO 21
Trang 3I Giới thiệu chung
Mạng xã hội có thể hiểu là một hệ thông kết nối giữa các thành viên với nhau qua internet Khi tham gia mạng xã hội, người dùng sẽ dễ dàng tìm thấy được mối quan hệ với những người xung quanh mình, tìm bạn bè học cùng trường, đồng nghiệp cùng công ty hoặc những người cùng sở thích v.v Nhờ những tính năng nổi trội, hướng tới từng người dùng cụ thể mà mạng xã hội đã thu hút ngày càng nhiều người
sử dụng Người dùng Internet dần chuyển qua sử dụng các mạng xã hội nhiều hơn các ứng dụng khác Và cũng vì đó mà lý thuyết và ứng dụng về mô hình mạng xã hội ngày càng được các chuyên gia, nhà nghiên cứu đầu tư nhiều hơn nhằm tạo ra những mạng xã hội tốt hơn
Mô hình cơ bản của mạng xã hội là một đồ thị với các đỉnh và cạnh Đỉnh là các đối tượng trong mạng và cạnh là mối quan hệ giữa các đối tượng đó
Để hiểu rõ hơn về mạng xã hội, báo cáo này sẽ trình bày lý thuyết cơ bản về mô hình mạng xã hội, các đặt trưng của mạng xã hội và các thuật toán đề tìm key layer trong mạng Bên cạnh đó là ứng dụng mô phỏng giải quyết bài toán tìm keylayer trong 1 mạng xã hội bất kỳ
II Mô hình mạng xã hội
1 Khái niệm
Theo Wikipedia, mạng xã hội có 2 thành phần cơ bản như sau:
- Nút (node): Là một thực thể trong mạng Thực thể này có thể là một cá nhân,
Trang 4- Liên kết (tie): là mối quan hệ giữa các thực thể đó Trong mạng có thể có nhiều kiểu liên kết Ở dạng đơn giản nhất, mạng xã hội là một đơn đồ thị vô hướng các mối liên kết phù hợp giữa các nút Ta có thể biểu diễn mạng liên kết này bằng một biểu đồ mà các nút được biểu diễn bởi các điểm còn các liên kết được biểu diễn bởi các đoạn thẳng
Khái quát hơn ta có mạng xã hội là một cấu trúc xã hội được tạo thành từ các cá thể độc lập (con người, tổ chức v.v ) và mối quan hệ giữa chúng Mạng xã hội
thường phải có một phương pháp cụ thể để phân tích tất cả các phần tử trong mạng ở cấp độ toàn cục cũng như cụ bộ
Mạng xã hội là một lĩnh vực nghiên cứu được ra đời từ rất lâu trong lĩnh vực xã hội học, tâm lý học, thống kê và toán đồ thị
Mạng xã hội không chỉ được dùng trong các website mạng xã hội trực tuyến như facebook, twitter v.v mà còn được áp dụng trong các lĩnh vực khác như:
Mạng xã hội trong các tổ chức doanh nghiệp dùng để quản lý nhân viên, khách hàng và đối tác
Mạng xã hội dùng trong các tổ chức quân đội dùng để quản lý mạng lưới các tổ chức khủng bố, tội phạm dựa trên các thông tin mà họ thu thập được Hỗ trợ xác định các mục tiêu quan trọng cần xử lý
Mạng xã hội dùng trong quản lý nhà nước xã hội dùng để tìm các quan hệ về lợi ích giữa chính phủ và các tổ chức doanh nghiệp
2 Các khái niệm cơ bản trong mạng xã hội
- Đồ thị dùng để biểu diễn mối quan hệ giữa các thực thể trong mạng, đồ thị có 2
loại: đồ thị có hướng và vô hương
Trang 5- Trọng số: dùng để biểu diễn mức độ mạnh/yếu của các liên kết trong mạng xã
hội Trọng số có thể là :
o Mức độ tương tác giữa các thực thể trong quá trình hoạt động
o Số lượng các thay đổi giữa các thực thể
o Đánh giá mực độ quan trọng của các liên kết
o Chi phí kết nối, trao đổi, khoảng cách giữa các thực thể
- Key layers là các node đặc biệt hoặc có vai trò trọng tâm trong mạng Có nhiều
loại giá trị dùng để tìm key layer tùy vào mục tiêu phân tích, gồm có:
o Degree Centrality: Thể hiện mức độ liên kết (vào / ra) của 1 node Nó
thường dùng để đánh giá mưc độ kết nối của 1 thực thể và do đó nó còn thể hiện mức độ ảnh hưởng và phân bố, xác định mưc độ truyền thông tin và ảnh hưởng của 1 node tơi các node xung quanh
o Betweeness Centrality: là số đường đi ngắn nhât đi qua 1 node chia cho
tổng số đường đi ngắn nhất trong toàn mạng Dùng để hiện mức độ quan trọng của 1 điểm trên mạng Thường dùng khi cần xác định xem mức độ ảnh hưởng khi loại bỏ 1 điểm ra khỏi mạng
o Closeness Centrality: thể hiện cho độ dài của tổng tất cả các đường
ngắn nhất từ 1 điểm đến tất cả các điểm trên mạng Được khi ttrong trường hợp cần tìm nguồn thông tin quan trong và phổ biến trong toàn mạng Giá trị này càng nhỏ thì tốc độ truyền thông tin của node đó cang cao
o Clustering Coefficent: Hệ số gom cụm của 1 node là mực độ tập trung
của các node xung quanh nó
3 Công thức tìm key layer và ví dụ minh họa
Cho mạng xã hội có mô hình như sau:
Trang 6V5
Ta tìm được ma trận kề cho đồ thị trên như sau
V 1
V 2
V 3
V 4
V 5
V 6 V
1
1 1 0 0 0
V 2
V 3
V 4
V 5
V 6
0 0 0 1 0
Trang 7Tìm Degree centrality
Công thức
Trong đó:
o n là số đỉnh trong đồ thị
o Deg(v) là các liên kết trực tiếp đến đỉnh v hay là bậc của đỉnh
Áp dụng với đồ thị ở trên ta có:
Đỉnh degree centrality V1
V2 V3 V4 V5 V6
Tìm betweeness centrality
Công thức
Trang 8Trong đó:
o σst là tổng số đường đi gắn nhất từ đỉnh s tới đỉnh t
o σst (v) là số đường đi gắn nhất từ đỉnh s tới đỉnh t qua đỉnh v.
Áp dụng
Đỉnh Betweenness centrality
V1
Trang 9Tính closeness centrality
Công thức
Trong đó
o là số bước đi từ đỉnh t tới đỉnh v/chiều dài từ v tới t
Áp dụng
Đỉn
h
closeness centrality
V1
Trang 10V6 (tính tương tự như v1)
Tính Clustering Coefficent (hệ số gom cụm)
Công thức
o Đối với đồ thị có hướng
o Đối với đồ thị vô hướng
Áp dụng
Đỉn h
Clustering Coefficient
V1
V2
Trang 11V4
V5 V6
Công thức tính hệ số gom cụm cho toàn mạng:
Xác định key layer
Tùy vào nhu cầu sử dụng, key layer của mạng có thể được tìm dựa vào các yêu tố sau đây:
- Là node có Degree Centrality lớn nhất (node 4)
- Là node có Between Centrality lớn nhất (node 4)
- Là node có Closeness Centrality lớn nhất (node 4)
- Là node có Clustering Coeficient lớn nhất (node 4)
- Hoăc là tất cả các node ở trên
III Cài đặt thuật toán tìm keylayer.
Theo công thức được trình bày ở phần trên, ta có thể cài đặt thuật toán tìm key
Trang 12o Thuật toán sẽ sử dụng cấu trúc dữ liệu chính là ma trận M để thể hiện thông tin trong đồ thị
o Hàm tìm đường và tính toán trong đồ thị Sử dụng thuật toán dijitra để tìm đường và áp dụng các công thức tính toán để tìm kết luận
Chú ý con trỏ cursor dùng để lưu trữ giá trị sau khi phân tích bao gồm số bước
đi numOfSteps, số đường đi ngắn nhất numOfWays và số đường đi ngắn nhất qua X numOfWaysHaveX
public void computingDirection(ComCursor cursor, int from, int end,int except){
Vector<Integer> vec;
vec.add(from);
int c=0;
int n= numOfNode;
int countRoute = 0;
cursor.numOfSteps = 0;
cursor.numOfWays =0;
Vector<Integer> listParent;
listParent.add(-1);
Stack<TreeNode> tree;
tree.push(new TreeNode(from));
while (!vec.contains(end)){
int vsize = vec.size();
boolean canmore = false;
countRoute =0;
List<Integer>;
for (int j2 =0; j2<vec.size(); j2++){
int j= vec.get(j2);
for (int i=0; i<n; i++){
if (mMatrix[j][i] == 1){
if (!vec.contains(i)) {
sublist.add(i);
tree.push(TreeNode(i,
tree.get(j2)));
Trang 13canmore= true;
if (i==end)
countRoute++;
} }
}
} c++;
vec.addAll(sublist);
if (!canmore) return;
} cursor.numOfSteps = c;
cursor.numOfWays = countRoute;
if (except >-1)
cursor.numOfWaysHaveX = getNofWhaveX(tree, except, end);
1 Tìm Degree centrality
int dev =0;
int n= numOfNodes;
for (int i=0; i< n; i++)
if (mMatrix[index][i] == 1) dev++;
return ((double)dev)/(n-1);
2 Tìm Betweeness centrality
double bc =0;
Trang 14for (int j=i+1; j<n; j++){
if (i==index || j == index) continue; ComCursor cursor = new ComCursor();
computingDirection (cursor, i, j, index);
bc +=
((double)cursor.numOfWaysHaveX)/cursor.numOfWays;
}
}
return bc;
3 Tìm closeness centrality
double cc =0;
int n= numOfNodes;
for (int i=0; i< n; i++){
if (i==index) continue;
ComCursor cursor;
computingDirection (cursor, index, i, -1);
cc += cursor.numOfSteps;
}
return 1/cc;
4 Tìm clustering coefficent
int n= mNodes.size();
int k = 0;
for (int i=0; i<n; i++)
if (mMatrix[index][i]==1) k ++;
int e=0;
Trang 15for (int i=0; i<n; i++){
if (i==index || mMatrix[index][i] == 0) continue; for (int j=i+1; j<n; j++ ){
if (mMatrix[index][j] == 1 && mMatrix[i][j] ==1)
e++;
}
}
if (k==0 || k==1) return 0;
return ((double) 2*e)/(k*(k-1));
IV Ứng dụng mô phỏng tìm key player cho mạng xã hội
1 Giới thiệu ứng dụng
Ứng dụng demo được viết bằng ngôn ngữ Java sử dụng giao diện Windows Form trực quan, cho phép biểu diễn đồ thị mạng xã hội bằng hình ảnh Tính toán và trình bày kết quả dưới dạng văn bản có thể sao chép và lưu trữ dễ dàng
Tính năng chính bao gồm:
- Vẽ đồ thị mạng xã hội bằng giao diện trực quan Người sử dụng chỉ cần click chuột vào khung vẽ để thêm 1 node Bấm vào 1 node đã có và kéo thả sang 1 node khác để tạo liên kết giữa 2 node
- Tính toán các trọng số và tìm key player trình bày dưới dạng văn bản
Trang 162 Một số hình ảnh minh họa
Trang 17Một ví dụ về kết quả tính toán hiện thị sau khi xử lý
Ma trận biểCu diểDn cho đồG thị
0 1 1 0 0 0
1 0 1 1 0 0
1 1 0 1 0 0
0 1 1 0 1 1
0 0 0 1 0 0
0 0 0 1 0 0
KểJt quaC tính toán các key value
DC : Degree Centrality
BC : Betweeness Centrality
CC : Closeness Centrality
CCoeff : Clustering Coeff
Node sồJ 1:
DC(1) = 0.400000
BC(1) = 0.000000
CC(1) = 0.100000
CCoeff(1) = 1.000000
Node sồJ 2:
DC(2) = 0.600000
BC(2) = 1.500000
CC(2) = 0.142857
CCoeff(2) = 0.666667
Node sồJ 3:
DC(3) = 0.600000
BC(3) = 1.500000
CC(3) = 0.142857
CCoeff(3) = 0.666667
Node sồJ 4:
DC(4) = 0.800000
BC(4) = 7.000000
CC(4) = 0.166667
CCoeff(4) = 0.166667
Node sồJ 5:
DC(5) = 0.200000
Trang 18CC(5) = 0.100000
CCoeff(5) = 0.000000
Node sồJ 6:
DC(6) = 0.200000
BC(6) = 0.000000
CC(6) = 0.100000
CCoeff(6) = 0.000000
Key layer:
Node 4: có giá trị DC tồJt nhấJt
Node 4: có giá trị BC tồJt nhấJt
Node 4: có giá trị CC tồJt nhấJt
Hệ sồJ gom cụm cuCa toàn mạng là 0.4166666666666666
V.Kết luận và hướng phát triển
1 Kết luận
Như đã nói ở phần mở đầu, mạng xã hội đang là một mô hình phát triển nhất hiện nay với phạm vi ứng dụng ngày càng rộng rãi, số người sử dụng ngày càng nhiều Do đó việc tìm và trích xuất thông tin quan trọng từ mạng xã hội là một bài toán quan trọng cần được tiếp tục nghiên cứu và cái tiến
Bài tiểu luận này, bên cạnh nói về mạng xã hội và các công tính tìm key layer, cũng
đã cài đặt thành công ứng dụng mô phỏng cho việc tìm key layer từ một mạng xã hội bất kì với giao diện trực quan, mang tính hỗ trợ học tập và tìm hiểu cao
2 Hướng phát triển
Trong việc xây dựng và phát triển một ứng dụng mạng xã hội thì tiểu luận này chỉ
là 1 phần nhỏ trong các chức năng cơ bản cần phải có
Trang 19Còn rất nhiều vấn đề cần phải nghiên cứu và phát triển ví dụ như: tăng tốc độ tính toán với mạng có số lượng node lớn (lên tới hàng triệu node), nghiên cứu các phương pháp để cài đặt vào các hệ quản lý cơ sở dữ liệu để tìm và trích xuất thông tin v.v…
Trang 20VI TÀI LIỆU THAM KHẢO
[1] Social Network Analysis – National University of Singapo
[2] Bài giảng chương 5 của môn Cơ sở dữ liệu nâng cao
[3] Wikipedia – Mạng xã hội http://vi.wikipedia.org/wiki/M%E1%BA%A1ng_x
%C3%A3_h%E1%BB%99i
[4] Wikipedia – Social network
http://en.wikipedia.org/wiki/Social_network
[5] Wikipadia – Social network Analysis
http://en.wikipedia.org/wiki/Social_network_analysis