Mạng RNN cú nhuợc diểm là khụng thể nhớ dài hạn, nghia là RNN chỉ học duợc cỏc trạng thỏi gần nờn RNN duợc cải tiến bằng việc bổ sung cỏc mụ dun nhớ.
Để khắc phục nhuợc diểm này, một số biến thể của RNN duợc nghiờn cứu phỏt triển nhu mạng cú nhớ dài - ngắn hạn (LSTM - Long short term memory network)
[87], mạng LSTM hai chiều (biLSTM - Bidirectional long short term memory network) [88], mạng GRU (gated recurrent unit) và mạng GRU hai chiều (biGRU - Bidirectional gated recurrent unit) [89,90]. Mạng LSTM, GRU cú khả nang học cỏc
phụ thuộc xa (long-term dependencies) theo một chiều, trong khi dú mạng biLSTM, biGRU cú khả nang học cỏc phụ thuộc xa theo hai chiều. Chi tiết duợc trỡnh bày nhu duới dõy.
2.1.4.1. Mạng LSTM
Mạng LSTM bao gồm một tập cỏc tế bào nhớ LSTM duợc kết nối hồi quy.
Kiến trỳc tổng quan một tế bào nhớ LSTM (LSTM cell) duợc biểu diễn nhu trong Hỡnh 2.5 duới dõy.
Hỡnh 2.5. Kiến trỳc tổng quan một tế bào nhớ LSTM (nguồn: [Internet])
Ngoài việc sử dụng dầu vào hiện tại x t và trạng thỏi ẩn ở buớc truớc ht− 1 nhu RNN, tế bào nhớ LSTM cũn sử dụng thờm một dầu vào nữa là trạng thỏi nhớ (cell
Cổng quờn (Forget gate) ( f t ): Quyết dịnh thụng tin của trạng thỏi nhớ ở buớc truớc (t-1) cú cần luu giữ hay khụng. Thụng tin từ x t và ht− 1duợc chuyển qua hàm
sigmoid và kết quả trả ra thuộc khoảng [0; 1]. Nếu kết quả trả ra gần bằng 1, nghia là thụng tin cần giữ lại cũn nếu kết quả trả ra gần bằng 0 thụng tin cần loại bỏ.
Cổng vào (Input gate) (t i ): Cập nhật thụng tin vào trạng thỏi nhớ. Thực hiện nhõn kết quả trả ra của hàm sigmoid với kết quả trả ra của hàm tanh dể quyết dịnh thụng tin của dầu vào hiện tại và trạng thỏi ẩn buớc truớc cú nờn duợc cập nhật vào trạng thỏi nhớ hay khụng.
Cổng ra (Output gate) ( ot): Tớnh giỏ trị của trạng thỏi ẩn cho buớc tiếp theo. Với việc sử dụng cổng quờn và cổng vào, ta cú thể tớnh duợc giỏ trị mới của trạng thỏi nhớ và từ dú kết hợp với dầu vào hiện tại và trạng thỏi ẩn buớc truớc dể tớnh giỏ trị của trạng thỏi ẩn ở buớc tiếp theo. Giỏ trị của trạng thỏi ẩn mới này chớnh là giỏ trị dự doỏn.
Hỡnh 2.6. Chi tiết tế bào nhớ LSTM [91]
Chi tiết một tế bào nhớ LSTM (LSTM cell) [91] duợc biểu diễn trong Hỡnh 2.6, duợc mụ tả nhu sau: Tại mỗi buớc t (với t = 1, 2,…, J), với một chuỗi dầu vào
( 1 2, ,..., ) = J x x x x thỡ: - Đầu vào: 1 t
c− , ht− 1, x t ; với: x là dầu vào ở trạng thỏi thứ t và ct− 1, ht− 1 tuong ứng là trạng thỏi nhớ, trạng thỏi ẩn dầu ra của lớp truớc dú. -
Đầu ra: c t , h t là trạng thỏi nhớ, trạng thỏi ẩn tuong ứng.
- Mạng thực hiện tớnh toỏn chuỗi vộc to ẩn h t =(h h 1 2, ,...,hJ)và chuỗi vộc to dầu ra y t =(y y 1 2, ,...,yT)theo cỏc cụng thức sau:
1 (W W ) t xh t hh t h h H = x + h − + b (2.6) W t hy t y y = + (h b 2.7)
trong dú: H là hàm lớp ẩn (là tế bào nhớ LSTM), duợc tổng hợp bởi cỏc hàm:
1 1 (W W W ) t xi t hi t ci t i i = σ x + h − + c − + (2.8) b 1 1 (W W W ) t xf t hf t cf t f f = σ x + h − + c − + (2.9) b 1 tanh(W W 1 ) t t t t xc t hc t c c = +f c − i x + h − + (2.10) b 1 (W W W ) t xo t ho t co t o o = σ x + h − + + (2.11)c b
tanh( ) t t t h o = c (2.12) với: + 0 < f t , ti , ot < 1. + s là hàm sigmoid. + Cỏc thành phần b (gồm b h , b i, b, f b c , b o ) biểu diễn cỏc vộc to dộ lệch (bias) tuong ứng (vớ dụ: bh là vộc to dộ lệch trạng thỏi ẩn).
+ Cỏc thành phần W biểu diễn cỏc ma trận trọng số học tuong ứng (vớ dụ: Wxh
là ma trận trọng số học trạng thỏi ẩn dầu vào).
2.1.4.2. Mạng biLSTM
Việc dự doỏn chớnh xỏc một từ trong một doạn van bản phụ thuộc khụng chỉ vào cỏc thụng tin phớa truớc của từ dang xột mà cũn phụ thuộc vào cỏc thụng tin phớa sau. Tuy nhiờn, kiến trỳc mạng LSTM một chiều chỉ cú thể dự doỏn từ hiện tại dựa trờn thụng tin của cỏc từ phớa truớc nú bằng cỏch dọc cõu dầu vào theo trỡnh tự từ dầu dến cuối (từ diểm dầu tiờn x 1 dến diểm cuối xJ). Do dú, mạng biLSTM [88] duợc dề xuất dể tổng hợp mỗi từ khụng chỉ thụng tin của từ phớa truớc mà cũn cả thụng tin của từ phớa sau từ dú.
Hỡnh 2.7 biểu diễn kiến trỳc tổng quan của mạng biLSTM bao gồm: mạng LSTM chiều tiến và mạng LSTM chiều lựi.
Hỡnh 2.7. Kiến trỳc tổng quan của mạng biLSTM [88]
- Chiều tiến h : Mạng LSTM dọc cõu dầu vào theo thứ tự (từ x 1 dến xJ) và tớnh toỏn trạng thỏi ẩn (h h 1 , ,...,2 hJ).
- Chiều lựi h : Mạng LSTM dọc cõu dầu vào theo thứ tự nguợc lại (từ xJ quay lui về x 1 ) và tớnh toỏn trạng thỏi ẩn (h h 1 , ,...,2 hJ).
Trạng thỏi ẩn ht cho mỗi từ x t (với t =1,J ) duợc xỏc dịnh bằng việc ghộp nối
t
h và ht duợc biểu diễn nhu sau: h t = ⊕()h ht t
Hỡnh 2.8. Minh họa biLSTM ở 3 buớc (t-1), t và (t+1) [91]
Hỡnh 2.8 minh họa biLSTM ở 3 buớc (t-1), t và (t+1). Ở mỗi buớc t, biLSTM tớnh toỏn chuỗi ẩn theo chiều tiến h t (với t = 1, 2,…,J-1, J), chuỗi ẩn theo chiều lựi
t
h (với t = J, J-1, …,1), chuỗi dầu ra y t và cập nhật lớp dầu ra: 1 (W W ) t x h t h h t h h = H x + h − +b (2.13) 1 (W W ) t x h t h h t h h = H x + h + +b (2.14) (W t W t ) t hy hy y y = H h + h b+ (2.15) 2.1.4.3. Mạng GRU
Mạng GRU [89,90] duợc phỏt triển dể nắm bắt phụ thuộc xa và khắc phục vấn dề biến mất dộ dốc (vanishing gradient) thuờng xảy ra khi huấn luyện RNN. Mạng GRU bao gồm một tập cỏc tế bào nhớ GRU duợc kết nối hồi quy. Một tế bào nhớ GRU cú hai cổng diều khiển dú là: cổng cài dặt lại (reset gate) và cổng cập nhật (update gate) duợc kết hợp từ cổng quờn (forget gate) và cổng vào (input gate) của tế bào nhớ LSTM, kết hợp trạng thỏi nhớ (cell state) và trạng thỏi ẩn nờn kiến trỳc của tế bào nhớ GRU don giản hon tế bào nhớ LSTM, duợc biểu diễn nhu trong Hỡnh 2.9. Cổng cài dặt lại xỏc dịnh thụng tin cần phải quờn trong trạng thỏi ẩn của buớc truớc dú. Khi giỏ trị của cổng cài dặt lại gần bằng 0, thụng tin của buớc truớc dú sẽ bị quờn. Khi giỏ trị gần bằng 1, thụng tin ẩn của buớc truớc dú duợc giữ lại trong thụng tin nhớ hiện tại. Cổng cập nhật xỏc dịnh thụng tin ở trạng thỏi ẩn tại buớc truớc dú sẽ duợc dua vào trạng thỏi ẩn hiện tại. Khi giỏ trị của cổng cập nhật gần bằng 0, thụng tin ở trạng thỏi ẩn tại buớc truớc dú sẽ bị quờn. Khi giỏ trị gần bằng 1, thụng tin duợc giữ lại trong trạng thỏi ẩn hiện tại.
Trong Hỡnh 2.9, x là dầu vào của mạng hiện tại, z là cổng cập nhật, r là cổng cài dặt lại, h ghi lại tất cả cỏc thụng tin quan trọng thụng qua cổng cài dặt lại và thụng tin dầu vào, h là trạng thỏi ẩn hiện tại.
Hỡnh 2.9. Chi tiết tế bào nhớ GRU [89]
Tại buớc t, cỏc giỏ trị này duợc tớnh toỏn theo cỏc cụng thức sau: 1 x (W W ) t zh t z t z z = σ h − + + (2.16) x b 1 x (W W ) t rh t r t r r = σ h − + + (2.17) x b 1 tanh(W W ( ) ) t hx t hh t t h h = x + r h ⊗ + (2.18) − b 1 (1 ) t t t t t h z = ⊗ + − ⊗h (2.19) z h− trong dú:
+ ⊗ là phộp nhõn ma trận Hadamard (phộp toỏn nhõn element-wise). + s là hàm sigmoid.
+ Cỏc thành phần b (gồm b h , b r , b z ) biểu diễn cỏc vộc to dộ lệch tuong ứng (vớ dụ: bh là vộc to dộ lệch trạng thỏi ẩn).
+ Cỏc thành phần W biểu diễn cỏc ma trận trọng số tuong ứng (vớ dụ: Wzh là ma trận trọng số trạng thỏi ẩn cập nhật).
2.1.4.4. Mạng biGRU
Mạng GRU hai chiều (biGRU - Bidirectional GRU) [89,90] duợc cải tiến với kiến trỳc hai lớp. Kiến trỳc hai lớp này cung cấp cho lớp dầu ra của mạng cỏc thụng tin hoàn chỉnh theo ngữ cảnh của thụng tin dầu vào tại mỗi buớc. Kiến trỳc tổng quan của mạng biGRU cung giống nhu kiến trỳc của mạng biLSTM gồm mạng theo chiều tiến và mạng theo chiều lựi nhung chỉ khỏc là mỗi mạng này là mạng GRU thay vỡ mạng LSTM nhu trong mạng biLSTM.