6 Ứng dụng
4.3 Biểu diễn toán học của cơ chế Self-attention
Trong Hình 4.3, X là chuỗi đầu vào và ba giá trị Q (Query - Truy vấn), K (Key - Từ khóa), vàV (Value - Giá trị) sẽ được tính từX. Trong đó:
• Query vector: Chứa thơng tin của từ được tìm kiếm và so sánh.
• Key vector: Biểu diễn thơng tin các từ được so sánh với từ cần tìm kiếm ở trên.
• Value vector: Biểu diễn nội dung, ý nghĩa của các từ.
Có thể nhận xét rằng cơ chế Self-attention giống như cơ chế tìm kiếm. Với một từ cho trước, cơ chế này sẽ cho phép mơ hình tìm kiếm trong các từ cịn lại, từ nào “giống” để sau đó thơng tin sẽ được mã hóa dựa trên tất cả các từ trên. Cụ thể hơn, q trình tính tốn các vector tập trung có thể được tóm tắt làm ba bước như sau:
• Bước 1: Tính ma trận query, key, value bằng cách khởi tạo ba ma trận trọng số query, key, value. Sau đó nhân đầu vào X với các ma trận trọng số này để tạo thành ba ma trận tương ứng.
• Bước 2: Tính trọng số tập trung (attention weights). Nhân 2 ma trận key, query vừa được tính ở trên với nhau với ý nghĩa là so sánh giữa câu query và key để học mối tương quan. Sau đó thì chuẩn hóa về đoạn [0−1] bằng hàm softmax. Kết quả bằng 1 có nghĩa là câu query giống với key, 0 có nghĩa là khơng giống.
• Bước 3: Tính đầu ra. Nhân trọng số tập trung với ma trận value. Điều này đồng nghĩa với việc biểu diễn một từ bằng trung bình có trọng số (attention weights) của ma trận value.
Khi cả Query, Key và Value đều được lấy ra từ cùng một chuỗi đầu vào X thì cơ chế này sẽ được gọi là Tự tập trung (Self-Attention).
Công thức của cơ chế tự tập trung:
AttentionQ,K,V =sof tmax
QKT √ dk V (4.1) trong đó dk là số chiều dài của vectorK.
Hướng tiếp cận 44
4.1.2.2 Cơ chế tự tập trung đa đầu
Mục đích của cơ chế tập trung đa đầu (Multi-Head Self-Attention) là nhằm kết hợp các kiến thức khám phá được bởi nhiều đầu (head) chứ khơng phải chỉ một như những cách làm trước đây (Hình 4.4).
Hình 4.4: Scaled Dot-Product Attention (trái). Multi-Head Attention gồm nhiều lớp tập trung chạy song song (phải) (nguồn [16])
Hình 4.5: Minh họa một multi-head self-attention gồm có hai đầu1
Hình 4.5 minh họa cho một multi-head self-attention gồm có hai đầu. Trong đó query là từ “it” cịn đầu thứ nhất tập trung chủ yếu vào “the animal” và đầu thứ hai tập trung chủ yếu vào “tired”. Như vậy ngữ cảnh cuối cùng của cơ chế tự tập trung này sẽ tập trung vào cả ba từ “the”, “animal” và “tired” và sẽ cho một kết quả tốt hơn so với việc ta chỉ sử dụng một đầu duy nhất (tồn bộ câu) như bình thường.
Hướng tiếp cận 45
4.1.2.3 Masked Attention
Masked Attention vẫn là cơ chế tập trung đã được chúng tôi đề cập ở trên. Tuy nhiên trên thực tế, trong suốt q trình kiểm tra chúng ta khơng biết trước toàn bộ nhãn của dữ liệu như ở quá trình huấn luyện. Tại bước kiểm tra chúng ta chỉ được biết kí tự bắt đầu và kí tự kết thúc, và khơng có cơ sở để so sánh đối với các kí tự chưa được dự đốn đến. Vì vậy điểm khác biệt của masked attention so với attention bình thường là che đi các kí ở tương lai chưa được mơ hình dự đốn đến, để làm việc này thì cần nhân với một vector chứa các giá trị 0 hoặc 1. Masked attention được thể hiện ở Hình 4.6 và sự khác nhau giữa self-attention với masked self-attention được thể hiện ở Hình 4.7.
Hình 4.6: Attention mask
Hình 4.7: So sánh self-attention với masked self-attention2
4.1.2.4 Bộ mã hóa
Bộ mã hóa (Encoder) (Hình 4.8) của mơ hình Transformer có thể bao gồm nhiều khối mã hóa tượng tự nhau. Mỗi khối mã hóa lại bao gồm hai thành phần chính là multi-head attention đã được trình bày ở Tiểu mục 4.1.2.2 và mạng lan truyền thuận. Ngồi ra cịn có cả skip connection và lớp normalization, các kiến thức này sẽ được chúng tơi giải thích kỹ hơn ở phần kiến trúc chi tiết của mơ hình tổng qt.
2
Hướng tiếp cận 46
Hình 4.8: Khối encoder của mơ hình Transformer (nguồn [16])
4.1.2.5 Bộ giải mã
Kiến trúc của bộ giải mã (Decoder) (Hình 4.9) gần như giống với bộ mã hóa, ngoại trừ có thêm một khối multi-head attention nằm ở giữa và khối multi-head attention đầu tiên có áp dụng thêm một lớp mặt nạ (masked) vào. Đối với khối multi-head attention ở giữa theo bình thường sẽ nhận vào Q, K, V nhưng tại đây sẽ nhận K, V là đầu ra của lớp cuối cùng của bộ mã hóa. Kết quả đầu ra của bộ giải mã sẽ được đưa qua một lớp tuyến tính để chuyển về cùng số chiều của lớp nhúng (ouput embedding) trong bộ giải mã, và sau đó cho qua một lớp softmax để chia xác suất của chúng.
Hình 4.9: Khối decoder của mơ hình Transformer (nguồn [16])
4.1.2.6 Tổng kết về mơ hình Transformer
• Transformer là một mơ hình dựa trên kiến trúc Encoder - Decoder với cơ chế Self-attention (multi-head attention).
• Tầng tập trung đa đầu gồm có n tầng tập trung song song.
• Mạng lan truyền thuận theo vị trí gồm hai tầng kết nối đầy đủ được áp dụng trên chiều cuối cùng.
Hướng tiếp cận 47
4.2 Chi tiết kiến trúc mơ hình tổng qt4.2.1 CNN Embedding 4.2.1 CNN Embedding
Bước này chúng tơi sẽ tiến hành trích xuất đặc trưng từ ảnh ba chiều. Chúng tơi đã tái sử dụng kiến trúc CNN như là VGG đã được huấn luyện trên dữ liệu ImageNet và áp dụng transfer learning.
ã u vo: nh ba chiu cú kớch thcHìW, trong đóH vàW lần lượt là chiều cao và chiều rộng của ảnh. Hình ảnh đầu vào sẽ khơng bị giới hạn về kích thước do sau đó sẽ có bước tiền xử lý để hình phù hợp với kiến trúc mơ hình.
• Đầu ra: Các vector đặc trưng (feature maps): F(row, col) =f for f ∈Rdi với di
là chiều của vector đặc trưng sau khi được trích xuất bởi mạng CNN, 1 ≤ H′, 1≤W′ với H′ và W′ là chiều cao và chiều rộng của ảnh sau khi được giảm mẫu (down sampled).
Hình 4.10: Ví dụ về trích xuất đặc trưng
4.2.2 Mã hóa vị trí
Trong suốt q trình huấn luyện, bởi vì cơ chế Self-attention trong bộ giải mã khơng có bất kỳ kết nối lặp lại nào nên nó khơng quan tâm đến vị trí của mỗi ký tự dẫn đến mất thơng tin của chuỗi. Do đó, sự tập trung khơng tính đến vị trí của các ký tự trong một từ hay trong một câu dẫn đến khơng có mối tương quan giữa các vị trí trong chuỗi, nên nó có thể mất đi tính tuần tự trong câu.
Để khắc phục nhược điểm đáng kể này, tác giả của mơ hình Transformer đã đề xuất một phương pháp đó là mã hóa vị trí (Positional encoding), tức là nó sẽ thêm vào vector đầu ra của Embedding để tạo ra tính tuần tự cho câu nhưng vẫn sử dụng Self-attention được. Công thức của Position Encoding (PE) được thể hiện như sau:
P E(pos,2i) = sin pos 10000dmodel2i , P E(pos,2i+1)= cos pos 10000dmodel2i (4.2)
Hướng tiếp cận 48
trong đó dmodel là kích thước Embedding của đặc trưng ảnh và text, pos là vị trí của từ đó trong chuỗi vài là vị trí chiều.
Tiếp theo, mã hóa vị trí sẽ thêm vào chuỗi đầu vào một phần tử như sau:
X =X+P E (4.3) Đối với hình ảnh, chúng tơi đã đề xuất một Positional Encoding 2D giống như cách tiếp cận ở trên, xem mỗi hàng là một chuỗi. Khi đó, mỗi hàng có cùng một mã hóa vị trí. Do đó, thơng tin vị trí của các pixel trong cùng một cột là giống nhau và giữa các cột khác nhau thì khác nhau.
4.2.3 Mạng lan truyền thuận theo vị trí
Mạng lan truyền thuận theo vị trí (position-wise feed-forward network) là một thành phần quan trọng của Transfomer. Đây là một kỹ thuật để nâng cao vector ngữ cảnh, vector đầu ra của lớp tập trung, là cho nó đi qua một mạng neuron lan truyền thuận (feed-forward network). Mạng này được áp dụng trên từng bước và khác nhau giữa các lớp.
Cuối cùng, mỗi bước ci ∈Rdmodel của đầu ra của multi-head attention thì cung cấp tiếp cho mạng neuron truyền lan truyền thuận:
F F N(ci) = max(0, ciW1+b1)W2+b2 (4.4) Trong đó W1, W2, b1, b2 được học trong suốt quá trình huấn luyện.
4.2.4 Lớp add và norm
Kết quả đầu ra của lớp Self-attention sẽ được đưa vào các lớp feed-forward như đã đề cập. Tuy nhiên, trong mơ hình Transformer thì xen giữa chúng là những lớp add và norm, và đây chính là lớp normalize vector sử dụng thêm residual connection. Residual connection sẽ có nhiệm vụ cộng đầu vào với đầu ra ở những lớp trước đó thay vì dùng normalize bình thường kết quả đầu ra, để đưa vào lớp normalize nhằm có thể hạn chế những đặc trưng khơng mang nhiều ích lợi và tránh việc bị overfit. Nó cũng là cách để mơ hình có thể tăng số lượng lớp mà khơng sợ bị vấn đề biến mất đạo hàm.
Công thức của các khối add và norm được định nghĩa như sau:
y=x+LayerN orm(x) (4.5)
4.2.5 Hàm mất mát và optimizer
Tại thời gian dự đoán của mơ hình, chúng tơi sử dụng các tham số của mơ hình đã được huấn luyện để dự đốn từng ký tự tại mỗi bước. Do đó, chúng tơi sử dụng
Hướng tiếp cận 49
hàm mất mát Cross-Entropy, công thức của hàm được định nghĩa như sau:
L Y , Y˜ =−1 T T X t |L| X c
Ytclog ˜Ytc (4.6) Ví dụ Y˜ = [˜y1,˜y2]T, Y = [y1,y2]T, |L|= 3, biết rằng: ˜ Y = " 0.2 0.1 0.6 0.1 0.1 0.7 0.1 0.1 # , Y = " 0 0 1 0 0 1 0 0 #
Thì hàm mất mát sẽ được tính như sau:
L Y , Y˜ = − 12 2 X t=1 4 X c=1
Ytclog ˜Ytc
= − 1
2(0×log(0.2) + 0×log(0.1) + 1×log(0.6) + 0×log(0.1) + 0×log(0.1) + 1×log(0.7) + 0×log(0.1) + 0×log(0.1))
= − 12(log(0.6) + log(0.7)) = (−0.2218−0.1549) = 0.1884
Để tối ưu hàm mất mát L( ˜Y , Y) chúng tôi sử dụng Adam [10] optimizer.
4.2.6 Label smoothing
Transformer là một mơ hình có đến hàng triệu tham số, nên việc overfitting dễ dàng xảy ra. Vì vậy để hạn chế overfitting, chúng tơi có sử dụng kỹ thuật label smoothing. Kỹ thuật này có thể được hiểu như sau, thay vì mã hóa nhãn là một one-hot vector, thì lúc này chúng tôi sẽ thay đổi nhãn này bằng cách phân bố một phần nhỏ xác suất vào các trường hợp còn lại.
4.2.7 Giải mã ký tự
Trong q trình dự đốn, hệ thống phải dự đốn các ký tự từng bước một. Tại bước này chúng tôi tiếp cận theo giải thuật tham lam (Greedy algorithm). Tham lam là một cách tiếp cận đơn giản, chỉ cần chọn kí tự có xác suất cao nhất trong ký tự ở mỗi bước, sau đó ghép nối với các bước trước đó để tạo ra chuỗi đầu ra. Quá trình này được lặp lại cho đến khi đạt độ dài tối đa của chuỗi hoặc gặp kí tự kết thúc. Khi đó, phân phối xác suất ký tự ở bước t, tức là yt, đầu ra tương ứng˜ ytˆ được tính bằng cơng thức (4.7).
ˆ
Hướng tiếp cận 50
4.3 Q trình huấn luyện và kiểm tra mơ hình
Trong phần này, chúng tơi tóm tắt kiến trúc và luồng dữ liệu trong giai đoạn huấn luyện và kiểm tra.
4.3.1 Huấn luyện
Trong quá trình huấn luyện, hệ thống sẽ lần lượt nhận vào từng cặp gồm hình và nhãn tương ứng của nó (Hình 4.11).
Mục đích của giai đoạn huấn luyện là tối ưu hóa các tham số của mơ hình bằng hàm mất mát thơng qua dữ liệu hình ảnh và nhãn của chúng đã được cung cấp. Sau đó, bộ tham số này được sử dụng để phục vụ cho quá trình kiểm tra trên dữ liệu mới.
Hình 4.11: Tổng quan q trình huấn luyện của mơ hình
4.3.2 Kiểm tra
Khơng giống với giai đoạn huấn luyện mơ hình, nhãn của dữ liệu sẽ khơng được cung cấp trong suốt quá trình kiểm tra. Tại giai đoạn này, tham số của mơ hình đã được học qua quá trình huấn luyện được sử dụng để dự đốn đầu ra với đầu vào là một ảnh chứa dữ liệu chữ (Hình 4.12).
Hướng tiếp cận 51
4.4 Hậu xử lý
Hậu xử lý (post-processing) là bước được thực hiện sau khi đã nhận được kết quả dự đốn từ mơ hình. Từ kết quả dự đốn đã có, chúng ta sẽ tiến hành xử lý trực tiếp trên đó để đạt được kết quả mong muốn (Hình 4.13).
Cụ thể đối với bài tốn đang xử lý, sau khi đã nhận được kết quả dự đốn của mơ hình nhận dạng chữ viết tay tiếng Việt, chúng tơi nhận thấy rằng nhiều trường dữ liệu không đồng nhất với nhau về mặt định dạng. Ví dụ như dư khoảng cách hoặc dấu thanh đặt sai vị trí trong khi ngữ nghĩa của chúng là không khác nhau. Nhận thấy những điều đó, chúng tơi tiến hành chuẩn hóa các kết quả dự đốn được về một số quy tắc nhất định. Ví dụ đối với số điện thoại thì chúng tơi chỉ giữ lại các ký tự là số, khơng có khoảng cách giữa các số. Đối với một chuỗi bình thường, chúng tơi loại bỏ các kí tự thừa ở giữa các kí tự trong chuỗi. Một số trường hợp nhập nhằng cách đặt dấu thanh theo kiểu cũ và mới, ví dụ như “ịa” hay “ồ” thì chúng tơi cũng chuẩn hóa về cùng một cách.
Hình 4.13: Một số trường hợp trước và sau khi thực hiện hậu xử lý
Đối với các trường địa chỉ, về mặt lý thuyết chúng ta có thể chỉnh sửa kết quả dự đoán dựa vào kho dữ liệu địa chỉ chuẩn đã có. Tuy nhiên, với đặc thù của bài tốn đang xử lý thì hiện tại đang khó có thể giải quyết được vấn đề này. Bởi vì ở các trường địa chỉ, người viết viết khá tùy hứng, thay vì tại đó là một địa chỉ cụ thể thì người viết có thể viết là “Tại tịa nhà ABC” hoặc gần một vị địa điểm nào đó hoặc một nội dung bất kì nhưng những thơng tin này trong cơ sở dữ liệu thì khơng sẵn có. Từ đó, chúng tơi chưa có cơ sở chính xác để xử lý tại trường dữ liệu này.
CHƯƠNG 5 THÍ NGHIỆM 5.1 Phương pháp đánh giá
Để đánh giá độ chính xác của hệ thống thì hai phương pháp tỉ lệ lỗi từ (Word Error Rate - WER) vàtỉ lệ lỗi ký tự(Character Error Rate - CER) được sử dụng phổ biến nhất, cả hai phương pháp này đều dựa trên việc tính khoảng cách Levenshtein.
Khoảng cách này có nhiệm vụ tính số lượng thao tác tối thiểu cần thiết để biến đổi chuỗi này thành chuỗi kia, việc tính khoảng cách này được thực hiện một cách hiệu quả thông qua giải thuật quy hoạch động. Một số thao tác có thể có là:
• Thêm (Insertion): Thêm một kí tự vào chuỗi.
• Xóa (Deletion): Xóa một kí tự của chuỗi.
• Thay thế (Substitution): Thay thế một kí tự này bằng một kí tự khác.
Bởi vì số lượng phần tử có thể thêm là khơng giới hạn nên độ đo có thể lớn hơn 1.0. Cơng thức của việc tính khoảng cách được định nghĩa như sau:
ED(pred, label) =nsubstitution+ninsertion+ndeletion (5.1) Trong đó, nsubstitution, ninsertion, ndeletion lần lượt là số lượng từ cần được thay thế, số lượng từ cần được thêm vào, và số lượng từ cần được xóa đi để biến kết quả dự đốn thành chuỗi nhãn (label). Đơi khi, khoảng cách đượcnormalized bằng số lượng từ trong chuỗi nhãn (nitems).
N ED(pred, label) = ED(pred, label)
Thí nghiệm 53
5.1.1 Tỉ lệ lỗi từ
Tỉ lệ lỗi từ (Word Error Rate - WER) là một phương pháp đánh giá hiệu suất phổ biến cho những tác vụ như nhận diện giọng nói, nhận diện chữ viết hay dịch máy. Khó khăn chung cho việc đo lường và đánh giá đó là độ dài của chuỗi dự đốn được có thể khác so với chiều dài nhãn của nó.
Word Error Rate được định nghĩa như sau:
W ER= 1
nwords × X
(pred,label)∈P
ED(pred, label) (5.3)
Trong đó, nwords là số lượng từ trong tập P của toàn bộ tập dữ liệu. Ở mức độ dịng, các từ có thể được phân biệt với nhau bằng một dấu cách. Cần lưu ý rằngWER
có thể lớn hơn 1.0 và khi đánh giá mơ hình có độ đo WER càng thấp thì mơ hình sẽ càng tốt.