SSMix: phương pháp tăng cường dữ liệu cho bài toán phân loại văn bản

1. Giới thiệu
Các hệ thống trí tuệ nhân tạo (AI) đã được nghiên cứu và tích hợp vào nhiều dịch vụ, sản phẩm của Admicro và mang đến những kết quả rất tích cực. Thông thường, để đạt được độ chính xác cao thì các mô hình AI cần huấn luyện trên một bộ dữ liệu được gán nhãn có kích thước lớn và chất lượng. Việc xây dựng một bộ dữ liệu lớn được gán nhãn thủ công bởi con người là một quá trình tốn nhiều chi phí, thời gian và công sức. Do đó, việc nghiên cứu các phương pháp tăng cường dữ liệu là một bài toán đặt ra cho đội ngũ kỹ sư AI tại Admicro.
Trong bài viết này, mình sẽ giới thiệu một phương pháp tăng cường dữ liệu (data augmentation) cho bài toán phân loại văn bản (text classification) có tên là SSMix: Saliency-Based Span Mixup for Text Classification. Phương pháp này được xuất bản vào tháng 06/2021 và đã được chấp nhận tại hội nghị ACL 2021. SSMix được sử dụng trong một số dịch vụ xử lý ngôn ngữ tự nhiên tại Admicro và đã mang lại những cải thiện nhất định.
Trước khi đi vào chi tiết của phương pháp SSMix, mình sẽ giới thiệu một số công việc liên quan và động lực nào để tác giả xây dựng phương pháp SSMix. Trong lĩnh vực thị giác máy tính, các phương pháp tăng cường dữ liệu đã được ứng dụng rộng rãi để cải thiện độ chính xác của mô hình. Mixup là một trong số các nhóm phương pháp nhận được sự nghiên cứu tích cực từ cộng đồng. Mixup lần đầu tiên được công bố ở paper Mixup và được ứng dụng trong bài toán phân loại ảnh. Sau đó một số tác giả khác đã đề xuất các phương pháp dựa trên mixup như Manifold Mixup, MixText, SaliencyMix, ...
Ý tưởng chính của mixup là tạo ra một mẫu dữ liệu mới bằng cách ghép các phần dữ liệu từ hai mẫu dữ liệu trong bộ dữ liệu. Nhãn của mẫu mới này được quy định dựa theo nhãn của hai mẫu dữ liệu gốc. Các phương pháp mixup được chia thành hai thể loại chính là input-level và hidden-level. Điểm khác nhau giữa hai phương pháp này là:
- Input-level: ghép dữ liệu ở dạng kí tự (trước khi cho dữ liệu qua mô hình).
- Hidden-level: ghép dữ liệu ở dạng các biểu diễn (sau khi cho dữ liệu qua mô hình).
Một số phương pháp mixup hidden-level được đề xuất để giải quyết bài toán phân loại văn bản như: wordMixup, TMix. Các phương pháp này đều cải thiện được độ chính xác của mô hình so với việc huấn luyện mà không sử dụng phương pháp tăng cường dữ liệu. Tuy nhiên, phương pháp mixup input-level vẫn có những đặc điểm tích cực hơn so với phương pháp mixup hidden-level. Phương pháp mixup hidden-level sẽ tạo ra các dữ liệu mới có thể không tồn tại trong thực tế (do tổng hợp trong không gian biểu diễn), điều này cũng sẽ dẫn đến việc rất khó để diễn giải mô hình trong quá trình thử nghiệm. Ngược lại, các phương pháp mixup input-level tạo ra các dữ liệu mới mà con người có thể đọc hiểu được, điều này cũng giúp quá trình phân tích lỗi trở nên thuận lợi hơn. Do đó, SSMix lựa chọn cách tiếp cận input-level để tăng cường dữ liệu.
2. Phương pháp SSMix
SSMix thực hiện tạo ra một văn bản mới từ 2 văn bản \(x^{A}\) và \(x^{B}\) theo cách như sau: với \(l_{A}\) và \(l_{B}\) cho trước, từ \(x^{A}\) chọn ra một đoạn \(x^{A}_{S}\) có độ dài \(l_{A}\) và có mức độ saliency thấp nhất, từ \(x^{B}\) chọn ra một đoạn \(x^{B}_{S}\) có độ dài \(l_{B}\) và có mức độ saliency cao nhất. Saliency phản ánh mức độ ảnh hưởng của một phần dữ liệu (từ hoặc chuỗi từ, ...) đối với nhãn dự đoán cuối cùng. Câu mới được tạo ra là sự ghép nối của 3 thành phần (\(x^{A}_{L}\), \(x^{B}_{S}\), \(x^{A}_{R}\)), trong đó \(x^{A}_{L}\) và \(x^{A}_{R}\) là hai phần bên trái và bên phải của \(x^{A}_{S}\) trong \(x^{A}\). Hình 1 minh họa rõ hơn cách tạo dữ liệu của SSMix.

Ở trên hình, độ đậm/nhạt của các từ tương ứng với giá trị saliency (mức độ quan trọng nhiều/ít của từ đó đối với dự đoán cuối cùng). Ở trong ví dụ này, "in this" là \(x^{A}_{S}\) (chuỗi từ không quan trọng đối với nhãn negative), "transcendent love" là \(x^{B}_{S}\) (chuỗi từ khá quan trọng đối với nhãn positive).
Để tính toán giá trị saliency thì người ta thường dùng các phương pháp gradient-based. Cụ thể, SSMix tính gradient của loss \(L\) theo embedding đầu vào \(e\) và sử dụng L2 norm để tính toán độ lớn cho gradient vector của mỗi từ: \(\lVert\dfrac{\partial L}{\partial e}\rVert_{2}\).
Giá trị L2 norm này được coi là saliency của mỗi từ. L2 norm của một từ càng lớn có nghĩa là các thành phần gradient trong embedding tương ứng với từ đó sẽ có giá trị lớn. Giá trị gradient của embedding lớn thì từ tương ứng sẽ có mức độ ảnh hướng lớn đến giá trị dự đoán cuối cùng.
Tiếp theo chúng ta sẽ tìm hiểu cách SSMix huấn luyện với dữ liệu tổng hợp. Mẫu dữ liệu mới này sẽ chứa các "dấu hiệu" liên quan đến cả hai nhãn của hai mẫu dữ liệu ban đầu. SSMix tính toán hai giá trị loss riêng biệt để kéo dự đoán của mô hình về sát với nhãn của hai dữ liệu gốc. Cách tính loss được thể hiện trong hình 2.

Hàm loss cuối cùng được tổng hợp có trọng số từ hai giá trị loss trên. Trọng số của mỗi nhãn sẽ được tính bằng tỉ lệ số từ của dữ liệu gốc trên tổng số từ trong dữ liệu tổng hợp.
3. Thử nghiệm
3.1. Thử nghiệm của tác giả SSMix
Trong paper gốc, SSMix được thử nghiệm trên 8 bộ dữ liệu tương ứng với 6 bộ dữ liệu phân loại cặp câu và 2 bộ dữ liệu phân loại câu đơn. Kết quả thử nghiệm được thể hiện trong hình 3.

Nhận xét: Phương pháp mixup hidden-level (TMix) và input-level (SSMix) đều mang đến kết quả tốt hơn so với cách huấn luyện không sử dụng phương pháp tăng cường dữ liệu. SSMix đạt kết quả tốt hơn TMix trên hầu hết các thử nghiệm.
3.2. Thử nghiệm trên bộ dữ liệu của VCCorp
Trong phần này mình sẽ trình bày kết quả mà team đã thử nghiệm SSMix với bộ dữ liệu của công ty. Đây là bài toán phân loại sắc thái của một văn bản.

Hình 4 cho thấy việc sử dụng phương pháp tăng cường dữ liệu đã cải thiện được kết quả so với phương pháp huấn luyện thông thường. Ngoài ra, phương pháp SSMix giúp đạt được kết quả tốt nhất trong các thử nghiệm.
4. Kết luận
Trong bài viết này, mình đã giới thiệu về phương pháp SSMix giúp tăng cường dữ liệu cho bài toán phân loại văn bản mà team mình đã thử nghiệm và ứng dụng thành công trong các dịch vụ ở công ty. Phương pháp này đã chứng tỏ tính hiệu quả trên bộ dữ liệu thử nghiệm. Trong thời gian tới, team sẽ tiếp tục nghiên cứu và thử nghiệm các phương pháp tăng cường dữ liệu cho các bài toán khác trong lĩnh vực xử lý ngôn ngữ tự nhiên.