Xây dựng hệ thống giải quyết bài toán tìm phần tử chính yếu

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu và phát triển thuật toán tìm phần tử chính yếu trong mạng xã hội và ứng dụng (Trang 74 - 84)

b. Danh sách liên kết

4.3.Xây dựng hệ thống giải quyết bài toán tìm phần tử chính yếu

Như đã trình bày trong chương 3, bài toán tìm phần tử chính yếu hiện nay đã có nhiều công trình nghiên cứu đưa ra các thuật giải dựa trên nền tảng là các độ đo Centrality và thuật toán tìm đường đi nhắn nhất của lý thuyết đồ thị.

Về mặt ý tưởng, thuật giải tìm phần tử chính yếu được thực hiện thông qua các bước cơ bản sau:

 Bước 1: Tính toán tìm tất cả các đường đi ngắn nhất từ 1 đỉnh đến tất cả các đỉnh còn lại trong đồ thị cho tất cả các đỉnh.

 Bước 2: Tính toán độ đo trung tâm theo bậc của tất cả các đỉnh trong đồ thị.

 Bước 3: Tính toán tìm độ đo trung tâm theo trung gian của tất cả các đỉnh trong đồ thị.

 Bước 4: Tính toán độ đo trung tâm theo sự lân cận của mỗi đỉnh trong đồ thị.

 Bước 5: Dựa vào các độ đo trung tâm -> Đưa ra kết quả.

Để thực hiện thuật giải Tìm phần tử chính yếu trong mạng xã hội, đề tài xây dựng hệ thống thực nghiệm trên môi trường .NET và sử dụng ngôn ngữ VB.Net.

Hệ thống được xây dựng bao gồm các chức năng chính sau:

 Nạp dữ liệu: Dữ liệu thực nghiệm được thu thập từ các nguồn thực tế trên mạng Internet. Cấu trúc lưu trữ ban đầu là file kiểu XML, sau đó được chuyển sang file dạng Excel XLS, tinh lọc cho phù hợp theo chương trình:

Người sử dụng sẽ chọn dữ liệu (database) bằng cách click vào nút trong chương trình và dẫn đường tới file xls để nạp dữ liệu vào hệ thống.

 Hiển thị đồ thị trực quan: Sau khi nạp dữ liệu vào hệ thống, Chương trình sẽ hiển thị Đồ thị trực quan:

Hình 4.15: Giao diện đồ thị trực quan

 Xử lý, tính toán các độ đo Centrality:

Khi click chọn nút , hệ thống sẽ lần lượt tính toán các độ đo centrality như sau:

o Tính Degree Centrality:

Hình 4.16: Tính Degree Centrality

Hình 4.17: Tính Betweenness Centrlity

o Tính Closeness Centrality

Hình 4.18: Tính Closeness Centrality

 Hiển thị kết quả là tập các phần tử chính yếu đã tìm được:

Hình 4.19: Hiển thị kết quả của chƣơng tr nh

So sánh tập phần tử chính yếu tìm được với tập dữ liệu thực nghiệm (hình 4.20) thấy rằng:

 Các nodes 1, 34, 33 có mức Degree Centrality cao nhất, là các nodes có các cạnh kết nối nhiều nhất. Các nodes đó có thể là một trong những người hoạt động tích cực nhất, nổi tiếng nhất, là một đầu nối quan trọng hay có một vị trí thuận lợi nhất.

 Các nodes 3, 32, 9 có mức Betweenness Centrality cao nhất, là các nodes có khả năng kết nối được với các cặp node khác,

đồng thời có khả năng điều khiển luồng thông tin chảy trong mạng.

 Các nodes 5, 6, 4 có mức độ Closeness Centrality cao nhất, là các nodes có khả năng truyền đạt, tiếp nhận thông tin từ nodes khác trong mạng nhanh và it tốn thời gian nhất.

Hình 4.20: Mô tả tập dữ liệu thực nghiệm Karate.xml 4.4.Kết quả thực nghiệm.

Đề tài đã chọn các tập dữ liệu sau để thực nghiệm kiểm tra hệ thống:

 Tập dữ liệu karate.net là tập dữ liệu lưu trữ thông tin trao đổi giữa các thành viên trong mạng của câu lạc bộ karate (tập dữ liệu được cung cấp bởi tác giả Zachary)

 Tập dữ liệu dolphins.net: là tập dữ liệu của một mạng xã hội vô hướng thường xuyên thể hiện mối liên quan giữa 62 con cá heo trong một cộng đồng sống nhờ ngờ vực âm thanh (tập dữ liệu được biên soạn bởi Lusseau et al. (2003) (adsbygoogle = window.adsbygoogle || []).push({});

 Tập dữ liệu polbooks.net: là tập dữ liệu lưu trữ mối liên hệ giữa các quyển sách viết về chính trị ở nước Mỹ được bán trên website

amazon.com với các quyển sách được bán đồng thời (được cung cấp bởi tác giả Newman)

Sau khi thực nghiệm bộ dữ liệu karate.xml bằng hệ thống, kết quả thu được là nhóm các phần tử chính yếu như sau:

Hình 4.21: Giao diện kết quả cuối cùng của chƣơng tr nh

Dựa vào các độ đo Centrality, hệ thống đã tìm được danh sách các phần tử (node) chính yếu quan trọng: 34, 1, 33, 3, 32, 9, 5, 6, 4.

Thời gian thực hiện tìm phần tử chính yếu của hệ thống tỉ lệ thuận với số lượng các kết nối giữa các phần tử trong bộ dữ liệu. Do phải tính toán tất cả các đường đi ngắn nhất của tất cả các cặp đỉnh trong đồ thị nên nếu dữ liệu có số lượng cạnh lớn thì thời gian thực hiện sẽ mất nhiều hơn. Thêm vào đó, việc tổ chức của dữ liệu của đồ thị là có hướng hay vô hướng cũng là yếu tố quan trọng ảnh hưởng đến thời gian thực hiện. Nếu là đồ thị có hướng thì việc tính toán tìm

đường đi ngắn nhất của mọi cặp đỉnh chỉ tính 1 chiều theo chiều của hướng mũi tên, ngược lại với đồ thị vô hướng thì ta phải tính toán trên cả 2 chiều

Độ phức tạp của thuật toán tìm phần tử chính yếu chịu ảnh hưởng bởi thuật toán tìm đường đi ngắn nhất BFS trong đồ thị với độ phức tạp là O(n2).

CHƢƠNG 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

5.1. Những đóng góp của đề tài.

Chương trình “Tìm phần tử chính yếu trong MXH là một ứng dụng khai phá dữ liệu dùng để tìm ra nhóm các phần tử quan trọng trong mạng, có thể hỗ trợ các doanh nghiệp hay các tổ chức tìm và phát hiện ra các nhân tố đặc biệt quan trọng trong hệ thống cơ sở dữ liệu mạng.

Đứng trên cơ sở là một doanh nghiệp. Chương trình có thể giúp họ Xây dựng chiến lược quảng bá thương hiệu hoặc quảng các giới thiệu sản phẩm thông qua các nhân vật quan trọng, chính yếu mà chương trình tìm được.

Đứng trên cơ sở là Cơ sở giáo dục như các trường Đại học, Cao đẳng hay Trung học chuyên nghiệp, họ có thể áp dụng chương trình này để tìm ra những phần tử nào có mức độ ảnh hưởng lớn nhất, có độ lan tỏa thông tin nhanh và chính xác nhất tới mọi phần tử khác trong mạng xã hội, từ đó họ tập trung để quảng bá những chương trình đào tạo, hay những thông tin tuyển sinh,…

Đứng trên cơ sở là cơ quan an ninh, quốc phòng, chương trình có thể giúp họ phát hiện ra nhóm tội phạm, phần tử khủng bố quan trọng thông qua dữ liệu mà họ thu thập được trên mạng xã hội hay là những tin nhắn, email liên lạc giữa họ.

Đứng trên những ý tưởng đó, chương trình sẽ tìm kiếm trong bộ các dữ liệu thu thập được trên mạng, đưa ra phần tử, nhóm những phần tử chính yếu nhằm giúp họ xây dựng chiến lược thực hiện hay đối phó ngăn chặn kịp thời những hoạt động tội phạm.

5.2.Hạn chế của đề tài, cách khắc phục

Đề tài chỉ mới tìm hiểu, phân tích các loại độ đo Centrality, phương pháp phát hiện phần tử chính yếu (Key player) trong mạng xã hội dựa trên các độ đo này.

Bên cạnh đó, đề tài mới chỉ xây dựng hệ thống thực nghiệm cơ bản, đơn giản. Hệ thống làm việc tốt cho Đồ thị có hướng vì hệ thống chỉ tính toán đường đi ngắn nhất cho các nodes theo 1 chiều hướng, với đồ thị vô hướng thì có phần hạn chế về thời gian chạy của hệ thống khá lâu vì phải tính toán đường đi ngắn nhất cho toàn bộ các nodes trong đồ thị ở cả 2 chiều.

Các hạn chế này cần có thời gian (tìm hiểu, phân tích và đánh giá lại các thuật giải đã), kinh phí (các kho dữ liệu có giá trị cần thiết phải đầu tư, và phải xây dựng thuật toán trên hệ thống song song) và nhân lực (để triển khai một hệ thống đúng nghĩa)

5.3.Hƣớng phát triển

Đề tài chủ yếu tập trung tìm hiểu và nghiên cứu thuật giải tìm phần tử chính yếu trong khai phá dữ liệu mạng xã hội.

Do thời gian có hạn, đề tài chỉ triển khai các thuật giải trên cơ sở là một chương trình đơn giản, chương trình làm việc trên hệ thống đơn lẻ nên thời gian thực hiện là một vấn đề cần phải giải quyết. Trong tương lai, cần xây dựng thuật giải theo hướng xử lý song song để việc tính toán tất cả các đường đi ngắn nhất được thực hiện nhanh chóng giải quyết vấn đề về thời gian thực hiện.

Việc sưu tầm dữ liệu tự động trong hệ thống chưa được cài đặt. Dữ liệu thực nghiệm trên hệ thống chủ yếu được lấy từ các trang web cung cấp sẵn các tập mẫu dữ liệu thực tế và sau đó được xử lý làm sạch theo nhu cầu của thuật giải. Trong tương lai, hệ thống cần được tích hợp sẵn các module dò tìm và xử lý dữ liệu tự động (web crawnling) có thể áp dụng ngay trên mạng Internet.

Bên cạnh đó, việc tổ chức dữ liệu theo hướng cơ sở dữ liệu đồ thị cũng cần phải nghiên cứu tiếp theo để có thể tăng thêm tích hiệu quả cho bài toán.

TÀI LIỆU THAM KHẢO



TÀI LIỆU TIẾNG VIỆT

[1]. Lê Minh Hoàng, “Giáo trình Lý thuyết Đồ thị”

[2]. Đỗ Phúc (2010), “Tài liệu slide học tập môn khai phá dữ liệu”

[3]. Đỗ Phúc (2009), Giáo trình Khai thác dữ liệu. Nxb Đại học Quốc gia TP. Hồ Chí Minh. (adsbygoogle = window.adsbygoogle || []).push({});

[4]. Lê Minh Tiến (2006), “Tổng quan phương pháp phân tích mạng xã hội trong nghiên cứu xã hội”. Tạp chí khoa học xã hội. Số 9.

TÀI LIỆU TIẾNG ANH

[5]. Andrew Y. Wu, Michael Garland, Jiawei Han (2004), Mining scale-free networks using geodesic clustering, published by ACM.

[6]. Derek L. Hansen, Ben Shneiderman, Marc A. Smith (2011). “Analyzing social media networks with NodeXL”.

[7]. Dr. Giorgos Cheliotis (2010). “Social network analysis (sna) including a tutorial on concepts and methods”, National University of Singapore

[8]. Linton C. Freeman (1978), “Centrality in Social Networks, Conceptual Clarification, Social Network”, 215 – 239

[9]. D.A. Bader, S. Kintali, K. Madduri, and M. Mihail (2007), “Approximating Betweenness Centrality”, The 5th Workshop on Algorithms and Models for the Web-Graph, WAW2007

[10]. M. Girvan and M. E. J. Newman (2002), “Community structure in social and biological networks”, Proc. Natl. Acad. Sci. USA 99, 7821–7826

[11]. M. E. J. Newman (2004), “Fast algorithm for detecting community structure in networks”, Phys. Rev. E 69, 066133

[12]. Ovelgönne, Michael, Geyer-Schulz, Andreas and Stein, Martin (2010). “Randomized Greedy Modularity Optimization for Group Detection in Huge Social Networks”, ACM.

[13]. Stephen P. Borgatti (2006), “Identifying sets of key players in a social network”, Comput Math Organiz Theor 12: 21–34.

[14]. Daniel Ortiz-Arroyo and Akbar Hussain, An Information Theory Approach to Identify Sets of Key Players, Electronics Department Aalborg University, Niels Bohrs Vej 8, 6700 Esbjerg Denmark.

[15]. Ulrik Brandes, “A Faster Algorithm for Betweenness Centrality”, Department of Computer & Information Science, University of Konstanz, Germany.

CÁC ĐỊA CHỈ INTERNET

[16]. The Social Network (2010).

http://en.wikipedia.org/wiki/The_Social_Network. [17]. Graph Theory http://en.wikipedia.org/wiki/Graph_theory [18]. Centrality http://en.wikipedia.org/wiki/Centrality [19]. Clustering coefficient http://en.wikipedia.org/wiki/Clustering_coefficient [20]. Breadth First Search

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu và phát triển thuật toán tìm phần tử chính yếu trong mạng xã hội và ứng dụng (Trang 74 - 84)