Xây dựng bản đồ (document map)

Một phần của tài liệu WEB MINING với giải thuật SOM và ứng dụng cho máy tìm kiếm VINAHOO (Trang 33)

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

Theo cách này, bản đồ sẽ đƣợc mở rộng dần qua từng bƣớc cho tới khi đạt đƣợc kích thƣớc mong muốn, nhờ áp dụng phƣơng pháp nội suy [5, 7, 9].

Chúng ta sẽ xét một miền chữ nhật 2 chiều với các véctơ đầu vào cũng là các véctơ 2 chiềụ Một hàm mật độ xác suất của các véctơ đầu vào đƣợc lựa chọn là một hàm đều trên miền chữ nhật. Miền này có thể đƣợc xấp xỉ hóa bởi tập các véctơ {mil(d) R2} hoặc {mil(s) R2}, trong đó các chỉ số d và s biểu thị cho lƣới dày (dense) hoặc thƣa (sparse). Nếu có 3 véctơ mil(s), mil(s) và mil(s) không cùng nằm trên một đƣờng thẳng thì trên mặt phẳng 2 chiều, bất kỳ một véctơ mhl(d) nào cũng có thể đƣợc xấp xỉ hóa nhờ biểu thức tuyến tính sau:

trong đó αh và βh là các hệ số nội suỵ Đây là một phƣơng trình véctơ 2 chiều mà từ đó có thể tính đƣợc giá trị 2 tham số αh và βh.

Và bây giờ chúng ta lại xét đến một hàm mật độ xác suất không đều nhƣng trơn (smooth) trên một không gian đầu vào nhiều chiều bất kỳ; 2 lƣới

Hình 2.8

Hình minh họa mối quan hệ giữa các véctơ mẫu trong một lƣới thƣa (s, biểu diễn bởi các đƣờng kẻ thẳng) và một lƣới dầy đặc (d, biểu diễn bởi đƣờng kẻ thƣa). Đây chỉ là một mảnh nhỏ của bản đồ đƣợc lấy ra làm minh họạ Ở đây, điểm mhl(d)

đƣợc nội suy nhờ 3 mẫu gần nó nhất trong lƣới thƣa là mil(s), mil(s), mil(s).

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands)

SOM có cùng topology nhƣng khác nhau về mật độ, nhƣ đã mô tả ở hình trên. Chúng ta cũng vẫn có thể thực hiện một ƣớc lƣợng tuyến tính cục bộ đối với véctơ mh(d)Rn trên lƣới dầy, dựa trên cơ sở 3 véctơ mils), mi(s) và mi(s) Rn thuộc lƣới thƣa, sử dụng các hệ số nội suy nhƣ biểu thức trên.

Trong thực nghiệm, để ƣớc lƣợng tuyến tính đạt độ chính xác cao nhất, các chỉ số h, i, j, k nên thỏa mãn mil(s), mil(s) và mil(s) không thẳng hàng và là 3 véctơ gần nhất đối với mhl(d). Với αh và βh đƣợc tính từ biểu thức trên, với mỗi nút h chúng ta sẽ có một biểu thức nội suy tƣơng ứng nhƣ sau:

Lƣu ý là các chỉ số h, i, j, k trong hai biểu thức trên tƣơng ứng với các điểm đồng nhất về mặt hình học (topologically identical points) trên lƣớị Các hệ số nội suy trên lƣới 2 chiều phụ thuộc vào topology của lƣới và hàm láng giềng đƣợc sử dụng trong pha huấn luyện.

2.3.2.2 Các thao tác hoàn thiện, làm mịn trên bản đồ

Đánh địa chỉ các đơn vị BMU trƣớc đó

Bởi vì thuật toán huấn luyện trong WEBSOM lúc này là huấn luyện theo khối, nên ta giả sử rằng chúng ta đang ở trong một bƣớc huấn luyện nào đó khi mà lƣới SOM của chúng ta đã đƣợc sắp xếp khá mịn nhƣng vẫn chƣa đạt tới mức ổn định. Giả sử rằng các véctơ mẫu không biến đổi nhiều trong mỗi bƣớc huấn luyện. Khi lặp lại bƣớc huấn luyện tiếp theo, các dữ liệu huấn luyện (training vectors) đƣợc sử dụng lạị Có thể tin chắc rằng các nút chiến thắng mới (new winner) sẽ đƣợc tìm thấy ở đâu đó xung quanh nút chiến thắng ở vòng lặp trƣớc đó (old winner) . Sau đó, khi các véctơ huấn luyện đƣợc biểu diễn dƣới dạng bảng tuyến tính với con trỏ lƣu trữ kèm theo với mỗi véctơ và trỏ tới vị trí nút chiến thắng trƣớc đó, thì nút chiến thắng sẽ đƣợc tính toán đầu tiên để xem nó có phải là nút chiến thắng mới hay không, sau đó việc tìm kiếm sẽ đƣợc tiến hành xung quanh nút chiến thắng cũ. Khi đã tìm đƣợc nút chiến thắng mới, con trỏ mới trỏ tới vị trí của nó sẽ thay thế cho con trỏ trƣớc đó [5, 7]. Nhƣ vậy, việc tìm kiếm sẽ nhanh hơn nhiều so với việc tìm kiếm trên toàn bộ không gian SOM. Để chắc chắn rằng nút chiến thắng tìm đƣợc cũng là nút

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands)

chiến thắng toàn cục, việc tìm kiếm trên toàn bộ không gian SOM cũng có thể đƣợc tiến hành một cách xen kẽ.

Khởi tạo các con trỏ

Khi kích thƣớc của bản đồ tăng lên theo mỗi bƣớc huấn luyện, các con trỏ khởi tạo cho các véctơ dữ liệu sau mỗi lần tăng có thể đƣợc xác định một cách nhanh chóng nhờ tận dụng biểu thức đã đƣợc sử dụng để mở rộng bản đồ (xem 2.3.2.1). Nút chiến thắng cũng chính là nút mà tích vô hƣớng giữa nó với véctơ dữ liệu là lớn nhất. Tích vô hƣớng này có thể tính toán nhanh chóng sử dụng biểu thức:

trong đó d chỉ các véctơ mẫu trên bản đồ và s chỉ các véctơ trên bản đồ thƣạ Biểu thức này cũng có thể xem nhƣ là tích vô hƣớng giữa hai véctơ 3 chiều [αh; βh; (1- αh - βh )]T và [xTmi(s); xTmj(s); xTmk(s)]T mà không quan tâm tới số chiều của x [5, 7].

Song song hóa giải thuật huấn luyện theo khối

Việc tìm kiếm nút chiến thắng có thể thực hiện theo phƣơng pháp song song hóa nhờ chia nhỏ tập dữ liệu huấn luyện cho các bộ xử lý khác nhau trên một máy tính với bộ nhớ chia sẻ. Vì bản đồ chỉ thay đổi sau khi đƣợc cập nhật

Hình 2.9 Hình minh họa quá trình tìm BMU

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands)

trọng số giữa hai lần huấn luyện, do đó nó hoàn toàn có thể đƣợc chia sẻ read- only trong suốt quá trình tìm kiếm BMU [4, 5].

2.4 Công cụ SOM Toolbox

SOM Toolbox ra đời do nhu cầu đòi hỏi cần phải có một công cụ tốt, dễ sử dụng, dành riêng cho SOM và đƣợc viết trong Matlab để phục vụ cho mục đích nghiên cứu [8]. Toolbox có thể sử dụng để tiền xử lý dữ liệu, khởi tạo và huấn luyện SOM, trừu tƣợng hoá SOM bằng nhiều cách khác nhau, phân tích các thuộc tính khác của SOM chẳng hạn nhƣ chất lƣợng của SOM, các cụm thể hiện trên bản đồ và các mối liên kết giữa chúng…

2.4.1 Định dạng dữ liệu

Kiểu dữ liệu có thể đƣợc xử lý bởi Toolbox thƣờng đƣợc gọi là một bảng dữ liệu 2 chiềụ Mỗi dòng trong bảng là một dữ liệu ví dụ. Các cột của bảng là các biến ứng với tập dữ liệụ Các biến này có thể là các thuộc tính của một đối tƣợng, hoặc một tập kích thƣớc đƣợc đo tại một thời điểm xác định. Điều quan trọng là mọi ví dụ đều có chung tập các biến. Một vài giá trị có thể bị mất tuy nhiên phần lớn chúng đƣợc lƣu tại đó. Định dạng bảng là một kiểu định dạng phổ biến. Nếu dữ liệu của chúng ta không phù hợp với kiểu định dạng này, chúng có thể đƣợc biến đổi để trở nên thích hợp.

SOM Toolbox có thể xử lý cả hai dạng dữ liệu: kiểu số (numeric) và kiểu ký hiệubiểu tƣợng (symbolic), tuy nhiên chỉ có dạng dữ liệu sốnumeric mới phù hợp với giải thuật SOM. Lƣu ý đối với các dữ liệu dạng sốnumeric, biểu diễn dạng sốnumeric phải mang ý nghĩa nhƣ sau: giả sử 1, 2 và 4 là các giá trị tƣơng ứng của các đối tƣợng A, B và C. Khi đó, điều này mang ý nghĩa là B nằm giữa A và C, khoảng cách giữa A và B nhỏ hơn khoảng cách giữa B và C.

Trong Toolbox, dữ liệu dạng ký hiệusymbolic có thể đƣợc thêm vào chuỗi các nhãn, gắn liền với mỗt ví dụ. Hàm SOM-AutoLabel có thể dùng để điều khiển dạng dữ liệu ký hiệusymbolic. Nếu các biến ký hiệusymbolic cần đƣợc sử dụng trong quá trình huấn luyện SOM, chúng có thể đƣợc chuyển đổi

Formatted: Dutch (Netherlands)

về dạng dữ liệu sốnumeric nhờ thuật toán ánh xạ 1-of-n [4] (Dorial Pyle, Data

Preparation for Data Mining. Morgan Kaufmann Publisher, 1999).

2.4.2 Xây dựng các tập dữ liệu

Trƣớc hết, dữ liệu đầu vào cần phải đƣa vào sử dụng bởi Matlab, thông qua các hàm chuẩn của Matlab là load và fscanf. Thêm vào đó, Toolbox có hàm som_read_data để đọc các file ASCII:

sD= som_read_data ("filẹtxt");

Dữ liệu thƣờng đƣợc đặt vào một dạng cấu trúc dữ liệu (data struct) của Toolbox, đƣợc định nghĩa bởi Matlab nhằm nhóm các thông tin có liên quan đến nhau thành một tập hợp. Nó có các trƣờng cho dữ liệu kiểu numerical (.data), kiểu strings (.labels) cũng nhƣ cho thông tin về tập dữ liệu và các biến riêng lẻ. Toolbox cũng sử dụng nhiều cấu trúc khác, chẳng hạn cấu trúc map để lƣu trữ tất cả các thông tin có liên quan đến nhau thành một SOM. Một ma trận dạng numerical có thể chuyển đổi sang dạng dữ liệu bằng lệnh: sD=som_data_struct(D). Nếu dữ liệu chỉ bao gồm các giá trị kiểu numerical, thì không thực sự cần thiết phải chuyển sang dạng cấu trúc của Toolbox. Hầu hết các hàm của Toolbox chấp nhận các ma trận dạng numerical. Tuy nhiên với các biến kiểu symbolic thì cần phải chuyển sang dạng chuỗi (string) và đặt vào trƣờng .labels của cấu trúc dữ liệụ

Dữ liệu dạng số (numerical data) phải là một ma trận kích thƣớc [dlen x dim], trong đó dlen là số lƣợng các mẫu và dim là số lƣợng các biến kiểu numerical. Giả sử D là một ma trận nhƣ vậy, thì mỗi dòng D(i, :) sẽ ứng với một ví dụ, mỗi cột D(: , i) sẽ là tập các giá trị của một biến nào đó. Nếu giá trị của một số biến nào đó ứng với một số ví dụ là rỗng thì giá trị rỗng có thể đƣợc thay thế bởi giá trị NaNs.

Công cụ SOM Toolbox gồm các cấu trúc dữ liệu sau: 1. Data struct: gồm tất cả các thông tin liên quan đến tập dữ liệụ

Tên trƣờng Kiểu Kích thƣớc Ý nghĩa

.type string Định danh kiểu cấu trúc

Formatted: Dutch (Netherlands)

thay đổị

.name string Định danh tập dữ liệu

.data matrix [mn] Bảng dữ liệu, mỗi dòng là một ví dụ và mỗi cột là một thành phần. Bảng dữ liệu này có thể chứa cả các giá trị thiếu, đƣợc ký hiệu là NaNs.

.lables matrix [mk] (k<n) Các nhãn của các vectơ. .comp_name matrix [n1] Tên thuộc tính/thành phần .comp_norm matrix [n1] Cấu trúc chuẩn hoá cho mỗi

thuộc tính .lable_name matrix [k1] (k<n) Tên các lable

2. Map struct: gồm các thông tin đầy đủ về SOM Tên trƣờng Kiểu Kích thƣớc Ý nghĩa

.type string Định danh kiểu cấu trúc

(som_map)

.name string Định danh của map

.codebook matrix [munits x n]

Ma trận tín hiệụ Mỗi dòng tƣơng ứng với vectơ trọng số của một map.

.topol topology struct

Cấu trúc hình học của map: kích thƣớc, kiểu lƣới và hình dạng. .lables matrix [munits x

*]

Các lable trên map

.neigh string Tên hàm lân cận (gaussian, cutgaussian, bubble, ep)

.mask vector [n  1] Mặt nạ tìm kiếm BMU

.trainhist struct [*  1] Cấu trúc mảng của các cấu trúc huấn luyện

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands)

.comp_name matrix [n  1] Tên thuộc tính/thành phần .comp_norm matrix [n  1] Cấu trúc chuẩn hoá cho mỗi

thuộc tính

3. Topology struct: gồm các thông tin về cấu trúc hình học của map Tên trƣờng Kiểu Kích thƣớc Ý nghĩa

.type string Định danh kiểu cấu trúc

(som_topol) .msize vector [* x 1] (*>2) Kích thƣớc của map

.lattice string Kiểu lƣới, mặc định là lục giác

.shape string Hình dạng tổng quát của map

4. Normalization struct: thông tin chuẩn hoá

Tên trƣờng Kiểu Kích thƣớc Ý nghĩa

.type string Định danh kiểu cấu trúc

(som_norm)

.method string Phƣơng pháp chuẩn hoá (var, range, log, logistic, histD, histC) .params varies Tuỳ theo phƣơng pháp khác nhau

có tham số khác nhau

.status string Trạng thái chuẩn hoá

5. Traing struct: gồm các thông tin khi khởi tạo và huấn luyện Tên trƣờng Kiểu Kích thƣớc Ý nghĩa

.type string Định danh kiểu cấu trúc

(som_train)

.algorithm string Thuật toán huấn luyện/khởi tạo .data_name string Tên dữ liệu huấn luyện .mask vector [n  1] Mặt nạ tìm kiếm BMU

.neigh string Tên hàm lân cận (gaussian,

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands)

cutgaussian, bubble, ep) .radius_ini scalar Bán kính lân cận ban đầu .radius_fin scalar Bán kính lân cận cuối cùng .alpha_ini scalar Tỷ lệ học ban đầu tại thời điểm

bắt đầu huấn luyện

.alpha_type string Kiểu hàm xác định tỷ lệ học

.trainlen scalar Độ dài huấn luyện

.time string Ngày và giờ thực hiện huấn luyện

6. Grid struct:

Tên trƣờng Kiểu Kích thƣớc Ý nghĩa

.type string Định danh kiểu cấu trúc

(som_grid)

.lattice string Kiểu lƣới

.shape string Hình dạng tổng quát của map

.msize vector [1  2] Kích thƣớc của map .coord matrix [munits  2]

hoặc

[munits  3]

Toạ độ cho các map. Có kích thƣớc là 2 hoặc 3

.line string Kiểu đƣờng thẳng dùng cho các

đƣờng liên kết

.linecolor string Màu đƣờng thẳng

.linewidth scalar Độ nét của đƣờng thẳng

.marker string Vạch dấu dùng cho map

.markersize scalar Kích thƣớc vạch dẫu

.markercolor string Màu vạch dấu

.surf empty vector RGB

Mặc định là rỗng. Nếu có giá trị thì là nét vẽ thêm vào, nếu là RGB thì nó là chỉ số mầu để

Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands) Formatted: Dutch (Netherlands)

Formatted: Dutch (Netherlands)

trang trí

.label string Nhãn cho mỗi grid

.labelcolor string Màu cho nhãn

.labelsize scalar Kích thƣớc chữ trên nhãn

2.4.3 Tiền xử lý dữ liệu

Nói chung, tiền xử lý dữ liệu có thể chỉ là sự chuyển đổi đơn giản hoặc thực hiện chuẩn hoá số liệu, sàng lọc, tính toán các giá trị mới thay thế các giá trị cũ. Việc cân bằng các giá trị trong bộ công cụ này là đặc biệt quan trọng, vì thuật toán SOM dùng độ đo Ơcơlit để tính toán khoảng cách giữa các vectơ. Nếu chỉ có một giá trị nằm trong khoảng [0,...,1000] và các giá trị khác nằm trong khoảng [0,...,1] thì sẽ ảnh hƣởng đến tổ chức của ma trận vì tác động của nó đến độ đo khoảng cách. Nói chung, mục đích của chuẩn hoá dữ liệu là làm cho các giá trị là ngang bằng nhaụ Cách thức mặc định để thực hiện vấn đề này đó là cân bằng tuyến tính tất cả các giá trị sao cho mỗi độ chênh lệch khác biệt bằng một. Điều này có thể thực hiện đơn giản bằng hàm sD = som_normalize(sD,’var’) hoặc D = som_normalize(D,’var’).

Một điều thuận lợi cho việc dùng các cấu trúc dữ liệu để thay thế cho các ma trận dữ liệu đó là cấu trúc dữ liệu thể hiện đƣợc thông tin chuẩn hoá trong trƣờng .com_norm. Dùng hàm som_denormalize(sD) có thể khôi phục lại giá trị ban đầụ

2.4.4 Khởi tạo và huấn luyện

Có hai thuật toán khởi tạo (ngẫu nhiên và tuần tự), hai thuật toán huấn luyện (liên tục và nhóm) trong Toolbox. Mặc định Toolbox sử dụng thuật toán khởi tạo tuần tự và thuật toán huấn luyện theo nhóm. Cách đơn giản nhất để khởi tạo và huấn luyện một SOM chính là sử dụng hàm som_makẹ

sM= som_make(sD)

Quá trình huấn luyện bao gồm hai pha: huấn luyện thô với khoảng cách giữa các láng giềng lớn và tỷ lệ học (learning rate) lớn. Nếu có những yêu cầu

Formatted: Dutch (Netherlands)

khắt khe hơn đối với những tham số huấn luyện, một quá trình khởi tạo tƣơng ứng và các hàm huấn luyện chẳng hạn nhƣ som_batchtrain sẽ đƣợc sử dụng. 2.4.5 Biểu diễn và phân tích

Có rất nhiều phƣơng pháp để biểu diễn, trực quan hoá SOM. Trong Toolbox, cách đơn giản nhất là sử dụng hàm som_show. Nó có thể sử dụng để tạo ra ma trận U và các mức thành phần của SOM.

som_show(sM);

Ma trận U biểu diễn khoảng cách giữa các đơn vị láng giềng trên bản đồ, do đó nó chỉ ra cấu trúc các cụm trên bản đồ: các giá trị lớn trên bản đồ chỉ ra các vị trí biên của các cụm, tập hợp các giá trị nhỏ tƣơng ứng tạo thành các cụm. Mỗi một mức thành phần chỉ ra các giá trị của một biến trong từng đơn vị trên bản đồ. Ở tầng trên cùng của qua trình trực quan hoá này là các thông tin bổ trọ nhƣ nhãn, quỹ đạo, độ xám.

Với hàm som_vis, chúng ta có thể biểu diễn trực quan hoá tốt hơn. Hàm xây dựng dựa trên ý tƣởng rằng, việc trực quan hoá một tập dữ liệu cũng đơn giản nhƣ một tập các đối tƣợng mà mỗi đối tƣợng có duy nhất một vị trí, màu sắc và hình dạng. Thêm vào đó, mối liên quan giữa các đối tƣợng, chẳng hạn các láng giềng cạnh nhau ccó thể sử dụng các đƣờng kẻ để thể hiện. Với som_vis, ngƣời dùng có thể tạo ra các giá trị tuỳ ý cho mối thuộc tính. Ví dụ: x,y,z là 3 thuộc tính ứng với toạ độ, kích cỡ đối tƣợng và màu sắc là 5 biến có

Một phần của tài liệu WEB MINING với giải thuật SOM và ứng dụng cho máy tìm kiếm VINAHOO (Trang 33)