Byte Pair Encoding là một thuật toán nén dữ liệu được giới thiệu lần đầu tiên vào năm 1994, giúp tăng hiệu quả của tất cả các mô hình NLP tiên tiến hiện nay (bao gồm cả BERT). Mặc dù vậy, thuật toán này không phải ai cũng biết. Trong bài viết này, hãy cùng trituenhantao.io tìm hiểu về thuật toán mạnh mẽ và bí ẩn này nhé.
Những năm gần đây có thể nói là thời điểm vàng để tham gia vào lĩnh vực NLP. Các không gian véc tơ từ được huấn luyện như Word2vec và GloVe đã đặt nền tảng cho những thành công để máy tính có thể hiểu được ý nghĩa của các từ. Trong nhiều năm, chúng là cách biểu diễn đáng tin cậy trong việc huấn luyện các mô hình học máy trong NLP khi không có nhiều dữ liệu. Mặc dù vậy, chúng không phải là công cụ toàn năng khi đối mặt với những từ hiếm xuất hiện. Các từ này được thay thế bởi tokens <unk> khi cài đặt mô hình.
Để giải quyết các từ hiếm, chúng ta có giải pháp là biểu diễn văn bản dưới dạng tập hợp các ký tự. Các từ hiếm xét cho cũng vẫn được tạo nên từ những ký tự “không hiếm”. Mặc dù vậy, các ký tự không có được sự mô tả ngữ nghĩa trọn vẹn như các từ. Đi tìm một cách biểu diễn dữ liệu trung hòa giữa biểu diễn dữ liệu bằng ký tự và từ, bước đột phá thực sự đầu tiên trong việc giải quyết vấn đề từ hiếm được thực hiện bởi các nhà nghiên cứu tại Đại học Edinburgh bằng cách sử dụng thành phần từ với Bye Pair Encoding (BPE). Ngày nay, phương pháp mã hóa này và các biến thể của nó trở thành chuẩn mực trong hầu hết các mô hình tiên tiến bao gồm cả BERT, GPT-2, RoBERTa, v.v. Một số người gọi BERT là sự khởi đầu của một kỷ nguyên mới. Tuy nhiên, BPE cũng xứng đáng được tôn vinh mặc dù không nhiều người biết đến nó.
Về nguồn gốc, Byte Pair Encoding lần đầu tiên được Philip Gage giới thiệu trong bài viết “A New Algorithm for Data Compression”, ấn bản tháng 2/1994 của C Users Journal. Đây là là một kỹ thuật nén dữ liệu hoạt động bằng cách thay thế các cặp byte liên tiếp có tần suất lớn bằng một byte không tồn tại trong dữ liệu. Hình dưới là một ví dụ về cách hoạt động của BPE.
Để thực hiện mã hóa sử dụng thành phần từ, BPE được sửa đổi một chút. Các cặp subword thường xuyên xuất hiện được hợp nhất với nhau chứ không bị thay thế như BPE với mục đích nén dữ liệu. Về cơ bản, các từ hiếm gặp sẽ được chia thành các thành phần từ phổ biến hơn.
Xuất phát từ việc biểu diễn tất cả các từ bằng các ký tự. BPE sẽ thống kê toàn bộ các cặp ký tự xuất hiện nhiều nhất và bổ sung thành phần từ vào trong tập từ vựng. Quá trình này được lặp lại đến khi kích thước của tập từ vựng đạt đến kích thước mong muốn (đây là một siêu tham số).
BPE với mã hóa thành phần từ là cách biểu diễn kết hợp được điểm mạnh của cả hai phương pháp mã hóa phổ biến trước đó. Với các thành phần từ, chúng ta không gặp phải vấn đề OOV và cũng không làm mất mát quá nhiều ngữ nghĩa như việc sử dụng mã hóa cấp ký tự.
Nếu bạn thấy bài viết hay, đừng ngại chia sẻ cho những ai quan tâm. Ngoài ra, nếu bạn quan tâm đến chủ đề này, hãy đăng ký (dưới chân trang) để nhận được những bài viết của chúng tôi sớm nhất!