ĐẦU RA Hình 4.1. Mô hành tổng quan của hệ thống chatbot
4.3 Biểu diễn từ (Word embedding)
Biểu diễn từ là một không gian để ánh xa các từ ngữ (ký tự) sang dạng số, dùng để biểu diễn ngữ nghĩa của từ. Trong không gian này, mỗi từ được biểu
diễn bởi một véc tơ có số chiều nhất định (chang hạn với BERT-based là 768
chiều), các từ vựng đồng nghĩa có véc tơ biểu diễn nằm gần nhau (gồm hướng
và độ lớn), và ngược lại những từ không liên quan hoặc trái nghĩa nằm cách xa
nhau.
Điển hình cho phương pháp mã hoá dựa trên thống kê tần suất xuất
hiện từ là TF-IDF (Term Frequency — Inverse Document Frequency) - một kỹ
thuật để tính toán trọng số cho từ trong một văn ban. Trọng số này thể hiện
mức độ quan trọng của một từ trong văn bản đó, giá trị càng cao thì càng mang
nhiều giá trị. Tuy nhiên, việc mã hoá theo phương pháp này gặp nhược điểm lớn đó chính là mỗi từ trong câu được biểu diễn độc lập, nghĩa là chúng không
phụ thuộc vào vị trí của chúng đối với những từ xung quanh.
23
Phương pháp mã hoá dựa trên hướng tiếp cận nông (như CBOW, Skip-gram, ...) học được cách biểu diễn từ thông qua ngữ cảnh, khắc phục được nhược điểm của phương pháp thống kê theo tần suất gặp phải đó là các từ biểu diễn độc lập dù trong bất kì ngữ cảnh nào. Mặc dù có sử dụng các lớp nơ ron nhân tạo để học và biểu diễn ngữ nghĩa, các kiến trúc này chỉ có 2 lớp mạng nơ ron được dùng để biểu diễn ngữ nghĩa của từ.
Công trình [4] đã chi ra rằng mô hình học sâu thể hiện tốt hon so với mô
hình học nông trong cùng một tác vụ, cùng lượng tham số huấn luyện, và cùng các biến thiết đặt môi trường.
f(x) = 2(2cos“(x) -1)“-†2 2
06 r 0.6 r
a | hidden —thidden
2 hidden 2 hidden
0.55 Ƒ == = =3 hidden 0.55 F == = =3 hidden
0.5 F
0.5 F
0.45 F
0.45
ơ
Đ oat
_
œ 0.4
D 035 +
o
— 0.35
03 fF
03 Fr 0.25 F
0.25 0.2 F
0.15 + 02Ƒ
tm.
ieee
0.1 " + + 0.15 L + + L
20 40 60 80 0 200 400 600 800
Number of units Number of parameters
Hình 4.3. So sánh học nông va hoc sâu 3.
Do đó trong đề này tài, chúng tôi sử dụng kiến trúc mạng học sâu BERT để biểu diễn ngữ nghĩa cho câu.
°nttps://www.aaai.org/ocs/index.php/AAAT/AAAI17/paper/viewFile/14849/14414
24
4.3.1 Transformer
“Attention is All You Need” [10] là một công trình có tầm ảnh hưởng lớn trong những năm gần đây, đặc biệt là trong lĩnh vực dịch máy. Trước đây, RNN được xem như là khung xương của kiến trúc dịch máy nói riêng và trong nhiều tác vụ trong NLP nói chung bởi lẽ RNN có kiến trúc phù hợp - kiến trúc hồi quy - thích hợp trong nhiệm vụ xử lý chuỗi. Cho đến khi Transformer được
đề xuất, một kiến trúc áp dụng cơ chế tự chú ý (self-attention), đã và đang thay thế cho các phiên bản mô hình hồi quy trước đây. Dù bắt nguồn từ NLP, nhưng
Transformer đang dần “lấn sân” sang xử lí ảnh và cũng đạt được một số kết quả
khả quan.
1) Tại sao lại là Transformer?
Trước khi Transformer ra đời, hầu hết các mô hình dịch máy được sử dụng
là RNN và các biến thể của nó (LSTM, GRU,...). Thế nhưng bản thân của các
mô hình này lại chứa một số nhược điểm lớn như:
- Kiến trúc của RNN là kiến trúc tuần tự, không hỗ trợ tính toán song song, mỗi trạng thái sau đều phụ thuộc vào trạng thái trước đó, dẫn đến thời gian
huan luyện chậm.
- RNN gặp khó khăn trong việc ghi nhớ các phụ thuộc tầm xa trong mạng. Nguyên nhân là trong quá trình đệ quy nhiều lần dẫn đến hiện tượng mất
mát hoặc bùng nổ đạo hàm làm thất thoát thông tin. Để khắc phục nhược điểm đó, LSTM ra đời, tuy nhiên chi phí tính toán cho mô hình này lớn hơn nhiều so với RNN và cũng không khắc phục hoàn toàn nhược điểm của
RNN (xử lý được những câu dài đến 35 từ nhưng với những câu dài như
100 từ thì vẫn chưa xử lý được).
- Theo như mô hình RNN!°, các thông tin của một câu được nén lại bởi một
Mnttps://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-
neural-networks
25
vóc tơ duy nhất gọi là véc tơ context (Scontert) khiến cho dữ liệu nghẽn cổ
chai làm mat mát thông tin đối với những câu dài. Trong thực tế, các véc
tơ biểu diễn ở lớp ẩn (hidden layers) vẫn chứa các thông tin mã hoá quan
trọng nhưng RNN hay LSTM không tận dụng được điều đó.
Transformer ra đời với cơ chế Multi-head Attention đã khắc phục nhược điểm của các phiên bản tiền nhiệm, giúp cho việc huấn luyện mô hình diễn ra một cách song song, không còn hiện tượng phụ thuộc tầm xa trong mạng, đồng thời
thời gian huấn luyện của mô hình được rút ngắn.
2) Kién trúc của Transformer
Multi-Head Attention
Multi-Head Attention
Positional ®
Encoding
Inputs
Input Embedding
Multi-Head Attention
® AL) Positional
er Encoding
Hình 4.4. Kiến trúc của Transformer Í1.
Nhìn vào hình 4.4, ta thấy rằng Transformer vẫn sử dụng thiết kế gồm hai
phần: bộ mã hoá (Encoder) và bộ giải mã (Decoder) như các kiến trúc trước.
Unttps://arxiv.org/abs/1706.03762
26
Phía bên trái là bộ mã hóa và phía bên phải là bộ giải mã. Cả bộ mã hoá và
bộ giải mã đều có N khối giống nhau xếp chồng lên nhau. Sau đây là trình bày chi tiết về kiến trúc của mô hình Transformer.
a) Input embedding
Máy tính không hiểu được văn bản, vì vậy phải biến đổi văn bản thành dạng véc tơ biểu diễn, ở đây tác giả sử dụng bộ tokenizer đã được huấn luyện săn để
mã hoá văn bản thành dạng véc tơ token embedding. Trong đó mỗi token là
tương ứng với vi trí của nó trong bộ từ vựng của tokenizer, số chiều của véc tơ
embedding bằng max_ length tuỳ chọn (nhưng có giới hạn).
b) Positional Encoding
Không giống như RNN hoặc các mạng hồi quy khác, Transformer có mô đun
biểu thị vị trí các từ trong câu, ví dụ : “Tôi cao hơn bạn” và “bạn cao hơn tôi” được biểu diễn khác nhau. Để biểu diễn thứ tự các từ trong một câu,
Transformer sử dụng phương pháp Positional Encoding (tạm gọi là mã hoá vị
trí), các véc tơ mã hoá vị trí này có cùng chiều với input embedding để tính tổng lại, sau đó đi qua Encoder. Công thức tính vị trí của một từ mà tác giả
đã đề xuất (4.1).
PE (pos,2i) = Sin pos /100002"/4moeet
- (4.1)
PE (pos,2i+1) = COS (pos /10000%/4me")
Trong đó, pos là vi trí của từ trong câu, i là số chiều. Khi đó, mỗi chiều trong positional encoding tương ứng với một hình sin với bước sóng từ 2z đến 10000z.
c) Multi-Head Attention
Cả Eneoder và Decoder đều sử dụng thành phần gọi là Multi-Head Atten- tion, được xem như là thành phần chính của Transformer và là điểm đặc biệt
so với những mô hình sinh văn bản trước đó. Để thuận tiện trong việc theo dõi, chúng tôi trình bày phần này trước khi đi vào chi tiết của Encoder và Decoder.
Như đã đề cập, Transformer dùng cơ chế self-attention để biểu thị tầm ảnh
27
hưởng của những từ trong câu so với một từ đang xét, được thể hiện bằng trọng
số liên quan (attention weight). Với cơ chế này, mỗi từ được đại diện bởi bộ
ba tham số là key, value và query (k,q,v) - được khởi tạo ngẫu nhiên và được tối ưu thông qua quá trình học và cập nhật. Như vậy, một câu đầu vào bất kỳ
được đại diện bởi bộ ba ma trận K,Q,V tương ứng là (keys, queries, values) và
attention weight được tính bằng phép “Scale dot product attention” thông
qua phương trình sau:
attention(Q, K,V) = softmax (2) V (4.2)
Việc tiến hành chia cho Vd; - chiều dai của véc tơ key, nhằm mục đích chuẩn
hoá lại giá trị trong trường hợp số mũ quá lớn.
Multi-Head Attention
Scaled Dot-Product
Attention 2
Hình 4.5. Multi-head Attention 12.
Trọng số của một self-attention có xu hướng đánh trọng số cho chính nó cao hơn những từ xung quanh nhưng chúng ta trông đợi trọng số đó thể hiện mức
độ liên quan giữa nó và các từ khác trong câu. Giải pháp được đưa ra là thay
vì sử dụng một, ta sử dụng nhiều self-attention cùng một lúc để học được nhiều
1ˆnttps: //arxiv.org/abs/1706.03762
28
trọng số attention khác nhau nhằm đảm bảo sự công bằng khi lấy trung bình (hoặc tổng) của các trọng số self-attention này. Việc làm như vậy được gọi là
Multi-Head Attention. Vi ban thân mỗi self-attention cho ra một ma trận
trọng số attention riêng nên ta tiến hành nối các ma trận này và nhân với ma trận trọng số Wo để ra một ma trận attention duy nhất (weighted sum). Ma trận trọng số này cũng được cập nhật qua mỗi lần huấn luyện.
d) Encoder
Multi-Head Attention
Positional
Encoding OY 2
Hình 4.6. Transformer encoder 1?.
Encoder bao gồm N khối xếp chồng lên nhau, mỗi khối lại bao gồm 2 khối nhỏ hơn gọi là sub-layer. Khối đầu tiên là Multi-Head Attention đã được trình bày
ở phần trên, khối thứ hai chỉ là các mạng chuyển tiếp đơn giản (Feed forward). Giữa mỗi lớp con có một kết nối residual connection (tương tự dropout với
P_drop = 0.1) và theo sau đó chính là một lớp chuẩn hoá (Norm layer). Việc sử dụng residual connection nhằm giúp mạng giữ được thông tin trước đó và việc
l”https : //arxiv.org/abs/1706.03762
29
chuẩn hoá sau đó nhằm mục đích giúp cho có được sự đồng bộ trong phân phối
trong dự liệu do việc mô hình càng sâu có nhiều layer cùng với đó là có nhiều
hàm kích hoạt, nó làm biến đổi đi phân phối của dữ liệu. Phương trình đầu ra của mỗi khối có dạng như sau:
y = Layer Norm (a + Subbauer(z)) (4.3)
Sau khi kết thúc quá trình mã hoá, các véc tơ này được chuyển sang Decoder
để tiếp tục quá trình giải mã.
e) Decoder
Positional
@ Encoding
Hình 4.7. Transformer decoder 4.
Mnttps://arxiv.org/abs/1706 .03762
30
Decoder sử dụng cơ chế hồi quy để sinh văn bản, nhận đầu vào là véc tơ (key, value) lấy từ Encoder, còn véc tơ query là embedding output sử dụng cơ chế hồi quy (gồm nhiều timestep, mỗi timestep có query là đầu ra trước đó của Decoder,
và tại mỗi timestep có một từ được sinh ra). Nhìn chung, về co bản Decoder có
cấu trúc giống với Encoder nhưng có một chút khác biệt. Ở khối Multi-Head
Attention đã được thay thế bởi khối Mask Multi-Head Attention. Mask Multi- Head Attention về bản chất thi cũng tương tự như Multi-Head Attention tuy nhiên khác ở chỗ những từ chưa được giải mã bị che lại (đánh dấu là chưa được thấy). Nguyên nhân là một từ ở vị trí hiện tại phụ thuộc vào những từ đã được
giải mã trước đó. Việc che giấu đi những từ phía sau nhằm mục đích tránh hiện
tượng “nhìn trước” kết quả.
Đầu ra tại mỗi timestep của Decoder là một từ, cụ thể các véc tơ đầu ra đi qua một lớp kết nối đầy đủ (fully-connected layer) và qua hàm softmax để tính toán ra vị trí của từ trong bộ từ điển.
4.3.2 BERT
Chúng tôi đã trình bày chi tiết phan lí thuyết và kiến trúc Transformer ở [mục 4.3.1], gồm phan Encoder dùng để biểu diễn ngữ cảnh và sinh văn bản với
Decoder. BERT( Bidirectional Encoder Representations from Transformers) là
một phiên bản khác của Transformer khi chỉ có phan Encoder, tuy nhiên chính điều đó đã mang lại thành công cho BERT. Được pretrained chung trên 2 tác vụ
không giám sát là Masked Language Model (MLM) và Next Sentence Prediction
(NSP), giúp cho BERT biểu diễn được ngữ nghĩa hai chiều, là điều mà các mô
hình trước đây không làm được, lí do là Decoder của Transformer vẫn sử dụng
cơ chế hồi quy nên ngữ cảnh vẫn được biểu diễn một chiều từ trái sang phải,
do đó khi Encoder và Decoder huấn luyện chung thì phần Encoder phải nhận nhược điểm của Decoder vừa nêu trên.
Chúng tôi ứng dụng mô hình học sâu BERT vào việc biểu diễn ngữ nghĩa
j1
(word embedding, text representation) cho câu truy vấn và câu ứng viên.
4.3.3 PhoBERT
PhoBERT [5] là một pretrained BERT cho tiếng Việt, sử dụng mô hình
học sâu kiến trúc BERT, được huấn luyện theo thủ tục train RoBERTa, cụ thé
RoBERTa va BERT có kiến trúc giống hệt nhau nhưng RoBERTa huấn luyện
mô hình chi bang tác vụ điền khuyết (fill mask hay Masked Language Model).
Điểm đặc biệt ở tiếng Việt là từ có hai dạng là từ đơn và từ phức. Từ đơn là
đơn vị nhỏ nhất, với một tiếng, không giống như tiếng anh một từ gồm có tiền
tố, gốc và hậu tố, ví dụ từ “pretained” được cấu thành bởi 3 phần “pre”,“train”
và “ed”. Do đó, thay vì sử dụng phương pháp tách tiếng (word-piece), dùng bộ tách từ (word segmentation) tốt hơn cho tiếng Việt.
Ngoài tách từ, PhoBERT Tokenizer còn có sử dụng cơ chế BPE (Byte Pair Encoding) - một kỹ thuật mã hoá dạng văn bản sang dạng số (áp dụng
được cho cả từ sai chính tả và từ không có trong bộ từ điển, tiếng nước ngoài)
nhờ co chế mã hoá subword (tạm gọi là từ phụ). BPE của PhoBERT có bộ
từ vựng gồm 64000 từ (token) dành riêng cho tiếng Việt, trong khi đó BERT
multilingual hỗ trợ 104 ngôn ngữ mà bộ từ vựng chỉ có 119547 từ (token); cộng
với việc PhoBERT được pretrained trên 20GB dữ liệu tiếng Việt đã đủ lớn để
khiến PhoBERT trở thành một pretrained BERT cho tiếng Việt tốt cho đến
nay.
Trong khuôn khổ khoá luận này, chúng tôi tiến hành cài đặt mô hình học sâu kiến trúc BERT sử dụng pre-trained PhoBERT-base. Thông số của mô hình
PhoBERT-base:
¢ Có 12 lớp (layers).
ô Mỗi từ được biểu diễn bởi một vộc tơ cú kớch thước là 768.
ô Mụ hỡnh sử dụng 12 heads cho mỗi self-attention.
32
ô Tổng số tham số của mụ hỡnh sap xỉ 135 triệu tham số.
Các biến môi trường cần được xác định trước gồm:
ô max length = 256 tokens (chiều dài tối da của một cõu, những cõu dài
hơn 256 bị lược bỏ phần sau).
ô Giảm chiều dữ liệu: kớch thước mỗi vộc tơ ứng với một token là 300 (ban
đầu là 768) - lớp tỉnh chỉnh chính.
Đầu vào của mô hình PhoBERT là tensor với kích thước (batch_ size, max_ length). Đầu ra của mô hình là một tensor 3 chiều có kích thước là
(batch_ size, max_ length, 300), mỗi câu được biểu diễn bởi một tensor hai chiều có kích thước là (max_ length, 300). Phương pháp BERT Aggregation [9] được áp dụng để chọn một véc tơ biểu diễn ngữ nghĩa duy nhất cho mỗi câu, chúng tôi sử dụng véc tơ biểu diễn của token <s> (chức năng giống như véc
tơ phân loại trong BERT là [CLS]) để làm véc tơ đại diện cho câu - thông qua một số thí nghiệm và cũng như chưa có công bố nào thể hiện rõ aggregation nào tốt hơn những thứ còn lại nên chúng tôi chọn véc tơ biểu diễn cho token <s>.