ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
DƯ PHƯƠNG HẠNH
WEB MINING với giải thuật SOM và ứng dụng
cho máy tìm kiếm VINAHOO
luËn v¨n th¹c sÜ CÔNG NGHỆ THÔNG TIN
Hµ néi - 2005
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
DƯ PHƯƠNG HẠNH
WEB MINING với giải thuật SOM và ứng dụng
cho máy tìm kiếm VINAHOO
Mã số
luËn v¨n th¹c sÜ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: TS. Hà Quang Thuỵ
Hµ néi - 2005
Formatted: Dutch
(Netherlands)
Mở đầu ..............................................................................................................
Formatted: Dutch
(Netherlands)
Lời cảm ơn ........................................................................................................
Các từ viết tắt ....................................................................................................
Chƣơng 1. Phân cụm dữ liệu Text và Web ...................................................
1.1
Khai phá dữ liệu Text và các mô hình biểu diễn dữ liệu……………..
9
1.1.1
1.1.2
1.2
2.1
2.1.2.1Cấu tạo mạng nơ ron nhân tạo ........................
2.1.2.2Mô hình nơ ron. ..............................................
2.2
2220
2.3
Phƣơng
pháp
WEBSOM………
……………………
………………
h
Formatted: Dutch (Netherlands)
2.3.2.2Các thao tác hoàn thiện, làm mịn trên bản đồ .
2.4Công cụ SOM Toolbox……………………………………………..
34
2.4.1 Định dạ
2.4.2 Xây dựn
2.4.3 Tiền xử
2.4.4 Khởi tạo
2.4.5 Biểu diễ
Chƣơng 3.Ứng dụn
trang Web….. ................................................................................................ 42
3.1Thử nghiệm thi hành WEBSOM phân cụm trang Web……………..
42
40
3.1.1
Cấu trúc cơ sở dữ liệu trong
3.1.2
Cấu trúc một số bảng chính
Vinahoo
……………………………
40
3.1.3
Cấu trúc một số file nhị ph
46
3.1.3.1Cấu trúc các file nhị phân trong thƣ mục xxw: ...............
3.1.3.2Cấu trúc các file nhị phân trong thƣ mục Deltas. ............
3.1.4
Tiến hành thử nghiệm .......
3.1.5
Đánh giá kết quả thực nghi
3.2Đề xuất giải pháp ứng dụng phƣơng pháp WEBSOM trong máy tìm
kiếm
Vinahoo……………………………………………
53
KẾT LUẬN................................................................................................... 55
Tài liệu tham khảo .........................................................................................
Mở đầu ................................................................................................................
Lời cảm ơn ..........................................................................................................
Các từ viết tắt ......................................................................................................
51
Formatted: Dutch (Netherlands)
Chƣơng 1. Phân cụm dữ liệu Text và Web .........
1.1Khai phá dữ liệu Text và các mô hình biểu diễn dữ liệu.
1.1.1
Khai phá dữ liệu Text. ......................
1.1.2
Các mô hình biểu diễn dữ liệu text. .
1.1.2.1Mô hình không gian véc tơ. ...................................................
1.1.2.2Đánh chỉ mục theo ngữ nghĩa tiềm tàng. ...............................
1.1.2.3Phép chiếu ngẫu nhiên ...........................................................
1.1.2.4Phân cụm từ khoá ..................................................................
1.2Phân cụm dữ liệu trong khai phá WEB
1.2.1
Bài toán phân cụm trang Web...........
1.2.2
Sơ bộ về ứng dụng thuật toán SOM
Chƣơng 2. Phƣơng pháp WEBSOM và bộ công
2.1
Mạng nơ ron.
2.1.1
Mạng nơ ron sinh học. .....................
2.1.2
Mạng nơ ron nhân tạo. .....................
2.1.2.1Cấu tạo mạng nơ ron nhân tạo. ............................................
2.1.2.2Mô hình nơ ron. ...................................................................
2.2
Thuật toán SOM.
2.3
Phƣơng pháp WEBSOM
2.3.1
Mã hóa tài liệu .................................
2.3.2
Xây dựng bản đồ (document map) ..
2.3.2.1Xây dựng bản đồ dựa trên phần bản đồ nhỏ hơn đã đƣợc
hình thành trƣớc đó. ..............................................................................
2.3.2.2Các thao tác hoàn thiện, làm mịn trên bản đồ .....................
2.4Công cụ SOM Toolbox
2.4.1
Định dạng dữ liệu.............................
2.4.2
Xây dựng các tập dữ liệu .................
2.4.3
Tiền xử lý dữ liệu .............................
2.4.4
Khởi tạo và huấn luyện ....................
2.4.5
Biểu diễn và phân tích .....................
Formatted: Dutch (Netherlands)
Chƣơng 3.
Ứ
trang Web.
3.1Cấu trúc cơ sở dữ liệu trong máy tìm kiếm Vinahoo
3.1.1
C
Vinahoo 40
3.1.2
C
3.1.2.1
3.1.2.2
3.2
Cơ chế thực thi quá trình crawler trong module index của máy tìm
kiếm Vinahoo.
3.2.1
Error! Bookmark not defined.
Mô hình thực thi của module đánh chỉ số (index) trong Vinahoo
Error! Bookmark not defined.
3.2.2
Quá trình crawler trong Vinahoo. Error! Bookmark not defined.
3.2.2.1
Cấu trúc hàng đợi các url trong VinahooError!
Bookmark
not defined.
3.2.2.2
Quá trình crawler trong VinahooError!
Bookmark
not
defined.
3.3
Mô hình ứng dụng phƣơng pháp WEBSOM trong máy tìm kiếm
Vinahoo.
51
3.4
Đánh giá kết quả
Error! Bookmark not defined.
3.5
Kết luận
Error! Bookmark not defined.
Tài liệu tham khảo.............................................Error! Bookmark not defined.
Formatted: Dutch (Netherlands)
4
Formatted: Dutch
(Netherlands)
Mở đầu
Trong những năm gần đây, Internet đã trở thành một trong những phƣơng
tiện cung cấp hiệu quả các thông tin khoa học, thông tin kinh tế, thƣơng mại,
quảng cáo và mọi mặt khác của đời sống. Sự phát triển nhanh chóng của mạng
Internet và Intranet đã sinh ra một khối lƣợng khổng lồ các dữ liệu dạng siêu văn
bản (dữ liệu Web). Theo thống kê, lƣợng thông tin trên toàn cầu tăng gấp đôi sau
khoảng hai năm và theo đó số lƣợng cũng nhƣ kích cỡ của các cơ sở dữ liệu
(CSDL) cũng tăng lên một cách nhanh chóng. Có thể nói, chúng ta đang bị
“ngập” trong dữ liệu, và để có thể khai thác thông tin một cách hiệu quả từ những
“núi” dữ liệu khổng lồ đó, chúng ta phải viện đến sự hỗ trợ của các công cụ tìm
kiếm, cụ thể là các Máy tìm kiếm (Search Engine). Tuy nhiên, thƣờng thì các
máy tìm kiếm trên Web cho kết quả nhanh nhƣng thiếu độ chính xác hoặc ngƣợc
lại. Các nhà nghiên cứu ở khắp mọi nơi trên thế giới đã thực hiện những nỗ lực
đáng kể để phát triển các phƣơng pháp nhằm khắc phục các yếu điểm trên, tức là
cố gắng tăng độ chính xác của kết quả tìm kiếm mà vẫn không gây ảnh hƣởng tới
tốc độ. Một trong các giải pháp đƣợc rất nhiều nhà nghiên cứu quan tâm và triển
khai chính là giải thuật SOM (Self Organizing Map) do giáo sƣ Teuvo Kohonen
đề xuất.
SOM (Self Organizing Map) đƣợc giáo sƣ Teuvo Kohonen phát triển, là
một công cụ rất thích hợp trong khai phá dữ liệu. SOM là một thuật toán học
mạng nơron không giám sát, qua quá trình “tự tổ chức”, sắp xếp dữ liệu phức tạp
và nhiều chiều, sao cho các dữ liệu giống nhau đƣợc nhận ra và xếp cạnh nhau
trên bản đồ [5].
Từ việc tìm hiểu và phân tích giải thuật SOM, hƣớng tới mục tiêu nâng
cao hiệu quả tìm kiếm, Luận văn với đề tài “WEB Mining với giải thuật SOM và
ứng dụng cho máy tìm kiếm Vinahoo” tập trung vào lĩnh vực khai phá dữ liệu
Web dùng mạng nơron, sử dụng phƣơng pháp học mạng nơron không giám sát,
dùng thuật toán SOM để giải quyết bài toán phân cụm, ứng dụng cho máy tìm
kiếm Vinahoo. Nội dung của Luận văn bao gồm các phần chính nhƣ sau:
Chương 1: Tìm hiểu các mô hình biểu diễn dữ liệu trang Web ,. bBài toán phân
cụm các trang Web, các đặc điểm, yêu cầu và một số độ đo tính chính xác
5
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
của giải thuật phân cụm. và tTổng quan về áp dụng giải thuật SOM cho bài toán
phân cụm các trang Web [4, 6, 8].
Chương 2: Tìm hiểu giải thuật SOM. Tìm hiểu cCấu trúc và quá trình thực thi
phƣơng pháp WEBSOM dựa trên giải thuật SOM và phƣơng pháp học mạng
nơron không giám sát, ứng dụng cho bài toán phân cụm trang Web. Tìm hiểu bộ
công cụ SOM Toolbox [2, 5, 7, 8].
Chương 3: Tìm hiểu cấu trúc cơ sở dữ liệu của máy tìm kiếm Vinahoo [10].
Thực nghiệm ứng dụng giải thuật SOM trong phân cụm các trang Web lƣu trữ
trong cơ sở dữ liệu của máy tìm kiếm Vinahoo, đánh giá kết quả thực nghiệm , và
đƣa ra các kết luận và đề xuất giải pháp tích hợp WEBSOM trong Vinahoo.
6
Formatted: Dutch
(Netherlands)
Formatted: Dutch (Netherlands)
Lời cảm ơn
Luận văn đƣợc thực hiện dƣới sự hƣớng dẫn của thầy giáo TS. Hà Quang
Thụy. Tôi xin gửi tới thầy lời cảm ơn chân thành vì sự quan tâm, tận tình chỉ dẫn,
giúp đỡ mà thầy đã dành cho tôi trong suốt quá trình hoàn thành luận văn.
Xin trân trọng cảm ơn TS. Nguyễn Tuệ - Chủ nhiệm Bộ môn Các hệ thống
thông tin, PGS.TS Trịnh Nhật Tiến – Chủ nhiệm Khoa Công nghệ thông tin. Xin
cảm ơn các bạn, các đồng nghiệp của tôi tại Bộ môn Các hệ thống thông tin,
những ngƣời đã hết sức nhiệt tình cho tôi những chỉ dẫn, góp ý trong suốt quá
trình thực hiện luận văn.
Tôi cũng xXin gửi lời cảm ơn bố mẹ, em và anhchân thành tới gia đình,
bạn bè, những ngƣời đã luôn ở bên tôi, động viên và nâng đỡ giúp đỡ, tạo điều
kiện cho những tiến bộ của tôi.
{Nên đặt vị trí của gia đình khác với bàn bè}.
Hà Nội ngày 20/12/2005
Dư Phương Hạnh
Formatted: Dutch (Netherlands)
7
Formatted: Dutch (Netherlands)
Các từ viết tắt
CSDL
VSM
LSI
SOM
BMU
SVD
Formatted: Font: Bold, Dutch
(Netherlands)
SVD (singular-value decomposition)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
8
Formatted: Dutch
(Netherlands)
Chương 1. Phân cụm dữ liệu Text và Web
1.1 Khai phá dữ liệu Text và các mô hình biểu diễn dữ liệu.
1.1.1 Khai phá dữ liệu Text.
Trong những năm gần đây Internet đã trở thành một trong những phƣơng
tiện cung cấp hiệu quả các thông tin khoa học, thông tin kinh tế, thƣơng mại,
quảng cáo và mọi mặt khác của đời sống. Sự phát triển nhanh chóng của mạng
Internet và Intranet đã sinh ra một khối lƣợng khổng lồ các dữ liệu dạng siêu văn
bản (dữ liệu Web). Theo thống kê, lƣợng thông tin trên toàn cầu tăng gấp đôi sau
khoảng hai năm và theo đó số lƣợng cũng nhƣ kích cỡ của các cơ sở dữ liệu
(CSDL) cũng tăng lên một cách nhanh chóng. Có thể nói, chúng ta đang bị
“ngập” trong dữ liệu, và để có thể khai thác thông tin một cách hiệu quả từ những
“núi” dữ liệu khổng lồ đó, chúng ta phải viện đến sự hỗ trợ của các công cụ tìm
kiếm, cụ thể là các Máy tìm kiếm (search Engine). Mục tiêu của các máy tìm
kiếm là thu thập các tài liệu phù hợp với yêu cầu của ngƣời dùng trong một
khoảng thời gian càng nhanh càng tốt. Tuy nhiên, với lƣợng thông tin khổng lồ
không ngừng tăng trƣởng trên Internet, với những yêu cầu đôi khi rất mù mờ
hoặc phức tạp từ phía ngƣời dùng, hiệu quả hoạt động của máy tìm kiếm phụ
thuộc rất nhiều vào phƣơng pháp biểu diễn dữ liệu, giải thuật áp dụng cho quá
trình tìm kiếm và khả năng tƣơng tác trực quan giữa máy với ngƣời dùng.
1.1.2 Các mô hình biểu diễn dữ liệu text
Hiện nay, trong phần lớn các nghiên cứu trong lĩnh vực khai phá dữ liệu
text, các văn bản, tài liệu thƣờng đƣợc hiển thị nhƣ một tập hợp của các từ. Cách
tiếp cận này đƣợc gọi tên là "Mã hoá kiểu túi" (bag of words encoding), bỏ qua
mục đích của từ cũng nhƣ cấu trúc hay dấu chấm câu nhƣng lại ghi nhớ số lần
mỗi từ xuất hiện. Phƣơng pháp này là một sự đơn giản hoá tối đa về nội dung
thông tin mà các văn bản, tài liệu mang lại. Mặc dù không đủ phức tạp để biểu
diễn dữ liệu, nhƣng phƣơng pháp này lại mang lại một số lƣợng thông tin đáng
kể về sự liên quan giữa các từ và các văn bản, điều hết sức quan trọng trong việc
phân cụm dữ liệu theo chủ đề hoặc trong việc lấy thông tin
9
Formatted: Dutch
(Netherlands)
Formatted: Dutch (Netherlands)
(information retrieval) từ một tập dữ liệu lớn. Dƣới đây là một số phƣơng pháp
biểu diễn dữ liệu, tập trung vào các mô hình có thể đƣợc đánh giá một cách tự
động và hiệu quả thông qua một số lƣợng lớn dữ liệu và đòi hỏi tốc độ xử lý
nhanh. Những mô hình này đƣợc thiết kế nhằm đƣa ra các giải pháp kiến trúc
khả thi về mặt tính toán để giải quyết những công việc mà nếu sử dụng các phòng
thí nghiệm thông thƣờng thì sẽ rất tốn kém, rất chậm và thậm chí là bất khả thi
1.1.2.1 Mô hình không gian véc tơ
Mô hình véctơ (Vector Space Model), còn gọi là VSM do Salton đƣa ra
[11], là cách thức mã hoá tài liệu phù hợp với mục tiêu thực thi nhanh chóng. Mỗi
tài liệu sẽ đƣợc biểu diễn dƣới dạng một véctơ trong không gian t-chiều, trong
đó t là số lƣợng từ khoá trong từ điển. Giá trị d i của thành phần thứ i biểu diễn số
lần từ khoá với chỉ số i xuất hiện trong tài liệu. Hơn nữa, mỗi từ lại gắn với một
trọng số thể hiện mức độ quan trọng của từ đó. Độ tƣơng tự giữa các tài liệu
đƣợc tính bằng khoảng cách giữa các điểm hoặc góc giữa các véctơ (mà không
cần quan tâm đến độ dài của các véctơ). Với mô hình này, việc tìm kiếm các tài
liệu phù hợp với yêu cầu tìm kiếm chuyển thành tìm kiếm các véctơ tài liệu gần
nhất với véctơ truy vấn. Mặc dù đơn giản, nhƣng phƣơng pháp biểu diễn véctơ
và các biến thể của nó hiện là các lựa chọn phổ biến nhất để biểu diễn văn bản
phục vụ mục đích khai phá text. Có thể giải thích là do tốc xử lý các phép toán
trên véctơ rất nhanh, các giải thuật chuẩn áp dụng cho véctơ đều đã có sẵn.
Tuy nhiên, phƣơng pháp này mắc phải yếu điểm yếu chính là, trong quá
trình xử lý, bộ nhớ phải lƣu trữ các véctơ mẫu có số chiều vô cùng lớn. Tất nhiên
kích cỡ của từ điển có thể đƣợc thu gọn lại bằng cách lựa chọn một tập con chứa
các từ khóa quan trọng nhất xét theo một số quy luật nào đó, thế nhƣng đây vẫn
là một công việc hết sức khó khăn để đảm bảo rằng, tập con các từ khóa này vẫn
có khả năng biểu diễn các đặc trƣng cơ bản của các tài liệu.
Formatted: Dutch (Netherlands)
10
Formatted: Dutch (Netherlands)
1.1.2.2 Đánh chỉ mục theo ngữ nghĩa tiềm tàng
Để thực hiện giảm số chiều của các véctơ tài liệu mà căn bản không gây
mất mát thông tin, trƣớc tiên, ngƣời ta xây dựng một ma trận mà mỗi cột của ma
trận ứng với một véctơ tài liệu. Sau đó, một phƣơng pháp tính toán trên ma trận,
có tên gọi là SVD (singular-value decomposition) đƣợc áp dụng để phân chia ma
trận trên thành một tập hợp các yếu tố (factors) đƣợc sắp xếp theo trật tự giảm
dần độ ảnh hƣởng đối với ma trận ban đầu. Và khi những yếu tố sau cùng, cũng
là những yếu tố ít quan trọng nhất bị bỏ qua, thì véctơ tài liệu đƣợc xây dựng dựa
trên các yếu tố còn lại sẽ có số chiều nhỏ hơn rất nhiều mà vẫn giữ đƣợc nhiều
nhất có thể các thông tin quan trọng. Phƣơng pháp này đƣợc gọi là đánh chỉ mục
theo ngữ nghĩa tiềm tàng (Latent Semantic Indexing - LSI) [4].
1.1.2.3 Phép chiếu ngẫu nhiên
Đây là phƣơng pháp làm giảm số chiều của véctơ tài liệu một cách triệt
để mà lại đơn giản hơn rất nhiều so với phƣơng pháp LSI nêu trên và không
n
gây ảnh hƣởng tới độ phân biệt giữa các tài liệu [4]. Xét véctơ ni ∈R và một
Formatted: Dutch
(Netherlands)
ma trận ngẫu nhiên hình chữ nhật R mà các phần tử trong cột của R ứng với
Formatted: Dutch
(Netherlands)
các véctơ phân bố chuẩn và có độ dài đơn vị. Chúng ta sẽ xây dựng các véctơ
m
tài liệu xi ∈R , với m << n bằng phép chiếu:
Formatted: Dutch
(Netherlands)
xi = Rni
Nếu ta xét một cặp tài liệu bất kỳ (n i, nj), sau khi thực hiện phép chiếu ta
Formatted: Dutch
(Netherlands)
thu đƣợc tƣơng ứng hai tài liệu (xi, xj), thì độ tƣơng tự của hai tài liệu trƣớc và
sau khi thực hiện phép chiếu là không thay đổi, và khả năng lỗi thì tỷ lệ nghịch
với m. Thực nghiệm với giá trị m>100, kết quả thu đƣợc cho thấy độ chính xác
phân lớp của phƣơng pháp này bằng với phƣơng pháp VSM, tuy nhiên thời gian
cần thiết để thực hiện thì giảm đi nhiều.
1.1.2.4 Phân cụm từ khoá
Phƣơng pháp này đƣợc sử dụng nhằm làm giảm số lƣợng dữ liệu cần biểu
diễn bằng cách nhóm các thành phần tƣơng tự lại với nhau. Trong biểu diễn dữ
liệu, một sô phƣơng pháp phân cụm đƣợc áp dụng để nhóm các từ tƣơng tự
Formatted: Dutch (Netherlands)
11
Formatted: Dutch (Netherlands)
thành một nhóm, sau đó thực hiện biểu diễn tài liệu nhƣ tập hợp của các nhóm từ
khoá chứ không phải là tập hợp của từng từ khoá riêng lẻ. Giải thuật SOM dựa
trên phƣơng pháp học máy không giám sát là một trong những giải pháp tốt để
thực hiện việc phân cụm từ khoá. Chúng ta sẽ đi sâu tìm hiểu vấn đề này ở
chƣơng sau.
1.2 Phân cụm dữ liệu trong khai phá WEB
1.2.1 Bài toán phân cụm trang Web
Ngày nay, sự phát triển nhanh chóng của mạng Internet và Intranet đã sinh ra
một khối lƣợng khổng lồ các dữ liệu dạng siêu văn bản (dữ liệu Web). Cùng với sự thay
đổi và phát triển hàng ngày hàng giờ về nội dung cũng nhƣ số lƣợng của các trang Web
trên Internet thì vấn đề tìm kiếm thông tin đối với ngƣời sử dụng lại ngày càng khó
khăn. Thực vậy với Internet con ngƣời đã làm
vô vàn các thông tin. Trong những năm gần
quen với các trang Web cùng với
Formatted: Font: Times New Roman,
Dutch (Netherlands)
Formatted: Dutch (Netherlands)
đây Internet đã trở thành một trong
những kênh về khoa học, thông tin kinh tế, thƣơng mại và quảng cáo. Một trong những
lý do cho sự phát triển này là sự thấp về giá cả tiêu tốn khi công khai một trang Web
trên Internet. So sánh với những dịch vụ khác nhƣ mua bán hay quảng cáo trên một tờ
báo hay tạp chí, thì
chi phí cho một trang Web rẻ hơn rất nhiều, đồng thời cập nhật nhanh chóng hơn
tới hàng triệu ngƣời dùng khắp mọi nơi trên thế giới. Thông tin trên các trang
Web đa dạng về mặt nội dung cũng nhƣ hình thức. Có thể nói Internet nhƣ một
xã hội ảo, nó bao gồm các thông tin về mọi mặt của đời sống kinh tế, xã hội đƣợc
trình bày dƣới dạng văn bản, hình ảnh, âm thanh,...
Tuy nhiên cùng với sự đa dạng và số lƣợng lớn thông tin nhƣ vậy đã nảy
sinh vấn đề quá tải thông tin. Ngƣời ta không thể tìm tự kiếm địa chỉ trang Web
chứa thông tin mà mình cần, đặc biệt là khi chúng ta không có nhiều hiểu biết về
lĩnh vực mình cần tìm kiếm thông tin. Do đó, cần phải có một công cụ quản lý
nội dung của các trang Web và cho phép tìm thấy các địa chỉ trang Web có nội
dung giống với yêu cầu của ngƣời tìm kiếm. Các công cụ nhƣ vậy (đƣợc gọi là
máy tìm kiếm) quản lý dữ liệu nhƣ các đối tƣợng phi cấu trúc. Hiện nay chúng ta
đã quen thuộc với các máy tìm kiềm nhƣ Yahoo, Google, Alvista,...
Formatted: Dutch (Netherlands)
12
Formatted: Dutch
(Netherlands)
Một trong những bài toán quan trọng trong lĩnh vực khai phá Web là bài
toán phân cụm Web. Phân cụm Web - nói một cách khái quát - là việc tự động
sinh ra các lớp tài liệu dựa vào sự tƣơng tự của các tài liệu. Các lớp tài liệu ở đây
là chƣa biết trƣớc, ngƣời dùng có thể chỉ yêu cầu số lƣợng các lớp cần phân
loại, hệ thống sẽ đƣa ra các tài liệu theo từng tập hợp, từng cụm, mỗi tập hợp
chứa các tài liệu tƣơng tự nhau.
Phân cụm Web – hiểu một cách đơn giản - là phân cụm trên tập các tài liệu
đƣợc lấy từ Web. Có hai tình huống phân cụm tài liệu. Tình huống thứ nhất là
việc phân cụm trên toàn bộ một CSDL có sẵn gồm rất nhiều tài liệu Web. Thuật
toán phân cụm cần tiến hành việc phân cụm toàn bộ tập dữ liệu thuộc CSDL đó.
Tình huống này thƣờng đƣợc gọi là phân cụm không trực tuyến (off-line). Tình
huống thứ hai thƣờng đƣợc áp dụng trên một tập tài liệu nhỏ là tập hợp các tài
liệu do máy tìm kiếm trả về theo một truy vấn của ngƣời dùng. Trong trƣờng hợp
này, giải pháp phân cụm đƣợc tiến hành kiểu trực tuyến (on-line) theo nghĩa việc
phân cụm tiến hành theo từng bộ phận các tài liệu nhận đƣợc. Khi đó, thuật toán
phải có tính chất “gia tăng” để tiến hành phân cụm ngay khi chƣa có đủ tài liệu
và phân cụm tiếp theo cần không tiến hành với dữ liệu đã đƣợc phân cụm
Quá trình xử lý truy vấn và kết quả phân hạng đƣợc phản hồi từ các máy
tìm kiếm phụ thuộc vào việc tính toán độ tƣơng tự giữa truy vấn và các tài liệu.
Mặc dù các truy vấn liên quan phần nào đến các tài liệu cần tìm, nhƣng nó
thƣờng quá ngắn và dễ xảy ra sự nhập nhằng. Nhƣ đã biết, trung bình các truy
vấn trên Web chỉ gồm hai đến ba từ do đó gây nên độ nhập nhằng. Chẳng hạn,
truy vấn star dẫn đến sự nhập nhằng rất cao, các tài liệu lấy đƣợc liên quan đến
astronomy, plants, animals, popular media and sports figures… Độ tƣơng tự giữa
các tài liệu của một truy từ đơn nhƣ vậy là khác nhau rất lớn. Vì lẽ đó, nếu máy
tìm kiếm phân cụm các kết quả theo từng chủ đề thì ngƣời dùng có thể hiểu truy
vấn nhanh chóng hoặc tìm vào một chủ đề xác định.
Đặc điểm của bài toán Phân cụm Web
Việc phân cụm trực tuyến các tài liệu Web kết quả trả về từ máy tìm kiếm
là rất khác so với việc phân cụm các tài liệu thông thƣờng. Một đặc điểm
13
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
là số lƣợng các tài liệu Web là vô cùng lớn và luôn luôn thay đổi. Ngoài ra một
vấn đề nữa là các hệ thống tìm kiếm thông tin là tƣơng tác ngƣời dùng cho nên
thời gian đáp ứng của hệ thống phải đủ nhanh, cụ thể bài toán ở đây cần thời gian
đáp ứng cần tính bằng giây. Mỗi tài liệu Web không chỉ liên quan đến một khía
cạnh cụ thể nào đó mà đề cập đến nhiều khía cạnh khác nhau. Chẳng hạn nhƣ tài
liệu nói về “Việt Nam” cũng có thể đề cập đến cuộc đời và sự nghiệp của “Các
danh nhân Việt Nam”. Cho nên tồn tại sự trùng lặp thông tin giữa các tài liệu, có
nghĩa là một tài liệu có thể liên quan đến nhiều nội dung khác nhau.
Xuất phát từ những đặc điểm đó nên việc phân cụm chỉ nên đƣợc thực
hiện trên tập các tài liệu Web của mỗi truy vấn trả về từ máy từ máy tìm kiếm.
Sau đó kết quả sẽ đƣợc tổ chức lại cho ngƣời sử dụng. Thông thƣờng một máy
tìm kiếm phục vụ hàng triệu truy vấn một ngày cho nên việc phân phối CPU cũng
nhƣ bộ nhớ cho mỗi truy vấn cần đƣợc rút ngắn tối đa. Cho nên việc phân cụm
có thể đƣợc thực hiện trên một máy tách riêng tại đó chỉ nhận các kết quả của
máy tìm kiếm nhƣ đầu vào, tạo ra các cụm và biểu diễn chúng cho ngƣời sử
dụng.
Bảng dƣới đây trình bày ví dụ về phân cụm kết quả của truy vấn “Việt
Nam”, ở đây chỉ biểu diễn 5 cụm đầu tiên.
Minh họa cho việc phân cụm kết quả truy vấn “Việt Nam”
Số tài liệu: 185
Các cụm
1
2
3
4
5
…
Các yêu cầu đối với Phân cụm Web
Để có thể phân các tài liệu Web thành các cụm, việc đầu tiên là cần phải
tính đƣợc độ tƣơng tự (hay độ tƣơng đồng) giữa các tài liệu trên cơ sở biểu diễn
14
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
tài liệu Web và xem xét các đo độ tƣơng tự giữa chúng. Thuật toán phân cụm cần
đƣa ra các điều kiện dừng và gắn nhán cho các cụm một các thích hợp nhất. Căn
cứ đặc điểm và yêu cầu của bài toán phân cụm Web thì phƣơng pháp phân cụm
đƣợc lựa chọn cần đáp ứng đƣợc các yêu cầu sau:
Tính phù hợp: Phƣơng pháp phải tạo nên các cụm trong đó nhóm tài liệu
phù hợp với truy vấn của ngƣời dùng tách riêng với các nhóm không phù hợp
khác.
Tổng hợp phải dễ đọc: Tránh trƣờng hợp thay vì ngƣời dùng không phải
xem xét danh sách các tài liệu đƣợc phân hạng lại phải xem xét danh sách tài liệu
trong một cụm. Do đó phƣơng pháp phải cung cấp mô tả ngắn gọn và chính xác
của các cụm.
Tính đa hình: Vì các tài liệu có nhiều chủ đề, nên tránh việc hạn chế một
tài liệu chỉ thuộc về một cụm.
Sử dụng các mẩu thông tin: Phƣơng pháp phải tạo ra các cụm tốt thậm chí
chỉ sử dụng các mẩu thông tin đƣợc trả về bởi máy tìm kiếm (thông thƣờng các
máy tìm kiếm chỉ trả về các mẩu thông tin mô tả về tài liệu). Điều này tránh cho
việc ngƣời dùng phải chờ đợi hệ thống tải toàn bộ tài liệu gốc từ Web.
Tốc độ:Một ngƣời sử dụng dù kiên nhẫn cũng chỉ có thể xem xét khoảng
100 tài liệu trong danh sách các tài liệu đƣợc phân hạng. Hệ thống cần cho phép
ngƣời dùng có thể đọc qua một tập đủ lớn các tài liệu trong một thời gian chấp
nhận đƣợc. Vì vậy cần một phƣơng pháp phân cụm khoảng 1000 mẩu thông tin
trong vài giây.
Tính gia tăng: Để tiết kiệm thời gian, phƣơng pháp nên xử lý từng mẩu
thông tin ngay khi lấy đƣợc từ Web để có đƣợc kết quả tức thời ứng với mỗi thời
điểm.
Một số độ đo độ đánh giá
Độ đo đánh giá thuật toán phân cụm là một tiêu chuẩn đƣợc chỉ ra bởi
một tập n tài liệu D và một tập các truy vấn Q. Với mỗi q Є Q, một tập của các
tài liệu phù hợp là Dq Є D đƣợc xác định bằng tay. Giả sử có một truy vấn đƣợc
gửi đến hệ thống, một danh sách đƣợc phân hạng các tài liệu (d 1, d2, … dn) đƣợc
trả về. Các hệ thống tìm kiếm thông thƣờng chỉ hiển thị một số mục đầu
15
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
tiên của danh sách này. Tƣơng ứng với danh sách nhƣ vậy, có thể tính một danh
sách phù hợp (r1, r2,…rn) bởi các số (0/1) trong đó r i =1 nếu di Є Dq và bằng 0
trong các trƣờng hợp khác.
Với truy vấn q này, độ hồi tƣởng (recall) tại hạng k ≥ 1 đƣợc xác định
Formatted: Dutch
(Netherlands)
Recall (k) =
Formatted: Dutch
(Netherlands)
Độ hồi tƣởng là tỷ số của tất cả các tài liệu phù hợp bên trong (d 1, d2, … dk) và
độ chính xác (precision) tại hạng k là:
Precision (k) =
1
∑ ri
k
Formatted: Dutch
(Netherlands)
1≤i ≤k
Formatted: Dutch
(Netherlands)
Độ chính xác là tỷ số của k tài liệu trên cùng tập tài liệu mà thật sự phù hợp.
Một cách đo khác là độ chính xác trung bình (Average Precision):
Average Precision =
Formatted: Dutch
(Netherlands)
Độ chính xác trung bình là tổng của độ chính xác tại mỗi vị trí phù hợp
Formatted: Dutch
(Netherlands)
trong danh sách đáp ứng chia cho tổng số các tài liệu phù hợp đƣợc chọn. Độ
chính xác trung bình bằng 1 khi lấy đƣợc toàn bộ các tài liệu phù hợp và xếp loại
chúng lên trên tất cả các tài liệu không phù hợp.
1.2.2 Sơ bộ về ứng dụng thuật toán SOM trong phân cụm Web
Việc tìm kiếm các tài liệu có liên quan đến nhau trong một tập hợp dữ liệu
rất lớn, thông thƣờng đƣợc thực hiện dựa trên các từ khoá và các biểu diễn logic
của chúng. Tuy nhiên, thƣờng thì các kết quả trả về nhanh nhƣng thiếu độ chính
xác hoặc ngƣợc lại. Những nỗ lực đáng kể đã đƣợc thực hiện để phát triển các
phƣơng pháp khác, chẳng hạn dựa trên các thống kê từ đơn, nhƣng khả năng ứng
dụng của chúng đều thấp. Điểm bất lợi căn bản trong các phƣơng pháp tìm kiếm
truyền thống chẳng hạn nhƣ tìm kiếm thông qua từ khoá hoặc đánh chỉ mục nội
dung thông tin là: rất khó để xây dựng đƣợc các biểu thức tìm kiếm phù hợp để
không loại bỏ các tài liệu phù hợp và cũng không tạo ra các danh sách dài các
tiêu đề không phù hợp với mục tiêu tìm kiếm. Giả sử chúng ta mô tả các tài liệu
toàn văn nhờ trọng số của các từ trong tài liệu đó. Điểm hạn chế của phƣơng
pháp này là, khi gặp một khối lƣợng nội dung đủ lớn, số
16
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
lƣợng từ đƣợc lựa chọn cũng sẽ rất lớn, chẳng hạn là con số 10.000 từ. Rất nhiều
nghiên cứu đã chỉ ra rằng, tài liệu có thể đƣợc biểu diễn rất hiệu quả dƣới dạng
một tập thuộc tính nhỏ hơn rất nhiều nếu nhƣ các từ đƣợc phân cụm theo nội
dung của chúng từ trƣớc đó hoặc áp dụng một số phƣơng pháp khác để làm giảm
số chiều (xem 1.1.2).
Một vấn đề khác còn lớn hơn mà một số phƣơng pháp tìm kiếm đã không
chú ý hỗ trợ, đó là các trƣờng hợp mà nội dung thông tin cần tìm kiếm là không
rõ ràng và khó để mô tả thành lời. Chẳng hạn một số trƣờng hợp, thông tin cần
tìm kiếm nằm ngoài phạm vi hiểu biết của cá nhân thì việc đƣa ra các biểu thức
tìm kiếm thật chẳng khác nào đi tìm đƣờng trong bóng đêm và tất nhiên kết quả
thu đƣợc là hết sức đáng thất vọng. Lúc này đây, nếu trong tay chúng ta có một
tấm bản đồ mô tả tập hợp dữ liệu, trên đó các dữ liệu đƣợc sắp xếp và phân vùng
theo nội dung, thì khi đó, ngay chỉ một thông tin nhỏ có liên quan đến vấn đề cần
tìm kiếm cũng trở nên hữu ích. Bản đồ hữu ích cho việc tìm kiếm trƣớc hết là
nhờ khả năng trực quan hoá không gian thông tin, sau đó là khả năng hƣớng dẫn
ngƣời dùng đến với vùng thông tin cần tìm kiếm cũng nhƣ các thông tin có liên
quan. Ta có thể hiểu rằng, trong trƣờng hợp này, ngƣời dùng viện đến sự trợ giúp
của máy tìm kiếm không theo nghĩa tìm kiếm thông tin (searching) mà theo nghĩa
thăm dò thông tin (exploration). Sự khác biệt giữa hai khái niệm này có thể đƣợc
minh hoạ nhƣ sau: Một ngƣời tới hiệu sách và hỏi ngƣời bán hàng về một cuốn
sách cụ thể mà anh ta đang cần (searching) và một ngƣời đi dạo qua từng kệ
sách, đọc từng cái tên sách và phỏng đoán cuốn sách nào là phù hợp với yêu cầu
của anh ta (exploration).
Trong vài năm gần đây, một hƣớng nghiên cứu mới đã xuất hiện, đó là một
phƣơng pháp tìm kiếm thông tin toàn văn có tính chất thăm dò và công cụ duyệt
tin có tên là WEBSOM [4, 6, -8]. Nó đƣợc xây dựng dựa trên giải thuật SOM, là
giải thuật áp dụng thuật toán học không giám sát để phân tích và trừu tƣợng hoá
dữ liệu đa chiều. Phƣơng pháp này đáp ứng đƣợc cả hai nhu cầu: phân cụm dữ
liệu và trực quan hoá không gian thông tin.
17
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Chương 2. Phương pháp WEBSOM và bộ công cụ
SOM Toolbox
2.1 Mạng nơ ron.
2.1.1 Mạng nơ ron sinh học.
Bộ não con ngƣời chứa khoảng 10
10
các phần tử (đƣợc gọi là nơron) liên
4
kết chặt chẽ với nhau. Đối với mỗi nơron, có khoảng 10 liên kết với các nơron
khác. Một nơron đƣợc cấu tạo bởi các thành phần nhƣ tế bào hình cây, tế bào
thân và sợi trục thần kinh (trục cảm ứng). Tế bào hình cây có nhiệm vụ mang các
tín hiệu điện tới tế bào thân, tế bào thân sẽ thực hiện gộp (sum) và phân ngƣỡng
các tín hiệu đến. Sợi trục thần kinh làm nhiệm vụ đƣa tín hiệu từ tế bào thân tới
tế bào hình cây của các nơron liên kết. Điểm tiếp xúc giữa một sợi trục thần kinh
của nơron này với một tế bào hình cây của một nơron khác đƣợc gọi là khớp nối
(synapse). Sự sắp xếp các nơron và mức độ mạnh yếu của các khớp thần kinh do
các quá trình hoá học phức tạp quyết định, sẽ thiết lập chức năng của mạng nơron
[2].
Xúc tu
Formatted: Dutch
(Netherlands)
Trục
cảm ứng
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Nhân
Formatted: Dutch
(Netherlands)
Khớp nối
Formatted: Dutch
(Netherlands)
Hình 2.1 Mô hình mạng nơron sinh học
Formatted: Dutch
(Netherlands)
Khi con ngƣời sinh ra, một bộ phận các nơron đã có sẵn trong não, còn các
bộ phận khác đƣợc phát triển thông qua quá trình học, và trong quá trình đó xảy
ra việc thiết lập các liên kết mới và loại bỏ đi các liên kết cũ giữa các nơron. Cấu
trúc mạng nơron luôn luôn phát triển và thay đổi. Các thay đổi có
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
18
Formatted: Dutch
(Netherlands)
Formatted: Dutch (Netherlands)
khuynh hƣớng chủ yếu là làm tăng hay giảm độ mạnh các mối liên kết thông qua
các khớp thần kinh.
Một trong những điển hình giải quyết bài toán học máy là thiết lập các
mạng nơron nhân tạo. Mạng nơron nhân tạo chƣa tiếp cận đƣợc sự phức tạp của
bộ não. Tuy nhiên, do mô phỏng hoạt động học trong não mà về cơ bản có hai sự
tƣơng quan giữa mạng nơron nhân tạo và nơron sinh học. Thứ nhất, cấu trúc tạo
thành chúng đều là các thiết bị tính toán đơn giản (với mạng nơron sinh học đó là
các tế bào thân còn với mạng nhân tạo thì đơn giản hơn nhiều) đƣợc liên kết chặt
chẽ với nhau. Thứ hai, các liên kết giữa các nơron quyết định chức năng hoạt
động của mạng.
2.1.2 Mạng nơ ron nhân tạo
2.1.2.1 Cấu tạo mạng nơ ron nhân tạo
Mạng nơ ron nhân tạo bao gồm các thành phần sau:
1)
Tập các đơn vị xử lý;
2)
Trạng thái kích hoạt a, hay là đầu ra của đơn vị xử lý;
3)
Liên kết giữa các đơn vị, mỗi liên kết đƣợc xác định bởi một trọng
số wji ;
4)
Luật lan truyền quyết định cách tính tín hiệu ra, ký hiệu là n của
đơn vị từ đầu vào của nó;
5)
Hàm kích hoạt f, xác định mức độ kích hoạt khác dựa trên mức độ
kích hoạt hiện tại;
6)
Đơn vị điều chỉnh (độ lệch - bias), ký hiệu là b, của mỗi đơn vị;
7)
Phƣơng pháp thu thập thông tin (luật học – learning rule);
2.1.2.2 Mô hình nơ ron.
1) Neuron có đầu vào đơn
Formatted: Dutch (Netherlands)
19
Formatted: Dutch
(Netherlands)
w
Formatted: Dutch
(Netherlands)
p
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Ví dụ:
w=3; p=2; b=-1,5; suy ra a=f(3*2-1,5)=f(4,5)
Hàm chuyển f có thể là hàm tuyến tính hoặc phi tuyến và phụ thuộc theo
tƣƣ̀ng bài toán.
Một số hàm chuyển thông dụng:
Hàm ngưỡng: (hardlim)
a= hardlim(n)=
o
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
o
Ký hiệu:
Formatted: Dutch
(Netherlands)
Hàm ngưỡng đối xứng: (Hardlims)
Formatted: Dutch
(Netherlands)
o
Formatted: Dutch
a= hardlims(n)=
o
Ký hiệu:
(Netherlands)
Formatted: Dutch
(Netherlands)
• Hàm tuyến tính: (purelin)
o a= purelin(n)= n
o
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Ký hiệu:
Formatted: Dutch
(Netherlands)
• Hàm tuyến tính trên đoạn: (satlin)
o
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
a= satlin(n)=
Formatted: Dutch
(Netherlands)
o
Formatted: Dutch
(Netherlands)
Ký hiệu:
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
20
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Formatted: Dutch
(Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
• Hàm tuyến tính bão hoà đối xứng: (satlins)
o
a= satlins(n)=
Formatted: Dutch (Netherlands)
1 n ≥ 1
n
o Ký hiệu:
Formatted: Dutch (Netherlands)
−1 ≤ n ≤ 1
−1
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Hàm log_sig : (log-sigmoid)
Formatted: Dutch (Netherlands)
1
o
o
a= logsig(n)=
1
+
e
Formatted: Dutch (Netherlands)
−n
Formatted: Dutch (Netherlands)
Ký hiệu:
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Hàm tangent sigmoid : (tansig)
o
a= tansig(n)=
e
n
e
−n
Formatted: Dutch (Netherlands)
−n
n−
Formatted: Dutch (Netherlands)
+
e e
o Ký hiệu:
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Hàm tuyến tính dương: (poslin)
o a= poslin(n)=
0
Formatted: Dutch (Netherlands)
n
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
o Ký hiệu:
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
Hàm cạnh tranh: (compet)
1
o
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
n = max
a= compet(n)=
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
C
o
Ký hiệu:
Formatted: Dutch (Netherlands)
(Compet)
Formatted: Dutch (Netherlands)
Formatted: Dutch (Netherlands)
(Các ký hiệu là dạng đồ thị của các hàm chuyển)
Formatted: Dutch (Netherlands)
21