5 Đề xuất mơ hình gom cụm văn bản dựa trên mơ hình chủ đề kết hợp với véc-tơ ngữ
5.9 Kiến trúc của khối Autoencoder trong mơ hình đề xuất
5.4.4 Mơ phỏng giản lược
Hình 5.10: Mơ phỏng q trình kết hợp véc-tơ LDA với vec-tơ sentence embedding và kết quả với Autoencoder
5.4.5 Ví dụ thực tế với bộ dữ liệu
Tiếp tục ví dụ cho khối AutoEncoder, với việc kết hợp véc-tơ xác suất của LDA với véc-tơ sentence embedding của PhoBERT ta đã tạo ra một véc-tơ mới. Véc-tơ này mang lượng thông
tin của LDA nhiều hơn nhằm sử dụng khả năng xác định topic tương đối tốt của LDA, nhưng thêm vào đó lượng thơng tin ngữ cảnh của véc-tơ sentence embedding có 2 khả năng tối ưu có thể xảy ra: thứ nhất trong quá trình xác định topic của LDA không tránh khỏi trường hợp một văn bản thuộc về nhiều chủ đề do đó nhờ vec-tơ ngữ cảnh này có thể xác định chênh lệch khả năng bài báo có thể rơi vào chủ đề tương đồng nó theo ngữ nghĩa của nó nhất; thứ hai trong cùng một chủ đề những chủ đề nhỏ hơn có thể lộ rõ mà khơng bị trùng lắp nhờ sự tương đồng về ngữ nghĩa. Xem xét ví dụ bên dưới, sau khi giảm chiều để giảm chi phí tính tốn nhưng vẫn giữ được các thuộc tính đại diện đặc trưng của những véc-tơ đó. So sánh khoảng cách Euclid giữa những véc-tơ này, lấy véc-tơ đầu tiên(index bằng 0) làm gốc so sánh. Dễ dàng nhận ra, 3 véc-tơ có index là 0,1,3 sẽ có khả năng cao thuộc về một chủ đề và véc-tơ ở index là 2 có khả năng thuộc về một chủ đề khác.
5.5 Khối Clustering
Sử dụng thuật tốn Kmeans++ trong q trình phân cụm những vec-tơ đầu ra 32 chiều của khối Autoencoder.
5.5.1 Mô phỏng giản lược
Hình 5.12: Mơ phỏng quá trình phân cụm và kết quả của Kmeans++
5.5.2 Ví dụ thực tế với bộ dữ liệu
Với ví dụ bên trên, 3 bài báo thuộc chủ đề Thể thao rơi vào topic có index là 0, và bài báo với chủ đề Kinh doanh rơi vào topic có index là 1. Kết quả này là phù hợp với khả năng phân chia cụm cho các chủ đề ẩn.
Hình 5.13: Kiến trúc của khối Clustering trong mơ hình đề xuất
5.6 Tổng kết chương 5
Chương 5 đã giới thiệu lý thuyết về giảm chiều dữ liệu cho các véc-tơ cao chiều. Tìm hiểu rõ hơn về q trình giảm chiều dữ liệu với mơ hình Autoencoder.
Mục tiêu chính của chương này là giới thiệu về mơ hình phân cụm sẽ đề xuất, phân tích và đưa ra ví dụ cho từng khối của mơ hình.
Chương 6
Đánh giá thực nghiệm mơ hình gom cụm văn bản dựa trên mơ hình chủ đề đã đề xuất
6.1 Thu thập dữ liệu6.1.1 Nguồn dữ liệu 6.1.1 Nguồn dữ liệu
Đầu vào dữ liệu liên quan đến thông tin thu thập trên các trang báo mạng, diễn đàn. Vì hiện chưa có một nguồn dữ liệu tiêu chuẩn cho văn bản tiếng Việt trong việc phân cụm và quan sát sự thay đổi theo thời gian(đã tìm hiểu trên website thư viện MìAI, diễn đàn machine learning cơ bản). Do đó việc thu thập dữ liệu được tiến hành bằng việc sử dụng cơng cụ cào dữ liệu trên trang web có tên là Scrapy(nguồn:https://scrapy.org/).
Scrapy là một thư viện mã nguồn mở, nền tảng cho phép trích xuất dữ liệu từ trang web. Khả năng lấy dữ liệu nhanh chóng, đơn giản và có thể dễ dàng mở rộng tuỳ biến công cụ. Được phát triển và duy trì bởi Zyte. Cơng cụ này đơn giản trong cài đặt và xử lý dữ liệu, đã có thư viện sẵn trong ngơn ngữ python. Ngơn ngữ sử dụng là python, dữ liệu có thể định dạng để lưu trữ trên nhiều loại file như csv, excel, ..
Nguồn dữ liệu được lựa chọn lấy từ trang web VnExpress.vn. Đây là trang báo điện tử do tập đoàn FPT thành lập và ra mắt công chúng vào năm 2001. Là một trang web được tin cậy và có nền tảng lâu đời. Nguồn tin trên VnExpress có những ưu điểm bao gồm: nhanh chóng, ngắn gọn và đa dạng.
6.1.2 Q trình thu thập dữ liệu
Quá trình lấy dữ liệu trên nền tảng web với cơng cụ Scrapy gồm các bước:
• Lựa chọn các thông tin cần thiết: Ngày bài báo được công bố, văn bản của bài báo và thể loại bài báo. Ngày bài báo công bố được sử dụng để quan sát sự thay đổi luồng dư luận, văn bản bài báo để huấn luyện mơ hình và thể loại hay chủ đề bài báo để quan sát về sự phân bố dữ liệu trong tập dữ liệu đầu vào.
• Viết một Spider(Class) có nhiệm vụ sẽ lấy thơng tin văn bản trong các url được đặc tả trước về nơi lấy dữ liệu. Thông tin văn bản này sẽ nằm trong các thẻ, các tag html mà Spider sẽ cần phải trích xuất văn bản từ đó.
• Thực hiện chạy cơng cụ cào web với Spider đã tạo và lưu lại dữ liệu về một tệp .csv để có thể sử dụng trong mơ hình.
6.1.3 Kết quả thu thập dữ liệu
Với quá trình thu thập dữ liệu trong những tháng của quý 2 năm 2021, bao gồm 3 tháng(3,4,5) của năm 2021. Tổng lượng dữ liệu thô thu thập được: 16255 bài báo.
6.2 Tiền xử lý dữ liệu
Dữ liệu thô được xử lý theo các bước:
1. Loại bỏ nhiễu: Quá trình loại bỏ nhiễu nhằm đảm bảo giảm thiểu các sai số về mặt dữ liệu, Trên thực tế dữ liệu thơ thu thập thường có chứa rất nhiều vấn đề, nếu đưa trực tiếp vào các
mơ hình rất dễ gây ra sự sai lệch lớn trong kết quả cuối cùng. Trong mơ hình này loại bỏ nhiễu được thực hiện khá đơn giản:
• Loại bỏ các hàng dữ liệu khơng có giá trị(NULL). Khơng tránh khỏi việc trong quá trình thu thập dữ liệu gặp trường hợp bài báo khơng có nội dung. Hoặc chỉ có tiêu đề nhưng mất ngày cơng bố, làm khó mà quan sát được sự thay đổi dư luận.
• Loại bỏ các bài báo có độ dài văn bản dưới 50 từ. Trong quá trình thu thập dữ liệu, trong tập dữ liệu thơ thu thập được, có rất nhiều bài báo được viết dưới dạng hình thức quảng cáo cho doanh nghiệp, bài báo chỉ có hình ảnh, bài báo mang tính quảng bá,.... Hầu hết các bài báo này khơng mang lại giá trị khi huấn luyện vì thế cần bỏ đi để tránh tập huấn luyện học nhiễu. Việc lựa chọn 50 từ là một giới hạn sau khi đã xem qua nhiều bài báo nhiễu có trường hợp tương tự như trên(Khoảng 80%), tuy nhiên vẫn phải thừa nhận rằng trong dữ liệu đã xử lý vẫn còn tồn tại một số lượng nhiễu nhất định.
2. Chuẩn hố dữ liệu. Q trình chuẩn hố dữ liệu để đảm bảo các văn bản từ các bài báo thu thập được sẽ phù hợp hơn khi đưa vào các mơ hình. Một số kí tự đặc biệt, những từ khơng nhiều ý nghĩa(stop-word) có thể ảnh hưởng xấu đến mơ hình. Chuẩn hố dữ liệu trong mơ hình được thực hiện qua 3 bước:
• Loại bỏ các kí tự đặc biệt(%, $, &, ... )
• Loại bỏ stop-word của tiếng Việt(những từ mang nghĩa bổ sung, hoặc khơng hề có nghĩa chỉ là từ lóng của tiếng Việt)
• Xử lý đơn giản cho một câu về đúng cấu trúc(loại bỏ khoảng trắng liên tục, từ lặp,.. ) 3. Phân tách dữ liệu. Bởi vì sẽ so sánh độ hiệu quả trong nhiều mơ hình vì thế cần phải xử lý
đầu vào cho từng mơ hình cụ thể. Sẽ có 3 loại thơng tin chính:
• token_list: là danh sách các từ được tách ra từ văn bản bởi công cụ VncoreNLP. Chú ý vào 3 loại từ chính là: danh từ, tính từ, động từ. Vì gần như nội dung văn bản thuộc vào nhóm các từ này.
• sentence: là câu đã được bộ tách từ của VNCoreNLP tách ra và nối lại để phù hợp cho mơ hình PhoBERT.
• sentence1: là câu khơng được xử lý bởi VNCoreNLP. Đầu vào này dành riêng cho mơ hình BERT đa ngôn ngữ để so sánh với hiệu quả mà PhoBERT đem lại khi PhoBERT dành chỉ riêng cho tiếng Việt, cịn BERT đa ngơn ngữ có thể sử dụng cho 104 ngơn ngữ(BERT_mul_base_case)
4. Phân chia các bộ dữ liệu. Dữ liệu được phân chia làm 2 tập dữ liệu. Tập thứ nhất là toàn bộ dữ liệu đã được tiền xử lý thu được: 13525 bài báo, chiếm 83% dữ liệu thô. Tập dữ liệu thứ hai là tập con của tập dữ liệu thứ nhất chỉ bao gồm dữ liệu của hai tháng 4 và tháng 5, nhằm xem luồng dư luận(sự chú ý của các chủ đề xuất hiện nhiều hơn các chủ đề khác trong cùng một khoảng thời gian) thay đổi theo tuần trong hai tháng này. Bao gồm 8741 bài báo, thu thập từ ngày 5/4/2021 đến ngày 30/5/2021.
Tập dữ liệu
Số lượng dữ liệu(đơn vị: bài báo)
Mô tả về tập dữ liệu Nhiệm vụ của tập dữ liệu
Tập dữ liệu
[I] 13525
Là tập dữ liệu được tiền xử lý lấy trong bốn tháng từ tháng 3 đến tháng 5 năm 2021 trên trang báo điện tử VnExpress Dùng để quan sát sự phân cụm cho 11 chủ đề có trong tập dữ liệu. Tập dữ liệu [II] 8741
Dữ liệu được trích xuất từ tập dữ liệu [I] trong 8 tuần(từ ngày 5/4 đến ngày 30/5)
Dùng để quan sát thay đổi sự quan tâm của dư luận theo thời gian ( sự thay đổi mật độ phân bố các chủ đề trong tuần theo thời gian) .
Chủ đề Số lượng dữ liệu(đơn vị: bài báo) Giáo dục 1066 Sức khoẻ 1360 Khoa học 1166 Số hố 986 Giải trí 1322 Thể thao 1420 Đời sống 1160 Du lịch 886 Thế giới 1461 Kinh doanh 1406 Pháp luật 1292
Bảng 6.2: Thống kê sự phân bố dữ liệu theo chủ đề trong tập dữ liệu [I]
Tuần Số lượng dữ liệu(đơn vị: bài báo) Tuần 1(5/4 - 11/4) 850 Tuần 2(12/4 - 18/4) 897 Tuần 3(19/4 - 25/4) 1062 Tuần 4(26/4 - 2/5) 1135 Tuần 5(3/5 - 9/5) 1161 Tuần 6(10/5 - 16/5) 1174 Tuần 7(17/5 - 23/5) 1244 Tuần 8(24/5 - 30/5) 1218
6.3 Xây dựng các mơ hình so sánh
Các thực nghiệm được xây dựng để so sánh và xác định khả năng của mơ hình đề xuất so với các mơ hình từng tồn tại từ trước đó, cụ thể gồm có:
1. Mơ hình kết hợp TF-IDF với clustering. 2. Mơ hình kết hợp LDA và clustering.
3. Mơ hình kết hợp PhoBERT(hoặc BERT), Autoencoder và clustering 4. Mơ hình kết hợp PhoBERT(hoặc) + LDA, Autoencoder và clustering
Các công cụ sử dụng để hiện thực thực nghiệm:
• Để sinh véc-tơ TF-IDF dùng TfidfVectorizer trong thư viện sklearn
• Bộ clustering sử dụng Kmeans trong thư viện sklearn
• Thuật tốn LDA của thư viện gensim
• Mơ hình BERT xây dựng bởi pretrained "bert-base-multilingual-cased" trong thư viện transformer
• Mơ hình PhoBERT xây dựng bởi pretrained "vinai/phobert-base" trong thư viện trans- former
6.4 Đánh giá khách quan, chủ quan và so sánh các mơ hình6.4.1 Độ đo coherence và silhouette 6.4.1 Độ đo coherence và silhouette
Coherence - Tính mạch lạc. Là đặc trưng đại diện cho sự mạch lạc về ngữ nghĩa trong một hoàn cảnh nhất định của văn bản. Các tuyên bố hoặc dữ kiện được cho là mạch lạc khi chúng có sự tương quan hỗ trợ lẫn nhau. Do đó, một tập hợp dữ kiện mạch lạc sẽ có thể được giải thích trong một ngữ cảnh gồm tập hợp gần như tồn bộ các dữ kiện. Lấy một ví dụ về dữ kiện mạch lạc: "Trị chơi là một mơn thể thao đồng đội", đây là một câu hoàn chỉnh, trong đó các dữ kiện có liên quan với nhau, và sắp xếp trong một thứ tự hợp lý(trị chơi - mơn thể thao đồng đội) khiến cho câu này mạch lạc.
Độ đo coherence - hay topic coherence là một độ đo xác định tính mạch lạc trong chủ đề. Độ đo này được tính bằng cách đo mức độ tương đồng về ngữ nghĩa của các từ đạt điểm cao(top- word) trong chủ đề. Được sử dụng rất nhiều trong việc đo độ mạch lạc chủ đề trong các mơ hình chủ đề. Độ đo này giúp phân biệt giữa các chủ đề có thể giải thích bởi sự mạch lạc, liên quan về ngữ nghĩa của ngôn ngữ tự nhiên và các chủ đề được sinh từ phương pháp suy luận thống kê.
Có khá nhiều độ đo topic coherence như: C_v, C_p, C_uci, C_umass, C_npmi, C_a. Tuy nhiên trong đề tài này chỉ sử dụng o C_v[46], c xut bi Răoder v cộng sự năm 2015. Độ đo này dựa trên cửa sổ trượt(sliding window), một tập hợp các top-word và phép đo xác nhận gián tiếp sử dụng thông tin tương hỗ theo chiều kim đồng hồ - normalized pointwise mutual information (NPMI) và độ tương đồng cosin. Độ đo này có giá trị trong khoảng từ 0 - 1, với giá trị càng gần về 0 thì các từ trong chủ đề càng mất đi tính mạch lạc. Bởi vì theo như giải thích độ đo này đo mối quan hệ tương đồng giữa các từ trong tồn bộ một chủ đề, do đó rất hiếm khi đạt được ngưỡng 1, vì đó là trường hợp hầu như các từ trong cùng một chủ đề giống nhau(cả chủ đề chỉ có một từ). Theo như những thực nghiệm thực tế, độ đo này đạt giá trị tốt nhất rơi vào khoảng 0.65 đến 0.75.
Silhouette là một phương pháp đề cập đến sự giải thích và xác nhận tính nhất quán trong các cụm dữ liệu. Độ đo silhouette đo lường mức độ tương tự của một đối tượng với cụm chính nó(sự gắn kết) so với các cụm khác(sự tách biệt). Độ đo này thường dùng để tính tốn mức độ tốt của kỹ thuật phân cụm.
Giá trị của độ đo silhouette nằm trong khoảng từ -1 đến 1. Càng gần về một thì các cụm càng cách xa nhau, các đối tượng trong cùng một cụm có tương đồng với nhau lớn, các đối tượng khác cụm thì phân biệt nhau tốt. Càng gần về 0 thì các cụm ít có sự phân biệt, khoảng cách giữa các cụm là không đáng kể. Càng gần về -1, hoặc bị giá trị âm, có nghĩa là các cụm đang được phân chia chưa hợp lí, cơng thức để xác định độ means của các cụm đang tính tốn sai.
6.5 Kết quả từ các tập dữ liệu6.5.1 Tập dữ liệu [I] 6.5.1 Tập dữ liệu [I]
Vì mục tiêu của tập dữ liệu [I] là chứng tỏ hiệu quả của mơ hình đề xuất. Với kết quả thu thập được trong quá trình thực nghiệm cho khả năng phân cụm dữ liệu của các chủ đề trong từng mơ hình
• TF-IDF và Kmeans++: Kết quả phân cụm có thể nói là khơng tốt. Khơng thể tách rời các cụm với nhau, độ phân bố của cụm nó có sự sai lệch lớn, mất cân bằng giữa mật độ dữ liệu giữa các cụm. Bởi vì về cơ bản TF_IDF chỉ dựa vào sự phân bố của các từ, tần suất xuất hiện của nó trong văn bản, làm mất đi cấu trúc văn bản, và không sử dụng được ngữ nghĩa. Phương pháp này quá cơ bản để có thể phân cụm dữ liệu, hoặc nói đơn giản là một thuật tốn thuần t mà chưa khai thác được sự thơng minh của ngơn ngữ.
Hình 6.1: Phân cụm dữ liệu trên vector sinh bởi TF-IDF(mô phỏng với UMAP)
• LDA và Kmeans++: Kết quả phân cụm của LDA khơng được thể hiện trên mơ phỏng hình ảnh bởi vì các véc-tơ sinh ra của LDA đã mang tính chất phân cụm cho các chủ đề. Nhưng kết quả thì tốt hơn TF_IDF. Mơ hình LDA đã có thể khai thác được các cơng thức xác suất nên về mối quan hệ của các bài báo trong cùng một chủ đề rất rõ rệt, các chủ đề có một khoảng cách với nhau.
• BERT, Autoencoder và Kmeans++: Khai thác véc-tơ sentence embedding sinh ra bởi BERT. Có thể thấy các chủ đề khác nhau cũng có sự khác biệt rõ rệt, tuy nhiên vẫn cịn sự chồng lấp giữa những chủ đề có nghĩa gần nhau.
Hình 6.2: Phân cụm dữ liệu trên vector sentence-embedding sinh bởi BERT và được giảm chiềubởi Autoencoder(mô phỏng với UMAP) bởi Autoencoder(mơ phỏng với UMAP)
• PhoBERT, Autoencoder và Kmeans++: Véc-tơ sinh ra bởi PhoBERT qua q trình phân cụm, có thể nhận thấy có sự phân chia rõ ràng hơn giữa các cụm, sự chồng lấp các cụm vẫn có nhưng tương đối thấp.