1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

20 856 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 228,22 KB

Nội dung

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 2

M 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 3

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,

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 6

V5

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 7

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 8

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

Trang 9

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 10

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

Áp dụng

Đỉn h

Clustering Coefficient

V1

V2

Trang 11

V4

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 12

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){

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 13

canmore= 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 14

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;

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 15

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));

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 16

2 Một số hình ảnh minh họa

Trang 17

Mộ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 18

CC(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 19

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 20

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 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

Ngày đăng: 10/04/2015, 14:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w