Phương pháp phân cụm nhờ thuật toán HITS

Một phần của tài liệu WEB data mining by clustering technique 2 (Trang 89)

Thuật toán HITS (Hypertext-Induced Topic Selection) do Kleinberg đề xuất, là thuật toán phát triển hơn trong việc xếp thứ hạng tài liệu dựa trên thông tin liên kết giữa tập các tài liệu.

Định nghĩa:

- Authority: Là các trang cung cấp thông tin quan trọng, tin cậy dựa trên các chủ đề đưa ra.

- Hub: Là các trang chứa các liên kết đến authorities

- Bậc trong: Là số các liên kết đến một nút, được dùng để đo độ ủy quyền. - Bậc ngoài: Là số các liên kết đi ra từ một nút, nó được sử dụng để đo mức độ trung tâm.

Trong đó: Mỗi Hub trỏ đến nhiều Authority, mỗi Authority thì được trỏ đến bởi nhiều Hub. Chúng kết hợp với nhau tạo thành đồ thi phân đôi.

Hình 3.15. Đồ thị phân đôi của Hub và Authority

Các Authority and hub thể hiện một quan hệ tác động qua lại để tăng cường lực lượng. Nghĩa là một Hub sẽ tốt hơn nếu nó trỏ đến các Authority tốt và ngược lại một Authority sẽ tốt hơn nếu nó được trỏ đến bởi nhiều Hub tốt.

Hình 3.16. Sự kết hợp giữa Hub và Authority

Các bước của phương pháp HITS

Bước 1: Xác định một tập cơ bản S, lấy một tập các tài liệu trả về bởi Search Engine chuẩn được gọi là tập gốc R, khởi tạo S tương ứng với R.

Bước 2: Thêm vào S tất cả các trang mà nó được trỏ tới từ bất kỳ trang nào trong R.

Thêm vào S tất cả các trang mà nó trỏ tới bất kỳ trang nào trong R Với mỗi trang p trong S:

Tính giá trị điểm số Authority: ap (vector a) Tính giá trị điểm số Hub: hp (vector h)

Với mỗi nút khởi tạo aphp là 1/n (n là số các trang)

Bước 3. Trong mỗi bước lặp tính giá trị trọng số Authority cho mỗi nút trong S theo công thức: 

  p q q q p h a :

Bước 4. Mỗi bước lặp tính giá trị trọng số Hub đối với mỗi nút trong S theo công thức    p q q p q a h : 1 1 7 1 2 3 4 5 7 6

Lưu ý rằng các trọng số Hub được tính toán nhờ vào các trọng số Authority hiện tạo, mà các trọng số Authority này lại được tính toán từ các trọng số của các Hub trước đó.

Bước 5. Sau khi tính xong trọng số mới cho tất cả các nút, các trọng số được chuẩn hóa lại theo công thức:

      S p p S p p and h a ) 1 ( ) 1 ( 2 2

Lặp lại bước 3 cho tới khi các hp và ap không đổi. Ví dụ: Tập gốc R là {1, 2, 3, 4}

Hình 3.17. Đồ thị Hub-Authority

Kết quả tính được như sau:

Hình 3.18. Giá trị trọng số các Hub và Authority

Giá trị trọng số của Authority Giá trị trọng số của Hub

KPDL Web là một lĩnh vực nghiên cứu mới, có triển vọng lớn. Các kỹ thuật được áp dụng rộng rãi trên thế giới như KPDL văn bản trên Web, KPDL không gian và thời gian liên tục trên Web. Khai phá Web đối với hệ thống thương mại điện tử, khai phá cấu trúc siêu liên kết Web,... Cho tới nay kỹ thuật KPDL vẫn phải đương đầu với nhiều thử thách lớn trong vấn đề KPDL Web.

3.4. Áp dụng thuật toán phân cụm dữ liệu trong tìm kiếm và phân cụm tài liệu Web

Ngày nay, nhờ sự cải tiến không ngừng của các Search engine về cả chức năng tìm kiếm lẫn giao diện người dùng đã giúp cho người sử dụng dễ dàng hơn trong việc tìm kiếm thông tin trên web. Tuy nhiên, người sử dụng thường vẫn phải duyệt qua hàng chục thậm chí hàng ngàn trang Web mới có thể tìm kiếm được thứ mà họ cần. Theo tâm lý chung, người dùng chỉ xem qua vài chục kết quả đầu tiên, họ thiếu kiên nhẫn và không đủ thời gian để xem qua tất cả kết quả mà các search engine trả về. Nhằm giải quyết vấn đề này, chúng ta có thể nhóm các kết quả tìm kiếm thành thành các nhóm theo các chủ đề, khi đó người sử dụng có thể bỏ qua các nhóm mà họ không quan tâm để tìm đến nhóm chủ đề quan tâm. Điều này sẽ giúp cho người dùng thực hiện công việc của họ một cách hiệu quả hơn. Tuy nhiên vấn đề phân cụm dữ liệu trên Web và chọn chủ đề thích hợp để nó có thể mô tả được nội dung của các trang là một vấn đề không đơn giản. Trong luận văn này, ta sẽ xem khía cạnh sử dụng kỹ thuật phân cụm để phân cụm tài liệu Web dựa trên kho dữ liệu đã được tìm kiếm và lưu trữ.

3.4.1. Hướng tiếp cận bằng kỹ thuật phân cụm

Hiện nay, để xác định mức độ quan trọng của một trang web chúng ta có nhiều cách đánh giá như PageRank, HITS, …Tuy nhiên, các phương pháp đánh giá này chủ yếu đều dựa vào các liên kết trang để xác định trọng số cho trang. (adsbygoogle = window.adsbygoogle || []).push({});

Ta có thể tiếp cận cách đánh giá mức độ quan trọng theo một hướng khác là dựa vào nội dung của các tài liệu để xác định trọng số, nếu các tài liệu "gần

nhau" về nội dung thì sẽ có mức độ quan trọng tương đương và sẽ thuộc về cùng một nhóm.

Giả sử cho tập S gồm các trang web, hãy tìm trong tập S các trang chứa nội dung câu hỏi truy vấn ta được tập R. Sử dụng thuật toán phân cụm dữ liệu để phân tập R thành k cụm (k xác định) sao cho các phần tử trong cụm là tương tự nhau nhất, các phần tử ở các cụm khác nhau thì phi tương tự với nhau.

Từ tập S-R, chúng ta đưa các phần tử này vào một trong k cụm đã được thiết lập ở trên. Những phần tử nào tương tự với trọng tâm của cụm (theo một ngưỡng xác định nào đó) thì đưa vào cụm này, những phần tử không thỏa mãn xem như không phù hợp với truy vấn và loại bỏ nó khỏi tập kết quả. Kế tiếp, chúng ta đánh trọng số cho các cụm và các trang trong tập kết quả theo thuật toán sau:

INPUT: tập dữ liệu D chứa các trang gồm k cụm và k trọng tâm

OUTPUT: trọng số của các trang

BEGIN

Mỗi cụm dữ liệu thứ m và trọng tâm Cm ta gán một trọng số tsm.Với các trọng tâm Ci, Cjbất kỳ ta luôn có tsi>tsj nếu ti tương tự với truy vấn hơn tj.

Với mỗi trang p trong cụm m ta xác định trọng số trang pwm. Với mỗi pwi, pwj

bất kỳ, ta luôn có pw1>pw2 nếu pw1 gần trọng tâm hơn pw2.

END

Hình 3.19. Thuật toán đánh trọng số cụm và trang

Như vậy, theo cách tiếp cận này ta sẽ giải quyết được các vấn đề sau:

+ Kết quả tìm kiếm sẽ được phân thành các cụm theo các chủ đề khác nhau, tùy vào yêu cầu cụ thể người dùng sẽ xác định chủ đề mà họ cần.

+ Quá trình tìm kiếm và xác định trọng số cho các trang chủ yếu tập trung vào nội dung của trang hơn là dựa vào các liên kết trang.

+ Giải quyết được vấn đề từ/cụm từ đồng nghĩa trong câu truy vấn của người dùng.

+ Có thể kết hợp phương pháp phân cụm trong lĩnh vực khai phá dữ liệu với các phương pháp tìm kiếm đã có.

Hiện tại, có một số thuật toán phân cụm dữ liệu được sử dụng trong phân cụm văn bản như thuật toán phân cụm phân hoạch (k-means, PAM, CLARA), thuật toán phân cụm phân cấp (BIRCH, STC),... Trong thực tế phân cụm theo nội dung tài liệu Web, một tài liệu có thể thuộc vào nhiều nhóm chủ đề khác nhau. Để giải quyết vấn đề này ta có thể sử dụng thuật toán phân cụm theo cách tiếp cận mờ.

3.4.2. Quá trình tìm kiếm và phân cụm tài liệu

Về cơ bản, quá trình phân cụm kết quả tìm kiếm sẽ diễn ra theo các bước được thể hiện như sau [31]:

- Tìm kiếm các trang Web từ các Website thỏa mãn nội dung truy vấn. - Trích rút thông tin mô tả từ các trang và lưu trữ nó cùng với các URL tương ứng.

- Sử dụng kỹ thuật phân cụm dữ liệu để phân cụm tự động các trang Web thành các cụm, sao cho các trang trong cụm “tương tự” về nội dung với nhau hơn các trang ngoài cụm.

Hình 3.20. Các bước phân cụm kết quả tìm kiếm trên Web

3.4.2.1. Tìm kiếm dữ liệu trên Web

Nhiệm vụ chủ yếu của giai đoạn này là dựa vào tập từ khóa tìm kiếm để tìm kiếm và trả về tập gồm toàn văn tài liệu, tiêu đề, mô tả tóm tắt, URL,… tương ứng với các trang đó.

Dữ liệu web trích rút dữ liệu Tìm kiếm và Tiền xử lý

Biểu diễn dữ liệu Áp dụng thuật toán phân cụm Biểu diễn kết quả

Nhằm nâng cao tốc độ xử lý, ta tiến hành tìm kiếm và lưu trữ các tài liệu này trong kho dữ liệu để sử dụng cho quá trình tìm kiếm (tương tự như các Search Engine Yahoo, Google,…). Mỗi phần tử gồm toàn văn tài liệu, tiêu đề, đoạn mô tả nội dung, URL,…

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

Quá trình làm sạch dữ liệu và chuyển dịch các tài liệu thành các dạng biểu diễn dữ liệu thích hợp. (adsbygoogle = window.adsbygoogle || []).push({});

Giai đoạn này bao gồm các công việc như sau: Chuẩn hóa văn bản, xóa bỏ các từ dừng, kết hợp các từ có cùng từ gốc, số hóa và biểu diễn văn bản,..

3.4.2.2.1. Chuẩn hóa văn bản

Đây là giai đoạn chuyển văn bản thô về dạng văn bản sao cho việc xử lý sau này được dễ dàng, đơn giản, thuật tiện, chính xác so với việc xử lý trực tiếp trên văn bản thô mà ảnh hưởng ít đến kết quả xử lý. Bao gồm:

+ Xóa các thẻ HTML và các loại thẻ khác để trích ra các từ/cụm từ. + Chuyển các ký tự hoa thành các ký tự thường.

+ Xóa bỏ các dấu câu, xoá các ký tự trắng dư thừa,...

3.4.2.2.2. Xóa bỏ các từ dừng

Trong văn bản có những từ mang ít thông tin trong quá trình xử lý, những từ có tần số xuất hiện thấp, những từ xuất hiện với tần số lớn nhưng không quan trọng cho quá trình xử lý đều được loại bỏ. Theo một số nghiên cứu gần đây cho thấy việc loại bỏ các từ dùng có thể giảm bởi được khoảng 20-30% tổng số từ trong văn bản.

Có rất nhiều từ xuất hiện với tần số lớn nhưng nó không hữu ích cho quá trình phân cụm dữ liệu. Ví dụ trong tiếng Anh các từ như a, an, the, of, and, to, on, by,... trong tiếng Việt như các từ “thì”, “mà”, “là”, “và”, “hoặc”,... Những từ xuất hiện với tần số quá lớn cũng sẽ được loại bỏ.

Để đơn giản trong ứng dụng thực tế, ta có thể tổ chức thành một danh sách các từ dừng, sử dụng định luật Zipf để xóa bỏ các từ có tần số xuất hiện thấp hoặc quá cao.

3.4.2.2.3. Kết hợp các từ có cùng gốc

Hầu hết trong các ngôn ngữ đều có rất nhiều các từ có chung nguồn gốc với nhau, chúng mang ý nghĩa tương tự nhau, do đó để giảm bởt số chiều trong biểu diễn văn bản, ta sẽ kết hợp các từ có cùng gốc thành một từ. Theo một số nghiên cứu [5] việc kết hợp này sẽ giảm được khoảng 40-50% kích thước chiều trong biểu diễn văn bản.

Ví dụ trong tiếng Anh, từ user, users, used, using có cùng từ gốc và sẽ được quy về là use; từ engineering, engineered, engineer có cùng từ gốc sẽ được quy về là engineer.

Ví dụ xử lý từ gốc trong tiếng Anh:

- Nêu một từ kết thúc bằng “ing” thì xóa “ing”, ngoại trừ trường hợp sau khi xóa còn lại 1 ký tự hoặc còn lại “th”.

- Nếu một từ kết thúc bằng “ies” nhưng không phải là “eies” hoặc “aies” thì thay thế “ies” bằng “y”...

- Nếu một từ kết thúc bằng “es” thì bỏ “s”.

- Nếu một từ kết thúc bởi "s" và đứng trước nó là một phụ âm khác “s” thì xóa “s”.

- Nếu một từ kết thúc bằng “ed”, nếu trước nó là một phụ âm thì xóa “ed” ngoại trừ sau khi xóa từ chỉ còn lại một ký tự, nếu đứng trước là nguyên âm “i” thì đổi “ied” thành “y”.

3.4.2.3. Xây dựng từ điển

Việc xây dựng từ điển là một công việc rất quan trọng trong quá trình vector hóa văn bản, từ điển sẽ gồm các từ/cụm từ riêng biệt trong toàn bộ tập dữ liệu. Từ điển sẽ gồm một bảng các từ, chỉ số của nó trong từ điển và được sắp xếp theo thứ tự.

Một số bài báo đề xuất [31] để nâng cao chất lượng phân cụm dữ liệu cần xem xét đến việc xử lý các cụm từ trong các ngữ cảnh khác nhau. Theo đề xuất của Zemir [19][31] xây dựng từ điển có 500 phần tử là phù hợp.

3.4.2.4. Tách từ, số hóa văn bản và biểu diễn tài liệu

Tách từ là công việc hết sức quan trọng trong biểu diễn văn bản, quá trình tách từ, vector hóa tài liệu là quá trình tìm kiếm các từ và thay thế nó bởi chỉ số của từ đó trong từ điển.

Ở đây ta có thể sử dụng một trong các mô hình toán học TF, IDF, TF- IDF,... để biểu diễn văn bản.

Chúng ta sử dụng mảng W (trọng số) hai chiều có kích thước m x n, với n

là số các tài liệu, m là số các thuật ngữ trong từ điển (số chiều), hàng thứ j là một vector biểu diễn tài liệu thứ j trong cơ sở dữ liệu, cột thứ i là thuật ngữ thứ i

trong từ điển. Wij là giá trị trọng số của thuật ngữ i đối với tài liệu j.

Giai đoạn này thực hiện thống kê tần số thuật ngữ ti xuất hiện trong tài liệu

dj và số các tài liệu chứa ti. Từ đó xây dựng bảng trọng số của ma trận W theo công thức sau:

Công thức tính trọng số theo mô hình IF-IDF: (adsbygoogle = window.adsbygoogle || []).push({});

Trong đó:

tfij là tần số xuất hiện của ti trong tài liệu dj

idfij là nghịch đảo tần số xuất hiện của ti trong tài liệu dj.

hi là số các tài liệu mà ti xuất hiện.

n là tổng số tài liệu.

3.4.2.5. Phân cụm tài liệu

Sau khi đã tìm kiếm, trích rút dữ liệu và tiền xử lý và biểu diễn văn bản chúng ta sử dụng kỹ thuật phân cụm để phân cụm tài liệu.

INPUT: Tập gồm n tài liệu và k cụm.

OUTPUT: Các cụm Ci (i=1,..,k) sao cho hàm tiêu chuẩn đạt giá trị cực tiểu.

BEGIN

Bước 1. Khởi tạo ngẫu nhiên k vector làm đối tượng trọng tâm của k cụm.

Wij= [1 log( )] log( ) i ij ij ij h n tf idf tf     nếu tidj

Bước 2. Với mỗi tài liệu dj xác định độ tương tự của nó đối với trọng tâm của mỗi cụm theo một trong các độ đo tương tự thường dùng (như Dice, Jaccard, Cosine, Overlap, Euclidean, Manhattan). Xác định trọng tâm tương tự nhất cho mỗi tài liệu và đưa tài liệu vào cụm đó.

Bước 3. Cập nhận lại các đối tượng trọng tâm. Đối với mỗi cụm ta xác định lại trọng tâm bằng cách xác định trung bình cộng của các vector tài liệu trong cụm đó.

Bước 4. Lặp lại bước 2 và 3 cho đến khi trong tâm không thay đổi.

END.

Hình 3.21. Thuật toán k-means trong phân cụm nội dung tài liệu Web

Vấn đề xác định trọng tâm của cụm tài liệu: Xét một cụm văn bản c, trong đó trọng tâm C của cụm c được tính nhờ vào vector tổng D ( 

  c d d D ) của các văn bản trong cụm c: | |c D C

Trong đó, |c| là số phần tử thuộc tập tài liệu c.

Trong kỹ thuật phân cụm, trọng tâm của các cụm được sử dụng để làm đại diện cho các cụm tài liệu.

Vấn đề tính toán độ tương tự giữa 2 cụm tài liệu: Giả sử ta có 2 cụm c1, c2, khi đó độ tương tự giữa 2 cụm tài liệu được tính bằng mức độ “gần nhau” giữa 2 vector trọng tâm C1, C2: Sim(c1,c2)= sim(C1,C2)

Ở đây, ta hiểu rằng c1c2 cũng có thể chỉ gồm một tài liệu vì khi đó có

Một phần của tài liệu WEB data mining by clustering technique 2 (Trang 89)