Phương pháp thu thập dữ liệu

Một phần của tài liệu Nghiên cứu và ứng dụng các phương pháp xác định người có ảnh hưởng trên mạng xã hội thực tế (Facebook) (Trang 33)

Selenium webdriver là một công cụ kiểm thử phần mềm tự động, nhưng đối với các trang có dữ liệu lớn sẽ khó thu thập do selenium sử dụng trình duyệt để chạy dẫn đến việc sử dụng RAM (bộ nhớ truy cập ngẫu nhiên của máy tính) bị quá tải. Scrapy [18] là một framework phục vụ mục đích thu thập dữ liệu mà không cần sử dụng đến trình duyệt gây tốn bộ nhớ RAM. Nó có các thành phần để quản lý các yêu cầu, duy trì các phiên của người dùng, theo dõi chuyển hướng và xử lý các pineline đầu ra.

Hình 22: Data flow của scrapy [19]

Thành phần:

Scrapy Engine : Engine chịu trách nhiệm điều khiển luồng giữa các

Component trong hệ thống và kích hoạt khi một số hành động nhất định xảy ra.

Scheduler : Có nhiệm vụ nhận request từ engine và đưa nó vào một queue

để sắp xếp các URL theo một thứ tự Download.

Downloader : Có nhiệm vụ tải Source HTML của trang web và gửi nó về

cho Engine.

Spider : Là một class được viết bởi Developer, có nhiệm vụ phân tích

response và extract các item, khởi tạo lại URL mới và nạp lại cho Scheduler qua Engine.

Item Pipeline : Có nhiệm vụ xử lí các Item sau khi được extract bằng

spider, sau đó lưu vào cơ sở dữ liệu.

Downloader middlewares : Là móc nối giữa Engine và Downloader,

chúng xử lí các request được đẩy từ engine và các response tạo ra từ Downloader.

Spider middlewares : Là móc nối giữa Engine và Spider, chúng có nhiệm

vụ xử lí input (response) của Spider và đầu ra (items và request).

Quy trình thu thập của hệ thống :

1. Engine khởi tạo Request để bắt đầu crawl từ Spider.

2. Engine lên lịch trình cho Request từ Spider và yêu cầu cho Request tiếp theo để crawl .

3. Scheduler gửi request tiếp theo đến Engine.

4. Engine gửi Request đến Downloader, đi qua Downloader Middleware. 5. Sau khi tải source HTML hoàn tất, Downloader khởi tạo một Object

Response trả về qua Engine, quá trình này đi qua Downloader MiddleWare.

6. Engine nhận Response từ Downloader, và gửi về Spider để xử lí, quá trình này đi qua Spider Middleware.

7. Spider xử lí Response và trả về các Item đã được scrape, sau đó khởi tạo Request đến Engine, thông qua Spider Middleware.

8. Engine gửi các Item đã được xử lí đến Item pipelines, sau đó gửi các Request đã được xử lí đến Scheduler và yêu cầu Request tiếp theo để crawl.

9. Tiến trình lặp lại như bước 1, cho đến khi không còn Request nào từ Scheduler.

Để tránh vấn đề phát hiện “bot” của Facebook, qua quá trình thực nghiệm em rút ra một số phương pháp giải quyết như sau:

• Tăng độ tin cậy của tài khoản bằng các hành động như người sử dụng. • IP của mỗi tài khoản crawler sẽ là khác nhau (việc đổi IP này sẽ dùng

DCOM 3G).

• Thay đổi User Agent (UA - là một chuỗi nhận diện của trình duyệt web khi gửi yêu cầu đến máy chủ web).

• Thu thập theo thời gian vừa giúp phản ảnh đúng xu hướng vừa giúp thu thập dữ liệu đầy đủ nhất do số lượng bình luận trên một bài viết của một số người nổi tiếng lên đến 10.000 bản ghi.

Mô tả về dữ liệu thu thập

Hiện nay, số lượt thích (like) bài viết của trang cá nhân, fanpage không phản ánh đúng thực tế sự nổi tiếng của thực thể bởi vì hiện nay có các bên cung cấp like ảo (số lượt thích ảo – không phải là hành động nhấn thích của người dùng, đây là từ các tài khoản facebook ảo được lập ra nhanh chóng mà không có chất lượng, không có người sử dụng, vì mục đích chỉ để like chéo giữa các trang fanpage cho nhau). Like ảo thì các đối tượng like không phải là đối tượng mà các cá nhân, fanpage hướng đến.

Mặt khác, người dùng mạng facebook có quan hệ như quan hệ bạn bè, mặc dù quan hệ bạn bè là đường liên kết cốt lõi phản ánh sự liên quan cũng như khả năng tương tác giữa hai người dùng. Nhưng mỗi người dùng chỉ có tối đa 5000 bạn bè mà chỉ số này ít biến động dẫn đến độ chính xác xác định người ảnh hưởng không tốt.

Do đó, em lựa chọn giải pháp thu thập dữ liệu comment trên các bài viết của các trang cá nhân cũng như fanpage với domain là những người hoạt động trong lĩnh 35

vực ca nhạc, giải trí. Dữ liệu thu thập theo từng tài khoản trong danh sách những người hoạt động trong lĩnh vực ca nhạc, giải trí.

Hình 23: Các bình luận trên một bài viết

CHƯƠNG 4.ĐÁNH GIÁ THỬ NGHIỆM 4.1 Thực nghiệm và đánh giá với bộ dữ liệu ego-facebook

Dữ liệu sử dụng

Bộ dữ liệu ego-Facebook bao gồm 4.039 nút được đánh số từ 0 đếm 4038 và 88.234 cạnh đại diện cho 4039 người dùng và 88234 liên kết bạn bè giữa các người dùng này. Dữ liệu được thu thập từ những người tham gia khảo sát, sau đó

J. McAuley and J. Leskovec thay thế số định danh nội bộ (UID) của Facebook 36

cung cấp cho từng người dùng bằng một giá trị mới, điều này đảm bảo tính riêng tư của người dùng. Bộ dữ liệu được khai phá liên quan quan hệ bạn bè giữa những người dùng. Các mối quan hệ này được trực quan hóa và biểu diễn dưới dạng đồ thị với các nút là các người dùng và các cạnh là các quan hệ bạn bè.

Thực nghiệm sử dụng các thuật toán

4.1.2.1. Degree Centrality

• Thời gian tính toán : 0.006 giây • 15 người có độ đo cao nhất :

[107,1684,1912,3437,0,2543,2347,1888,1800,1663,1352,2266,483,348,1730]

Hình 24: Đồ thị theo độ đo trung tâm dựa trên trung tâm bậc

• •

4.1.2.2. Betweennees Centrality

Thời gian tính toán : 195 giây 15 người có độ đo cao nhất :

[107,1684,3437,1912,1085,0,698,567,58,428,563,860,414, 1577,348]

• •

Hình 25: Đồ thị theo độ đo trung tâm dựa trên trung gian

4.1.2.3. Closeness Centrality

Thời gian tính toán : 403 giây 15 người có độ đo cao nhất :

[107,58,428,563,1684,171,348,483,414,376,475,566,1666,1534,484]

• •

Hình 26: Đồ thị theo độ đo trung tâm dựa theo sự lân cận

4.1.2.4. Eigenvector Centrality

Thời gian tính toán : 12 giây 15 người có độ đo cao nhất :

• • [1912,2266,2206,2233,2464,2142,2218,2078,2123,1993,2410,2244,2507,2240, 2 340] 41

• •

Hình 27: Đồ thị theo độ đo trung tâm dựa trên trị vector đặc trưng

4.1.2.5. PageRank

Thời gian tính toán : 1.006 giây 15 người có độ đo cao nhất :

[3437,107,1684,0,1912,348,686,3980,414,698,483,3830,376,2047,56]

• •

Hình 28: Đồ thị theo độ đo trung tâm dựa theo PageRank

4.1.2.6. HITS

Thời gian tính toán : 36.41 giây

15 người có độ đo cao nhất (theo authority) :

• • [1912,2266,2206,2233,2464,2142,2218,2078,2123,1993,2410,2244, 2507,2240,2340] 44

• •

Hình 29: Đồ thị theo độ đo trung tâm dựa theo HITS

Đánh giá kết quả và so sánh

Độ ảnh hưởng của từng nút được tính toán và trực quan hóa dưới dạng biểu đồ cột tren hình 33 và hình 34, trong đó biểu diễn các nút và giá trị độ ảnh hưởng tương ứng. Thực nghiệm trên bộ dữ liệu ego-Facebook :

Hình 30: Đồ thị đường biểu diễn kết quả tính toán độ ảnh hưởng của 4039 người dùng được đánh số từ 0 đến 4038 trên mạng xã hội Facebook bằng PageRank

Phân tích kết quả độ ảnh hưởng của 4039 người dùng từ bộ dữ liệu nói trên cho ra bởi thuật toán PageRank, độ ảnh hưởng cao nhất là người dùng được đánh số 3437 (����3437 = 0.007614), kết quả này cao gấp 186 lần độ ảnh hưởng của người dùng được đánh số 2079, 2195, 2269, 2457, 2470 (đều có ���� =

0.000041). Và tổng của tất cả độ ảnh hưởng bằng 1 ( �����= 1).

Tính trung tâm của Eigenvector đo lường tầm quan trọng của một nút khi cân nhắc tầm quan trọng của các nút lân cận nó. Ví dụ: một nút có 300 người bạn tương đối không nổi tiếng trên Facebook sẽ có mức độ trung tâm thấp hơn so với một người có 300 người bạn rất phổ biến (như Sơn Tùng, Jack). Theo mạng

egofacebook là mạng bạn bè, một nút có ít bạn nhưng bạn của nút toàn nút có

nhiều bạn bè thì giá trị eigenvalue của nút đó vẫn cao. Nên khác với các độ đo còn lại là độ trung tâm tỷ lệ số lượng bạn bè. Đối với HITS, giá trị quan tâm chính là giá trị thẩm quyền ���ℎ����� nhưng nó phụ thuộc vào giá trị trung tâm của các nút liên kết với nó, nên cũng khác với các độ đo còn lại là độ trung tâm tỷ lệ với số lượng kết nối bạn bè.

Để có dữ liệu so sánh, độ trung tâm dựa trên bậc, độ trung tâm dựa trên trung gian, độ trung tâm dựa trên sự lân cận được tính trên bộ dữ liệu ego-facebook. Kết quả độ đo ứng với 3 phương pháp được biểu đồ hóa như sau:

Hình 31: Đồ thị đường biểu diễn kết quả tính toán độ ảnh hưởng của 4039 người dùng được đánh số từ 0 đến 4038 trên mạng xã hội Facebook bằng Closeness Centrality

Hình 32: Đồ thị đường biểu diễn kết quả tính toán độ ảnh hưởng của 4039 người dùng được đánh số từ 0 đến 4038 trên mạng xã hội Facebook bằng Degree Centrality

Hình 33: Đồ thị đường biểu diễn kết quả tính toán độ ảnh hưởng của 4039 người dùng được đánh số từ 0 đến 4038 trên mạng xã hội Facebook bằng Betweenness Centrality

Qua quan sát, biểu đồ đường biểu diễn giá trị độ đo các nút phản ánh sự tương quan nhất định trong kết quả đầu ra giữa các thuật toán. Từ kết quả thu được, 10 người dùng có các độ đo cao nhất trong thuật toán được trích rút như sau:

# PageRank Degree Centrality Betweenness Centrality Closeness Centrality 1 3437 107 107 107 2 107 1684 1684 58 3 1648 1912 3437 428 4 0 3437 1912 563 5 1912 0 1085 1684 6 348 2543 0 171 7 686 2347 698 348 8 3980 1888 567 483 9 414 1800 58 414 10 698 1663 428 376

Bảng 1: Thứ hạng 10 người dùng có độ đo cao nhất theo các thuật toán trung tâm

Bảng dữ liệu cho thấy mặc dù sử dụng các thuật toán khác nhau để tính độ ảnh hưởng nhưng những người dùng trong danh sách {0, 107, 1684, 1912, 3437} vẫn trong danh sách 10 người dùng có độ ảnh hưởng lớn nhất.

Để có cái nhìn bao quát trên toàn bộ dải kết quả, phép tính độ tương quan � )

(������� ����������� [20] giữa kết quả đầu ra của thuật toán Quantum

PageRank và 4 phương pháp còn lại được thực hiện.

Độ tương quan được tính như sau:

∑ − ∑ ∑

� �� � �

� (�ớ� � � � �ặ� � ��ệ�à ố ữ )

Trong đó: X và Y là hai bộ dữ liệu cần so sánh khi đó độ tương quan được tính. Kết quả tính độ tương quan được biểu diễn trong bảng dưới đây:

# Phương pháp Độ tương quan với thuật toán PageRank

1 Degree Centrality 0.671382

2 Betweenness Centrality 0.768196

3 Closeness Centrality 0.147079

Bảng 2: Độ tương quan giữa thuật toán PageRank và các thuật toán degree, betweenness và closeness

Như vậy, sự tương quan giữa thuật toán PageRank và thuật toán độ trung tâm trung gian cũng như độ trung tâm dựa trên bậc của nút khá cao, khoảng trên 67% sự tương đồng. Mỗi phương pháp tính có những đặc trưng riêng nhưng rõ rang chúng ta thấy sự tác động tổng thể các nút trong mạng trong thuật toán PageRank cho kết quả tốt khi so sánh với các phương pháp phổ biến đơn giản khác. Để xác nhận tính đúng đắn của PageRank, ta sẽ kiểm tra trên bộ dữ liệu thu thập được.

4.2 Thực nghiệm và đánh giá với bộ dữ liệu thực

Hình 34: Các bước thực hiện xử lý dữ liệu thu thập được

Bộ dữ liệu em thu thập được như mô tả tại phần 3.1 và 3.2, dữ liệu bao gồm

141923 nút (người dùng) được thu thập từ 1714 bài viết được trong khoảng thời

gian từ ngày 11/04/2021 đến 15/05/2021.

Thu thập và trích rút dữ liệu Dữ liệu thu thập bao gồm:

• Source : Tên tài khoản bình luận

• Reply_to : Tên, đường dẫn đến tài khoản trả lời bình luận của tài khoản bình luận trên bài viết gốc (nếu có)

• Date : Ngày bình luận • Text : Nội dung bình luận

• Source_url : Đường dẫn đến trang cá nhân của tài khoản bình luận trên bài viết gốc

• Url : ID của bài viết gốc.

• Page_id : đường dẫn đến trang cá nhân của người sở hữu bài viết gốc.

Hình 35: Nội dung dữ liệu thô thu thập được

Mô tả dữ liệu thu thập:

Thời gian thu thập 11/04/2021-15/05/2021

Số lượng page/person thu thập

141923

Số lượng bài viết 1715

Số lượng bình luận 37282

6

Số lượng page_id 187

Bảng 3: Mô tả dữ liệu thu thập từ Facebook

Do quá trình thu thập dữ liệu có xảy ra vấn đề trùng lặp nên các tập dữ liệu thu thập được cần phải qua giai đoạn xử lý và làm sạch để phù hợp với việc tổ chức cấu trúc dữ liệu cho bài toán.

Hình 36: Dữ liệu một bản ghi trên bài viết gốc

Hình 37: Dữ liệu một bản ghi trả lời một bình luận trên bài viết gốc

Mô hình hóa sang đồ thị đồng nhất

Dữ liệu mạng xã hội được sử dụng trong đồ án này là Facebook bao gồm các thực thể (Người, Trang, Bài Viết, Bình Luận). Đồ án tập trung vào việc phân tích các bình luận trên các bài viết bằng cách cung cấp dữ liệu trên mạng xã hội về các nút trạng thái như trong biểu đồ đồng nhất.

Ý tưởng ở đây là về mặt định tính thường là các bài viết của những cá nhân (người) hoặc các trang - Page đại diện cho một người sẽ cùng một chủ đề (giải trí, âm nhạc…) trong một khoảng thời gian nhất định.

Input: Person (P), Page (Pg), Comment(C), Status(S) Output: G(N, E)

N =

For Pi in set (P, Pg) do: Add Pi in N

Where Pi write a status Sj: If Pk comment status Sj:

Add Pk in N

Create a connection Cik from Pk to Pi Else

Pm reply to a comment Cjk of Pk in Status j:

Create a connection Cmk and Cmi End for Return G, N

Dữ liệu sau khi xử lý thành đồ thị:

Thời gian thu thập 11/04/2021-15/05/2021

Số nút người sau khi xử lý 141923

Số lượng liên kết 148839

Bảng 4: Dữ liệu sau khi mô hình hóa sang đồ thị đồng nhất

Hình 38: Đồ thị đồng nhất sau khi xử lý

Thực nghiệm sử dụng các thuật toán

Các bước thực nghiệm:

Bước 1: Thu thập dữ liệu theo tuần

Bước 2: Xử lý đưa dữ liệu về đồ thị đồng nhất

Bước 3: Thực nghiệm và so sánh các phương pháp xếp hạng nút ảnh hưởng trong đồ thị

Dữ liệu sau đây được tính toán theo 1 tuần từ 11/04/2021-17/04/2021.

4.2.3.1. Degree Centrality

• Thời gian tính toán : 0.08 giây • 10 người có độ đo cao nhất :

[4600,1,20358,38917,90255,58807 ,112485,66689,106272,19347]

Hình 39: Đồ thị theo độ đo trung tâm dựa theo bậc với dữ liệu thực Xếp hạng Tên 4600 Jack 97 1 Sơn Tùng MTP 20358 Trấn Thành 38917 Ngọc Trinh 90255 Mỹ Tâm 58807 Quang Hải 28350 BinZ

Bảng 5: Xếp 7 người có hạng cao nhất theo dữ liệu thực từ ngày 11/04/2021 đến 17/01/2021

Thời gian từ ngày 11/4/2021 - 17/4/2021, độ ảnh hưởng của Jack 97 là nhiều nhất là do Jack 97 bắt đầu thông báo ra bài hát mới “laylalay”. Do đó thu hút được lượng tương tác nhiều. Tương tự, đối với Sơn Tùng MTP, anh cũng chuẩn bị phát hành bài hát mới là “Muộn rồi mà sao còn”.

4.2.3.2. Betweenness Centrality

Thời gian tính toán : 20537.272 giây

• 10 người có độ đo cao nhất :

[1,4600,38917,20358,58807,90255,28350,19347,106272,66689]

Hình 40: Đồ thị theo độ đo trung tâm dựa theo trung gian với dữ liệu thực

4.2.3.3. Closeness Centrality

• Thời gian tính toán : 152.003 giây • 10 người có độ đo cao nhất :

[1,4600,8566,15491,7451,5045,16926,16782,13274,16457]

Hình 41: Đồ thị theo độ đo trung tâm dựa theo sự lân cận với dữ liệu thực

4.2.3.4. PageRank

• Thời gian tính toán : 2.7706 giây • 10 người có độ đo cao nhất :

[4600,1,20358,38917,90255,58807,112485,28350,28350,66689]

Hình 42: Đồ thị theo độ đo trung tâm dựa theo PageRank với dữ liệu thực

Phân tích kết quả độ ảnh hưởng của 45374 người dùng từ bộ dữ liệu nói trên cho ra bởi thuật toán PageRank, độ ảnh hưởng cao nhất là người dùng được đánh số 1 (����1 = 0.1393), kết quả này cao gấp nhiều lần so với các người dùng có thứ hạng đại trà. Và tổng của tất cả độ ảnh hưởng bằng 1 ( �����= 1).

4.2.3.5. Quantum PageRank

• Thời gian tính toán : 20003.56 giây • 10 người có độ đo cao nhất :

Một phần của tài liệu Nghiên cứu và ứng dụng các phương pháp xác định người có ảnh hưởng trên mạng xã hội thực tế (Facebook) (Trang 33)

Tải bản đầy đủ (DOCX)

(59 trang)
w