1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme

72 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Cấu trúc

  • 1.1. Giới thiệu (10)
  • 1.2. Kết cấu của luận văn (11)
  • Chương 2. CƠ SỞ LÍ THUYẾT (12)
    • 2.1. Lí thuyết xác xuất (12)
      • 2.1.1 Hàm xác xuất (12)
      • 2.1.2 Hàm phân bố xác xuất (12)
      • 2.1.3 Hàm phân bố xác xuất tích lũy (13)
      • 2.1.4 Hàm bù phân bố xác xuất tích lũy (13)
      • 2.1.5 Phân tích phân bố Power-law theo phương pháp MLE (14)
    • 2.2. Phân tích cấu trúc đồ thị mạng xã hội (15)
      • 2.2.1 Các định nghĩa cơ bản (15)
      • 2.2.2 Phân bố bậc (16)
      • 2.2.3 Phân bố bậc kết hợp (17)
      • 2.2.4 Bậc liên kết trung bình (17)
      • 2.2.5 Hệ số kết hợp (18)
      • 2.2.6 Hệ số cụm (19)
      • 2.2.7 Bán kính, đường kính và đường đi trung bình (21)
      • 2.2.8 Độ quan trọng cạnh (22)
  • Chương 3. PHÂN TÍCH VÀ SO SÁNH CẤU TRÚC MẠNG XÃ HỘI ZINGME VỚI CÁC MẠNG XÃ HỘI KHÁC (23)
    • 3.1. Giới thiệu về ZingMe và các mạng xã hội khác (23)
    • 3.2. Tập dữ liệu người dùng của các mạng xã hội (25)
    • 3.3. Đồ thị xã hội và đồ thị tương tác ZingMe (26)
    • 3.4. Phân tích bậc (27)
    • 3.5. Bậc kết hợp (33)
    • 3.6. Bậc liên kết trung bình (35)
    • 3.7. Hệ số kết hợp r (36)
    • 4.1. Tập dữ liệu phân tích hành vi người dùng (41)
    • 4.2. Sự tương quan giữa bậc người dùng với mức năng động (42)
    • 4.3. Phân bố tương tác theo mức năng động nhóm người dùng (44)
    • 4.4. Phân bố tỉ lệ người dùng theo tương tác nhóm bạn bè (46)
    • 4.5. Phân bố số lượng tương tác theo các nhóm bạn tương tác (48)
    • 4.6. Phân bố tương tác theo nhóm bậc xã hội (49)
    • 4.7. Phân bố số lượng tương tác trên cặp người dùng (51)
    • 4.8. Bậc xã hội và hành vi người dùng (51)
    • 4.9. Sự khác biệt hành vi người dùng trong từng nhóm bậc xã hội (53)
    • 4.10. Tương quan bậc xã hội người dùng với thời điểm online (54)
    • 4.11. Phân bố số lƣợng hành vi theo các thời điểm trong ngày (55)
  • Chương 5. HIỆN THỰC CHƯƠNG TRÌNH (57)
    • 5.1. Cơ sở dữ liệu (57)
    • 5.2. Thƣ viện SNAP và các hàm phân tích cấu trúc đồ thị (62)
    • 5.3. Chương trình Social Networks Visualizer (63)
    • 5.4. Bảng thống kê thời gian thực thi các chương trình phân tích (66)
  • Chương 6. KẾT LUẬN (67)
  • TÀI LIỆU THAM KHẢO (68)
  • Phụ lục (71)

Nội dung

Đã có nhiều công trình nghiên cứu phân tích các đặc điểm này trên các mạng xã hội như Facebook, Orkut, Renren, LiveJournal,… và nhận thấy các mạng xã hội đều có tính chất Small-world, ph

Giới thiệu

Hàng triệu người dùng trên toàn thế giới truy cập vào các mạng xã hội như Facebook, ZingMe, MySpace, LinkedIn và Youtube để cập nhật tin tức, chia sẻ nội dung đa phương tiện và giao lưu với bạn bè Các trang web này cho phép người dùng kết nối với nhau, chia sẻ sở thích và thảo luận về các vấn đề thời sự.

Các website truyền thống đƣợc tổ chức xoay quanh khái niệm nội dung

Người sở hữu website sẽ là người quyết định nội dung và chịu trách nhiệm cho những thông tin được đăng tải Người dùng truy cập website với mục đích tìm hiểu những nội dung mà họ quan tâm, đồng thời có thể nhận xét về nội dung thông qua các công cụ do website cung cấp, mặc dù các công cụ hồi đáp này thường khá hạn chế Ngoài ra, việc người dùng muốn trao đổi trực tiếp với những người dùng khác cũng gặp nhiều khó khăn.

Ngược lại, các mạng xã hội được tổ chức xoay quanh khái niệm người dùng

Người dùng tham gia vào mạng xã hội có thể công bố các nội dung đang sở hữu và tự quản lý, chịu trách nhiệm về nội dung công bố, đồng thời có khả năng tạo các liên kết “bạn bè” với những người dùng khác Cấu trúc liên kết “ người với người ” là nền tảng cơ bản của một mạng xã hội Nhƣ vậy mạng xã hội có thể xem là hình ảnh phản chiếu của thế giới thực biểu diễn các mối quan hệ, hoạt động con người trong xã hội thực

Hiện nay mạng xã hội Facebook có trên 500 triệu người dùng, ZingMe trên 12 triệu người dùng, MySpace trên 266 triệu người dùng, LinkedIn có trên 80 triệu người dùng Sự phát triển nhanh chóng và rộng rãi trên khắp thế giới của mạng xã hội đã tạo điều kiện thuận lợi trong việc nghiên cứu và khám phá hành vi con người Những kết quả nghiên cứu đó có thể quay lại áp dụng cho nhiều lĩnh vực nhân chủng học, thống kê hoặc kinh tế Phân tích cấu trúc mạng xã hội, hành vi người dùng là để giúp cải tiến các mạng xã hội hiện tại và phát triển các ứng dụng

Mai Phúc Tiến Trang 2 dựa trên nền tảng mảng xã hội một cách có hiệu quả Các hệ thống điển hình hiện nay đang hoạt động trên mạng xã hội nhƣ tìm kiếm, đề nghị gia nhập nhóm, đề nghị kết bạn, tùy chỉnh giao diện theo thói quen người dùng, tối ưu hiệu quả quảng cáo trực tuyến.

Kết cấu của luận văn

Trình bày về khái niệm mạng xã hội, sự phát triển các mạng xã hội trên thế giới đến thời điểm hiện tại

Chương 2 Cơ sở lí thuyết

Chương này trình bày về lí thuyết xác xuất, phân tích Power-law theo phương pháp MLE và các tính chất cấu trúc đồ thị của mạng xã hội

Chương 3 Phân tích và so sánh cấu trúc đồ thị mạng xã hội ZingMe với các mạng xã hội khác

Mạng xã hội ZingMe được xây dựng dựa trên nền tảng đồ thị xã hội và đồ thị tương tác Trong khi đồ thị xã hội giúp kết nối người dùng dựa trên các mối quan hệ có sẵn, thì đồ thị tương tác lại tập trung vào các hành vi và sở thích chung của họ So với các MXH khác như Facebook, Orkut, Renren, Cyworld, ZingMe sở hữu đặc điểm nổi bật là tích hợp nhiều tính năng đa dạng, từ mạng xã hội, trò chơi đến thương mại điện tử, tạo nên một hệ sinh thái năng động và hấp dẫn cho người dùng Việt Nam.

Chương 4 Phân tích hành vi người dùng

Phân tích các mẫu hành vi người dùng trên mạng xã hội ZingMe

Chương 5 Hiện thực chương trình

Chương này trình bày các thư viện và công cụ được sử dụng để phân tích MXH ZingMe cũng như thời gian thực thi các đoạn chương trình phân tích

Tổng kết các kết quả đạt được và đề xuất các hướng phát triển ứng dụng dựa trên các kết quả phân tích được từ hành vi người dùng và cấu trúc MXH ZingMe

CƠ SỞ LÍ THUYẾT

Lí thuyết xác xuất

Hàm xác suất (Probability function) P X (x) của biến ngẫu nhiên rời rạc X dùng mô tả xác suất để cho biến ngẫu nhiên X đạt giá trị x P X (x) là hàm của x:

Thí dụ: Thí nghiệm thảy 1 con xúc sắc, ta có P(X=1) = P(X=2) = … = P(X=6) = 1/6

→ Hàm xác suất là : P X (x) = P(X=x) = 1/6 với x =1, 2, 3, 4, 5, 6

2.1.2 Hàm phân bố xác xuất

Hàm phân bố xác xuất (Probability distribution function) của biến ngẫu nhiên X thể hiện sự tương quan giữa các giá trị x i của X và các xác suất của x i , sự tương quan có thể trình bày bằng bảng đồ thị hoặc bằng biểu thức

Thí dụ: Trong thí nghiệm thảy 1 con xúc sắc, phân bố xác suất là:

Trình bày bằng đồ thị :

2.1.3 Hàm phân bố xác xuất tích lũy

Hàm phân bố xác suất tích lũy ( cummulative distribution function, CDF )

F X ( ) của biến ngẫu nhiên rời rạc x thể hiện xác suất để X không vƣợt quá giới hạn

( ) ( ) Hàm phân bố xác xuất tích lũy có các tính chất sau:

Thí dụ: Trong thí nghiệm thảy 1 con xúc sắc, phân bố xác suất tích lũy là:

2.1.4 Hàm bù phân bố xác xuất tích lũy

Hàm bù phân bố xác suất tích lũy (Complementary cummulative distribution function CCDF) P X ( ) của biến ngẫu nhiên rời rạc x thể hiện xác suất để X luôn lớn hơn cận dưới P X ( ) là hàm của :

( ) ( ) Thí dụ: Trong thí nghiệm thảy 1 con xúc sắc, hàm bù phân bố xác suất tích lũy là:

2.1.5 Phân tích phân bố Power-law theo phương pháp MLE

Hàm phân bố power-law đƣợc của đại lƣợng X đang quan tâm có hàm mật độ xác xuất p(x) thỏa mãn:

X là tập giá trị quan sát đƣợc, C là một hằng số và α >1 Rõ ràng biểu thức

(2.1) phân rã khi x0 hay không thể đúng với mọi giá trị x ≥ 0 do đó tồn tại cận dưới gọi là x min để hàm p(x) có tính chất Power-law Khi đó hằng số C được xác định nhƣ sau:

) ( ) Với tập dữ liệu X quan sát đƣợc, cần xác định hệ số mũ α mà có phân bố Power-law gần nhất với tập dữ liệu Xác xuất để dữ liệu có phân bố theo mô hình Power-law đƣợc tính bởi hàm tỉ lệ sau:

( ) Đây là hàm khả năng likelihood của tập dữ liệu Dữ liệu có khả năng đƣợc tạo ra từ mô hình với hệ số mũ α mà hàm đạt giá trị lớn nhất Lấy logarithm L của hàm likelihood là cách thường dùng để tính giá trị lớn nhất của hàm khả năng:

Trước khi tính toán, cần xác định giá trị x min theo phương pháp Kolmogorov-Smirnov Đối với mỗi giá trị x tạm gọi là x' min, ta xác định đường CCDF S(x) của tập dữ liệu quan sát được ứng với x ≥ x' min, và đường CCDF P(x) của mô hình Power-law phù hợp nhất với dữ liệu trong cùng miền xác định Khoảng cách giữa 2 đường CCDF này được tính là khoảng cách lớn nhất giữa chúng.

| ( ) ( )| ( ) Giá trị x min đƣợc xác định khi D đạt giá trị cực tiểu Đồng thời khi xác định dữ liệu thực nghiệm có theo phân bố Power-law thì giá trị D càng nhỏ chứng tỏ dữ liệu quan sát đƣợc các phù hợp với phân bố mô hình.

Phân tích cấu trúc đồ thị mạng xã hội

2.2.1 Các định nghĩa cơ bản

Một mạng xã hội G = (V, E) biểu diễn bằng đồ thị, trong đó mỗi đỉnh V là một người dùng và cạnh E là mối quan hệ giữa các người dùng Cạnh có thể có hướng (có nguồn và đích) hoặc vô hướng (không phân biệt nguồn và đích) Social Graph sử dụng cạnh để thể hiện mối quan hệ bạn bè, trong khi Interaction Graph dùng cạnh để biểu diễn cả quan hệ bạn bè lẫn tương tác giữa người dùng.

Hành vi tương tác ở đây được hiểu là người dùng thực hiện ghi lên tường (Wall) của người bạn Nếu người dùng A ghi lên tường của người bạn B, thì ghi nhận đó là tương tác và hình thành cạnh vô hướng nối giữa A và B

Bậc của một đỉnh (bậc người dùng) trong đồ thị là tổng số cạnh có liên kết với đỉnh đó, trong đồ thị xã hội là tổng số bạn bè của người dùng (social degree) hay trong đồ thị tương tác là tổng số bạn bè mà người dùng tương tác (interaction degree), ký hiệu d i Đối với đồ thị có hướng, bậc của đỉnh i được phân biệt thành:

+ Indegree: tổng số cạnh kết thúc tại đỉnh i, ký hiệu d in + Outdegree: tổng số cạnh bắt đầu từ đỉnh i, ký hiệu d out

Phân bố bậc của một đồ thị là hàm số P(k) mô tả tỉ lệ số lƣợng đỉnh trong đồ thị có bậc k Phân bố bậc mô tả sự phân bổ các cạnh giữa các đỉnh trong đồ thị

P(k) còn có thể hiểu là xác xuất để tìm thấy đỉnh có bậc k trong đồ thị

Phân bố bậc của đồ thị ngẫu nhiên đƣợc hình thành nhƣ sau: với xác xuất p thì đặt ngẫu nhiên một cạnh vào n đỉnh cho trước thì tuân theo phân bố nhị thức

Hầu hết các mạng xã hội trong thế giới thực có phân bố bậc khác hoàn toàn khác so với đồ thị đƣợc tạo ngẫu nhiên nhƣ trên, thay vào đó sẽ có một số lƣợng ít các đỉnh nhƣng chiếm giữ phần lớn các liên kết trong mạng Chẳng hạn mạng đƣợc hình thành theo sở thích đính kèm ( preferential attachment [36] ) hay còn gọi là giàu càng giàu hơn ( rich get richer ) Đó là khả năng có một cạnh mới liên kết tới đỉnh thì tỉ lệ với bậc hiện có của đỉnh Nghĩa là với đỉnh có bậc càng cao thì xác

Mai Phúc Tiến Trang 8 xuất để hình thành liên kết mới lớn hơn so với với đỉnh có bậc thấp hơn trong đồ thị Đồ thị đƣợc hình thành nhƣ thế có hàm phân bố bậc power-law:

Hầu hết các mạng xã hội quan sát đƣợc đều có bậc tuân theo luật phân bố power-law

2.2.3 Phân bố bậc kết hợp

Phân bố bậc kết hợp (joint degree distribution, JDD ) là hàm J(k,m) biểu diễn tỉ lệ số lƣợng cạnh trong đồ thị kết nối giữa đỉnh có bậc k với đỉnh bậc m

Trong đồ thị có hướng, J(k,m) là tỉ lệ số lượng cạnh trong đồ thị kết nối đỉnh có outdegree k với đỉnh có indegree m

Nhƣ vậy, JDD biểu diễn mức độ kết nối giữa các đỉnh có bậc khác nhau trong đồ thị Tham khảo tài liệu [35] để biết thêm các ứng dụng của hàm JDD

Hàm phân bố bậc kết hợp cung cấp nhiều thông tin về cấu trúc mạng và giúp ích trong việc phát triển các ứng dụng Chẳng hạn, đối với mạng xã hội mà các đỉnh bậc cao có xu hướng kết nối với nhau thì khi một đỉnh bậc cao bị nhiễm virus thì virus sẽ nhanh chóng lan ra toàn mạng Nhƣng ngƣợc lại, đối với mạng xã hội mà đỉnh bậc cao có xu hướng kết nối với đỉnh bậc thấp thì quá trình lây lan sẽ diễn ra chậm hơn nhiều

2.2.4 Bậc liên kết trung bình

Bậc liên kết trung bình (average nearest neighbors degree) là hàm biểu diễn đỉnh bậc k trong đồ thị thường liên kết với đỉnh có bậc trung bình bao nhiêu, ký hiệu k nn Rõ ràng k nn lớn thì đỉnh bậc cao có xu hướng kết nối với đỉnh bậc cao hơn, ngược lại k nn nhỏ thì đỉnh bậc cao có xu hướng kết nối với đỉnh bậc thấp hơn nó

Xét đỉnh có bậc k và tập các đỉnh kề với k là N(k) = { 1, 2, , m } Bậc trung bình kết nối với đỉnh k là:

( ) d 1 , d 2 , , d m lần lƣợt là bậc của đỉnh 1, 2, , m Đồ thị có n đỉnh bậc k thì bậc liên kết trung bình của đỉnh bậc k là:

Hệ số kết hợp (assortativity coefficient) r, được dùng để đo xu hướng kết hợp bậc của các đỉnh có bậc tương tự nhau trong đồ thị Giá trị r nằm trong khoảng

-1 , nếu r = 1 thì đồ thị gọi là kết hợp hoàn hảo vì có bậc của tất cả các đỉnh bằng nhau và nếu r = -1 thì đồ thị hoàn toàn không có tính kết hợp vì hai đỉnh bất kỳ có cạnh nối với nhau có bậc hoàn toàn khác xa nhau

Hệ số r này tính từ hệ số tương quan Pearson giữa bậc của tất cả các cặp đỉnh đƣợc nối với nhau trong đồ thị theo công thức:

M là tổng số cạnh của đồ thị j i , k i là bậc của hai đỉnh đƣợc nối với nhau qua cạnh i r=1, perfect assortativity r=-1, perfect disassortativity

Hệ số r dương và càng lớn thì trên mạng xã hội những người dùng có bậc tương tự nhau có xu hướng kết nối với nhau, ngược lại giá trị âm thì kết hợp với người dùng có bậc khác xa nhau

+0.01 đến +0.1 Mối tương quan quá thấp, không đáng kể +0.2 đến +0.3 Mối tương quan thấp

+0.4 đến +0.5 Mối tương quan trung bình +0.6 đến +0.7 Mối tương quan cao

+0.8 trở lên Mối tương quan rất cao

Bảng 2.2.1 Ý nghĩa hệ số r 2.2.6 Hệ số cụm

Hệ số cụm C(i) biểu thị mức độ kết nối giữa các đỉnh lân cận trong đồ thị, đo lường khả năng bạn bè của một người dùng có liên kết với nhau Ở mạng xã hội, 1- C(i) cho biết khả năng mở rộng liên kết bạn bè trong nhóm Để tính toán hệ số này, cần xác định khái niệm bộ ba (tripple) và tam giác (triangle) trước.

Triangle là một tập hợp gồm 3 đỉnh sao cho hai đỉnh bất kỳ có cạnh nối với nhau

Tripple là tập gồm 3 đỉnh (v i , {v j ,v k }) tồn tại cạnh (v i ,v j ) , (v i ,v k ) E

Triangle là tripple nhƣng tripple không phải là một triangle

Hệ số cụm của đỉnh i đƣợc tính theo công thức sau:

Nhƣ hình trên số tripple có trung tâm tại đỉnh 3 là 6 và có 1 tam giác là (1, 2, 3) Do đó hệ số cụm của đỉnh 3 là 1/6

Hệ số cụm C(i) cũng có thể tính theo công thức sau:

( ) ( ) n: tổng số cạnh nối giữa các đỉnh kề với đỉnh i

Hệ số C(i) tính theo công thức (2.2.6.1) và (2.2.6.2) cho cùng giá trị nhƣ nhau nhƣng chỉ khác nhau ở cách diễn đạt Đỉnh i có bậc bằng 0 hoặc 1 thì C(i) = 0

Hệ số cụm của toàn bộ đồ thị, ký hiệu C(G) tính theo công thức sau:

Hệ số cụm trung bình của đỉnh bậc k trong đồ thị bằng trung bình hệ số cụm của tất cả n đỉnh có bậc k:

Khi đó hệ số cụm trung bình của toàn đồ thị C(G) cũng có thể tính bằng trung bình hệ số cụm của các đỉnh bậc k, k= 2, 3, …,n :

PHÂN TÍCH VÀ SO SÁNH CẤU TRÚC MẠNG XÃ HỘI ZINGME VỚI CÁC MẠNG XÃ HỘI KHÁC

Giới thiệu về ZingMe và các mạng xã hội khác

Ra mắt vào tháng 8 năm 2009, ZingMe được phát triển bởi VNG và là mạng xã hội hàng đầu Việt Nam Với những tính năng cơ bản như cập nhật trạng thái, bình luận, tham gia hội nhóm, ZingMe còn đi kèm các ứng dụng flash game được yêu thích như Nông trại, Khu vườn trên mây, Cuộc chiến đỗ xe Thống kê của Google Ad Planner vào tháng 3/2011 cho thấy ZingMe dẫn đầu với 6,8 triệu lượt truy cập và 650 triệu lượt xem trang, vượt xa con số 3,1 triệu lượt truy cập và 310 triệu lượt xem của Facebook Việt Nam.

Ngày 15/05/2011, công ty VNG đã chính thức giới thiệu Zing Me Open

Platform – Kênh phát triển ứng dụng trên nền tảng mạng xã hội Zing Me Đây thực sự là một bước tiến vượt bậc của các nhà cung cấp dịch vụ mạng xã hội Việt Nam

Giống nhƣ Facebook Developer Center, Zing Me Open Platform mang lại những lợi ích sau:

Với sự ra mắt của Zing Me, các lập trình viên giờ đây có được sân chơi thỏa sức sáng tạo; nội dung được kết nối liền mạch giữa các website, blog và mạng xã hội; các thương hiệu có thể dễ dàng quảng bá sản phẩm trên nền tảng này Zing Me cũng tạo nên nhiều giá trị gia tăng mới trong không gian mạng xã hội, mang đến nhiều cơ hội phát triển cho cá nhân và doanh nghiệp.

+ Kích thích sự cạnh tranh về chất lƣợng dịch vụ giữa các mạng xã hội Do đó phân tích cấu trúc MXH ZingMe và hành vi người dùng trở nên ngày càng cấp thiết giúp các nhà phát triển ứng dụng có cái nhìn hệ thống về MXH ZingMe từ đó xây dựng ứng dụng một cách hiệu quả nhất

Mạng xã hội Facebook đƣợc phát triển bởi Mark Zukerberg vào tháng 02/2004 Đến năm 2006, Facebook đƣợc công bố rộng rãi trên khắp thế giới và hiện nay là MXH lớn nhất trên thế giới với hơn 500 triệu tài khoản người dùng Mỗi ngày có hơn 50% lượng người dùng đăng nhập, mỗi tháng tổng thời gian người dùng sử dụng là hơn 700 tỉ phút, hơn 3 tỉ bức ảnh đƣợc tải lên, hơn 30 tỉ nội dung đƣợc tạo ra

Ngoài ra còn có các MXH khác nhƣ Renren (MXH lớn nhất tại Trung Quốc), CyWorld (MXH lớn nhất tại Hàn Quốc, có phiên bản dành cho người dùng Việt Nam), Orkut (đƣợc phát triển bởi Goolge, phát triển ở các quốc gia Nam Mĩ), Flickr (chia sẻ ảnh), YouTube (chia sẻ file video), LiveJournal (chia sẻ kiến thức), LinkedIn (mạng chia sẻ nghề nghiệp).

Tập dữ liệu người dùng của các mạng xã hội

Bảng 3.2.1 thống kê các tập dữ liệu người dùng, các liên kết thu, thời gian thu thập trong các công trình nghiên cứu trước đó của các MXH và ZingMe do Công ty VNG cung cấp tính đến ngày 31/03/2011

Mạng xã hội Người dùng Số liên kết Ngày thu thập dữ liệu

Social graph 12,082,327 111,602,565 03/31/2011 Interaction graph 999,156 3,220,912 31/07/2010 - 31/03/2011 Facebook [1] 10,697,000 408,265,000 03-05/2008 Orkut [16] 3,072,441 223,534,301 10/02-11/11/2006 Flickr [16] 1,846,198 22,613,981 01/09/2007 LiveJournal [16] 5,284,457 77,402,652 12/09-11/2006 YouTube [16] 1,157,827 4,945,382 01/15/2007

Bảng 3.2.1 Các tập dữ liệu của các MXH

Tính đến ngày 31/03/2011, có khoảng hơn 12 triệu tài khoản người dùng đăng ký tham gia mạng xã hội ZingMe, thực hiện hơn 111 triệu kết nối bạn bè với nhau Số liệu này khác xa so với con số 7,4 triệu thành viên do tổ chức VNG sở hữu ZingMe công bố vào tháng 05/2011 Nguyên nhân chênh lệch này là do họ đã loại bỏ các tài khoản đã đƣợc đăng ký nhƣng không đƣợc kích hoạt trong một khoảng thời gian dài Tính theo quy mô người dùng, hiện nay ZingMe là mạng xã hội lớn nhất Việt Nam khi so với các mạng Go.vn 2,5 triệu người dùng, Tamtay.vn với khoảng 2 triệu người dùng, facebook.com ở Việt Nam khoảng 3,2 triệu người dùng

Tuy nhiên ZingMe chỉ đạt khoảng 1/50 số lượng người dùng Facebook trên phạm vi toàn thế giới với hơn 500 triệu người dùng đến năm 2011.

Đồ thị xã hội và đồ thị tương tác ZingMe

Đồ thị xã hội ZingMe đƣợc hình thành nhƣ sau:

+ Đỉnh: là một người dùng + Cạnh vô hướng: là một liên kết bạn bè giữa 2 người dùng khác nhau Một cụm liên thông ( weakly connected component, WCC) là tập các đỉnh có thể đi đến được với nhau thông qua một con đường nào đó Đồ thị mạng xã hội ZingMe bao gồm 32,199 cụm liên thông Trong đó cụm liên thông lớn nhất có 11,942,903 người dùng chiếm 98,9% số lượng người dùng, 111,457,398 liên kết chiếm 99,9% số lƣợng liên kết của toàn mạng Những cụm còn lại có thể chỉ chứa 1 người dùng hoặc số lượng người dùng rất thấp, dưới 250 người dùng Đồ thị tương tác ZingMe được hình thành như sau:

+ Đỉnh: là một người dùng

+ Cạnh: là liên kết vô hướng thể hiện cặp người dùng tương tác với nhau Tương tác của người dùng ở đây chỉ xem xét hành vi thực hiện comment (ghi lên trang của người dùng khác hoặc của chính mình) Người dùng A ghi lên trang của người dùng B, B không nhất thiết ghi lên trang của A, là hình thành cạnh liên kết vô hướng giữa A và B Trong một số trường hợp cần quan tâm đến chiều tương tác, A ghi lên trang của B nhƣng B không thực hiện ghi lên trang của A nhƣ vậy liên kết sẽ là cạnh có hướng từ A đến B, thì sẽ được chỉ rõ khi phân tích

Người dùng A chỉ có thể ghi lên trang của người dùng B chỉ khi A có liên kết bạn bè với B, nên đồ thị tương tác là đồ thị con của đồ thị xã hội

Bảng 3.3.1 bên dưới là số liệu thống kê về số đỉnh, số cạnh của cụm liên thông lớn nhất trong đồ thị xã hội và tương tác của ZingMe

ZingMe WCC Số đỉnh Số cạnh Đồ thị xã hội 11,942,903 111,457,398

Mai Phúc Tiến Trang 18 Đồ thị tương tác 817,430 2,279,375

Bảng 3.3.1 Số lƣợng đỉnh và cạnh trong WCC ZingMe

Thống kê cho thấy, đồ thị tương tác của ZingMe giảm đáng kể quy mô so với đồ thị xã hội, chỉ còn 1 triệu đỉnh (8,2% tổng đỉnh) và 3,2 triệu cạnh (2,8% tổng cạnh) Nguyên nhân là do loại bỏ những người dùng không tương tác trên mạng xã hội Điểm khác biệt đáng kể về quy mô đồ thị cần được lưu ý khi phát triển các ứng dụng dựa trên đồ thị tương tác hoặc đồ thị xã hội.

Phân tích cấu trúc đồ thị xã hội và đồ thị tương tác ZingMe dựa trên tập dữ liệu thống kê trong bảng 3.3.1.

Phân tích bậc

MXH được xây dựng trên nền tảng các mối quan hệ xã hội nên trước hết cần xem xét số lượng bạn bè mỗi người dùng có trên mạng Bảng 3.4.1 bên dưới mô tả bậc trung bình của các đồ thị hay số lượng bạn bè trung bình mà người dùng có khi tham gia vào mạng xã hội

Mạng xã hội Số bạn bè trung bình

Bảng 3.4.1 Số bạn bè trung bình của mỗi người dùng trên MXH

Trung bình một người dùng ZingMe có khoảng 19 bạn bè, thấp hơn nhiều so với mạng Facebook (76 bạn) ( hiện nay là 130 bạn ), Orkut (106 bạn) nhƣng vẫn cao hơn các mạng chia sẻ nội dung Flickr (13 bạn), LiveJournal (17 bạn), YouTube

(5 bạn) Khi xét ở mức độ tương đương về quy mô người dùng giữa ZingMe, Facebook và CyWorld thì rõ ràng số lƣợng bạn bè trung bình của ZingMe là kém nhất Điều này phản ánh rằng người dùng ZingMe có ít bạn bè trong cuộc sống thực tham gia vào MXH hoặc là hệ thống đề xuất kết bạn hoạt động không hiệu quả, hay người dùng gia nhập ZingMe vì mục đích khác Đây là nguyên nhân kiềm hãm sự phát triển của ZingMe, theo khảo sát của VNG [28]

Bảng 3.2.2 thống kê số lượng người dùng theo từng nhóm bậc Người dùng có bậc càng cao thì càng đóng vai trò quan trọng trong MXH [21] Số lượng người dùng có bậc cao hơn 500 trong ZingMe khoảng hơn 7000 người dùng, đây là các cầu nối trung gian giúp người dùng có thể dễ dàng liên kết với nhau

ZingMe Bậc 1-10 Bậc 11-100 Bậc 101-500 Bậc >500 Social graph 8,997,906 2,395,434 542,520 7,043

Bảng 3.4.2 Số lượng người dùng phân bổ trong các nhóm bậc

Hình 3.4.1 So sánh tỉ lệ phân bổ nhóm người dùng theo bậc

Hình 3.4.1 thể hiện sự chênh lệch rõ nét trong phân bổ bậc người dùng giữa ZingMe và Facebook ZingMe có mức độ kết nối yếu hơn đáng kể: chỉ có 5% người dùng có hơn 100 bạn bè, so với 37% trên Facebook Ngược lại, có tới 75% người dùng ZingMe có ít hơn 50 bạn bè.

Mai Phúc Tiến Trang 20 dùng ZingMe có ít hơn 10 bạn, chứng tỏ người dùng ZingMe rất thụ động trong việc thực hiện tìm kiếm các bạn bè của mình đang tham gia vào mạng xã hội

Hình 3.4.2 Log-log bậc người dùng với tần xuất số lượng người dùng

Hình 3.4.2 biểu diễn số lượng người dùng xuất hiện theo bậc trong đồ thị xã hội và tương tác được lấy logarithm theo hai trục quan sát Trục hoành được lấy logarithm theo bậc, trục tung được lấy logarithm theo số lượng người dùng xuất hiện trong bậc tương ứng Chẳng hạn như số lượng người dùng có bậc là 10 trong đồ thị xã hội và tương tác lần lượt là xắp xỉ hơn 163,000 và khoảng hơn 10,000 người dùng hay ở bậc 100 lần lượt là 6000 và 100 người dùng Rõ ràng tồn tại một số lượng lớn người dùng có bậc thấp và bậc người dùng càng cao thì số lượng càng ít Đây là hiện tƣợng phổ biến ở các mạng xã hội còn đƣợc biết đến với tên gọi là luật phân bố power-law

Khi quan sát trên hình 3.4.2, đường phân bố bậc người dùng của đồ thị xã hội xuất hiện điểm gãy, rơi vào khoảng bậc từ 450 đến 500 Nguyên nhân là do mạng ZingMe khống chế số lượng bạn bè của một người dùng bình thường là 500, chỉ những người dùng được đánh giá quan trọng hoặc nổi tiếng như ngôi sao ca nhạc, diễn viên, thì mới đƣợc phép mở rộng danh sách bạn bè hơn 500, nên số

Mai Phúc Tiến Trang 21 lượng người dùng có bậc lớn hơn 500 giảm đi rõ rệt Trong khi đó số lượng bạn bè khống chế của một người dùng bình thường Facebook là 5000, Orkut là 1000 hoặc LiveJournal là 750 nên khi quan sát các đường CCDF không thấy hiện tượng gãy khúc Nhƣ vậy ZingMe có những chính sách khác nhau để áp dụng cho các nhóm người dùng và đặc biệt quan tâm đến nhóm người có ảnh hưởng trong xã hội Đường tần xuất của đồ thị tương tác nằm bên dưới đường tần xuất đồ thị xã hội là do đồ thị tương tác đã loại bỏ những người dùng không thực hiện tương tác do đó làm giảm đáng kể quy mô số lượng người dùng ở các nhóm bậc Đường tần xuất của đồ thị tương tác không có hiện tượng gấp khúc do số lượng người dùng có bậc lớn hơn 500 quá thấp

Hình 3.4.3 Log-log hàm bù phân phối tích lũy bậc ZingMe (CCDF)

Hình 3.4.4 Hàm CCDF của Flickr, LiveJournal, Orkut, Youtube

Hình 3.4.3 và 3.4.4 biễu diễn hàm bù phân phối tích lũy bậc của mạng ZingMe và MXH khác Trục hoành đƣợc lấy logarithm theo bậc của đỉnh trong đồ thị, trục tung đƣợc lấy logarith theo xác xuất tìm thấy đỉnh có bậc lớn hơn một bậc xác định nào đó Đường CCDF có hệ số góc là (alpha + 1) và dễ quan sát hơn so với đường phân bố bậc Hệ số alpha của luật power-law đối với mỗi đồ thị được xác định theo phương pháp MLE (trình bày ở mục 2.4.1) Độ rõ mỗi đường phân bố được đo bằng hệ số D tính theo phương pháp Kolmogorov-Smirnor (2.4.1) Bảng 3.4.3 và 3.4.4 thống kê hệ số alpha (α) và D của các mạng xã hội

Mạng xã hội α x min D Ghi chú

Social graph 1.72 85 0.1489 Bậc tính từ 1 đến 450

1.79 500 0.0497 Bậc lớn hơn 500 Interaction graph 1.50 96 0.046

Bảng 3.4.3 Hệ số α, goodness-of-fit metrics D và cận dưới x min của các MXH

Bảng 3.4.4 Hệ số α và D của Web, Flickr, LiveJournal, Orkut, YouTube

Hình 3.4.5 Đường phân bố xác xuất tích lũy bậc của ZingMe và các MXH

Biểu đồ hình 3.4.5 minh họa hàm phân phối tích lũy bậc của ZingMe so với các nền tảng MXH khác Trục hoành biểu diễn logarit của bậc, trong khi trục tung thể hiện xác suất tìm thấy người dùng có bậc nhỏ hơn một bậc xác định nào đó Mặc dù cùng là mạng xã hội, đường CDF của ZingMe lại khác biệt đáng kể so với đường CDF của Facebook và Orkut.

Có đến 44% người dùng trong ZingMe chỉ có một liên kết xã hội, cao hơn nhiều so với tỉ lệ khoảng 3% Facebook,Orkut ZingMe chỉ có khoãng 5% người dùng có số bạn lớn hơn 100, tỉ lệ này ở Facebook khoãng 37% Đường CDF ZingMe lại tương đồng với đường CDF của các mạng chia sẽ nội dung YouTube, LiveJounal Điều

Mai Phúc Tiến Trang 24 này chứng tỏ người dùng tham gia mạng xã hội ZingMe kém tích cực trong việc tìm kiếm, kết nối bạn bè mà chủ yếu để sử dụng các dịch vụ Game, MP3, New,…

Bậc kết hợp

Hàm phân bố kết hợp bậc J(k,m) được tính như trong mục (2.2.3) dùng để xác định xu hướng liên kết bậc của các đỉnh trong đồ thị, tức là những người dùng có bậc nào thường có xu hướng liên kết với nhau.

Hình 3.5.1 Bậc kết hợp đồ thị xã hội

Hình 3.5.1 minh họa phân bố của các bậc kết hợp trong đồ thị xã hội Trục x, y biểu diễn bậc người dùng, trục z biểu diễn tổng số lượng người dùng liên kết với nhau Đa số người dùng trong mạng có bậc thấp nên rõ ràng số lượng người dùng có bậc thấp liên kết với nhau chiếm số lƣợng cụ thể là vùng bậc thấp hơn 150

Nhóm người dùng bậc từ 150-450 thực hiện kết nối với nhau rất kém, nhất là nhóm bậc 250-450 Nhóm người dùng có bậc từ 450-500 thực hiện nhiều kết nối với nhóm bậc từ 1-250, tuy nhiên lại kém kết nối với nhóm bậc từ 250-450 Đồng thời

Mai Phúc Tiến Trang 25 nhóm bậc 450-500 lại kết nối tốt với nhau điều này hàm ý rằng các “hubs” trung tâm mạng có liên kết với nhau sẽ làm giảm đi độ dài đường đi giữa các đỉnh trong đồ thị, lí giải hiện tượng Small-world trong mạng Đường chéo nổi lên trên hình vẽ là đường kết hợp của các bậc bằng nhau hoặc tương tự chứng tỏ mạng có tính chất kết hợp, điều này càng khẳng định khi hệ số kết hợp r=0.0607 (tính trong mục 3.7)

Hình 3.5.2 Bậc kết hợp đồ thị tương tác

Biểu đồ trong Hình 3.5.2 cho thấy phân bổ các bậc liên kết trong mạng xã hội Đa số các liên kết có bậc nhỏ hơn 100 Cụm các đỉnh có bậc lớn hơn 100 có kết nối rất thấp Cụm các đỉnh có bậc nhỏ hơn 10 có xu hướng kết nối với tất cả các nhóm người dùng có bậc từ 1 đến 500 Tổng số liên kết giữa các nhóm người dùng có bậc 400-500, các trung tâm kết nối, là 1374, đủ để mạng có tính chất Small-world Hệ số kết hợp r = -0,0152 < 0 cho thấy rõ ràng trong mạng này, các đỉnh có bậc bằng nhau hoặc tương tự nhau không có xu hướng liên kết với nhau.

Bậc liên kết trung bình

Bậc liên kết trung bình k nn là trung bình bậc của các đỉnh kề với đỉnh có bậc k Chỉ số k nn càng lớn thì đỉnh có xu hướng kết nối với đỉnh có bậc cao hơn nó, sự suy giảm k nn chỉ khuynh hướng ngược lại

Hình 3.6.1 Bậc liên kết trung bình k nn của đồ thị ZingMe

Hình 3.6.2 Bậc liên kết trung bình k nn của MXH khác

Hình 3.6.1 và 3.6.2 biểu diễn bậc liên kết trung bình k nn của ZingMe (Social graph và Interaction graph) và các MXH khác Trục hoành đƣợc lấy logarithm theo

Mai Phúc Tiến Trang 27 bậc người dùng, trục tung được biểu diễn k nn của bậc tương ứng Đường k nn của đồ thị xã hội ZingMe, thể hiện nhóm bậc 1 liên kết với bậc có giá trị trung bình là 150, hay nhóm bậc 100 liên kết với bậc có giá trị trung bình là 200 Khuynh hướng đỉnh có bậc cao (lớn hơn 100) kết nối với đỉnh có bậc cao khác tồn tại trong tất cả các mạng ngoại trừ YouTube Điều này có nghĩa là trong MXH những đỉnh có bậc cao có xu hướng kết nối với nhau để hình thành nên mạng lõi trung tâm Hệ số kết hợp r đƣợc tính trong mục () dùng để giải thích định lƣợng cho hiện tƣợng này

Trong MXH ZingMe, những người dùng có bậc càng thấp (nhỏ hơn 50) càng có xu hướng kết nối với người dùng có bậc cao Hiện tượng này có thể là do liên kết giữa những người nổi tiếng (như diễn viên, ca sĩ) với người hâm mộ, những người dùng bình thường trên mạng Đồng thời đường k nn của đồ thị tương tác chỉ ra rằng người dùng có bậc thấp thì hay giao tiếp với người dùng có bậc cao hơn hẳn và ít giao tiếp với những người có bậc thấp Với nhóm có bậc lớn hơn 50 thì họ lại giao tiếp nhiều nhóm bậc người dùng từ thấp đến cao ( sự tán xạ giá trị sau bậc 50), tuy nhiên nhìn chung nhóm bậc mà họ thường giao tiếp vẫn ở nhóm bậc cao.

Hệ số kết hợp r

Hệ số kết hợp r đƣợc tính theo công thức trình bày trong mục 2.2.5, dùng để đo lường khả năng các đỉnh có bậc tương tự kết nối với nhau Hệ số r lớn nghĩa là đỉnh có bậc tương tự nhau có xu hướng kết nối với nhau, r âm nghĩa là đỉnh có xu hướng kết nối với đỉnh có bậc khác xa với nó

Bảng 3.7.1 Hệ số kết hợp r của các MXH

Bảng 3.7.1 thống kê hệ số kết hợp r của ZingMe và các MXH Tính kết hợp là điểm khác biệt giữa MXH và các mạng thuần túy Power-law, Web, Internet luôn có hệ số r < 0 Đồ thị xã hội ZingMe có hệ số kết hợp r=0.0607 dương nghĩa là tồn tại số lượng lớn các liên kết giữa những người dùng có bậc tương tự nhau Đồng nghĩa với việc MXH ZingMe tồn tại những đỉnh có bậc cao kết nối với nhau hình thành nên mạng trung tâm, tiếp sau đó là những đỉnh có bậc thấp hơn kết nối vào mạng trung tâm hay có thể hiểu là mạng có cấu trúc phân cấp Hệ số r của ZingMe thấp hơn nhiều so với Facebook cũng là do người dùng ZingMe thụ động trong việc tìm kiếm, thực hiện liên kết bạn bè hoặc do do có ít bạn tham gia ZingMe Đối với đồ thị tương tác, hệ số r âm (-0.015), người dùng trong mạng tương tác với những người dùng có bậc khác xa nhau, mạng có tính kết hợp rất thấp

Hệ số cụm (trình bày trong mục 2.2.6) của một người dùng để đo mật độ liên kết giữa các thành viên trong một nhóm hay xác xuất để tìm thấy liên kết giữa hai người bạn mà người dùng có

Hình 3.8.1 Đường phân bố hệ số cụm C theo bậc người dùng của ZingMe

Hình 3.8.2 Đường phân bố hệ số cụm C theo bậc người dùng của Facebook

Hình 3.8.1 và 3.8.2 mô tả đường phân bố hệ số cụm C theo bậc người dùng của ZingMe và Facebook Người dùng có bậc càng thấp thì hệ số cụm càng cao, cho thấy xác xuất tìm thấy mối liên hệ giữa những người bạn này rất lớn Ngược lại, khi bậc người dùng càng tăng thì hệ số cụm càng giảm, do xác xuất tìm thấy mối quan hệ giữa những người bạn của người dùng là thấp.

Mai Phúc Tiến Trang 30 đối với những ngôi sao, họ có hàng chục ngàn người hâm mộ nhưng xác xuất để những người hâm mộ này là bạn bè của nhau thì rất thấp Nhưng đối với người dùng chỉ thực hiện liên kết đối với họ hàng thì xác xuất để những người họ hàng này quen nhau là rất cao Đường phân bố hệ số cụm ZingMe của đồ thị tương tác cao hơn đồ thị xã hội đối với nhóm người dùng có bậc cao (lớn hơn 50), có nghĩa nhóm người mà người dùng hay tương tác thì xác xuất để họ là bạn bè rất cao Đường phân bố hệ số cụm của đồ thị xã hội ZingMe cao hơn của Facebook đối với nhóm người dùng có bậc thấp, tuy nhiên đường phân bố này suy giảm nhanh chóng khi bậc người dùng càng cao Như với nhóm bậc 100, hệ số cụm của Zing Me chỉ đạt khoảng 5% ở Facebook là khoảng 15% hay ở nhóm bậc 500 hệ số cụm của ZingMe là 1% ở Facebook là 10% Điều này cũng phản ánh người dùng ZingMe rất kém liên kết với nhau

Network Hệ số cụm trung bình

Bảng 3.8.1 Hệ số cụm trung bình của các MXH

Bảng 3.8.1 thống kê hệ số cụm trung bình trên toàn mạng của các MXH Hệ số cụm trung bình trên mạng ZingMe của đồ thị tương tác (0.04) lớn hơn đồ thị xã hội (0.02), do các nhóm trên đồ thị tương tác liên kết tốt hơn như đã phân tích ở trên Hệ số cụm trung bình của ZingMe cũng kém hơn hẳn so với các MXH khác do người dùng ZingMe thụ động trong việc thực hiện liên kết bạn bè

3.9 Đường đi trung bình, bán kính và đường kính

Bảng 3.9.1 thống kê đường đi trung bình (Avg path len), đường kính (diameter), effective diameter và bán kính (radius) của các MXH Đường đi trung bình của ZingMe đối với đồ thị xã hội và tương tác là 5.24 và 3.72, như vậy cũng tuân theo tính chất Six-degree-separation [29] và mạng cũng có tính chất Small- world Không có gì ngạc nhiên khi thấy rằng đường đi trung bình của đồ thị xã hội ZingMe (5.24) lớn hơn Facebook (4.8), CyWorld (3.2) vì người dùng trong các mạng này liên kết với nhau tố hơn hẳn so với ZingMe

Network Avg path len Diameter eff Diameter Radius

Bảng 3.9.1 Đường đi trung bình, bán kinh, đường kính và 90% đường kính

Chương 4 PHÂN TÍCH HÀNH VI NGƯỜI DÙNG

Chương này sẽ tập trung phân tích các mẫu hành vi tương tác của người dùng trên mạng xã hội ZingMe

Sau đây là các thuật ngữ về hành vi người dùng trên MXH:

Comment: ghi chú thích lên trang Tường của mình hoặc người dùng khác

Feed: cũng là dạng của comment nhƣng đó là comment đầu tiên trong một chủ để

User pairs: cặp người dùng có ghi chú thích lên trang Tường của nhau

Average comments pair of user: số comment trung bình cặp người dùng trao đổi

Average self comments user: số comment trung bình người dùng tự ghi lên trang

Interactive node: là mức độ năng động của người dùng được tính bằng tổng số comments mà người dùng đó tạo ra Tổng số comments càng lớn thì người dùng càng năng động

Top node degree: nhóm người dùng có bậc cao nhất trong mạng xã hội

Top interactive node: nhóm người dùng năng động nhất trong mạng xã hội.

Tập dữ liệu phân tích hành vi người dùng

Bảng 4.1.1 thống kê số liệu thu thập từ ngày 01-08-2010 đến 31-03-2011 về người dùng, tổng số lượng comment, cũng như số lượng comment trung bình giữa các cặp người dùng, hoặc tự ghi lên trang Tường Số liệu này thống kê cho toàn bộ người dùng trên mạng và đối với những người dùng thuộc cụm liên thông lớn nhất

Toàn bộ dữ liệu WCC

Tổng số lượng người dùng 963,795 817,430 Số cặp người dùng tương tác 2,772,852 2,729,375

Avg comments pair of user 6 6

Bảng 4.1.1 Tập dữ liệu phân tích hành vi

Bảng 4.1.2 bên dưới thống kê chi tiết dữ liệu người dùng trong các tháng:

Average comments of pair user

Bảng 4.1.2 Dữ liệu người dùng theo tháng

Theo bảng 4.1.2 trung bình mỗi tháng người dùng trên ZingMe tạo ra 16 comments và một cặp người dùng trao đổi với nhau là 2 comments Trong khi trên mạng Facebook, trung bình mỗi người dùng tạo ra 25 comments và trao đổi cho nhau 6 comments mỗi tháng Người dùng Facebook năng động hơn hẳn so với

ZingMe và họ thường hay trao đổi thông tin về nhau.

Sự tương quan giữa bậc người dùng với mức năng động

Khi phân tích hành vi của người dùng trên các mạng xã hội, một câu hỏi thường được đặt ra là tại sao một số nhóm người dùng lại rất tích cực tương tác bằng các bình luận trong khi những nhóm khác lại ít giao tiếp Liệu số lượng bạn bè (mức độ liên kết) có ảnh hưởng đến mức độ hoạt động của người dùng trên mạng xã hội hay không?

Hình 4.2.1 Hàm phân bố tích lũy tỉ lệ số lượng comments theo bậc người dùng

Hình 4.2.1 biểu diễn mối tương quan giữa bậc xã hội người dùng và mức độ năng động của người dùng dựa trên tổng số lượng comments mà họ tạo ra Trục hoành biểu diễn phần trăm nhóm người dùng theo bậc xã hội từ cao nhất đến thấp nhất Nhƣ vậy trên trục hoành là 10% nhóm bậc cao nhất, 10% nhóm bậc cao tiếp theo (tích lũy là 20% nhóm bậc cao nhất) cứ lần lượt cho đến khi đạt 100% số người dùng trên toàn mạng Trục tung thể hiện tỉ trọng số lượng tương tác do nhóm người tương ứng tạo ra Chẳng hạn nhóm 10% người dùng có bậc cao nhất chiếm 50% tổng số lượng tương tác hay nhóm 20% người dùng có bậc cao nhất chiếm khoảng 80% tổng số lượng tương tác Rõ ràng có sự tương quan mạnh mẽ giữa bậc người dùng với mức độ năng động ở cả ZingMe lẫn Facebook Có đến hơn 50% tổng số hành vi tương tác của người dùng chỉ do 10% nhóm người dùng có bậc xã hội cao tạo ra, hầu như tất cả các hành vi tương tác chỉ do 50% nhóm người dùng bậc cao nhất tạo ra trên ZingMe lẫn Facebook Kết quả này khẳng định rằng có sự tương quan mạnh mẽ giữa bậc người dùng với mức độ năng động của người dùng

Hình 4.2.2 Đường tần xuất tỉ lệ comments theo bậc người dùng Để hiểu rõ hơn phân bố tỉ lệ số lượng comments theo nhóm bậc người, hình 4.2.2 được dùng để biểu diễn phân bố tần suất comments theo bậc người dùng

Hình vẽ đã thể hiện rõ nhóm người dùng có bậc thấp mặc dù chiếm tỉ trọng rất lớn trong mạng xã hội nhƣng số lƣợng comments do họ tạo ra rất thấp chỉ chiếm khoảng 0.001% tổng số comments.

Phân bố tương tác theo mức năng động nhóm người dùng

% of Top Nodes Ordered by Social Degree

Hình 4.3.1 Phân bố tích lũy tỉ lệ comments theo mức năng động người dùng

Hình 4.3.1 biểu diễn tỉ lệ số lượng tương tác theo mức độ năng động các nhóm người dùng từ năng động nhất đến kém năng động nhất trên mạng xã hội

Trục hoành thể hiện tỉ lệ nhóm người dùng theo mức độ năng động, trục tung thể hiện tỉ trọng tương tác do mỗi nhóm tạo ra Sắp xếp người dùng theo tổng số bình luận, nhóm 1% năng động nhất đóng góp hơn 50% tương tác, nhóm 20% năng động nhất chiếm phần lớn tương tác mạng xã hội Phần lớn tương tác chỉ do nhóm nhỏ người dùng cực kỳ năng động tạo nên, trong khi đa số kém năng động hơn nhiều Điều này chứng tỏ không phải người dùng mạng xã hội đều quan trọng như nhau, mà chỉ đến từ một nhóm nhỏ, đây cũng là tiêu chí nhận dạng nhóm người dùng đam mê mạng xã hội, đối tượng có thể tận dụng để tăng cường sức mạnh của mạng xã hội.

Phân bố tỉ lệ người dùng theo tương tác nhóm bạn bè

Hình 4.4.1 Phân bố tích lũy tỉ lệ người dùng theo tương tác nhóm bạn bè

Hình 4.4.1 phân bố tích lũy tỉ lệ người dùng theo tương tác nhóm bạn bè Ứng với mỗi người dùng, tính số phần trăm bạn bè mà người dùng tương tác trên tổng số bạn bè mà họ có (friend involved) và sau đó đặt lên trục hoành theo chiều tăng dần tỉ lệ bạn bè tương tác Sau đó thực hiện gom thành từng nhóm phần trăm bạn bè tương tác để tính được số lượng người dùng trong từng nhóm và đặt lên trục tung Như vậy nhóm bạn bè ở đây là tỉ lệ số lượng bạn bè mà người dùng tương tác Đối với ZingMe, có đến khoảng 80% người dùng chỉ thường xuyên tương tác với 20% số lượng bạn bè mà người dùng có Hầu như tất cả người dùng trên ZingMe chỉ giao tiếp với tối đa 50% số bạn bè mà họ có trên mạng Điều này chứng tỏ rằng chỉ có một phần các liên kết xã hội là thực sự đại diện cho các mối liên kết có tương tác với nhau

Hình 4.4.2 Tỉ lệ phân bổ người dùng theo số lượng bạn bè

Hình 4.4.2 biểu diễn tỉ lệ số lượng người dùng trong MXH ZingMe tương tác với số bạn bè mà họ có Phần lớn người dùng trong mạng xã hội chỉ tương tác với một số nhỏ bạn bè mà họ có

Phân bố số lượng tương tác theo các nhóm bạn tương tác

Hình 4.5.1 Phân bố tích lũy tương tác theo các nhóm bạn bè

Hình 4.5.1 biểu diễn phân bố tương tác của các nhóm Top 1% Nodes, Top 10% Nodes, Top 100% Nodes năng động theo tỉ lệ số bạn bè liên quan trong các comments của họ Nhóm Top 1% Nodes năng động nhất tương tác với rất nhiều bạn bè mà họ có, có rất ít người trong nhóm này tương tác dưới 10% số bạn bè mà họ có Đường CDF của nhóm Top 1% Nodes tăng đều 50% số tương tác của Top 1%

Nodes phân bố cho 50% số liên kết bạn bè, 100% số tương tác của Top 1% liên quan đến 100% bạn bè Chứng tỏ nhóm Top 1% Nodes tương tác với mọi tỉ lệ bạn bè mà họ có Tuy nhiên khi mở rộng nhóm người dùng năng động lên 10% hoặc 100% thì số tương tác phân bổ cho khoảng 50% bạn bè chiếm đến khoảng 70% số lượng tương tác

Top 1% NodesTop 10% Nodes100% Nodes

Hình 4.5.2 Tỉ lệ phân bố tương tác theo số bạn bè liên quan

Hình 4.5.2 biểu diễn tỉ lệ phân bố tương tác của người dùng trên toàn mạng xã hội theo phần trăm số lượng bạn bè mà người dùng thực hiện tương tác Nhóm

Top 1% Nodes tương tác với nhiều bạn bè hơn và thường xuyên tương tác từ 20% đến 50% số bạn bè mà họ có Trong khi đó nếu xét nhóm Top 10% Nodes và Top 100% Nodes thì phần lớn các tương tác chỉ tập trung vào khoảng 10% số liên kết mà họ có Phân bố tương tác của các nhóm giảm dần khi phần trăm số lượng bạn bè mà họ tương tác tăng lên.

Phân bố tương tác theo nhóm bậc xã hội

Để xác định mức độ tương tác giữa các nhóm người dùng trên mạng xã hội theo bậc xã hội, các nhà nghiên cứu đã tính tổng số lượng bình luận mà họ trao đổi và ghép với bậc xã hội tương ứng Tổng số bình luận theo từng cặp bậc xã hội được tính toán, thể hiện trong Hình 4.6.1 Kết quả cho thấy nhóm người dùng có bậc xã hội cao (450 trở lên) tương tác nhiều nhất với nhóm có bậc xã hội 300-450, chứng tỏ sự gần gũi về vị thế xã hội có ảnh hưởng đến mức độ tương tác.

Top 1% NodesTop 10% NodesTop 100% Nodes

500 có khuynh hướng tương tác với nhau, trao đổi với nhau rất nhiều comments đồng thời nhóm này cũng có khuynh hướng tương tác với tất cả các người dùng từ bậc thấp đến bậc cao Điều này phản ánh mức độ năng động của người dùng có bậc xã hội cao, nhóm 10% người dùng có bậc xã hội cao nhất chiếm đến 50% tổng số comments đƣợc tạo ra trên toàn mạng xã hội (mục 4.2) Nhƣng nhìn chung trên toàn mạng xã hội số lƣợng comments tạo ra giữa những bậc xã hội không theo một quy luật nào, mà mang tính ngẫu nhiên

Hình 4.6.1 Biểu diễn số tương tác theo cặp bậc xã hội

Phân bố số lượng tương tác trên cặp người dùng

Hình 4.7.1 Phân bố tích lũy tỉ lệ cặp người dùng theo số lượng comments

Hình 4.7.1 biểu diễn phân bố xác xuất tích lũy tỉ lệ phần trăm cặp người dùng theo số lượng comments mà cặp người dùng trao đổi Trục hoành biểu diễn số lượng comments mà một cặp người dùng có thể trao đổi với nhau Trục tung biểu diễn tỉ trọng số cặp người dùng trao đổi với nhau nhỏ hơn một số lượng comments nào đó Khoảng 50% cặp người dùng chỉ trao đổi với nhau 1 comments, có đến 90% cặp người dùng trên toàn mạng xã hội chỉ trao đổi với nhau khoảng 10 comments trong suốt quảng thời gian 8 tháng Đa số các cặp người dùng trên mạng trao đổi với nhau rất ít comments và chỉ tồn tại một số ít cặp người dùng là thường xuyên có giao tiếp với nhau (quy luật Pareto) Số lƣợng comments giao tiếp giữa các cặp người dùng là rất thấp, chứng tỏ người dùng tham gia MXH ZingMe có thể vì họ muốn đƣợc sử dụng các dịch vụ đi kèm nhƣ Zing Mp3, chơi game, kết bạn với người nổi tiếng hoặc đơn giản vì họ có quá ít bạn để giao tiếp.

Bậc xã hội và hành vi người dùng

Hình 4.8.1 Bậc xã hội và hành vi người dùng

Hình 4.8.1 biểu diễn tổng hợp giữa tỉ lệ comments người dùng tự ghi lên trang của mình (SelfWall), ghi lên trang của người dùng khác (SendOtherWall), hoặc nhận được từ người dùng khác (ReceiveWall) theo bậc xã hội người dùng Ứng với đường ReceiveWall, đầu tiên tính tổng số comments do mỗi người dùng nhận được từ người dùng khác trên toàn mạng xã hội Tính tổng số comments do các người dùng có cùng bậc xã hội nhận được Sau đó tính tỉ lệ comments của mỗi bậc xã hội trên tổng số comments Trên trục hoành là bậc xã hội đƣợc sắp theo chiều tăng dần Trục tung biểu diễn tỉ lệ comments mà bậc xã hội tương ứng nhận được Đó là đường biểu diễn phân bố ReceiveWall Tương tự như vậy cho biểu diễn các đường phân bố SelfWall và SendOtherWall

Xét đường ReceiveWall, với nhóm người dùng có bậc nhỏ hơn 50 thì tỉ lệ comments mà họ nhận được thấp nhất mặc dù lượng người dùng có bậc nhỏ hơn 50 chiếm số lƣợng lớn (90%), nguyên nhân là họ chƣa kết nối đƣợc nhiều bạn bè để tương tác Với người dùng có bậc từ 50 đến 450 thì tỉ lệ comments mà họ nhận được từ người dùng khác không có sai biệt lắm về số lượng Nhóm người dùng có bậc xã

Mai Phúc Tiến Trang 44 hội từ 450 đến 500 (bậc cao) mặc dù chỉ chiếm số lƣợng rất nhỏ nhƣng số comments mà họ nhận được từ người dùng khác cao hơn hẳn so với nhóm có bậc nhỏ hơn 450

Xét đường SendOtherWall, đường này có dạng tương đồng với đường ReceiveWall Nhóm bậc nhỏ hơn 50 gởi đi số comments ít hơn hẳn các nhóm bậc lớn hơn 50 nguyên nhân cũng là do họ có quá ít bạn để giao tiếp với với nhau

Nhóm bậc từ 450 đến 500 cũng thể hiện rõ sự năng động của họ khi tỉ lệ comments mà họ gởi đi rất cao

Đường SelfWall có dạng phân bố khác biệt so với đường ReceiveWall và SendOtherWall ở nhóm bậc người dùng thấp nhỏ hơn 50 Điều này là do tỷ lệ bình luận do người dùng tự đăng lên trang của họ cao hơn Nguyên nhân là do số lượng người dùng nhóm bậc thấp rất lớn và khi mới tham gia mạng xã hội, họ có xu hướng khám phá các tính năng và giới thiệu bản thân với bạn bè.

Sự khác biệt hành vi người dùng trong từng nhóm bậc xã hội

Hình 4.9.1 Sự khác biệt hành vi người dùng trong từng nhóm bậc xã hội

Hình 4.9.1 biểu diễn sự khác biệt về hành vi người dùng SelfWall,

ReceiveWall, SendOtherWall trong từng nhóm bậc xã hội Ứng với mỗi nhóm người dùng có cùng bậc xã hội, tính tổng số lượng comments do nhóm tạo ra đối với hành vi SelfWall, ReceiveWall, SendOtherWall và tính tổng hợp của ba hành vi này Sau đó tính tỉ lệ SelfWall, ReceiveWall, SendOtherWall trên số lƣợng tổng hợp này Trục hoành sắp bậc xã hội theo chiều tăng dần Trục tung lần lƣợt đặt tỉ lệ SelfWall, ReceiveWall, SendOtherWall tương ứng với các bậc xã hội Nhóm người dùng có bậc thấp hơn 50, tỉ lệ SelfWall lớn hơn hẳn so với ReceiveWall, SendOtherWall là do họ không có bạn bè để giao tiếp, nên chỉ có thể ghi lên chính Tường của mình để quảng bá về mình và tìm hiểu tính năng của mạng xã hội Tỉ lệ hành vi SendOtherWall cao hơn hành vi ReceiveWall là do họ ghé thăm trang bạn bè và để lại lời nhắn, trong khi lại có ít bạn bè biết về họ Tuy nhiên khi bậc người dùng càng cao thì các tỉ lệ này có xu hướng cân bằng nhau do lúc này bạn bè đã biết về họ và họ có thể giao tiếp ngay trên chính trang tường của mình.

Tương quan bậc xã hội người dùng với thời điểm online

Hình 4.10.1 Tỉ lệ người dùng online tại các thời điểm trong ngày

Hình 4.10.1 biểu diễn tỉ lệ số người dùng trong từng nhóm bậc xã hội online tại các thời điểm trong ngày Người dùng được phân thành các nhóm có bậc khác nhau như nhỏ hơn 10, bậc từ 10 đến 100,… sau đó tính tổng số lượng người dùng trong từng nhóm Tiếp theo ở mỗi thời điểm trong ngày tính phần trăm số người dùng đang online trong từng nhóm Do không thể xác định thời điểm người dùng thực hiện online (tập dữ liệu của VNG không cung cấp) nên nếu người dùng thực hiện comments thì ghi nhận là người dùng đang online Sau thời điểm 0h sáng số lượng người dùng online giảm đi nhanh chóng và khoảng thời gian từ 4h-6h sáng là thời điểm có ít người dùng đang online nhất Sau 6h sáng, người dùng bắt đầu thực hiện online vào mạng xã hội và số lƣợng tăng dần Khoảng thời gian từ 10h đến

23h, số lượng người dùng online đạt mức ổn định ở tất cả các nhóm bậc xã hội Đặc biệt nhóm người dùng bậc cao (>500) đạt số lượng online nhiều nhất vào khoảng thời gian từ 21-22h đêm.

Phân bố số lƣợng hành vi theo các thời điểm trong ngày

Hình 4.11.1 Phân bố số lƣợng comments các thời điểm trong ngày

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Hình 4.11.1 biểu diễn số lƣợng comments trung bình đƣợc tạo ra tại các thời điểm trong ngày từ Thứ Hai đến Chủ nhật trong vòng một tuần Theo hình 4.10 và kết hợp với phân tích ở 4.9, số lƣợng comments tạo ra thấp nhất từ 4h-6h sáng do có ít người online tại thời điểm này Sau 6h sáng, số lượng comments tạo ra tăng lên nhanh chóng do lúc này có số người online bắt đầu gia tăng và đạt đỉnh tại thời điểm từ 21-22h Đồng thời, thường vào các ngày từ Thứ Sáu đến Chủ Nhật, số lượng comments tạo ra nhiều hơn các ngày bình thường trong tuần, do người dùng thường rãnh rỗi hoặc không đi làm vào các ngày cuối tuần, nên họ dành nhiều thời gian hơn để online trên mạng xã hội Trung bình mỗi giờ người dùng trên ZingMe tạo ra 6092 comments

Kết hợp phân tích 4.9 và 4.10, nhà cung cấp dịch vụ mạng xã hội nên thực hiện nâng cấp và bảo trì hệ thống vào các ngày bình thường trong tuần và nên bắt đầu từ khoảng thời gian 0h-6h sáng để giảm bớt ảnh hưởng đến người dùng

Kết luận: Nhóm người dùng có bậc càng cao mặc dù chỉ chiếm số lượng rất ít trên mạng xã hội nhưng lại có tầm quan trọng nhất Đa số các hành vi tương tác đều do nhóm người dùng này đóng góp Phân tích cũng chỉ rõ đa số người dùng trên mạng xã hội chỉ tương tác với một nhóm nhỏ bạn bè mà họ có Rõ ràng những người dùng thường xuyên tương tác với nhau có mối quan hệ thân thiết trong thực tế, do đó có thể tận dụng điều này để xác định tầm ảnh hưởng lẫn nhau của họ Do đó nhà cung cấp dịch vụ mạng xã hội nên quan tâm đặt biệt đến nhóm này để có thể phát huy hiệu quả về tầm ảnh hưởng của họ, sự hào hứng của họ đối với dịch vụ mạng xã hội khi phát triển các ứng dụng hoặc quảng cáo trực tuyến

HIỆN THỰC CHƯƠNG TRÌNH

Cơ sở dữ liệu

Chương trình sử dụng cơ sở dữ liệu MySQL Server 5.5.10

Driver mysql-connector-c-6.0.2-win32 khi phát triển chương trình trên Windows

Driver mysql-connector-c-6.0.2-linux-glibc2.3-x86-32bit.tar trên môi trường Ubuntu

Dữ liệu thu thập được lưu trữ trong cơ sở dữ liệu từ nền tảng ban đầu là 2 bảng:

+ Friends: lưu trữ các liên kết bạn bè giữa các người dùng, áp dụng để phân tích Social Graph

+ FeedComment: lưu trữ các comment giữa cặp người dùng có tương tác với nhau, áp dụng để phân tích Interaction Graph, hành vi người dùng

Bên trong cấu trúc các bảng có thể gồm có nhiều trường dữ liệu khác nhau, nhưng ở đây chỉ liệt kê các trường cần thiết áp dụng trong luận văn

+ id + friend_id Nếu người dùng A và B là bạn bè lẫn nhau, thì bảng Friends sẽ lưu trữ thành 2 mẫu tin là (id_A,id_B) và (id_B,id_A) Nếu người dùng A chưa thực hiện liên kết bạn bè với bất kỳ người dùng nào thì sẽ lưu thành 1 mẫu tin có dạng (id_A,id_A)

Bảng Users được suy diễn từ bảng Friends, lưu trữ danh sách các định danh người dùng, bậc của họ và số định danh nhóm người dùng mà họ thuộc về Bảng này không chứa thông tin cá nhân như họ tên, ngày tháng năm sinh hoặc số điện thoại.

+ UserIdTo Người dùng khi tạo một chủ đề mới trên trang Wall của chính mình hoặc người dùng khác có nghĩa là đã khởi tạo một FeedId mới, thông tin người dùng nhận FeedId sẽ được lưu vào trường UserIdTo, thông tin người dùng tạo ra lưu vào trường UserId, số hiệu nội dung lưu vào CommentId, thời điểm khởi tạo lưu vào trường Time Sau đó, nếu xem FeedId như là một chủ đề thì CommentId là nội dung các phản hồi do người dùng tọa ra cho chủ đề này

Bảng Comment tương tự như bảng Friends khi lưu trữ danh sách những người dùng thường xuyên tương tác qua lại Tuy nhiên, bảng Comment còn có thêm trường Feed, lưu trữ tổng số bình luận mà người dùng Id đã gửi cho người dùng Friend_id trong suốt thời gian thu thập dữ liệu, không tính số bình luận ngược lại.

+ id: định danh người dùng + degree: bậc xã hội người dùng

+ friendint: tổng số bạn bè có giao tiếp với người dùng, không quan tâm đến hướng tương tác Nếu A có ghi comment lên B, nhưng B không ghi comment lên A thì vẫn hình thành quan hệ A-B

+ friendin: tổng số bạn bè ghi comment lên trang của người dùng

+ friendout: tổng số bạn bè mà người dùng ghi lên trang của họ

+ friendmix: tổng số bạn bè mà người dùng ghi lên trang của họ và họ ghi lên trang của người dùng

+ feed_send: tổng số comment mà người dùng đã tạo ra + feed_receive: tổng số comment mà người dùng nhận được từ người dùng khác

+ component_id: định danh cụm người dùng

Bảng IUsers cũng tương tự như bảng Users, dùng để lưu thông tin về người dùng có thực hiện comment trên mạng

Danh sách các thủ tục – ý nghĩa Thủ tục build_friends: chuẩn hóa bảng Friends, có thể từ dữ liệu gốc chỉ lưu trữ liên kết A-B nhƣng không có liên kết B-A nên cần phải bổ sung vào mẫu tin này

Thủ tục build_ifriends: tương tự như build_friends

Thủ tục build_users: rút trích định danh người dùng từ bảng Friends đưa vào bảng

Thủ tục build_iusers: tương tự như build_users

Thủ tục update_users_socialdegree: tính toán tổng số liên kết bạn bè người dùng có và lưu trữ vao bảng Users

Thủ tục update_iusers_socialdegree: cập nhật bậc xã hội người dùng từ bảng

Users vào bảng IUsers để thuận tiện cho việc tính toán sau này

Thủ tục update_users_componentid: tính toán xem người dùng thuộc vào cụm liên thông nào dựa vào mối liên kết bạn bè, cập nhật định danh cụm liên thông vào bảng Users ở trường componentid

Thủ tục update_iusers_componentid: tương tự như thủ tục update_users_componentid nhưng tính toán dựa trên mối quan hệ tương tác

Thủ tục update_iusers_friendinout: tính toán tổng số bạn bè lần lượt theo hướng tương tác những người bạn tương tác với người dùng (friendin), người dùng tương tác với bạn bè (friendout)

Thủ tục update_iusers_friendint: tính tổng số bạn bè mà người dùng tương tác không phân biệt hướng tương tác, kết quả cập nhật vào trường friendint của bảng

Thủ tục update_iusers_friendmix: tính tổng số bạn bè mà người dùng thực hiện comment lên trang của họ và họ cũng thực hiện ngƣợc lại, kết quả cập nhật vào trường friendmix của bảng IUsers

Thủ tục degree_interaction: Tính tổng số comments do từng nhóm người dùng có bậc xã hội tương ứng tạo ra Số commenst do từng nhóm người dùng được phân loại theo bậc xã hội từ bậc cao xuống bậc thấp tạo ra, xuất kết quả ra dạng file Excel với cột 1 là bậc xã hội, cột 2 là tổng số comment do nhóm bậc xã hội này tạo ra

Thủ tục friendinvolved_interaction: Tính số comments do từng nhóm người dùng tương tác với số lượng bạn bè nhất định Tương ứng với mỗi người dùng, tính phần trăm số lượng bạn bè mà người dùng thực hiện tương tác trên tổng số lượng bạn bè mà họ có, không phân biệt hướng tạo comment Sau đó tính tổng số lượng comments được tạo ra tương ứng với các nhóm phần trăm bạn bè tương tác Kết quả xuất ra dạng file Excel với cột 1 là phần trăm bạn bè tương tác, cột 2 là số Feeds do nhóm này tạo ra

Tính tổng số lượng người dùng tương tác với một lượng bạn bè nhất định Tính tỷ lệ phần trăm bạn bè tương tác trên tổng số lượng bạn bè của họ Nhóm người dùng theo tỷ lệ phần trăm bạn bè tương tác và đếm tổng số lượng người dùng trong mỗi nhóm Kết quả xuất ra là file Excel với cột 1 là tỷ lệ phần trăm bạn bè tương tác và cột 2 là tổng số lượng người dùng trong mỗi nhóm.

Thủ tục interactivenode_interaction: Tính tổng số comments do từng nhóm người dùng được phân loại dựa trên mức độ năng động tạo ra Ứng với mỗi người dùng

Mai Phúc Tiến Trang 52 tính tổng số comments do người dùng này tạo ra Sau đó xắp xếp người dùng vào các nhóm năng động dựa trên số comments mà họ tạo ra, người dùng càng năng động thì tạo ra càng nhiều comments Tính tổng số comments do từng nhóm người dùng này tạo ra Kết quả xuất ra file Excel dưới dạng cột 1 là nhóm phân loại theo mức độ năng động từ cao xuống thấp, cột 2 là số comment do nhóm tạo ra

Thƣ viện SNAP và các hàm phân tích cấu trúc đồ thị

Thư viện mã nguồn mở Snap được phát triển bởi Jure Leskovec tại trường đại học Stanford [30] ở Mỹ bắt đầu từ năm 2004 Thƣ viện đƣợc phát triển bằng ngôn ngữ C++/STL có thể biên dịch, thực thi trên môi trường Windows và Unix Đây là thƣ viện cung cấp các cấu trúc dữ liệu, các hàm phân tích cấu trúc đồ thị cơ bản Khả năng xử lí số lƣợng đỉnh và cạnh đồ thị không phụ thuộc vào độ lớn của chúng mà phụ thuộc vào bộ nhớ và tốc độ máy tính xử lí Trong luận văn này xử dụng thƣ viện Snap đƣợc phát hành vào ngày 17-04-2011 và biên dịch trên môi trường Windows/ Ubuntu

Cấu trúc PUNGraph: lưu trữ đồ thị vô hướng gồm danh sách các đỉnh và cạnh

Hàm LoadGraphFromDB(): xây dựng cấu trúc đồ thị từ dữ liệu được lưu trữ trong cơ sở dữ liệu Lấy danh sách đỉnh từ bảng Users và danh sách cạnh từ bảng Friends để đƣa vào cấu trúc dữ liệu PUNGraph

Hàm LoadIGraphFromDB(): xây dựng cấu trúc đồ thị từ dữ liệu được lưu trữ trong cơ sở dữ liệu Lấy danh sách đỉnh từ bảng IUsers và danh sách cạnh từ bảng

IFriends để đƣa vào cấu trúc dữ liệu PUNGraph

Hàm LoadGraphFromFile() tạo cấu trúc đồ thị từ file dữ liệu cạnh của đồ thị, mỗi dòng dữ liệu trong file là một cạnh của đồ thị Kết quả trả về là PUNGraph, tức đồ thị không có hướng và có thể có các cạnh trùng nhau.

Hàm `PlotKnnCf()` tính toán và xuất ra bậc trung bình liên kết với đỉnh có bậc `k` trong đồ thị Kết quả được lưu dưới dạng file với hai cột: cột đầu là đỉnh có bậc `k`, cột thứ hai là bậc trung bình liên kết tương ứng.

Hàm Assortativity(): tính hệ số tương quan Pearson r của toàn đồ thị để xác định xem có sự tương quan giữa những đỉnh có bậc tương tự nhau kết hợp với nhau

Hàm JDD(): tính tổng số lƣợng cạnh mà đỉnh có bậc i kết hợp với bậc j trong toàn bộ đồ thị Kết quả xuất ra file dưới dạng cột 1 đỉnh bậc i, cột 2 đỉnh bậc j, cột 3 là số lượng cạnh Dùng chương trình Dplot để hiển thị kết quả này, kết hợp với tính toán từ hàm PlotKnnCf và Assortativity có thể phán đoán bậc kết hợp trong đồ thị

Hàm PlotClustCf(): tính hệ số cụm (Clustering) trung bình của đỉnh có bậc k và trung bình cho toàn bộ đồ thị Kết quả xuất ra file dưới dạng cột 1 là đỉnh bậc k, cột 2 là hệ số cụm trung bình của nhóm đỉnh bậc k

Hàm PlotOutDegDistr(): tính số lƣợng đỉnh trong đồ thị có bậc k Kết quả xuất ra file dưới dạng cột 1 là đỉnh bậc k, cột 2 là số lượng đỉnh Kết quả tính toán này sau đó đƣợc dùng để xác định luật phân phối Power-law của đỉnh trong đồ thị

Hàm GetBfsEffDiamAvgRadTopDegree(): tính toán đường đi trung bình, bán kính, đường kính và effective diamter Do không thể thực hiện tính đường đi ngắn nhất giữa toàn bộ các đỉnh, nên chương trình chỉ thực thi tính toán với 1000 đỉnh có bậc lớn nhất trên mạng và 1000 đỉnh đƣợc lấy ngẫu nhiên sau đó tính trung bình trên tập này Ứng với mỗi đỉnh thực hiện giải thuật Breath First Search để xác định đường đi ngắn nhất đến tất cả các đỉnh thuộc đồ thị Sau đó tính đường đi trung bình, bán kính, đường kính và effective diamter của đồ thị.

Chương trình Social Networks Visualizer

Social Networks Visualizer (SocNetV)[31] là chương trình phần mềm mã nguồn mở được phát triển bởi Dimitris V Kalamaras Chương trình được phát triển bằng ngôn ngữ C++ với công cụ hỗ trợ Qt, có thể thực thi được trên môi trường Windows lẫn Unix Phần mềm có thể áp dụng để hiển thị đồ thị với nhiều phong cách hiển thị khác nhau đồng thời thực hiện các phân tích về cấu trúc đồ thị nhƣ tính hệ số cụm, đường kính, bán kính, đường đi trung bình giữa các đỉnh Tuy nhiên không thể sử dụng phần mềm này để tiến hành phân tích các đồ thị có số đỉnh lên đến vài triệu Do cấu trúc dữ liệu biểu diễn đồ thị không phù hợp, làm chậm tốc độ xử lí và tính toán Do đó phần mềm này chỉ đƣợc sử dụng nhằm mục đích hiển thị đồ thị

Từ chương trình nguồn ban đầu của SocNetV, các tính năng mới được bổ sung:

+ Tích hợp thêm thƣ viện SNAP vào SocNetV, nhằm thay đổi cấu trúc dữ liệu và cách thức xử lí dữ liệu để tăng hiệu quả tính toán Tuy nhiên, trong bản sửa đổi này vẫn sử dụng cùng lúc 2 loại cấu trúc dữ liệu của Snap và SocNetV

+ Bổ sung thêm Menu ZingMe để thực hiện kết nối với cơ sở dữ liệu ZingMe nhằm xây dựng đồ thị từ dữ liệu được lưu sẵn

+ Bổ sung thêm tính năng BuildGraph nhằm tạo đồ thị con từ đồ thị đầy đủ ZingMe, do khả năng hiển thị hàng triệu đỉnh là không thể và không giúp ích cho việc hình dung về cấu trúc đồ thị Do đó đồ thị con này đƣợc xây dựng từ việc lấy ngẫu nhiên một đỉnh có bậc k và cấp độ mở rộng từ đỉnh này

+ Bổ sung thêm tính năng hiển thị đồ thị theo giải thuật Girvan-Newman:

B1 Tính Betweenness của tất cả các cạnh trong đồ thị

B2 Cạnh có Betweenness lớn nhất bị xóa khỏi đồ thị

B3 Tính toán lại Betweenness của các cạnh có liên quan đến cạnh bị xóa

B4 Lặp lại B2 cho đến khi không còn cạnh nào trong đồ thị

Các hình bên dưới hiển thị đồ thị xã hội theo giải thuật Girvan-Newman hoặc hiển thị theo những định dạng có sẵn trong chương trình SocNetV.

Hình 5.3.1 Hiển thị Social graph theo giải thuật Girvan-Newman

Hình 5.3.2 Hiển thị Social graph theo bậc xã hội

Bảng thống kê thời gian thực thi các chương trình phân tích

Bảng 5.4.1 thống kê thời gian thực thi các đoạn chương trình phân tích

Nội dung Thời gian Ghi chú

Tìm kiếm thành phần liên thông lớn nhất 16 giờ Chạy thủ tục phân tích trên cơ sở dữ liệu

Tải đồ thị từ CSDL lên bộ nhớ để chạy chương trình phân tích 30 phút Đường đi trung bình, đường kính, bán kính đồ thị 17 giờ Chỉ tính cho 1000 đỉnh Trung bình mỗi đỉnh tốn 1 phút Phân tích Power-law ( )

Social graph 12 giờ Dùng Matlab để phân tích

Phân tích Power-law ( ) Interaction graph 7 giờ Dùng Matlab để phân tích Tính hệ số cụm Social graph 7 phút

Tính hệ số kết hợp r Social graph 5 phút

Tính đường phân bố k nn Social graph 7 phút

Tính ma trận JDD Social graph 7 phút Sự tương quan giữa bậc người dùng với mức năng động 10 phút Tính trên CSDL

Phân bố tương tác theo mức năng động nhóm người dùng 10 phút Tính trên CSDL

Phân bố tỉ lệ người dùng theo tương tác nhóm bạn bè 10 phút Tính trên CSDL Phân bố tương tác theo mức năng động nhóm người dùng 10 phút Tính trên CSDL Phân bố tương tác theo nhóm bậc xã hội 10 phút Tính trên CSDL

Phân bố số lượng tương tác trên cặp người dùng 10 phút Tính trên CSDL Bậc xã hội và hành vi người dùng 10 phút Tính trên CSDL

Tương quan bậc xã hội người dùng với thời điểm online 10 phút Tính trên CSDL Sự khác biệt hành vi người dùng trong từng nhóm bậc xã hội

Bảng 5.4.1 Thống kê thời gian thực thi các chương trình phân tích

Ngày đăng: 24/09/2024, 14:52

HÌNH ẢNH LIÊN QUAN

Đồ thị tương tác         817,430                 2,279,375 - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
th ị tương tác 817,430 2,279,375 (Trang 27)
Bảng 3.2.2 thống kê số lượng người dùng theo từng nhóm bậc. Người dùng  có bậc càng cao thì càng đóng vai trò quan trọng trong MXH [21] - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Bảng 3.2.2 thống kê số lượng người dùng theo từng nhóm bậc. Người dùng có bậc càng cao thì càng đóng vai trò quan trọng trong MXH [21] (Trang 28)
Hình 3.4.2 Log-log bậc người dùng với tần xuất số lượng người dùng - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.4.2 Log-log bậc người dùng với tần xuất số lượng người dùng (Trang 29)
Hình 3.4.3 Log-log hàm bù phân phối tích lũy bậc ZingMe (CCDF) - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.4.3 Log-log hàm bù phân phối tích lũy bậc ZingMe (CCDF) (Trang 30)
Hình 3.4.4 Hàm CCDF của Flickr, LiveJournal, Orkut, Youtube - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.4.4 Hàm CCDF của Flickr, LiveJournal, Orkut, Youtube (Trang 31)
Bảng 3.4.4 Hệ số α và D của Web, Flickr, LiveJournal, Orkut, YouTube - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Bảng 3.4.4 Hệ số α và D của Web, Flickr, LiveJournal, Orkut, YouTube (Trang 32)
Hình  3.4.5  biễu  diễn  hàm  phân  phối  tích  lũy  bậc  của  ZingMe  và  các  MXH - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
nh 3.4.5 biễu diễn hàm phân phối tích lũy bậc của ZingMe và các MXH (Trang 32)
Hình 3.5.1 Bậc kết hợp đồ thị xã hội - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.5.1 Bậc kết hợp đồ thị xã hội (Trang 33)
Hình 3.5.2 Bậc kết hợp đồ thị tương tác - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.5.2 Bậc kết hợp đồ thị tương tác (Trang 34)
Hình 3.6.1 Bậc liên kết trung bình k nn  của đồ thị ZingMe - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.6.1 Bậc liên kết trung bình k nn của đồ thị ZingMe (Trang 35)
Hình 3.6.2 Bậc liên kết trung bình k nn  của MXH khác - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.6.2 Bậc liên kết trung bình k nn của MXH khác (Trang 35)
Hình 3.8.1 Đường phân bố hệ số cụm C theo bậc người dùng của ZingMe - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 3.8.1 Đường phân bố hệ số cụm C theo bậc người dùng của ZingMe (Trang 38)
Hình  3.8.1  và  3.8.2  biểu  diễn  đường  phân  bố  hệ  số  cụm  C  theo  bậc  người - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
nh 3.8.1 và 3.8.2 biểu diễn đường phân bố hệ số cụm C theo bậc người (Trang 38)
Bảng 3.8.1 Hệ số cụm trung bình của các MXH - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Bảng 3.8.1 Hệ số cụm trung bình của các MXH (Trang 39)
Hình 4.2.1 Hàm phân bố tích lũy tỉ lệ số lượng comments theo bậc người dùng - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.2.1 Hàm phân bố tích lũy tỉ lệ số lượng comments theo bậc người dùng (Trang 43)
Hình 4.2.2 Đường tần xuất tỉ lệ comments theo bậc người dùng - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.2.2 Đường tần xuất tỉ lệ comments theo bậc người dùng (Trang 44)
Hình 4.3.1 Phân bố tích lũy tỉ lệ comments theo mức năng động người dùng - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.3.1 Phân bố tích lũy tỉ lệ comments theo mức năng động người dùng (Trang 45)
Hình 4.4.1 Phân bố tích lũy tỉ lệ người dùng theo tương tác nhóm bạn bè - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.4.1 Phân bố tích lũy tỉ lệ người dùng theo tương tác nhóm bạn bè (Trang 46)
Hình 4.4.2 Tỉ lệ phân bổ người dùng theo số lượng bạn bè - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.4.2 Tỉ lệ phân bổ người dùng theo số lượng bạn bè (Trang 47)
Hình 4.5.1 Phân bố tích lũy tương tác theo các nhóm bạn bè - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.5.1 Phân bố tích lũy tương tác theo các nhóm bạn bè (Trang 48)
Hình 4.5.2 Tỉ lệ phân bố tương tác theo số bạn bè liên quan - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.5.2 Tỉ lệ phân bố tương tác theo số bạn bè liên quan (Trang 49)
Hình 4.6.1 Biểu diễn số tương tác theo cặp bậc xã hội - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.6.1 Biểu diễn số tương tác theo cặp bậc xã hội (Trang 50)
Hình 4.7.1 Phân bố tích lũy tỉ lệ cặp người dùng theo số lượng comments - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.7.1 Phân bố tích lũy tỉ lệ cặp người dùng theo số lượng comments (Trang 51)
Hình 4.8.1 Bậc xã hội và hành vi người dùng - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.8.1 Bậc xã hội và hành vi người dùng (Trang 52)
Hình 4.9.1 Sự khác biệt hành vi người dùng trong từng nhóm bậc xã hội - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.9.1 Sự khác biệt hành vi người dùng trong từng nhóm bậc xã hội (Trang 53)
Hình  4.9.1  biểu  diễn  sự  khác  biệt  về  hành  vi  người  dùng  SelfWall, - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
nh 4.9.1 biểu diễn sự khác biệt về hành vi người dùng SelfWall, (Trang 54)
Hình 4.10.1 biểu diễn tỉ lệ số người dùng trong từng nhóm bậc xã hội online - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 4.10.1 biểu diễn tỉ lệ số người dùng trong từng nhóm bậc xã hội online (Trang 55)
Hình 5.3.1 Hiển thị Social graph theo giải thuật Girvan-Newman - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 5.3.1 Hiển thị Social graph theo giải thuật Girvan-Newman (Trang 65)
Hình 5.3.2 Hiển thị Social graph theo bậc xã hội - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
Hình 5.3.2 Hiển thị Social graph theo bậc xã hội (Trang 65)
5.4. Bảng thống kê thời gian thực thi các chương trình phân tích - Luận văn thạc sĩ Khoa học máy tính: Phân tích mạng xã hội Zingme
5.4. Bảng thống kê thời gian thực thi các chương trình phân tích (Trang 66)