Bài viết này trình bày một số kỹ thuật liên quan như: thu thập dữ liệu, các phương pháp xử lý và phân tích dữ liệu MXH Twitter. Các dữ liệu thu thập từ mạng xã hội Twitter bao gồm: Thông tin người dùng, thông tin mạng, thông tin người theo dõi và bạn bè, các nội dung Tweets
Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XIII Nghiên cứu ứng dụng Công nghệ thông tin (FAIR), Nha Trang, ngày 8-9/10/2020 DOI: 10.15625/vap.2020.00215 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƯƠNG PHÁP NHÚNG THÔNG TIN NÚT Phan Đăng Khoa, Vũ Đức Thi Viện Công nghệ Thông tin, Đại học Quốc gia Hà Nội khoapd@vnu.edu.vn, vdthi@vnu.edu.vn TÓM TẮT: Twitter mạng xã hội trực tuyến lớn miễn phí Việc thu thập, xử lý phân tích liệu Mạng xã hội (MXH) nói chung Twitter nói riêng lĩnh vực nghiên cứu có ứng dụng phong phú, áp dụng vào nhiều lĩnh vực đời sống xã hội như: thương mại điện tử, marketing, quảng cáo trực tuyến, văn hóa, trị, Bài báo trình bày số kỹ thuật liên quan như: thu thập liệu, phương pháp xử lý phân tích liệu MXH Twitter Các liệu thu thập từ mạng xã hội Twitter bao gồm: thông tin người dùng, thông tin mạng, thông tin người theo dõi bạn bè, nội dung Tweets Sau đó, chúng tơi thực số thử nghiệm kỹ thuật như: node2vec, K-means để xử lý phân tích liệu thu thập Từ khóa: Social Network analysis, network embeddings, node embeddings, Twitter I GIỚI THIỆU Twitter dịch vụ mạng xã hội trực tuyến miễn phí, dạng micro-blog cho phép ngƣời sử dụng đọc, nhắn cập nhật mẩu tin nhỏ gọi Tweet Các Tweet có giới hạn tối đa 280 ký tự đƣợc lan truyền nhanh chóng phạm vi nhóm bạn ngƣời nhắn đƣợc đăng rộng rãi cho ngƣời Không giống nhƣ tảng MXH khác, hầu hết Tweets ngƣời dùng Twitter nhƣ thông tin khác liên quan đến ngƣời dùng hoàn toàn cơng khai thu thập đƣợc Đây đặc điểm thuận thợi để thu thập lƣợng lớn liệu thực phân tích với chúng Twitter API cho phép thực từ truy vấn đơn giản nhƣ lấy thông tin Tweets ngƣời dùng, đến truy vấn phức tạp nhƣ lấy tất Tweets chủ đề đó, có chứa từ khóa khoảng thời gian định, Thu thập phân tích liệu MXH chủ đề đƣợc nhiều quan tâm với nhiều tốn có tính ứng dụng cao nhƣ: phân tích ảnh hƣởng, phân tích dự đốn liên kết, phát cộng đồng, phân tích trạng thái quan điểm,…[8] Bài báo trình bày số vấn đề liên quan đến phân tích mạng xã hội nhƣ: thu thập liệu, xử lý phân tích liệu MXH Twitter Cấu trúc báo phần giới thiệu chung, lại gồm phần: Thu thập liệu Twitter; Xử lý phân tích liệu Twitter; Thực nghiệm Kết luận II THU THẬP DỮ LIỆU TWITTER A Cơ chế xác thực mở OAuth Open Authentication (OAuth)1 chuẩn mở đƣợc sử dụng việc xác thực OAuth thƣờng đƣợc sử dụng công ty nhƣ Google, Facebook, Twitter, Amazon, Microsoft, nhƣ cách phép ngƣời dùng họ cấp cho trang web ứng dụng khác quyền truy cập vào thông tin họ mà không cần cung cấp mật Việc xác thực cho yêu cầu đến API Twitter đƣợc thực OAuth B Thu thập liệu từ Twitter Thông tin ngƣời dùng Tên: Donald J Trump User’s Twitter (screen_name) handle: @realDonaldTrump Vị trí (User’s location): Washington, DC Dịng mơ tả ngƣời dùng sở thích: 45th President of the United States of America Thông tin hoạt động mạng ngƣời dùng: theo dõi 50 ngƣời có 84.5 triệu ngƣời theo dõi Số tweets viết: 54,2 nghìn Tweet Ngày tạo profile: tháng năm 2009 Hình Ví dụ hồ sơ ngƣời dùng Twitter https://oauth.net/2/ 578 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… Trên Twitter, ngƣời dùng tạo hồ sơ (profile) để mơ tả thân cho ngƣời dùng khác Một hồ sơ ngƣời dùng chứa thông tin đầy đủ có giá trị họ (Hình 1) Để thu thập thông tin hồ sơ ngƣời dùng, Twitter cung cấp API /users/show.json với tham số đƣợc truyền vào screen_name ngƣời dùng Thông tin ngƣời theo dõi bạn bè Twitter mạng có hƣớng, Twitter có hai loại kết nối ngƣời dùng: theo dõi (follow) đƣợc theo dõi Ở Hình dƣới ví dụ mạng ngƣời dùng Twitter, xét ba ngƣời dùng dangkhoafan, nguyenduong994 hieu_lq (là nút màu đỏ) quan hệ chúng Ngƣời dùng nguyenduong994 theo dõi (follow) hieu_lq, tức nguyenduong994 ngƣời theo dõi (follower) hieu_lq hieu_lq đƣợc xem bạn (friend) nguyenduong994 Do Twitter kết bạn giống nhƣ MXH Facebook, nên hai ngƣời theo dõi lẫn (trƣờng hợp ngƣời dùng dangkhoafan nguyenduong994) đƣợc xem nhƣ kết bạn với Hình Ví dụ mạng ngƣời dùng Twitter a) Thu thập ngƣời theo dõi Danh sách ngƣời theo dõi (followers) ngƣời dùng thu thập từ Twitter thông qua API followers/ids2 followers/list với tham số user_id screen_name ngƣời dùng mà muốn lấy danh sách ngƣời theo dõi Do giới hạn số lƣợng ghi trả về, nên cần sử dụng tham số cursor để thực việc chia nhỏ danh sách tải phần b) Thu thập danh sách bạn bè Để lấy danh sách bạn bè (friends) ngƣời dùng, Twitter cung cấp API friends/ids3 friends/list Các tham số đầu vào tƣơng tự nhƣ API để lấy danh sách ngƣời theo dõi (user_id screen_name ngƣời dùng mà muốn lấy danh sách bạn bè) Thu thập tweets ngƣời dùng Các tweets dịng tin nhắn trạng thái (status) mà ngƣời dùng Twitter đăng lên Độ dài tối đa tweet 280 ký tự Twitter cung cấp số API để thu thập tweets a) Lấy tweets dòng thời gian (timelines) Dòng thời gian đơn giản danh sách dòng tổng hợp tweet Để lấy tweets sử dụng API: /statuses/home_timeline (lấy tweets gần đƣợc đăng tài khoản xác thực ngƣời dùng đƣợc theo dõi khác), /statuses/user_timeline (lấy tweets gần đƣợc đăng ngƣời dùng cách truyền tham số user_id screen_name tƣơng ứng)4 Từ tháng 6/2019, Twitter giới hạn tổng requests đến APIs /statuses/mentions_timeline /statuses/user_timeline 100,000 requests ngày tài khoản xác thực b) Lấy tweets thơng qua tìm kiếm Bên cạnh API lấy tweets dòng thời gian ngƣời dùng đƣợc định, lấy tweets thỏa mãn điều kiện tìm kiếm qua API tìm kiếm /search/tweets5 Twitter cung cấp Các tiêu chí tìm kiếm đƣợc hỗ trợ bao gồm: theo từ khóa, hashtags, đoạn câu, vùng địa lý,… API tìm kiếm hữu ích việc thu thập tweets theo chủ đề III XỬ LÝ, PHÂN TÍCH VÀ BIỂU DIỄN DỮ LIỆU TWITTER Các MXH nói chung Twitter nói riêng biểu diễn theo kiểu mạng, tức bao gồm tập hợp đỉnh/nút đƣợc liên kết cạnh Đỉnh ví dụ Hình ngƣời dùng Twitter Cạnh mối quan hệ, https://api.twitter.com/1.1/followers/ids.json https://api.twitter.com/1.1/friends/ids.json https://developer.twitter.com/en/docs/tweets/timelines/overview https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets Phan Đăng Khoa, Vũ Đức Thi 579 tƣơng tác ngƣời dùng đó, cạnh vơ hƣớng có hƣớng Trƣờng hợp ví dụ Hình 2, quan hệ “theo dõi” đƣợc xem cạnh có hƣớng hai ngƣời dùng, ngƣời theo dõi ngƣời mà khơng bắt buộc có chiều ngƣợc lại, hay ví dụ quan hệ có hƣớng khác hành động retweet (chia sẻ lại Tweet ngƣời khác) Các cạnh có trọng số, lý thuyết đồ thị (mạng), trọng số cạnh thể tầm quan trọng cạnh so sánh với cạnh khác Ví dụ với trƣờng hợp mạng đề cập ngƣời dùng 6, quan hệ cạnh hành động đề cập đến ngƣời dùng khác Tweet trọng số cạnh số lần đề cập Đặc điểm liệu mạng/đồ thị khả thao tác tƣơng đối hạn chế phức tạp Do kỹ thuật thƣờng đƣợc áp dụng phân tích, xử lý liệu dạng biến đổi (nhúng) sang không gian vector để sử dụng phƣơng pháp học máy hay deep learning phổ biến cho toán nhƣ: phân cụm, phân lớp để phát cộng đồng, dự đoán liên kết, Trong phần chúng tơi trình bày phƣơng pháp đơn giản để lần vết Tweet, xây dựng mạng luồng thông tin chia sẻ retweets kỹ thuật nhúng thông tin mức nút sang không gian vector A Xây dựng mạng luồng thông tin Thông tin đƣợc lan truyền Twitter thông qua việc đăng lại tweets, đƣợc gọi retweets Các retweets đƣợc đánh dấu tiền tố đặc trƣng “RT”, sau tên ngƣời dùng đăng tweet Ví dụ tweet đƣợc đăng ngƣời dùng Hillary: “RT @realDonaldTrump: Great to have NASA Astronauts return to Earth after very successful two month mission Thank you to all!” Ở đây, “realDonaldTrump” ngƣời dùng đăng tweet đƣợc retweet lại Hillary Trong đối tƣợng API mà Twitter cung cấp trả về, retweets đƣợc phân biệt với tweets thông thƣờng khác tồn thuộc tính retweeted_status Với ví dụ retweet trên, lấy liệu qua API, thuộc tính retweeted_status đối tƣợng kết có dạng nhƣ sau: "retweeted_status":{ "id":1289997897723863040L, "full_text":"Great to have NASA Astronauts return to Earth after very successful two month mission Thank you to all!", "retweeted":True, } Nhƣ vậy, với việc API Twitter trả thơng tin thuộc tính retweeted_status ngƣời đăng Tweet đầu tiên, nên xác định đƣợc nguồn gốc thông tin, thông tin ngƣời dùng trung gian đƣờng lan truyền thông tin Trong số trƣờng hợp, không quan tâm đến nguồn gốc xuất phát thơng tin (tweet) mà cịn muốn biết đƣờng mà thơng tin lan truyền MXH nhƣ Do để xây dựng mạng luồng chia sẻ tweet, thực theo thuật tốn đơn giản nhƣ sau (dựa vào thơng tin mạng theo dõi friend-follower network), sau dùng thuật toán vẽ đồ thị [5]: B Kỹ thuật nhúng thông tin mức nút (node embeddings) Nhúng thông tin mức nút node2vec Nhúng thông tin mức nút/đỉnh (node embeddings) nhóm phƣơng pháp nhúng đồ thị (graph embeddings) Node2vec khung thuật toán cho việc học biểu diễn đồ thị, đƣợc đề xuất J Leskovec cộng [2] Trong node2vec, thực việc học để ánh xạ nút (đỉnh) sang vector đặc trƣng chiều nhƣng tối đa hóa đƣợc việc đảm bảo lân cận nút đồ thị/mạng gốc Tức là, việc học để nhúng cho nút “gần nhau” đồ thị gốc gần không gian vector nhúng Ý tƣởng node2vec xuất phát từ phƣơng pháp nhúng từ word2vec[3] xử lý ngôn ngữ tự nhiên Đầu vào node2vec đồ thị, thực trình lấy mẫu để sinh đồ thị (sub-graph) (tƣơng tự nhƣ “câu” ngôn ngữ tự Hành động đề cập (mention) Twitter tƣơng tự hành động gắn (tag) bạn bè Facebook THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… 580 nhiên đƣợc tạo thành từ từ ghép nối liên tiếp), sau áp dụng mơ hình Skip-gram để học đặc trƣng Sơ đồ trình nhúng node2vec nhƣ Hình Hình Quá trình nhúng node2vec Một cách hình thức, tốn node2vec đƣợc hình thành nhƣ sau Giả sử đồ thị (mạng) cho (V tập đỉnh/nút, E tập cạnh) Giả sử hàm ánh xạ từ nút sang biểu diễn đặc trƣng mà muốn học (ở d số chiều biểu diễn đặc trƣng) Với nút , xác định lân cận mạng nút u đƣợc tạo thông qua chiến lƣợc sinh mẫu vùng lân cận S Các tác giả thực mở rộng mơ hình Skip-gram [3, 4] cho đồ thị/mạng Khi việc học hàm f để tìm cách tối ƣu hóa hàm mục tiêu sau (tối đa hóa log xác suất quan sát lân cận mạng nút biểu diễn đặc trƣng nó): ∑ ( | (1) ) Với giả định likelihood quan sát nút độc lập, tính likelihood tập hợp lân cận nhƣ sau: ( | ) ∏ ) ∑ Do ( | Sử dụng tham số hóa softmax ( | ) ∑ Khi (1) trở thành ∑[ ∑ ] (2) ∑ việc tính tốn đồ thị/mạng lớn tốn tính tốn ƣớc lƣợng cách lấy mẫu (sampling) Việc tối ƣu mục tiêu node2vec (2) đƣợc thực cách sử dụng thuật toán Stochastic Gradient Descent (SGD) Chiến lƣợc sinh mẫu (sampling strategy) bƣớc ngẫu nhiên “random walks” Sampling node2vec có bốn tham số: - r: số lần ngẫu nhiên đƣợc tạo từ nút; l: độ dài lần đi, số nút lần ngẫu nhiên; p: tham số quay trở (quay trở nút trƣớc đó); q: tham số in-out Thuật toán tạo lần ngẫu nhiên random walks qua nút đồ thị tạo r lần ngẫu nhiên với độ dài lần l Để hiểu rõ hai tham số p q xem minh họa Hình Giả sử lần ngẫu nhiên, vừa di chuyển từ nút sang nút , cần xác định nút dịch chuyển qua Xác suất để di chuyển từ đến nút hàng xóm , trọng số cạnh { Phan Đăng Khoa, Vũ Đức Thi Với 581 khoảng cách đƣờng ngắn nút (lƣu ý nhận giá trị {0, 1, 2}) Tham số p kiểm soát xác suất quay lại nút sau truy cập nút Nếu đặt giá trị tham số cao (>max (q, 1)) đảm bảo có khả lấy lại nút viếng thăm vòng hai bƣớc sau (trừ nút lần khơng có hàng xóm khác) Ngƣợc lại lấy giá trị p thấp (< (1, q)), dẫn đến việc lùi lại bƣớc điều dẫn đến lần có tính “cục bộ” (local) gần với nút bắt đầu Hình Minh họa quy trình ngẫu nhiên node2vec Tham số in-out q cho phép bƣớc phân biệt nút “hƣớng nội” “hƣớng ngoại” Nhƣ Hình 4, q > 1, bƣớc ngẫu nhiên thiên nút gần với nút hơn, bƣớc nhƣ có tính chất cục (local) hơn, tức liên quan đến nút xuất phát lần hơn, gần với chiến lƣợc lấy mẫu theo chiều rộng BFS (Breadth-first Sampling) mẫu bao gồm nút địa phƣơng nhỏ Ngƣợc lại, q < 1, bƣớc có xu hƣớng đến nút xa nút hơn, gần với chiến lƣợc lấy mẫu theo chiều sâu DFS (Depth-first Sampling) Một ƣu điểm random walks hiệu mặt tính tốn khơng gian lƣu trữ thời gian Độ phức tạp không gian để lƣu trữ lân cận trực tiếp nút đồ thị O(|E|) Với random walks, phải xử lý kết nối nút lân cận nút, độ phức tạp khơng gian với a bậc trung bình đồ thị thƣờng nhỏ nhiều so với số đỉnh mạng thực tế (nhƣ MXH) So với cách lấy mẫu dựa vào tìm kiếm cổ điển độ phức tạp thời gian random walks thấp Bằng cách mô lƣợt có độ dài l > k tạo k mẫu cho l – k nút lúc độ phức tạp O( ) Với việc áp dụng chiến lƣợc lấy mẫu nhƣ vậy, node2vec tạo “câu” (các đồ thị có hƣớng) chúng đƣợc sử dụng để nhúng (embedding) tƣơng tự nhƣ câu văn word2vec Thuật toán node2vec node2vec bao gồm ba pha gồm: tiền xử lý để tính tốn xác suất chuyển đổi nút; mô bƣớc ngẫu nhiên random walks tối ƣu hóa SGD, pha đƣợc thực Mỗi pha song song hóa đƣợc thực thi theo chế bất đồng để tăng khả mở rộng toàn node2vec node2vec đƣợc đánh giá cho kết tốt thuật toán học biểu diễn đặc trƣng khác nhƣ DeepWalk [4] (dùng mô bƣớc ngẫu nhiên đồng nhất, chiến lƣợc lấy mẫu DeepWalk đƣợc xem trƣờng hợp đặc biệt node2vec với p = q = 1), LINE [6] Spectral clustering [7] IV THỰC NGHIỆM Các pha thực việc thực nghiệm nhƣ sau Hình Các pha trình thực nghiệm A Thu thập lưu trữ liệu Chuẩn bị Twitter API key Để có đƣợc khóa mã truy cập đến API Twitter, cần thực bƣớc tạo tài khoản lập trình, đăng ký ứng dụng Twitter thực bƣớc theo hƣớng dẫn [1] Với ứng dụng đăng ký, có khóa cho Consumer API mã truy cập dùng để xác thực thực truy cập đến API Twitter Lƣu trữ liệu Dữ liệu thu thập đƣợc đƣợc lƣu sở liệu Mysql Tổ chức kho liệu đơn giản gồm có bảng nhƣ sau: nodes (dùng để lƣu thông tin hồ sơ ngƣời dùng), paths dùng để lƣu quan hệ theo dõi (follow) hai ngƣời dùng bảng tweets dùng để lƣu tweets ngƣời dùng 582 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… Một số vấn đề việc thu thập liệu a) Giới hạn truy cập Twitter Các API mà Twitter cung cấp có giới hạn (rate limit), tức cho phép ứng dụng thực việc gọi API với số lƣợng yêu cầu định khoảng thời gian Để khắc phục vấn đề này, module thu thập liệu cần có chế chờ (wait) chạy lại (resume) gặp tình Twitter trả mã lỗi tƣơng ứng Và tạo nhiều ứng dụng khác Twitter để có nhiều khóa mã truy cập API b) Cơ chế xử lý song song khắc phục lỗi Một số vấn đề đòi hỏi hệ thống thu thập liệu: Xử lý song song: liệu từ Twitter lớn, với việc giới hạn truy cập API mà Twitter cung cấp nhƣ đề cập trên, việc tải liệu nhiều thời gian Để giải vấn đề này, xây dựng chế để hệ thống thu thập liệu chạy lúc nhiều node thu thập máy nhiều máy khác nhau, node sử dụng khóa mã truy cập API riêng Tính ổn định: hệ thống thu thập lƣu trữ liệu thực kết nối đến API Twitter, hệ thống cần có chế kết nối lại, tự động thu thập tiếp liệu lấy dở mà bị dừng Ví dụ: với trƣờng hợp ngƣời dùng có hàng chục nghìn ngƣời theo dõi, giới hạn API Twitter nên lần gọi lấy đƣợc giới hạn số lƣợng, trƣờng hợp node (hoặc toàn hệ thống) bị gián đoạn bị shutdown, hệ thống có khả đánh dấu điểm liệu gián đoạn tiếp tục thu thập chạy lại mà tải liệu từ đầu Hệ thống thu thập liệu đƣợc chúng tơi xây dựng ngơn ngữ lập trình python sử dụng thƣ viện Tweepy8 để truy cập đến Twitter API B Xử lý, phân tích liệu Mạng quan hệ theo dõi ngƣời dùng (friend-follower network) Một mạng quan hệ theo dõi bao gồm nút ngƣời dùng Twitter, cạnh thể quan hệ theo dõi – theo dõi Dữ liệu quan hệ theo dõi ngƣời dùng đƣợc lƣu bảng paths Để xây dựng biểu diễn mạng quan hệ theo dõi - bạn bè ngƣời dùng, sử dụng công cụ Gephi Gephi công cụ chuyên dụng dành cho việc khám phá phân tích đồ thị/mạng Nó cho phép thực tƣơng tác nhƣ biểu diễn, thao tác cấu trúc, hình dạng,… liệu đồ thị cách trực quan Từ liệu gốc thu thập đƣợc lƣu bảng, chúng tơi thực trích xuất ngẫu nhiên liệu theo số lƣợng khác nhau, biến đổi chúng sang định dạng GML(Graph Modeling Language) Sau kết số biểu diễn mạng quan hệ theo dõi bạn bè từ số mẫu liệu thu thập đƣợc a Mạng lƣới với 12 nút ngƣời dùng Nodes: 44 Edges: 54 Density: 0.057082 Average Degree: 2.454545 Max Degree: 33 Min Degree: Number of connected components: b Mạng lƣới với Network50 với 44 nút ngƣời dùng Giới hạn API rate limits Twitter: https://developer.twitter.com/en/docs/basics/rate-limits Thƣ viện Tweepy: https://www.tweepy.org/ https://gephi.org/ Phan Đăng Khoa, Vũ Đức Thi 583 Nodes: 984 Edges: 1216 Density: 0.002514 Average Degree: 2.471545 Max Degree: 333 Min Degree: Number of connected components: Nodes: 500 Edges: 585 Density: 0.004689 Average Degree: 2.340000 Max Degree: 177 Min Degree: Number of connected components: c Mạng lƣới Network500 với 500 ngƣời dùng d Mạng lƣới Network1000 với gần 1000 nút ngƣời dùng Hình Các mạng quan hệ friend-follower với số lƣợng ngƣời dùng cạnh khác Mạng luồng chia sẻ thơng tin Twitter Dƣới ví dụ mạng luồng chia sẻ thông tin mà nhận đƣợc Tweet chủ đề Covid19 thuật toán đƣợc đề xuất mục III.A với root node tìm đƣợc nút màu đỏ có nhãn 83131551 Hình Mạng chia sẻ thơng tin (retweets) 584 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… Nhúng thông tin ngƣời dùng node2vec Để thực cài đặt thực nghiệm chúng tơi thực ngơn ngữ Python, có sử dụng số thƣ viện, package sau: thƣ viện node2vec10 dành cho Python3 tác giả phát triển cho [2], NetworkX11 – package cho Python chuyên dùng để tạo, thực thao tác nghiên cứu cấu trúc mạng phức tạp Dựa vào thông tin cấu trúc mạng, thực áp dụng phƣơng pháp nhúng thông tin nút node2vec để biến đổi nút ngƣời dùng sang vector đặc trƣng, sau áp dụng thuật toán K-means để phân cụm nút nhằm phát cộng đồng dựa vào thông tin cấu trúc mạng Các tham số: - Số chiều vector đặc trƣng: 64 - Độ dài random walks: 10 - Số lần (số random walks) cho nút: 500 a Với Mạng Network50 Dựa vào thông tin liên kết, nút ngƣời dùng đƣợc nhúng sang vector đặc trƣng 64 chiều, ví dụ vector nhúng cho nút dangkhoafan: -0.007929413 -0.461161 0.19793484 0.16255444 -0.16364151 -0.03584324 -0.1384652 0.4879906 0.18218239 -0.26448804 -0.46870127 -0.24356781 0.009873092 0.18432081 -0.18303967 0.22470416 0.31153297 -0.19108796 -0.34282628 -0.09289459 0.07034109 -0.026388608 0.057886794 0.10287591 0.036674377 -0.12679668 -0.17128074 -0.084960744 -0.10364959 -0.4656336 -0.117410965 0.20470865 0.09384039 0.18084323 -0.34560558 0.14970614 0.10237863 -0.37130904 -0.46185178 -0.14056797 -0.13567604 -0.33046755 0.67945313 0.15806635 0.22798888 0.1548171 0.24103257 -0.002843803 -0.35792887 -0.15951943 -0.04276035 0.061602194 -0.10228826 -0.025572207 0.008063821 0.38859743 0.54753906 0.31983772 0.010731436 0.022141691 -0.32429475 -0.061119996 -0.038715728 -0.0809034 Sau thực phép tính tốn liệu nhúng, ví dụ tìm nút “tƣơng đồng” nút (hàm most_similar), kết đƣợc thể Bảng Bảng Kết tìm kiếm nút tƣơng đồng sau nhúng thông tin Nút ngƣời dùng dangkhoafan Top ngƣời dùng tƣơng đồng ('MOFAVietNam', 0.8911288976669312), ('luca', 0.8904304504394531), ('goodfellow_ian', 0.8820015788078308), ('AndrewYNg', 0.8740906119346619), ('ylecun', 0.8725197315216064), ('blei_lab', 0.8325739502906799), ('BarackObama', 0.7831145524978638), ('realDonaldTrump', 0.773535966873169), ('HungHH5', 0.6738353371620178), ('HillaryClinton', 0.6714308261871338) Chúng ta thấy rằng, ba nút đƣợc xem tƣơng đồng nút kết nối với riêng nút dangkhoafan (có thể xem nhƣ hàng xóm riêng nó), ba nút (AndrewYNg, ylecun, blei_lab) không kết nối riêng với nút dangkhoafan mà chúng kết nối nội với Với việc biểu diễn đƣợc tất nút mạng thành vector đặc trƣng, thực phƣơng pháp, thuật tốn học máy phổ biến để giải toán cụ thể Ở đây, chúng tơi sử dụng thuật tốn phân cụm K-means để phân tách nút (ngƣời dùng) thành nhóm (cụm) Kết phân cụm với số cluster = nhƣ Hình dƣới Hình Kết áp dụng phân cụm K-means cho mạng Network50 (Hình 6.b) 10 11 https://github.com/aditya-grover/node2vec https://networkx.github.io/ Phan Đăng Khoa, Vũ Đức Thi 585 Kết thực nhúng node2vec phân cụm với mạng Network500 (Hình 9) Hình Kết áp dụng phân cụm K-means cho mạng Network500 (Hình 5.c) b Với Dataset thu thập đƣợc Thông tin dataset: Nodes: 18850 Edges: 24339 Density: 0.000138 Average Degree: 2.56 Max Degree: 3371 Min Degree: Number of connected components: Sau thực nhúng nút, thực truy vấn thơng tin nhƣ tìm kiếm nút tƣơng đồng Kết nhận đƣợc nhƣ sau: Bảng Kết tìm kiếm nút tƣơng đồng sau nhúng thông tin Nút ngƣời dùng dangkhoafan POTUS12 (President Trump, trang tổng thống Mỹ Donald Trump) Top ngƣời dùng tƣơng đồng ('luca', 0.9694571495056152), ('HungHH5', 0.8813575506210327), ('MOFAVietNam', 0.8793941736221313), ('ylecun', 0.8736461997032166), ('goodfellow_ian', 0.8082276582717896), ('tim_cook', 0.7843689918518066), ('AndrewYNg', 0.7792443633079529), ('improving_Jin', 0.7718034386634827), ('BarackObama', 0.7652807235717773), ('SpaceX', 0.7543506026268005) ('POTUS44', 0.8353493809700012), ('HillaryClinton', 0.8072160482406616), ('tim_cook' 13, 0.7945600748062134), ('8161232', 0.7905694842338562), ('DonaldJTrumpJr' 14, 15 0.7779954075813293), ('ddlovato' , 0.7757748961448669), ('WhiteHouse', 0.7680785059928894), ('ObamaWhiteHouse', 0.766059398651123), ('18916432' 16, 17 0.7652392387390137), ('Marco Rubio ', 0.7640922665596008) Có thể thấy, kết nút ngƣời dùng dangkhoafan tƣơng tự nhƣ mạng Network50 Bảng Với nút ngƣời dùng POTUS, trang Twitter Tổng thống Mỹ Donald Trump, nhƣ thấy, hầu hết nút ngƣời dùng tƣơng đồng ngƣời dùng liên quan tƣơng đồng với Donald Trump đời sống thực V KẾT LUẬN Bài báo trình bày số kết nghiên cứu thực nghiệm tốn thu thập, phân tích xử lý liệu từ MXH Twitter Để thực nghiệm, xây dựng công cụ thu thập liệu Twitter Kết cho thấy module thu thập liệu đáp ứng đƣợc yêu cầu việc thu thập liệu từ nguồn liệu lớn MXH nhƣ: 12 https://twitter.com/POTUS Tim Cook, CEO Apple 14 Trang cá nhân Donald Trump Jr trai tổng thống Donald Trump 15 Demetria Devonne "Demi" Lovato, Diễn viên, ca sĩ nhạc sĩ ngƣời Mỹ, https://twitter.com/ddlovato 16 SpeakerRyan, nhà trị, chủ tịch Hạ viện Mỹ, https://vi.wikipedia.org/wiki/Paul_Ryan 17 Marco Rubio, thƣợng nghị sĩ Mỹ, https://twitter.com/marcorubio 13 586 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… tính ổn định khả mở rộng xử lý theo chiều ngang Các thông tin thu thập đƣợc bao gồm: thông tin ngƣời dùng, mạng theo dõi ngƣời dùng, mạng chia sẻ tweets, tweets chủ đề Covid19 Cuối cùng, số công cụ kỹ thuật đƣợc áp dụng cho việc xử lý, phân tích biến đổi liệu thu thập đƣợc nhƣ: biểu diễn, phân tích mạng Gephi; kỹ thuật nhúng thơng tin mức nút dựa vào cấu trúc mạng node2vec Hƣớng phát triển chúng tôi: kết hợp kỹ thuật phân tích xử lý thơng tin mức mạng mức văn (các Tweets) để giải số tốn điển hình phân tích MXH nhƣ: dự đoán liên kết, phát cộng đồng, phát chủ đề phân tích luồng ảnh hƣởng VI LỜI CẢM ƠN Bài báo thuộc phạm vi đề tài nghiên cứu khoa học có mã số QCT.20.02 đƣợc thực Viện Công nghệ Thông tin – Đại học Quốc gia Hà nội TÀI LIỆU THAM KHẢO [1] https://developer.twitter.com/en/docs/basics/getting-started [2] A Grover, J Leskovec, “node2vec: Scalable Feature Learning for Networks”, ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), 2016 [3] T Mikolov, K Chen, G Corrado, and J Dean, “Efficient estimation of word representations in vector space” In ICLR, 2013 [4] B Perozzi, R Al-Rfou, and S Skiena, “DeepWalk: Online learning of social representations” In KDD, 2014 [5] Stephen G Kobourov, “Spring Embedders and Force Directed Graph Drawing Algorithms” arXiv:1201.3011, 2012 [6] J Tang, M Qu, M Wang, M Zhang, J Yan, and Q Mei “LINE: Large-scale Information Network Embedding” In WWW, 2015 [7] L Tang and H Liu, “Leveraging social media networks for classification” Data Mining and Knowledge Discovery, 23(3):447-478, 2011 [8] Androniki Sapountzi, Kostas E Psannis, “Social networking data analysis tools & challenges”, Future Generation Computer Systems, Elsevier, 2018 COLLECTING AND ANALYZING TWITTER DATA USING NODE EMBEDDINGS Phan Dang Khoa, Vu Duc Thi ABSTRACT: Twitter is a free and massive online social network Collecting, storing, processing, and analyzing social network data in overall and Twitter data is an interesting research area It has many applications in real life like e-commerce, marketing, online advertising, cultural, political… In this paper, we present some related techniques to Twitter data collecting, process, and analyzing methods The collected data from Twitter include user’s information, user’s network, followers and friends of users, user’s tweets We further implemented some experiments by using some technicques like node2vec node embedding, Kmeans clustering for the collected data ... Mỹ, https:/ /twitter. com/marcorubio 13 586 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… tính ổn định khả mở rộng xử lý theo chiều ngang Các thông tin thu thập... có nhãn 83131551 Hình Mạng chia sẻ thơng tin (retweets) 584 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… Nhúng thông tin ngƣời dùng node2vec Để thực cài đặt... tweets ngƣời dùng 582 THU THẬP, XỬ LÝ VÀ PHÂN TÍCH DỮ LIỆU MẠNG XÃ HỘI TWITTER BẰNG PHƢƠNG PHÁP NHÚNG… Một số vấn đề việc thu thập liệu a) Giới hạn truy cập Twitter Các API mà Twitter cung cấp có