Nghiên cứu phương pháp lan truyền nhãn và ứng dụng đề tài phát hiện cấu trúc cộng đồng trên đồ thị mạng xã hội

90 11 0
Nghiên cứu phương pháp lan truyền nhãn và ứng dụng đề tài phát hiện cấu trúc cộng đồng trên đồ thị mạng xã hội

Đ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

Ọ KHOA CÔNG THÔNG TIN TÊN Ề VÀ DỤ Ồ Ề TÀI PHÁT Ồ Ị Ề Ấ TRÚC X Họ tên học viên: Nguyễn Trung Kiên huy n ng nh i ng vi n h NTT ng M s 8480 n P S TS o n V n Hà nội, tháng 12 năm 2022 n CAM O T i xin c m o n h ng n kho học c y l c ng tr nh nghi n c u kho học c P S TS ề t i n y l trung th c v ch c c o nV n công n ri ng t i v cs c n i ung nghi n c u k t qu i ất kỳ hình th c n o tr ng i u ph c v cho vi c ph n t ch nh n x t c nh gi y Những s li u c ch nh t c gi thu th p t c c ngu n kh c nh u c ghi r ph n t i li u th m kh o Ngo i ra, lu n v n sử ng m t s nh n xét, c c t c gi kh c c qu n t ch c kh c ều c tr ch hi n c nh giá nh s li u c n v ch th ch ngu n g c N u ph t ất kỳ s gi n l n n o t i xin ho n to n chịu tr ch nhi m n i dung lu n v n c Tác giả luận văn guyễn Trung Kiên I Ả Lời t nh h u tiên, xin gửi lời i t n sâu sắc ng n ch o gi p tr nh học t p c n c c th y c gi ng ạy v c c th y cô Khoa Công Tr ờng ại Học Mở H N i ng h truyền ạt v giúp su t m nh V cu i c ng t i gửi lời c m n ng ời t n t i su t qu tr nh l m lu n v n T i gửi lời c m n ngh Thông tin c n PGS.TS o n V n Ban ng ời nc c ng vi n tạo iều ki n gi p ngày hôm Tôi xin chân thành cảm ơn! II ng nghi p t ic ạn v gi nh c k t qu học t p nh Contents CAM O Ả I II DANH Ụ ỪV Ế Ắ .V DANH Ụ CÁC BẢ VII DANH Ụ CÁC HÌNH VIII Ầ IX XÃ Ồ VÀ TRONG X 1.1 Mạng xã h i 1.2 thị mạng xã h i 1.3 1.4 1.5 o h s Các ấu trúc c ng K t lu n ch PHÁT Ề ng o thị mạng xã h i thị mạng xã h i 28 ng 31 Ồ XÃ O 32 2.1 Nhóm thu t tốn phát hi n c ng ng mạng xã h i 32 2.2 Thu t toán Lan truyền nhãn Label Propagation Algorihm (LPA) 43 2.3 o nh giá thu t toán phát hi n c ng 2.4 o trung gian phát hi n cấu trúc c ng III ng mạng xã h i 53 ng 56 2.5 K t lu n ch ng 60 Ấ Ú Ồ TRÌNH Ặ Ậ TỐN 61 3.1 Mơ t tốn 61 3.2 Thu t toán GN LPA 64 3.3 Công c xây ng ch 3.4 Tri n khai ch ng trình v i 3.5 K t lu n ch ng 74 Ậ VÀ K Ế Ị 75 KẾ ng trình 67 ữ li u 72 4.1 K t lu n 75 4.2 Ki n nghị 76 4.3 Ý nghĩ th c tiễn h DANH Ụ TÀI ng ph t tri n ề tài 76 THAM K ẢO 78 IV DANH STT Ụ ỪV Ế viết tắt Ắ Ý nghĩa đầy đủ Thu t toán cân ằng v phân c m sử BIRCH to n ph n cấp ( ng thu t l nce iter tive regucing and clustering using hierarchies) Thu t to n l n truyền nh n ch ng ch o c ng COPRA ng (Community Overlap Label Propagation Algorithm) Thu t to n ph n c m ph n cấp EAGLE h thị y tr n t i (Agglomer tive hierarchical clustering based on maximal clique) Lan truyền nh n cân ằng (Balanced multi- EMLPA GANs GCNs GN GNN LPA Thu t toán lan truyền nh n (Label propagation algorithm) 10 MXH Mạng x h i label propagation) Mạng l i i th chung (Generative adversarial networks) thị mạng tích ch p (Graph convolutional networks) Thu t tốn Girvan-Newman thị mạng n ron (Graph neural networks) V 11 NMF Phân tích ma tr n khơng âm sâu (Deep nonnegative matrix factorization) 12 OLP T i u hóa lan truyền nh n (Optimized label propagation) 13 SFI Vi n Santa Fe 14 SNAP T p ữ li u mạng Sanford (Stanford large networks dataset collection) VI DANH Ụ CÁC BẢ ng 2.1: Nhóm thu t tốn phát hi n c ng ng 41 ng 2.2: K t qu thu t toán LPA v i kích th ng 2.3: K t qu th c nghi m ví c gi ịnh 50 2.1b 51 ng 3.1: ấu hình th c nghi m ph n c ng 66 ng 3.2: K t qu so sánh chất l ng c ng ng phát hi n t thu t toán GN v LPA73 VII Ụ CÁC HÌNH DANH Hình 1.1: Các trang Mạng x h i Hình 1.2: Mạng x h i Facebook Hình 1.3: Mạng x h i Gapo Hình 1.4: thị có Hình 1.5: Những Hình 1.6: nh v cạnh 13 thị hình sao, bánh xe có s thị mạng x h i Hình 2.1: Mơ hình mạng l nh 3, 4, 5, 6, 15 n gi n g m nút 17 i c ng tác c nh khoa học l m vi c SFI 29 Hình 2.2: Thời gian th c hi n thu t toán LPA 50 Hình 2.3: Thời gian th c hi n ví Hình 2.4: hất l ng ví 2.1b 51 o trung gian Hình 1.6 56 Hình 2.5: Hình 2.6: Tính Hình 3.1: ng c ng 2.1b 51 ng o trung gian c cạnh 57 ng mạng x h i Dolphins 60 Hình 3.2: Th ng kê ữ li u mạng ban u mạng Dolphins 61 Hình 3.3: Network Data Preview mạng Dolphins 61 Hình 3.4: Th ng kê ữ li u mạng ban u mạng Karate 62 Hình 3.5: Network Data Preview mạng Karate 63 Hình 3.6: Tr c quan ữ li u v i Matplotlib 68 Hình 3.7: K t qu phát hi n c ng ng mạng Dolphins 72 Hình 3.8: K t qu phát hi n c ng ng mạng Karate 72 VIII Ầ Ph t hi n c ng ng mạng x h i l qu tr nh t m r c c cấu tr c c ng t n mạng v hi u ịnh c m i qu n h giữ chúng Các c ng ng th ờng tr n m i qu n h ch t ch giữ c c th nh vi n c ng m t c ng qu n h y u ho c t li n k t v i c c c ng Phát hi n cấu trúc c ng ng cx c ng v m i ng khác ng mạng x h i ng vai trò quan trọng nhiều lĩnh v c nh ph n t ch mạng x h i truy vấn th ng tin x c ịnh v i tr v t m qu n trọng c c c th nh vi n mạng m rketing x h i v nhiều ng i toán phát hi n c ng Trong to n ng m t s ph ng kh c ng pháp thông ng bao g m thu t irv n-Newm n thu t to n Louv in thu t to n L el Prop g tion v thu t to n Spectral Clustering Những ph ng pháp n y sử nh m ng mạng x h i t m r cấu tr c c ng ng kỹ thu t phân tách Vi c ph t hi n v kh m ph cấu tr c c ng hi u rõ h n s t ng tác v t ch c x h i nh gi v qu n l c c s ki n hi n t thị v ph n ng mạng x h i gi p ch ng t ng thời cung cấp thông tin hữu ích cho vi c ng x h i Nhằm gi i quy t vấn ề n u tr n em l chọn ề t i “Nghiên cứu phương pháp lan truyền nhãn ứng dụng đề tài phát cấu trúc cộng đồng đồ thị mạng xã hội” l ề t i nghi n c u c Lu n v n c o học Những m c tiêu nghiên c u c - Tìm hi u c c c ki n th c c thị mạng x h i c c ph - - lu n v n Nghiên c u n mạng x h i cấu tr c c ng ng ph p t m ki m cấu tr c c ng o ng mạng x h i thị mạng x h i v tìm hi u thu t tốn phát hi n cấu tr c c ng ng tr n mạng x h ng ng ng phát hi n c ng Xây ng tr n ng mạng x h i t p ữ li u c c ng tr n mạng - V n ng sử ng tr n ng o kho ng c ch tr n thị mạng x h i IX thị tm c c c cấu tr c c ng huật toán GN bao g m c nh sau [2]: đồ thuật tốn GN Hình 3.6: iv i |𝑉| thị ban ng v không trọng s G = (V, E) v i 𝑚 = |𝐸|, 𝑛 = thị l 𝐺1 =(𝑉1, 𝐸1) v i 𝑚1 = |𝐸|, 𝑛1 = |𝑉| u G = (V, E) sau rút gọn 𝑚1 < 𝑚, 𝑛1 < 𝑛 [1], [2] - ph c tạp c c rút gọn - ph c tạp c c phát hi n c ng v i tr ờng h p Nh v y th thị liên thông, vô h l 𝑂( 𝑛13) thị th thị (thu t toán REG) l O(n) ng tr n thị rút gọn l 𝑂(𝑚12 𝑛1) v i l 𝑂(𝑛13) ph c tạp c a thu t to n N l 𝑂(𝑚12 𝑛1) v i v i tr ờng h p ph c tạp c a thu t to n N l m cạnh c n loại bỏ v i ph c tạp O(mn) c n thời gi n l 𝑂(𝑚2𝑛) v i v i tr ờng h p 65 thị th thị c l p có l 𝑂(𝑛3) 3.2.2 Thu t toán LPA huật toán LPA c tri n khai [2], [9] Hình 3.7: LPA hoạt ng theo c c X c ịnh c c ại i n c c nh h ởng l n n c ng đồ thuật toán LPA cs u mạng x h i ại i n c ng mạng x h i ng ời c t m nh h ởng lĩnh v c n o theo Họ c th l ng ời n i ti ng ho c ng ời c nhiều ng ời i tr n mạng x h i Tạo r m t mạng l c c m i qu n h nh Tạo r c c c m k tc mạng x h i l ng ời họ v i nh u ạn i c c ại i n c ại i n c k t n i v i nh u th ng qu ng nghi p ho c c c m i qu n h kh c tr n mạng x h i c ại i n c ph n chi th nh c c c m c ại i n c ng m t c m c m c 66 tr n m c li n li n k t c o h n v i nh u so v i c c ại i n c c c m kh c ph c tạp c  m h nh xử l thu t to n LPA c th ph c tạp c  c khởi tạo nl s l  c l p: ph c tạp c c khởi tạo l O(n c l p l O(m ng cạnh mạng x h i v k l s l ph c tạp c k ph c tạp c ng ại i n mạng x h i ph c tạp c ml s l c t nh nh s u m h nh xử l : nl s l ph c tạp c k ng c m m h nh xử l l O(n ng ại i n mạng x h i m l s l mạng x h i v k l s l m ng cạnh ng c m 3.2.3 Cấu hình thực nghiệm Bảng 3.1: ấu hình thực nghiệm phần cứng Chi tiết phần cứng Thông số kĩ thuật CPU Apple M1 RAM 8Gb SSD 256Gb OS MacOS 3.2.4 Dữ liệu thực nghiệm STT 3.3 ạng Dolphins Karate Công cụ xây dựng ch guồn https://networkrepository.com/socdolphins.php https://networkrepository.com/sockarate.php ng trình 3.3.1 Ngơn ngữ l p trình Python l m t ng n ngữ l p tr nh c c o cho c c m c 67 ch l p tr nh n ng o ui o v n Rossum tạo r v l n i m mạnh l ễ ọc ễ học v u r mắt v o n m ễ nh Python c thi t k v i u Python l ng n ngữ c h nh th c s ng s cấu trúc r r ng thu n ti n cho ng ời m i học l p tr nh v l ng n ngữ l p tr nh ễ học; ng r ng r i ph t tri n tr tu nh n tạo ấu tr c c Python c n cho ph p ng ời sử ng vi t m l nh v i s l n g ph m t i thi u V o th ng n m ch c l nh ạo c ng ng ng n ngữ Python s u Python ho n to n tạo ki u t ng v v n Rossum ng c ch cấp ph t nh t ng; o v y c phát tri n m t án m mở t ch c phi l i nhu n Python Software Foundation qu n lý Ban h chạy Unix Nh ng r i theo thời gian, Python iều h nh t MS-DOS n M c OS OS khác thu c họ Unix M c dù s phát tri n c ng góp c nh ng Guido van Rossum hi n v n l t c gi ch y u c ng ph t tri n c ng n ngữ l p tr nh ph i n u Python n mở r ng s ng Win ows Linux v c c h Python có s ch t vi c quy t ịnh h t n m l m vi c [ ] ng t nh Perl, Ruby, Scheme, Smalltalk, v Tcl Python c phát tri n c iều h nh nhiều cá nhân, Python Ông giữ v i tr ch Python Python lu n c x p hạng v o 3.3.2 Các thư viện sử dụng 3.3.2.1 NetworkX NetworkX l m t th vi n Python mềm miễn ph nghiên c u thị v mạng NetworkX l ph n c ph t h nh theo giấy ph p SD-new NetworkX có tính n ng n i t nh  Các l p cho thị v chữ ghép  thị sang v t m t s huy n i ịnh ạng  Kh n ng xây ng  Kh n ng tìm thị , c m , k-lõi thị ng u nhiên ho c xây  Khám phá s liền kề ng chúng t ng n ờng kính, bán kính, tâm, kho ng cách , v.v  V mạng ạng 2D v 3D NetworkX phù h p v t qu tri u n t v hoạt ng i u l n th gi i th c ví tri u cạnh Do ph thu c v o cấu tr c ữ li u t 68 i u i nc t i n thu n Python, NetworkX l m t khung có tính di th mở r ng 3.3.2.2 ph n t ch mạng v mạng x h i Matplotlib c sử Python ng nhiều lĩnh v c phân tích ữ li u m khoa học ữ li u công vi c tr c ti p hóa thơng tin qua thị c c m i qu n h ữ li u ễ ng ng cao, hi u qu h p lý, c v c c thị giúp hi u ng h n nhiều M tplotli l m t th vi n y l m t th vi n họ ữ li u k t h p Python N Dv D t vời Hình 3.8: rực quan liệu v i Matplotlib 3.3.3 Các m đun chương trình def c sử Khai báo s nút init (self, G, max_iter=20): self._G = G self._n = len(G.nodes(False)) # Số nút self._max_iter = max_iter 69 c tạo r tạo r c c s li u khoa học 3.3.3.1 c Python M tplotli l th vi n tr c qu n h ởi John Hunter i u 3.3.3.2 Ki m tra i m h i t # Xét xem có hội tụ không? def can_stop(self): # Nhãn nút giống với nhãn nút lân cận for i in range(self._n): node = self._G.nodes[i] label = node["label"] max_labels = self.get_max_neighbor_label(i) if label not in max_labels: return False return True 3.3.3.3 Phát hi n nhãn v i nút lân c n # Phát nhãn với nút lân cận def get_max_neighbor_label(self, node_index): m = collections.defaultdict(int) for neighbor_index in self._G.neighbors(node_index): neighbor_label = self._G.nodes[neighbor_index]["label"] m[neighbor_label] += max_v = max(m.values()) # Có thể có nhiều thẻ có số, tất trả return [item[0] for item in m.items() if item[1] == max_v] 3.3.3.4 p nh t không ng # Cập nhật không đồng def populate_label(self): # Truy cập ngẫu nhiên visitSequence = random.sample(self._G.nodes(), len(self._G.nodes())) for i in visitSequence: node = self._G.nodes[i] label = node["label"] max_labels = self.get_max_neighbor_label(i) # Nếu nhãn không cập nhật tập hợp nhãn tối đa, không, lựa chọn ngẫu nhiên tương tự vô nghĩa if label not in max_labels: newLabel = random.choice(max_labels) node["label"] = newLabel 3.3.3.5 Phát hi n cấu trúc c ng ng theo nhãn # Nhận cấu trúc cộng đồng theo nhãn def get_communities(self): communities = collections.defaultdict(lambda: list()) for node in self._G.nodes(True): label = node[1]["label"] communities[label].append(node[0]) return communities.values() 70 3.3.3.6 Hàm tr c quan hóa k t qu # Trực quan hóa kết def showCommunity(G, partition, pos): # Các phân vùng cộng đồng biểu thị biểu tượng cạnh cộng đồng khác in đậm màu đen cluster = {} labels = {} for index, item in enumerate(partition): for nodeID in item: labels[nodeID] = r'$' + str(nodeID) + '$' # Đặt nhãn trực quan hóa cluster[nodeID] = index # số phân vùng nút # nút trực quan hóa colors = ['r', 'g', 'b', 'y', 'm'] shapes = ['v', 'D', 'o', '^', '

Ngày đăng: 09/12/2023, 09:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan