Bài báo · arXiv 1810.04805
BERT: Tiền huấn luyện Transformer hai chiều sâu cho hiểu ngôn ngữ
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Tóm tắt trong ba dòng
- 🎯 Tiền huấn luyện mô hình ngôn ngữ tiêu chuẩn bị giới hạn bởi ngữ cảnh một chiều (trái sang phải), vốn dưới mức tối ưu cho các tác vụ cấp độ câu và gây bất lợi cho các tác vụ cấp độ token như trả lời câu hỏi.
- 🔧 Giới thiệu BERT, mô hình tiền huấn luyện bộ giải mã Transformer hai chiều nhiều tầng sử dụng mục tiêu Masked Language Model (Cloze) và Next Sentence Prediction.
- 📈 Đạt kết quả state-of-the-art trên 11 tác vụ NLP, bao gồm điểm GLUE 80.5 (+7.7 điểm tuyệt đối) và độ chính xác 86.7% trên MultiNLI (+4.6% tuyệt đối).
Tóm tắt
Chúng tôi giới thiệu một mô hình biểu diễn ngôn ngữ mới mang tên BERT, viết tắt của Bidirectional Encoder Representations from Transformers. Không giống như các mô hình biểu diễn ngôn ngữ gần đây, BERT được thiết kế để tiền huấn luyện các biểu diễn hai chiều sâu từ văn bản không gán nhãn bằng cách điều kiện hóa đồng thời trên cả ngữ cảnh trái và phải ở tất cả các tầng. Nhờ đó, mô hình BERT đã tiền huấn luyện có thể được tinh chỉnh (fine-tune) chỉ với một tầng đầu ra bổ sung để tạo ra các mô hình dẫn đầu trạng thái kỹ thuật hiện tại (state-of-the-art) cho nhiều tác vụ khác nhau, chẳng hạn như trả lời câu hỏi và suy luận ngôn ngữ, mà không cần sửa đổi đáng kể kiến trúc cho từng tác vụ cụ thể. BERT vừa đơn giản về mặt khái niệm vừa mạnh mẽ về mặt thực nghiệm. Mô hình đạt được các kết quả state-of-the-art mới trên 11 tác vụ xử lý ngôn ngữ tự nhiên, bao gồm việc nâng điểm GLUE lên 80.5% (cải thiện tuyệt đối 7.7 điểm phần trăm), độ chính xác MultiNLI lên 86.7% (cải thiện tuyệt đối 4.6%), Test F1 trên tập trả lời câu hỏi SQuAD v1.1 lên 93.2 (cải thiện tuyệt đối 1.5 điểm) và Test F1 trên SQuAD v2.0 lên 83.1 (cải thiện tuyệt đối 5.1 điểm).
Tóm tắt gốc (tiếng Anh)
We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT model can be fine-tuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without substantial task-specific architecture modifications. BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural language processing tasks, including pushing the GLUE score to 80.5% (7.7% point absolute improvement), MultiNLI accuracy to 86.7% (4.6% absolute improvement), SQuAD v1.1 question answering Test F1 to 93.2 (1.5 point absolute improvement) and SQuAD v2.0 Test F1 to 83.1 (5.1 point absolute improvement).
Hướng dẫn đọc
Vấn đề và động lực
Các mô hình biểu diễn ngôn ngữ trước đây dựa trên phương pháp tiếp cận dựa trên đặc trưng (như ELMo) hoặc phương pháp tinh chỉnh (như OpenAI GPT). Dù hiệu quả, cả hai mô hình này đều bị giới hạn bởi các mục tiêu mô hình hóa ngôn ngữ một chiều: các mô hình tự hồi quy tiêu chuẩn xử lý văn bản nghiêm ngặt từ trái sang phải (hoặc từ phải sang trái). Trong các mô hình một chiều, các token chỉ có thể chú ý đến các token đứng trước trong các tầng self-attention nhằm ngăn các từ tự "nhìn thấy chính nó" một cách tầm thường trên các ngữ cảnh nhiều tầng. ELMo đã nỗ lực tạo tính hai chiều bằng cách ghép nối nông các mạng LSTM huấn luyện riêng biệt từ trái sang phải và từ phải sang trái, nhưng cách này không nắm bắt được việc điều kiện hóa đồng thời, sâu sắc trên ngữ cảnh hai chiều ở mọi tầng. Bản chất một chiều này làm hạn chế các biểu diễn ở cấp độ câu và đặc biệt bất lợi cho các tác vụ xuôi dòng ở cấp độ token như trả lời câu hỏi, nơi việc hiểu đồng thời cả ngữ cảnh bên trái và bên phải là thiết yếu.
Ý tưởng cốt lõi
- Kiến trúc Transformer hai chiều sâu (Deep Bidirectional Transformer Architecture): BERT sử dụng bộ mã hóa Transformer hai chiều nhiều tầng, cho phép các tầng self-attention điều kiện hóa đồng thời trên cả ngữ cảnh trái và phải xuyên suốt tất cả các tầng.
- Masked Language Model (MLM): Lấy cảm hứng từ tác vụ Cloze, BERT ngẫu nhiên che đi 15% các token đầu vào và huấn luyện mô hình dự đoán các token bị che đó dựa trên ngữ cảnh xung quanh, giải quyết vấn đề tầm thường "tự nhìn thấy chính nó".
- Giảm thiểu sai lệch giữa tiền huấn luyện và tinh chỉnh: Vì token
[MASK]không xuất hiện trong giai đoạn tinh chỉnh, 15% token được chọn sẽ được thay thế bằng[MASK]trong 80% trường hợp, một token ngẫu nhiên trong 10% trường hợp, và giữ nguyên không đổi trong 10% trường hợp còn lại. - Next Sentence Prediction (NSP): Để nắm bắt mối quan hệ giữa các cặp câu vốn rất quan trọng đối với Suy luận ngôn ngữ tự nhiên (NLI) và Trả lời câu hỏi (QA), BERT được tiền huấn luyện trên một tác vụ nhị phân nhằm dự đoán liệu câu có tiếp nối câu một cách tự nhiên hay không () hay chỉ là một câu ngẫu nhiên từ kho ngữ liệu ().
- Kiến trúc hợp nhất cho các tác vụ xuôi dòng: Toàn bộ kiến trúc tiền huấn luyện được tái sử dụng trực tiếp cho các tác vụ xuôi dòng với lượng tham số bổ sung tối thiểu (ví dụ: một đầu phân loại tuyến tính đơn giản hoặc các con trỏ chỉ vị trí bắt đầu/kết thúc đoạn trích).
Phương pháp
Cấu hình mô hình
BERT chủ yếu được đánh giá trên hai kích thước:
- : tầng, kích thước ẩn , đầu attention, tổng số tham số = .
- : tầng, kích thước ẩn , đầu attention, tổng số tham số = . Kích thước bộ lọc feed-forward là .
Biểu diễn đầu vào và đầu ra
Đầu vào có thể đại diện cho một chuỗi văn bản đơn lẻ hoặc một cặp câu được ghép lại với nhau. Các embedding được xây dựng bằng cách cộng dồn:
- Token embedding từ WordPiece (kích thước từ vựng 30,000 token).
- Segment embedding (embedding học được nhằm xác định token thuộc về câu hay câu ).
- Positional embedding được học.
Mỗi chuỗi đều bắt đầu bằng [CLS]. Vector ẩn cuối cùng của nó đóng vai trò là biểu diễn tổng hợp của chuỗi. Các cặp câu được phân tách bằng [SEP]. Các biểu diễn ẩn cuối cùng của từng token được ký hiệu là .
Mục tiêu tiền huấn luyện
- Masked LM: Với token bị che thứ , biểu diễn được đưa vào một hàm softmax trên toàn bộ từ vựng với hàm mất mát cross-entropy:
- Next Sentence Prediction: Vector tổng hợp được đưa vào bộ phân loại nhị phân: Hàm mất mát tiền huấn luyện tổng thể là tổng của hợp lý trung bình của Masked LM và hợp lý trung bình của dự đoán câu tiếp theo.
Tùy biến cho giai đoạn tinh chỉnh (Fine-tuning)
- Phân loại (GLUE): Thêm một ma trận chiếu , mất mát được tính là .
- Trích xuất đoạn (Span Extraction - SQuAD v1.1): Học vector bắt đầu và vector kết thúc . Xác suất để token là điểm bắt đầu của đoạn câu trả lời là: Điểm số cho đoạn là , được tối đa hóa trên điều kiện .
- Câu hỏi không thể trả lời (SQuAD v2.0): Được mở rộng bằng cách cho phép token
[CLS]đóng vai trò là đoạn câu trả lời rỗng (null), cho điểm số , và chỉ dự đoán câu trả lời không rỗng khi .
Kết quả
BERT đã được đánh giá trên 11 tác vụ NLP:
- Bảng xếp hạng GLUE: đạt điểm GLUE trung bình là 80.5% (cải thiện tuyệt đối 7.7% so với mức state-of-the-art trước đó) và độ chính xác 86.7% trên MNLI (tăng 4.6% tuyệt đối).
- SQuAD v1.1: Mô hình đơn lẻ đạt 84.1 EM và 90.9 F1 trên tập Dev; một mô hình ensemble kết hợp tiền huấn luyện trên TriviaQA đã đạt 87.4 EM và 93.2 F1 trên tập Test, vượt qua hiệu năng con người (82.3 EM / 91.2 F1).
- SQuAD v2.0: đạt 80.0 EM và 83.1 F1 trên tập Test, vượt qua hệ thống tốt nhất trước đó +5.1 F1.
- SWAG: đạt độ chính xác 86.3% trên tập Test, vượt trội hơn OpenAI GPT (78.0%) và baseline của chuyên gia con người (85.0%).
- Kết quả nghiên cứu loại trừ (Ablation): Việc loại bỏ NSP làm suy giảm hiệu năng trên MNLI (-0.5%), QNLI (-3.5%), và SQuAD F1 (-0.6%). Việc thay thế MLM bằng mô hình ngôn ngữ từ trái sang phải tiêu chuẩn (LTR LM) gây ra sự sụt giảm lớn trên SQuAD (-10.7 F1) và MRPC (-9.2% độ chính xác).
Hạn chế và các câu hỏi mở
- Sự khác biệt giữa tiền huấn luyện và tinh chỉnh: Token nhân tạo
[MASK]không bao giờ xuất hiện trong giai đoạn tinh chỉnh, đòi hỏi các quy tắc heuristic thay thế (80/10/10) để giảm bớt sự không khớp này. - Hiệu quả tiền huấn luyện: Vì BERT chỉ dự đoán 15% số token trên mỗi batch thay vì 100% số token như trong các mô hình tự hồi quy tiêu chuẩn, mô hình cần nhiều bước tiền huấn luyện hơn (1,000,000 bước với 128,000 token/batch) để hội tụ.
- Nghẽn cổ chai Attention bậc hai: Cơ chế attention tiêu chuẩn của Transformer mở rộng theo hàm bậc hai () theo độ dài chuỗi, khiến các chuỗi dài trở nên tốn kém chi phí tính toán và buộc phải sử dụng chiến lược tiền huấn luyện hai giai đoạn (90% số bước ở độ dài chuỗi 128, 10% số bước ở độ dài 512).
- Không áp dụng trực tiếp cho sinh văn bản: Là một bộ mã hóa hai chiều, BERT được cấu trúc trực tiếp cho việc trích xuất biểu diễn và các tác vụ xuôi dòng dạng phân loại/phân biệt, không thể thực hiện trực tiếp việc sinh tự hồi quy từ trái sang phải nếu không sửa đổi kiến trúc.
Thuật ngữ chính
- Masked Language Model (MLM)
- Một mục tiêu tiền huấn luyện lấy cảm hứng từ tác vụ Cloze, trong đó các token đầu vào ngẫu nhiên được thay thế bằng một ký hiệu mặt nạ (mask) và mô hình được huấn luyện để tái tạo token gốc từ ngữ cảnh hai chiều sâu.
- Next Sentence Prediction (NSP)
- Một tác vụ tiền huấn luyện nhị phân, trong đó mô hình dự đoán liệu phân đoạn câu thứ hai được đưa ra có tiếp nối phân đoạn thứ nhất một cách logic hay được lấy mẫu ngẫu nhiên từ kho ngữ liệu.
- [CLS]
- Một token phân loại đặc biệt được đặt ở đầu mỗi chuỗi mà trạng thái ẩn cuối cùng của nó được sử dụng làm biểu diễn tổng hợp của toàn chuỗi cho các tác vụ phân loại.
- [SEP]
- Một token đặc biệt được sử dụng để phân tách các phân đoạn câu không liên tục hoặc riêng biệt trong một chuỗi đầu vào được ghép chung.
- WordPiece
- Một thuật toán tách từ phụ (subword tokenization) được BERT sử dụng với vốn từ vựng 30,000 token để xử lý các từ nằm ngoài từ vựng và chia từ thành các đơn vị từ phụ.
- Segment Embeddings
- Các embedding học được được cộng vào token embedding đầu vào để phân biệt xem một token thuộc về đoạn câu A hay đoạn câu B trong các cặp câu được ghép chung.
- Fine-tuning
- Chiến lược huấn luyện xuôi dòng, trong đó tất cả các tham số BERT đã tiền huấn luyện được cập nhật toàn diện (end-to-end) cùng với các tầng đầu ra đặc thù tối thiểu cho từng tác vụ bằng cách sử dụng dữ liệu có gán nhãn.
- Feature-based approach
- Một chiến lược thay thế trong đó các biểu diễn ngữ cảnh cố định được trích xuất từ các tầng của BERT mà không cần cập nhật tham số của mô hình, sau đó đưa vào các kiến trúc chuyên biệt cho từng tác vụ riêng rẽ.
Câu hỏi thường gặp
Tại sao BERT lại thay thế các token được chọn bằng token ngẫu nhiên hoặc giữ nguyên thay vì luôn luôn dùng [MASK]?
Vì token [MASK] không bao giờ xuất hiện trong giai đoạn tinh chỉnh, việc thay thế toàn bộ token mục tiêu bằng [MASK] sẽ tạo ra sự không nhất quán giữa tiền huấn luyện và tinh chỉnh. BERT giảm thiểu điều này bằng cách thay thế các token được chọn bằng [MASK] trong 80% trường hợp, một token ngẫu nhiên trong 10% trường hợp và giữ nguyên token gốc trong 10% trường hợp, buộc mô hình phải duy trì biểu diễn phân tán cho tất cả các token.
Sự khác biệt giữa BERT và OpenAI GPT là gì?
Mặc dù cả hai đều là các mô hình tinh chỉnh dựa trên Transformer, OpenAI GPT sử dụng bộ giải mã Transformer từ trái sang phải, nơi cơ chế attention bị giới hạn để mỗi token chỉ có thể chú ý đến các token đứng trước. Ngược lại, BERT sử dụng bộ mã hóa Transformer hai chiều, nơi attention có thể quan sát cả ngữ cảnh bên trái và bên phải ở mọi tầng, được hỗ trợ nhờ mục tiêu tiền huấn luyện masked language model.
BERT có thể được sử dụng làm bộ trích xuất đặc trưng thay vì phải tinh chỉnh end-to-end không?
Có. Trên tác vụ Nhận dạng thực thể có tên (NER) CoNLL-2003, việc trích xuất và ghép nối các kích hoạt token từ bốn tầng ẩn trên cùng của BERT rồi đưa vào mạng BiLSTM 2 tầng đã đạt điểm Dev F1 là 96.1, chỉ kém 0.3 F1 so với việc tinh chỉnh toàn bộ mô hình (96.4 F1).
Tại sao BERT lại sử dụng lịch trình độ dài chuỗi tiền huấn luyện theo hai giai đoạn?
Độ phức tạp tính toán của self-attention tăng theo hàm bậc hai đối với độ dài chuỗi. Để giảm bớt thời gian tính toán, BERT được tiền huấn luyện với độ dài chuỗi 128 trong 900,000 bước đầu tiên (90% thời gian huấn luyện), và sau đó được huấn luyện với độ dài chuỗi 512 trong 100,000 bước còn lại để học các positional embedding.
Phần giải thích trên trang này do AI viết dựa trên bài báo và có thể có sai sót. Hãy đọc bài báo gốc để biết chi tiết.