phÁt hi Ện c Ộng ĐỒng s Ử dỤng thu t toÁn conga vÀ...

54
ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGHVũ ThThu Hương PHÁT HIN CNG ĐỒNG SDNG THUT TOÁN CONGA VÀ KHAI PHÁ QUAN ĐIM CNG ĐỒNG TRÊN MNG XÃ HI KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY Ngành: Công nghthông tin HÀ NI - 2012

Upload: others

Post on 27-Dec-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Vũ Thị Thu Hương

PHÁT HIỆN CỘNG ĐỒNG SỬ DỤNG THUẬT TOÁN

CONGA VÀ KHAI PHÁ QUAN ĐIỂM CỘNG ĐỒNG

TRÊN MẠNG XÃ HỘI

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

HÀ NỘI - 2012

Page 2: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Vũ Thị Thu Hương

PHÁT HIỆN CỘNG ĐỒNG SỬ DỤNG THUẬT TOÁN

CONGA VÀ KHAI PHÁ QUAN ĐIỂM CỘNG ĐỒNG

TRÊN MẠNG XÃ HỘI

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

Cán bộ hướng dẫn: PSG.TS Hà Quang Thụy

Cán bộ đồng hướng dẫn: ThS Trần Mai Vũ

HÀ NỘI - 2012

Page 3: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

VIETNAM NATIONAL UNIVERSITY, HANOI

UNIVERITY OF ENGINEERING AND TECHNOLOGY

Vu Thi Thu Huong

COMMUNITY DETECTION BY CONGA ALGORITHM

AND COMMUNITIES’ OPINION MINING

ON SOCIAL NETWORK

Major: Information of Technology

Supervior: Assor. Prof. Thuy Ha Quang

Co-Supervior: Master. Vu Tran Mai

HA NOI - 2012

Page 4: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn chân thành và sâu sắc nhất tới thầy Hà Quang

Thụy cùng thầy Trần Mai Vũ, người đã trực tiếp hướng dẫn tận tình và đóng góp

những ý kiến quý báu trong suốt quá trình em làm khóa luận tốt nghiệp này.

Em xin gửi lời cảm ơn tới các anh chị và các bạn trong phòng thí nghiệm KT-

LAB, những người đã tận tình giúp đỡ em trong quá trình làm khóa luận

Tiếp theo em xin gửi lời cảm ơn đến đến các thầy cô giáo trường Đại Học Công

Nghệ - Đại Học Quốc Gia Hà Nội, đã tận tâm truyền đạt những kiến thức quý báu làm

nền tảng để em bước vào đời.

Cuối cùng, em xin được cảm ơn cha mẹ, bạn bè và người thân, những người đã ở

bên em, khuyến khích và động viên em trong cuộc sống, học tập.

Sinh viên

Vũ Thị Thu Hương

Page 5: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

PHÁT HIỆN CỘNG ĐỒNG SỬ DỤNG THUẬT TOÁN CONGA

VÀ KHAI PHÁ QUAN ĐIỂM CỘNG ĐỒNG

Vũ Thị Thu Hương

Khóa QH-2008-I/CQ, ngành Công nghệ thông tin

Tóm tắt Khóa luận tốt nghiệp:

Sự phát triển nhanh chóng của các mạng xã hội kéo theo sự bùng nổ dữ liệu trên mạng

xã hội. Đây là một nguồn thông tin hết sức hữu ích, liên tục được cập nhật. Một đặc trưng bản

chất của mạng xã hội là tính cộng đồng. Việc đánh giá quan điểm cộng đồng mang lại cái

nhìn rõ ràng hơn về từng lớp đối tượng cần được hướng đến.

Khóa luận này tập trung nghiên cứu giải quyết bài toán trên dựa trên thuật toán CONGA

(Cluster Overlapping Newman Girvan Algorithm) phát hiện cộng đồng do Steve Gregory đề

xuất năm 2007 và học máy Naïve Bayes. Khóa luận đề nghị một mô hình kết hợp hai thuật

toán trên vào việc phát hiện và đánh giá quan điểm cộng đồng trên mạng xã hội. Hệ thống

được chia thành hai phần chính: Phần một – phát hiện cộng đồng trong Twitter được xây

dựng dựa trên phần mềm CONGA (Steve Gregory, 2010) và Twitter API (Yusuke Yamamoto

và cộng sự, 2009). Phần hai – phân lớp quan điểm cộng đồng được xây dựng dựa trên học

máy Naïve Bayes. Kết quả thực nghiệm mô hình cho kết quả phù hợp.

Từ khóa: Cộng đồng mạng xã hội, CONGA, quan điểm cộng đồng, Naïve Bayes.

Page 6: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

LỜI CAM ĐOAN

Tôi xin cam đoan mô hình phát hiện và khai phá quan điểm cộng đồng trong

mạng xã hội trực tuyến Twitter, thực nghiệm dựa trên thuật toán CONGA và Naïve

Bayes được trình bày trong khóa luận là do tôi thực hiện dưới sự hướng dẫn của PGS.

TS. Hà Quang Thụy, ThS. Trần Mai Vũ.

Tất cả các bài báo, khóa luận, tài liệu, công cụ phần mềm của các tác giả khác

được sử dụng lại trong khóa luận này đều được chỉ dẫn tường minh về tác giả và đều

có trong danh sách tài liệu tham khảo.

Hà Nội, ngày 18 tháng 5 năm 2012

Sinh viên

Vũ Thị Thu Hương

Page 7: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

MỤC LỤC

Chương 1. TỔNG QUAN VỀ MẠNG XÃ HỘI, BÀI TOÁN PHÁT HIỆN VÀ ĐÁNH

GIÁ QUAN ĐIỂM CỘNG ĐỒNG TRÊN MẠNG XÃ HỘI ........................................ 2

1.1. Tổng quan về mạng xã hội. ............................................................................. 2

1.2. Bài toán phát hiện cộng đồng trên mạng xã hội. .............................................. 4

1.2.1. Cộng đồng mạng xã hội ........................................................................... 4

1.2.2. Giới thiệu bài toán phát hiện cộng đồng .................................................. 5

1.3. Bài toán khai phá quan điểm người dùng mạng xã hội. ................................... 8

1.4. Kết luận chương 1 ........................................................................................ 11

Chương 2. THUẬT TOÁN PHÁT HIỆN CỘNG ĐỒNG VÀ ĐÁNH GIÁ QUAN

ĐIỂM CỘNG ĐỒNG TRÊN MẠNG XÃ HỘI .......................................................... 12

2.1. Họ thuật toán phát hiện cộng đồng GIRVAN-NEWMAN. ........................... 12

2.1.1. Thuật toán Girvan-Newman ................................................................... 12

2.1.2. Thuật toán CONGA ................................................................................ 15

2.2. Đánh giá quan điểm sử dụng Học máy xác suất Bayes .................................. 19

2.1.1. Học máy xác suất Bayes ......................................................................... 19

2.1.2. Phân lớp quan điểm sử dụng Bayes ........................................................ 20

2.3. Kết luận chương 2 ........................................................................................ 23

Chương 3. MÔ HÌNH ĐÁNH GIÁ QUAN ĐIỂM CỘNG ĐỒNG TRÊN MẠNG XÃ

HỘI ........................................................................................................................... 24

3.1. Mô hình đánh giá quan điểm cộng đồng trên Twitter .................................... 24

3.2. Pha 1: Phát hiên cộng đồng trên mạng xã hội ................................................ 27

3.3. Pha 2: Khai phá quan điểm cộng đồng trên mạng xã hội ............................... 30

3.4. Kết luận chương 3 ........................................................................................ 33

Chương 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ ........................................................... 34

4.1. Mô tả thực nghiệm ........................................................................................ 34

4.1.1. Mô tả dữ liệu .......................................................................................... 34

Page 8: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

4.1.2. Môi trường thực nghiệm ......................................................................... 35

4.1.3. Các công cụ và phầm mềm sử dụng ....................................................... 35

4.2. Thực nghiệm và đánh giá .............................................................................. 36

4.1.1. Thực nghiệm .......................................................................................... 36

4.1.2. Đánh giá ................................................................................................ 38

4.3. Kết luận chương 4 ........................................................................................ 40

KẾT LUẬN VÀ PHƯƠNG HƯỚNG ........................................................................ 41

TÀI LIỆU THAM KHẢO ......................................................................................... 42

Page 9: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

DANH SÁCH HÌNH VẼ

Hình 1.1: Đồ thị sử dụng mạng xã hội trên thế giới (tổng hợp tháng 11 năm 2011) ..... 3

Hình 1.2: Cộng đồng mạng xã hội đơn giản với 3 cộng đồng ....................................... 4

Hình 1.3.a: Mô hình mạng lưới các thành viên Câu lạc bộ Karate (Zachary, 1977) ...... 5

Hình 1.3.b: Mô hình mạng lưới cộng tác của các nhà khoa học làm việc tại SFI .......... 6

Hình 1.3.c: Mạng biểu diễn loài cá heo sống ở Doubtful Sound, New Zealand ............ 7

Hình 1.4: Lược đồ chung xây dựng bộ phân lớp văn bản ........................................... 10

Hình 2.1: Ví dụ về phát hiện cộng đồng sử dụng Girven-Newman ............................. 13

Hình 2.2: Ví dụ trường hợp không phân tách đỉnh v trong đồ thị ............................... 16

Hình 2.3: Ví dụ về phép phân chia một đỉnh trong đồ thị ........................................... 17

Hình 2.4: Tìm phép phân chia tối ưu .......................................................................... 18

Hình 3.1: Phân bố sử dụng Twitter trên thế giới ......................................................... 24

Hình 3.2: Mô hình đề xuất giải quyết bài toán phát hiện và khai phá quan điểm cộng

đồng trên mô hình mạng xã hội Twitter ..................................................................... 26

Hình 3.3: Thông tin ID người dùng twitter cùng follow @linkhay ............................. 27

Hình 3.4: Mạng xã hội xây dựng trên danh sách những người dùng đã thu thập. ........ 28

Hình 3.5: Cộng đồng mạng xã hội sau khi qua CONGA ............................................ 29

Hình 4.1: Kết quả phân chia cộng đồng ..................................................................... 36

Hình 4.2: Cấu trúc đồ thị được chia thành 3 cộng đồng con ....................................... 37

Page 10: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

DANH SÁCH BẢNG BIỂU

Bảng 1: Bảng ký hiệu ................................................................................................ 31

Bảng 2: Môi trường thực nghiệm (phần cứng và hệ điều hành) .................................. 35

Bảng 3: Các công cụ và phần mềm sử dụng ............................................................... 35

Bảng 4: Tập dữ liệu huấn luyện ................................................................................. 37

Bảng 5: Kết quả quan điểm cộng đồng với sự kiện 1: ................................................ 38

Bảng 6: Kết quả quan điểm cộng đồng với sự kiện 2: ................................................ 38

Bảng 7: Kết quả quan điểm cộng đồng với sự kiện 3: ................................................ 38

Bảng 8: Kết quả đánh giá phát hiện cộng đồng mạng xã hội sử dụng CONGA .......... 38

Bảng 9: Kết quả đánh giá bộ phân lớp Naïve Bayes ................................................... 39

Page 11: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

DANH SÁCH CÁC TỪ VIẾT TẮT

TFIDF Term Frequency Inverse Document Frequency

Chỉ số TF-IDF

CONGA Cluster Overlap Newman-Girvan Algorithm

Thuật toán cải tiến Newman-Girvan phát hiện cộng đồng giao nhau

GN Girven-Newman

Thuật toán phát hiện cộng đồng Girven-Newman

Page 12: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

1

LỜI MỞ ĐẦU

Ngày nay, các nguồn thông tin từ tương tác xã hội đang đóng một vai trò khá lớn

trong việc phát hiện, theo dõi và đánh giá một sự kiện, hiện tượng. Nguồn tin đa dạng,

tổng hợp với một số lượng lớn, liên tục thay đổi và phát triển theo thời gian đã khiến

cho lượng dữ liệu này trở nên đáng tin cậy và mang giá trị sử dụng lớn. xx. Việc đánh

giá một sự vật, hiện tượng theo từng cộng đồng có ý nghĩa lớn trong việc xác định mối

quan tâm của từng nhóm đối tượng.

Xx bài toán phát hiện cộng đồng .. CONGA

Khai phá quan điểm xx Bayes

Nội dung chính của khóa luận tìm hiểu về hai bài toán con: phát hiện cộng đồng

trong mạng xã hội, và đánh giá quan điểm theo cộng đồng xx Twitter. Từ đó đưa ra

giải pháp xây dựng mô hình cho bài toán tổng hợp từ hai bài toán con trên.

Khóa luận được chia thành các phần chính như sau:

Chương 1: Giới thiệu tổng quan về mạng xã hội, bài toán phát hiện và đánh giá quan

điểm cộng đồng trên mạng xã hội.

Chương 2: Trình bày thuật toán phát hiện cộng đồng CONGA và thuật toán đánh giá

quan điểm trên mạng xã hội sử dụng học máy Naïve Bayes.

Chương 3: Mô hình đề xuất phát hiện cộng đồng bằng thuật toán CONGA và khai phá

quan điểm cộng đồng bằng Naïve Bayes.

Chương 4: Trình bày thực nghiệm về phát hiện và khai phá quan điểm cộng đồng

cùng follow @linkhay với sự kiện được đưa ra trên mạng xã hội Twitter.

Page 13: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

2

Chương 1. MẠNG XÃ HỘI, PHÁT HIỆN VÀ ĐÁNH GIÁ

QUAN ĐIỂM CỘNG ĐỒNG TRÊN MẠNG XÃ HỘI

1.1. Giới thiệu khái quát về mạng xã hội

Theo David Easley và Jon Kleinberg [4], trong thập kỉ qua, lĩnh vực phát triển

công nghệ đã bắt đầu quan tâm đến sự phức tạp của xã hội hiện đại. Trọng tâm được

hướng đến của mối quan tâm này là ý tưởng của một mạng xã hội – một mô hình của

các mối liên kết giữa một tập hợp của các sự vật, sự việc, con người, tổ chức… Chủ đề

về mạng xã hội ngày càng xuất hiện nhiều trong các cuộc thảo luận và bình luận trên

những phạm vi lớn.

Thuật ngữ “mạng xã hội”, lần đầu tiên được Barnes nhắc đến vào năm 1954, đã

đánh dấu sự phát triển chính thức của việc phân tích cấu trúc mạng xã hội. Mô hình

mạng xã hội thực tế xuất hiện lần đầu tiên năm 1995 với sự ra đời của trang Classmate

với mục đích kết nối bạn học. Theo [4], Garton và cộng sự (1997) mạng xã hội là “một

tập hợp những người được kết nối với nhau bằng một tập hợp các mối quan hệ, ví dụ

như tình bạn, cộng sự hay trao đổi thông tin”.

Ngày nay, mạng xã hội đang ngày càng trở thành một nhu cầu khá phổ biến của

nhiều người, đặc biệt là giới trẻ trên toàn thế giới. Nó được coi là cuộc sống ảo của con

người trong xã hội hiện đại. Đây không chỉ là nơi để con người trao đổi thông tin, giải

trí, kết nối bạn bè, mà theo thời gian nó đã nhanh chóng trở thành một kênh cung cấp

những tin tức hàng ngày. Mạng xã hội có những tính năng như tán gẫu, thư điện tử,

phim ảnh, voice chat, chia sẻ file, blog và xã luận. Mạng đã đổi mới hoàn toàn cách cư

dân mạng liên kết với nhau và trở thành một phần tất yếu của mỗi ngày cho hàng trăm

triệu thành viên khắp thế giới. Các dịch vụ này có nhiều phương cách để các thành

viên tìm kiếm bạn bè, đối tác: dựa theo nhóm (ví dụ như tên trường hoặc tên thành

phố), dựa trên thông tin cá nhân (như địa chỉ e-mail hoặc screen name), hoặc dựa trên

sở thích cá nhân (như thể thao, phim ảnh, sách báo, hoặc ca nhạc), lĩnh vực quan tâm:

kinh doanh, mua bán... Hiện nay thế giới có hàng trăm mạng xã hội khác nhau, với

MySpace và Facebook nổi tiếng nhất trong thị trường Bắc Mỹ và Tây Âu; Orkut và

Hi5 tại Nam Mỹ; Friendster tại Châu Á và các đảo quốc Thái Bình Dương. Mạng xã

hội khác gặt hái được thành công đáng kể theo vùng miền như Bebo tại Anh Quốc,

CyWorld tại Hàn Quốc, Mixi tại Nhật Bản và Zing me tại Việt Nam.

Page 14: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

3

Hình 1.1: Đồ thị sử dụng mạng xã hội trên thế giới (tổng hợp tháng 11 năm 2011)

Cấu trúc mạng xã hội được cấu tạo nên từ các nút mạng và các liên kết. Nút

mạng là một thực thể, có thể là một cá nhân, một doanh nghiệp hay một tổ chức nào

đó. Liên kết là mối quan hệ giữa các thực thể đó, có thể là mối quan hệ bạn bè, đồng

nghiệp, họ hàng... Trong mạng có nhiều kiểu liên kết như liên kết vô hướng, liên kết

một chiều, liên kết hai chiều… Ở dạng đơn giản nhất, mạng xã hội được biểu diễn

dưới dạng một đồ thị vô hướng mà các mối liên kết phù hợp giữa các nút. Ta có thể

biểu diễn mạng liên kết này bằng một biểu đồ mà các nút được biểu diễn bởi các điểm,

còn các liên kết được biểu diễn bởi các đoạn thẳng. Trong đó với hai điểm nút A và B

có mối quan hệ qua lại. VD: A ở cùng nhà với B, B ở cùng nhà với A. Các mối liên hệ

còn có thể biểu diễn liên kết có hướng (hai chiều hoặc một chiều). VD: A biết B nhưng

B không biết A… Ngoài ra, các liên kết này còn có thể đánh trọng số để biểu diễn độ

mạnh yếu của mối liên kết.

Mạng xã hội được biểu diễn chủ yếu dưới hai dạng: ma trận kề và đồ thị. Trong

bài toán phân tích mạng, các biểu diễn mạng theo dạng đồ thị được ưu tiên sử dụng

nhiều hơn. Trong đồ thị biểu diễn mạng xã hội, các đỉnh là các nút mạng, còn các cạnh

được xây dựng dựa theo các liên kết. Cùng với đó, tùy theo đặc điểm của từng liên kết

mà các cạnh có thể là vô hướng, có hướng, có trọng số… Trong mạng xã hội thực tế,

sự phân bố của các cạnh là không đều, với mức độ tập trung cao của các cạnh trong

một số nhóm các đỉnh đặc biệt, và giữa các nhóm đó số lượng cạnh tập trung là thấp.

Page 15: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

4

Một số nhóm các đỉnh có liên kết chặt chẽ với nhau thành các cụm, và giữa các cụm

đó được nối với nhau chỉ bằng một vài cạnh khác. Tính chất đó của các mạng trên thực

tế được gọi là tính cộng đồng (community) hay còn gọi là sự phân cụm [9] Đây là một

tính chất quan trọng của mạng xã hội và đang ngày càng được nhiều nhà khoa học

quan tâm nghiên cứu.

1.2. Bài toán phát hiện cộng đồng trên mạng xã hội.

1.2.1.Cộng đồng mạng xã hội

Theo Simmel (1955) thì cộng đồng là một nhóm các cá nhân trên mạng, tập các

thực thể có những tính chất tương tự nhau và cùng đóng một vai trò trong mạng xã hội.

Mạng xã hội là những ví dụ mô hình của đồ thị các cộng đồng. Các cộng đồng trên

thực tế đề cập đến một bối cảnh xã hội xác định. Con người có xu hướng kết hợp lại

với nhau, hình thành các nhóm trong cùng một môi trường làm việc, gia đình, bạn

bè…

Hình 1.2: Cộng đồng mạng xã hội đơn giản với 3 cộng đồng

Trong hình 1.2, tôi đưa ra một ví dụ đơn giản về một cách phân chia mạng xã hội

thành 3 cộng đồng con đơn giản.

Trong xã hội hiện nay xuất hiện nhiều nhóm hoặc tổ chức với kích cỡ khác nhau,

ví dụ như gia đình, nhóm các bạn bè hoặc đồng nghiệp, thành phố, quốc gia… Sự

khuếch tán của Internet ngày nay cũng sinh ra nhiều nhóm ảo trên Web, hay còn được

gọi là các cộng đồng trực tuyến. Các cộng đồng xã hội đã được nghiên cứu trong một

thời gian rất dài và thường xuyên xuất hiện trong nhiều các hệ thống mạng trong sinh

học, khoa học máy tính, công nghệ, chính trị, kinh tế,…

Page 16: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

5

1.2.2.Giới thiệu bài toán phát hiện cộng đồng

Bài toán: Phát hiện cộng đồng trong mạng xã hội và đưa ra danh sách những nút mạng

thuộc từng cộng đồng đó.

Đầu vào: Đồ thị mạng xã hội G = (V, E) gồm tập V có đỉnh: v1, v2,…,vn và tập E các

liên kết E = {(vi,vj)}.

Đầu ra: Tập các cộng đồng Ci và tập hợp các đỉnh thuộc các cộng đồng đó: {C1,

C2,...,Cn}

Mục tiêu của bài toán là từ các mạng xã hội cho trước, phát hiện được các cấu

trúc cộng đồng nằm trong đó và tìm hiểu về mối liên hệ bên trong các cộng đồng cũng

như giữa các cộng đồng với nhau, mối liên hệ đó có ảnh hưởng thế nào đến cấu trúc

của toàn mạng xã hội.

Theo [13], một tập hợp các đỉnh trên đồ thị được coi là một cộng đồng nếu mật

độ cạnh bên trong nó cao hơn so với mật độ của các cạnh giữa đỉnh của nó và những

cạnh bên ngoài. Dưới đây là một vài ví dụ khá điển hình về mạng xã hội:

Hình 1.3.a: Mô hình mạng lưới các thành viên Câu lạc bộ Karate (Zachary, 1977)

Hình 1.3.a là mạng lưới của các thành viên trong câu lạc bộ Karate (Zachary,

1977). [9] Đây làm một đồ thị nổi tiếng thường xuyên được sử dụng như là một điểm

chuNn để kiểm tra phát hiện cộng đồng. Nó bao gồm 34 đỉnh tương ứng là các thành

viên của một câu lạc bộ Karate tại Hoa Kì. Người ta đã quát sát mạng xã hội này trong

khoảng ba năm, các cạnh kết nối cá nhân được quan sát thông qua các tương tác bên

ngoài và các hoạt động của Câu lạc bộ. Theo quan sát nhận thấy có sự tập trung mức

độ liên kết cao tại một số điểm: Chủ tịch Câu lạc bộ và Huấn luyện viên, điều này đã

phân chia mạng ra thành hai nhóm khá rõ ràng. Nhìn vào hình 1.3.a ta cũng dễ dàng

Page 17: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

6

nhận ra được các tập trung liên kết tại đỉnh 33 và 34 (Chủ tich Câu lạc bộ) và đỉnh 1

(Huấn luyện viên). Ngoài ra, ta cũng dễ dàng xác định được những đỉnh nằm giữa hai

cấu trúc chính như đỉnh 3, đỉnh 9, đỉnh 10. Câu hỏi đặt ra ở đây là liệu từ bản gốc cấu

trúc mạng, liệu có thể suy được ra các thành phần của hai nhóm này hay không?

Hình 1.3.b: Mô hình mạng lưới cộng tác của các nhà khoa học làm việc tại SFI

Hình 1.3.b hiển thị các thành phần kết nối lớn nhất trong mạng lưới các cộng tác

của các nhà khoa học làm việc tại Viện Santa Fe (SFI). Đồ thị bao gồm 118 đỉnh đại

diện cho các nhà khoa học cư trú tại SFI và các cộng tác viên của họ. Các cạnh được

đặt vào giữa các nhà khoa học đã công bố cùng với nhau ít nhất một bài báo. Ở mạng

này ta quan sát được rất nhiều cộng đồng,mỗi cộng đồng biểu hiện cho các tất cả tác

giả của một bài báo. Mặt khác ta cũng thấy tồn tại chỉ một vài kết nối giữa hầu hết các

cộng đồng trong mạng trên. Các đỉnh cùng màu là kết quả phân tích và phát hiện cộng

đồng sử dụng thuật toán Girvan và Newman, kết quả này cũng gần tương tự so với sự

phân chia theo các lĩnh vực nghiên cứu của viện.

Ví dụ cuối cùng ta xét đến ở đây đó là mạng biểu diễn loài cá heo sống ở

Doubtful Sound, New Zealand được phân tích bởi Lusseau năm 2003 (Hình 1.3.c)

Mạng có tất cả 62 đỉnh và một cạnh trong đồ thị nối giữa 2 đỉnh biểu diễn cho 2 con cá

heo xuất hiện thường xuyên với nhau hơn so với mức độ bình thường dự kiến. Các con

cá heo chia thành 2 nhóm sau khi một con cá heo bỏ đi khỏi nơi ở hiện tại một khoảng

thời gian ( được biểu diễn bởi hình vuông và hình tròn trong hình vẽ ). Mỗi nhóm

trong đồ thị là tương đối gắn kết, với một vài đồ thị con đầy đủ trong đó và chỉ có 6

Page 18: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

7

cạnh nối giữa các nhóm khác nhau. Mạng nói trên giống như mạng của Zachary cũng

thường được sử dụng để cài đặt và đánh giá các thuật toán phát hiện cộng đồng trong

mạng xã hội.

Hình 1.3.c: Mạng biểu diễn loài cá heo sống ở Doubtful Sound, New Zealand

[6] Như vậy nhiều dữ liệu có cấu trúc khoa học đều có thể được biểu diễn bằng

mạng, bằng tập hợp các nút hay đỉnh được nối với nhau theo cặp bằng các liên kết,

như mạng sinh học (lưới thần kinh, lưới thức ăn…), sự hợp tác của các nhà nghiên

cứu, world wide web… Một trong số những đặc điểm gắn kết các mạng này lại với

nhau đó là cấu trúc cộng đồng, trong đó tồn tại các nhóm có mật độ kết nối mạnh của

các đỉnh trong nhóm, và các kết nối yếu giữa các nhóm. Từ đó, việc xác định cộng

đồng có thể được xem như là việc tìm kiếm các cụm nút phân nhóm. Công việc này

liên quan đến việc phân nhóm trong dữ liệu, mặc dù phương tiện sử dụng có thể khác

nhau.

Là một lĩnh vực nghiên cứu mới, phát hiện cộng đồng, trong đó tập trung vào

việc phát hiện và tìm ra đặc tính của cấu trúc mạng đã nhận được sự chú ý đáng kể

trong những năm vừa qua. Một cộng đồng có thể được định nghĩa như một nhóm của

các thực thể dùng chia sẻ những tài sản tương tự nhau, hoặc kết nối với nhau thông

Page 19: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

8

qua mối quan hệ được lựa chọn, Xác định các kết nối và định vị các thực thể trong

cộng đồng khác nhau là mục tiêu chính của nghiên cứu khai phá cộng đồng.

1.3. Bài toán khai phá quan điểm người dùng mạng xã hội.

Bài toán: Đánh giá quan điểm của người dùng trên mạng xã hội về cùng một sự kiện,

hiện tượng.

Đầu vào: Quan điểm người dùng trên mạng xã hội.

Đầu ra: Phân lớp các quan điểm đồng tình hay không đồng tình với sự kiện được đưa

ra.

Nghiên cứu các tính chất và trích chọn những thông tin quan trọng từ các cộng

đồng trực tuyến như từ các diễn đàn (forums), blogs, mạng tin nhắn nhanh (instant

mesenger networks) và mạng xã hội trực tuyến (online social networks) là một trong

những hướng thu hút được sự chú ý của cộng đồng khai phá web hiện nay. Thông tin

tiềm Nn từ các cộng đồng này là rất đa dạng, có sự phối hợp và góp sức hàng ngày, của

hàng triệu thành viên, và do đó nếu nắm bắt được những thông tin này, có thể hiểu

được xu hướng, thị hiếu, quan điểm của người dùng Web và theo đó sẽ có những điều

chỉnh, cải tiến kịp thời để đáp ứng nhu cầu của người dùng Web. Ví dụ, từ những nhận

xét, đánh giá các mặt hàng, các sản phNm mới của người tiêu dùng được đăng tải trên

một diễn đàn hay blog nào đó có thể giúp chúng ta trích chọn những ý kiến, để từ đó

có thể biết được mức độ chấp nhận và thỏa mãn của khách hàng. Ta gọi đây là trích

chọn ý kiến (opinion mining/extraction) [2]. Những thông tin liên quan đến các cộng

đồng người sử dụng trên diễn đàn, blogs, các mạng xã hội ( Facebook, Twitter,

MySpace.. ) và thậm chí là các mạng tin nhắn nhanh (online instant messenging

networks) đều chứa một hàm lượng tri thức cộng đồng cao. Trích chọn, tổng hợp và

tìm ra được những thông tin hữu ích trên đó, giúp nắm bắt được cả những thông tin, tri

thức cụ thể và những xu hướng chung của thế giới trực tuyến.

Theo BingLiu và cộng sự, 2010 [2] quan niệm rằng quan điểm là những thể hiện

chủ quan, miêu tả tình cảm, ý kiến hay những cảm xúc của con người hướng đến thực

thể, sự kiện hay thuộc tính. Khai phá quan điểm là lĩnh vực thu hút sự quan tâm của rất

nhiều nhà khoa học, nhà sản xuất và các công ty. Theo [2], khai phá quan điểm hay

còn gọi là phân lớp nhận định có ba bài toán điển hình là :

- Phân lớp quan điểm

- Khái phá và tổng hợp quan điểm dựa trên đặc trưng

- Khai phá quan hệ (so sánh)

Page 20: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

9

Trong đó bài toán được chúng ta xem xét chủ yếu trong khóa luận này là bài toán

phân lớp quan điểm. Có thể nói phân lớp quan điểm là một trong những mối quan tâm

nhiều nhất của con người trong quá trình làm việc với một tập hợp các đối tượng [1].

Điều này giúp cho con người có thể tiến hành việc sắp xếp, tìm kiếm các đối tượng

một cách thuận lợi. Khi biểu diễn đối tượng vào các hệ thống thông tin, tính chất lớp

vốn có của dữ liệu sẽ được đặc trưng bởi một thuộc tính “lớp”, những dữ liệu có cùng

đặc trưng giống nhau sẽ thuộc cùng một lớp. Ví dụ đơn giản thường gặp trên các trang

báo như vnexpress.net hoặc dantri.com, các bài báo được đưa lên đều được chia ra

thành các lớp, gồm các giá trị như “Thể thao”, “Xã hội”, “Kinh tế”… Những công việc

gán giá trị cho từng thuộc tính lớp đã xuất hiện từ rất lâu, nhưng bằng phương pháp

thủ công. Hiện nay, trong thời đại bùng nổ thông tin, việc phân lớp thủ công trở nên

khó khăn, tốn kém về thời gian và nhân lực. Do đó phân lớp tự động đã và đang nhận

được sự quan tâm rất lớn trong lĩnh vực khai phá dữ liệu.

Dựa trên số lớp mà tài liệu được phân chia, bài toán phân lớp quan điểm được

chia thành hai loại chính:

- Phân lớp nhị phân: Miền dữ liệu được chia thành 2 lớp.

- Phân lớp đa lớp: Miền dữ liệu được chia thành nhiều hơn 2 lớp.

Như vậy, phân lớp nhị phân chỉ là một trường hợp đặc biệt của phân lớp đa lớp,

song do xuất xứ nên phân lớp nhị phân có vị trí riêng cả về đặt bài toán lẫn các giải

pháp để giải quyết. Bên cạnh đó, còn có thể chia bài toán phân lớp quan điểm dựa trên

cách thức tài liệu phân bố vào các lớp như thế nào. Với cách chia này, ta cũng có thể

chia thành hai loại:

- Phân lớp đơn nhãn: Mỗi tài liệu được phân vào một lớp và chỉ một lớp duy nhất.

- Phân lớp đa nhãn: Một tài liệu có thể được gán nhiều hơn một lớp. Điều này có ý

nghĩa thực tiễn lớn vì trên thực tế, một văn bản không chỉ liên quan đến một chủ

đề duy nhất

Phân lớp văn bản được các nhà nghiên cứu định nghĩa thống nhất như là việc gán

tên các chủ đề (tên lớp/nhãn lớp) đã được xác định cho trước vào các văn bản dựa trên

nội dung của nó. Phân lớp văn bản là công việc được sử dụng để hỗ trợ trong quá trình

tìm kiếm thông tin (Information Retrieval), chiết lọc thông tin (Information

Extraction), lọc văn bản hoặc tự động dẫn đường cho các văn bản tới những chủ đề

xác định trước.

Page 21: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

10

Hình 4 cho ta lược đồ chung cho hệ thống phân lớp văn bản, trong đó bao gồm ba

phần chính:

- Biểu diễn văn bản: Đưa dữ liệu về một dạng có cấu trúc nào đó.

- Học quy nạp: Sử dụng các kỹ thuật học máy để phân lớp văn bản.

- Tri thức ngoài: Bổ sung thêm những kiến thức do người dùng cung cấp để làm

tăng độ chính xác trong học máy. Tuy nhiên, trong nhiều trường hợp, phương

pháp học hệ thống phân lớp có thể bỏ qua bước này.

Hình 1.4: Lược đồ chung xây dựng bộ phân lớp văn bản

Có thể coi phần quan trọng nhất của hệ thống phân lớp là phần thứ hai. Rất nhiều

các phương pháp học máy có thể sử dụng trong phần hai này như phương pháp Bayes,

k láng giềng gần nhất (kNN), SVM, cây quyết định… Trong khóa luận này, tôi đề cập

đến việc sử dụng học máy Bayes để giải quyết bài toán đưa ra. Thuật toán phân lớp

Bayes là một trong những thuật toán phân lớp điển hình nhất trong học máy và khai

phá dữ liệu. Đây cũng là một trong những thuật toán được sử dụng rộng rãi nhất trong

phân lớp văn bản.

Page 22: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

11

1.4. Kết luận chương 1

Chương 1 của bài luận giới thiệu khái quát bài toán phát hiện cộng đồng trên dựa

trên những liên kết mạng xã hội, đồng thời nêu ra một vài ví dụ điển hình về việc phân

chia cộng đồng thành các nhóm theo từng đặc điểm tương tự nhau. Đồng thời, trong

chương 1 này tôi cũng đã đề cập đến bài toán phân lớp văn bản và lược đồ chung xây

dựng bộ phân lớp văn bản.

Chương tiếp theo giới thiệu phương pháp phát hiện cộng đồng CONGA được

Gregory cải tiến từ thuật toán điển hình Girvan-Newman, và học máy Naïve Bayes

phân lớp văn bản.

Page 23: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

12

Chương 2. THUẬT TOÁN PHÁT HIỆN CỘNG ĐỒNG VÀ PHÂN LỚP QUAN ĐIỂM BAYES

2.1. Thuật toán GIRVAN-NEWMAN và CONGA

2.1.1. Thuật toán Girvan-Newman

Như đã đề cập trong Chương 1, bài toán phát hiện cộng đồng tập trung vào việc

từ một đồ thị mạng xã hội, tìm ra những cụm, nhóm cộng đồng có mối liên hệ chặt chẽ

với nhau. Qua trực quan có thể dễ dàng tìm ra những nhóm cộng đồng có độ tập trung

cao, nhưng không phải cộng đồng nào cũng được hình thành bằng các mối liên hệ chặt

chẽ và dễ thấy, một số cộng đồng được hình thành Nn. Điều quan trọng là phải tìm

được sự phân phối của các cạnh giữa các nút, từ đó đưa ra các cộng đồng tồn tại trong

mạng xã hội. [9]

Thay vì việc tìm kiếm những nút mạng trong đồ thị có độ gắn kết cao với nhau,

phương pháp phát hiện cộng đồng bằng thuật toán phân chia được đưa ra như một cách

giải quyết hữu hiệu. Để tránh các khuyết điểm của phương pháp phân nhóm phân cấp,

thay vì cố gắng để xây dựng một biện pháp tìm cạnh trung tâm của cộng đồng, chúng

ta đi tìm những cạnh ít trung tâm nhất, cạnh đó được gọi tên là cạnh giữa cộng đồng.

Thuật toán này dựa trên quan niệm cho rằng khi các cộng đồng được gắn kết với nhau

thì đường đi giữa cộng đồng này đến cộng đồng khác sẽ đi qua các cạnh nối giữa các

cộng đồng với tần suất cao. Mục đích chính của thuật toán là tìm những cạnh nối đó.

Thay vì việc xây dựng cộng đồng bằng cách thêm vào các cạnh mạnh mẽ nhất, chúng

ta sẽ xây dựng bằng cách loạn bỏ dần dần các cạnh nối từ đồ thị ban đầu. Khi đó, các

cộng đồng trong mạng sẽ bị ngắt kết nối với nhau, ta có thể xác định được cách phân

vùng đồ thị thành các phần nhỏ riêng rẽ. Để làm được việc này, điều quan trọng nhất

của thuật toán là việc tính toán như thế nào, sử dụng tính chất nào để phát hiện ra

những cạnh nối này, từ đó loại bỏ chúng ra khỏi đồ thị. Thuật toán lần đầu tiên được

đề xuất bởi Freeman. Theo Freeman, các cạnh được coi là cạnh có số lượng con đường

ngắn nhất giữa các cặp đỉnh khác nhau chạy qua nó. Cạnh nối có ảnh hưởng rất lớn

đến dòng chảy của thông tin giữa các nút khác, đặc biệt là trong trường hợp thông tin

lưu truyền trong mạng chủ yếu theo con đường ngắn nhất. Thuật toán điển hình nhất

trong các thuật toán chia này là thuật toán Girvan-Newman.

Để tìm các cạnh trong mạng nối hai đỉnh thuộc hai cộng đồng khác nhau, khái

quát đây là cạnh có độ trung gian cao, và xác định độ do trung gian này bằng cách tính

số đường đi ngắn nhất giữa các cặp đỉnh mà có qua nó. Với một đồ thị m cạnh và n

Page 24: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

13

đỉnh thì thời gian tính toán cho giai đoạn này là )(mnO .Với đồ thị có trọng số, độ đo

trung gian của cạnh có trọng số đơn giản được tính bằng độ đo trung gian của cạnh

không có trọng số chia cho trọng số của cạnh đó.

Nếu một mạng lưới bao gồm các cộng đồng hoặc nhóm chúng chỉ được liên kết

nối yếu bằng một nhóm cạnh, thì tất cả các đường đi ngắn nhất giữa các cộng đồng

khác nhau sẽ phải đi dọc theo một trong số ít các cạnh thuộc nhóm cạnh đó. Vì vậy,

các cạnh kết nối các cộng đồng sẽ là cạnh có độ đô trung gian cao. Bằng cách loại bỏ

các cạnh, thuật toán Girvan-Newman tách được thành các nhóm riêng biệt. Thuật toán

được thực hiện theo các bước sau:

1. Tính độ đo trung gian cho tất cả các cạnh trong mạng.

2. Hủy bỏ các cạnh có độ trung gian cao nhất.

3. Tính lại độ trung gian cho tất cả các cạnh bị ảnh hưởng theo các cạnh đã

loại bỏ.

4. Lặp lại từ bước 2 cho đến khi không còn các cạnh trung gian.

Hình 2.1: Ví dụ về phát hiện cộng đồng sử dụng Girven-Newman

Thuật toán Girvan-Newman khá đơn giản và dễ hiểu. Toàn bộ thuật toán có thể

được biểu diễn trong một dendrogram,ở đây ta có thể hiểu là thuật toán đi từ gốc đến

các lá. Các nhánh của cây biểu diễn cho các phép loại bỏ cạnh để chia đồ thị thành các

cộng đồng riêng rẽ. Thuật toán Girvan-Newman đưa lại kết quả tương đối tốt trong

nhiều trường hợp, mặc dù vậy nó vẫn gặp phải một số nhược điểm:

1. Thuật toán Girvan-Newman sử dụng phương pháp loại trừ đến khi không có

cạnh nào vượt qua ngưỡng của độ trung gian cao nhất, vì vậy nên số lượng cộng

đồng hoàn toàn không kiểm soát trước được. Bên cạnh đó, thuật toán sử dụng

Page 25: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

14

nhiều phép phân vùng, khó có thể xác định được phép phân vùng nào mang lại

hiệu quả tốt nhất.

2. Do tại mỗi lượt thực hiện, thuật toán tính lại độ trung gian của mỗi cạnh liên

quan sau khi xóa đi cạnh có độ trung gian lớn nhất nên độ phức tạp thời gian là

khá cao. Giả sử với đồ thị n đỉnh, số cạnh phải xóa đi khỏi đồ thị là m cạnh thì ta

cần lượng thời gian tính toán O(mn) cho mỗi lần lặp. Tổng thời gian chạy thuật

toán O(m2n). Trong trường hợp xấu nhất, mỗi đỉnh được chia ra thành một cộng

đồng riêng rẽ thì độ phức tạp thời gian của thuật toán sẽ lên đến O(n3).

3. Trên thực tế, mỗi đơn vị nút mạng có thể thuộc vào rất nhiều cộng đồng khác

nhau. Ví dụ với một cá nhân A, đóng góp vai trò là một nút trên mạng xã hội có

thể thuộc vào nhiều nhóm: Bạn cùng lớp, đồng nghiệp cùng công ty, anh em họ

hàng trong gia đình… Nhưng với cách phân chia của Girvan-Newman không giải

quyết được hiện tượng chồng chéo cộng đồng trên.

Dựa trên những ưu điểm và nhược điểm trên của Girvan-Newman, các nhà khoa

học là tìm cách để cải tiến thuật toán trên sao cho tốt hơn nữa. Các hướng tiếp cận chủ

yếu là khắc phục những khuyết điểm của Girven-Newman: tìm phép phân vùng tốt

nhất, tìm cách giảm thời gian tính toán và giải quyết hiện tượng chồng chéo cộng

đồng.

Năm 2006, Prinney và Westhead [9] đã đề xuất một thuật toán cải tiến nhược

điểm không phát hiện được sự chồng chéo cộng đồng, hay nói cách khác là một đỉnh

có thể thuộc nhiều cộng đồng khác nhau của Girven-Newman. Trong phương pháp của

mình, hai tác giả sử dụng độ đo trung gian không chỉ cho các cạnh mà còn xem xét độ

đo trung gian của các đỉnh trong đồ thị. Tuy nhiên, do sự chuNn hóa theo các cách khác

nhau giữa cạnh và đỉnh nên các tác giả nhận định rằng độ trung gian của các cạnh và

độ trung gian của đỉnh không thể so sánh với nhau một cách thông thường. Prinney và

Westhead khẳng định rằng nếu hai đỉnh của một cạnh mà nối liền 2 cụm thì phải có độ

trung gian tương đương nhau, vì các đường đi ngắn nhất qua cạnh đó đi qua đỉnh này

thì cũng phải đi qua đỉnh kia. Từ đó, các tác giả tính toán cạnh có độ đo trung gian lớn

nhất và loại bỏ nó ra khỏi đồ thị nếu như tỉ số của độ trung gian 2 đỉnh của nó nằm

trong khoảng α

1 và α với 8.0=α . Nếu không, đỉnh với độ trung gian lớn nhất và

các cạnh kề của nó tạm thời bị loại bỏ ra khỏi đồ thị. Khi đồ thị con đã được tách ra từ

đồ thị ban đầu sau các phép loại bỏ đỉnh và cạnh, đỉnh và các cạnh bị loại bỏ được đưa

vào từng phần vừa được tách ra đó. Như vậy, các cộng đồng được tách ra có thể chứa

các đỉnh giống nhau, từ đó xử lý được vấn đề chồng chéo cộng đồng.

Page 26: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

15

Với cách tiếp cận tương tự, năm 2007 Gregory đề xuất thuật toán CONGA

(Cluster Overlap Newman-Girvan Algorithm). Các đỉnh sẽ được chia nhỏ ra thành các

phần, mỗi phần sẽ được gán vào các cụm nếu như độ trung gian của nó vượt quá độ

trung gian của cạnh lớn nhất. Có thể coi đây là một phép phân chia của một đỉnh thành

nhiều bản sao, trong đó một số cạnh liền với nó được đưa vào một bản sao, số cạnh

còn lại phân chia trong các bản sao khác. Gregory đề xuất một độ đo để xác định phép

phân chia tối ưu nhất, gọi là độ trung gian phân chia của các đỉnh, là số đường đi ngắn

nhất mà chạy hai phần của đỉnh sau khi được phân chia. Phương pháp này có độ phức

tạp tối đa là )( 3nO như trong thuật toán Girvan-Newman.

2.1.2. Thuật toán CONGA

Những năm gần đây, có thể nhận thấy sự phát triển của các thuật toán để chia

nhóm đồ thị mạng xã hội, nhằm xác định cấu trúc của cộng đồng mạng. Phần lớn trong

số này chỉ tìm thấy các cộng đồng tách rời nhau, nhưng trong nhiều mạng trong thế

giới thực, các cộng đồng thường có sự giao thoa với nhau. Thuật toán CONGA là thuật

toán hướng đến việc phát hiện ra chồng chéo trong các mạng, bằng cách mở rộng thuật

toán nổi tiếng Girvan-Newman dựa trên các biện pháp tính toán độ trung gian. [13]

Cũng giống như các thuật toán học ban đầu, chúng ta thực hiện phân nhóm phân vùng

mạng xã hội vào một số lượng cụm nào đó, nhưng cho phép các nhóm này chồng chéo

lên nhau. Để làm được điều này, cần có một cách tách (sao chép) một đỉnh để cho

phép nó tồn tại ở nhiều nhóm khác nhau. Tức là với một đỉnh v cần chia ra thành d(v)

bản sao. Chúng tôi cần quyết định xem một đỉnh khi nào được chia, và chia như thế

nào. Cũng giống như Girven-Newman, chúng ta chũng chỉ xem xét mạng với các cạnh

vô hướng, không có trọng số.

Trong các thuật toán Girven-Newman, hoạt động cơ bản là loại bỏ từng cạnh.

CONGA giới thiệu một phương pháp thứ hai: chia tách một đỉnh. Trong mỗi bước

phân chia, một đỉnh v luôn luôn được chia thành hai đỉnh v1 và v2, đồng thời với đó,

cạnh nối liền v với một đỉnh khác sẽ được chuyển hướng sang v1 hoặc v2. Như vậy, v1

hay v2 đều có ít nhất một cạnh nối đến nó trước phép phân tách. Bằng cách chia liên

tục như vậy, cuối cùng một đỉnh v sẽ được chia thành d(v) đỉnh. Các đỉnh được phân

chia từng bước trong quá trình phân nhóm. Phương pháp tách nhị phân hoàn thoàn phù

hợp với tư tưởng thuật toán Girven-Newman, vì cũng giống như việc loại bỏ cạnh,

việc chia tách một đỉnh cũng có thể phân tách cụm ra thành hai. Điểm mấu chốt nhất

của thuật toán CONGA là cách đưa ra khái niệm về độ trung gian. Điều này quyết định

Page 27: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

16

khi nào một đỉnh sẽ được phân chia, và những cạnh nào sẽ thuộc phần nào của đỉnh

sau khi chia tách.

Như đã đề cập ở trên, một đỉnh v sẽ được phân chia thành v1 và v2 và hai đỉnh này

sẽ thuộc hai cụm khác nhau. Chúng ta có thể xác minh điều này bằng cách đếm số con

đường ngắn nhất đi qua hai đỉnh mà cần qua giữa v1 và v2 (hay nói cách khác là qua

điểm v ban đầu). Nếu có nhiều đường đi ngắn nhất qua (v1, v2) hơn trên bất kì cạnh

thực tế nào thì đỉnh v là đỉnh nên được chia. Khi đó, chúng tôi sẽ thêm một cạnh mới

“tưởng tượng” vào giữa v1 và v2. Nếu u là một người hàng xóm của v1 và w là một

người hàng xóm của v2, khi đó tất cả các con đường ngắn nhất qua v dọc theo các cạnh

{u, v}, {v, w} sẽ cùng phải đi qua {u, v1}, {v1, v2}, {v2, w}. Từ đó ta có thể tính được

số đường đi ngắn nhất mà đi qua cạnh v1v2 này. Có tổng cộng 2d(v)-1 cách phân chia v

ra làm đôi, trong đó d(v) là bậc của v trong đồ thị. Phép phân đôi nào dẫn đến độ trung

gian lớn nhất là phép phân chia được lựa chọn. Từ đó, ta tính toán được độ trung gian

của phép phân chia cho tất cả các đỉnh. Với mỗi đỉnh có độ trung gian của phép phân

chia lớn hơn giá trị lớn nhất trong các độ đo trung gian của cạnh, ta thực hiện chia đỉnh

đó làm đôi, sử dụng phép phân chia tối ưu nhất của nó.

Phương pháp này không bao giờ phân một đỉnh thành hai đỉnh con mà trong đó

một trong hai đỉnh con chỉ có duy nhất một đỉnh kề. Điều này là do độ trung gian của

cạnh {v1, v2} cũng bằng độ trung gian của {u,v1} như trong hình 2.2. Trong trường

hợp này thì việc loại bỏ cạnh {u,v} sẽ thích hợp hơn là việc phân tách đỉnh v. Chính vì

vậy, các đỉnh có bậc nhỏ hơn 4 trong đồ thị không bao giờ bị chia nhỏ và tổng quát lại

chỉ có 2d(v)-1–d(v)-1 cách phân chia một đỉnh thành hai phần trong một đồ thị.

Hình 2.2: Ví dụ trường hợp không phân tách đỉnh v trong đồ thị

Trong phương pháp này, nhóm tác giả định nghĩa của độ trung gian của một đỉnh

v trong đồ thị là tổng số đường đi ngắn nhất giữa các cặp đỉnh của đồ thị mà đi qua v.

Ta có thể dễ tính được độ trung gian của đỉnh )(vCB từ các độ đo trung gian của cạnh

)(eCB :

Page 28: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

17

∑Γ∈

−−=

)(

)1()(2

1)(

ve

BB neCvC

Trong đó )(vΓ là tập các cạnh có v là đỉnh cuối và n là số đỉnh của đồ thị chứa v.

Ta có thể thấy từ định nghĩa, độ trung gian của các đỉnh luôn lớn hơn độ trung gian

phép phân chia của các đỉnh. Vì vậy tác giả sử dụng độ trung gian của các đỉnh là cận

trên của độ trung gian phép phân chia, nếu độ trung gian của các đỉnh mà nhỏ hơn giá

trị lớn nhất độ trung gian của các cạnh, đỉnh đó coi như không được phân chia.

Hình 2.3: Ví dụ về phép phân chia một đỉnh trong đồ thị

Để tính toán độ trung gian phép phân chia của đỉnh v, ta sử dụng một độ đo khác

là độ trung gian theo cặp của v theo (u,w). Giả sử u, w là 2 đỉnh kề bất kỳ của v, độ

trung gian theo cặp của v theo (u,w) chính là số đường đi ngắn nhất của bất kỳ cặp

đỉnh trong đồ thị mà đi qua (u,v) và (v,w).

Người ta biểu diễn các độ đo trung gian theo cặp của đỉnh v bậc k bằng một k-

clique, trong đó mỗi đỉnh được gán nhãn một hàng xóm của v và mỗi cạnh (u,w) được

gán 1 số bằng độ đo trung gian theo cặp của v theo (u,w).Từ đó ta có thể tìm được

phép phân chia tốt nhất của đỉnh v theo cách như sau:

− Chọn cạnh (u,w) có giá trị nhỏ nhất

− Nhập u và w vào thành 1 đỉnh uw duy nhất

− Với mỗi đỉnh x trong clique ta thay cạnh (u,x) điểm b1 và cạnh (w,x) điểm b2

bằng cạnh (uw,x) điểm b1+b2

− Lặp bước thứ nhất tổng cộng k-2 lần

Page 29: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

18

Sau k -2 phép lặp, 2 đỉnh còn lại sẽ là phép phân chia tối ưu nhất cho đỉnh v với

độ trung gian phép phân chia chính là điểm số của cạnh tạo bởi 2 đỉnh đó.

Ta có hình 2.3 là miêu tả cho quá trình tìm phép phân chia tối ưu của trường hợp

xét trong hình 4, trong đó phép phân chia tối ưu nhất là (abc) và (ade)

Hình 2.4: Tìm phép phân chia tối ưu

Các độ trung gian theo cặp của một đỉnh được tính toán hoàn toàn theo định

nghĩa của nó. Như vậy, tổng quát lại, thuật toán CONGA chia làm các bước như sau:

Đánh giá thuật toán:

1. Ưu điểm: Giải quyết được vấn đề chồng chéo cộng đồng bằng cách đặt ra

phép phân chia đỉnh, ngoài ra nội dung thuật toán tương đối dễ hiểu và xác

1. Tính độ trung gian của tất cả các cạnh trong đồ thị CB

Repeat {

2. Tính độ trung gian các đỉnh trong đồ thị dựa vào độ trung gian các cạnh:

∑Γ∈

−−=

)(

)1()(2

1)(

ve

BB neCvC

3. V = { vi / CB(vi) > max CB(ej) }

4. If V � � {

4.1. Tính độ trung gian theo cặp của các đỉnh trong danh sách;

4.2. Xác định phép phân chia tối ưu nhất cho các đỉnh đó;

}

5. Thực hiện loại bỏ cạnh hoặc phân chia đỉnh để chia đồ thị thành cách thành

phân

6. Tính lại độ trung gian của các cạnh trong tất cả các thành phần vừa được

chia ra

} Until ( không còn cạnh trung gian )

Page 30: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

19

định được phép phân chia tối ưu nhất trong các trường hợp, một điều mà thuật

toán Girvan-Newman nguyên thủy không làm được.

2. Nhược điểm: Thời gian tính toán, với độ phức tạp tính toán )( 3mO với m là số

cạnh.

2.2. Đánh giá quan điểm sử dụng học máy Bayes

2.1.1. Học máy Bayes

[1] Mô hình xác suất là một mô hình thường xuyên được sử dụng để đặc trưng

cho mô hình Web về các phương diện lý thuyết, thực nghiệm và triển khai. Lý thuyết

và mô hình xác suất cho phép gắn kết chặt chẽ giữa mô hình miền ứng dụng với các sự

kiện, từ đó cho phép chỉ dẫn chỉ dẫn đến sự kiện từ dữ các dữ liệu nhận được thông

qua quan sát. Ví dụ với mệnh đề khẳng định e “dự báo đến năm 2013 sẽ có hơn 600

triệu người sử dụng điện thoại để tham gia vào các mạng xã hội”. Khẳng định e được

gọi là “xác định tốt” là đúng hay sai dựa trên những con số thống kê về lượng người

sử dụng điện thoại để tham gia mạng xã hội trong đến năm 2013.

Cách thông dụng nhất thường được sử dụng để đưa ra khẳng định trên là trích

dẫn gián tiếp tới kết quả nghiên cứu do các tổ chức, cá nhân có uy tín công bố. Hoặc

một cách khác nữa để dẫn đến khẳng định e, chẳng hạn như thông qua số liệu thống kê

từ một số máy tìm kiếm điển hình. Xác suất P(e) có thể được xem như một giá trị số

phản ánh mức độ đúng/sai của sự kiện e trong thế giới thực, được tính theo các thông

tin hiện có. Giá trị này được coi như “độ tin tưởng”, thường được gọi là mô tả Bayes

(the Bayesian interpretation) của xác suất P(e) về sự kiện e. Để chính xác hơn, sử dụng

xác suất có điều kiện đối với sự kiện e được ký hiệu là P(e|�), mô tả tổng quát về độ

tin tưởng, trong đó � là tri thức nền mà dựa trên đó cho phép ta tin cậy về sự kiện e.

Trong nhiều trường hợp, bỏ qua biểu diễn nền � (chỉ viết P(e)) với một quan niệm

ngầm định rằng điều kiện nền � luôn luôn được coi là đã có.

Mô hình tần số là một mô hình cổ điển liên quan tới việc xác định xác suất P(e)

xuất hiện sự kiện e, trong đó xác suất xuất hiện biến cố e là tần số thực nhiệm thành

công quan sát được trên một số hữu hạn các phép thử nghiệm được lặp đi lặp lại. Theo

mô hình này, để xác định độ tin cậy của khẳng định “dự báo đến năm 2013 sẽ có hơn

600 triệu người sử dụng điện thoại để tham gia vào các mạng xã hội”, cần tiến hành

lặp đi lặp lại các thử nghiệm đếm toàn bộ số lượng người sử dụng điện thoại để tham

gia mạng xã hội trong năm 2013. Kết quả là xác suất P(e) được tính bằng tỷ số giữa số

lượt thử nghiệm có giá trị vượt quá 600 triệu trên tổng số lượt đếm thử nghiệm.

Page 31: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

20

Mô tả Bayes theo mô hình xác suất P(e| �) là tổng quát hóa của mô hình tần số

nói trên. Mô tả Bayes rất hữu dụng do nó cho phép đưa ra các khẳng định “về số lượng

người hiện tại đang sử dụng điện thoại tham gia mạng xã hội” mà không cần thi hành

lặp đi lặp lại các thử nghiệm đếm toàn bộ số người sử dụng như đã làm trong mô hình

tần số. Lý luận trên đây chứng tỏ rằng, độ tin tưởng có thể được trình diễn bằng các số

thực và được thay đổi theo tỷ lệ để chuNn hóa vào đoạn [0,1]. Đồng thời, độ tin tưởng

bắt buộc phải tuân theo các quy tắc xác suất, mà nói riêng là phải tuân theo định lý

Bayes. Có quy tắc biến đổi co dãn xác suất như xác suất có điều kiện hay luật của xác

suất tổng vẫn còn nguyên giá trị ngữ nghĩa như trong lý thuyết xác suất.

Tiếp nhận Bayes cho phép coi xác suất trên đây như là một thực thể động theo

nghĩa nó được cập nhật/biến đổi khi có thêm dữ liệu mới xuất hiện. Điều đó cho phép

thay đổi độ tin tưởng của con người khi có thêm dữ liệu mới quan sát được. Cơ sở của

lý luận này xuất phát từ nhận định cho rằng khi có thêm dữ liệu từ miền ứng dụng thì

tri thức về miền ứng dụng cũng sẽ được cải tiến. Người ta thường thay chỉ dẫn P(e|�)

bằng chỉ dẫn P(e|D), trong đó D là một tập dữ liệu đã quan sát được. Khi đó, định lý

Bayes đưa ra mối liên hệ giữa xác suất P(e|D) và xác suất P(D|e) như sau:

P(e|D) = ���|��

��� (2.2.1.1)

Trong công thức (2.2.1.1), đại lượng P(D|e) phản ảnh độ tương tự ra sao của dữ

liệu nhận được, khi đã cho e vào một mô hình gắn kết e với dữ liệu.

2.1.2. Phân lớp quan điểm sử dụng Bayes

[1] Thuật toán phân lớp Bayes là một trong những thuật toán phân lớp điển hình

nhất trong học máy và khai phá dữ liệu. Đây cũng là một trong những thuật toán được

sử dụng rộng rãi nhất trong phân lớp văn bản. Trong học máy Bayes thường được coi

như thuật toán học máy chuNn (baseline) để so sánh với các thuật toán khác. Phân lớp

Naïve Bayes thừa nhận một giả thiết mạnh là các đặc trưng độc lập lẫn nhau. Thêm

vào đó, bộ phân lớp xác suất lựa chọn một vài dạng giả định cho phân phối của mỗi

đặc trưng trong một lớp.

Ý tưởng chính của thuật toán là tính xác suất hậu nghiệm của sự kiện c xuất hiện

khi sự kiện x đã có trong không gian ngữ cảnh τ thông qua tổng hợp các xác suất tiên

nghiệm của sự kiện c xuất hiện khi sự kiện x đã có trong tất cả các điều kiện riêng T

thuộc không gian τ:

Page 32: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

21

���| , � = ∑ ���| , ����| �� �� τ (2.2.2.1)

Trong trường hợp phân lớp văn bản, xét biểu diễn văn bản thông qua tập các từ

khóa có trong văn bản đó. Gọi V là tập tất cả các từ vựng. Giả sử có N lớp tài liệu là

c1, c2,…, cn. Mỗi lớp ci có xác suất p(ci) và ngưỡng CtgTshi; Gọi p(c|Doc) là xác suất

để tài liệu Doc thuộc lớp c hay “xác suất để sự kiện c xuất hiện khi đã có sự kiện

Doc”.

Cho một lớp c và một tài liệu Doc, nếu xác suất p(c|Doc) tính được lớn hơn hoặc

bằng giá trị ngưỡng CtgTshc của lớp c thì kết luận tài liệu Doc thuộc vào lớp c. Tài

liệu Doc được biểu diễn như một vector có kích thước là số từ khóa trong tài liệu. Mỗi

thành phần chứa một từ trong tài liệu. Thuật toán được thực hiện trên từng tâp từ vựng

V, vector biểu diễn tài liệu Doc và các tài liệu có sẵn trong lớp, tính toán p(c|Doc) và

quyết đinh tài liệu Doc sẽ thuộc lớp nào. Xác suất p(c|Doc) được tính theo công thức

sau:

p(c|Doc) = ��� ∗ ∏ ����� | ��)� ( �|!"#)

�∈%

∑ �(�&) ∗ ∏ ��(�'|�)�� � '|!"#� ' ∈ %(

&)* (2.2.2.2)

Với: p(+,|�) = -.�����,��

|/|. ∑ �+ ���|��(&)*

(2.2.2.3)

Trong đó:

• |V| : số lượng các từ khóa có trong từ vựng V.

• Fj : từ khóa thứ j trong từ vựng V.

• TF(Fj | Doc) : tần suất của từ Fj trong tài liệu Doc (bao gồm cả từ đồng nghĩa).

• TF(Fj | C) : tần suất của từ Fj trong lớp c (số lần Fj xuất hiện trong tất cả các tài

liệu thuộc lớp c).

• p(Fj | c) : xác suất có điều kiện để từ Fj xuất hiện trong tài liệu của lớp c.

Công thức TF(Fi | c) được tính theo ước lượng xác suất Laplace. Sở dĩ có số 1

trên tử số của công thức này để tránh trường hợp tần suất từ Fi trong lớp c bằng 0 khi

Fi không xuất hiện trong lớp c.

Để giảm sự phức tạp và thời gian tính toán, để ý rằng, không phải tài liệu Doc đã

cho đều chứa tất cả các từ trong tập từ vựng V. Do đó, TF(Fi|Doc) = 0 khi từ Fi thuộc

V nhưng không thuộc tài liệu Doc, nên ta có 0��+,|��1�����|�2��

= 1 . Vậy công thức

(2.2.2.2) được viết lại như sau:

Page 33: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

22

p(c|Doc) = �(�) ∗ ∏ 0���� | ��1

� 0 �,!"#1 � ∈!"#

∑ �(�&)(&)* ∗ ∏ ��(�' | �)�� � ',!"#�

' ∈!"# (2.2.2.4)

Như vậy, trong quá trình phân lớp không dựa vào toàn bộ tập từ vựng mà chỉ dựa

vào các từ khóa xuất hiện trong tài liệu Doc.

Xét với bài toán hiện tại khóa luận đang giải quyết là bài toán phân lớp nhị phân,

ta chỉ xem xét với hai lớp:

• Positive: Những quan điểm đồng tình với sự kiện, hiện tượng được đưa ra

• Negative: Những quan điểm không đồng tình với sự kiện, hiện tượng được đưa

ra

Học máy phân lớp Naïve Bayes được hoạt động theo các bước chính như sau:

1. Mỗi mẫu dữ liệu được biểu diễn bằng một vector đặc trưng n chiều:

Doc = {x1, x2,…, xm} tương ứng với m giá trị của m thuộc tính f1, f2, … fm thuộc

tập V.

2. Đưa vào bộ dữ liệu học đã được phân lớp Doctrain (positive và negative) vào

học máy. Học máy Bayes sẽ dựa vào tần suất xuất hiện của các đặc trưng trong

từng dữ liệu, từ đó đưa ra xác suất được phân vào lớp nào ứng với từng đặc trưng.

3. Bài toán phân lớp nhị phân với hai lớp C1 (positive) và C2 (negative). Với một

mẫu dữ liệu Doc chưa biết thuộc lớp nào, thuật toán phân lớp sẽ dự đoán Doc

thuộc về lớp có xác suất hậu nghiệm cao nhất với điều kiện biết trước Doc. Khi

đó, Doc sẽ được phân vào lớp Ci nếu: 4(5�|67�) > 4(5,|67�), trong đó

P(c|Doc) được tính toán theo công thức (2.2.2.4)

Page 34: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

23

2.3. Kết luận chương 2

Trong chương 2, khóa luận đã trình bày cụ thể về hai thuật toán chính sẽ được áp

dụng để giải quyết bài toán được đề ra. Với thuật toán CONGA đã giải quyết được bài

toán cộng đồng giao nhau so với Girven-Newman. Việc đánh giá quan điểm người

dùng bằng phương pháp phân lớp nhị phân Naïve Bayes cũng mang lại kết quả khá

khả quan.

Chương 3 sẽ trình bày chi tiết mô hình đề xuất dựa trên hai thuật toán này nhằm

giải quyết bài toán phát hiện và đánh giá quan điểm cộng đồng trên mạng xã hội

Twitter đối với các sự kiện, hiện tượng được đưa ra tại Linkhay Công nghệ.

Page 35: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

24

Chương 3. MÔ HÌNH ĐÁNH GIÁ QUAN ĐIỂM CỘNG ĐỒNG

TRÊN MẠNG XÃ HỘI

3.1. Mô hình đánh giá quan điểm cộng đồng trên Twitter

Thuật toán đưa ra có thể áp dụng với mọi mạng xã hội khác nhau. Tuy nhiên

trong khuôn khổ khóa luận, tôi sử dụng dữ liệu trên mạng xã hội Twitter. Đây là một

mạng thời gian thực với dịch vụ “microblogging” cho phép gửi tin nhắn với không quá

140 kí tự, những tin nhắn này được gọi là tweets. [5] Không giống như các mạng xã

hội như Facebook và Linkedln là những nơi có kết nối hai chiều, Twitter có một mạng

lưới được xây dựng dựa trên số “friends” và “followers”. Twitter đã nhanh chóng trở

thành một hiện tượng với số lượng người tham gia rất cao, nổi lên như một lớp giao

thông vận tải thứ ba thực hiện dịch vụ tin nhắn. Hiện nay, Twitter đã đạt đến con số

200 triệu người sử dụng, với 65 triệu tweet được sinh ra mỗi ngày, và khoảng 800000

lượt truy vấn mỗi ngày. Twitter đôi khi còn được miêu tả như là ”SMS trên Internet”.

Hơn thế nữa, Twitter còn cung cấp một API giúp người sử dụng có thể lấy được các

thông tin về các người dùng trong mạng xã hội đó, ví dụ như tên truy cập, ID, số lượng

bạn bè, số lượng Tweet trong một ngày,... Đây là những điều kiện rất thuận lợi để tìm

hiểu về cộng đồng cũng như những nội dung chia sẻ của người dùng trên Twitter.

Hình 3.1: Phân bố sử dụng Twitter trên thế giới

Page 36: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

25

Mặc dù vậy, cộng đồng người Việt Nam sử dụng mạng Twitter lại không phổ

biến nhiều như những nơi khác trên thế giới, vì vậy, với bài toán phát hiện và đánh giá

quan điểm cộng đồng trên miền ứng dụng là Tiếng Việt, tôi quyết định đưa bài toán về

khuôn khổ những người dùng cùng follow người dùng @linkhay. Đây là một trong số

những người dùng có số lượng người đăng kí theo dõi lớn, thường xuyên cập nhật

thông tin, sự kiện mới và được quan tâm hàng ngày. @linkhay là người dùng đại diện

cho website http://www.linkhay.com – nơi cộng đồng chia sẻ những thông tin thú vị từ

bất kì nguồn nào trên Internet. Người dùng không chỉ tìm thấy những vấn đề nóng hổi

được dư luận quan tâm mà còn có thể khai thác triệt để thông tin xung quanh nó, cũng

như tham gia thảo luận với cộng đồng LinkHay. Việc xây dựng mạng và cộng đồng

mạng được đảm bảo về số lượng đỉnh cũng như các liên kết của người dùng. Ngoài ra,

lượng dữ liệu thu thập được đủ lớn để sử dụng cho pha đánh giá quan điểm người

dùng.

Tư tưởng chính của mô hình đề xuất như sau:

Thông tin người dùng Twitter cùng follow vào @linkhay sẽ được lấy về, xây

dựng lại mạng xã hội, và được cho qua bộ CONGA để phát hiện cộng đồng. Từ những

cộng đồng đó, ta có thể xây dựng dữ liệu về đánh giá của từng nhóm người dùng về

một sự kiện, hiện tượng chung nào đó. Với dữ liệu lấy về là Tiếng Việt, tôi sử dụng

phân lớp Naive Bayes để phân tách các nhận định người dùng theo hai chiều hướng:

đồng tình hoặc không đồng tình, tổng hợp dựa trên quan điểm cộng đồng, từ đó đưa ra

đánh giá chung của toàn động đồng về sự kiện, hiện tượng đó. Chi tiết các bước được

biểu diễn chi tiết tại Hình 3.2

Đầu vào: Tập người dùng mạng xã hội, các liên kết tương ứng, và các nhận xét,

đánh giá của người dùng về sự kiện, hiện tượng.

Đầu ra: Phân lớp quan điểm của từng nhóm cộng đồng về những sự kiện giống

nhau.

Phát biểu bài toán: Coi mỗi người dùng là một nút mạng, xây dựng mạng xã hội

và phân chia thành các nhóm (cộng đồng) dựa trên những liên kết của các nút

mạng. Đánh giá quan điểm về sự kiện, hiện tượng của từng cộng đồng vừa được

xây dựng.

Dưới đây, tôi xin đề xuất mô hình phát hiện cộng đồng trên mạng xã hội Twitter sử

dụng thuật toán CONGA, và đánh giá quan điểm cộng động bằng học máy Naïve

Bayes:

Page 37: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

26

Hình 3.2: Mô hình đề xuất giải quyết bài toán phát hiện và khai phá quan điểm cộng

đồng trên mô hình mạng xã hội Twitter

Các pha chính:

1. Phát hiện cộng đồng

a. Xây dựng mạng xã hội

b. Xây dựng cộng đồng mạng xã hội

2. Đánh giá quan điểm cộng đồng

a. Biểu diễn vector thể hiện đặc trưng

b. Tạo mô hình huấn luyện Naïve Bayes

c. Phân lớp Naïve Bayes

Page 38: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

27

3.2. Pha 1: Phát hiên cộng đồng trên mạng xã hội 1. Từ nguồn dữ liệu có sẵn của Twitter được cung cấp qua Twitter API, chúng tôi

tiến hành thu thập các dữ liệu về người sử dụng như ID, tên truy cập, và các

thông tin cá nhân của người dùng cùng follow @linkhay. Các thông tin được

thu thập sử dụng một thư viện hỗ trợ trên nền ngôn ngữ lập trình Java là

Twitter4j do Yuusuke Yamamoto (Nhật Bản) và các đồng sự phát triển năm

2009. Thư viện cung cấp cho chúng ta các hàm cần thiết để lấy về dữ liệu của

một người sử dụng từ Twitter.

Hình 3.3: Thông tin ID người dùng twitter cùng follow @linkhay

Thông tin mỗi người dùng được biểu diễn trên một dòng bao gồm số thứ tự

trong dồ thị ứng với mỗi ID người sử dụng.

2. Tiền xử lý dữ liệu: Loại bỏ những thông tin người dùng không thỏa mãn điều

kiện với bài toán. Do việc thu thập người dùng không dựa trên những mối liên

kết của họ với nhau nên đồ thị thu được sẽ dẫn đến hiện tượng rời rạc, số lượng

liên kết ít, gây khó khăn trong việc phát hiện cộng đồng. Vì vậy những người

dùng thiếu về thông tin sử dụng, thiếu kết nối với các đỉnh khác trong mạng sẽ

bị loại ra khỏi tập dữ liệu.

Page 39: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

28

3. Xây dựng mạng xã hội: Từ tập người dùng thỏa mãn điều kiện, tôi tiến hành

xây dựng mạng xã hội. Trong đó mỗi người dùng được đại diện bởi một đỉnh,

dựa vào danh sách friends và danh sách followers của mỗi người dùng để đưa ra

danh sách mối liên kết của các đỉnh đó với nhau. Trong đó hai người A và B gọi

là có liên kết nếu thỏa mãn một trong 4 điều kiện sau

a. A là friends với B.

b. A follow B.

c. B là friends với A.

d. B follow A.

Hình 3.4: Mạng xã hội xây dựng trên danh sách những người dùng đã thu thập.

Do thuật toán yêu cầu đầu vào của thuật toán CONGA là đồ thị vô hướng,

không có trọng số nên kết quả đầu ra được lưu vào một file.txt, trong đó mỗi

hàng sẽ đưa ra một cạnh liên kết trong đồ thị, bao gồm hai đỉnh đầu vào cuối

của cạnh đó.

4. Từ mạng xã hội vừa xây dựng được ở bước 3, cho qua CONGA để phát hiện

cộng đồng mạng xã hội. Dựa trên đồ thị vừa xây dựng được, chúng tôi tiến

hành cài đặt thuật toán CONGA cho đồ thị đó, dựa trên bộ thư viện mà tác giả

thuật toán cung cấp. Đầu vào của chương trình là tập tin văn bản biểu diễn đồ

thị xây dựng được ở bước trên. Đầu ra của chương trình là tập cộng đồng phân

Page 40: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

29

cấp của đồ thị đó, bao gồm số lượng cộng đồng được chia nhỏ, các phép phân

chia cạnh (hoặc đỉnh) thành các cộng đồng con ở các bước, cấu trúc của từng

cộng đồng con.

Hình 3.5: Cộng đồng mạng xã hội sau khi qua CONGA

CONGA-GN cho phép xác định số lượng cộng đồng sẽ được phân chia của đồ

thị theo mong muốn của người dùng. Với đặc điểm này, ta có thể khảo sát được

cách phân chia mang lại hiệu quả cao nhất.

Để đánh giá thuật toán phát hiện cộng đồng, Steve Gregory sử dụng hai độ đo là

vad (vertex average degree) và overlap. Hai độ đo này được sử dụng để đánh giá chất

lượng của sự phân cộng đồng mà có khả năng xảy ra chồng chéo lẫn nhau. Trong đó,

độ đo vad và overlap của mạng xây dựng trong khóa luận được tính toán khi phân chia

mạng thành 2 cộng đồng con. Các độ đo này được thể hiện bởi các công thức sau:

∈=

SC

SC

C

CE

Svad||

|)(|2)(

||

||)(

S

C

Soverlap SC

∑∈

=

Trong đó S là đồ thị, C là cộng đồng trong đồ thị, và E(C) là số các cạnh trong C

Page 41: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

30

3.3. Pha 2: Khai phá quan điểm cộng đồng trên mạng xã hội 1. Từ dữ liệu người dùng đã có trong mạng xã hội được xây dựng ở Pha 1, ta tiến

hành thu thập những tweet về các sự kiện được nhắc đến tại @linkhay.

2. Tiền xử lý dữ liệu: Để lọc nhiễu cho dữ liệu huấn luyện, chúng ta phải loại bỏ

đi những thông tin dưới dạng hình ảnh, âm thanh, thông tin không nằm trong

nội dung của trang web, các thẻ html,… Sau khi làm sạch, dữ liệu sẽ được đưa

qua module tách câu. Mỗi câu được biểu diễn trên một dòng. Module tách câu

sẽ lọc dữ liệu, loại bỏ những câu cảm thán, những câu không có nghĩa.

3. Tập dữ liệu sau khi được tách câu và loại bỏ các câu không có giá trị, mỗi câu

thu được sẽ được biểu diễn dưới dạng câu đặc trưng đầu vào cho bộ phân lớp.

Lựa chọn đặc trưng là quá trình chọn ra những từ mang nhiều thông tin nhất

trong tập từ vựng thu được từ tập dữ liệu. Tức là tìm ra và chỉ giữ lại những từ

khóa có giá trị về thông tin. Khóa luận sử dụng phương pháp lựa chọn từ khóa

theo tần suất văn bản (Document Frequency) và đo độ thông tin qua lại (Mutual

Infomation)

a. Tần suất văn bản: là số tài liệu mà một từ khóa xuất hiện. Để lựa chọn từ

khóa theo phương pháp tần suất văn bản thì cần phải tính tần suất văn bản

với mỗi từ khóa trong tập tài liệu học và sau đó loại bỏ những từ khóa có tần

suất nhỏ hơn ngưỡng.

b. Độ đo thông tin qua lại: là phương pháp được sử dụng để lựa chọn tập đặc

trưng dựa vào mô hình thống kê. Với mỗi cặp từ khóa t và lớp c, độ đo

thông tin qua lại được tính theo công thức:

9(�, �) = log Pr (� ? �)Pr (�) × Pr (�)

Và được ước lượng:

9(�, �) ≈ log B × C(B + 5) × (B + E)

Trong đó :

i. A là số lần từ khóa t và lớp c đồng thời xuất hiện

ii. B là số lần từ khóa t xuất hiện mà không thuộc c

iii. C là số lần c xuất hiện mà không chứa t.

iv. N là tổng số dữ liệu học

Page 42: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

31

I(t,c) nhận giá trị 0 nếu từ khóa và lớp c độc lập với nhau. Giá trị I(t,c) càng

cao càng thể hiện độ quan trọng của đặc trưng t với lớp c.

Qua bước 3, kết quả thu được vector đặc trưng là tập các từ xuất hiện phổ biến

(từ khóa) của văn bản T = {T1, T2, …., Tn}

4. Chọn ra tập dữ liệu học, qua bộ phân lớp nhị phân, từ đó cho ra mô hình huấn

luyện. Tại bộ phân lớp nhị phân, vector đặc trưng của tập dữ liệu học sẽ được

sử dụng để tính toán cho ra mô hình huấn luyện. Trong đó, mỗi đặc trưng trong

vector sẽ được xem xét và phân lớp thuộc positive (đồng tình) hay negative

(không đồng tình). Để giải quyết vấn đề này, tôi sử dụng đọ đo TFIDF [15] để

tính toán giá trị tượng trưng Wi cho giá trị lớp phù hợp của từng đặc trưng Ti :

Wi = TF(Ti,d) * IDF(ti)

Trong đó:

TF(t,d) là số lần xuất hiện của đặc trưng t trong văn bản d

Và nghịch đảo tần suất xuất hiện của văn bản IDF(t) được tính như sau:

IDF(t) = log 0 |�|���F1

Với DF(t) là số lượng văn bản mà đặc trưng t có xuất hiện ít nhất 1 lần.

|6| là tổng số lượng văn bản được xem xét.

5. Tập dữ liệu kiểm tra, cho qua mô hình huấn luyện, ta được kết quả của đánh giá

cộng đồng trên mạng xã hội. Dựa vào mô hình huấn luyện được hình thành tại

bước 4, ta tính toán và phân lớp cho từng câu trong tập dữ liệu kiểm tra (với đầu

vào là các vector đặc trưng), sau đó tổng hợp đánh giá của từng cộng đồng.

Đánh giá kết quả phương pháp phân lớp văn bản có thể được tính toán theo nhiều

cách khác nhau. Khóa luận này tôi sử dụng hai độ đo khá phổ biến: độ hồi tưởng và độ

chính xác

Bảng 1: Bảng ký hiệu

Dữ liệu thực

Positive Negative

Dự đoán Positive TP TN

Negative FP FN

Page 43: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

32

Trong đó :

o TP (true positives): số lượng ví dụ positive được thuật toán phân đúng vào lớp

positive

o TN (true negatives): số lượng ví dụ negative được thuộc toán phân đúng vào

lớp negative.

o FP (false positives): số lượng ví dụ positive được thuật toán phân sai vào

negative.

o FN (false negatives): số lượng ví dụ negative được thuật toán phân sai vào

positive.

Độ chính xác Pr (Precision) là tỷ số ví dụ positive được thuật toán phân lớp cho

giá trị đúng trên tổng số ví dụ được thuật toán phân lớp vào lớp positive:

4G = �4�4 + �C

Độ hồi tưởng Re (Recall) là tỷ lệ số ví dụ positive được thuật toán phân lớp cho

giá trị đúng trên tổng số ví dụ positive thực sự thuộc lớp positive:

HI = �4�4 + +4

Page 44: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

33

3.4. Kết luận chương 3

Chương 3 của khóa luận trình bày về tư tưởng chính của phương pháp đề xuất

cho bài toán phát hiện và khai phá quan điểm người dùng dựa trên thuật toán CONGA

và học máy Naïve Bayes. Khóa luận cũng đã giới thiệu chi tiết các pha cũng như các

bước trong từng pha của phương pháp đề xuất.

Trong chương tiếp theo, khóa luận tiến hành thực nghiệm trên phương pháp đã

xây dựng và đánh giá kết quả đạt được của phương pháp đề xuất.

Page 45: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

34

Chương 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ

4.1. Mô tả thực nghiệm

Dựa vào mô hình đã được đề xuất ở chương 3, chương 4 của khóa luận sẽ trình

bày thực nghiệm việc phát hiện và phân lớp các đánh giá của người dùng trên mạng xã

hội Twitter. Để làm rõ mô hình được đề xuất ở chương 3, các thực nghiệm trên tập dữ

liệu từ đánh giá về các sự kiện diễn ra trên @linkhay được tiến hành. Khóa luận tập

trung chủ yếu vào việc đánh giá kết quả thực nghiệm trên 2 pha chính: phân nhóm

cộng đồng CONGA và phân lớp quan điểm Bayes.

4.1.1. Mô tả dữ liệu

Dữ liệu đươc thu thập theo hai phần:

Phần 1: Thu thập thông tin người dùng để xây dựng mạng xã hội. Ta sẽ sử dụng

thông tin của những người dùng cùng follow @linkhay trên mạng xã hội Twitter bằng

các hàm được hỗ trợ từ thư viện Twitter4j. Từ tập những người dùng này, chúng ta sẽ

xem xét việc họ kết nối với nhau như thế nào bằng cách tìm kiếm bạn bè của những

người dùng này. Nếu hai người dùng trong mạng có liên kết với nhau sẽ được đặc

trưng bằng một đường nối vô hướng trong mạng xã hội được xây dựng. Trong chương

trình lấy dữ liệu về nhằm xây dựng mô hình mạng xã hội của chúng tôi chủ yếu sử

dụng các phương thức ở package twitter4j và twitter4j.api, trong đó có các phương

thức sử dụng để xem thông tin cá nhân một người sử dụng (showUser), lấy danh sách

following của một người (getFriendList), tìm mối quan hệ bạn bè giữa họ

(existsFriendship),....

Phần 2: Thu thập dữ liệu về những tweet mà những người dùng trong mạng xã

hội vừa xây dựng đề cập đến những sự kiện, hiện tượng đã nhắc tới tại @linkhay. Từ

đó phân chia dữ liệu đó đến từng cộng đồng trong mạng xã hội để đánh giá quan điểm

của từng cộng đồng về mỗi sự kiện. @linkhay (Linkhay) là nơi cập nhật liên tục những

sự kiện, hiện tượng về nổi bật diễn ra trên thế giới bằng ngôn ngữ tiếng Việt, được

nhiều người quan tâm. Số lượng tin tức được retweet và tweet từ @linkhay tương đối

lớn, đủ để phục vụ cho việc học và kiểm tra của bộ phân lớp theo các cộng đồng khác

nhau.

Page 46: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

35

4.1.2. Môi trường thực nghiệm

Thực nghiệm của chúng tôi được tiến hành trên môi trường thực nghiệm như sau:

Bảng 2: Môi trường thực nghiệm (phần cứng và hệ điều hành)

Chi tiết phần cứng Chỉ số

CPU Intel Core I3

RAM 2.00 GB

HDD 160 GB

OS Window 7

4.1.3. Các công cụ và phầm mềm sử dụng

Bảng 3: Các công cụ và phần mềm sử dụng

STT Tên phần

mềm

Tác giả Chức năng Nguồn

1 Eclipse-

SDK-3.5-

win32

Công cụ lập trình trên nền

Window, Unix hỗ trợ

người sử dụng lập trình

Java, PHP, C/C++,...

http://www.eclipse.

org/downloads

2 CONGA

Software

Steve Gregory Phần mềm mã nguồn mở

hỗ trợ cài đặt thuật toán

CONGA

http://www.cs.bris.a

c.uk/~steve/network

s/software/conga.ht

ml

3 Twitter4j Yusuke

Yamamoto

Bộ thư viện mã nguồn mở

của Java hỗ trợ tương tác

với Twitter API

http://twitter4j.org

4 JVNTextPro Phan Xuân

Hiếu, Nguyễn

CNm Tú

http://jvntextpro.sou

rceforge.net/

Page 47: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

36

4.2. Thực nghiệm và đánh giá

4.1.1. Thực nghiệm

Tôi tiến thành thu thập dữ liệu người dùng trên Twitter cùng follow @linkhay,

kết quả thu được là 268 đỉnh. Sau bước loại bỏ những đỉnh không phù hợp, số lượng

đỉnh thỏa mãn để đưa vào mô hình còn lại 241 đỉnh. Sau đó tôi thực hiện tìm kiếm các

mối liên kết của các đỉnh này với nhau. Mạng xã hội được xây dựng lên bao gồm 241

đỉnh và 606 cạnh. Mạng này được biểu diễn dưới dạng chuNn đầu vào của CONGA,

sau đó cho qua CONGA chạy thử nghiệm để phát hiện cộng đồng.

Sau khi nhận được đầu vào thích hợp, chạy dòng lệnh sau trong CMD thuật toán tự

phân tích và tìm ra số lượng cụm, với *** là tên file text biểu diễn đồ thị :

java –cp conga.jar CONGA ***.txt –e

Đồ thị người dùng chúng tôi thu được với 214 cạnh và 606 cạnh, tổng số phép

phân chia đỉnh là 194, và có 40 đỉnh bị phân chia. Nhìn vào kết quả có thể nhận thấy

một vài đỉnh được coi là đỉnh giao thoa lớn giữa các cụm, ví dụ như đỉnh 4 (66 lần

phân chia), đỉnh 25 (14 lần phân chia), đỉnh 28 (9 lần phân chia). Tổng số pha tính độ

trung gian là 800 pha, tổng thời gian phân chia cộng đồng là 3779 ms.

Hình 4.1: Kết quả phân chia cộng đồng

Phần mềm CONGA còn hỗ trợ lệnh cho phép xem cấu trúc cộng đồng con trong

khi đang phân chia:

java –cp conga.jar CONGA ***.txt –e –n X

trong đó X là một số nguyên biểu diễn số lượng cộng đồng ở bước phân chia ra mà ta

muốn xem.Ví dụ muốn xem cấu trúc các cộng đồng con ở giai đoạn đồ thị phân chia ra

làm 3 cộng đồng con chỉ cần thay X = 3 ở trong dòng lệnh.

Page 48: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

37

Hình 4.2: Cấu trúc đồ thị được chia thành 3 cộng đồng con

Do số lượng cạnh trong đồ thị trong khóa luận xây dựng được tương đối mỏng,

và để thuận tiện cho tập hợp, đánh giá quan điểm cộng đồng trong pha tiếp theo, chúng

tôi xem xét việc sử dụng kết quả phân chia số cộng đồng theo mong muốn là 3 cộng

đồng. Kết quả đưa ra danh sách các đỉnh thuộc từng cộng đồng, mỗi cộng đồng được

biểu diễn trên một dòng. Theo kết quả thu được, cộng đồng 1 bao gồm 81 đỉnh, cộng

đồng 2 bao gồm 132 đỉnh, cộng đồng 3 bao gồm 33 đỉnh.

Tập dữ liệu đầu vào từ người dùng được chia theo các nhóm cộng đồng đầu ra

của CONGA, sau khi qua bước tiền xử lý cho ra tổng cộng 2000 câu quan điểm. Trong

đó, chúng tôi chọn ra dữ liệu học chiếm 70% tổng số lượng dữ liệu và thực hiện gán

nhãn dữ liệu. Tập dữ liệu học này cho qua học máy Naïve Bayes để sinh mô hình huấn

luyện.

Bảng 4: Tập dữ liệu huấn luyện

Positive Negative

Số lượng tài liệu 547 853

Phần dữ liệu kiểm tra chiếm 30% còn lại được đi qua mô hình huấn luyện để

phân lớp quan điểm thành hai lớp positive và negative. Chúng tôi thu thập và tập hợp

tập dữ liệu kiểm tra dựa trên 3 sự kiện được người dùng follow @linkhay quan tâm

nhiều nhất (dựa vào số lượng “comment” và số lượng “like”). Tiếp đó, từ danh sách

cộng đồng đã được phân chia tại pha 1, những nhận xét này được phân ra cho từng

cộng đồng (trong khóa luận sử dụng số lượng là 3 cộng đồng). Tập những nhận xét

này sẽ được cho qua mô hình huấn luyện phân lớp, tổng hợp để đưa ra quan điểm cộng

đồng. Kết quả quan điểm của một cộng đồng là “đồng tình” nếu như số lượng quan

điểm “đồng tình” trong cộng đồng đó là lớn hơn số lượng quan điểm “không đồng

tình”, và ngược lại.

Page 49: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

38

Bảng 5: Kết quả quan điểm cộng đồng với sự kiện 1:

Positive Negative Kết quả

Cộng đồng 1 37 8 Positive

Cộng đồng 2 15 97 Negavite

Cộng đồng 3 3 37 Negative

Bảng 6: Kết quả quan điểm cộng đồng với sự kiện 2:

Positive Negative Kết quả

Cộng đồng 1 21 50 Negative

Cộng đồng 2 1 124 Negavite

Cộng đồng 3 0 35 Negative

Bảng 7: Kết quả quan điểm cộng đồng với sự kiện 3:

Positive Negative Kết quả

Cộng đồng 1 50 0 Positive

Cộng đồng 2 189 0 Positive

Cộng đồng 3 47 0 Positive

4.1.2. Đánh giá

a. Phát hiện cộng đồng mạng xã hội

Bảng 8: Kết quả đánh giá phát hiện cộng đồng mạng xã hội sử dụng CONGA

Vad Overlap

Mạng karate 4.45 1.03

Mạng cá heo ở Lusseau 4.91 1.03

Mạng Linkhay 5.03 1.04

Page 50: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

39

b. Bộ phân lớp Naïve Bayes

Bảng 9: Kết quả đánh giá bộ phân lớp Naïve Bayes

Precision Recal

Sự kiện 1 65.34% 75.77%

Sự kiện 2 63.12% 68.23%

Sự kiện 3 57.78% 50.18%

Nhận xét: Dựa vào kết quả đánh giá, có thể nhận thấy phương pháp khai phá quan

điểm cộng đồng sử dụng thuật toán CONGA và học máy Bayes mang lại kết quả ban

đầu hợp lý.

Page 51: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

40

4.3. Kết luận chương 4

Trong chương này, chúng tôi đã tiến hành thực nghiệm, xem xét và đánh giá kết

quả của quá trình thực nghiệm mô hình gom phát hiện và khai phá quan điểm cộng

đồng trên mạng xã hội Twitter với miền tiếng Việt sử dụng phương pháp phát hiện

cộng đồng CONGA và phân lớp quan điểm bằng học máy Bayes. Qua đánh giá cho

thấy kết quả có triển vọng tốt.

Page 52: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

41

KẾT LUẬN VÀ PHƯƠNG HƯỚNG

Kết quả đạt được của khóa luận

Trong khóa luận này, chúng tôi đã xây dựng được mô hình phát hiện và khai phá

quan điểm cộng đồng trên mạng xã hội và thực nghiệm trên mạng xã hội Twitter sử

dụng thuật toán phát hiện cộng đồng CONGA và phân lớp quan điểm với học máy

Naïve Bayes. Phương pháp này có ưu điểm sẽ phát hiện được các cộng đồng chồng

chéo nhau trong mạng xã hội, đồng thời đánh giá được quan điểm của từng cộng đồng

đó với độ đo khá tốt.

Chúng tôi đã cài đặt thử nghiệm trên tập người dùng Twitter cùng follow

@linkhay và cho đánh giá khả quan, mô hình phân nhóm cộng đồng khá chuNn xác,

đánh giá quan điểm người dùng đạt độ chính xác 63.34%, độ hồi tưởng 76,77%.

Định hướng tương lai

Cải tiến mô hình thuật toán CONGA nhằm đạt mức độ phân chia cộng đồng tốt

hơn dựa trên những mối liên kết Nn.

Áp dụng cho vùng dữ liệu lớn và tổng quan hơn.

Page 53: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

42

TÀI LIỆU THAM KHẢO

Tài liệu tiếng Việt:

[1] Hà Quang Thụy, Phan Xuân Hiếu, Đoàn Sơn, Nguyễn Trí Thành, Nguyễn Thu

Trang, Nguyễn CNm Tú (2009). Giáo trình khai phá dữ liệu, NXBGD, 2009

Tài liệu tiếng Anh:

[2] Hu, M. and Liu, B. (2006). Opinion extraction and summarization on the Web,

Proceedings of the 21th

National Conference on Artificial Intelligence (AAAI), 2006.

[3] Bermingham, Adam and Smeaton, Alan F. (2010) Classifying sentiment in

microblogs: is brevity an advantage? International Conference on Information and

Knowledge Management. (CIKM 2010 - 19th)

[4] David Easley and Jon Kleinberg (2010) Networks, Crowds, and Markets:

Reasoning about a Highly. Book of Cambridge University Press.

[5] Matthew A. Russell (2011) Mining the social web.

[6] Jiyang Chen (2010) Community Mining - Discovering Communities in Social

Networks. Thesis, University of Alberta.

[7] Dunja Mladenić (1998) Machine learning on non-homogeneous, distributed text

data. Doctoral Dissertation.

[8] Akshay Java, Xiaodan Song, Tim Finin, Delle Tseng (2007) Why We Twitter:

Understanding Microblogging Usage and Communities.

[9] Santo Fortunato (2010), Community detection in graphs, Technical Report,

Complex Networks and Systems Lagrange Laboratory, ISI Foundation, Torino,

ITALY, arXiv:0906.0612v2 (2010).

[10] M.E.J. Newman and M. Girvan (2003) Finding and evaluating community

structure in networks. Preprint cond-mat/0308217.

[11] Adriana S.Vivacqua, José A.Rodrigues Nt. (2009) Community-supported

collaborative navigation with FoxPeer_IJWBC FoxPeer versao publicada .

[12] M. Girvan, M. E. J. Newman (2002). Community structure in social and

biological networks, Proc. Natl. Acad. Sci., 99(12), 7821 (2002)

[13] Steve Gregory: An Algorithm to Find Overlapping Community Structure in

Networks. PKDD 2007

Page 54: PHÁT HI ỆN C ỘNG ĐỒNG S Ử DỤNG THU T TOÁN CONGA VÀ …uet.vnu.edu.vn/~thuyhq/Student_Thesis/K53_Vu_Thi_Thu... · 2014-10-28 · dựng d ựa trên ph ần m ềm CONGA

43

[14] Jason D. M. Rennie (2001) Improving Multi-class Text Classication with Naive

Bayes, Master of Science - Department of Electrical Engineering and Computer

Science on September 10, 2001.

[15] Li-ping Jing, Hou-Kuan Huang, Hong-Bo Shi (2002) Improved feature selection

approach TFIDF in text mining, Proceedings of the First International Conference on

Machine Learning and Cybernetics, Beijing, 4-5 November 2002.

Website

[16] http://twitter4j.org/en/