Tải bản đầy đủ (.pdf) (54 trang)

Phát hiện cộng đồng sử dụng thuật toán GONGA và khai phá quan điểm cộng đồng trên mạng xã hội

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (936.15 KB, 54 trang )





ĐẠ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





ĐẠ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




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


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




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.



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












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


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




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





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





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

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.


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.
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.
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ế,…
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: v
1
, v
2
,…,v
n
và tập E các
liên kết E = {(v
i
,v
j

)}.
Đầu ra: Tập các cộng đồng C
i
và tập hợp các đỉnh thuộc các cộng đồng đó: {C
1
,
C
2
, ,C
n
}
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
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
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
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)
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.
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.

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.
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

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
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(m
2
n). 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(n
3
).
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ớ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.

×