Tổng quan1.1 Phân tích mạng xã hội Social Network Analysis Mạng xã hội Social Network là một cấu trúc xã hội hình thành bởi những cá nhân hay những tổ chức, các cá nhân được gắn kết bởi
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN CƠ SỞ DỮ LIỆU NÂNG CAO
PHÂN TÍCH MẠNG XÃ HỘI
Giảng viên hướng dẫn : PGS.TS Đỗ Phúc
Sinh viên thực hiện :
Nguyễn Thị Thu Trang CH1101147
TP Hồ Chí Minh, tháng 08 năm 2012
Trang 2MỤC LỤC
I Tổng quan 1
1.1 Phân tích mạng xã hội (Social Network Analysis) 1
1.2 Phân tích mạng (Network Analysis) 2
1.3 Khoa học xã hội (Social Science) 4
1.4 Các tên miền (Orther Domains) 5
1.5 Ứng dụng thực tế 7
1.6 Tại sao và khi nào sử dụng SNA? 8
II Các khái niệm cơ bản 9
2.1 Biểu diễn mạng 9
2.2 Độ mạnh của mối quan hệ trong mạng (Tie Strength) 10
2.3 Các khái niệm Homophily, Transitivity, và Bridging 11
2.4 Các phẩn tử chủ chốt trong mạng (Key Players) 13
III Chương trình Demo “Tìm các phần tử chủ chốt của mạng xã hội” 17
3.1 Các lớp cơ bản 17
3.2 Các chức năng chính của chương trình 17
3.3 Giao diện chương trình 18
IV Tài liệu tham khảo 19
Trang 3I Tổng quan
1.1 Phân tích mạng xã hội (Social Network Analysis)
Mạng xã hội (Social Network) là một cấu trúc xã hội hình thành bởi những
cá nhân (hay những tổ chức), các cá nhân được gắn kết bởi sự phụ thuộc lẫn nhauthông những nút thắt như tình bạn, quan hệ họ hàng, sở thích chung, trao đổi tàichính, quan hệ tình dục, những mối quan hệ về niềm tin, kiến thức và uy tín
Đơn giản hơn, mạng lưới xã hội là đồ thị những mối quan hệ xác định, ví dụnhư tình bạn Các nút thắt gắn kết cá nhân với xã hội chính là những mối liên hệ xãhội của cá nhân đó Mạng lưới xã hội có thể dùng để kiểm tra vốn xã hội - giá trị
mà cá nhân có được từ mạng lưới xã hội Những khái niệm này thường được biểuthị trong biểu đồ mạng xã hội, trong đó các nút thắt chính là các điểm và các mốiquan hệ là những đường kẻ
Phân tích mạng xã hội (Social Network Analysis – SNA) là nghiên cứu quan
hệ xã hội giữa một tập hợp các nút (actor) Nó là một lĩnh vực nghiên cứu – mộttập hợp các hiện tượng hoặc dữ liệu
Trong quá trình làm việc trong lĩnh vực này, các nhà nghiên cứu mạng đãphát triển một tập hợp các quan điểm khác biệt khá tốt về mặt lý thuyết Một số
Trang 4- Tập trung vào mối quan hệ giữa các actor chứ không phải là thuộc tính của
1.2 Phân tích mạng (Network Analysis)
Social Network Analysis (SNA) có nguồn gốc về mặt khoa học xã hội và cảtrong các lĩnh vực rộng lớn hơn của phân tích mạng (network analysis) và lý thuyết
đồ thị (graph theory)
Network Analysis liên quan đến chính nó với các công thức và giải pháp củacác vấn đề có dạng cấu trúc mạng (network structure), như cấu trúc được biểu diễndưới dạng đồ thị
Lý thuyết đồ thị (Graph theory) cung cấp một tập hợp các khái niệm trừutượng và các phương pháp để phân tích đồ thị Chúng kết hợp cùng với các công
cụ phân tích khác và với phương pháp phát triển đặc biệt cho việc hiển thị và phântích của các mạng xã hội (và cả các dạng mạng khác nữa), hình thức cơ bản đóđược gọi là phương phápphaant ích mạng xã hội (Social Network Analysis –SNA)
Trang 5Nhưng SNA không chỉ là một phương pháp luận, nó là một quan điểm độcđáo về chức năng xã hội như thế nào Thay vì tập trung vào cá nhân và các thuộctính của họ, hoặc cấu trúc xã hội vĩ mô, trung tâm của nó là về mối quan hệ giữacác cá nhân, nhóm, hoặc tổ chức xã hội.
Trang 61.3 Khoa học xã hội (Social Science)
Nghiên cứu xã hội (studying Society) từ góc độ mạng là nghiên cứu cá nhânđược nhúng vào trong một mạng lưới các quan hệ và tìm kiếm lời giải thích chohành vi xã hội trong cấu trúc của các mạng này hơn là trong các cá nhân đơn độc.Quan điểm về mạng này trở nên ngày càng có liên quan trong một xã hội màManuel Castellshas gọi là mạng xã hội (Network Society)
Social Network Analysis có một lịch sử lâu dài trong khoa học xã hội, mặc
dù phần lớn công việc là tập trung phát triển các phương pháp của nó như từ cácnhà toán học, nhà vật lý học, nhà sinh vật học và các nhà khoa học máy tính (bởi vì
họ nghiên cứu nhiều về các dạng mạng khác nhau)
Trang 7Ý tưởng về mạng lưới các quan hệ là quan trọng trong khoa học xã hộikhông phải là mới, nhưng phổ biến rộng rãi và sẵn có của dữ liệu và tiến bộ trongtính toán cùng với phương pháp luận đã làm cho nó dễ dàng hơn nhiều để áp dụngSNA to một loạt các vấn đề.
1.4 Các tên miền (Orther Domains)
Phân tích mạng (mạng xã hội) – (Social) Network Analysis đã được tìm thấy
là ứng dụng trong nhiều lĩnh vực vượt ra ngoài khoa học xã hội, mặc dù những tiến
Trang 8bộ lớn nhất nói chung đã liên quan đến việc nghiên cứu cấu trúc được tạo ra bởicon người.
Các nhà khoa học máy tính cho ví dụ đã sử dụng (và thậm chí phát triểnmới) phương pháp phân tích mạng để nghiên cứu các trang web, lưu lượng truycập Internet, phổ biến thông tin, …
Một ví dụ trong cuộc sống khoa học là việc sử dụng mạng lưới phân tích(Network Analysis) để nghiên cứu chuỗi thức ăn trong các hệ sinh thái khác nhau
Nhà toán học và vật lý (lý thuyết) thường tập trung vào sản xuất mới và cácphương pháp phân tích mạng phức tạp, có thể được sử dụng bởi bất cứ ai, trongphạm vi bất kỳ nơi nào mà mạng lưới có liên quan
Trang 9Các trang web Mạng xã hội như Facebook sử dụng cơ bản các yếu tố củaSNA để xác định và đề nghị các tiềm của bạn dựa vào bạn bè của bạn bè (friends –
of – friends)
Các tổ chức xã hội dân sự sử dụng SNA để khám phá xung đột lợi ích trongcác kết nối ẩn giữa cơ quan chính phủ, vận động hành lang và các doanh nghiệp
Trang 10Các nhà khai thác mạng (điện thoại, cáp, điện thoại di động) sử dụng SNAnhư những phương pháp để tối ưu hóa cấu trúc và năng lực mạng của họ.
1.6 Tại sao và khi nào sử dụng SNA?
Bất cứ khi nào bạn đang nghiên cứu một mạng xã hội, hoặc offline hoặconline, hoặc khi bạn muốn hiểu làm thế nào để nâng cao hiệu quả của mạng
Khi bạn muốn hình dung dữ liệu của bạn là để khám phá các mẫu trong mốiquan hệ hoặc tương tác
Khi bạn muốn thực hiện theo các đường dẫn mà thông tin (hoặc về bất cứđiều gì) đi theo các mạng xã hội
Khi bạn làm nghiên cứu định lượng, mặc dù nghiên cứu định tính mạngquan điểm là cũng có giá trị :
- Phạm vi của các hành động và cơ hội dành cho các cá nhân thường là một
chức năng của vị trí của họ trong các mạng xã hội, phát hiện các vị trí này (thay vì dựa vào giả định phổ biến dựa trên vai trò và chức năng của mình, như là cha, mẹ, giáo viên,công nhân) có thể mang lại kết quả thú vị và đôi khi đáng ngạc nhiên
- Phân tích định lượng của một mạng xã hội có thể giúp bạn xác định các dạng
khác nhau của các nút (actor) hoặc các phần tử chủ chốt (key players) trong mạng, phần tử mà bạn có thể tập trung cho nghiên cứu định tính của bạnSNA rõ ràng là cũng rất hữu ích trong việc phân tích của SNS, OC và cácphương tiện truyền thông xã hội nói chung, để kiểm tra giả thuyết về hành vi trựctuyến và CMC, để xác định nguyên nhân rối loạn chức năng cộng đồng hoặc mạnglưới, và để thúc đẩy sự gắn kết xã hội và tăng trưởng trong một cộng đồng trựctuyến
Trang 11II Các khái niệm cơ bản
2.1 Biểu diễn mạng
Mạng (mạng xã hội) thường được biểu diễn dưới dạng đồ thị có hướng hoặckhông có hướng Đồ thị gồm các đỉnh (actor) và các liên kết giữa các đỉnh này(link)
Tùy vào mục đích nghiên cứu mà chúng ta có thể xem xét toàn bộ mạnghoặc chỉ xem xét một phần của mạng chứa những phần tử mà chúng ta quan tâm
Có 2 dạng mạng phục vụ nhu cầu đó là mạng “Whole Network” và “EgoNetwork”
Trang 122.2 Độ mạnh của mối quan hệ trong mạng (Tie Strength)
Tie strength là chỉ số để thể hiện độ mạnh yếu của các mối liên kết (link) củacác phần tử (actor) trong mạng (độ dài của các đường đi)
Độ dài của cạnh chính là độ mạnh hay độ bền vững của các mối quan hệ
Trang 13Cạnh (Edge) có thể đại diện cho các tương tác, dòng chảy của thông tin,hàng hoá, tương đồng / đảng phái, hoặc quan hệ xã hội
Cụ thể đối với quan hệ xã hội, một “proxy” cho sức mạnh của mối liên hệ(tie) có thể là:
- Các tần số của sự tương tác (truyền thông) hoặc lượng của dòng chảy (trao
đổi)
- Sự trao đổi qua lại trong tương tác hoặc dòng chảy
- Loại của tương tác hoặc lưu lượng dòng chảy giữa hai bên (ví dụ như thân
mật hay không)
- Thuộc tính của các nút hoặc các mối quan hệ khác (ví dụ như, các mối quan
hệ họ hàng)
- Cấu trúc của các nút lân cận (ví dụ: bạn bè chung)
Khảo sát và phỏng vấn cho phép chúng ta thiết lập sự hiện hữu của nhữngphần chung hoặc riêng cùng với độ mạnh yếu của mối liên hệ trên đó
2.3 Các khái niệm Homophily, Transitivity, và Bridging
Homophilyis là các xu hướng liên quan đến những người có cácđặc điểm
tương tự (trạng thái, tín ngưỡng, …)
- Nó dẫn đến sự hình thành của các nhóm đồng nhất (cụm - clusters) nơi giúp
hình thành các mối quan hệ dễ dàng hơn
- Cực đồng nhất (Extreme homogenization) có thể hành động như là người
truy cập tới sự sang tạo và ý tưởng đổi mới (mà heterophilyis đang mong muốn điều này trong một số ngữ cảnh)
- Homophilousties có thể mạnh hoặc yếu
Transitivity trong SNA là một thuộc tính của các mối quan hệ: nếu có mộtràng buộc giữa A và B, và một ràng buộc giữa B và C, trong một mạng có tính chấtbắc cầu thi A và C cũng sẽ hình thành kết nối
- Mối quan hệ (ràng buộc) mạnh thường có cầu nối (transitive) nhiều hơn mối
quan hệ yếu Transitivity do đó là bằng chứng cho sự tồn tại của rang buộc mạnh mẽ (nhưng không phải là một điều kiện cần thiết hoặc đầy đủ)
Trang 14- Transitivity cùng với Homophily hướng tới hình thành các Cliques (các cụm
kết nối đầy đủ)
Bridges là các nút và các cạnh kết nối trên toàn nhóm
- Tạo điều kiện thuận lợi cho các nhóm thông tin liên lạc, tăng cường sự gắn
kế xã hội và giúp thúc đẩy sự đổi mới
- Bridges thường là các quan hệ yếu, nhưng không phải tất cả các quan hệ
(ràng buộc) yếu là một Bridge
2.4 Các phẩn tử chủ chốt trong mạng (Key Players)
Degree centrality : degree (trong hoặc ngoài : indegree, outdegree) của một
nút là số các liên kết hướng tới hoặc đi qua nút đó
Trang 15- Trong một đồ thị vô hướng thì chúng giống hệt nhau
- Degree centrality thường được sử dụng như là nút mức độ liên kết và do đó
cũng có độ ảnh hưởng và/ hoặc phổ biến
- Hữu ích trong việc đánh giá nút nào là trung tâm để lây lan thông tin và ảnh
hưởng đến nút khác trong vùng của chúng ngay lập tức
Đường (Path) và đường đi ngắn nhất (Shortest Path)
Một đường đi (path) giữa hai nút bất kỳ là một dãy các nút không lặp lại màkết nối 2 nút lại
Đường đi ngắn nhất (shortest path) giữa hai nút là đường kết nối hai nút với
số lượng ngắn nhất của các cạnh (cũng được gọi là khoảng cách giữa các nút)
Trang 16Ở hình trên các nút 1 và 4 có hai đường đi ngắn nhất có chiều dài 2: {1,2,4}
và {1,3,4} Những đường còn lại giữa hai nút là {1,2,3,4}, {1,3,2,4}, {1,2,5,3,4}
và {1,3,5,2,4} (đường đi dài nhất)
Đường đi ngắn hơn khá cần thiết khi mong muốn về nhu cầu tốc độ giao tiếphoặc trao đổi (thường là trường hợp trong nhiều nghiên cứu, nhưng đôi khi không)
Betweeness Centrality
Là số đường đi ngắn nhất mà đi qua một nút được chia bởi tất cả đường đingắn nhất trong mạng
Trang 17Betweeness Centrality thường được chuẩn hóa với giá trị cao nhất là 1
Betweeness Centrality hiển thị những nút có nhiều khả năng là đường thôngtin liên lạc giữa các nút khác
Ngoài ra, Betweeness Centrality còn hữu ích trong việc xác định nhữngđiểm nơi mà các mạng sẽ bị phá vỡ
Trang 18Định nghĩa một tập hợp các phần tử chủ chốt (Key Players)
Trong mạng ở hình trên, nút 10 là trung tâm nhất theo Degree centrality Tuynhiên nút 3 cùng với nút 5 sẽ đạt liên kết tới nhiều nút hơn Hơn nữa, giữa nút 3 và
5 là quan trong vì nếu bị cắt đứt, mạng sẽ bị bẻ gãy thành 2 tiểu mạng cô lập Bêncạnh đó, những rang buộc khác giữa chúng bình đẳng
Do đó nút 3 và nút 5 cùng với nhau sẽ là khóa (key) của mạng này hơn nút10
Trang 19III Chương trình Demo “Tìm các phần tử chủ chốt của mạng
xã hội”
Chương trình được viết trên ngôn ngữ C#, môi trường Visual Studio 2008,
để thực hiện việc phân tích một mạng xã hội dựa trên các thông số DegreeCentrality, Betweeness Centrality, Closeness Centrality, key players, ClusteringCoefficient
3.1 Các lớp cơ bản
Links là lớp thể hiện liên kết giữa 2 actor trong mạng
class Links
{
public string actorA;
public string actorB;
}
Lớp Graph thể hiện mạng dưới dạng đồ thị (xét trường hợp đồ thị vô hướng)
class Graph
{
List < string > actors;
List < Links > links;
List < string > allShortestPaths;
}
3.2 Các chức năng chính của chương trình
Trang 20private string solveDegreeCentrality()
private string solveBetweennessCentrality()
private string solveClosenessCentrality()
private string solveClusteringCoefficient()
private string solveKeyPlayers()
3.3 Giao diện chương trình
- Nhập các tập đỉnh của đồ thị, các đỉnh cách nhau bởi dấu phẩy
- Sau đó nhập tập các cạnh (liên kêt) trong đồ thị
- Chọn những thuộc tính cần phân tích rồi nhấn nút giải
- TextBox bên phải là kết quả hiển thị lời giải cho mạng xã hội
Trang 21[1] Bài giảng “Cơ sở dữ liệu nâng cao” – PGS.TS ĐỗPhúc -Trường Đại học Công nghệthông tin
[2] Slide “Social Network Analysis (SNA) - including a tutorial on concepts and methods” - Dr Giorgos Cheliotis
[3] http://en.wikipedia.org/wiki/Social_network_analysis
[4] http://en.wikipedia.org/wiki/Betweenness_centrality
[5] “Inside Social Network Analysis” - Kate Ehrlich và Inga Carboni