HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Nguyễn Việt Tân
ĐỀ TÀI:Kỹ thuật phân lớp áp dụng cho dạng dữ liệu có liên kết
Chuyênngành: Truyền dữ liệu và mạng máy tính
Mãsố: 60.48.15
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI – 2012
Luậnvănđượchoànthànhtại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Ngườihướngdẫnkhoahọc.: PGS .TS Từ Minh Phương
Phảnbiện 1:
………………………………………………………………
………………………………………………………………
………………………………………………………………
Phảnbiện 2:
………………………………………………………………
………………………………………………………………
………………………………………………………………
LuậnvănsẽđượcbảovệtrướcHộiđồngchấmluậnvănthạcsĩtạiHọc
việnCôngnghệBưuchínhViễnthông
Vàolúc: giờ ngày tháng năm
Cóthểtìmhiểuluậnvăntại:
- ThưviệncủaHọcviệnCôngnghệBưuchínhViễnthông
-1-
MỞ
ĐẦU
Phân
loại
hay
phân
lớp
là
kỹ
thuật
khai
phá
dữ
liệu
đã
được
nghiên
cứu
và
sử
dụng
rộng
rãi.
Đây
là
phần
quan
trọng
trong
các
dạng ứng dụng như phân loại văn bản, nhận dạng chữ viết, giọng nói,
phân loại protein v.v.
Việc phân lớp là nhằm dự đoán các nhãn phân
lớp cho những mẫu chưa biết hoặc cho các bộ dữ liệu mới. Đầu vào
cho việc phân lớp là một tập các mẫu dữ liệu huấn luyện, trong đó
các
đối
tượng
đều
đã
có
nhãn
phân
lớp.
Đầu
ra
sẽ
là
một
mô
hình
phân lớp dựa trên những mẫu huấn luyện đã cho.
Trên thực tế tồn tại một số bài toán trong đó giữa các đối tượng
cần phân lớp có các liên kết với nhau. Chẳng hạn, khi phân loại trang
web, ngoài nội dung trang, các trang lại có các siêu liên kết. Hay khi
phân loại protein, các protein thường có các liên kết tương ứng với
quan hệ tương tác giữa chúng. Các quan hệ liên kết cũng là dạng dữ
liệu tiêu biểu với các ứng dụng cho mạng máy tính. Từ thực tế này,
một vấn đề đặt ra là tận dụng các thông tin liên kết trong dữ liệu để
tăng hiệu quả và độ chính xác cho thuật toán phân lớp.
Nguyên tắc chung của việc phân lớp dữ liệu có liên kết là tạo ra
các
ràng
buộc,
theo
đó
những
đối
tượng
liên
kết
với
nhau
cần
có
nhãn phân lớp tương tự nhau. Dựa trên nguyên tắc chung này, nhiều
thuật toán và kỹ thuật cụ thể đã được phát triển và ứng dụng.
Một trong những tiếp cận sớm nhất chú ý tới mối liên kết giữa
các đối tượng trong dữ liệu có liên kết là của Chakrabarti và các cộng
-2-
sự
[3].
Họ
đề
xuất
một
mô
hình
xác
suất
cho
phân
loại
trang
web
bằng cách sử dụng kết hợp giữa nội dung của trang đã phân lớp, nhãn
phân
lớp
của
các
trang
liên
kết
và
nội
dung
của
các
trang
liên
kết.
Gần đây, Macskassy và Provost [9] đã thử nghiệm phân lớp tập hợp
cho
dữ
liệu
liên
kết
bằng
cách
kết
hợp
một
bộ
phân
lớp
liên
kết
(relation classifier) với một phương thức suy luận tập hợp (collective
inferencing). Sen và các cộng sự [10] cũng đã so sánh bốn phương
pháp phân loại tập hợp cho dữ liệu có liên kết. Bên cạnh các phương
pháp
phân
loại
sử
dụng
bộ
phân
lớp
liên
kết,
một
hướng
tiếp
cận
khác
là
phương
pháp
học
bán
giám
sát
(semi-supervised
learning)
dựa trên đồ thị, trong đó tiêu biểu phải kể đến phương pháp trường
ngẫu
nhiên
Gauss
(Gaussian
random
field)
[12],
phương
pháp
nhất
quán địa phương và toàn cục [11].
Luận
văn
này
sẽ
tập
trung
vào
việc
nghiên
cứu,
phân
tích
và
đánh giá thực nghiệm các kỹ thuật phân lớp cho dữ liệu có liên kết.
Một nội dung quan trọng của luận văn là nghiên cứu việc kết hợp các
phương pháp đã có để tận dụng cả thông tin liên kết lẫn thông tin cục
bộ của dữ liệu; cụ thể là phương pháp phân lớp tập hợp kết hợp một
bộ
phân
lớp
liên
kết,
một
bộ
phân
lớp
cục
bộ
và
một
phương thức
suy luận tập hợp. Kết quả phân lớp theo cách này sẽ được đánh giá
và so sánh với kết quả của các phương pháp phân lớp sử dụng từng
bộ phân lớp riêng lẻ cũng như so sánh với phương pháp phân lớp liên
kết không sử dụng suy luận tập hợp.
Liên quan tới nội dung của luận văn, chúng tôi cũng đã đề xuất
một phương pháp khác để phân lớp cho dữ liệu có liên kết. Phương
-3-
pháp này kết hợp một bộ phân lớp liên kết với một bộ phân lớp cục
bộ bằng kỹ thuật Co-training. Nội dung và kết quả của phương pháp
này đã được báo cáo tại Hội thảo Quốc gia lần thứ XIV "Một số vấn
đề chọn lọc của Công nghệ Thông tin và Truyền thông" tại Cần Thơ
vào tháng 10 năm 2011.
Luận văn được chia thành 3 chương chính như sau:
Chương
1
-
Tổng quan về phân lớp dữ liệu: Chương này trình
bày các khái niệm về phân lớp, các bước đề giải quyết một một bài
toán phân lớp và một số vấn đề cần quan tâm trong việc phân lớp dữ
liệu.
Bốn
thuật
toán
phân
lớp
phổ
biến
hiện
nay
dành
cho
dữ
liệu
dạng truyền thống là cây quyết định, mạng Bayes, mạng Nơ-ron và
SVM cũng sẽ được trình trong chương này.
Chương
2
-
Phân lớp cho dữ liệu có liên kết: Giới thiệu về dạng
dữ liệu có liên kết và các phương pháp phân lớp cho dữ liệu có liên
kết.
Ngoài
ra,
chương
này
còn
trình
bày
bốn
thuật
toán
phân
lớp
dành cho dữ liệu liên kết là wvRN, CDRN, NBC, NLB cùng với ba
phương thức suy luận tập hợp áp dụng để
phân lớp tập hợp là GS,
RL, IC.
Chương
3
-
Thực nghiệm và kết quả: Chương này sẽ mô tả chi
tiết
về
các
công
cụ,
dữ
liệu,
phương
pháp
thực
nghiệm
và
toàn
bộ
quá
trình
tiến
hành
thực
nghiệm.
Kết
quả
thực
nghiệm
theo
các
phương pháp khác nhau cũng sẽ được phân tích, so sánh và đánh giá.
-4-
Chương
I
-
TỔNG
QUAN
VỀ
PHÂN
LỚP
DỮ
LIỆU
1.1.
Giới
thiệu
về
phân
lớp
dữ
liệu
Phân
lớp
là
một
trong
những
kỹ
thuật
phổ
biến
nhất
của
học
máy và khai phá dữ liệu. Đây là một tiến trình xử lý nhằm xếp các
mẫu dữ liệu hay các đối tượng vào một trong các lớp đã được định
nghĩa trước. Cách sắp xếp này dựa vào giá trị của các thuộc tính của
một mẫu dữ liệu hay đối tượng. Sau khi đã xếp tất cả các đối tượng
biết trước vào các lớp tương ứng, lúc này mỗi lớp được đặc trưng bởi
tập các thuộc tính của các đối tượng chứa trong lớp đó.
Thông thường, các bộ phân lớp có thể học dựa trên các mẫu dữ
liệu huấn luyện. Dữ liệu dùng để huấn luyện này bao gồm các thông
tin
về
x
và
y
cho
mỗi
điểm
dữ
liệu
(data-point),
trong
đó
x
là
một
vector chứa các đặc trưng của mẫu dữ liệu và y biểu thị một nhóm
các nhãn phân lớp. Những nhãn phân lớp này chỉ có thể nhận một số
hữu hạn các giá trị.
Bài toán phân lớp được phát biểu như sau: Cho một tập các mẫu
huấn luyện (xi1, xi2, …., xik, yi), i=1,….,N. Nhiệm vụ là phải ước lượng
được một bộ phân lớp hay một mô hình xấp xỉ dưới dạng một hàm y
= f(x) chưa biết mà có thể phân lớp chính xác cho bất kỳ mẫu nào
thuộc tập các mẫu huấn luyện.
Có nhiều cách để biểu diễn một mô hình phân lớp và có nhiều
thuật toán giải quyết vấn đề này. Các thuật toán phân lớp tiêu biểu
bao gồm: mạng nơ-ron, cây quyết định, mạng Bayes, kNN, SVM v.v.
-5-
Tất cả các mô hình phân lớp dựa trên những thuật toán kể trên đều có
khả
năng
phân
lớp
cho
các
mẫu
dữ
liệu
mới
dựa
vào
những
mẫu
tương tự đã được học.
Quá trình phân lớp dữ liệu gồm hai bước:
Bước 1
-
Học
(training):
Mục
đích
của
bước
này
là
xây
dựng
một mô hình xác định một tập các lớp dữ liệu. Mô hình này được xây
dựng bằng cách phân tích các bộ dữ liệu của một cơ sở dữ liệu, mỗi
bộ dữ liệu được xác định bởi giá trị của các thuộc tính. Giả sử mỗi bộ
dữ liệu đã thuộc về một trong các lớp đã đựơc định nghĩa trước, điều
này
được
xác
định
bởi
một
trong
các
thuộc
tính,
gọi
là
thuộc
tính
phân lớp. Trong ngữ cảnh của bài toán phân lớp, mỗi bộ dữ liệu được
xem như
là
một
mẫu,
một
ví
dụ,
hay
một
đối
tượng.
Những bộ
dữ
liệu được phân tích để xây dựng mô hình phân lớp được lấy từ trong
tập dữ liệu học hay dữ liệu huấn luyện.
Những bộ dữ liệu riêng lẻ tạo thành tập dữ liệu huấn luyện còn
gọi là những mẫu huấn luyện (training samples) và được chọn ngẫu
nhiên từ một kho các mẫu. Bước này được xem là học có giám sát,
ngược
lại
với
học
có
giám
sát
là
học
không
có
giám
sát
(unsupervised
learing),
tiêu
biểu
là
bài
toán
gom
cụm
(clustering)
trong đó các lớp mà các mẫu huấn luyện thuộc về là không biết trước
và số lớp dữ liệu cũng không được biết trước.
.Mô hình phân lớp được đưa ra sau khi đã phân tích xong tập
dữ liệu huấn luyện thường có dạng là những quy tắc phân lớp, cây
quyết định hay các công thức toán học.
-6-
Bước 2
- Phân lớp (classification): Bước này sử dụng mô hình
phân lớp đã được xây dựng ở bước 1 để kiểm tra, đánh giá và thực
hiện phân lớp.
Trong mô
hình
phân lớp,
thuật toán
phân lớp
giữ
vai trò trung
tâm, quyết định tới sự thành công của mô hình phân lớp. Do vậy chìa
khóa của vấn đề phân lớp dữ liệu là tìm ra được một thuật toán phân
lớp
nhanh,
hiệu
quả,
có
độ
chính
xác
cao
và
có
khả
năng
mở
rộng
được.
Bước
đầu tiên
là
đánh
giá độ
chính
xác
của
mô
hình
phân
lớp
bằng cách sử dụng một tập các mẫu đã được phân lớp để kiểm tra gọi
là bộ thử (test set). Những mẫu này được chọn ngẫu nhiên và độc lập
với các mẫu đã được học ở bước 1 gọi là mẫu thử (test sample).
Nếu độ chính xác của một
mô hình là chấp nhận được, thì mô
hình đó có thể được sử dụng để phân lớp những bộ dữ liệu mới hoặc
những mẫu dữ liệu mà giá trị nhãn phân lớp là chưa biết.
1.2.
Các
phương
pháp
đánh
giá
độ
chính
xác
của
mô
hình
phân
lớp
Ước lượng độ chính xác của bộ phân lớp là quan trọng ở chỗ nó
cho phép dự đoán được độ chính xác của các kết quả phân lớp những
dữ liệu tương lai. Độ chính xác còn giúp so sánh các mô hình phân
lớp khác nhau. Hai kỹ thuật đánh giá độ chính xác phổ biến hiện nay
là
holdout
và
k-fold
cross-validation.
Cả
hai
kỹ
thuật
này
đều
dựa
trên các phân hoạch ngẫu nhiên tập dữ liệu ban đầu.
-7-
Trong phương pháp holdout, dữ liệu dưa ra được phân chia ngẫu
nhiên thành 2 phần: tập dữ liệu huấn luyện và tập dữ liệu kiểm tra.
Thông thường 2/3 dữ liệu cấp cho tập dữ liệu huấn luyện, phần còn
lại
cho
tập
dữ
liệu
kiểm
tra.
Tập
huấn
luyện
dùng
để
xây
dựng
bộ
phân
lớp,
sau
đó
độ
chính
xác
của
bộ
phân
lớp
này
sẽ
được
ước
lượng dựa trên tập kiểm tra.
Trong phương pháp k-fold cross validation, tập dữ liệu ban đầu
được
chia
ngẫu
nhiên
thành
k
tập
con
(fold)
có
kích
thước
xấp
xỉ
nhau S1, S2, …, Sk. Quá trình học và kiểm tra được thực hiện k lần.
Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại hợp thành
tập dữ liệu đào tạo.
Độ chính xác là toàn bộ số phân lớp đúng chia cho tổng số mẫu
của tập dữ liệu ban đầu.
1.3.
Một
số
vấn
đề
trong
bài
toán
phân
lớp
Trong những năm gần đây, có rất nhiều thuật toán cải tiến cho
bài
toán
phân
lớp
nhưng
chưa
có
một
thuật
toán
nào
hay
một
hệ
thống phân lớp nào có khả năng phân lớp chính xác tuyệt đối cho các
mẫu hay các đối tượng mới là những mẫu chưa được học. Độ chính
xác của các thuật toán phân lớp chỉ đạt được ở một mức độ nhất định
đối với tập mẫu thử. Độ chính xác này có thể gần như tuyệt đối hay
thấp
phụ
thuộc
vào
sự
trùng
hợp
của
tập
mẫu
thử
với
tập
mẫu
đã
được học. Gốc của vấn đề này là tính quá khớp (overfitting) và quá
khái quát (overgeneralization) của các thuật toán phân lớp này. Một
số thuật toán đưa ra mô hình phân lớp rất phức tạp để có thể phân lớp
-8-
chính xác cho các mẫu học nhưng không chắc rằng mô hình này có
thể phân lớp chính xác cho các mẫu mới, đây chính là sự quá khớp.
Rõ hơn, thuật toán mang tính quá khớp dữ liệu nghĩa là mô hình của
thuật toán này đưa ra phân lớp rất tốt cho những mẫu dữ liệu đã biết
nhưng không thể phân lớp chính xác cho các mẫu dữ liệu mới chưa
được biết trước. Sự quá khái quát xuất hiện khi hệ thống sử dụng dữ
liệu sẵn có và cố gắng phân tích cho số lượng lớn dữ liệu với các luật
quá khái quát. Cả hai vấn đề này có thể là nguyên nhân của độ chính
xác
phân
lớp
không
tốt.
Đây
là
lĩnh
vực
nghiên
cứu
của
các
thuật
toán
thống
kê,
như
mạng
Neural
cây
quyết
định,
Support
Vector
Machine.
1.4.
Một
số
thuật
toán
phân
lớp
truyền
thống
Bốn
thuật
toán
phân
lớp
truyền
thống
sẽ
được
trình
bày
trong
phần này tương ứng với 4 mục con sau:
1.4.1.
Cây
quyết
định
(Decision
Trees)
1.4.2.
Mạng
Bayes
(Bayesian
network)
1.4.3.
Mạng
Nơ-ron
(Neural
Network)
1.4.4.
Support
Vector
Machine
(SVM)
-9-
Chương
2
-
PHÂN
LỚP
CHO
DỮ
LIỆU
CÓ
LIÊN
KẾT
2.1.
Giới
thiệu
về
dữ
liệu
có
liên
kết
Dữ
liệu
có
liên
kết,
được
gọi
là
Networked
data
hay
Linked
data, là trường
hợp đặc
biệt của
dữ
liệu
quan
hệ
khi mà các
đối
tượng trong đó có các kết nối với nhau. Ví dụ, các
trang web được kết nối với nhau bằng các siêu liên kết, tài
liệu được kết nối bằng các trích dẫn, tham khảo v.v.
Các
phương pháp
phân lớp
cho
dữ
liệu liên
kết
về
cơ
bản dựa
trên giả thiết Homophily (nguyên lý đồng đẳng): “các đối tượng liên
quan với nhau có xu hướng thuộc cùng một lớp”. Đây là một nguyên
lý dựa trên các nghiên cứu và phân tích trên mạng xã hội cho rằng:
sự giao tiếp giữa các đối tượng giống nhau xảy ra với tỉ lệ cao hơn so
với
giao
tiếp
giữa
các
đối
tượng
không
giống
nhau.
Các
đối
tượng
thường tìm kiếm, lựa chọn và kết bạn với những người giống với họ,
có thể là về giới tính, về tuổi tác, về địa vị xã hội, về tầng lớp, về đặc
điểm hành vi cá nhân, về niềm tin, lý tưởng.v.v.
Vì dựa trên giả thiết Homophily nên nguyên tắc chung của các
bộ phân lớp quan hệ cho dữ liệu liên kết là tạo ra các ràng buộc, theo
đó những đối tượng liên kết với nhau cần có nhãn phân lớp tương tự
nhau. Hầu hết các bộ phân lớp kiểu này chỉ quan tâm tới liên kết giữa
các nút chứ không quan tới các thuộc tính cục bộ
của từng nút.
Một trong những vấn đề chính cần lưu ý khi phân lớp dữ liệu có
liên kết là việc dự đoán nhãn của một nút có thể có ảnh hưởng đến
-10-
các nút mà nó liên kết tới, và ngược lại. Hơn nữa, các nút không có
liên kết trực tiếp lại có thể liên kết gián tiếp thông qua một chuỗi các
liên kết. Chính vì vậy, một kỹ thuật đã được công nhận rộng rãi là:
các nút nên được
ước tính và suy ra cùng một lúc thay vì từng nút
một.
Kỹ
thuật
này
được
gọi
là
phân
lớp
tập
hợp
(collective
classification).
Bài toán phân lớp tập hợp cho dữ liệu có liên kết được phát biểu
như sau: Cho đồ thị G
=
(V, E, X) trong đó: V là tập nút (đỉnh) gồm n
nút
tương
ứng
với
n
đối
tượng;
E
là
tập
các
cạnh
–
e
i, j
E
biểu
thị
một cạnh nối giữa 2 nút vi và vj ; Xi là thuộc tính phân lớp của nút vi
có thể nhận giá trị c
X. Cho trước các giá trị
xi thuộc Xi cho tập
con V
K
V.
Khi đó, phân lớp tập hợp là một tiến trình kết hợp một
thuật
toán
phân
lớp
liên
kết
với
một
phép
suy
luận
tập
hợp
để
suy
luận đồng thời các giá trị xi thuộc Xi cho các đỉnh còn lại, V
U
=V- V
K
.
Như vậy, phân lớp tập hợp cho dữ liệu liên kết được thực hiện
nhờ hai thủ tục:
Thủ
tục
thứ
nhất
là
phân
lớp
liên
kết
(relational
classification), theo đó nhãn phân lớp được xác định dựa trên
các hàng xóm thông qua một thuật toán phân lớp liên kết;
Thủ
tục
thứ
hai
là
suy
luận
tập
hợp
(collective
inference).
Bản chất của bước này là xác định nhãn phân lớp đồng thời
cho các nút trên mạng.
2.2.
Các
thuật
toán
phân
lớp
liên
kết
-11-
Bốn
thuật
toán
phân
lớp
liên
kết
sẽ
được
trình
bày
trong
phần
này tương ứng với 4 mục con sau:
2.2.1.
Thuật
toán
phân
lớp
liên
kết
Weighted-Vote
Relational
Neighbor
(wvRN)
2.2.2.
Thuật
toán
phân
lớp
liên
kết
Class-Distribution
Relational
Neighbor
(CDRN)
2.2.3.
Thuật
toán
phân
lớp
liên
kết
Network-Only
Bayes
Classifier
(NBC)
2.2.4.
Thuật
toán
phân
lớp
liên
kết
Network-Only
Link-
Based
Classifier
(NLB)
2.3.
Phân
lớp
tập
hợp
và
các
phương
thức
suy
luận
tập
hợp
Để
phân
lớp
dữ
liệu
dạng
liên
kết
người
ta
có
thể
chỉ
cần
sử
dụng một thuật toán phân lớp liên kết. Tuy nhiên như đã trình bày ở
trên, phương pháp phân lớp tập hợp kết hợp một thuật toán phân lớp
liên kết với một phương thức suy luận tập hợp ngày càng được quan
tâm và áp dụng.
Phương thức
suy luận
tập
hợp
giúp
suy luận
và
ước
tính
đồng
thời nhãn phân lớp cho tất cả các nút cần phân lớp. Phương pháp này
đã
được
công
nhận
có
khả
năng
nâng
cao
độ
chính
xác
so
với
phương pháp ước tính nhãn phân lớp cho từng nút một.
Tùy thuộc vào từng ứng dụng, mục tiêu sẽ là suy ra các nhãn với
xác suất kết hợp hay xác suất biên là tối đa đối với mỗi nút. Ngoài ra,
nếu cần ước tính xác suất nhãn phân lớp, phương thức suy luận tập
-12-
hợp
sẽ
ước
tính
phân
phối
xác
suất
biên
P(
X
i
c
G
K
,
)
cho
mỗi
X
i
x
U
và
c
X
với
là
các
giá
trị
được
khởi
tạo
trước
dựa
trên
các kết quả phân lớp của bộ phân lớp truyền thống (local classifier)
sử dụng các đặc trưng
không phải dạng liên kết.
Ba phương thức suy luận tập hợp sẽ được trình bày trong phần
này tương ứng với 3 mục con sau:
2.3.1.
Phương
thức
suy
luận
tập
hợp
Gibbs
Sampling
(GS)
2.3.2.
Phương
thức
suy
luận
tập
hợp
Relaxation
Labeling
(RL)
2.3.3.
Phương
thức
suy
luận
tập
hợp
Iteractive
Classification
(IC)
2.4.
Phân
lớp
tập
hợp
kết
hợp
bộ
phân
lớp
liên
kết
và
bộ
phân
lớp
truyền
thống
Các bộ phân lớp liên kết chỉ quan tâm tới cấu trúc liên kết của
một nút. Nếu tất cả các nút trong tập kiểm tra được kết nối tới ít nhất
một nút trong tập huấn luyện thì không có vấn đề gì, nhưng trên thực
tế
có
rất
nhiều
dữ
liệu
không
thỏa
mãn
điều
kiện
này.
Khi
đó,
bộ
phân lớp liên kết sẽ không thể phân lớp cho những nút không có nút
hàng xóm trong tập huấn luyện.
Để bù đắp những thiếu hụt trên, bộ phân lớp tập hợp có thể kết
hợp một bộ phân lớp liên kết với một bộ phân lớp truyền thống nhằm
-13-
cố gắng tăng độ chính xác khi phân lớp. Với cách sử dụng bộ phân
lớp truyền thống trong bước lặp đầu tiên (t=1) của quá trình suy luận
tập hợp, bộ phân lớp tập hợp bảo đảm rằng tất
cả các nút sẽ có xác
suất
phân
lớp
ban
đầu.
Bộ
suy
luận
tập
hợp
sau
đó
sẽ
sử
dụng
bộ
phân lớp liên kết và dựa vào các xác suất ban đầu đó để tiếp tục phân
lớp.
2.5.
Một
số
phương
pháp
phân
lớp
cho
dữ
liệu
dạng
liên
kết
khác
Bên
cạnh
các
phương pháp
phân
loại
quan
hệ
cho
dữ
liệu liên
kết
nêu
trên,
một
hướng
tiếp
cận
được
sử
dụng
rộng
rãi
khác
là
phương
pháp
học
bán
giám
sát
(semi-supervised
learning)
dựa
trên
đồ
thị. Trong số
những phương pháp
kiểu
này phải
kể
tới:
phương
pháp Mincut của Blum and Chawla (2001); phương pháp định danh
nút
(Node
Identifiers)
của
Perlich
và
Provost
(2006);
phương
pháp
trường
ngẫu
nhiên
Gauss
(Gaussian
Random
Fields)
của
Zhu
và
cộng
sự
(2003)
và
phương
pháp
nhất
quán
cục
bộ
và
địa
phương
(Local and Global Consistency) của Zhu và các cộng sự (2004).
-14-
Chương
3
-
THỰC
NGHIỆM
VÀ
KẾT
QUẢ
3.1.
Dữ
liệu
Dữ
liệu
thực
nghiệm
là
bộ
dữ
liệu
được
sử
dụng
rộng
rãi
WebKB
( />
Bộ
này
bao
gồm
hơn
8000 trang web lấy từ 4 website bộ môn Khoa học máy tính của các
trường đại học: Cornell, Texas, Washington và Wisconsin. Mỗi trang
web được lưu vào một tệp tin dạng .html với tên chính là URL thực
của trang web đó. Người ta đã thực hiện việc phân lớp thủ công cho
từng
trang
web
vào
1
trong
7
lớp:
course,
department,
faculty,
project, staff, student, other
bằng cách chia vào các thư mục có tên
tương ứng. Để tương thích và tiện so sánh với các kết quả nghiên cứu
trước
đây,
chúng tôi
loại
bỏ
các
trang web
trong lớp
other
và
thực
hiện việc phân chia dữ liệu vào 6 lớp còn lại.
3.2.
Công
cụ
Trong quá trình thực nghiệm học và phân lớp, chúng tôi sử dụng
2 bộ công cụ mã nguồn mở:
Network Learning Toolkit:
Netkit-SRL
(
Đây là một trong
số
rất
ít
công
cụ
mã
nguồn
mở
có
khả
năng
thực
hiện
các
thuật
toán
phân
lớp
cho
dữ
liệu
liên
kết như:
wvRN, cdRN,
NBC,
nLB.
Mỗi
thuật
toán
phân
lớp
lại
có
thể
kết
hợp
với
một
phương
thức
suy
luận
tập
hợp
như:
GS,
RL,
IC
để
tạo
thành một bộ phân lớp tập hợp. Ngoài ra, Netkit-SRL còn có
khả năng liên kết với với công cụ khai phá dữ liệu WEKA.
B
ả
ng
3.1.
Các
thư
vi
ệ
n
và
công
c
ụ
h
ỗ
tr
ợ
-15-
Trong trường hợp thực hiện phân lớp tập hợp kết hợp cả bộ
phân lớp liên kết lẫn bộ phân lớp cục bộ, Netkit-SRL sẽ nhận
kết quả phân lớp cục bộ từ WEKA để khởi tạo xác suất phân
lớp ban đầu cho quá trình phân lớp tập hợp.
Waikato
Environment
for
Knowledge
Analysis:
WEKA
( />
Đây là
công
cụ
rất
tiện
dụng
trong
xây
dựng
các
mô
hình
khai
phá
dữ
liệu. WEKA triển khai hầu hết các kỹ thuật khai phá dữ liệu
như Classification,
Clustering,
Association
Rule,
Trong
mỗi kỹ thuật, WEKA triển khai rất nhiều thuật toán cho phép
lựa
chọn
thuật
toán
phù
hợp
với
yêu
cầu
và
dữ
liệu
trong
việc khai phá dữ liệu.
Ngoài
ra,
trong
quá
trình
tiền
xử
lý
dữ
liệu
chúng
tôi
đã
xây
dựng và tập hợp các công cụ như liệt kê trong bảng dưới đây.
STT
Tên
công
cụ
Mô
tả
1 GetLink.java Tìm liên kết giữa các
trang web trong bộ dữ
liệu, tính trọng số và đưa
về dạng file .rn
2 GetCocite.java Tìm liên kết dạng Cocite
giữa các trang web trong
bộ dữ liệu, tính trọng số
-16-
3.3.
Phương
pháp
thực
nghiệm
Chúng tôi chia dữ liệu gốc thành 2 tập đặc trưng gọi là Content
và Link-Cocite. Tập Content chứa thông tin về các từ xuất hiện trong
từng trang web. Tập Link-Cocite chứa thông tin về các liên kết giữa
các trang web trong một website.
và
đưa
về
dạng
.rn
3 WordToVector.java Chuyển dữ liệu Content
của các trang web về
dạng vector phù hợp với
định dạng .arff của
WEKA
4 Stopwords.java Loại bỏ các từ dừng
5 LovinsStemmerWrapper.java
PorterStemmerWrapper.java
Rút gọn các từ về dạng
nguyên gốc
6 pruneByFrequency.java Lược bỏ những từ xuất
hiện quá nhiều hoặc quá
ít
7 BinaryOccurrences.java
TFIDF.java
TermFrequency.java
TermOccurrences.java
Tính tần suất xuất hiện
của các từ
-17-
Chúng tôi sử dụng công cụ WEKA với bộ phân lớp Naïve Bayes
để
tiến
hành
học
và
phân
lớp
trên
dữ
liệu
Content.
Bộ
công
cụ
Netkit-SRL với bộ phân lớp wvRN sẽ được dùng để học và phân lớp
trên dữ liệu Link. Phương thức suy luận tập hợp RL sẽ được sử dụng
để kết hợp tạo thành các bộ phân lớp tập hợp.
Trên thực tế, chúng tôi đã thử nghiệm trên cả 4 thuật toán phân
lớp
liên
kết
và
3
phương
thức
suy
luận
tập
hợp
được
trình
bày
ở
chương 2. Tuy nhiên, nếu kết hợp cả bộ phân lớp cục bộ, bộ phân lớp
liên kết và bộ suy luận tập hợp
thì sẽ thu được rất nhiều khả năng và
kết quá. Sau khi lựa chọn kỹ lưỡng, chúng tôi quyết định sử dụng bộ
phân lớp cục bộ Naïve Bayes, bộ phân lớp liên kết wvRN và phương
thức suy luận tập hợp RL như đã nói ở trên. Đây là các bộ phân lớp
và phương thức suy luận tập hợp được đánh giá là rất phù hợp với
bài toán
phân loại trang web. Kết
quả
khi áp
dụng những lựa chọn
trên cũng phù hợp với những kết quả thử nghiệm khác mà chúng tôi
đã được kiểm chứng.
Sau khi tiến hành thử nghiệm, chúng tôi sẽ đánh giá và so sánh
kết quả phân lớp giữa 4 bộ phân lớp sau: bộ phân lớp cục bộ Naïve
Bayes; bộ phân lớp liên kết wvRN; bộ phân lớp tập hợp kết hợp giữa
wvRN
và
RL;
bộ
phân
lớp
tập
hợp
kết
hợp
giữa
Naïve
Bayes
–
wvRN và RL.
3.4.
Quá
trình
và
kết
quả
thực
nghiệm
3.4.1.
Xây
dựng
và
trích
chọn
các
đặc
trưng
-18-
Đầu tiên, chúng tôi tiến hành trích chọn đặc trưng của các trang
web và chia thành 2 tập chứa các đặc trưng riêng biệt. Đặc trưng thứ
nhất của trang web chính là các từ xuất hiện trong trang web đó. Mỗi
trang web sẽ
được biểu diễn
dưới dạng vector theo mô
hình
không
gian vector (Vector Space Model). Mỗi thành phần của vector là một
từ khóa riêng biệt xuất hiện trong website và được gán một giá trị gọi
là
hàm
f
chỉ
mật
độ
xuất
hiện
của
từ
khóa
đó.
Chúng
tôi
gọi
tập
Content là tập chứa các vector này.
Một
đặc
trưng
nữa
của
trang
web
là
các
siêu
liên
kết
có
trong
mỗi trang. Chúng tôi xây dựng một tập tên là Link chứa các thông tin
bao gồm: “x”, “y” và “Trọng số liên kết giữa x và y”; trong đó x, y là
2 trang web có liên kết với nhau và cùng nằm trong một website.
Thông tin siêu liên kết lại được chia làm 2 loại là Direct Link và
Cocite. Direct Link là kiểu liên kết trực tiếp giữa 2 trang web (x có
chứa siêu liên kết tới y). Khi đó, trọng số liên kết dạng Direct Link
giữa 2 trang x và y là tổng số lần xuất hiệu siêu liên kết từ trang x tới
trang y.
Cocite là một kiểu liên kết khác. Hai trang x và y gọi là liên kết
dạng Cocite (theo z) khi x liên kết trực tiếp với z và y cũng liên kết
trực tiếp tới z. Để tính trọng số liên kết kiểu Cocite giữa x và y, ta lấy
tổng số lần xuất hiện siêu liên kết từ trang x tới trang z rồi nhân với
tổng số lần xuất hiện siêu liên kết từ trang y tới trang z.
3.4.2.
Tiền
xử
lý
dữ
liệu
-19-
Trước khi tiến hành phân lớp, dữ liệu cần được xử lý và đưa về
định dạng mà các công cụ phân lớp có thể chấp nhận. Trong bài toán
này,
chúng
tôi
phải
xử
lý
2
dạng
dữ
liệu
hoàn
toàn
khác
nhau
là
Content và Link-CoCite.
Để thực hiện việc tiền xử lý dữ liệu, chúng tôi đã xây dựng và sử
dụng nhiều công cụ như liệt kê trong bảng 3.1.
Với dữ liệu dạng Content, chúng tôi sẽ biểu diễn các trang web
thành dạng vector và đưa thông tin của toàn bộ website vào một
tệp tin .arff theo chuẩn của WEKA. Các bước tiến hành như sau :
o Chuyển các trang web từ dạng Hyper text về Plain text ;
o Tìm tất cả các từ
xuất hiện trên website ;
o Loại bỏ các từ dừng ;
o Loại
bỏ
tiền
tố
và
hậu
tố,
rút
gọn
các
từ
về
từ
nguyên
gốc
(chúng
tôi
đã
thử
nghiệm
3
thuật
toán
Lovings
stemming,
Porter
stemming
và
Dictionary
stemming
và
nhận thấy trong bài toán này Lovings stemming cho kết
quả tốt nhất) ;
o Loại bỏ tất cả các từ xuất hiện ít hơn 2 lần và nhiều hơn
25 lần. Những từ còn lại đưa vào một danh sách gọi là
WordList (Kết
quả
thu
được:
WordList
của
trường
Cornell
có
2133
từ,
trường
Texas
có
1756
từ,
Trường
Washington
có
2076
từ
và
trường
Wisconsin
có
2488
từ) ;
o Biểu diễn các trang web thành vector với mỗi thành phần
tương ứng một từ khóa trong WordList và được gán giá
-20-
trị 1 hoặc 0
tương ứng với sự xuất hiện hay không của
từ
khóa
đó
trong
trang
web (đây
là
mô
hình
Boolean
–
chúng tôi đã thử nghiệm các mô hình Tần suất như TF,
TF-IDF nhưng cho kết quả không tốt bằng) ;
o Đưa
dữ
liệu
vector
của
tất
cả
các
trang
web
trong
một
website cùng các thông tin cần thiết khác vào một tệp có
dạng
.arff.
Tệp
này
tuân
thủ
theo
định
dạng
tiêu
chuẩn
của WEKA. Sau khi xử lý ta có 4 tệp tin chứa thông tin
của 4 trường Đại học là: CornellContent.arff,
TexasContent.arff, WashingtonContent.arff và
WisconsinContent.arff.
Với dữ liệu dạng Link, ta cần tìm ra liên kết giữa các trang web,
tính trọng số cho chúng và lưu vào tệp tin .rn có định dạng đúng
với quy định của Netkit-SRL.Các bước tiến hành như sau :
o Tìm các siêu liên kết xuất hiện trong từng trang web và
kiểm tra xem nó có chỉ tới một trang web khác trong bộ
dữ liệu gốc không ;
o Nếu tìm thấy hai trang web có liên kết (dạng Direct link)
với nhau, tính trọng số bằng cách đếm số lần xuất hiện
liên kết ;
o Đưa tất cả các liên kết cùng trọng số tìm thấy trong mỗi
website
vào
một
tệp
tin rn,
ta
được
4
tập
tin
CornellLink.rn,
TexasLink.rn,
WashingtonLink.rn
và
Wisconsin.rn ;
-21-
o Dựa trên các liên kết
và trọng số dạng Direct link vừa
tìm
thấy,
ta
có
thể
tính
được
các
liên
kết
và
trọng
số
dạng
Cocite
và
đưa
vào
4
tệp
tin
CornellCocite.rn,
TexasCocite.rn, WashingtonCocite.rn,
WisconsinCocite.rn.
3.4.3.
Tiến
hành
phân
lớp
Đầu tiên, chúng tôi sử dụng phần mềm WEKA để tiến hành học
và phân lớp trên tập Content của từng trường đại học. Bộ phân lớp
được sử dụng là Naïve Bayes với tùy chọn thử nghiệm là 5 folds –
cross validation.
Tiếp theo, chúng tôi sử dụng phần mềm Netkit-SRL
để học và
phân lớp trên tập Link-Cocite.
Trong
quá
trình
tiền
xử
lý
dữ
liệu
chúng
tôi
phát
hiện
ra
việc
dùng dữ liệu dạng Direct link trong bài toán phân loại trang web sẽ
cho
kết
quả
kém
chính
xác
hơn
nhiều
so
với
việc
sử
dụng
dữ
liệu
dạng Cocite. Chính vì vậy trong các phần tiếp theo chúng tôi chỉ sử
dụng dữ liệu liên kết dạng Cocite.
Tiếp đó chúng tôi dùng phần mềm Netkit-SRL để phân lớp tập
hợp, kết hợp bộ phân lớp liên kết wvRN với phương thức suy luận
tập hợp RL.
Cuối
cùng,
chúng
tôi
thử
nghiệm
học
và
phân
lớp
tập
hợp
kết
hợp
bộ
phân
lớp
truyền
thống
Naïve
Bayes,
bộ
phân
lớp
liên
kết
wvRN và phương thức suy luận tập hợp RL.
-22-
0.75
0.7
0.65
0.6
0.55
0.5
Naïve Bayes (Content)
wvRN (Cocite)
wvRN.RL (Cocite)
Naïve Bayes + wvRN.RL
(Content+Cocite)
Cornell Texas Washington Wisconsin Trung bình
Hình
3.1.
Biểu
đồ
so
sánh
độ
chính
xác
của
4
bộ
phân
lớp
Kết
quả
trong
hình
3.1
cho
thấy,
về
tổng
thể,
trong
4
phương
pháp phân lớp thì
độ chính xác của phương pháp phân lớp tập hợp
kết hợp Naïve Bayes – wvRN –RL là cao hơn cả. Trong phần lớn các
trường hợp, độ chính xác của phương pháp này là cao nhất. Không
có trường hợp nào phương pháp này cho kết quả kém nhất. Ngoài ra,
biểu đồ này còn cho ta thấy rằng phương pháp phân lớp tập hợp đã
giúp nâng độ chính xác so với phương pháp phân lớp liên kết không
sử dụng suy luận tập hợp. Độ chính xác trung bình trên dữ liệu của
cả 4 trường đại học đều thể hiện điều này.
0.7
0.65
0.6
Dùng
riêng
lẻ
0.55
0.5
0.45
0.4
0.35
0.3
Kết
hợp
với
RL
Kết
hợp
với
RL
và
Naïve
Bayes
wvRN cdRN nLB nBC
Hình
3.2.
Độ
chính
xác
áp
dụng
3
thuật
toán
wvRN,
cdRN
và
nLB
-23-
Hình 3.2 là kết quả so sánh độ chính xác của 4 thuật toán phân
lớp liên kết đã được trình bày trong chương 2. Mỗi thuật toán này đi
cùng với 3 phương pháp thực hiện là: thực hiện đơn lẻ; kết hợp với
phương thức suy luận tập hợp RL; kết hợp với thuật toán phân lợp
cục bộ Naïve Bayes và phương thức suy luận tập hợp RL. Độ chính
xác trong hình là độ chính xác trung bình trên dữ liệu của cả 4 trường
đại
học.
Kết
quả
trên
cho thấy,
với
dữ
WebKB
thì
thuật
toán
phân
lớp
wvRN
có
độ
chính
xác
cao
nhất.
Hiệu
quả
phân
lớp
của
cả
4
thuật toán phân lớp liên kết đều được nâng cao khi gắn với phương
thức suy luận tập hợp (RL) và được nâng cao một lần nữa khi tiếp
tục kết hợp với bộ phân lớp cục bộ (Naïve Bayes).