Lý thuyết các độ đo trong mạng xã hội Biện pháp trung tâm Centrality Measures: Tính trung tâm là một tập hợp các chỉ số được sử dụng để xác định mức độ quan trọng và ảnh hưởng của một n
Trang 1BÁO CÁO ĐỒ ÁN MÔN HỌC
MẠNG XÃ HỘI
Đề tài
BITCOIN OTC
GIẢNG VIÊN HƯỚNG DẪN
Nhóm sinh viên thực hiện:
Thành phố Hồ Chí Minh, tháng 12 năm 2020
Trang 2của các thành viên
Trang 3MỤC LỤC
PHÂN CÔNG CÔNG VIỆC 2
NHẬN XÉT CỦA GIÁO VIÊN 5
LỜI CẢM ƠN 6
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 7
1.1 Lí do chọn đề tài 7
1.2 Mô tả dữ liệu 7
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 9
2.1 Lý thuyết về Nodes và Edges 9
2.1.1 Thế nào Nodes và Edges 9
2.1.2 Edges Direction 9
2.1.3 Edge Weight 10
2.2 Lý thuyết các độ đo trong mạng xã hội 10
2.2.1 Độ đo Degree Centrality 10
2.1.2 Độ đo Betweenness Centrality 11
2.1.3 Độ đo Closeness Centrality 12
2.1.4 Độ đo Clustering Coefficient 13
2.3 Lý thuyết các thuật toán dùng trong mạng xã hội 13
2.3.1 Cộng đồng 13
2.3.2 Một số thuật toán khám phá cộng đồng 14
2.3.2.1 Thuật toán Page Rank 14
2.3.2.2 Thuật toán Girvan Newman 14
CHƯƠNG 3: TIỀN XỬ LÝ DỮ LIỆU VÀ TRỰC QUAN HÓA DỮ LIỆU LÊN ĐỒ THỊ 16
3.1 Tiền xử lý dữ liệu 16
3.2 Tạo mạng liên kết 16
3.3 Trực quan hóa mạng liên kết trên python 17
3.4 Visualize mạng trên Gephi 18
CHƯƠNG 4: PHÂN TÍCH, TRỰC QUAN HÓA CÁC ĐỘ ĐO TRONG MẠNG XÃ HỘI 19
4.1 Độ đo Degree Centrality 19
4.1.1 Độ đo Degree Centrality trên Python 19
3
Trang 44.1.2 Độ đo Degree Centrality visualize trên Gephi 28
4.1.3 Nhận xét 30
4.2 Độ đo Betweenness Centrality 31
4.2.1 Độ đo Betweeness Centrality trên Python 31
4.2.2 Độ đo Betweeness Centrality visualize trên Gephi 34
4.2.3 Nhận xét 35
4.3 Độ đo Closeness Centrality 35
4.3.1 Độ đo Closeness Centrality trên Python 35
4.3.2 Độ đo Closeness Centrality visualize trên Gephi 38
4.3.3 Nhận xét 38
4.4 Độ đo Clustering Coefficient 38
4.4.1 Độ đo Clustering Coefficient trên Python 38
4.4.2 Độ đo Clustering coefficient trên Gephi 42
4.4.3 Nhận xét 42
CHƯƠNG 5: PHÂN TÍCH, TRỰC QUAN HÓA CÁC THUẬT TOÁN SỬ DỤNG TRONG MẠNG XÃ HỘI 43
5.1 Thuật toán Page Rank 43
5.1.1 Phân tích, trực quan hóa biểu đồ dữ liệu trên Python 43
5.1.2 Phân tích, trực quan hóa biểu đồ dữ liệu trên Gephi 46
5.1.3 Nhân xét 46
5.2 Thuật toán Girvan Newman 47
5.2.1 Phân tích, trực quan hóa biểu trên Python liên kết theo Girvan NewMan 47
5.2.2 Nhận xét 48
TÀI LIỆU THAM KHẢO 50
Trang 5NHẬN XÉT CỦA GIÁO VIÊN
5
Trang 6LỜI CẢM ƠN
Em xin chân thành cảm ơn trường Đại học Công nghệ Thông tin và Khoa Hệ ThốngThông Tin đã tạo điều kiện cho em hoàn thành tốt đồ án môn học Mạng xã hội Trongquá trình học tập môn này đã giúp cho nhóm chúng em có được rất nhiều kinh nghiệmquý báu Đặc biệt, nhóm chúng em xin gửi lời biết ơn sâu sắc đến cô Nguyễn Thị MinhPhụng – Giảng viên hướng dẫn môn Mạng xã hội (IS353 – L11) đã dành thời gian quýbáo và trực tiếp hướng dẫn tận tình, đóng góp ý kiến giúp nhóm hoàn thành tốt báo cáomôn học
Thông qua quá trình thực hiện đồ án, chúng em đã phần nào củng cố, tích lũy đượcnhững kiến thức về Mạng xã hội Bên cạnh đó là biết sử dụng thêm một số công cụ đểphân tích, rất có ích cho chúng em sau này Bên cạnh đó, chúng em còn rút ra được nhiềukinh nghiệm trong công việc làm nhóm Hi vọng mọi thứ sẽ được áp dụng và phát triểntrong tương lai
Trong thời gian thực hiện đề tài, vì thời gian và kiến thức có hạn nên không tranhkhỏi nhiều sai sót Vì vậy, nhóm rất mong nhận được những góp ý bổ sung từ cô để đề tàihoan thiện hơn
Một lần nữa, chúng em xin chân thành cảm ơn
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lí do chọn đề tài
Mạng lưới mà ở đó những người giao dịch bằng Bitcoin trên nền tảng gọi là BitcoinOTC Bitcoin OTC viết tắt của từ “over the counter” là nơi để giới siêu giàu mua và bánBitcoin và các tài sản hoặc tiền điện tử khác mà không làm tăng nghiêm trọng hoặc giảmgiá, tối đa hóa sức mạnh giao dịch của họ Đó là một thị trường mua bán không cần kêđơn mà giao dịch thông qua đồng Bitcoin
Vì người dùng Bitcoin là ẩn danh, nên cần phải duy trì hồ sơ về sự uy tín của người dùng
để ngăn chặn các giao dịch với người dùng gian lận và rủi ro Các thành viên của BitcoinOTC đánh giá các thành viên khác theo thang điểm từ -10 (hoàn toàn không tin tưởng)đến 10 (cực kỳ tin tưởng)
Hình 1 Trang chủ nền tảng Bitcoin OTC
Trang 8− Dataset gồm 5881 nodes, 35592 cạnh với 4 cột dữ liệu Mỗi hàng đại diện cho một
người dùng đánh giá người dùng khác về độ tin cậy trên nền tảng Bitcoin OTC
− Thông tin chi tiết về Dataset:
Trang 9CHƯƠNG 2: CƠ SỞ LÝ THUYẾT2.1 Lý thuyết về Nodes và Edges
2.1.1 Thế nào Nodes và Edges
- Một nút (node) được hiểu là đại điện một thực thể, một actor trong việc tạo ra liên kết
Trang 10Ví dụ: Nếu một khách hàng (nút bắt đầu) thanh toán cho một cửa hàng cà phê (nút kết
thúc) cho một ly cà phê, thì mối quan hệ đó không nhất thiết phải được đáp lại bởi vìcửa hàng cà phê cũng chưa trả tiền cho khách hàng
+ Các cạnh không định hướng: các mối quan hệ này được đáp lại bởi cả hai bên
mà không có nút bắt đầu và nút kết thúc rõ ràng
Ví dụ: nếu hai người là bạn bè trên Facebook, mối quan hệ đó là vô hướng Đó là bởi
vì có thể nói Người A là bạn với Người B, nhưng cũng có thể nói Người B là bạn vớiNgười A
2.1.3 Edge Weight
Trọng số của một cạnh là số lần cạnh đó xuất hiện giữa hai nút cụ thể
Ví dụ: nếu Người A mua một ly cà phê từ một quán cà phê 3 lần, thì cạnh nối Người A
và quán cà phê sẽ có trọng số là 3 Tuy nhiên, nếu Người B chỉ mua cà phê từ quán càphê một lần thì cạnh nối Người B và quán cà phê sẽ có trọng số bằng 1
2.2 Lý thuyết các độ đo trong mạng xã hội
Biện pháp trung tâm (Centrality Measures): Tính trung tâm là một tập hợp các chỉ số
được sử dụng để xác định mức độ quan trọng và ảnh hưởng của một nút cụ thể đối vớitoàn bộ trang Các biện pháp trung tâm được sử dụng trên các nút cụ thể trong mạng vàkhông cung cấp thông tin ở cấp độ mạng Ví dụ 3 độ do trung tâm dưới đây:
2.2.1 Độ đo Degree Centrality
Độ của một nút là số cạnh mà nút đó có Số đo này giúp ta đo số lượng của các mối quan
hệ trực tiếp của một tác nhân nào đó với các thành viên khác trong mạng xã hội
CD(v) = deg (v )
n−1
Trong đó:
Trang 11 n: là số đỉnh của đồ thị
Deg(v): tổng số các liên kết trực tiếp đến đỉnh v (bậc của đỉnh)
Tuy nhiên, trong một mạng có định hướng, thực tế có ba thước đo mức độ khác nhau Bởi
vì các cạnh này có nút bắt đầu và nút kết thúc, độ trong (số cạnh mà nút là nút kết thúc),
độ ngoài (số cạnh mà một nút là nút bắt đầu của) và độ (số cạnh a nút là nút bắt đầu hoặcnút kết thúc của) có thể được tính toán
2.1.2 Độ đo Betweenness Centrality
Betweenness Centrality: đo lường tầm quan trọng của các kết nối của một nút trong việccho phép các nút đến các nút khác (trong một bước nhảy) Khoảng giữa của một nút là sốđường đi ngắn nhất mà nút được đưa vào chia cho tổng số đường đi ngắn nhất Điều này
sẽ cung cấp tỷ lệ phần trăm đường dẫn ngắn nhất trong mạng mà nút đang ở trong đó
Số đo trung tâm trung gian xác nhận một tác nhân nào đó trong mạng có thể có thể có ítgắn kết với các thành viên khác trong mạng xã hội (số đo bậc trung tâm thấp), cũngkhông gần gũi lắm với các thành viên khác (số đo trung tâm lân cận thấp), nhưng lại làcầu nối (bridge) hay nhà trung gian cần thiết trong mọi cuộc trao đổi trong mạng
11
Trang 12 σ st là số đường đi ngắn nhất đi từ đỉnh s đến đỉnh t của toàn mạng
σ st(v) = là số đường đi ngắn nhất đi từ đỉnh s đến đỉnh t và đi qua đỉnh v
Số đo trung gian tương đối được tính theo cách sau: Số đo trung gian cho đồ thị vôhướng:
CB (x) = C B (x)
(n−1)(n−2)/2
2.1.3 Độ đo Closeness Centrality
Mức độ gần gũi là độ đo đo lường mức độ kết nối của một nút với mọi nút khác trongmạng Mức độ gần gũi của một nút là số bước trung bình cần thiết để tiếp cận mọi nútkhác trong mạng Bước nhảy là đường đi của một cạnh từ nút này đến nút khác Ví dụ,như được thấy trong sơ đồ bên dưới, Nút A được kết nối với Nút B và Nút B được kết nốivới Nút C Để Nút A đến được Nút C, nó sẽ mất hai bước
Trong một đồ thị liên thông, độ đo gần trung tâm của một nút là thước đo mức độ trungtâm trong mạng, được tính bằng nghịch đảo của tổng độ dài của các đường đi ngắn nhất
Trang 13giữa nút và tất cả các nút khác trong biểu đồ Do đó, một nút càng ở trung tâm thì nó cànggần với tất cả các nút khác.
Số đo Closeness Centrality được tính bằng công thức sau:
C C ( v )= 1
∑
t∈V¿
d G(v ,t)
2.1.4 Độ đo Clustering Coefficient
Clustering Coefficient là độ đo mức độ mà các nút trong biểu đồ có xu hướng tập hợp lạivới nhau Bằng chứng cho thấy rằng trong hầu hết các mạng trong thế giới thực, và đặcbiệt là các mạng xã hội, các nút có xu hướng tạo ra các nhóm liên kết chặt chẽ với đặcđiểm là mật độ quan hệ tương đối cao; khả năng này có xu hướng lớn hơn xác suất trungbình của một hòa được thiết lập ngẫu nhiên giữa hai nút
13
Trang 142.3 Lý thuyết các thuật toán dùng trong mạng xã hội
2.3.1 Cộng đồng
Cộng đồng được tạo từ các cá nhân sao cho các cá nhân trong cùng một nhóm sẽ tươngtác với nhau thường xuyên hơn với các cá nhân nằm ngoài nhóm Có ba cách tiếp cận đểkhám phá cộng đồng trong mạng xã hội:
Dựa trên cấu trúc mạng xã hội để khám phá cộng đồng
Dựa trên thông tin trao đổi theo các tương tác trên mạng xã hội
Dựa trên vừa cấu trúc và nội dung trao đổi
2.3.2 Một số thuật toán khám phá cộng đồng
2.3.2.1 Thuật toán Page Rank
Pagerank là thuật toán phân tích các liên kết được dùng trong Google Search để xếp hạngcác trang web
Thuật toán này chỉ định giá trị nhất định cho mỗi thành phần của một tập hợpcác văn bản liên kết với nhau, ví dụ như World Wide Web
Mục đích "đo" tầm quan trọng tương đối của các liên kết trong tập hợp đó
Áp dụng cho bất kỳ tập hợp văn bản nào có trích dẫn đối ứng và liên kết cụ thể
Giá trị (weight) mà nó gán cho bất kỳ thành phần E được gọi là PageRank của
E và ký hiệu là PR (E)
2.3.2.2 Thuật toán Girvan Newman
Thuật toán Girvan Newman dựa trên quan niệm cho rằng khi các cộng đồng được gắn kếtvới nhau thì đường đi giữa cộng đồng này đến cộng đồng khác sẽ đi qua các cạnh nốigiữa các cộng đồng với tần suất cao Mục đích chính của thuật toán là tìm những cạnh nối
đó Thay vì việc xây dựng cộng đồng bằng cách thêm vào các cạnh mạnh mẽ nhất, chúng
ta sẽ xây dựng bằng cách loạn bỏ dần dần các cạnh nối từ đồ thị ban đầu Khi đó, cáccộng đồng trong mạng sẽ bị ngắt kết nối với nhau, ta có thể xác định được cách phânvùng đồ thị thành các phần nhỏ riêng rẽ Để làm được việc này, điều quan trọng nhất củathuật toán là việc tính toán như thế nào, sử dụng tính chất nào để phát hiện ra những cạnh
Trang 15nối này, từ đó loại bỏ chúng ra khỏi đồ thị Thuật toán lần đầu tiên được đề xuất bởiFreeman Theo Freeman, các cạnh được coi là cạnh có số lượng con đường ngắn nhấtgiữa các cặp đỉnh khác nhau chạy qua nó Cạnh nối có ảnh hưởng rất lớn đến dòng chảycủa thông tin giữa các nút khác, đặc biệt là trong trường hợp thông tin lưu truyền trongmạng chủ yếu theo con đường ngắn nhất Thuật toán điển hình nhất trong các thuật toánchia này là thuật toán Girvan-Newman
Nếu một mạng lưới bao gồm các cộng đồng hoặc nhóm chúng chỉ được liên kết nối yếubằng một nhóm cạnh, thì tất cả các đường đi ngắn nhất giữa các cộng đồng khác nhau sẽphải đi dọc theo một trong số ít các cạnh thuộc nhóm cạnh đó Vì vậy, các cạnh kết nốicác cộng đồng sẽ là cạnh có độ trung gian cao Bằng cách loại bỏ các cạnh, thuật toánGirvan-Newman tách được thành các nhóm riêng biệt Thuật toán được thực hiện theocác bước sau:
Bước 1: Tính độ đo trung gian cho tất cả các cạnh trong mạng.
Bước 2: Hủy bỏ các cạnh có độ trung gian cao nhất.
Bước 3: Tính lại độ trung gian cho tất cả các cạnh bị ảnh hưởng theo các cạnh đã
loại bỏ
Bước 4: Lặp lại từ bước 2 cho đến khi không còn các cạnh trung gian
15
Trang 16CHƯƠNG 3: TIỀN XỬ LÝ DỮ LIỆU VÀ TRỰC
QUAN HÓA DỮ LIỆU LÊN ĐỒ THỊ3.1 Tiền xử lý dữ liệu
3.2 Tạo mạng liên kết
− Cài đặt đồ thị có hướng cho mạng
− Bảng lưu trữ thống kê cho mỗi node
− Tổng số node và cạnh
Trang 173.3 Trực quan hóa mạng liên kết trên python
17
Trang 183.4 Visualize mạng trên Gephi
Trang 19CHƯƠNG 4: PHÂN TÍCH, TRỰC QUAN HÓA CÁC
ĐỘ ĐO TRONG MẠNG XÃ HỘI 4.1 Độ đo Degree Centrality
4.1.1 Độ đo Degree Centrality trên Python
− Degree Centrality
+ Trực quan hóa mạng liên kết theo độ đo Degree Centrality
19
Trang 20+ Top 10 nodes có Degree Centrality cao nhất:
Trang 21+ Tần số và xác xuất xuất hiện Degree Centrality
21
Trang 22− In-Degree Centrality
+ Trực quan hóa mạng liên kết theo độ đo In Degree Centrlity
Trang 23+ Top 10 nodes có In-degree centrality cao nhất:
23
Trang 24+ Tần số và xác xuất xuất hiện In Degree Centrality
Trang 25− Out-Degree Centrality
+ Trực quan hó mạng liên kết theo độ đo Out Degree Centrlity
25
Trang 26+ Top 10 nodes có Out-degree centrality cao nhất:
Trang 27+ Tần số và xác xuất xuất hiện Out Degree Centrality
27
Trang 284.1.2 Độ đo Degree Centrality visualize trên Gephi
− Degree Centrality
Trang 29+ Top 10 nodes có Degree Centrality cao nhất:
− In-Degree Centrality
29
Trang 30+ Top 10 nodes có In-degree cao nhất:
− Out-Degree Centrality
Trang 31+ Top 10 nodes có Out-degree Centrality cao nhất:
4.1.3 Nhận xét
Qua việc phân tích trên Python và visualize trên Gephi đều cho cùng kết quả Ví
dụ, lấy ra top 3 nodes có các ID: 35,2642 ,1810 đều có độ degree cao nhất Hay
31
Trang 32nói cách khác đây là những id bình luận và nhận được bình luân nhiều nhất trong
hệ thống giao dịch Bitcoin OTC
4.2 Độ đo Betweenness Centrality
4.2.1 Độ đo Betweeness Centrality trên Python
+ Trực quan hóa mạng liên kết theo độ đo Betweeness Centrlity
Trang 3333
Trang 34+ Top 10 nodes có Betweeness Centrality cao nhất:
+ Tần số và xác xuất xuất hiện Betweenness Centrality
Trang 354.2.2 Độ đo Betweeness Centrality visualize trên Gephi
35
Trang 36+ Top 10 nodes có Betweeness Centrality cao nhất:
4.2.3 Nhận xét
Qua việc phân tích trên Python và visualize trên Gephi đều cho cùng kết quả
Node 35 có độ đo Betweenness Centrality cao nhất tức là người có Id=35 có tầm quan trọng phổ biến về mức độ đánh giá giữa các kết nối các Id khác trong sàn bitcoin
4.3 Độ đo Closeness Centrality
4.3.1 Độ đo Closeness Centrality trên Python
+ Trực quan hóa mạng liên kết theo độ đo In Closeness Centrlity
Trang 37+ Top 10 nodes có độ Closeness Centrality cao nhất:
37
Trang 38+ Tần số và xác xuất xuất hiện Closeness Centrality
Trang 394.3.2 Độ đo Closeness Centrality visualize trên Gephi
+ Top 10 nodes có độ Closeness Centrality cao nhất:
39
Trang 404.3.3 Nhận xét
Qua việc phân tích trên Python và visualize trên Gephi đều cho cùng kết quả
Có nhiều node có độ đo Closeness Centrality cao bằng 1.0 thể hiện mức độ kết nốicao của một nút với mọi nút khác trong mạng
4.4 Độ đo Clustering Coefficient
4.4.1 Độ đo Clustering Coefficient trên Python
+ Trực quan hóa mạng liên kết theo độ đo Clustering Coefficient
Trang 41+ Top 10 nodes có độ Clustering Coeficient cao nhất:
41
Trang 42+ Tần số và xác xuất xuất hiện Clustering Coeficient
Trang 434.4.2 Độ đo Clustering coefficient trên Gephi
+ Top 10 nodes có độ Clustering Coeficient cao nhất:
4.4.3 Nhận xét
Qua kết quả phân tích trên python và gephi đều cho cùng kết quả
Top 10 nodes có độ Clustering coefficient đều có giá trị bằng 1
43
Trang 44CHƯƠNG 5: PHÂN TÍCH, TRỰC QUAN HÓA CÁC THUẬT TOÁN SỬ DỤNG TRONG MẠNG XÃ HỘI5.1 Thuật toán Page Rank
5.1.1 Phân tích, trực quan hóa biểu đồ dữ liệu trên Python
Trang 45+ Top 10 nodes có độ Page Rank cao nhất:
45
Trang 46+ Tần số và xác xuất xuất hiện Page Rank
Trang 475.1.2 Phân tích, trực quan hóa biểu đồ dữ liệu trên Gephi
+ Top 10 nodes có Page Rank cao nhất:
47