3 TRÍCH RÚT THÔNG TIN VĂN BẢN BẰNG DEEP TRANS-
3.7 Mô hình BERT cho NER
Bert là mô hình huấn luyện trước (pre-trained) đạt được nhiều kết quả ấn tượng dựa trên cơ chế attention. Do đó trong trong luận văn này, tác giả đã trình bày ở 3.4. Tại đây, tác giả thực hiện huấn luyện BERT cho bài toán thực thể sử dụng các phương pháp đối với Deep transfer learning đã được trình bày ở phần 2.4.
Với dữ liệu được thống kê ở Hình 3.8. Ta thấy rằng các câu dài nhất có độ dài không vượt quá vượt qua 200 (đó cũng là một phần lý do tác sử dụng lại mô hình nhỏ của tác giả).
Với BERT được huấn luyện đa ngôn ngữ (có tiếng Việt) và bộ dữ liệu ô tô khá ít dữ liệu, thay vì tạo một mô hình từ đầu và huấn luyện trên bộ dữ liệu đặc thù này thì tác giả quyết định sử dụng BERT - một mô hình đã được huấn luyện từ trước với bộ dữ liệu về tiếng Việt nhiều hơn.
Mô hình của chúng ta về cơ bản sẽ có dạng như hình
Để thực hiện điều này, tác giả sử dụng mô hình BERTBASE cho đa ngôn ngữ (102 ngôn ngữ),các siêu tham số của mô hình vẫn là:
• L = 12
• H = 768
• A = 12
Mô hình giữ nguyên các lớp trừ lớp cuối cùng của BERT, thay vào đó là mạng lan truyền thẳng với số unit bằng với số head attention của mô hình BERT. Mô hình này tác giả tạm gọi làBERT-NERvì nó được tinh chỉnh từ mô hình BERT phục vụ cho bài toán trích rút thông tin thực thể (Named Entity Recognization). Tác giả sẽ sử dụng hai chiến lược hai chiến lược phổ biến nhất cho học tập chuyển giao sâu được trình bày ở 2.4: Các mô hình được đào tạo trước có sẵn
dưới dạng bộ trích xuất tính năng và tinh chỉnh Các mô hình đã được đào tạo trước.
Hình 3.13: Kiến trúc mô hình BERT-NER
Đầu tiên đối với việc tinh chỉnh mô hình (fine tuning) BERT-NER. Trong số (weight) của toàn bộ các lớp trong mô hình sẽ được cập nhật sau mỗi epoch. Mô hình được huấn luyện với số lần lặp là 20 ta được kết quả: mô hình hội tụ sau 5 epochs
Tên trường Số lượng Precision Recall F1-Score
BRAND 1136 0.99 0.98 0.99
ENGINE FULE TYPE 865 1.00 1.00 1.00
NAME 445 0.95 0.93 0.94 STATUS 1904 1.00 1.00 1.00 TYPE 1121 0.99 0.98 0.98 YEAR 1093 1.00 0.99 0.99 Micro avarage 0.99 Macro avarage 0.98
Bảng 3.3: Bảng kết quả của mô hình BERT-NER có cập nhật trọng số trong quá trình huấn luyện
Có thể thấy rằng kết quả cơ bản của mô hình là rất cao, tuy nhiên thời gian huấn luyện mô hình cũng tương đối lâu với GPU Tesla T4 16GB cũng mất đến trung bình 20 phút một vòng lặp. Điều này có thể hiểu được vì bản thân BERTBASE
cũng có đến 110 triệu tham số. Với kết quả nói trên, ta tiến hành huấn luyện lại model này với các cài đặt tương tự là 20 vòng lặp (epoch) và vẫn trên thiết bị GPU Tesla T4 16GB. Vì BERT là một mô hình rất lớn với rất nhiều tham số (110 triệu), nên, tiếp theo tác giả tiến hành giữ nguyên trọng số của BERT layer, chỉ cập nhật trọng số của phần layer sau cùng được được thêm vào nhằm mục đích phân lớp cho bài toán sequence labeling này (NER). Do đó chúng ta thử tiếp với trường hợp có cập nhật trọng số của mô hình trong quá trình huấn luyện.
Cũng sau 20 vòng lặp chúng ta được kết quả ở bảng sau:
Tên trường Số lượng Precision Recall F1-Score
BRAND 1136 0.99 0.97 0.98
ENGINE FULE TYPE 865 1.00 0.99 1.00
NAME 445 0.94 0.93 0.94 STATUS 1904 1.00 0.99 0.99 TYPE 1121 0.99 0.99 0.99 YEAR 1093 0.99 0.99 0.99 Micro avarage 0.99 Macro avarage 0.98
Bảng 3.4: Bảng kết quả của mô hình BERT-NER không cập nhật trọng số của phần mô hình BERT trong quá trình huấn luyện
Hình 3.14: Mô hình BERT-NER với phần pre-trained BERT được giữ nguyên trọng số Với phương pháp đánh giá tham khảo theo [22] và [3], qua hai bảng kết quả, có thể thấy rõ ràng rằng kết quả F1-score đối với trường NAME của cả hai mô hình BERT-NER thấp hơn một chút khi so với các trường khác. Điều này có thể lý giải vì sự chênh lệch giữa các thực thể ít dữ liệu và thực thể nhiều dữ liệu. Tuy nhiên micro-f1 score của mô hình thì vẫn rất cao. Tuy rằng thời gian huấn luyện cũng giảm xuống, chỉ còn khoảng 16-17 phút mỗi vòng lặp (epoch), nhưng kết quả của mô hình cũng khá tương đồng khi so micro f1-score và macro f1-score. Mặc dù vậy, mô hình BER-NER có tinh chỉnh trọng số (BERT-NER fine-tuning) có loss nhỏ hơn so với BERT-NER không tinh chỉnh trọng số (BERT-NER freeze) như ở hình 3.15 dưới đây.
Điều này có thể được lý giải bởi vì theo bài báo về BERT [18] họ sử dụng Word- Piece [20] cho việc embedding. Mặc dù là đa ngôn ngữ nhưng bộ từ điển của nó 119,547 và tiếng Việt chỉ chiếm 13.5% [23], cho nên việc học cách biểu diễn câu của mô hình BERT với bộ dữ liệu này đem đến kết quả tốt hơn so với việc không tinh chỉnh (freeze). Đó cũng chính là lý do vì sao mô hình BERT-NER có cập nhật trọng số trong quá trình huấn luyện đạt được kết quả f1-score cao hơn so với không cập nhật trọng số.
Qua ba mô hình: mô hình baseline, mô hình BERT-NER có cập nhật trọng số và mô hình BERT-NER không cập nhật trọng số, chúng ta có thể thấy được rằng đối với từng nhiệm vụ đặc thù và dữ liệu đặc thù như, chúng ta cần có các chiến lược xây dựng mô hình dùng Deep transfer learning phù hợp. Trong bài toán trích rút thông tin từ tờ khai hải quan, mặt hàng là ô tô này thì mô hình BERT-NER có cập nhật lại trọng số đạt kết quả cao hơn. Đây cũng chính là đặc trưng của học chuyển giao, thay vì giữ nguyên mô hình và trọng số của một mô hình khác có nét tương đồng để giải quyết cho bài toán mình đang cần chúng ta cần phải tinh chỉnh nó để phù hợp cho bài toán của mình. Tất nhiên có nhiều trường hợp mô hình đã huấn luyện từ trước chạy tốt với một bài toán cụ thể của chúng ta. Tuy nhiên, thông thường đấy là trường hợp mô hình huấn luyện trước có miền dữ liệu bao gồm cả miền dữ liệu của bài toán cần giải quyết. Ví dụ: chúng ta cần phân loại cảm xúc của bình luận từ người dùng trên trang thương mại điện tử tiki về đồ dùng học tập, có một mô hình được huấn luyện trước là mô hình phân loại cảm xúc của bình luận từ người dùng trên trang thương mại điện tử về toàn bộ mặt hàng đã được bán. Rõ ràng bài toán của chúng ta là một bài toán nhỏ trong bài toán mà mô hình huấn luyện trước đã giải quyết. Chúng ta cũng thấy rõ ràng rằng, không phải lúc nào chúng ta cũng nên cố gắng xây dựng cải thiện một mô hình từ đầu. Thay vào đó, chúng ta nên tìm hiểu xem loại bài toán này đã có ai làm chưa, hoặc bài toán tương tự, kết quả ra sao, có khả năng tận dụng không? Bằng việc tận Transfer learning chúng ta đã có thể thu được một mô hình xử lý bài toán trích rút thông tin từ mô tả hàng hóa trong tờ khai của Hải quan Việt Nam. Tuy rằng việc học chuyển giao một mô hình hiện đại như BERT đòi hỏi thời gian huấn luyện khá lâu nhưng với kết quả nó mang lại thay vì mất thời gian cải thiện mô hình tốn nhiều sức và thời gian thì nó vẫn đáng giá.
Đến đây, chúng ta đã trả lời được câu hỏi “Khi nào thì tinh chỉnh mô hình, khi nào thì giữ nguyên trọng số của mô hình?” ở mục 2.4.2 và thấy được điều tác giả đã đề cập ở mục 2.1 - Không phải lúc nào các mô hình hiện đại nhất (state-of-the-art) cũng có khả năng tận dụng tốt ở các bài toán đặc thù chuyên
biệt, tùy từng bài toán và dữ liệu có mà chúng ta có các cách tiệp cận phù hợp. Cụ thể trong bài toán trích rút thông tin này chúng ta cần tinh chỉnh trọng số của mô hình.