Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
2,01 MB
Nội dung
TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CUỐI KỲ MƠN TỐN TỔ HỢP VÀ ĐỒ THỊ MƠ HÌNH MẠNG LƯỚI XÃ HỘI Người hướng dẫn: GV BÙI XUÂN THẮNG Người thực hiện: LÊ NGUYỄN MINH TUẤN – 51800950 Lớp : 18050301 Khố THÀNH PHỐ HỒ CHÍ MINH, NĂM 2020 30 : 22 i LỜI CẢM ƠN Qua học kỳ đầy khó khăn vất vả, em học tập nhiều thứ từ mơn Tốn tổ hợp đồ thị Được giúp đỡ bảo giảng dạy nhiệt tình q thầy cơ, đặc biệt quý cô Khoa Công nghệ thông tin Trường Đại học Tơn Đức Thắng Sau qng thời gian tìm hiểu thực hiện, em hoàn thành báo cáo cuối kỳ mơn Tốn tổ hợp đồ thị Em xin dành lời cảm ơn đặc biệt đến thầy Bùi Xuân Thắng giúp đỡ bảo thiếu sót q trình thực em Trong q trình làm tiểu luận, khó tránh khỏi sai sót, mong Thầy, Cô bỏ qua Đồng thời em mong nhận ý kiến đóng góp Thầy, Cơ để em tiếp thu cải thiện cho tập sau Em xin chân thành cảm ơn! 30 ii TĨM TẮT Mơ hình mạng lưới xã hội có từ lâu kỷ trở lại với đời phương pháp phân tích mạng lưới xã hội, lên phương pháp ưu việt hiệu để giải toán gần bao hàm tất ngành nghề sống Với vấn đề đặt cộng đồng ưu việt hơn, thành phần mạng lưới nắm vai trò quan trọng phân cụm thành phần nào,… dẫn tới đời phép đo density, degree centrality, betweenness centrality, closeness centrality, clustering coefficient,… Nhận biết cộng đồng lĩnh vực quan trọng phương pháp phân tích mạng xã hội lại cần nhận biết cộng đồng Trong báo cáo cuối kỳ lần này, ta tập trung phân tích giải thích mạng lưới xã hội phương pháp phân tích mạng xã lưới xã hội lại phương pháp ưu việt, đồng thời giải thích phân tích phép đo phương pháp phân tích mạng lưới xã hội cách tính cụ thể Thêm ta tìm hiểu nhận biết cộng đồng, đồng thời giới thiệu thuật toán nhận biết cộng đồng sử dụng phổ biến hiệu thời điểm Cuối ta demo số giải thuật phép đo phương pháp phân tích mạng lưới xã hội Python 30 MỤC LỤC LỜI CẢM ƠN i TÓM TẮT ii DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌNH DANH MỤC BẢNG CHƯƠNG – MẠNG XÃ HỘI VÀ CÁC VẤN ĐỀ PHÂN TÍCH MẠNG XÃ HỘI .7 1.1 GIỚI THIỆU VỀ MẠNG LƯỚI XÃ HỘI 1.2 PHÂN TÍCH MẠNG LƯỚI XÃ HỘI 1.3 CÁC ỨNG DỤNG CỦA PHÂN TÍCH MẠNG LƯỚI XÃ HỘI CHƯƠNG – CÁC PHÉP ĐO TRONG MẠNG LƯỚI XÃ HỘI 2.1 CÁC HỆ SỐ ĐO LƯỜNG CƠ BẢN 2.1.1 HỆ SỐ CỐ KẾT (DENSITY) 2.1.2 HỆ SỐ TRUNG TÂM TRỰC TIẾP (DEGREE CENTRALITY) 11 2.1.3 HỆ SỐ TRUNG TÂM LÂN CẬN (CLOSENESS CENTRALITY) 13 2.1.4 HỆ SỐ TRUNG TÂM TRUNG GIAN (BETWEENNESS CENTRALITY) 15 2.1.5 HỆ SỐ PHÂN CỤM (CLUSTERING COEFFICIENT) 16 2.2 NHÂN TỐ CHÍNH (KEY PLAYERS) VÀ CÁCH NHẬN BIẾT 19 2.2.1 KHÁI NIỆM NHÂN TỐ CHÍNH (KEY PLAYERS) 19 2.2.2 CÁCH NHẬN BIẾT KEY PLAYERS 19 2.2.3 VÍ DỤ 20 2.3 SIGNED GRAPH: CÁC VẤN ĐỀ VÀ ỨNG DỤNG 21 2.3.1 KHÁI NIỆM SIGNED GRAPH 21 30 2.3.2 CÁC VẤN ĐỀ VÀ ỨNG DỤNG 21 CHƯƠNG – NHẬN BIẾT CỘNG ĐỒNG (COMMUNITY DETECTION) 23 3.1 MODULARITY 24 3.2 GRIVAN NEWMAN’S ALGORITHM 25 3.3 NODE SIMILARITY BASED ALGORITHM (NSBA) 26 3.4 LABEL PROPAGATION COMMUNITY DETECTION (LPA) .27 CHƯƠNG – DEMO 28 4.1 DEMO HỆ SỐ CỐ KẾT TRÊN PYTHON 28 4.1.1 GIẢI THUẬT 28 4.1.2 BÀI TOÁN 29 4.1.3 KẾT QUẢ 30 4.2 DEMO HỆ SỐ TRUNG TÂM TRỰC TIẾP TRÊN PYTHON 31 4.2.1 GIẢI THUẬT 31 4.2.2 BÀI TOÁN 32 4.1.3 KẾT QUẢ 34 4.3 DEMO HỆ SỐ TRUNG TÂM LÂN CẬN TRÊN PYTHON 34 4.3.1 GIẢI THUẬT 34 4.3.2 BÀI TOÁN 35 4.3.2 KẾT QUẢ 36 4.4 DEMO HỆ SỐ TRUNG TÂM TRUNG GIAN TRÊN PYTHON .36 4.4.1 GIẢI THUẬT 36 4.4.2 BÀI TOÁN 37 4.4.3 KẾT QUẢ 38 4.5 DEMO HỆ SỐ PHÂN CỤM TRÊN PYTHON 38 4.5.1 GIẢI THUẬT 38 4.5.2 BÀI TOÁN 40 4.5.3 KẾT QUẢ 41 30 CHƯƠNG – KẾT LUẬN 41 TÀI LIỆU THAM KHẢO 42 Tiếng Việt 42 Tiếng Anh 42 Website 44 TỰ ĐÁNH GIÁ 45 30 DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT CÁC KÝ HIỆU Sigma CÁC CHỮ VIẾT TẮT PTMLXH Phân tích mạng lưới xã hội NaN Not a number 30 DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌNH Hình Mạng vơ hướng gồm actor 10 Hình Mạng có hướng gồm actor 11 Hình Mạng vơ hướng ví dụ hệ số trung tâm trực tiếp 12 Hình Mạng có hướng ví dụ hệ số trung tâm trực tiếp 13 Hình Mạng vơ hướng ví dụ hệ số trung tâm lân cận 14 Hình Mạng vơ hướng ví dụ hệ số trung tâm trung gian 16 Hình Ví dụ phân cụm 18 Hình Nhận biết key player 20 Hình Mơ hình cân Heider 22 Hình 10 Ví dụ demo hệ số cố kết 29 Hình 11 Demo hệ số cố kết Python 30 Hình 12 Ví dụ demo hệ số trung tâm trực tiếp 32 Hình 13 Ví dụ demo hệ số trung tâm trực tiếp 33 Hình 14 Demo hệ số trung tâm trực tiếp Python 34 Hình 15 Ví dụ demo hệ số trung tâm lân cận 35 Hình 16 Demo hệ số trung tâm lân cận Python 36 Hình 17 Ví dụ demo hệ số trung tâm trung gian 37 Hình 18 Demo hệ số trung tâm trung gian Python 38 Hình 19 Ví dụ demo hệ số phân cụm 40 Hình 20 Demo hệ số phân cụm cục Python 41 DANH MỤC BẢNG Bảng Kết hệ số trung tâm trực tiếp dựa Hình 12 Bảng Kết hệ số trung tâm trực tiếp dựa Hình 13 30 Bảng Kết hệ số trung tâm lân cận dựa Hình 14 Bảng Kết hệ số trung tâm trung gian dựa Hình 16 Bảng Kết hệ số phân cụm theo thứ tự hệ số phân cụm cục bộ, hệ số phân cụm trung bình, hệ số phân cụm tồn cục từ Hình 18 Bảng Nhận biết key players từ Hình 20 30 CHƯƠNG – MẠNG XÃ HỘI VÀ CÁC VẤN ĐỀ PHÂN TÍCH MẠNG XÃ HỘI 1.1 GIỚI THIỆU VỀ MẠNG LƯỚI XÃ HỘI Lý thuyết đồ thị lĩnh vực nghiên cứu trọng tâm ngành Khoa học máy tính Về đồ thị tập hợp bao gồm đỉnh (hoặc nút) nối với cạnh Các cạnh có hướng vơ hướng tùy theo toán khác mà ứng dụng linh hoạt Ví dụ tốn tìm đường ngắn nhất, xếp lịch thi thời khóa biểu cho nhóm sinh viên định, ứng dụng lý thuyết đồ thị thể mơ hình mạng lưới xã hội (social network) Mạng lưới xã hội cấu trúc xã hội mà cá nhân hay tổ chức liên kết với dựa vào nút thắt định, ví dụ tình bạn, tình yêu, mối quan hệ đồng nghiệp, gia đình,…đối với cá nhân, ngồi cịn có mối quan hệ tổ chức Nói đơn giản mạng lưới xã hội đồ thị thể mối quan hệ xác định Giả sử cá nhân (hay tổ chức) đỉnh đồ thị, cạnh nối đỉnh đến đỉnh khác thể mối quan hệ xã hội cá nhân (hay tổ chức) đến cá nhân hay tổ chức khác Các mối quan hệ xã hội nút thắt nói bên Một số mơ hình trực quan mà ta thấy thực tế dịch vụ mạng xã hội trực tuyến (Online Social Network Services) mà tiên phong Facebook, Twitter, Instagram, Youtube,… , mà ta thấy Facebook ví dụ mơ hình mạng xã hội sử dụng đồ thị vô hướng Twitter sử dụng đồ thị có hướng 1.2 PHÂN TÍCH MẠNG LƯỚI XÃ HỘI Phân tích mạng lưới xã hội (PTMLXH) q trình nghiên cứu cấu trúc xã hội cách sử dụng cách sử dụng lý thuyết đồ thị để biểu diễn cấu trúc 30 35 đường ngắn từ đỉnh i tới đỉnh ta có biến step đại diện cho bước ngắn từ đỉnh i đến đỉnh đó, lần d cập nhật += Đồng thời áp dụng cơng thức tính hệ số trung tâm lân cận có công thức sau: = ∑ −1 ( , ) Trong đó: + n: Tổng số actor mạng lưới + ∑ ( , ): Tổng số ‘bước’ (step) đoạn đường ngắn mà phải để đến với actor mạng Sau Dict_Cc.add( ) Nếu i bé số đỉnh đồ thị i tăng đơn vị quay lại bước Nếu khơng kết thúc thuật tốn Kết trả set Dict_Cc chứa hệ số trung tâm lân cận tất đỉnh đồ thị 4.3.2 BÀI TỐN Hình 15 Ví dụ demo hệ số trung tâm lân cận Sử dụng lệnh để tạo đồ thị: import networkx as nx g = nx.Graph() 30 36 g.add_nodes_from([1,2,3,4,5,6]) g.add_edges_from([(1,2),(1,5),(2,3),(2,5),(3,4),(4,5),(4,6)]) Áp dụng giải thuật trình bày 4.3.1 Ta có kết quả: {1: 0.5555555555555556, 2: 0.625, 3: 0.625, 4: 0.7142857142857143, 5: 0.7142857142857143, 6: 0.45454545454545453} 4.3.2 KẾT QUẢ Hình 16 Demo hệ số trung tâm lân cận Python 4.4 DEMO HỆ SỐ TRUNG TÂM TRUNG GIAN TRÊN PYTHON 4.4.1 GIẢI THUẬT Ta sử dụng thư viện networkx để giải toán Đầu tiên ta sử dụng lệnh add_node (add_nodes_from) add_edge (add_edges_from) để tạo thành đồ thị mong muốn Ta có giải thuật sau: Tạo set rỗng, gọi set là Dict_Cb dùng để chứa hệ số trung tâm lân cận đỉnh theo thứ tự, đồng thời cho biến i = Duyệt phần tử thứ i đồ thị (theo thứ tự cho trước đó), đồng thời đặt biến b = 30 37 Duyệt tất kết nối đỉnh x tới tất đỉnh khác đồ thị (trừ đỉnh i) tìm đường ngắn đỉnh x đến đỉnh, với đường ngắn từ đỉnh x tới đỉnh ta có biến count đại diện cho số lần xuất đỉnh i đường Sau duyệt xong ta áp dụng cơng thức tính hệ số trung tâm trung gian: = Trong đó: + ( − 1)( − 2)/2 n : Tổng số actor có mạng lưới Sau Dict_Cb.add( ) Nếu i bé số đỉnh đồ thị i tăng đơn vị quay lại bước Nếu không kết thúc thuật toán Kết trả set Dict_Cb chứa hệ số trung tâm trung gian tất đỉnh đồ thị 4.4.2 BÀI TỐN Hình 17 Ví dụ demo hệ số trung tâm trung gian Sử dụng lệnh để tạo đồ thị: import networkx as nx a = nx.Graph() a.add_nodes_from(['L','M','N','O','P','Q','R']) 30 30 22 Hình Mơ hình cân Heider Đối với hình tam giác: +++ −+− +−+ Trong ứng dụng thực tế, điển hình mạng xã hội trực tuyến Ta sử dụng mơ hình để đề xuất kết bạn Ví dụ có actor A, B, C A B bạn bè Facebook, B C bạn bè Facebook, theo mơ hình Heider A C quen biết chưa kết bạn với Facebook, có đề xuất cho A kết bạn với C Học thuyết sử dụng cho mạng vơ hướng có hướng • Học thuyết địa vị Học thuyết cân mơ hình hóa thích khơng thích Tuy nhiên theo Guha đồng [11] , quan hệ signed graph từ A đến B có nhiều cách hiểu, phụ thuộc vào ý định A tạo quan hệ Nói cụ thể, liên kết ‘dương’ từ A đến B mang ý nghĩa: “B bạn mình”, mang ý nghĩa: “Mình nghĩ B có địa vị cao mình” ngược lại Trong học 30 23 thuyết này, cho mối liên kết hướng từ đến mang dấu ‘dương’ nghĩa có địa vị cao ngược lại Ta ứng dụng học thuyết vào mạng lưới điều tra tội phạm, ví dụ B có địa vị thấp D, D có địa vị cao C, C có địa vị cao B, A có địa vị cao D Vậy ta ứng dụng học thuyết địa vị để chứng minh A thủ lĩnh băng đảng CHƯƠNG – NHẬN BIẾT30CỘNG ĐỒNG (COMMUNITY DETECTION) Với phát triển vượt bậc internet, tương tác chia sử kiến thức trở nên dễ dàng hết Trong thời đại công nghệ số, người tìm nhiều phương thức để đáp ứng nhu cầu ngày học hỏi, giao tiếp tạo mối quan hệ mới, nhờ có PTMLXH nghiên cứu lượng lớn liệu để phân tích hiểu hành vi người Trong lĩnh vực nhận biết cộng đồng, người ta hướng đến nghiên cứu hành vi, suy nghĩ, xu hướng,… cá nhân nhóm, nhóm gọi cộng đồng Nguyên nhận biết cộng đồng phân thành nhiều lý do: giúp nhãn hàng hiểu ý kiến người tiêu dùng sản phẩm từ nhiều cộng đồng khác nhau, cịn giúp quảng cáo sản phẩm phù hợp với nhóm người đến từ nhiều văn hóa khác nhau,… Nhận biết cộng đồng tốn khó khăn PTMLXH, may ta có nhiều thuật tốn ứng dụng để hỗ trợ Theo Santo Fortunato, 2010 [4] tổng hợp phương pháp/ thuật toán nhận biết cộng đồng mạng lưới xã hội Theo tác giả, nhóm phương pháp điển hình là: + Các phương pháp truyền thống 30 24 + Các thuật toán chia + Các phương pháp dựa mơ đun hóa + Các thuật toán dựa phổ + Các thuật toán động + Các phương pháp dựa suy luận thống kê + Các phương pháp phát chồng chéo cộng đồng + Các phương pháp nhiều lời giải hệ thống phân cụm phân cấp + Các phương pháp phát cộng đồng Đối với phần trình bày chi tiết phương pháp, người đọc tham khảo [4] 3.1 MODULARITY Phương pháp Modularity sử dụng rộng rãi phổ biến để phát cộng động mạng lưới Nó thuật tốn nguyên thủy để sử dụng giải vấn đề phân cụm, gần tất thuật toán nhận biết cộng đồng lấy ý tưởng từ Modularity thiết kế để đo cường độ phân chia mạng lưới thành cộng đồng Một đồ thị với modularity cao có kết nối 30 dày đặc nút với mô đunnhưng thưa thớt nút với mô đun h khác Ý tưởng thuật toán bao gồm giai đoạn Đầu tiên, tìm cộng đồng nhỏ cách tối ưu hóa mơ đun cục Tiếp theo, thuật toán tập hợp tất đỉnh cộng đồng xây dựng mạng lưới mà đỉnh mạng lưới cộng động tìm giai đoạn trước Sau nhiều lần thực nghiệm độ phức tạp đánh giá ( log ) chưa chứng minh cách thức 30 25 Giả sử mạng lưới có tất n đỉnh Cụ thể, ta chi mạng lưới thành nhóm đặt = đỉnh i thuộc nhóm = −1 đỉnh i thuộc nhóm Ta có cơng thức tính Modularity sau: Trong đó: = + : giá trị ma trận kề A hàng i cột j + : số bậc + m: Tổng số actor mạng lưới Từ công thức, ta thấp thu tốt Tuy nhiên, điều làm phương pháp Modularity bị giới hạn khó nhận biết cộng đồng nhỏ 3.2 GRIVAN NEWMAN’S ALGORITHM Thuật toán Girvan – Newman thuật tốn điển hình phương pháp áp dụng thuật tốn phân chia Thuật tốn mang tính phổ biến cao, có ý nghĩa mặt lịch sử (đánh dấu bước khởi đầu thời kỳ phát triển phát cộng đồng) mặt phương pháp Ý tưởng đẳng sau thuật tốn tìm loại bỏ cạnh nối cộng đồng mạng, cạnh đóng vai trò ‘trung gian’ mạng lưới Một đường đỉnh mạng thuộc cộng đồng khác thiết phải qua số cạnh vậy, ta thiết lập đường tất đỉnh mạng xác định cạnh đồ thị qua nhiều nhất, ta loại bỏ để phân chia mạng thành cộng đồng riêng biệt Nội dung thuật toán Girvan – Newman sau: Tính hệ số trung tâm trung gian tất cạnh mạng 30 26 Loại bỏ cạnh có hệ số cao (Nếu có từ trở lên có hệ số giống ta loại bỏ ngẫu nhiên cạnh loại bỏ tất cạnh) 30 Tính tốn lại hệ số trung tâm trung gian cho tất cạnh bị ảnh hưởng b bước Lặp lại bước khơng cịn cạnh mạng lưới Thuật toán Girvan – Newman đưa lại kết tương đối tốt nhiều trường hợp có hai nhược điểm Thứ nhất, thuật tốn Girvan – Newman không xác định trước số cộng đồng mà mạng phân chia bao nhiêu, với nhiều phép phân vùng vậy, khó xác định phép phân vùng mang lại hiệu tốt Thứ hai, thuật tốn có độ phức tạp cao, với n đỉnh m cạnh ta có độ phức tạp ( ) bước lặp, tổng thời gian tính tốn ( cho bước xóa cạnh với trường hợp xấu ta có độ phức tạp ( ) mỗ ) Với nhược điểm trên, nhà khoa học tìm cách cải tiến phương pháp tốt hơn, điều dẫn tới họ phương pháp Girvan – Newman không đề cập báo cáo 3.3 NODE SIMILARITY BASED ALGORITHM (NSBA) NSBA so sánh tập hợp đỉnh dựa đỉnh láng giềng Hai đỉnh cho tương tự bọn chúng có láng giềng Để thực hóa ý tưởng này, hệ số Jaccard sử dụng để so sánh giống đỉnh Hệ số Jaccard đỉnh A B có cơng thức: ( , ) =| Nói cách đơn giản, so sánh hai đỉnh A B, thuật toán so sánh đánh giá xem mối quan hệ hai đỉnh có giống hay khơng trả giá trị nằm khoảng từ đến 1, giá trị tiến hai đỉnh giống ngược lại 30 ... CHƯƠNG – MẠNG XÃ HỘI VÀ CÁC VẤN ĐỀ PHÂN TÍCH MẠNG XÃ HỘI .7 1.1 GIỚI THIỆU VỀ MẠNG LƯỚI XÃ HỘI 1.2 PHÂN TÍCH MẠNG LƯỚI XÃ HỘI 1.3 CÁC ỨNG DỤNG CỦA PHÂN TÍCH MẠNG LƯỚI XÃ HỘI ... Facebook ví dụ mơ hình mạng xã hội sử dụng đồ thị vô hướng Twitter sử dụng đồ thị có hướng 1.2 PHÂN TÍCH MẠNG LƯỚI XÃ HỘI Phân tích mạng lưới xã hội (PTMLXH) trình nghiên cứu cấu trúc xã hội cách sử... thuyết đồ thị thể mơ hình mạng lưới xã hội (social network) Mạng lưới xã hội cấu trúc xã hội mà cá nhân hay tổ chức liên kết với dựa vào nút thắt định, ví dụ tình bạn, tình u, mối quan hệ đồng