Professional Documents
Culture Documents
Da2 51523252 LeNhatVinh Tuan02
Da2 51523252 LeNhatVinh Tuan02
1
1 RECURRENT NEURAL NETWORK (RNN)
Trước khi Transformers được công bố thì hầu hết các tác vụ NLP đều sử dụng
kiến trúc RNNs.
Điểm yếu thứ nhất là tốc độ train rất chậm => Sử dụng Truncated
Backpropagation để train nó nhưng vẫn rất chậm do phải sử dụng CPU (tuần
tự), ko phải GPU (song song).
Điểm yếu thứ hai là nó xử lý không tốt đối với câu dài do hiện tượng Gradient
Vanishing/Exploding. Khi số lượng units càng lớn, gradient giảm dần ở các
units cuối do công thức Đạo hàm chuỗi, dẫn đến mất thông tin/sự phụ thuộc xa
giữa các units.
2
3 TRANSFORMERS
Từ những nhược điểm trên của RNN và LSTM => Tranformers là cách để tận
dụng khả năng tính toán song song của GPU để tăng tốc độ train cho các mô
hình ngôn ngữ, đồng thời khắc phục điểm yếu xử lý câu dài.
Transformers cũng sử dụng 2 phần Encoder và Decoder khá giống RNNs,
nhưng input được đẩy vào cũng một lúc nhờ vào cơ chế self-attention nên đã
loại bỏ khái niệm timestep của RNNs.
3.1 Encoder
Bao gồm 6 layers liên tiếp nhau. Mỗi một layer sẽ bao gồm một sub-layer là
Multi-Head Attention kết hợp với fully-connected layer như mô tả ở nhánh
3
encoder bên trái của hình vẽ. Kết thúc quá trình encoder ta thu được một vector
embedding output cho mỗi từ.
Ta sẽ đi tuần tự các bước Encoder của Transformers:
- Input Embedding: vì máy tính không hiểu được câu chữ nên trước tiên cần
biến đổi câu chữ dưới dạng vector, có nhiều pretrained word embeddings:
GloVe, Fasttext, gensim w2v,..
- Positional Encoding: Cộng Embedding vector với PE vector để inject thêm
thông tin về vị trí của một từ.
- Self-Attention: (hay multi-head Attention) có 3 vector Q, K, V sau khi tính
toán ta nhận được vector attention Z cho một từ theo công thức:
Trong đó:
1. Input embeddings được nhân với 3 ma trận trọng số tương ứng trong quá
trình huấn luyện ta thu được 3 ma trận WQ, WK, WV. Sau đó, Q nhân
chập với K để truy vấn các từ trong câu, mục đích là để tính toán độ liên
quan giữa các từ với nhau => Score càng lớn sẽ càng liên quan đến nhau
và ngược lại
2. Scale bằng cách chia score cho căn bặc 2 số chiều của Q/K/V => giá trị
3. Softmax các kết quả vừa rồi để đạt được một phân bố xác suất trên các từ
4. Nhân phân bố xác suất đó với V để loại bỏ từ ko cần thiết, giữ lại từ quan
trọng
4
5. V đã được nhân cộng lại với nhau => attention Z cho một từ
**Lặp lại quá trình trên cho tất cả các từ ta được ma trận attention cho 1 câu.
3.2 Decoder
Kiến trúc cũng bao gồm các layers liên tiếp nhau. Mỗi một layer của Decoder
cũng có các sub-layers gần tương tự như layer của Encoder nhưng bổ sung thêm
5
sub-layer đầu tiên là Masked Multi-Head Attention có tác dụng loại bỏ các từ
trong tương lai khỏi quá trình attention.
Sau khi masked input đưa qua sub-layer1 => input nhân với WQ. K/V lấy từ
Encoder cùng với Q từ masked đưa vào sub-layer2 và 3 tương tự Encoder =>
Các vector được đẩy qua lớp Linear (1 mạng fully connected) => softmax để
cho ra xác suất của từ tiếp theo.
4 BERT
Kiến trúc của mô hình BERT là một kiến trúc đa tầng gồm nhiều lớp
Bidirectional Transformer encoder dựa trên bản mô tả đầu tiên của Vaswani et
al. (2017) và sự phát hành trong thư viện tensor2tensor
BERT sử dụng các attention 2 chiều Transformers
BERT được thiết kế để huấn luyện trước các biểu diễn từ (pre-train word
embedding). Điểm đặc biệt ở BERT đó là nó có thể điều hòa cân bằng bối cảnh
theo cả 2 chiều trái và phải.
Cơ chế attention của Transformer sẽ truyền toàn bộ các từ trong câu văn đồng
thời vào mô hình một lúc mà không cần quan tâm đến chiều của câu.
6
- B1: Embedding toàn bộ các token của cặp câu bằng các véc tơ nhúng từ
pretrain model. Các token embedding bao gồm cả 2 token là [CLS] và [SEP]
để đánh dấu vị trí bắt đầu của câu hỏi và vị trí ngăn cách giữa 2 câu. 2 token
này sẽ được dự báo ở output để xác định các phần Start/End Spand của câu
output.
- B2: Các embedding véc tơ sau đó sẽ được truyền vào kiến trúc multi-head
attention với nhiều block code (thường là 6, 12 hoặc 24 blocks tùy theo kiến
trúc BERT). Ta thu được một véc tơ output ở encoder.
- B3: Để dự báo phân phối xác suất cho từng vị trí từ ở decoder, ở mỗi time
step chúng ta sẽ truyền vào decoder véc tơ output của encoder và véc tơ
embedding input của decoder để tính encoder-decoder attention. Sau đó
projection qua linear layer và softmax để thu được phân phối xác suất cho
output tương ứng ở time step .
- B4: Trong kết quả trả ra ở output của transformer ta sẽ cố định kết quả của
câu Question sao cho trùng với câu Question ở input. Các vị trí còn lại sẽ là
thành phần mở rộng Start/End Span tương ứng với câu trả lời tìm được từ
câu input.
7
Sơ đồ kiến trúc BERT cho tá vụ Masked ML.
Theo đó:
- Khoảng 15 % các token của câu input được thay thế bởi [MASK] token trước
khi truyền vào model đại diện cho những từ bị che dấu (masked). Mô hình
sẽ dựa trên các từ không được che (non-masked) dấu xung quanh [MASK] và
đồng thời là bối cảnh của [MASK] để dự báo giá trị gốc của từ được che dấu.
Số lượng từ được che dấu được lựa chọn là một số ít (15%) để tỷ lệ bối cảnh
chiếm nhiều hơn (85%).
- Bản chất của kiến trúc BERT vẫn là một mô hình seq2seq gồm 2 phase
encoder giúp embedding các từ input và decoder giúp tìm ra phân phối xác
suất của các từ ở output. Kiến trúc Transfomer encoder được giữ lại trong
tác vụ Masked ML. Sau khi thực hiện self-attention và feed forward ta sẽ thu
được các véc tơ embedding ở output là
- Để tính toán phân phối xác suất cho từ output, chúng ta thêm một Fully
connect layer ngay sau Transformer Encoder. Hàm softmax có tác dụng tính
toán phân phối xác suất. Số lượng units của fully connected layer phải bằng
với kích thước của từ điển.
- Cuối cùng ta thu được véc tơ nhúng của mỗi một từ tại vị trí MASK sẽ là
embedding véc tơ giảm chiều của véc tơ sau khi đi qua fully connected
layer như mô tả trên hình vẽ bên phải.