Mô phỏng quá trình che giấu token và dự đoán token được che giấu đó

Một phần của tài liệu Gom cụm văn bản dựa trên mô hình phát hiện chủ đề (Trang 53 - 60)

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ữ

4.5Mô phỏng quá trình che giấu token và dự đoán token được che giấu đó

Tuy nhiên quá trình này lại tạo ra nhược điểm khi mà quá trình pre-trained và fine- tuning lại không khớp với nhau bởi vì các [MASK] token xuất hiện trong quá trình tiền huấn luyện không thể được nhìn thấy trong quá trình tinh chỉnh. Vì vậy không thể lúc nào cũng che giấu các token, mà số lượng token được che giấu là 15% chọn ra từ toàn bộ tập từ(vocabulary). Quá trình lựa chọn 15% token ngẫu nhiên được thực hiện như sau:

Lấy ví dụ "Hôm nay tôi đi học" từ được chọn để che giấu là "học":

• Thay thế 80% từ được chọn trong tập huấn luyện với [MASK] token => "Hôm nay tôi đi [MASK]"

• Thay thế 10% từ được chọn với một từ ngẫu nhiên => "Hôm nay tôi đi nằm"

• 10% các từ được chọn còn lại vẫn giữ nguyên => "Hôm nay tôi đi học"

(b) Next Sentence Prediction. Nhiều nhiệm vụ quan trọng trong xử lý ngôn ngữ tự nhiên như Question Answering yêu cầu sự hiểu biết dựa trên mối quan hệ giữa hai câu trong văn bản. Next Sentence Prediction mô tả quá trình mô hình nhận các cặp câu đầu vào và cố gắng dự đoán vị trí của 2 câu đó, ví dụ cặp câu A và B, mô hình sẽ cố gắng dự đoán B phải là câu tiếp theo của A hay không.

Trong quá trình huấn luyện của mô hình các cặp câu A và B được chia theo: sẽ có 50% B( nhãn IsNext) là câu tiếp theo của A, 50% còn lại B(nhãn NotNext) sẽ là một câu bất kì trong tập ngữ liệu. Với giả thuyết rằng câu đầu tiên A không có liên quan gì đến câu

thứ hai B.

Quá trình này được thực hiện khi tạo đầu vào dữ liệu, token [CLS] sẽ được thêm vào câu đầu tiên, và token [SEP] sẽ đưa vào điểm kết thúc của mỗi câu. Với hỗ trợ của segment embedding cho biết vị trí của các câu. Mô hình cuối cùng sẽ dự đoán mối quan hệ giữa các câu trên phương pháp tính xác suất nhãn IsNext hoặc NotNext của cặp câu input đầu vào.

3. Quá trình tinh chỉnh

Việc tinh chỉnh các tham số đơn giản nhờ cơ chế self-attention của Transformer. Chỉ bằng cách đảo thứ tự vị trí đầu vào và đầu ra thì các tác vụ liên quan đến một đoạn văn bản ngắn hay cả đoạn văn bản dài vẫn có thể xử lý được.

Việc tinh chỉnh các tham số được thực hiện một cách đơn giản thông qua việc thêm một lớp layer mang tính đặc trưng cho tác vụ đó:

• Những tác vụ phân loại bằng cách thêm 1 lớp phân loại lên trên lớp phân loại lên trên đầu ra của Transformers cho [CLS] token.

• Trong tác vụ Trả lời câu hỏi, BERT học thêm 2 vector đánh dấu phần đầu và phần cuối của câu trả lời

• Trong tác vụ Nhận dạng tên thực thể, BERT được huấn luyện bằng cách đưa vector đầu ra của mỗi token vào trong lớp phân loại để dự đoán nhãn cho các thực thể.

4.2.3 Kết quả BERT đạt được

Các thử nghiệm thực tế trên các tác vụ cụ thể BERT đã đạt được:

• Trên tập dữ liệu General Language Understanding Evaluation (GLUE) là một tập dữ liệu để hiểu ngôn ngữ tự nhiên, trong tập dữ liệu này có rất nhiều tác vụ khác nhau. BERT đã khẳng định hiệu quả của mình với trung bình 81.9 cho BERTLarge, và 79.6 cho BERTBase. So sánh với OpenAI GPT(75.2) và các mô hình khác(PreOpenAI Sota, BiLSTM + ELMO + Atm dưới 75)

• Standford Question Answering Dataset (SQuAD) là một tập dữ liệu gồm 100K ví dụ mẫu được đóng góp bởi cộng đồng với cặp câu hỏi và câu trả lời. Đưa ra một câu hỏi và một đoạn văn từ Wikipedia với nội dung chứa câu trả lời, nhiệm vụ là dự đoán xem đâu là câu(trong đoạn văn) chứa câu trả lời. BERTLarge (83.1) so với mạng unet(74.9) hoặc con người dự

đoán(89.5) với F1 score.

• Đánh giá hiệu năng của một nhiệm vụ gán nhãn cho từng tokens, BERT đã fine-tuning trên tập dữ liệu CoNLL 2003 Named Entity Recognition (NER). Đây là tập dữ liệu gồm 200k từ được gán nhãn bằng tay với các nhãn là Person(tên người), Organization(tên tổ chức), Location(tên địa danh), Miscellaneous(tên sản phẩm,...) và Other (không phải thực thể có tên). Với kết quảBERTLargevàBERTBase lần lượt là 92.8, 92.4 so sánh với mô hình ELMO+BiLSTM+CRF(92.2) và CVT+Multi(92.6) với F1 score.

4.3 Khai thác ngữ nghĩa văn bản tiếng Việt với PhoBERT4.3.1 Giới thiệu về RoBERTa 4.3.1 Giới thiệu về RoBERTa

RoBERTa: A Robustly Optimized BERT Pre Training Approach. Được phát triển dựa trên mô hình BERT, nhìn nhận về các yếu điểm mà BERT vẫn còn, RoBERTa được Facebook phát triển và công bố vào năm 2019.

Các cải tiến mà RoBERTa đem lại:

• Thời gian huấn luyện mô hình dài hơn với lượng batches lớn hơn và nhiều dữ liệu hơn Batch là một quá trình mà so sánh giữa giá trị dự đoán và giá trị thật trên những sample, sau đó dựa trên độ sai lệch mà cập nhật giá trị cho các siêu tham số của mô hình.

Những thực nghiệm chứng minh rằng Transformer và BERT phù hợp với việc sử dụng batch có kích thước lớn. Việc sử dụng những batch có kích thước lớn giúp cải thiện tốc độ tối ưu hóa của mô hình và hiệu suất của tác vụ cuối trong khi tốc độ học được cải thiện tính chính xác.

Ở RoBERTa => Batches được tăng từ 128 lên 256, 2K, 8K đạt kết quả tốt nhất ở 2K chuỗi. Vẫn có thể huấn luyện với batch khoảng 32k.

• Loại bỏ những đối tượng NSP(Next Sentence Predict)

RoBERta sử dụng FULL-SENTENCE không chứa NSP loss (Nói về giá trị đo lường tính chính xác của việc dự đoán câu sau của một câu có phải là NextSentence của câu đó hay không).

nhiều câu liền kề với nhau được lấy ra từ 1 văn bản hoặc kết hợp nhiều văn bản. Nếu kết thúc 1 văn bản và vẫn chưa đủ 512 tokens thì những câu tiếp theo của văn bản tiếp theo sẽ được nối tiếp, với một token cho biết việc văn bản đầu tiên đã kết thúc và bắt đầu một văn bản mới.

• Huấn luyện trên những câu dài (long sentences)

Mã hóa - tokenization. Cho việc mã hóa thì RoBERTa sử dụng bộ mã hóa Byte-Pair En- coding(BPE), cơ chế mã hóa dựa trên việc kết hợp biểu diễn cấp độ từ và cấp độ kí tự cho phép có thể xử lý những từ thường xuất hiện trong bộ ngữ liệu ngôn ngữ tự nhiên. PBE cho phép bộ từ vựng chứa được 50K đơn vị từ, so sánh với kiến trúc BPE của BERT chưa được 30K đơn vị từ.

• Việc che khuất từ (masking word) được thực hiện động (dynamically) cho việc huấn luyện(Dynamic Masking)

Phương pháp MLP(masked language model) sử dụng trong BERT được biết đến với việc sẽ che khuất các từ trong câu một cách ngẫu nhiên và thay thế bằng một [MASK] token để mô hình dự đoán. Nhưng mà điểm hạn chế của MLP trên BERT là nó chỉ thực hiện việc che khuất một lần duy nhất ở quá trình tiền xử lý cho tập huấn luyện. Trường hợp có thể xảy ra là vấn đề trùng lặp khi ở cùng câu giống nhau việc che khuất từ cũng giống nhau. Giảm tính chính xác của quá trình đào tạo.

Tránh việc dùng giống bộ che khuất cho quá trình huấn luyện, dynamic mask với cơ chế dùng bộ huấn luyện nhân lên 10 lần để mỗi sequence sẽ được che khuất với 10 kiểu khác nhau thông qua việc huấn luyện trải qua 40 epochs. Do đó mỗi sequence cùng bộ mã hóa sẽ được học tập 4 lần.

4.3.2 PhoBERT với văn bản tiếng Việt

PhoBERT là sự kết hợp của từ "Phở" và BERT. Là mô hình tiền huấn luyện đơn ngôn ngữ(tiếng Việt) dựa trên kiến trúc của RoBERTa. Do nhóm tác giả Nguyễn Quốc Đạt và Nguyễn Anh Tuấn đề xuất đến từ cơ sở nghiên cứu VinAI, công bố vào năm 2020.

PhoBERT được giới thiệu là đạt được những hiệu quả vượt trội hơn so với các tiếp cận BERT đa ngôn ngữ trong các tác vụ xử lý ngôn ngữ với tiếng Việt bao gồm: Gắn thẻ cho từng phần của câu, phân tích cú pháp trong câu, nhận dạng tên cho thực thể và suy luận ngôn ngữ tự nhiên.

Để sử dụng được PhoBERT thì dữ liệu đầu vào phải được xử lý bởi một công cụ có tên là VnCoreNLP. VnCoreNLP hay A Vietnamese natural language processing toolkit, là bộ công cụ dành cho việc xử lý ngôn ngữ tự nhiên cho tiếng Việt. Được nhóm tác giả Thanh Vu, Dat Quoc Nguyen, Dai Quoc Nguyen, Mark Dras và Mark Johnson nghiên cứu và phát triển bản 2018 hiện là bản mới nhất của bộ công cụ này. Công cụ này cung cấp hệ thống chú thích(anotations) cho xử lý ngôn ngữ tự nhiên trong tiếng Việt, cung cấp các chú thích ngôn ngữ phong phú thông qua các thành phần xử lý ngôn ngữ tự nhiên chính như: phân đoạn từ(word segmentation), gắn thẻ cho các đối tượng trong câu(POS tagging), nhận dạng tên thực thể(NER) và phân tích sự phụ thuộc cú pháp(dependancy parsing). Với ba tiêu chí chính được đề ra: chính xác hơn các công cụ NLP khác cho tiếng Việt đã được phát triển, nhanh chóng dù dữ liệu lớn và dễ sử dụng khi không cần các cài đặt phụ thuộc, có sẵn commandline hoặc API để gọi quá trình xử lý.

Với yêu cầu tối thiểu của PhoBERT thì VnCoreNLP chỉ sử dụng hai nhiệm vụ là phân đoạn từ và gắn thẻ cho các đối tượng trong câu. Ở phân đoạn từ về cơ bản là vì sự khó khăn của tiếng Việt nằm ở việc những từ đơn và từ ghép, khi những thành phần của từ ghép đứng riêng sẽ gây không rõ nghĩa. Do đó nhiệm vụ chính của quá trình phân đoạn từ là tách những thành phần(từ đơn, từ ghép, dấu câu, tên riêng, ..) có trong một câu, hoặc văn bản tiếng Việt. Trong khi nhiệm vụ gắn thẻ đối tượng giúp các từ được phân đoạn có thể xác định từ loại của chúng. Lấy ví dụ:

text = "Lấy một ví dụ cho câu: ’Hôm nay, tôi đi học. Và trời thì đang mưa rất to.’" #word_segmentation

[[’Lấy’, ’một’, ’ví_dụ’, ’cho’, ’câu’, ’:’, "’", ’Hôm_nay’, ’,’, ’tôi’, ’đi’, ’học’, ’.’], [’Và’, ’trời’, ’thì’, ’đang’, ’mưa’, ’rất’, ’to’, ’.’, "’"]]

#POS_tagging

’sentences’: [[’form’: ’Lấy’, ’head’: -1, ’index’: 1, ’posTag’: ’V’, ’form’: ’một’, ’head’: -1, ’index’: 2, ’posTag’: ’M’,

’form’: ’ví_dụ’, ’head’: -1, ’index’: 3, ’posTag’: ’N’, ’form’: ’cho’, ’head’: -1, ’index’: 4, ’posTag’: ’E’, ’form’: ’câu’, ’head’: -1, ’index’: 5, ’posTag’: ’N’, ’form’: ’:’, ’head’: -1, ’index’: 6, ’posTag’: ’CH’, ’form’: "’", ’head’: -1, ’index’: 7, ’posTag’: ’CH’, ’form’: ’Hôm_nay’, ’head’: -1, ’index’: 8, ’posTag’: ’N’, ’form’: ’,’, ’head’: -1, ’index’: 9, ’posTag’: ’CH’,

’form’: ’tôi’, ’head’: -1, ’index’: 10, ’posTag’: ’P’, ’form’: ’đi’, ’head’: -1, ’index’: 11, ’posTag’: ’V’, ’form’: ’học’, ’head’: -1, ’index’: 12, ’posTag’: ’V’, ’form’: ’.’, ’head’: -1, ’index’: 13, ’posTag’: ’CH’], [’form’: ’Và’, ’head’: -1, ’index’: 1, ’posTag’: ’Cc’, ’form’: ’trời’, ’head’: -1, ’index’: 2, ’posTag’: ’N’, ’form’: ’thì’, ’head’: -1, ’index’: 3, ’posTag’: ’C’, ’form’: ’đang’, ’head’: -1, ’index’: 4, ’posTag’: ’R’, ’form’: ’mưa’, ’head’: -1, ’index’: 5, ’posTag’: ’V’, ’form’: ’rất’, ’head’: -1, ’index’: 6, ’posTag’: ’R’, ’form’: ’to’, ’head’: -1, ’index’: 7, ’posTag’: ’A’, ’form’: ’.’, ’head’: -1, ’index’: 8, ’posTag’: ’CH’, ’form’: "’", ’head’: -1, ’index’: 9, ’posTag’: ’CH’]]

4.4 Tổng kết chương 4

Chương 4 tìm hiểu sơ lược về sentence embedding. Qua đó, giới thiệu các state-of-the-art của sentence embedding. Một trong những mô hình được đề cập đến là BERT.

Tìm hiểu về mô hình BERT, kiến trúc, các thành phần chính và cách hoạt động của BERT. Giới thiệu về RoBERTa, được biết đến với những cải thiện tăng cường khả năng của BERT. Và cuối cùng là tìm hiểu về mô hình PhoBERT, được phát triển dựa trên RoBERTa cho đơn ngôn ngữ là Việt Nam.

Chương 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ữ nghĩa của văn bản

Mục tiêu của đề tài nằm ở việc phân cụm dữ liệu và việc phân cụm này dựa trên mô hình chủ đề. Với đề xuất khai thác véc-tơ xác suất xác định chủ đề sinh ra bởi mô hình chủ đề LDA làm chính yếu, kết hợp với vec-tơ khai thác ngữ nghĩa của PhoBERT sinh ra tạo ra một không gian véc-tơ mới. Việc kết hợp này, nhằm bổ sung thông tin hữu ích liên quan đến cấu trúc văn bản, các mối quan hệ ngữ nghĩa trong văn bản,... cho véc-tơ xác suất của LDA khi mà véc-tơ này chỉ mang thông tin xác suất thuộc về một chủ đề nhất định mà không cần quan tâm đến vị trí các từ hay các mối quan hệ có trong văn bản. Không gian véc-tơ này được Autoencoder giảm chiều dữ liệu, do đó tập trung được vào những đặc trưng chính của dữ liệu và giảm chi phí lưu trữ cũng như tính toán. Cuối cùng là đem không gian dữ liệu đã được giảm chiều này vào bộ phân cụm xây dựng bởi thuật toán KMEANS++ để xác định các cụm dữ liệu, từ đó xác định được K chủ đề, với K là số lượng chủ đề cần phân cụm trong tập dữ liệu đầu vào.

Một phần của tài liệu Gom cụm văn bản dựa trên mô hình phát hiện chủ đề (Trang 53 - 60)