2.3.2.1 Vector hóa câu đầu vào
Cho đến nay máy tính không hi u đượể c ch vi t mà ch c đư c dư i d ng ữ ế ỉ đọ ợ ớ ạ s hóa, vì v y ta c n bi u di n các t ố ậ ầ ể ễ ừ dướ ại d ng vector. Vi c chuy n hóa các t ệ ể ừ thành d ng vector s d ng thu t toán Word2Vec [9], d ạ ử ụ ậ ữ liệu đầu vào s ẽ là các câu c a t p d ủ ậ ữ liệu huấn luy n, thu t toán d a vào v trí và ng c nh các t trong câu ệ ậ ự ị ữ ả ừ để tính toán s ự tương đồng, các t ừ có nghĩa tương đồng ho c b tr cho nhau s ặ ổ ợ ẽ có các vector tương đồng nhau trong không gian t v ng. Có 2 cách ti p c n ừ ự ế ậ Word2Vec là Continuous bag of words (CBOW) và Skip-gram model:
- CBOW: thu t toán d ậ ự đoán từ trung tâm ở giữa câu b ng cách s d ng ng ằ ử ụ ữ c nh c a các t xung quanh t d ả ủ ừ ừ ự đoán.
- Skip-gram model: ngược l i v i CBOW, thu t toán Skip-gram model s d ạ ớ ậ ẽ ự đoán các từ xung quanh t trung tâm ph thu c vào ng c nh c a t ừ ụ ộ ữ ả ủ ừ trung tâm đó trong câu.
2.3.2.2 Thành ph n mã hóa v trí (Positional Encoding) ầ ị
Mô hình Transformer không x lý các t trong câu m t cách tu n t , cho nên ử ừ ộ ầ ự c n mầ ột phương pháp để x lý th t c a các t trong chuử ứ ự ủ ừ ỗi đầu vào. Để giải quyết
bài toán này Tranformer c ng mộ ột vector kích thước b ng word embedding vào ằ
mỗi embedding đầu vào, v i vi c tính toán vector v ớ ệ ị trí ử ụs d ng hàm sinusoid:
Trong đó pos là v trí c a t trong câu, PE là giá tr ph n t th trong ị ủ ừ ị ầ ử ứ i embeddings có độ dài dmodel.
Hàm sin và cosin có dạng đồ thị ầ t n s và t n s này gi m dố ầ ố ả ần ở các chiều l n d n. Hình ớ ầ dưới bi u diể ễn được s ự biến thiên c a màu sủ ắc ở các v trí khác nhau ị c a t trong câu, ủ ừ ở chi u 0, giá tr ề ị thay đổi liên tục tương ứng v i màu sớ ắc thay đổi liên t c, và t n s ụ ầ ố thay đổi này gi m dả ần ở các chi u lề ớn hơn.
Hình 2.3 Minh h a biọ ểu đồ nhi t Positional Encoding ệ 2.3.2.3 Cơ chế ự t chú ý (Seft-Attention)
Cơ chế ự t chú ý hay Self-Attention là cơ chế giúp Transformer tìm ra được s liên quan gi a các t trong câu. Ví d trong câu ự ữ ừ ụ “The animal didn’t cross the street because it was too tired”. T ừ “it” trong câu trên đại di n cho cái gì, ệ “animal” hay “street”, đối với con người thì không khó để trả lời, nhưng lại không đơn giản v i các thu t toán. Seft-Attention cho phép t ớ ậ ừ“it” quan sát các từ ở các v ịtrí khác trong câu để tìm ra s liên quan gi a chúng vự ữ ới nhau. Đối v i các mớ ạng RNN duy trì m t tr ng thái ộ ạ ẩn cho phép nó k t hế ợp v i các t ớ ừ trướ ừ đang xửc t lý, còn đố ới v i Transformer s duy trì m i liên kẽ ố ế ốt đ i với tất cả các t trong câu. ừ
Hình 2.4. Minh h a mọ ức độ liên k t gi a các tế ữ ừ [10]
Khi mã hóa t ừ “it” ạ t i encoder th 2, t ứ ừ “it” liên k t r t m nh v i t ế ấ ạ ớ ừ “animal” và “too tired”.
Để tính được Self-Attention, v i m i t ta s kh i t o 3 tr ng s Wớ ỗ ừ ẽ ở ạ ọ ố Q, Wk, Wv, sau đó nhân ớ v i ma trận đầu vào được 3 ma tr n Q (query), K (key), V (value) ậ v i s chi u b ng nhau và nh ớ ố ề ằ ỏ hơn vector embedding, chiều là 64 trong khi embedding t ừ đầu vào là 512. Bước tiếp theo nhân tích vô hướng ma tr n Q và K ậ r i th c hiồ ự ện kĩ thuật Scaled Dot-Product Attention, t c ứ là chia tích vô hướng 2 mà trận Q và K cho với là chi u c a K, và truy n k t qu qua hàm Softmax. ề ủ ề ế ả
Softmax chuẩn hóa các điểm để chúng là các s ố dương có nhỏ hơn 1. Bước cuối
2.3.2.4 Cơ chế đa đầu chú ý (Multi-Head Attention)
Với mỗi Attention mô hình học được m t ki u liên h gi a các t trong câu, ộ ể ệ ữ ừ để m r ng kh ở ộ ả năng học được nhiều m i liên h ố ệ hơn, tập trung vào các v trí khác ị nhau, Transformer s dử ụng cơ chế Multi-Head Attention, đơn giản là thêm nhiều Seft-Attention. Theo th c nghi m ự ệ chỉ ra r ng t o 8 b ma tr n tr ng s Wằ ạ ộ ậ ọ ố Q, Wk, Wv là phù h p ợ nhất. M i b ỗ ộ được kh i tở ạo ngẫu nhiên, nhân ma tr n vector ậ embedding đầu vào v i 8 b ớ ộ tương ứng ta được 8 ma tr n Head-ậ Attention. Sau đó n i các ma tr n v i nhau và nhân v i ma tr n tr ng s Wố ậ ớ ớ ậ ọ ố o để ra được k t qu có ế ả kích thước b ng v i ma trận embedding đầằ ớ u vào. Ta được công th c: ứ
(2.10) V iớ
2.3.2.5 M ng truy n th ng xuôi theo vạ ề ẳ ị trí
Ma tr n k t qu c a Multi-Head Attention s ậ ế ả ủ ẽ được truy n vào m ng truyề ạ ền thẳng xuôi theo v trí (Position-wise Feed-Forward Networks). T t c các v trí ị ấ ả ị khác nhau đều s d ng chung m t m ng truy n thử ụ ộ ạ ề ẳng và được tính toán song song. M ng truy n thạ ề ẳng này bao g m 2 lồ ớp và được chu n hóa v i ReLu. Các t ẩ ớ ừ đi qua cùng một mạng truy n th ng mề ẳ ột cách độc lập.
(2.11) 2.3.2.6 K thu kỹ ật ết nối phần dư và chuẩ n hóa l p ớ
Trong ki n trúc c a mô hình Transformer, k thu t k t n i phế ủ ỹ ậ ế ố ần dư (Residuals Connection) và chuẩn hóa l p ( yer Normalization) ớ La được s d ng sau ử ụ m i quá trình x ỗ ử lý, 2 k thu t giúp mô hình huỹ ậ ấn luy n nhanh h i t ệ ộ ụ hơn và tránh m t mát thông tin trong quá trình huấ ấn luy n mô hình. Layer Normalization (11) ệ có nhi m v ệ ụ chuẩn hóa d u nh m c i thi n kh ữ liệ ằ ả ệ ả năng hộ ụ ủi t c a mô hình. Với Residuals Connection (12) ngoài vi c giúp h i t tệ ộ ụ ốt hơn còn có nhiệm v giúp mô ụ hình Transformer gi ữ được thông tin v v trí các t trong câu (Position Encodingề ị ừ ) tốt hơn, bởi vì trong quá trình x lý dử ữ ệ li u thông tin v v trí các t s b m t mát ề ị ừ ẽ ị ấ dần.
2.3.3 Thành ph n gi i mã ầ ả
K t qu cế ả ủa thành ph n mã hóa (Encoder) s cho ra các b vector K và V, ầ ẽ ộ tiếp đến thành ph n gi i mã (Decoder) ầ ả thực hi n chệ ức năng giải mã vector c a câu ủ đầu vào thành câu đầu ra, do đó Decoder s nh n thông tin t 2 b vector này c a ẽ ậ ừ ộ ủ Encoder. Ki n trúc D oder r t gi ng v i Encoder, ngo i tr có thêm m t l p con ế ec ấ ố ớ ạ ừ ộ ớ Multi-Head Attention ở giữa dùng để ọ h c m i liên h ố ệ giữ ừ đang các từa t trong câu đầu ra v i các t ớ ừ trong câu đầu vào.
2.3.3.1 K thu Masked Multi-Head Attention ỹ ật
K thuỹ ật Masked Multi-Head Attention hoạt động gi ng Multi-Head ố Attention, nhưng thay vì việc truy n t t c các t ề ấ ả ừ câu đầu ra, Decoder s ẽ che đi các t ừ ở tương lai chưa được mô hình dịch đến và trong quá trình huấn luy n mô hình ệ s t ng d ẽ ự độ ự đoán các từ ị che đi, để làm đượ b c vi c này ệ ở bước Scaled Dot- Product ta c ng k t qu v i m t ma n mask ch a các giá tr âm vô cùng (-inf) ộ ế ả ớ ộ trậ ứ ị và 0. Lý do c a vi c c ng thêm ma trủ ệ ộ ận mask này để khi đi qua Softmax các giá trị âm vô cùng s ở ềẽtr v 0.
2.3.3.2 Cơ chế chú ý c a thành ph n mã hóa và gi i mã ủ ầ ả
Encoder-Decoder Attention hay t m dạ ịch là cơ chế chú ý c a thành ph n mã ủ ầ hóa và gi i mã, hoả ạt động gi ng vố ới cơ chế đa đầu chú ý, ngo i tr ạ ừ việc nó ạ t o ra các ma tr n Q t lậ ừ ớp phía dưới và l y các ma tr n K và V t u ra c a Encoder ấ ậ ừ đầ ủ để ự th c hi n tính toán. Nhi m v c a l p này giúp tệ ệ ụ ủ ớ ạo được m i liên k t gi a các ố ế ữ t ừ ở câu đầu ra v i các t ớ ừ ở câu đầu vào. Đầu ra c a lủ ớp Encoder-Decoder Attention s ẽ đi qua mạng truy n th ng gi ng về ẳ ố ới Encoder.
2.3.3.3 Phân lo i tuy n tính và ạ ế chuẩn hóa d u ữ liệ
Đầu ra c a l p Decoder cu i cùng s ủ ớ ố ẽ đi qua lớp phân lo i tuy n tính (Linear ạ ế Classifier) là m t m ng truy n th ng giúp chuyộ ạ ề ẳ ển đổi thành ma tr n có chiậ ều bằng s t vố ừ ựng mô hình đang sử ụ d ng. Gi s mô hình s d ng 10,000 t v ng, ta s ả ử ử ụ ừ ự ẽ được 1 vector có chiều dài tương ứng v i s t vớ ố ừ ựng. Đầu ra c a l p Linear s ủ ớ ẽ
được truy n vào lề ớp Softmax để ra được k t qu xác xu t trong kho ng t ế ả ấ ả ừ 0 đến 1.
K t qu ế ả đi qua Softmax sẽ dùng để tính xác su t c a t ấ ủ ừ xuất hi n tiệ ếp theo là bao nhiêu, so sánh v i k t qu ta mong mu n s ớ ế ả ố ẽ được giá tr hàm m t mát (Loss ị ấ function) và th c hiự ện bước truyền ngược (backpropagation) để quá trình huấn luy n ệ được di n ra. ễ
2.3 .4 Ưu điểm c a mô hình Transformer v i mô hình RNN ủ so ớ
Trước khi Transformer được giới thi u thì trong x lý ngôn ng t nhiên mô ệ ử ữ ự hình RNN được coi là hiện đại nh t. ấ Mô hình Transformer ra đời đã giải quy t ế được hiện tượng Vanishing Gradient, vấn đề ố ữ c h u mà RNN g p ph i, ặ ả Transformer x lý các t mử ừ ột cách đồng th i ch không ph i t ng t m t nên tờ ứ ả ừ ừ ộ ốc độ ử lý nhanh hơn rấ x t nhi u, và bề ằng kĩ thuật Self Attention và Positional Encoding s không gây mẽ ất mát thông tin trên câu có độ dài lớn, đặc bi t có th ệ ể x lý câu có dài vô hử độ ạn.
Trong bài báo (8), tác gi ả đã thử nghiệm trên t p d u tiêu chu n WMT ậ ữ liệ ẩ 2014 English-German bao g m 4.5 tri u c p câu v i 37000 t v ng và t p dồ ệ ặ ớ ừ ự ậ ữ ệ li u l n WMT 2014 English-French bao g m 36 tri u câu. Ph n c ng th nghi m là ớ ồ ệ ầ ứ ử ệ m t máy tính v i 8 card GPU NVIDIA P100. Mô hình th nghi m trên 2 b d ộ ớ ử ệ ộ ữ liệu là base và big model, v i base model bao g m 6 l p m i b encoder và ớ ồ ớ ỗ ộ decoder, embedding có chi u 512, lề ớp ẩn c a m ng truy n th ng có chi u 2048, ủ ạ ề ẳ ề v i 8 Head-ớ Attention và trên big model cũng có 6 lớp cho m i b encoder và ỗ ộ decoder v i embedding 512 chi u, lớ ề ớp ẩn c a m ng truyủ ạ ền th ng có chi u 4096 và ẳ ề 8 Head-Attention. Thực nghiệm thu được k t qu ế ả như sau:
Hình 5. So sánh Transformer v i các mô hình khác d a trên k2. ớ ự ết qu ả đánh giá của bài báo [8]
Ở ph n d ch t p d li u WMT 2014 English-German, mô hình Transformer ầ ị ậ ữ ệ với big model cho được k t qu t t nh t v i cáế ả ố ấ ớ c mô hình được báo cáo trước đó với hơn 2.0 điểm BLEU, là mô hình tiên ti n nh t vế ấ ới điểm BLEU là 28.4, không những th chi phí ế huấn luyện (training cost) theo điểm FLOPs ch b ng 1/3 so vỉ ằ ới mô hình ConvS2S (là mô hình có điểm FLOPs th p nh t trên t p EN-DE). ấ ấ ậ
Trên t p d u lậ ữ liệ ớn hơn là WMT 2014 English French, điể- m BLUE c a big ủ model đạt được là 41.0 và là cao nh t so vấ ới các mô hình trước đó, v i ớ điểm FLOPs chỉ ằ b ng 1/4 so v i mô hình Deep-Att + PosUnk (là mô hình có FLOPs th p nh t ớ ấ ấ trên t p EN-FR). ậ
T ừ đó có th k t luể ế ận mô hình Transformer đang cho kết qu t t nh t v i thả ố ấ ớ ời gian huấn luy n ệ nhanh hơn đáng kể so v i các mô hình hiớ ện đại nh t hi n nay. ấ ệ
2.4 Mô hình DIET
DIET là vi t t t c a Dual Intent and Entity Transformer [13]ế ắ ủ , là m t mô hình ộ Transformer đa tác vụ ử, x lý c phân loả ại ý định và trích xu t th c th cùng lúc. ấ ự ể Đượ ạc t o b i nhi u thành phở ề ần cho phép chúng ta thay đổi các thành ph n m t ầ ộ cách d dàng. ễ
2.4.1 Đặc trưng hóa câu đầu vào (Featurization)
Câu đầu vào được tách thành các token, token có th là các t ho c các c m ể ừ ặ ụ t ừ phụ thu c vào thu t toán, và thêm m t token __CLS__ (special classification ộ ậ ộ token) ở cuối câu là tổng ủ c a các vector token trong câu có nhi m v tóm t t ý ệ ụ ắ định c a c ủ ảcâu. Mỗi token được đặc trưng hóa với kĩ thuật sparse features, dense feature. Dense features có th là bể ất kì word embeddings được huấn luy n s n ệ ẵ
(Pretrained Embedding). Spare features bao g m one-hot encoding và n-grams (n ồ
<= 5).
Việc s d ng Pretrain Embedding s t t cho quá trình hu n luy nử ụ ẽ ố ấ ệ , nhưng chưa đủ để ử x lý thông tin trong mi n ng d ng c th , ví d t ề ứ ụ ụ ể ụ ừ “chín” có thể là s ố lượng, ho c tính ch t c a thặ ấ ủ ức ăn, thậm chí tên người tùy vào ng c nh c ữ ả ụ thể, do v y s ậ ẽ phải đi qua mạng truy n thề ẳng để huấn luy n ệ mô hình chính xác hơn cũng như chuẩn hóa d liữ ệu đầu ra truy n vào l p ti p theo. ề ớ ế
Điểm đặc bi t là m ng truy n th ng gi ng nhau t t c các v trí. M ng ệ ạ ề ẳ ố ở ấ ả ị ạ truy n thề ẳng thông thường các nơ-ron trong lớp trước được liên kế ết đ n t t c ấ ả các nơ-ron c a l p sau, vi c này khi n quá trình huy n luy n ủ ớ ệ ế ế ệ diễn ra lâu hơn. Ở mô hình DIET s ẽ loạ ỏ ngẫi b u nhiên 80% liên k t gi a các l p giúp th i gian huế ữ ớ ờ ấn luyện nhanh hơn đáng kể.
2.4.2 H c chuy n giao (Transfer Learning) ọ ể
Học sâu đang ngày càng được ph ổ biến và đạt được nh ng thành t u nhữ ự ất định, nhưng để ạ t o ra m t mô hình h c sâu hi u qu c n m t lư ng d li u kh ng ộ ọ ệ ả ầ ộ ợ ữ ệ ổ lồ. Để xây d ng t p d u hu n luy n t ự ậ ữ liệ ấ ệ ừ ban đầu không ph i m t vi c d dàng, ả ộ ệ ễ do v y ậ Transfer Learning đã được ra đời nh m c i thiằ ả ện h n ch này c a quá trình ạ ế ủ h c sâu. ọ
H c chuy n giao (Transfer Learning) là quá trình áp d ng tri thọ ể ụ ức đã được h c t ọ ừ mô hình trước đó, khai thác và tái sử ụng để giả d i quy t m t bài toán mế ộ ới mà không c n xây d ng m t mô hình hu n luy n t ầ ự ộ ấ ệ ừ ban đầu.
Ví d trong bài toán phân lo i chó và mèo. N u hu n luy n tụ ạ ế ấ ệ ừ u, ta c n rđầ ầ ất nhiều d li u mữ ệ ẫu cũng như ấ m t nhi u th i gian hu n luyề ờ ấ ện để đạt được độ chính xác cao. Tuy nhiên n u t n d ng l i các t p d ế ậ ụ ạ ậ ữ liệu đã được huấn luy n s n ệ ẵ (pretrained-model) thì s c n ít ẽ ầ thời gian huấn luyện hơn để đạt được một độ chính xác mong đợi. Thậm chí độ chính xác có th lể ớn hơn so với khi không áp d ng ụ Transfer learning.
Hình 2.7. Minh h a so sánh s d ng và không s d ng h c chuy n giaoọ ử ụ ử ụ ọ ể Trong x lý ngôn ng t nhiên, nhử ữ ự ững mô hình được huấn luy n s n n i tiệ ẵ ổ ếng
như Word2Vec, ConveRT, BERT hay spaCy, giúp vi c hu n luy n Chatbot tr ệ ấ ệ ở
nên đơn giản hơn rất nhi u, thay vì vi c ph i thu thề ệ ả ập hàng trăm nghìn ữd liệu câu tho i, ta ch ạ ỉ việ ậc t n d ng l i nh ng mô hình hu n luy n sụ ạ ữ ấ ệ ẵn đó kế ợt h p d ữ liệu trong miền ứng dụng thu thập được s ẽ đạt được k t qu t t và giế ả ố ảm đáng kể thời gian hu n luy n so v i viấ ệ ớ ệc huấn luy n l i d u t ệ ạ ữ liệ ừ ban đầu. Các mô hình huấn luy n s n nệ ẵ ổi tiếng h ỗ trợ cho Ti ng Vi ế ệt:
- word2vecVN [14]: t p d ậ ữ liệu được hu n luy n trên 7.1GB d u bao ấ ệ ữ liệ g m 1,675,819 t và t ng h p t 97,440 tài li u, s d ng k thu t Word2Vec. ồ ừ ổ ợ ừ ệ ử ụ ỹ ậ