2.2. Cơ sở lý thuyết
2.2.2. Mạng nơ-ron hồi quy (Recurrent Neural Network)
Mạng nơ-ron hồi quy [13] (Recurrent Neural Network - RNN) là một loại mang neural thường được sử dụng trong việc xử lý dtr liệu tuần tự như chuỗi văn bản,
âm thanh, hoặc dữ liệu chuỗi thời gian.
Cấu trúc của RNN cho phép nó "nhớ" thông tin từ các bước trước đó trong chuỗi và áp dụng thông tin này vào các bước sau đó. Điều này làm cho RNN trở nên hiệu quả khi làm việc với đữ liệu có tính tuần tự, vì nó có khả năng xử lý các dãy dữ liệu mà mỗi phan tử trong đó phụ thuộc vào các phan tử trước đó.
Cấu trúc cơ bản của RNN bao gồm một loạt các nơ-ron được kết nối theo chuỗi. Mỗi nút trong RNN nhận đầu vảo từ nút trước đó cùng với đầu vảo hiện tại. Điều này tạo ra một chuỗi các "trạng thái ấn" (hidden states) mà mỗi trạng thái chứa thông tin kết hợp từ các bước trước đó và thông tin hiện tại.
Một trong những vấn đề của RNN gốc là van đề biến mat và van đề vượt quá khoảng cách. Trong quá trình huấn luyện, khi chuỗi trở nên dài, RNN có thể gặp khó khăn trong việc "nhớ" thông tin từ các bước xa trong quá khứ hoặc trong việc truyền
dữ liệu qua nhiêu bước một cách hiệu quả.
Dé giải quyết những hạn chế này, các biến thé của RNN đã được phát triển
như Long Short-Term Memory networks (LSTMs) và Gated Recurrent Units
(GRUs). Những biến thé này có kha năng giữ va sử dung thông tin từ qua khứ một cách hiệu quả hơn, giúp cải thiện khả năng học và tổng quát hóa của mô hình trong
xử lý dữ liệu tuần tự.
16
Câu trúc của RNN được mô tả như sau:
RNN là một mạng neural có cấu trúc lặp lại. Mỗi nơ-ron trong RNN có thê kết nối với các neural trong cùng một lớp hoặc các lớp trước đó. Điều này cho phép RNN lưu giữ thông tin từ các phan tử trước đó trong chuỗi và sử dụng chúng dé xử lý phần
tử hiện tại.
Cấu trúc chung của một RNN gồm có 3 thành phan chính:
1. Lớp đầu vào (input layer): Lớp này nhận dit liệu đầu vào từ chuỗi.
2. Lớp ấn (hidden layer): Lớp này thực hiện các phép tinh dé xử lý dữ liệu đầu
vào.
3. Lớp đầu ra (output layer): Lớp này tạo ra kết qua dự đoán.
Hình 6. Cau trúc của RNN
Cách hoạt động của RNN
e Lớp đầu vào nhận dữ liệu đầu vào từ chuỗi.
e Lớp ân thực hiện các phép tính dé xử ly dit liệu đầu vào. Các phép tính này có
thể bao gồm các phép tính cộng, nhân, hàm kích hoạt, v.v.
e Lớp đầu ra tạo ra kết quả dự đoán.
Các phép tính trong RNN:
Phép cộng: Phép cộng được sử dụng đê cộng các giá tri của các nơ-ron trong cùng một lớp hoặc các lớp khác nhau.
17
Phép nhân: Phép nhân được sử dụng đê nhân các giá tri của các nơ-ron với các
trọng sô.
Hàm kích hoạt: Hàm kích hoạt được sử dụng dé biến đôi giá tri của các no-
ron.
2.2.3. M6 hinh Sequence-to-Sequence
Mô hình Seq2Seq được công bố lần đầu tiên vào năm 2014 bởi Ilya Sutskever,
Oriol Vinyals, và Quoc V. Le trong bài báo "Sequence to Sequence Learning with
Neural Networks" [14]. Bài báo này đã được xuất bản trên tạp chí Advances in Neural
Information Processing Systems (NIPS).
Mô hình Seq2Seq được phat triển dựa trên các nghiên cứu trước đây về mạng nơ-ron hồi quy (RNN). Nó đã đạt được những thành công đáng ké trong các ứng dụng
như dịch máy, nhận dạng giọng nói, và đặc biệt nó còn được sử dụng cho bai toán Scene Text Recognition.
Trong mô hình Seq2Seq, bộ encoder là phần của mô hình có nhiệm vụ anh xa chuỗi token đầu vào vào một không gian vector cố định, tạo ra vector trạng thái an biểu dién cho chuỗi đầu vào. Day là quá trình mã hóa thông tin từ chuỗi đầu vào. Bộ decoder, ngược lại, được sử dụng để tạo ra chuỗi token ở ngôn ngữ đích dựa trên vector trạng thái ấn từ bộ encoder. Bộ Encoder va Decoder là các mô hình RNN, thông thường, các mô hình cải tiến của RNN như GRU và LSTM sẽ được sử dụng
cho cả Encoder và Decoder.
18
Decoder!
'
NULL Er liebte zu essen
Hình 7. Kiến trúc của mô hình Sequence-to-Sequence
Trong mô hình seq2seq, có hai thành phan quan trọng là encoder và decoder, chỉ tiết như sau:
Encoder: Giả sử chúng ta có một chuôi đâu vào là x = x,,...,x7 và mỗi z;là một
phân tử trong chuoi. Mục tiêu của Encoder là chuyên đôi chuỗi này thành một vector
trạng thái ân duy nhất h, biêu điễn toàn bộ thông tin của chuỗi đầu vào.
Decoder: Bộ giải mã được sử dụng để tạo ra chuỗi token ở ngôn ngữ đích. Bộ giải
mã nhận đầu vào là vector trạng thái an, tại mỗi bước mã hóa, một kí tự sẽ được tao
ra, bước giải mã sẽ lặp lại cho đến khi gặp kí tự kết thúc hoặc chuỗi đầu ra đạt đến độ đài quy định trước. Hàm xác xuất có điều kiện được tính theo công thức sau:
m
PCV Vm Ì X1, --,Xn ) = | [oo |S,1,...,¿—1 )
t=1
2.2.4. M6 hinh Attention
2.2.4.1 Tổng quan mô hình Attention
Một van dé dé gặp phải khi sử dụng mô hình seq2seq là nó phụ thuộc rất nhiều vào ngữ cảnh được biéu diễn bởi vector ân, đầu ra của bộ mã hóa. Điều này có nghĩa
là nếu chuỗi đầu vào là quá dài, thì vector ngữ nghĩa ở đầu chuỗi có thé bị mat ở cuối
chuỗi.
19
Dé giải quyét van dé nay, nhóm nghiên cứu đã đê xuat sử dụng mô hình
Attention[12]. Mô hình Attention cho phép bộ giải mã truy cập vào tat cả các vector
trạng thái ân của bộ mã hóa. Điêu này giúp bộ giải mã có được thông tin về toàn bộ
ngữ cảnh của chuỗi đầu vào, ngay cả khi chuỗi đó là quá dải.
Kiến trúc của mô hình Attention tương tự như mô hình seq2seq truyền thống,
nhưng có một sô thay đôi sau:
e Bộ giải mã có một bộ chuyên đôi (attention mechanism) mới, được sử dụng
đê tính toán mức độ quan trọng của môi vector trạng thái ân của bộ mã hóa.
e B6 giải mã sử dụng các vector trạng thái ân của bộ mã hóa, được trọng sô bởi
bộ chuyên đôi, dé tạo ra vector biêu diễn dau ra.
Ưu điểm của mô hình Attention
ô Mụ hỡnh Attention cú một số ưu điểm so với mụ hỡnh seq2seq truyền thống,
bao gôm:
ô Kha năng xử lý cỏc chuỗi đầu vào dài hơn.
e Kha năng duy trì ngữ nghĩa của chuỗi đầu vào tốt hơn.
ô - Giảm thiểu hiện tượng "vanishing gradient".
Encoder
Encoder Encoder RNN RNN
Encoder RNN
Decoder
RNN
Hình 8. Kiến trúc tong quan của mô hình seq2seq có sử dụng cơ chế Attention
20
Ở module Decoder, để tận dụng được các thông tin của tất cả các vector trạng thái ân, một vector ngữ nghĩa (context vector) được tạo ra bằng cách tính tổng
của các tích giữa trọng số alignment ai và vector trạng thái ân tương ứng như
hình bên dưới
|i
ate,
——
+
Hình 9. Vector ngữ nghĩa trong kiến tric attention
Đề sử dụng vector ngữ nghĩa trong quá trình dự đoán, ở mỗi bước dự đoán, vector trạng thái ấn attention được tạo ra bằng cách nối vector ngữ nghĩa và
vector trạng thái ân ở bước thời gian tương ứng lại với nhau
21
Hình 10. Cách mô hình attention sử dụng dụng vector ngữ nghĩa để tạo ra vector trạng
thái Gn attention
Dé biét được dau vào nao quan trọng trong bước dự đoán, mô hình cân phải
dự đoán xem đâu vào nảo là quan trọng. Đê làm được điêu này, chúng ta cân phải có diém sô attention.
Diém sô attention là một giá tri sô biêu thi mức độ quan trọng của một dau vào
đôi với một đâu ra. Nó được tính toán bởi một mô hình dự đoán riêng, gọi là mô hình
alignment. Mô hình này được huấn luyện chung với mô hình seq2seq.
Trong mô hình alignment, mỗi đầu vào (được biểu diễn bởi vector trạng thái an) sẽ được đánh giá xem nó nên chú ý vào dau ra nào trước đó (được biểu diễn bởi
vector trạng thái ân attention). Điêu này được thực hiện băng cách tính toán similarity
giữa hai vector trạng thái an.
Sau khi tính toán similarity, hàm softmax sé được tính trên tat cả các dau ra từ
mô hình alignment đê có được diém sô attention. Điêm sô attention càng cao thì dau vào đó cảng quan trọng đôi với đâu ra.
22
Vi dụ, gia sử chúng ta có một hình ảnh chụp một bảng hiệu cửa hang. Bảng hiệu
có nội dung "Cửa hàng bán đồ chơi". Mô hình nhận dạng văn bản ngoại cảnh sẽ sử dụng điểm sé attention dé xác định xem các phan tử trong hình ảnh nào là quan trọng nhất đối với việc dự đoán nội dung của bảng hiệu. Nếu điểm số attention của chữ
"Cửa hàng" cao hơn điểm số attention của các chữ khác, thì mô hình sẽ có nhiều khả năng dự đoán nội dung của bảng hiệu là "Cửa hàng bán đồ chơi".
Trong ví dụ này, các dau vào cua mô hình là các pixel trong hình ảnh. Mô hình
alignment sé tính toán điêm sô attention cho mỗi pixel, biểu thị mức độ quan trọng
cua pixel đó đôi với việc dự đoán nội dung của bảng hiệu. Pixel có điêm sô attention cao nhât sẽ được coi là quan trọng nhât.
2.2.4.2 Cấu trúc Bi - directional Attention
23
Cấu trúc attention là một cấu trúc đơn hướng, trong đó mô hình chỉ có thể chú
ý đến văn bản ở một phía của khung hình. Điều này có thé dẫn đến những hạn chế
sau:
e Kho khăn trong việc nhận dạng văn bản phía sau: Văn bản phía sau
có thé bi che khuất bởi văn bản phía trước, khiến mô hình khó nhận
ra.
e Khó khăn trong việc nhận dang văn ban bị chồng chéo: Văn bản bị
chồng chéo có thê khiến mô hình khó xác định vị trí của các ký tự.
e Khó khăn trong việc nhận dạng văn ban có kích thước nhỏ: Văn bản
có kích thước nhỏ có thé khó phân biệt với các yếu tố khác trong
khung hình.
Đề khắc phục nhược điểm đó, ta thêm một bộ phận attetion tạo thành cấu trúc
Bi - directional Attention gồm 2 lớp Attetion, 1 cho phía trước và 1 cho phía sau.
Cấu trúc bi-directional attention bao gom hai bộ phận: bộ phan attention phía
trước và bộ phận attention phía sau.
Bộ phận attention phía trước:
Bộ phận attention phía trước sử dụng một mạng attention dé điều chỉnh các
đặc trưng từ bộ phận nhận dạng văn bản, tập trung vào các đặc trưng của văn bản phía trước trong khung hình.
Bộ phận attention phía sau:
Bộ phận attention phía sau sử dụng một mạng attention khác để điều chỉnh các
đặc trưng từ bộ phận nhận dạng văn bản, tập trung vào các đặc trưng của văn bản phía sau trong khung hình.
Hai bộ phận attention này hoạt động độc lập với nhau, nhưng kết quả của chúng được kết hợp lại để tạo ra các đặc trưng cuối cùng.
24
Ví dụ với văn ban "THE EXCHANGE", bộ phận attention phía trước sẽ tập
trung vào các đặc trưng của các ký tự "T", "H", "E", "N" và "C". Bộ phận attention`
phía sau sẽ tập trung vào các đặc trưng của các ký tự "E", "X", "A" và "M". Kết qua của hai bộ phận attention này sẽ được kết hợp lại dé tạo ra các đặc trưng cuối cùng, giúp mô hình có thể nhận ra các ký tự trong văn bản "THE EXCHANGE".
2.2.5 Mô hình Transformer
Vào năm 2017, cộng đồng nghiên cứu xử lý ngôn ngữ tự nhiên (NLP) đã chứng kiến một bước đột phá lớn với sự ra mắt của mô hình Transformer [15]. Ké từ khi ra mắt, Transformer đã phá vỡ nhiều ky lục trong các tác vụ NLP như dich máy, tóm tắt
văn bản, và trả lời câu hỏi.
Trước khi Transformer ra đời, các mô hình dich máy phổ biến sử dụng kiến trúc encoder-decoder. Trong đó, encoder chịu trách nhiệm trích xuất thông tin ngữ nghĩa
từ câu gốc, sau đó decoder sử dụng thông tin này đề tạo ra câu dịch. Tuy nhiên, các
mô hình dựa trên RNN, chăng hạn như LSTM và GRU, có một số hạn chế khi xử lý
các chuỗi văn ban dài, chăng hạn như toàn bộ bai việt:
e Mất thông tin: Khi RNN duyệt qua chuỗi văn bản, thông tin ở đầu chuỗi có
thé bị mat dần theo thời gian. Điều này là do RNN chỉ có thể xử lý thông tin tại một thời điểm.
e Tính tuần tự: RNN chỉ có thé xử lý các từ theo thứ tự, khiến quá trình huấn
luyện trở nên chậm chạp và phức tạp.
e Không phù hợp với transfer learning: Kiến trúc LSTM không phù hợp cho
việc transfer learning, nghĩa là mô hình phải được huấn luyện lại từ đầu khi
được sử dụng cho một tác vụ mới.
Giải pháp của Transformer
25
Multi-Head Attention
L Add & Norm _
Nx Add & Norm
Multi-Head Attention
Multi-Head Attention
__ 4 / __ a,
Positional Positional
CÀ) 0 @ Encoding ép l
Encoding
Input Output
Embedding Embedding
Inputs Outputs
(shifted right)
Hình 12. Kiến trúc của mô hình Transformer
26
Để giải quyết những hạn chế này, Google đã đề xuất mô hình Transformer. Transformer sử dụng cơ chế attention dé tập trung vào các phan quan trọng của chuỗi văn bản, bất ké chúng nam ở đâu. Điều này giúp Transformer có thé duy trì thông tin
ở đầu chuỗi, ngay cả khi chuỗi văn bản rất dài. Ngoài ra, Transformer còn sử dụng positional encoding dé đánh dau vị trí của mỗi từ trong chuỗi, giúp mô hình hiểu được
thứ tự của các từ.
Mô hình Transformer có hai thành phan chính là encoder và decoder. Encoder
va decoder đều được tạo thành từ các layer, mỗi layer bao gồm hai loại block:
e Multi-head attention: Block này sử dung cơ chế attention dé tính toán mức độ
quan trọng của mỗi từ trong chuỗi.
e Feed forward network: Block này thực hiện các phép tính tuyến tính dé biến
đổi đầu ra của block attention.
Encoder của Transformer bao gồm N layer giống nhau (N = 6). Ở mỗi layer, block attention sẽ tính toán mức độ quan trọng của mỗi từ trong chuỗi đầu vào. Block feed forward network sau đó sẽ biến đổi đầu ra của block attention.
Attention vector sẽ chứa thông tin về mức độ quan trọng của mỗi từ trong chuỗi đầu vào. Block feed forward network sau đó sẽ sử dung attention vector dé biến
đôi đâu ra của block attention.
Ngoài ra, encoder của Transformer còn sử dụng positional encoding đê đánh
dau vị trí của mỗi từ trong chuỗi. Điều này giúp mô hình hiểu được thứ tự của các từ.
Decoder của Transformer cũng bao gồm 6 layer. Ngoài hai block attention và
feed forward network, decoder con có một block attention đặc biệt gọi là masked
attention. Block nay sé chi tập trung vào các từ đã được nhận dạng trong chuỗi dau
Ta.
27
Block masked attention sẽ sử dụng attention mask dé che đi các từ chưa được nhận dạng trong chuỗi đầu ra. Điều này giúp mô hình tập trung vào các từ đã được nhận dạng, tránh bị nhằm lẫn.
2.2.5.1. Mô hình Transformer với cơ chế Self-attention
Mô hình Transformer sử dụng cơ chế Self-attention dé giải quyết van đề phụ thuộc đài của vector trạng thái ân. Self-attention là một kỹ thuật cho phép mô hình tập trung vào các từ liên quan nhất với từ đang xử lý. Điều này giúp cho mô hình có thê hiểu được mối quan hệ giữa các từ trong một câu, ngay cả khi các từ đó cách nhau
xa.
Vị dụ, khi xử lý câu "The animal didn’t cross the street because it was too
tired", mô hình sẽ tập trung vào từ "animal" khi xử lý từ "it". Điều này là do từ
"animal" là chủ ngữ của câu, và từ "it" là đại từ nhân xưng thay thế cho chủ ngữ. Do
đó, hai từ này có mối quan hệ chặt chẽ với nhau.
Việc sử dụng cơ chế Self-attention giúp cho mô hình Transformer có thé hiểu
được câu văn tôt hơn, từ đó có thê tạo ra các kêt quả chính xác hơn.
28
lar)
animal_
didn_
1
` cross_
the_ WN the_
street_ \ street_
because_ ` because _
it_ it
was_ was_
tao_ too_
tire tire
d d
Hình 13. Cách hoạt động cua Self-attention
Đầu vào của Self-attention là 3 vector query, key và value, các vector này được tính bằng cách nhân đầu vào với các ma trận trọng số tương ứng với query, key và
value.
© Query vector vector dùng dé chứa thông tin của từ đang xử lý ở bước thời gian
hiện tại (là từ dùng dé tìm kiếm, so sánh).
e Key vector là vector dùng dé biểu diễn thông tin các từ được so sánh với từ
đang xử lý ở trên.
e Value vector là vector biêu diễn nội dung, ý nghĩa của các từ.
2.2.5.2 Transformer - Multi-Head Attention
29
Các mô hình attention truyền thống thường sử dụng một đầu attention duy nhất
dé tính toán mức độ quan trong của mối quan hệ giữa các vị trí trong chuỗi đầu vào.
Tuy nhiên, cách tiêp cận này có một sô hạn chê, bao gôm:
e Không thể học được các mối quan hệ phức tạp giữa các vị trí: Một đầu
attention duy nhất chỉ có thê tập trung vào một khía cạnh của mối quan hệ. Điều này có thể khiến mô hình gặp khó khăn trong việc học được các mối quan
hệ phức tạp giữa các vị trí, chăng hạn như mối quan hệ giữa ngữ nghĩa và ngữ
pháp.
e Không thé xử lý các chuỗi đầu vào dài: Một dau attention duy nhất có thé bị
quá tải khi xử lý các chuỗi đầu vào dai. Điều này có thé dẫn đến suy giảm hiệu suất của mô hình.
Multi-Head Attention khắc phục được những han chế này băng cách sử dụng nhiều đầu attention. Mỗi đầu attention có thê tập trung vào một khía cạnh khác nhau
của mối quan hệ, từ đó cho phép mô hình học được các mối quan hệ phức tạp hơn.
Ngoài ra, việc sử dụng nhiều dau attention cũng giúp mô hình xử lý các chuỗi đầu
vào dài hiệu quả hơn.
Kỹ thuật này hoạt động bằng cách sử dụng nhiều đầu attention, mỗi đầu tập trung vào một khía cạnh khác nhau của mối quan hệ.
Về mặt kiến thức chuyên môn, Multi-Head Attention có thể được mô tả như sau:
e Input: Một chuỗi đầu vào được biéu diễn dưới dạng một ma trận kích thước
(batch_ size, sequence_ length, input_dim).
e Output: Một ma trận kích thước (batch size, sequence length,
output_dim).
Các đầu attention: Mỗi dau attention là một hàm tuyến tính được biểu diễn
dưới dạng một ma trận kích thước (input_dim, output_dim).
Quá trình tính toán Multi-Head Attention:
30