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

Nghiên cứu mô hình phân cụm có thứ bậc của các đồ thị dữ liệu (tt)

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 (1.49 MB, 26 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN THẾ ĐẠT

NGHIÊN CỨU MÔ HÌNH PHÂN CỤM CÓ THỨ BẬC
CÁC ĐỒ THỊ DỮ LIỆU

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ
KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2017


Công trình được hoàn thành tại:
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐẠI HỌC THÁI NGUYÊN

Người hướng dẫn khoa học: PGS. TS. ĐOÀN VĂN BAN

Phản biện 1: TS Lê Quang Minh
Phản biện 2: TS Vũ Mạnh Xuận

Luận văn được bảo vệ trước Hội đồng chấm luận văn họp tại:
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐẠI HỌC THÁI NGUYÊN
Ngày 10 tháng 6 năm 2017


Có thể tìm hiểu luận văn tại:
- Trung tâm Học liệu Đại học Thái Nguyên
- Thư viện Trường Đại học Công nghệ thông tin và Truyền thông


1
MỞ ĐẦU
1.1. Lý do chọn đề tài
Sự phát triển vượt bậc của công nghệ thông tin làm cho lượng
thông tin được lưu trữ trên các thiết bị nhớ không ngừng tăng lên.
Những đồ thị lớn và mạng (networks) là những mô hình toán học
tự nhiên cho những đối tượng tương tác với nhau như mối quan hệ giữa
con người trong mạng xã hội, các cấu trúc phân tử trong mạng sinh học,
mạng biểu diễn gene, ... Trong thực tế, cỡ của các mạng như thế khá lớn
mà khả năng phân tích, khai thác các tính chất của chúng lại rất hạn chế.
Hiện nay, các mạng xã hội ngày càng phát triển và phổ biến. Việc
phân cụm người dùng trong mạng có ý nghĩa to lớn trong thực tế như:
giúp cho việc truyền tải thông tin, tiếp thị bán hàng cũng như các hoạt
động kinh doanh,...nhắm đến một lượng đông đảo các đối tượng quan
tâm (thuộc cùng một cộng đồng) một cách dễ dàng hơn, ...[12].
Có nhiều thuật toán phân cụm khác nhau được đề xuất để phân
cụm các đồ thị dữ liệu nói chung và đồ thị mạng xã hội nói riêng, trong
đó các thuật toán phân cụm phân cấp (có thứ bậc) tỏ ra rất hiệu quả với
lớp bài toán này. Chính vì vậy, tôi đã chọn đề tài "Nghiên cứu mô hình
phân cụm có thứ bậc các đồ thị dữ liệu".
1.2. Mục tiêu của đề tài
 Tìm hiểu sâu về các thuật toán phân cụm phân cấp các đồ thị dữ liệu.
 Cài đặt các thuật toán phân cụm phân cấp đã nghiên cứu, tiến hành
thực nghiệm trên các bộ dữ liệu chuẩn (các mạng xã hội) nhằm đánh giá
kết quả của từng thuật toán, qua đó lựa chọn thuật toán phù hợp cho

việc phân cụm các mạng xã hội.


2
1.3. Đối tượng và phạm vi nghiên cứu


Đối tượng nghiên cứu: Tập đồ thị dữ liệu, các cụm trên đồ thị, các
mạng xã hội.



Phạm vi nghiên cứu


Phân cụm có thứ bậc trên đồ thị dữ liệu



Nghiên cứu một số kỹ thuật phân cụm phân cấp (có thứ bậc)
trong khai phá đồ thị dữ liệu nói chung và đồ thị mạng xã hội
nói riêng.

1.4. Phương pháp luận và phương pháp nghiên cứu
Kết hợp lý thuyết được thu nhận từ nhiều nguồn như các bài báo,
tài liệu, các công trình nghiên cứu liên quan đến phân cụm có thứ bậc
các đồ thị dữ liệu và các kỹ thuật phân cụm đồ thị dữ liệu, tiến hành xây
dựng ứng dụng thử nghiệm đánh giá hiệu quả của các thuật toán, làm
nổi bật kết quả nghiên cứu của luận văn.
1.5. Ý nghĩa khoa học của đề tài

Phân cụm có thứ bậc đồ thị dữ liệu nhằm tìm kiếm, phát hiện các
cụm, các mẫu dữ liệu tự nhiên tiềm ẩn và quan trọng trong tập đồ thị dữ
liệu lớn để từ đó cung cấp thông tin, tri thức cho việc ra quyết định.
Ngoài ra, phân cụm có thứ bậc đồ thị dữ liệu có thể được sử dụng
như một bước tiền xử lí cho các thuật toán khai phá dữ liệu đồ thị khác
như là phân loại và mô tả đặc điểm, có tác dụng trong việc phát hiện ra
các cụm, các mẫu theo yêu cầu.
Luận văn gồm có phần mở đầu, kết luận và 03 chương, cụ thể như sau:
Chương I. Phân cụm dữ liệu và phân cụm đồ thị dữ liệu
Chương II: Phân cụm có thứ bậc các đồ thị dữ liệu
Chương III. Ứng dụng thuật toán phân cụm phân cấp trong phân
cụm dữ liệu đồ thị các mạng xã hội


3
CHƯƠNG I. PHÂN CỤM DỮ LIỆU VÀ PHÂN CỤM
ĐỒ THỊ DỮ LIỆU
1.1. Phân cụm dữ liệu
1.1.1. Khái niệm và mục tiêu của phân cụm dữ liệu
Khái niệm phân cụm dữ liệu
Bản chất của phân cụm dữ liệu là quá trình nhóm một tập các đối
tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối
tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộc các
cụm khác nhau sẽ không tương đồng.
Mục tiêu của phân cụm dữ liệu
Để xác định các nhóm nội tại bên trong một bộ dữ liệu không có
nhãn, theo một tiêu chuẩn, phù hợp với nhu cầu của người sử dụng.
1.1.2. Một số khái niệm cần thiết khi tiếp cận phân cụm dữ liệu
➢ Phân loại các kiểu dữ liệu
 Phân loại các kiểu dữ liệu dựa trên kích thước miền

 Phân loại các kiểu dữ liệu dựa trên hệ đo
Độ đo tương tự và phi tương tự
 Không gian metric
 Thuộc tính khoảng cách
 Thuộc tính có thứ tự
 Thuộc tính tỉ lệ


4
1.1.3. Những kỹ thuật tiếp cận trong phân cụm dữ liệu
 Phương pháp phân cụm phân hoạch
 Phương pháp phân cụm dựa trên mật độ
 Phương pháp phân cụm dựa trên lưới
 Phương pháp phân cụm dựa trên mô hình
 Phương pháp phân cụm dữ liệu có liên kết
1.1.4. Các ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu có thể ứng dụng trong nhiều lĩnh vực như:
 Thương mại,
 Sinh học
 Thư viện
 Bảo hiểm
 Quy hoạch đô thị
 Nghiên cứu địa chấn
 WWW
1.2. Phân cụm đồ thị dữ liệu
Phân cụm đồ thị là phân chia đồ thị lớn thành các đồ thị con. Mỗi đồ thị
con là một cụm. Các đối tượng trong cụm là các đỉnh biểu diễn cho các
phần tử dữ liệu tương đồng về tính chất và trọng số trên các cạnh biểu
diễn cho độ tương tự (khoảng cách) giữa các cặp dữ liệu.
1.2.1. Mô hình đồ thị dữ liệu

Một số phương pháp mô hình đồ thị dữ liệu phổ biến (Istvan
Jonyer, 2001):

- Đồ thị  láng giềng ( -neighborhood graph):
- Đồ thị δ láng giềng (δ- neighborhood graph)
- Đồ thị k láng giềng gần nhất (k-nearest neighbor graph)
- Đồ thị liên thông mạnh


5
1.2.2. Các loại độ đo
Độ đo cho phân cụm dữ liệu tổng quát

- Đường kính cực tiểu (Minimum diameter - Charikar et al., 1997).
- K-Mean (K-median - Charikar et al., 1999).
- Tổng cực tiểu (Minimum Sum – Indyk 1999).
Độ đo cho phân cụm đồ thị

- Mật độ của cụm (intra-cluster density):
- Mật độ giữa các cụm (inter-cluster density)
- Lát cắt tỷ lệ (ratio cut- Hagan and Kahng, 1992)
- Lát cắt chuẩn (Normalized cut- Shi and Malik 2000)
- Độ đo tiêu chuẩn hai chiều (Bicriteria- Kannan et al, 2000)
- Độ đo đơn thể
Một số kỹ thuật phân cụm đồ thị dữ liệu

- Thuật toán phân cụm quang phổ
- Thuật toán phân cụm Markov
- Thuật toán pha tạp khác
1.3. Kết luận chương 1:

Chương này đã trình bày tổng quan về các kỹ thuật phân cụm dữ
liệu nói chung, ứng dụng của phân cụm dữ liệu. Qua đó làm tiền đề để
nghiên cứu sâu hơn về phân cụm đồ thị dữ liệu: khái niệm dữ liệu đồ
thị, các độ đo trong phân cụm dữ liệu nói chung và dữ liệu đồ thị nói
riêng, các kỹ thuật phân cụm dữ liệu đồ thị. Với các kiến thức đã nghiên
cứu về phân cụm dữ liệu đồ thị tổng quát, trong chương tiếp theo sẽ tập
trung trình bày kỹ hơn về các kỹ thuật phân cụm có thứ bậc (phân cấp)
dữ liệu đồ thị.


6
CHƯƠNG 2: PHÂN CỤM CÓ THỨ BẬC CÁC ĐỒ THỊ
DỮ LIỆU
2.1. Thuật toán CHAMELEON
CHAMELEON được phát triển bởi Karypis, Han và Kumar (1999)
(Matteucci). Thuật toán khảo sát mô hình hoá động trong phân cụm
phân cấp. Khi xử lý phân cụm, 2 cụm được hoà nhập nếu liên kết nối và
độ chặt (độ gần) giữa hai cụm được liên kết cao với liên kết nối và độ
chặt nội tại của các đối tượng nằm trong phạm vi các cụm.
2.2. Thuật toán CURE
CURE (Clustering Using Representatives – Phân cụm dữ liệu
sử dụng điểm đại diện) là thuật toán sử dụng chiến lược dưới lên
(Bottom-Up) của kĩ thuật phân cụm phân cấp. Thuật toán này định
nghĩa một số cố định các điểm đại diện nằm rải rác trong toàn bộ không
gian dữ liệu và được chọn để mô tả các cụm được hình thành. Các điểm
này được tạo ra bởi trước hết lựa chọn các đối tượng nằm rải rác trong
cụm và sau đó “co lại” hoặc di chuyển chúng về trung tâm cụm bằng
nhân tố co cụm. Quá trình này được lặp lại và như vậy trong quá trình
này có thể đo tỷ lệ gia tăng của cụm. Tại mỗi bước của thuật toán, hai
cụm có cặp các điểm đại diện gần nhau (mỗi điểm trong cặp thuộc về

mỗi cụm khác nhau) được hòa nhập. Như vậy, có nhiều hơn một điểm
đại diện mỗi cụm cho phép CURE khám phá được các cụm có hình
dạng không phải hình cầu. Việc co lại các cụm có tác dụng làm giảm tác
động của các phần tử ngoại lai.


7
2.3. Thuật toán Girvan-Newman
Giới thiệu về độ đo modularity
Một khái niệm mà chúng ta đã biết đó một cụm tốt khi các cạnh bên
trong cụm đó là dày đặc hơn. Một nút được kết nối tới nhiều nút khác
trong cụm hơn là kết nối tới các nút khác cụm. Một độ đo được định
nghĩa bởi Girvan và Newman [9, 13, 16] đó là độ đo đơn thể Q được sử
dụng cho việc đánh giá chất lượng của các cụm .
Giá trị modularity Q được tính như sau:
(2.15)
Một giá trị Q cao tức là thể hiện một phép phân hoạch cụm tốt.
Do đó nhiệm vụ của bài toán là đi tìm giá trị Q cao nhất có thể.
Độ đo trung gian
Độ đo trung gian của một đỉnh được tính bằng tổng số các đường
đi ngắn nhất ngang qua đỉnh đang xét chia cho tổng số các đường đi
ngắn nhất của toàn mạng. Nói cách khác thì độ đo trung gian là độ đo
dùng để xác định vị trí của tác nhân trong mạng mà nó có khả năng kết
nối đến những cặp tác nhân hay những nhóm tác nhân khác.

• Công thức tính:
- Cho đồ thị G = (V, E) có n đỉnh.
- Công thức tính Độ đo trung gian của đỉnh v :
(3.3)
Trong đó:

: Tổng số đường đi ngắn nhất từ đỉnh s đến t và có qua đỉnh v
(s ≠ v ≠ t).


8
: Tổng số các đường đi ngắn nhất từ đỉnh s đến t (s ≠ v ≠ t).
Thuật toán phân cụm Girvan-Newman
Girvan và Newman [12] đề xuất một thuật toán phân cụm phân
chia bao gồm việc lặp để xóa bỏ các cạnh từ đồ thị sử dụng độ đo trung
trung gian. Điểm mấu chốt khác trong thuật toán này đó là việc tính
toán lại độ đo trung gian cho tất cả các cạnh còn lại sau khi đã loại bỏ
một cạnh. Bước lặp dừng lại khi độ đo chất lượng phân cụm "đơn thể"
đạt giá trị tối ưu. Thuật toán được mô tả như sau:
Input: Đồ thị G = (V, E) với ma trận kề

.

Output: Kết quả phân cụm đồ thị G.
Bước 1. Tính toán điểm số độ đo trung gian cho tất cả các cạnh của đồ
thị.
Bước 2. Tìm cạnh với điểm số cao nhất và loại bỏ nó khỏi đồ thị. Nếu
hai hoặc nhiều hơn các cạnh có cùng điểm số cao nhất, lựa chọn ngẫu
nhiên một cạnh và loại bỏ chúng.
Bước 3. Tính toán lại điểm số trung gian của tất cả các cạnh còn lại.
Bước 4. Trả về các thành phần liên thông là các cụm của đồ thị G, tính
toán giá trị độ đo đơn thể chất lượng phân cụm Q(𝒞).
Lặp lại từ bước 2 cho tới khi Q(𝒞) đạt giá trị tối ưu.
Trong trường hợp xấu nhất, thuật toán có độ phức tạp là O(nm2)
trên đồ thị có m cạnh và n đỉnh và O(n3) với các đồ thị thưa.



9
2.4. Thuật toán CNM (Clauset-Newman-Moore)
Thuật toán CNM được đề xuất bởi Clauset, Newman và Moore [5]
là một phương pháp phân cụm phân cấp tích tụ. Thuật toán này sử dụng
độ đo đơn thể Q được đề xuất bởi Girvan và Newman như đã giới thiệu
ở chương 1 để làm độ đo cho việc tối ưu hóa kết quả phân cụm.
Một giá trị cao của Q thể hiện phép phân cụm tốt cho đồ thị hiện
tại, do đó nhiệm vụ của CNM là đi tìm giá trị Q cao nhất trong tập ứng
cử của nó. Việc tìm giá trị Q cực đại toàn cục trên tập các phương án có
thể là rất khó hay nói cách khác là tốn rất nhiều thời gian (không khả thi
với thời gian thực), do đó trong CNM, các tác giả đề xuất kỹ thuật tối
ưu hóa xấp xỉ hay còn gọi là phương pháp tối ưu tham lam.
như sau:

CNM sẽ khởi tạo ma trận

(2.19)


(2.20)
Các bước của thuật toán:
và ai tương ứng với công

1. Tính toán các giá trị khởi tạo của

thức (2.19), (2.20) và tạo cấu trúc max-heap với các phần tử lớn nhất
cho mỗi hàng của ma trận
2. Chọn giá trị


.
lớn nhất trong cấu trúc max-heap H, hợp nhất

hai cụm i, j tương ứng, cập nhật ma trận
tăng giá trị modularity Q lên một lượng

, heap H và ai, đồng thời
.


10
3. Lặp lại bước 2 cho tới khi chỉ còn lại 1 cụm.
Với các sự điều chỉnh ở trên, thuật toán CNM có độ phức tạp về
thời gian là O(mdlogn) với một mạng n đỉnh, m cạnh và d là độ sâu của
cây dendrogam, tức là CNM có hiệu năng rất cao.
2.5. Thuật toán Rosvall-Bergstrom
Về tư tưởng thì thuật toán sử dụng tiếp cận lý thuyết thông tin: coi
đồ thị dữ liệu đầu vào (mạng X) là một thông tin cần chuyển đi. Mô
hình truyền tin như hình

X sẽ được đưa qua bộ mã hóa và phân vào m modul (phân vào m
cụm) - hay còn gọi là nén thông tin, để được tín hiệu Y ở dạng nén, tiện
lợi trong việc truyền tin, giảm thiểu thời gian... Sau đó giải mã sẽ ước
lượng giá trị Z là ước lượng cho đầu vào X (khôi phục lại X từ Y nhận
được). Nhiệm vụ của việc mã hóa là làm cho Y có kích thước (độ dài
mô tả) nhỏ nhất có thể mà vẫn bảo đảm việc giải mã tìm ra X được tốt
nhất (đúng nhất).
Các bước của thuật toán như sau:
Bước 1: Với mạng đầu vào X biểu diễn bởi ma trận kề, có l liên kết, ta
lựa chọn một miêu tả:

.


11
Bước 2: Tính toán thông tin cần thiết để miêu tả X theo Y:

Bước 3: Tính chiều dài mô tả X:
L(Y) + L(X|Y) =
Bước 4: Lặp lại từ bước 1 đến 3 cho đến khi nào L(Y) + L(X|Y) không
thể giảm thêm được nữa (L(Y) + L(X|Y) là cực tiểu).
Kết quả: ta thu được số cụm là số modul m, xác định mỗi nút thuộc vào
cụm nào thông qua véc tơ chỉ định modul a, chất lượng phân cụm là
chiều dài tối thiểu của từ mã biểu diễn X.
2.6. Thuật toán INC
Thuật toán cải tiến được đề xuất để phân chia các cụm lớn thành
nhiều cụm con với sự quan tâm giống nhau hơn. Thuật toán chỉ xét các
đồ thị con chứa các đỉnh nằm trong một cụm lớn chứ không xét mối
quan hệ với cụm lớn khác, do công việc này đã xét ở bước phân cụm
với CNM. Do thuật toán sẽ làm gia tăng việc trích xuất ra nhiều cụm có
ý nghĩa ở mỗi vòng lặp.
➢ Nội dung thuật toán
Đầu vào: Đồ thị G =(V, E), tham số s: cận trên kích thước của cộng
đồng kết quả.
Đầu ra: Tập các cụm C = {c1, c2, ..., ck}, với |C| = k: số cộng đồng tìm
được và ci, i =1...k là các cụm tìm được.
function INC (Gr, s) // Thủ tục đệ quy của thuật toán
1. C'

CNM(G); // Phân cụm với thuật toán CNM


2. If |C'| = 1 then


12
3.

Đặt c1 là cụm duy nhất trong C';

4.

C

5.

return; // Thoát khỏi thủ tục đệ quy

6. c'

C

c1; // Thêm cụm c1 vào tập kết quả

;

7. for each cụm ci
8.

C' do

if |ci| = 1 then


9.

c'

c'

ci; // đưa ci vào cụm chứa cụm đơn

10. else if |ci| ≤ s then
11.

C

12.

else

13.
14.

C

ci; // Thêm cụm ci vào tập kết quả

G(V(ci), E(ci)); // Xây dựng đồ thị mới từ ci

Gi

INC(Gi, s); // Gọi đệ quy thuật toán


15. if |c'| ≠ 0 then
C

C

c';

➢ Độ phức tạp của thuật toán


Độ phức tạp của thuật toán INC là O(n2log2n) trong trường hợp
đồ thị thưa.



Tổng quát, độ phức tạp của INC sẽ là T(n) = O(mndlogn)

➢ Độ đo chất lượng phân cụm của thuật toán
Với một đồ thị con Gi(Vi, Ei), đặt li và lo là số cạnh bên trong và
bên ngoài của Gi. Cạnh bên trong là cạnh có hai đỉnh đều nằm trong đồ
thị Gi. Cạnh bên ngoài là cạnh có một đỉnh nằm trong và một đỉnh nằm
ngoài Gi. Giả sử ni = |Vi|, bậc trung bình bên trong của đồ thị Gi là 2li/ni
và bậc trung bình bên ngoài của Gi là lo/ni. Khi đó, độ đo mô đun hóa


13
mật độ D của phép phân chia đồ thị G thành tập cụm C = {c1, c2, ..., ck}
được tính bằng tổng bậc trung bình bên trong trừ đi bậc trung bình bên
ngoài:


(3.6)
2.7. Kết luận chương 2
Trong chương 2 này đã trình bày một số thuật toán phân cụm phân
cấp được sử dụng phổ biến cho bài toán phân cụm đồ thị dữ liệu, bao
gồm các thuật toán Chameleon, CURE, SoT, Girvan-Newman, CNM và
Rosvall-Bergstrom. Mỗi thuật toán có những ưu và nhược điểm riêng đã
được đánh giá chi tiết. Những đánh giá sơ bộ trên cũng là cơ sở để ta
lựa chọn một số thuật toán này để tiến hành cài đặt và thực nghiệm
trong chương 3 của luận văn trên các bộ dữ liệu chuẩn, qua đó một lần
nữa đánh giá lại được một cách chính xác các thuật toán trên và khả
năng ứng dụng của các thuật toán trong việc giải quyết các bài toán thực
tế.


14
CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN PHÂN CỤM PHÂN
CẤP TRONG PHÂN CỤM DỮ LIỆU ĐỒ THỊ
CÁC MẠNG XÃ HỘI
3.1. Bài toán phân cụm mạng xã hội
Bài toán: Phân cụm các nút dữ liệu trong đồ thị mạng xã hội và đưa
ra danh sách những nút mạng thuộc từng cụm đó.
Input: Đồ thị mạng xã hội G = (V, E) gồm tập V có các đỉnh: v1,
v2, ..., vn và tập E các cạnh liên kết E = {(vi, vj)}.
Output: Tập các cụm C = {C1, C2, ...,Cm} và tập hợp các đỉnh thuộc
cụm đó: Ci = {vi1, vi2, ..., vik} với i =1, 2, ...,m.
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ụm nằm trong đó và tìm hiểu về mối liên hệ bên
trong các cụm cũng như giữa các cụm 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.

3.2. Xây dựng chương trình ứng dụng phân cụm đồ thị mạng xã hội
Hệ thống được thiết kế gồm 3 giai đoạn:
Thu thập và rút trích dữ liệu.
Xử lý dữ liệu
Phân cụm đồ thị
➢ Giai đoạn 1: Thu thập và rút trích dữ liệu
Để tiến hành thực nghiệm, em đã thu thập 05 bộ dữ liệu được
public trên [16], [21], [31].
1. Zachary's karate club
2. Dolphin social network


15
3. Word adjacencies
4. Neural network
5. Coauthorships in network science
Tất cả các file có định dạng *.gml
➢ Giai đoạn 2: Xử lý dữ liệu
Các tập dữ liệu thu thập được cần phải qua giai đoạn xử lý và làm
sạch để phù hợp với việc tổ chức cấu trúc dữ liệu cho bài toán.
Tập dữ liệu ban đầu có dạng *.gml, sử dụng phần mềm để
chuyển tập dữ liệu này sang file văn bản .txt. Phải làm sạch bằng
cách loại bỏ bớt các cột dư thừa và thu được file .txt.
Định dạng file dữ liệu: danh sách các cạnh của đồ thị, gồm ký hiệu
của 2 đỉnh tạo nên cạnh đó.
➢ Giai đoạn 3: Xây dựng ứng dụng phân cụm đồ thị các mạng xã
hội
Dựa trên các nghiên cứu ở các chương trước, học viên tiến hành
cài đặt ứng dụng để đánh giá kết quả đạt được trên bộ dữ liệu thực
nghiệm với ba thuật toán đã nghiên cứu là Girvan-Newman, CNM

(Clauset-Newman-Moore) và Rosvall-Bergstrom.
Các chức năng chính của ứng dụng demo như sau:
 Cho phép người dùng nạp vào file đầu vào. File đầu vào có định
dạng là danh sách các cạnh của đồ thị cần phâm cụm.
 Phân cụm phân cấp đồ thị dữ liệu đầu vào theo các thuật toán được
lựa chọn (kết quả cho ra số cộng đồng, độ đo chất lượng phân cụm
Modularity, thời gian thực thi thuật toán và chi tiết danh sách các đỉnh
nào thuộc cộng đồng nào).


16
3.3. Các kết quả thực nghiệm và đánh giá
Để đánh giá kết quả của các thuật toán đã nghiên cứu, em tiến hành
thực nghiệm trên 05 bộ dữ liệu đã giới thiệu ở 3.2.1. Cấu hình máy tính
sử dụng để tiến hành thực nghiệm như sau:
- Hệ điều hành: Windows 8.1 64bit
- Processor: Intel(R) Celeron(R) CPU G1840 @2.80GHz
- RAM: 8GB.
- Ngôn ngữ lập trình sử dụng để thực nghiệm: Visual C++
Chất lượng phân cụm
(Modularity)

Số cụm
STT

Bộ dữ liệu
CNM

GN


RB

CN
M

Thời gian thực thi
(giây)

GN

RB

CNM

GN

RB

1

Karate

3

7

4

0.374


0.392

21.85

0.02

0.5

0.13

2

Dolphins

4

5

12

0.512

0.517

39.3

0.01

2.66


0.55

6

69

37

0.295

0.073

175.513

0.11

43.25

1.37

5

33

43

0.372

0.28


204.570

0.3

2409

102

276

277

402

0.96

0.956

699.82

0.2

4742

83

3

4


Word
adjacencies
Neural
network
Coauthorship

5

s in network
science

Bảng 3.1: Kết quả thực thi các thuật toán
Trong đó:

CNM: thuật toán Clauset - Newman - Moore;
GN: thuật toán Girvan-Newman;
GN: thuật toán Rosvall-Bergstrom


17

i gian

c

i (giây)

3.3.1. Thời gian thực thi thuật toán
5000
4500

4000
3500
3000
2500
2000
1500
1000
500
0

Clauset
Newma
nMoore
GirvanNewma
n

i u
Hình 3.12: Biểu đồ so sánh thời gian thực thi thuật toán

c thi
i gian
(giây)

3.3.2. Số cụm được phân chia
450
400
350
300
250
200

150
100
50
0

ClausetNewmanMoore

GirvanNewman

RosvallBergstrom

i u
Hình 3.13: Biểu đồ so sánh số lượng cụm


18
3.3.3. Chất lượng phân cụm
Do độ đo chất lượng phân cụm của thuật toán Rosvall-Bergstrom
là chiều dài trung bình của mã miêu tả, khác với độ đo chất lượng
modularity của hai thuật toán CNM và Girvan-Newman nên hình bên
dưới em chỉ so sánh hai thuật toán sau.

c thi
i gian
(giây)

1,2
1
0,8
0,6

0,4
0,2
0

ClausetNewman
-Moore

GirvanNewman

i u
Hình 3.14: Biểu đồ so sánh chất lượng phân cụm
3.4. Phân cụm đồ thị mạng xã hội dựa trên mối quan tâm của người
dùng
3.4.1. Giới thiệu
Theo nội dung nghiên cứu ở chương 2, có nhiều thuật toán được sử
dụng cho việc phân cụm trong mạng xã hội, tiêu biểu có thuật toán
CNM. Tuy nhiên, việc cực đại hóa giá trị mô đun hóa Q chưa hẳn đã
phản ánh đúng việc một mạng có cấu trúc cụm. Trên thực tế, điều này
chỉ đúng khi các cụm là các clique (giữa các đỉnh trong cụm đều phải có
cạnh nối). Để nhận được giá trị Q cực đại, các thuật toán này kết thúc
thường sinh ra nhiều cụm với kích thước rất lớn và chỉ một số cụm nhỏ.
Bởi vậy, luận văn đề xuất một cách tiếp cận lặp để trích xuất ra các
cụm cần quan tâm. Trong cách tiếp cận này, thuật toán bắt đầu với toàn


19
bộ mạng lớn và cho ra một số cụm con ở mỗi vòng lặp. Sau đó, ta sẽ
loại bỏ các cụm này ra khỏi mạng và thực hiện thuật toán đệ quy cho
các cụm lớn. Thuật toán thực hiện cho tới khi nào không thể chia nhỏ
các cụm được nữa hoặc khi kích thước các cụm này thỏa mãn kích

thước cận trên mong muốn của người dùng. Kỹ thuật này sẽ được tác
giả áp dụng cho bộ dữ liệu thực tế được thu thập trên mạng xã hội
Facebook.
3.4.2. Mô hình hóa dữ liệu
Để xây dựng mạng xã hội dựa trên mối quan tâm của người dùng,
ta thực hiện như sau:
- Từ dữ liệu thu thập được liên quan đến các bình luận của người
dùng, tiến hành tách ra các người dùng phân biệt đơn nhất bằng cách
trích rút theo tên và ID facebook của người dùng đó.
- Xác định các người dùng chung giữa hai tường Facebook bất kỳ
là người có tham gia bình luận trên cả hai tường Facebook đó.
- Biểu diễn dữ liệu dưới dạng ma trận vuông đối xứng M, kích
thước bằng với số lượng các tường Facebook cần xét.
3.4.3. Xây dựng dữ liệu


Thu thập dữ liệu mạng xã hội với Facebook API



Tiền xử lý dữ liệu, xây dựng cấu trúc mạng xã hội dựa trên mối
quan tâm của người dùng

3.4.4. Xây dựng ứng dụng
Các chức năng chính của ứng dụng demo như sau:
➢ Tự động thu thập và xây dựng dữ liệu
➢ Phân cụm đồ thị mạng xã hội với INC và CNM


20

Kết quả xuất ra số lượng cụm, thời gian thực hiện thuật toán và độ
đo chất lượng phân cụm của với các thuật toán INC và CNM để tiện
theo dõi, so sánh kết quả.

Hình 3.25: Kết quả chạy chương trình phân cụm với INC và CNM.
➢ Biểu diễn trực quan kết quả phân cụm với INC
3.4.5. Thực nghiệm và đánh giá CNM cải tiến
Để đánh giá kết quả của thuật toán INC, tác giả tiến hành thực
nghiệm trên bộ dữ liệu thu thập được ở 3.4.3. Cấu hình máy tính sử
dụng để tiến hành thực nghiệm như sau:
- Hệ điều hành: Windows 8.1 64bit
- Processor: Intel(R) Celeron(R) CPU G1840 @2.80GHz
- RAM: 8GB.


21

Bộ dữ
liệu

Faceb
ook
Dataset
(1500)

Chất lượng phân
cụm (Modularity)

Số cụm
s


Thời gian
thực thi (giây)

INC

CN
M

INC

CNM

INC

CNM

0

321

92

2480.094

1212.408

8.25

7.35


5

284

2651.66

10

224

2730.1

15

188

2785.667

20

168

2754.92

30

140

2713.86


40

137

2721.756

50

135

2719.86

Bảng 3.2: Kết quả thực thi thuật toán INC và CNM
➢ Thời gian thực thi thuật toán
Với bộ dữ liệu đầu vào thu thập được: đồ thị 1500 đỉnh và 109445
cạnh, thuật toán INC cho thời gian chạy là 6.48(s), CNM là 5.89(s).
Như vậy có thể thấy tốc độ của INC không chênh lệch nhiều so với
CNM.
➢ Số lượng cụm tìm được
Kết quả thực nghiệm tên bộ dữ liệu thu thập được cho thấy số
lượng cụm tìm được bởi thuật toán INC là 321 cụm, vượt trội so với
thuật toán CNM (92 cụm).
Khi người dùng đưa vào tham số s (cận trên của kích thước cụm),
thì số lượng cụm thu được tỷ lệ nghịch với giá trị của s.


22
➢ Chất lượng phân chia cụm
Kết quả thực nghiệm tên bộ dữ liệu thu thập được cho thấy chất

lượng phân cụm bởi thuật toán INC là 2480,094, vượt trội so với thuật
toán CNM (1212,408).
Khi người dùng đưa vào tham số s (cận trên của kích thước cụm),
thì chất lượng cụm cũng thay đổi. Chất lượng cụm biến thiên tăng dần
và đạt giá trị cao nhất khi s=15 (D = 2785.667), sau đó giảm dần khi s
tăng lên. Khi s càng tăng thì giá trị D sẽ tiến tới giá trị phân chia cụm
của CNM là 1212.408.
➢ Đánh giá trực quan trên biểu đồ kết quả
* Đánh giá chung:


Thuật toán INC cho thời gian thực thi nhanh, không lâu hơn so với
CNM là mấy.



Thuật toán cho số lượng cụm tìm thấy nhiều hơn rất nhiều so với
thuật toán CNM.



Khi giá trị s tăng dần thì số cụm tìm được giảm dần và chất lượng
cụm cũng giảm dần.



Chất lượng phân chia cụm của INC tốt hơn nhiều so với CNM xét
trên độ đo mô đun hóa mật độ.




Phân tích trực quan kết quả cho thấy việc phân chia cụm của INC
khá chính xác.

3.5. Kết luận chương 3
Trong chương 3, đã giới thiệu các kiến thức liên quan đến mạng xã
hội và bài toán phân cụm dữ liệu đồ thị mạng xã hội. Ta tiến hành thu
thập 05 bộ dữ liệu mạng xã hội và cài đặt, thực nghiệm 03 thuật toán đã
nghiên cứu trên 05 bộ dữ liệu này và tiến hành đánh giá kết quả đạt


23
được. Qua kết quả thực nghiệm cho thấy, thuật toán Clauset-NewmanMoore đang là thuật toán cho kết quả tốt nhất trong phân cụm dữ liệu
đồ thị mạng xã hội, cả về thời gian thực thi thuật toán, số lượng cụm tìm
được cũng như chất lượng phân cụm.
Do thuật toán CNM cho ra số cụm rất ít, và nhiều cụm có kích
thước lớn. Trên thực tế, với bài toán phân cụm đồ thị mạng xã hội cần
phân cụm thành các cụm có kích thước nhỏ nhằm phản ánh rõ nét tính
chất của các phần tử trong cụm (cụ thể ở đây là mối quan tâm của các
người dùng mạng xã hội tới các lĩnh vực, chủ đề cụ thể) nên thuật toán
INC cải tiến từ thuật toán CNM được xây dựng để đáp ứng mục tiêu đó,
qua đó hỗ trợ các hoạt động như truyền thông, quảng cáo, marketing
online hướng tới đúng những cụm đối tượng người dùng cụ thể.


×