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

PHÁT TRIỂN hệ THỐNG PHÁT HIỆN CHỦ đề ĐANG được QUAN tâm 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 (7.7 MB, 68 trang )

LỜI CẢM ƠN
Trước tiên em xin gửi lời cảm ơn chân thành đến thầy PGS.TS. Quản Thành Thơ.
Cảm ơn thầy đã dành nhiều công sức và hướng dẫn em tận tình để em có thể hoàn tất
đề tài này một cách thuận lợi.
Cảm ơn quý thầy cô giảng dạy cao học tại trường Đại học công nghệ thông tin đã
cung cấp cho em những tri thức bổ ích, tạo động lực cho em nghiên cứu khoa học và
thực hiện tốt đề tài này.
Em xin chân thành cảm ơn.
Tp. Hồ Chí Minh, tháng 7 năm 2017

Hứa Phước Trường


LỜI CAM ĐOAN
Tôi xin cam đoan những nội dung trong luận văn là kết quả nghiên cứu thực sự của cá
nhân dưới sự hướng dẫn của PGS.TS. Quản Thành Thơ. Tôi xin hoàn toàn chịu trách
nhiệm về luận văn của mình.
Học viên

Hứa Phước Trường


MỤC LỤC
LỜI CẢM ƠN .......................................................................................................... i
LỜI CAM ĐOAN ....................................................................................................ii
MỤC LỤC ............................................................................................................... 1
DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT ............................................... 5
DANH MỤC CÁC BẢNG ...................................................................................... 6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ................................................................. 7
MỞ ĐẦU ................................................................................................................. 9
Chương 1. TỔNG QUAN ................................................................................... 10


1.1

Lý do chọn đề tài .................................................................................... 10

1.2

Mục đích nghiên cứu .............................................................................. 11

1.3

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

1.3.1 Facebook Graph API.......................................................................... 12
1.3.2 Web crawling methodology ............................................................... 13
1.3.3 Máy học.............................................................................................. 13
1.3.4 Cấu trúc dữ liệu và giải thuật ............................................................. 14
1.4

Các nghiên cứu liên quan ....................................................................... 14

1.5

Ý nghĩa khoa học và thực tiễn của đề tài ............................................... 15

1.6

Cấu trúc luận văn .................................................................................... 16

Chương 2. CƠ SỞ LÝ THUYẾT........................................................................ 18
2.1


Phân phối chuẩn ..................................................................................... 18

2.2

Degeneracy ............................................................................................. 19

2.2.1 Định nghĩa .......................................................................................... 19
1


2.2.2 Giải thuật ............................................................................................ 20
2.3

Bron–Kerbosch ....................................................................................... 20

2.3.1 Định nghĩa .......................................................................................... 20
2.3.2 Nguyên tắc hoạt động ........................................................................ 21
2.3.3 Một số giải thuật tương đồng khác .................................................... 23
2.4

Binary Index Tree (Fenwick Tree) ......................................................... 25

2.5

Fibonacci Heap ....................................................................................... 27

2.5.1 Định nghĩa .......................................................................................... 27
2.5.2 Binomial Heap ................................................................................... 28
2.5.3 Lý do lựa chọn Fibonacci Heap ......................................................... 29

2.6

Readability.............................................................................................. 30

2.7

Support Vector Machine ........................................................................ 30

2.8

TF-IDF.................................................................................................... 31

Chương 3. HƯỚNG TIẾP CẬN ......................................................................... 33
3.1

Hệ điều hành ........................................................................................... 33

3.2

Hệ quản trị cơ sở dữ liệu quan hệ ........................................................... 35

3.2.1 Oracle ................................................................................................. 36
3.2.2 PostgreSQL ........................................................................................ 37
3.2.3 MySQL............................................................................................... 38
3.2.4 Hướng tiếp cận sử dụng PostgreSQL ................................................ 38
3.3

Mô hình phân tán CSDL ........................................................................ 39

3.3.1 Khái niệm ........................................................................................... 39

3.3.2 Hướng tiếp cận kết hợp sharding và nhân bản ................................... 39

2


3.4

Nhận diện nội dung ................................................................................ 40

3.4.1 Nhận diện nội dung của một trang web bằng Regular Expression .... 40
3.4.2 Nhận diện nội dung của một trang web bằng XPath ......................... 40
3.4.3 Nhận diện nội dung của nhiều trang web bằng scoring dấu hiệu ...... 40
3.5

Phân loại nội dung .................................................................................. 40

Chương 4. CÀI ĐẶT........................................................................................... 41
4.1

Cài đặt và cải tiến Readability ................................................................ 41

4.2

Xây dựng hệ thống thu thập và cơ sở dữ liệu phân tán .......................... 42

4.2.1 Zie Stack ............................................................................................ 43
4.2.2 Zie Crawler ........................................................................................ 43
4.2.3 Zie Data .............................................................................................. 44
4.3


Xây dựng hệ thống phân tích nội dung được lan truyền trên internet.... 44

4.4

Tìm chủ đề được lan tỏa nhiều nhất ....................................................... 46

Chương 5. THỬ NGHIỆM ................................................................................. 48
5.1

Module thu thập...................................................................................... 48

5.2

Module phân loại thảo luận .................................................................... 51

5.3

Module nhận diện nội dung .................................................................... 52

5.4

Module phân tích nội dung được lan tỏa trên internet ........................... 55

5.4.1 Kiểm thử tốc độ index dữ liệu ........................................................... 55
5.4.2 Kiểm thử tốc độ xuất dữ liệu tần số các keyword.............................. 56
5.4.3 Social Proof (bằng chứng xã hội) là gì .............................................. 57
5.4.4 Đề xuất phương pháp kiểm thử .......................................................... 57
5.4.5 Kết quả ............................................................................................... 62

3



5.4.6 Kiểm thử tốc độ phân tích chủ đề ...................................................... 62
Chương 6. KẾT LUẬN ....................................................................................... 63
6.1

Các kết quả đạt được .............................................................................. 63

6.2

Hạn chế ................................................................................................... 63

6.3

Hướng phát triển ..................................................................................... 64

DANH MỤC TÀI LIỆU THAM KHẢO .............................................................. 65

4


DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT
Viết tắt

Viết đầy đủ

Ý nghĩa

CNTT


Công nghệ thông tin

Công nghệ thông tin

HĐH

Hệ điều hành

Hệ điều hành

DB

Database

Cơ sở dữ liệu

API

Application program

Bộ giao thức lập trình ứng

interface

dụng

Nondeterministic

Thuật toán bất định trong thời


polynomial time

gian đa thức

Support Vector Machine

Kỹ thuật máy học sử dụng

NP

SVM

vector hỗ trợ

5


DANH MỤC CÁC BẢNG
Bảng 2-1 Benchmark so sánh các giải thuật BronKerbosch và Tomita ........................ 24
Bảng 3-1 So sánh hướng tiếp cận hệ điều hành ............................................................. 33
Bảng 5-1 Bảng đối chiếu độ tự tin ................................................................................. 48
Bảng 5-2 Tỷ lệ sai sót với độ tự tin 98% ....................................................................... 49
Bảng 5-3 Tỷ lệ sai số với độ tự tin 95%......................................................................... 49
Bảng 5-4 Tỷ lệ sai số với độ tự tin 80%......................................................................... 50
Bảng 5-5 Sai số áp dụng hệ số điều chỉnh ..................................................................... 51
Bảng 5-6 Kết quả phân tích nội dung được lan truyền nhất ngày 10/7/2017 ................ 58

6



DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1-1 Dự đoán tăng trưởng người dùng trên Facebook ở Việt Nam ........................ 10
Hình 1-2 Cấu trúc Facebook Graph API ........................................................................ 13
Hình 1-3 Luồng xử lý của một crawler .......................................................................... 13
Hình 2-1 Hàm mật độ phân phối Gauss ......................................................................... 18
Hình 2-2 Đồ thị Degeneracy .......................................................................................... 19
Hình 2-3 Giải thuật BronKerbosch đơn giản ................................................................. 22
Hình 2-4 Giải thuật BronKerbosch cải tiến ................................................................... 23
Hình 2-5 Giải thuật Tomita ............................................................................................ 23
Hình 2-6 Cấu trúc của một BIT...................................................................................... 26
Hình 2-7 Fibonacci heap ................................................................................................ 27
Hình 2-8 Binomial Heap ................................................................................................ 28
Hình 2-9 Ví dụ về SVM tuyến tính ................................................................................ 31
Hình 2-10 Tương quan giữa tần số và xếp hạng của ngram .......................................... 32
Hình 4-1 API nhận diện nội dung sử dụng Readability ................................................. 42
Hình 4-2 Sơ đồ thành phần mô hình phân tán của hệ thống thu thập ............................ 42
Hình 4-3 Cây AVL Tree các 4gram ............................................................................... 45
Hình 4-4 Cấu trúc Fenwick Tree mỗi node là 1 Fibonacci Heap .................................. 46
Hình 4-5 Ví dụ đồ thị 2gram .......................................................................................... 47
Hình 5-1 Danh sách chuyên mục phân loại ................................................................... 52
Hình 5-2 Readability không nhận diễn được eva.vn...................................................... 53

7


Hình 5-3 Readability nhận diện nội dung trên webtretho .............................................. 54
Hình 5-4 Kiểm thử tốc độ index dữ liệu ........................................................................ 55
Hình 5-5 Kiểm thử với nhiều test case ngẫu nhiên ........................................................ 56

8



MỞ ĐẦU
Chúng ta đang trải qua thời kì bùng nổ của nền kinh tế tri thức, nơi mà các thành
tựu khoa học công nghệ hiện hữu trong mọi mặt của đời sống vật chất và tinh thần của
con người. Những kĩ thuật mới, những tri thức mới được phát hiện mỗi ngày, càng góp
phần đẩy nhanh sự phát triển của nhân loại.
Ngày nay với sự bùng nổ thông tin, với nhiều loại thông tin khác nhau như văn
bản, hình ảnh và video. Nền công nghệ thông tin càng phát triển, người dùng càng dễ
tạo ra thông tin hơn và càng dễ phát tán thông tin ra cộng đồng hơn, điển hình là sự
phát triển của các mạng xã hội như Facebook, Twitter, Google+, Instagram... Đi cùng
với những lợi ích mà công nghệ thông tin mang lại, người dùng hiện nay đang phải
chịu sự quá tải thông tin và tiếp cận thông tin một cách bị động với hàng tỷ bài viết
mới mỗi ngày trên Facebook. Theo thống kê của SEC cứ mỗi ngày sẽ có 300 triệu bức
hình mới được tải lên Facebook và cứ mỗi 60 giây sẽ có 510.000 thảo luận được tải lên
Facebook và 293.000 trạng thái sẽ được viết mới trên Facebook.
Trong phạm vi đề tài này, một mô hình hệ thống bao gồm các thành phần: hệ
thống thu thập, hệ thống phân tích dựa trên thống kê và một module phân loại, một
module phân tích nội dung bài viết sẽ được nghiên cứu và đưa vào thực tiễn nhằm phát
triển một dịch vụ cung cấp những nội dung lan tỏa nhiều nhất trên Facebook cho người
dùng nhằm mục đích phục vụ giải trí. Bên cạnh đó, hệ thống sẽ phân tích những nội
dung lan tỏa nhiều nhất trên Facebook nhằm mục đích phục vụ những doanh nghiệp
chuyên về ngành marketing và ngành phân phối nội dung. Nhằm giúp doanh nghiệp dễ
dàng phản ứng nhanh nhất một cách khoa học tới những nội dung được nhiều người
dùng quan tâm nhất trên mạng xã hội, từ đó có thể phục vụ tham khảo, đo lường nhằm
tạo ra nội dung mới.

9



Chương 1. Tổng quan

Chương 1. TỔNG QUAN
1.1 Lý do chọn đề tài
Năm 2016, theo thống kê của chuyên trang Statista, Việt Nam có hơn 34,7 triệu
người dùng Facebook và sẽ tăng lên 37,3 triệu người dùng trong năm 2017.

Hình 1-1 Dự đoán tăng trưởng người dùng trên Facebook ở Việt Nam
Nguồn: (Statista - The Statistics Portal for Market Data, Market Research and Market
Studies, n.d.)

Với 34,8 triệu người dùng trong năm 2016 và tạo ra khoảng 40 triệu bài viết mỗi
ngày. Giới trẻ Việt Nam đang ngập trong biển thông tin và chính phủ Việt Nam cũng
gặp khó khăn trong việc khống chế và theo dõi tin tức lan truyền trên mạng xã hội.
Việc nhanh chóng phát hiện được nội dung đang lan truyền trên mạng xã hội làm cơ sở
cho một bảng xếp hạng tin tức và cơ sở để nhanh chóng phát hiện, loại bỏ nội dung lan
truyền nhầm mục đích chống phá, phá hoại, gây tiêu cực cho xã hội là nhiệm vụ và
phạm vi của đề tài này.
10


Chương 1. Tổng quan

1.2 Mục đích nghiên cứu
Các phương pháp phân tích chủ đề hiện tại trên thế giới thường được xây dựng
bằng phương pháp gom cụm văn bản trong đó mỗi văn bản được thể hiện bằng vector
với mỗi chiều là một từ hay cụm từ có nghĩa. Đối với phương pháp này, những văn bản
được xếp cùng một chủ đề là những văn bản có khoảng cách giữa 2 vector biểu diễn
cho văn bản đó nhỏ hơn so với các văn bản không cùng chủ đề. Thông thường giải
thuật gom cụm được sử dụng là K-means hay DBSCAN. Phương pháp này có độ phức

tạp có thể đạt được O(nlogn) nhưng nếu cấu trúc không được index tốt độ phức tạp có
thể lên tới O(n2), tất cả đều không phù hợp trong trường hợp cần phân tích dữ liệu theo
thời gian thực vì việc thêm vào một văn bản mới đòi hỏi phải gom cụm lại từ đầu.
Ngoài ra, giải thuật K-means còn yêu cầu phải nhập vào tham số K trước thì trong thực
tế của đề tài, K không phải là tham số cố định có thể dễ dàng dự đoán được.
Trong phạm vi đề tài này, em xin đề xuất phương pháp phân tích chủ đề từng
được đề cập trong bài báo khoa học "Mario Cataldi, Luigi Di Caro and Claudio
Schifanella. Emerging Topic Detection on Twitter based on Temporal and Social
Terms Evaluation, Università di Torino, 2010", trong đó các văn bản và từ, cụm từ sẽ
được phân tích để tìm ra những chủ đề bằng các công thức tính toán phân tích chuẩn,
đơn giản dựa trên tần số và không cần trải qua quá trình tiền xử lý như loại bỏ
stopword hay nhập từ điển.
Đề tài tập trung nghiên cứu hướng giải quyết bài toán tìm và nhận diện được nội
dung đang lan truyền trên trên mạng xã hội chủ yếu bằng phương pháp thống kê, sử
dụng những cấu trúc dữ liệu phù hợp để xây dựng hệ thống có thể vận hành bền bỉ và
cung cấp dữ liệu liên tục mỗi ngày cho doanh nghiệp.
Ngoài ra, đề tài còn có một số mục tiêu nhỏ cần thiết để đưa hệ thống vào vận
hành thực tế và cũng có ảnh hưởng tới tính khả dụng của đề tài:

11


Chương 1. Tổng quan

 Hệ thống thu thập phải nhanh, tiết kiệm chi phí vì đây là thành phần sẽ
chiếm chi phí vận hành cao nhất trong toàn bộ hệ thống và yêu cầu có khả
năng mở rộng không giới hạn.
 Hệ thống tự động nhận diện nội dung của một bài viết trên internet: có rất
nhiều tin tức lan truyền trên mạng xã hội ở Việt Nam vốn xuất phát điểm
là từ một trang tin tức hoặc website khác được người dùng chia sẽ lại hoặc

sao chép lại. Việc tự động nhận diện được nội dung của bài viết và bỏ qua
những nội dung nhiễu khác xung quanh sẽ giúp giảm thời gian phát triển
hệ thống thu thập và tăng độ chính xác cho thành phần phân tích xu hướng.
 Thành phần phân loại bài viết tự động dựa trên máy học: mỗi loại chủ đề
khác nhau sẽ có mức độ quan tâm khác nhau tùy thuộc vào cơ cấu dân số
và tệp người dùng của loại chủ đề đó. Việc đánh giá chung tất cả các loại
chủ đề sẽ dẫn tới sự bất công giữa các loại chủ đề và gây khó khăn cho
doanh nghiệp, người dùng khi phân tích. Ví dụ: theo kinh nghiệm kiểm thử
hệ thống thực tế, phần lớn những chủ đề lan tỏa nhiều nhất trên mạng xã
hội là thuộc lĩnh vực chính trị hoặc giải trí, các chủ đề về học thuật, chia sẽ
kinh nghiệm, kiến thức ít được lan tỏa hơn, ngoài ra, các nội dung tiêu cực
cũng thường được lan tỏa nhanh hơn các nội dung tích cực.
1.3

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

1.3.1 Facebook Graph API
Facebook Graph API là cách chủ yếu để lấy dữ liệu vào và ra khỏi đồ thị xã hội
của Facebook. Đó là một HTTP API mà mọi người có thể sử dụng để truy vấn dữ liệu,
gửi những bài viết mới, tải nội dung bài viết, hình ảnh và một loạt các nhiệm vụ khác
mà một ứng dụng có thể cần phải làm.

12


Chương 1. Tổng quan

Hình 1-2 Cấu trúc Facebook Graph API

1.3.2 Web crawling methodology

Web crawling là kỹ thuật vẫn chưa được chia sẽ nhiều và còn nhiều kỹ thuật bí
mật riêng của từng hệ thống web crawling khác nhau. Một hệ thống phân tích dữ liệu
thực tế như trong phạm vi đề tài này đòi hỏi nguồn dữ liệu liên tục và cập nhật nhanh.
Tuy nhiên nếu truy xuất liên tục sẽ gây ảnh hưởng tới nguồn cung cấp dữ liệu và hệ
thống sẽ có thể bị đánh dấu là spam và bị chặn bởi chính website nguồn.

Hình 1-3 Luồng xử lý của một crawler

1.3.3 Máy học
Máy học là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và
xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết
những vấn đề cụ thể. Máy học được ứng dụng rộng rãi trong nhiều lĩnh vực như y học,
thương mại, giáo dục …
Đề tài tập trung tìm hiểu một số thuật toán máy học phổ biến, đặt biệt là các mô
hình Support Vector Machine.
13


Chương 1. Tổng quan

1.3.4 Cấu trúc dữ liệu và giải thuật
Đề tài sẽ nghiên cứu và cài đặt, kết hợp các cấu trúc dữ liệu như AVL Tree,
Fibonacci Heap, Binary Index Tree nhằm mục đích xử lý tìm ra đồ thị những
keyword/phrase có tần số xuất hiện cao nhất với độ phức tạp nlog(n).
Bên cạnh đó, đề tài sẽ tập trung nghiên cứu, tìm giải thuật phù hợp để tìm ra
những chủ đề trong đồ thị các keyword/phrase bằng giải thuật tìm đồ thị đầy đủ Bron–
Kerbosch.

1.4 Các nghiên cứu liên quan
Trong (Mario Cataldi, 2010), tác giả đề xuất phương pháp phân tích những chủ đề

được lan truyền trên mạng xã hội Twitter bằng chủ yếu là phương pháp thống kê dựa
trên phân tích keyword được lan truyền và xây dựng một đồ thị các keyword để phân
tích tìm chủ đề. Đây là nghiên cứu ảnh hưởng nhiều nhất tới quá trình nghiên cứu và
thực thi của đề tài.
Trong (Aggarwal, An Introduction to Social Network Data Analytics, 2011), tác
giả đề cập tới nhiều khái niệm và phương pháp xử lý trên đồ thị mạng xã hội. Ở phần 3,
tác giả giới thiệu về phương pháp random walks từng được ứng dụng trong giải thuật
tính toán Pagerank của Google và là một trong những phương pháp hiệu quả để đánh
giá, đo lường mức độ quan trọng của một đường dẫn hoặc một node so với những node
khác. Trong phần 4, tác giả giới thiệu ứng dụng và phương pháp trong nhận diện một
nhóm cộng đồng có kết nối với nhau trong một đồ thị mạng xã hội. Tác giả đưa ra một
số giải thuật như Nomorlized Cuts và Modularity và đề xuất giải thuật Kernighan-Lin,
Spectral và Markov Clustering. Ngoài ra, trong mục này, tác giả có nói về phương
pháp tương tự như phát hiện cộng đồng trong một đồ thị mạng xã hội nhưng ứng dụng
trong phát hiện những xu hướng đang nổi trong một đồ thị.
Trong (Aggarwal, An Introduction to Social Network Data Analytics, 2011). Ở
phần 5, tác giả có một bài giới thiệu về ứng dụng của việc phân loại các node trong một
14


Chương 1. Tổng quan

đồ thị và ứng dụng của nó trong đồ thị mạng xã hội. Tác giả giới thiệu nhiều giải thuật
được ứng dụng trong việc này như Label Propagation và giải thuật ứng dụng Random
Walks. Phương pháp này có thể ứng dụng trong đề tài nhằm mục đích phân loại ra
những cụm các node khác nhau nhiều nhất mà mỗi cụm (hay mỗi cộng đồng trong
trường hợp đồ thị là một mạng xã hội) là thể hiện cho một chủ đề.
Trong (Aggarwal, An Introduction to Social Network Data Analytics, 2011), ở
phần 7, tác giả nghiên cứu về phân tích mức độ ảnh hưởng của một người trên mạng xã
hội. Trong đó mỗi người được thể hiện bằng một node trong đồ thị mạng xã hội. Việc

phân tích này giúp tìm ra những người có ảnh hưởng tới mạng xã hội nhất. Trong
trường hợp của đề tài này, nếu mỗi node là một ngram và mỗi cụm các ngram là một
chủ đề thì mức độ ảnh hưởng của một node tới các node khác chính là những ngram
được bàn luận nhiều nhất trên mạng xã hội (có thể thuộc một hoặc nhiều chủ đề với
cùng chủ thể được nói tới).
Trong (Aggarwal, An Introduction to Social Network Data Analytics, 2011). Ở
phần 13, tác giả giới thiệu một số phương pháp mining trên dữ liệu là text của mạng xã
hội. Các phương pháp bao gồm tìm kiếm bằng keyword, phân loại, gom cụm dựa trên
nhãn. Bên cạnh đó, tác giả giới thiệu một phương pháp "Linkage-based Cross Domain
Learning" tận dụng những đặc tính của một mạng xã hội mà ở đó các chủ đề có thể có
mối liên hệ nào đó với nhau (có những cạnh chung).
1.5

Ý nghĩa khoa học và thực tiễn của đề tài
Tính khoa học của đề tài:
 Xây dựng hệ thống thu thập dữ liệu trên mạng xã hội để có được dữ liệu
đủ lớn theo thời gian thực nhằm phân tích tìm xu hướng.
 Đề xuất phương pháp phân tích tìm những chủ đề là xu hướng trên mạng
xã hội trong ngôn ngữ tiếng Việt.

15


Chương 1. Tổng quan

 Sử dụng các cấu trúc dữ liệu mạnh và xây dựng mô hình phân tán nhằm
đảm bảo tốc độ xử lý do tính chất của đề tài cần phát hiện ra xu hướng
trong thời gian trễ càng ngắn càng tốt.
Tính mới của đề tài:
 Xử lý trên ngôn ngữ tiếng Việt.


 Phát hiện xu hướng theo thời gian thực.
Tính thực tiễn của đề tài:
 Cung cấp nguồn tham khảo cho các doanh nghiệp chuyên về sản xuất nội
dung, tăng tốc bắt kịp xu hướng thị trường.
 Cung cấp dữ liệu cho cơ quan ban ngành có trách nhiệm điều tra, quản lý
mạng xã hội.
 Bộ lọc dữ liệu, thông tin có chất lượng tốt tới người dùng

1.6 Cấu trúc luận văn
Nội dung quyển báo cáo này bao gồm 6 chương.
Chương 1 trình bày tổng quan về đề tài như lý do chọn, mục đích, đối tượng
nghiên cứu, các nghiên cứu liên quan và ý nghĩa khoa học, thực tiễn của đề tài.
Chương 2 trình bày cơ sở lý thuyết bao gồm các tri thức mang tính giới thiệu về
các cấu trúc dữ liệu và giải thuật được ứng dụng, những khái niệm, phương pháp xử lý
sẽ được ứng dụng trong đề tài.
Chương 3 trình bày về hướng tiếp cận được xây dựng trong đề tài, đầu tiên là đề
cập qua các hướng tiếp cận có thể sử dụng, hướng tiếp cận hiện tại và các bài toán liên
quan được đặt ra trong quá trình thực hiện đề tài.
Chương 4 giới thiệu quá trình cài đặt hướng tiếp cận.
16


Chương 1. Tổng quan

Chương 5 đề cập đến quá trình thử nghiệm, kiểm tra tính hiệu quả của hướng tiếp
cận.
Chương 6 trình bày kết luận của đề tài.

17



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

Chương 2. CƠ SỞ LÝ THUYẾT
2.1 Phân phối chuẩn
Phân phối chuẩn, còn gọi là phân phối Gauss, là một phân phối xác suất cực kì
quan trọng trong nhiều lĩnh vực. Là họ phân phối có dạng tổng quát giống nhau, chỉ
khác tham số vị trí (giá trị trung bình μ) và tỉ lệ (phương sai σ2).1
Phân phối chuẩn tắc (standard normal distribution) là phân phối chuẩn với giá trị
trung bình bằng 0 và phương sai bằng 1 (đường cong màu đỏ trong Hình 2-1 Hàm mật
độ phân phối Gauss). Phân phối chuẩn còn được gọi là đường cong chuông (bell curve)
vì đồ thị của mật độ xác suất có dạng chuông.2

Hình 2-1 Hàm mật độ phân phối Gauss
Nguồn: (Phân phối chuẩn - Wikipedia, 2017)

Theo Gauss, phần lớn các phân phối trong tự nhiên và trong thực tế là phân phối
Gauss. Xác xuất một crawler tiếp cận được một bài viết trong một chủ đề trên internet
1
2

(Phân phối chuẩn - Wikipedia, 2017)
(Phân phối chuẩn - Wikipedia, 2017)

18


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


cũng là phân phối Gauss nếu crawler được thiết kế tốt và có xác suất lựa chọn đường đi
lan truyền tiếp theo giữa các đường khác nhau là bằng nhau. Nếu crawler có thể đảm
bảo được phân phối của các chủ đề của các bài viết thu nhập là theo phân phối chuẩn.
Hoàn toàn khả thi khi dùng nguyên tắc phân tích mẫu để phân tích và phát hiện chủ đề
đưuợc lan truyền trên mạng xã hội.

2.2 Degeneracy
2.2.1 Định nghĩa
Trong lý thuyết đồ thị, đồ thị k-degenerate là một đồ thị vô hướng mà trong đó
mỗi đồ thị con sẽ có một điểm có bậc tối đa là k, có nghĩa là một vài điểm trong đồ thị
con sẽ có k hoặc ít hơn k cạnh. Degeneracy của một đồ thị là số k nhỏ nhất có thể.
Degeneracy của một đồ thị thể hiện độ thưa của một đồ thị.3

Hình 2-2 Đồ thị Degeneracy
Nguồn: (Degeneracy (graph theory) - Wikipedia, 2017)

Thứ tự k-degeneracy của một đồ thị là danh sách các điểm trong đồ thị mà ở đó
các điểm đứng sau sẽ có không có quá k cạnh chung với những điểm đứng trước nó.

3

(Degeneracy (graph theory) - Wikipedia, 2017)

19


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

2.2.2 Giải thuật
Giải thuật tìm k và sắp sắp các điểm trong đồ thị theo thứ tự k-degeneracy được

đề xuất bởi Matula và Beck năm 1983 bằng cách sử dụng một bucket queue theo bậc
của các điểm trong đồ thị để tìm và loại bỏ tuần tự các điểm có bậc nhỏ nhất trước. Số
k sẽ chính là bậc cao nhất của các điểm trong đồ thị tại thời điểm bị loại bỏ.
 Cài đặt danh sách L
 Duyệt qua đồ thị, tìm bậc dv của các điểm trong đồ thị G mà không tính
các điểm v trong L.
 Cài đặt mảng D trong đó D[i] là danh sách các điểm v không có trong L
mà i = dv.
 Đặt k = 0.
 Lặp n lần:
 Duyệt mảng D từ D[0], D[1],... tìm i nhỏ nhất mà tại đó D[i] khác rỗng.
 Đặt k = max(k, i)
 Chọn một điểm v trong D[i]. Thêm v và đầu L và xóa v khỏi D[i].
 Với mỗi điểm liền kề w của v mà không có trong L, giảm một bậc của
dw và dời w tới D phù hợp.
Giải thuật sẽ tìm ra k của đồ thị và danh sách L sẽ chứa các điểm theo thứ tự kdegeneracy của đồ thị.

2.3 Bron–Kerbosch
2.3.1 Định nghĩa
Bron–Kerbosch: giải thuật tìm những đồ thị đầy đủ lớn nhất trong một đồ thị vô
hướng. Theo đó, giải thuật sẽ giúp tìm ra tất cả những tập các điểm mà trong đó mỗi
cặp điểm sẽ được kết nối với nhau bằng một cạnh, và sẽ loại bỏ những điểm bên ngoài

20


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

đồ thị đầy đủ để đảm bảo tính đầy đủ của mỗi kết quả trả về. Giải thuật Bron-Kerbosch
được thiết kế bởi Joep Kerbosch và Coenraad Bron năm 1973.4


2.3.2 Nguyên tắc hoạt động
2.3.2.1 Bron-Korbosch đơn giản
Nguyên tắc hoạt động cơ bản của giải thuật Bron-Kerbosch thực chất là một giải
thuật đệ quy quay lui tìm tất cả những đồ thị đầy đủ lớn nhất trong một đồ thị G cho
trước. Cho 3 tập R, P và X, giải thuật Bron-Kerbosch sẽ duyệt tìm những đồ thị đầy đủ
lớn nhất trong đó chứa tất cả những điểm có trong R, kết hợp với một số điểm có trong
P và không chứa những điểm thuộc X.5
Tại mỗi vòng lặp P và X là hai tập hợp rời nhau mà hợp của chúng sẽ chứa những
điểm có thể tạo thành đồ thị đầy đủ khi thêm vào R. Hay nói một cách khác, P ∪ X là
tập các điểm có thể dùng để thêm vào R. Một khi P và X rỗng, sẽ không có điểm nào
có thể được thêm vào R, khi đó R sẽ là đồ thị đầy đủ lớn nhất và vòng lặp sẽ ghi R vào
kết quả.
Hàm đệ quy được cài đặt bằng cách đặt R, X khởi đầu với tập rỗng và P là tập tất
cả các điểm của đồ thị. Tại mỗi vòng lặp đệ quy, giải thuật sẽ xem xét những điểm
thuộc P: nếu không có điểm phù hợp, giải thuật sẽ xem R là đồ thị đầy đủ (nếu X cũng
rỗng), hoặc quay lui. Với mỗi điểm v chọn được từ P, giải thuật sẽ tạo một nhánh đệ
quy khác mà tại đó v được thêm vào R, và P và X sẽ bị giới hạn lại trong tập N(v) là
những điểm có cạnh chung với v, tại nhánh đệ quy này, giải thuật sẽ tìm và trả về kết
quả tất cả những đồ thị đầy đủ lớn nhất của R mà có chứa v. Sau đó, giải thuật sẽ

4
5

(Bron–Kerbosch algorithm - Wikipedia, 2017)
(Bron–Kerbosch algorithm - Wikipedia, 2017)

21



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

chuyển v từ P sang X để loại v khỏi những điểm được xét thêm vào đồ thị đầy đủ ở
những nhánh đệ quy sau.
Mã giả của giải thuật Bron-Kerbosch đơn giản:
BronKerbosch1(R, P, X):
if P and X are both empty:
report R as a maximal clique
for each vertex v in P:
BronKerbosch1(R ⋃ {v}, P ⋂ N(v), X ⋂ N(v))
P := P \ {v}
X := X ⋃ {v}
Hình 2-3 Giải thuật BronKerbosch đơn giản
Nguồn: (Bron–Kerbosch algorithm - Wikipedia, 2017)

Trong trường hợp tệ nhất, theo chứng minh của Moon & Moser (1965) mỗi đồ thị
có n điểm sẽ có tối đa 3n/3 đồ thị đầy đủ. Cho nên trong trường hợp tệ nhất, BronKerbosch sẽ có độ phức tạp O(3n/3).6
2.3.2.2 Bron-Kerbosch cải tiến
Giải thuật Bron-Kerbosch cải tiến kết hợp với K-degeneracy. Theo giải thuật, mỗi
đồ thị phải có một danh sách các điểm theo thứ tự degeneracy. Bron-Kerbosch cải tiến
sẽ duyệt qua các điểm theo thứ tự degeneracy thay gì thứ tự ngẫu nhiên như g.
BronKerbosch3(G):
P = V(G)
R = X = empty
for each vertex v in a degeneracy ordering of G:

6

(Bron–Kerbosch algorithm - Wikipedia, 2017)


22


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

BronKerbosch2(R ⋃ {v}, P ⋂ N(v), X ⋂ N(v))
P := P \ {v}
X := X ⋃ {v}
Hình 2-4 Giải thuật BronKerbosch cải tiến
Nguồn: (Bron–Kerbosch algorithm - Wikipedia, 2017)

Giải thuật Bron-Kerbosch sẽ hiệu quả hơn trong trường hợp đồ thị thưa. Và theo
kết quả thực tế thì giải thuật có hiệu quả tốt hơn với những đồ thị như đồ thị mạng lưới
mạng xã hội và những đồ thị thưa trong thực tế khác.
Bron-Kerbosch kết hợp k-degeneracy có độ phức tạp O(kn3k/3).7
2.3.3 Một số giải thuật tương đồng khác
2.3.3.1 Tomita
Tomita(R, P, X)
if P and X are both empty then
report R as a maximal clique
choose the pivot vertex u in P ∪ X as the vertex with the
highest number of neighbors in P
for each vertex v in P \ N(u) do
Tomita(R ∪ v, P ∩ N(v), X ∩ N(v))
P ← P \ v
X ← X ∪ v
Hình 2-5 Giải thuật Tomita
Nguồn: (Review of the Bron-Kerbosch algorithm and variations, 2013)

Tomita là phiên bản chỉnh sửa lại của giải thuật Bron-Kerbosch được phát triển

bởi Tomita. Tomita sử dụng một điểm được gọi là điểm pivot để giảm số lượng nhánh
7

(Bron–Kerbosch algorithm - Wikipedia, 2017)

23


×