Tải bản đầy đủ (.docx) (20 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (297.05 KB, 20 trang )

ĐẠ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
Tháng 8 – 2012
Trang 1
Mục lục
Trang 2
I. 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,
một doanh nghiệp hoặc một tổ chức bất kỳ nào đó
Trang 3
- 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 4
- 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 5
Ta tìm được ma trận kề cho đồ thị trên như sau
V1 V2 V3 V4 V5 V6
V

1
1 1 0 0 0
V
2
1 1 1 0 0
V
3
1 1 1 0 0
V
4
0 1 1 1 1
V
5
0 0 0 1 0
V
6
0 0 0 1 0
Trang 6
Tì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 7
Trong đó:
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
V2 (tính tương tự như v1)
V3 (tính tương tự như v1)
V4 (tính tương tự như v1)
Trang 8
V5 (tính tương tự như v1)
V6 (tính tương tự như v1)
Tí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 9

V2 (tính tương tự như v1)
V3 (tính tương tự như v1)
V4 (tính tương tự như v1)
V5 (tính tương tự như v1)
V6 (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
Trang 10
Áp dụng
Đỉn
h
Clustering Coefficient
V1
V2
V3
V4
V5
V6
Trang 11
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
layer như sau.
o 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){
Trang 12
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)));
canmore= true;
if (i==end)
countRoute++;
}
}
}
}
c++;
vec.addAll(sublist);
if (!canmore) return;
}
cursor.numOfSteps = c;
Trang 13
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;
int n= numOfNodes;
for (int i=0; i< n; i++){
for (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;
Trang 14
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;

for (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));
Trang 15
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.
2. Một số hình ảnh minh họa
Trang 16
Một ví dụ về kết quả tính toán hiện thị sau khi xử lý
Ma trận biểu diễn cho đồ 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ết quả tính toán các key value
DC : Degree Centrality
BC : Betweeness Centrality
Trang 17
CC : Closeness Centrality
CCoeff : Clustering Coeff
Node số 1:
DC(1) = 0.400000
BC(1) = 0.000000
CC(1) = 0.100000
CCoeff(1) = 1.000000
Node số 2:
DC(2) = 0.600000
BC(2) = 1.500000
CC(2) = 0.142857
CCoeff(2) = 0.666667
Node số 3:
DC(3) = 0.600000
BC(3) = 1.500000
CC(3) = 0.142857
CCoeff(3) = 0.666667
Node số 4:
DC(4) = 0.800000
BC(4) = 7.000000
CC(4) = 0.166667
CCoeff(4) = 0.166667
Node số 5:
DC(5) = 0.200000
BC(5) = 0.000000
CC(5) = 0.100000

CCoeff(5) = 0.000000
Node số 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ốt nhất
Node 4: có giá trị BC tốt nhất
Node 4: có giá trị CC tốt nhất
Hệ số gom cụm của toàn mạng là 0.4166666666666666
Trang 18
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ó.
Cò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 19
VI. 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 />%C3%A3_h%E1%BB%99i
[4] Wikipedia – Social network
/>[5] Wikipadia – Social network Analysis
/>Trang 20

×