15.6. Tinh chỉnh BERT cho các Ứng dụng Cấp Chuỗi và Cấp Token

Trong các phần trước, ta đã thiết kế các mô hình khác nhau cho các ứng dụng xử lý ngôn ngữ tự nhiên, dựa trên RNN, CNN, MLP và cơ chế tập trung. Những mô hình này rất hữu ích khi mô hình bị giới hạn về không gian bộ nhớ hoặc thời gian thực thi; tuy nhiên, việc thiết kế thủ công một mô hình cụ thể cho mọi tác vụ xử lý ngôn ngữ tự nhiên trong thực tế là điều không khả thi. Trong Section 14.8, chúng ta đã giới thiệu mô hình BERT được tiền huấn luyện mà chỉ yêu cầu thay đổi kiến trúc tối thiểu cho một loạt các tác vụ xử lý ngôn ngữ tự nhiên. Một mặt, tại thời điểm BERT được đề xuất, nó đã cải thiện kết quả tốt nhất trên các tác vụ xử lý ngôn ngữ tự nhiên khác nhau. Mặt khác, như đã lưu ý trong Section 14.10, hai phiên bản của mô hình BERT gốc lần lượt có 110 triệu và 340 triệu tham số. Do đó, khi có đủ tài nguyên tính toán, ta có thể xem xét việc tinh chỉnh BERT cho các ứng dụng xử lý ngôn ngữ tự nhiên xuôi dòng.

Sau đây, ta sẽ tổng quát hóa một số ứng dụng xử lý ngôn ngữ tự nhiên thành các ứng dụng cấp độ chuỗi và cấp độ token. Ở cấp độ chuỗi, chúng tôi sẽ giới thiệu cách chuyển đổi biểu diễn BERT của văn bản đầu vào thành nhãn đầu ra trong các tác vụ phân loại văn bản đơn và phân loại hay hồi quy cặp văn bản. Ở cấp độ token, chúng tôi sẽ giới thiệu ngắn gọn các ứng dụng mới như gán thẻ văn bản và trả lời câu hỏi, từ đó làm sáng tỏ cách BERT biểu diễn đầu vào và biến đổi chúng thành nhãn đầu ra như thế nào. Trong quá trình tinh chỉnh, những “thay đổi kiến trúc tối thiểu” mà BERT yêu cầu trên các ứng dụng khác nhau là các tầng kết nối đầy đủ được bổ sung. Trong quá trình học có giám sát của một ứng dụng xuôi dòng, tham số của các tầng bổ sung này được học từ đầu trong khi tất cả các tham số trong mô hình BERT đã tiền huấn luyện sẽ được tinh chỉnh.

15.6.1. Phân loại Văn bản Đơn

Tác vụ phân loại văn bản đơn nhận một chuỗi văn bản đơn làm đầu vào và đầu ra là kết quả phân loại của văn bản đó. Bên cạnh tác vụ phân tích cảm xúc mà ta đã nghiên cứu trong chương này, tập dữ liệu CoLA (Corpus of Linguistic Acceptability) cũng được sử dụng cho tác vụ phân loại văn bản đơn, đánh giá xem một câu đã cho có chấp nhận được về mặt ngữ pháp hay không [Warstadt et al., 2019]. Ví dụ, câu “I should study.” là chấp nhận được nhưng câu “I should studying.” thì không.

../_images/bert-one-seq.svg

Fig. 15.6.1 Tinh chỉnh mô hình BERT cho các ứng dụng phân loại văn bản đơn, ví dụ như phân tích cảm xúc hay đánh giá khả năng chấp nhận được về ngôn ngữ học. Giả sử văn bản đơn đầu vào có sáu token.

Section 14.8 mô tả biểu diễn đầu vào của BERT. Chuỗi đầu vào BERT biểu diễn cả văn bản đơn và cặp văn bản một cách rạch ròi, trong đó token đặc biệt “<cls>” được sử dụng cho các tác vụ phân loại chuỗi, và token đặc biệt “<sep>” đánh dấu vị trí kết thúc của văn bản đơn hoặc vị trí phân tách cặp văn bản. Như minh họa trong Fig. 15.6.1, biểu diễn BERT của token đặc biệt “<cls>” mã hóa thông tin của toàn bộ chuỗi văn bản đầu vào trong các tác vụ phân loại văn bản đơn. Là biểu diễn của văn bản đầu vào đơn, vector này sẽ được truyền vào một mạng MLP nhỏ chứa các tầng kết nối đầy đủ để biến đổi thành phân phối của các giá trị nhãn rời rạc.

15.6.2. Phân loại hoặc Hồi quy Cặp Văn bản

Ta cũng sẽ xem xét tác vụ suy luận ngôn ngữ tự nhiên trong chương này. Tác vụ này nằm trong bài toán phân loại cặp văn bản (text pair classification).

Nhận một cặp văn bản làm đầu vào và cho ra một giá trị liên tục, đo độ tương tự ngữ nghĩa của văn bản (semantic textual similarity) là một tác vụ hồi quy cặp văn bản (text pair regression) rất phổ biến. Tác vụ này đo độ tương tự ngữ nghĩa của các câu đầu vào. Ví dụ, trong tập dữ liệu đánh giá độ tương tự ngữ nghĩa của văn bản (Semantic Textual Similarity Benchmark), độ tương tự của một cặp câu nằm trong khoảng từ 0 (không trùng lặp ngữ nghĩa) tới 5 (tương tự ngữ nghĩa) [Cer et al., 2017]. Các mẫu dữ liệu trong tập dữ liệu này có dạng (câu thứ 1, câu thứ 2, độ tương tự):

  • “A plane is taking off.”, “An air plane is taking off.”, 5.000;
  • “A woman is eating something.”, “A woman is eating meat.”, 3.000;
  • “A woman is dancing.”, “A man is talking.”, 0.000.
../_images/bert-two-seqs.svg

Fig. 15.6.2 Tinh chỉnh mô hình BERT cho các ứng dụng phân loại hoặc hồi quy cặp văn bản, ví dụ tác vụ suy luận ngôn ngữ tự nhiên và tác vụ đo độ tương tự ngữ nghĩa văn bản. Giả sử đầu cặp văn bản đầu vào có hai và ba token.

So với tác vụ phân loại văn bản đơn trong Fig. 15.6.1, việc tinh chỉnh BERT để phân loại cặp văn bản trong Fig. 15.6.2 có khác biệt trong biểu diễn đầu vào. Đối với các tác vụ hồi quy cặp văn bản, chẳng hạn như đo độ tương tự ngữ nghĩa văn bản, một vài thay đổi nhỏ có thể được áp dụng như xuất ra giá trị nhãn liên tục và sử dụng trung bình bình phương mất mát.

15.6.3. Gán thẻ Văn bản

Bây giờ ta hãy xem xét các tác vụ ở mức token, ví dụ như gán thẻ văn bản, nơi mỗi token được gán một nhãn. Trong số các tác vụ gán thẻ văn bản, gán thẻ từ loại (part-of-speech tagging) gán cho mỗi từ một thẻ từ loại (ví dụ, tính từ hay danh từ) dựa vào vai trò của từ đó trong câu. Ví dụ, dựa vào tập thẻ Penn Treebank II, câu “John Smith ’s car is new” nên được gán thẻ như “NNP (danh từ riêng, số ít) NNP POS (sở hữu cách) NN (danh từ, số ít hoặc nhiều) VB (động từ, động từ nguyên thể không”to“) JJ (tính từ)”.

../_images/bert-tagging.svg

Fig. 15.6.3 Tinh chỉnh BERT cho ứng dụng gán thẻ văn bản, ví dụ như gán thẻ từ loại. Giả sử đầu vào là một văn bản đơn có sáu token.

Tinh chỉnh BERT cho ứng dụng gán thẻ văn bản được minh họa trong Fig. 15.6.3. So với Fig. 15.6.1, sự khác biệt duy nhất là biểu diễn BERT của mỗi token trong văn bản đầu vào được truyền vào cùng một mạng kết nối đầy đủ bổ sung để đưa ra nhãn của các token, ví dụ như thẻ từ loại.

15.6.4. Trả lời Câu hỏi

Là một ứng dụng khác ở mức token, trả lời câu hỏi phản ánh khả năng đọc hiểu. Ví dụ, tập dữ liệu trả lời câu hỏi Stanford (SQuAD v1.1) bao gồm các đoạn văn và các câu hỏi, nơi mà câu trả lời cho mỗi câu hỏi chỉ là một phần văn bản (khoảng văn bản - text span) trong đoạn văn mà câu hỏi đang đề cập tới [Rajpurkar et al., 2016]. Để giải thích, hãy xét đoạn văn sau “Một số chuyên gia cho rằng sự hiệu quả của khẩu trang là chưa thể khẳng định. Tuy nhiên, các nhà sản xuất khẩu trang cho rằng sản phẩm của họ, như là khẩu trang N95, có thể bảo vệ khỏi virus.” và câu hỏi “Ai cho rằng khẩu trang N95 có thể bảo vệ khỏi virus?”. Câu trả lời nên là khoảng văn bản “các nhà sản xuất khẩu trang” trong đoạn văn. Vì thế, mục đích trong SQuAD v1.1 là dự đoán điểm khởi đầu và kết thúc của khoảng văn bản trong đoạn văn, khi cho trước câu hỏi và đoạn văn.

../_images/bert-qa.svg

Fig. 15.6.4 Tinh chỉnh BERT cho trả lời câu hỏi. Giả sử rằng cặp văn bản đầu vào có hai và ba token.

Để tinh chỉnh BERT cho ứng dụng trả lời câu hỏi, câu hỏi và đoạn văn được đóng gói tương ứng lần lượt là chuỗi văn bản thứ nhất và thứ hai trong đầu vào của BERT. Để dự đoán vị trí của phần bắt đầu của khoảng văn bản, cùng một tầng kết nối đầy đủ được thêm vào sẽ chuyển hóa biểu diễn BERT của bất kỳ token nào từ đoạn văn bản có vị trí \(i\) thành một giá trị vô hướng \(s_i\). Các giá trị vô hướng của tất cả token trong đoạn văn được tiếp tục biến đổi bởi hàm softmax trở thành một phân phối xác suất, dẫn tới mỗi vị trí \(i\) của token trong đoạn văn được gán cho một xác suất \(p_i\), là xác suất token đó là điểm bắt đầu của khoảng văn bản. Dự đoán điểm kết thúc của khoảng văn bản cũng tương tự, ngoại trừ việc các tham số trong tầng kết nối đầy đủ mở rộng là độc lập với các tầng để dự đoán điểm bắt đầu. Khi dự đoán điểm kết thúc, token có vị trí \(i\) trong đoạn văn được biến đổi thành một giá trị vô hướng \(e_i\) bởi tầng kết nối đầy đủ. Fig. 15.6.4 minh họa quá trình tinh chỉnh BERT cho ứng dụng trả lời câu hỏi.

Cho việc trả lời câu hỏi, mục đích của huấn luyện có giám sát đơn giản là cực đại hóa hàm log hợp lý của các vị trí bắt đầu và kết thúc nhãn gốc. Khi dự đoán khoảng văn bản, ta có thể tính toán giá trị \(s_i + e_j\) cho một khoảng hợp lệ từ vị trí \(i\) tới vị trí \(j\) (\(i \leq j\)), và đưa ra khoảng có giá trị cao nhất làm đầu ra.

15.6.5. Tóm tắt

  • BERT chỉ yêu cầu các thay đổi tối thiểu tới kiến trúc (thêm các tầng kết nối đầy đủ) cho nhiều ứng dụng xử lý ngôn ngữ tự nhiên ở mức chuỗi và mức token, ví dụ như phân loại văn bản đơn (phân tích cảm xúc và kiểm tra khả năng chấp nhận được về ngôn ngữ), phân loại hoặc hồi quy cặp văn bản (suy luận ngôn ngữ tự nhiên và đo sự tương đồng ngữ nghĩa văn bản), gán thẻ văn bản (như gán thẻ từ loại) và trả lời câu hỏi.
  • Trong suốt quá trình học có giám sát của một ứng dụng xuôi dòng, các thông số của các tầng mở rộng được học từ đầu trong khi tất cả các thông số trong mô hình BERT đã tiền huấn luyện sẽ được tinh chỉnh.

15.6.6. Bài tập

  1. Hãy thiết kế một công cụ tìm kiếm các bài báo tin tức. Khi hệ thống nhận một truy vấn (ví dụ, “ngành công nghiệp dầu mỏ trong đại dịch COVID-19”), nó trả về một danh sách xếp hạng các bài viết tin tức liên quan tới truy vấn nhất. Giả sử như ta có một tập lớn các bài báo và một số lượng lớn các truy vấn. Để đơn giản hóa vấn đề, giả thiết rằng bài báo liên quan nhất được gán nhãn cho từng truy vấn. Làm cách nào để ta áp dụng phương pháp lấy mẫu âm (xem Section 14.2.1) và BERT khi thiết kế thuật toán?
  2. Làm thế nào để tận dụng BERT khi huấn luyện các mô hình ngôn ngữ?
  3. Làm thế nào để tận dụng BERT trong dịch máy?

15.6.7. Thảo luận

15.6.8. Những người thực hiện

Bản dịch trong trang này được thực hiện bởi:

  • Đoàn Võ Duy Thanh
  • Nguyễn Văn Quang
  • Trần Yến Thy
  • Lê Khắc Hồng Phúc
  • Nguyễn Văn Cường

Lần cập nhật gần nhất: 26/09/2020. (Cập nhật lần cuối từ nội dung gốc: 30/06/2020)