52 Trang 8 DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮTKý hiệuÝ nghĩaNLPNatural Language Processing - Xử lý ngôn ngữ tự nhiênTokenizationTách từTransformerMột mô hình mạng nơ ron học sâuBertBidirecti
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
NÔNG HỒNG LANH
NGHIÊN CỨU MÔ HÌNH TRANSFORMER
VÀ ỨNG DỤNG THÊM DẤU TIẾNG VIỆT
LUẬN VĂN THẠC SĨ Chuyên ngành: Khoa học máy tính
Mã số: 8480101
Người hướng dẫn: TS NGUYỄN HÙNG CƯỜNG
Thái Nguyên - 2023
Trang 3LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn sâu sắc tới thầy giáo hướng dẫn TS NguyễnHùng Cường Thầy đã giao đề tài và tận tình hướng dẫn em trong quá trình hoànthành đề tài này
Em xin gửi lời cám ơn của mình tới các thầy cô giáo trong khoa Công nghệthông tin đã giảng dạy và giúp đỡ chúng em trong suốt quá trình học tập tạitrường
Xin chân thành cảm ơn các bạn cùng lớp CHK20 đã đồng hành giúp đỡ tôitrong quá trình học tập
Xin cảm ơn, gia đình, đồng nghiệp tại cơ quan đã động viên, giúp đỡ, khích
lệ tôi hoàn thành khóa học
Thái Nguyên, tháng 9 năm 2023
Học viên
NÔNG HỒNG LANH
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do chính tôi thực hiện, dưới sự hướng dẫn củaTS.Nguyễn Hùng Cường Các kết quả lý thuyết được trình bày trong luận văn
là sự tổng hợp từ các kết quả đã được công bố và có trích dẫn đầy đủ Kết quảcủa chương trình thực nghiệm trong luận văn này được tác giả thực hiện là hoàntoàn trung thực, nếu sai tôi hoàn toàn chịu trách nhiệm
Thái Nguyên, ngày 9 tháng 9 năm 2023
Học viên
NÔNG HỒNG LANH
Trang 5Mục lục
DANH SÁCH HÌNH VẼ 5
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 6
MỞ ĐẦU 7
Chương 1 CƠ BẢN VỀ XỬ LÝ NGÔN NGỮ TỰ NHIÊN 10
1.1 Các khái niệm cơ bản 10
1.1.1 Xử lý ngôn ngữ tự nhiên 10
1.1.2 Xử lý văn bản 12
1.1.3 Chuẩn hóa các token 12
1.2 Biến đổi word2vec 13
1.2.1 Onehot véc tơ 13
1.2.2 Mô hình Skip-Grams 13
1.2.3 Mô hình CBOW 15
1.3 TF-IDF 15
1.3.1 TF 16
1.3.2 IDF 17
1.3.3 TF-IDF 17
1.4 Bài toán thêm dấu tiếng Việt 18
1.4.1 Các công cụ và thư viện cho NLP 18
1.4.2 Xử lý tiếng Việt 19
1.4.3 Bài toán thêm dấu tiếng Việt 19
Chương 2 MÔ HÌNH TRANSFORMER 22
2.1 Cơ chế tập trung 23
2.1.1 Tầng tập trung 23
2.1.2 Kiến trúc tự tập trung 26
2.2 Mô hình seq2seq áp dụng cơ chế tập trung 27
2.2.1 Bộ mã hóa và bộ giải mã trong seq2seq 27
2.2.2 Seq2seq thêm cơ chế tập trung 27
2.3 Kiến trúc Transformer 30
2.3.1 Kiến trúc transformer 30
2.3.2 Các kỹ thuật trong transformer 32
2.3.3 Bộ mã hóa và giải mã trong transformer 35
2.3.4 Huấn luyện transformer 37
Trang 62.4 Mô hình bert 38
2.4.1 Tinh chỉnh bert 38
2.4.2 Mặt nạ ngôn ngữ 39
2.4.3 Các kiến trúc mô hình BERT 41
2.4.4 BERT trong Tiếng Việt 42
2.4.5 Một số kỹ thuật tokennize 44
Chương 3 ỨNG DỤNG TRANSFORMER TRONG BÀI TOÁN THÊM DẤU TIẾNG VIỆT 48
3.1 Chuẩn bị dữ liệu, môi trường thực nghiệm 49
3.2 Cấu hình transformer 50
3.3 Phân tích kết quả 51
3.3.1 Thiết lập mặc định 51
3.3.2 Kết quả khi điều chỉnh mô hình 51
Kết luận 55
Tài liệu tham khảo 56
Phụ lục 58
Trang 7Danh sách hình vẽ
1.1 Kiến trúc mô hình skip-grams 14
1.2 Kiến trúc mạng nơ ron trong mô hình skip - grams 14
1.3 Kiến trúc Cbow 15
2.1 Mô tả tầng tập trung 23
2.2 Cách tính đầu ra của tầng tập trung 24
2.3 Kiến trúc tự tập trung 26
2.4 Quá trình giải mã trong mô hình seq2seq áp dụng cơ chế tập trung 28
2.5 Các tầng trong mô hinh seq2seq áp dụng cơ chế tập trung 29
2.6 Kiến trúc transformer 32
2.7 Kỹ thuật tập trung đa đầu 33
2.8 Kỹ thuật biểu diễn vị trí trong transformer 35
2.9 Minh họa dự đoán ở bước thời gian t của tầng tự tập trung 37
2.10 Tiến trình huấn luyện trước và tinh chỉnh của BERT 39
2.11 Kiến trúc bert base và bert large 41
3.1 Biến đổi sai số qua từng epoch 52
3.2 Sai số trên tập huấn luyện và kiểm tra biến đổi theo epoch của mô hình theo thiết lập 1 52
3.3 Sai số trên tập huấn luyện và kiểm tra biến đổi theo epoch của mô hình theo thiết lập 2 53
Trang 8DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
NLP Natural Language Processing - Xử lý ngôn ngữ tự nhiên
Transformer Một mô hình mạng nơ ron học sâu
Bert Bidirectional Encoder Representations from Transformers Text processing Quá trình xử lý chuỗi văn bản.
whitespaceTokenizer Tách token dựa vào khoảng trắng.
WordPunctTokenizer Tách token dựa trên dấu câu
TreebankWordTokenizer Tách token dựa trên luật ngữ pháp
Word2vec Biến đổi từ thành véc tơ số
Skip-Grams Một mô hình biểu diễn từ bối cảnh thành véc tơ
TF Term Frequency- tần suất xuất hiện của thành phần
tank(x), softmax Hàng tang hypebol, hàm sofmax
Sub-layer, Encoder, Decoder Các tầng con, Quá trình mã hóa, giải mã trong mạng Fully connected Kết nối đầy đủ
Positional Encoding Mã hóa vị trí từ
Scale dot product Tích vô hướng
Bleu score, Encoder, Decoder Các độ đo đánh giá mô hình
Machine Translation Bản dịch, MT
Fine tuning Điều chỉnh, tinh chỉnh mô hình
Embedding Biểu diễn từ, văn bản thành véc tơ.
MLL Mô hình ẩn đi ngẫu nhiên một số từ, thay bằng mask NSP Next Sentence Prediction - Mô hình dự đoán câu tiếp theo Pre processing Tiền xử lý.
Trang 9MỞ ĐẦU
Học máy, học sâu, trí tuệ nhân tạo là lĩnh vực đang thu hút được sự quan tâm của
xã hội nói chung và những nhà nghiên cứu khoa học máy tính nói riêng trongnhững năm gần đây Trong đó, Xử lý ngôn ngữ tự nhiên (NLP) đóng vai trò quantrọng trong nhiều lĩnh vực và có ảnh hưởng lớn đến cuộc sống hàng ngày củachúng ta Trong tương tác Người-Máy, NLP cho phép máy tính hiểu và tương tácvới con người bằng ngôn ngữ tự nhiên Ví dụ, các trợ lý ảo, trình tương tác giọngnói và hệ thống trả lời tự động đều sử dụng NLP để hiểu và đáp ứng các câu hỏihoặc yêu cầu của người dùng Trong dịch máy: NLP giúp máy tính dịch văn bản
từ một ngôn ngữ sang ngôn ngữ khác Công nghệ dịch máy ngày nay sử dụngcác phương pháp NLP tiên tiến như mô hình Transformer để tạo ra các bản dịch
tự nhiên và chính xác NLP còn đóng vai trò quan trọng trong nhiều lĩnh vựckhác như Phân tích cảm xúc, tóm tắt văn bản, trích xuất thông tin, tìm kiếm vàphân Loại
NLP tiếng Việt là một lĩnh vực đang phát triển trong cộng đồng NLP Mặc dùNLP tiếng Anh đã có nhiều nghiên cứu và ứng dụng phát triển, NLP tiếng Việtđặt ra những thách thức riêng do đặc điểm ngôn ngữ và tài nguyên dữ liệu hạnchế Một số vấn đề khó khăn đến từ:
• Tách từ: Tiếng Việt có cấu trúc từ và ngữ pháp phức tạp, đặc biệt là khikhông có dấu Việc tách từ trong tiếng Việt có thể gặp nhiều khó khăn hơn
so với tiếng Anh Có các phương pháp như tách từ dựa trên từ điển, tách từdựa trên quy tắc, hoặc sử dụng các công cụ mã nguồn mở như VnTokenizerhoặc PyViTokenizer
• Xử lý dấu và âm tiết: Tiếng Việt sử dụng dấu để thay đổi ý nghĩa và cách
đọc của từ Để thêm dấu tiếng Việt vào văn bản không dấu, có thể sử dụngcác phương pháp như xác định ngữ cảnh từ vị trí và ngữ nghĩa của từ, hoặc
sử dụng các mô hình NLP tiếng Việt đã được huấn luyện trước
• Xử lý từ đồng nghĩa: Tiếng Việt có nhiều từ đồng nghĩa và từ mang nhiều ý
nghĩa khác nhau Điều này tạo ra thách thức trong việc hiểu và xử lý ngônngữ Các phương pháp sử dụng ngữ nghĩa từ điển, ngữ cảnh hoặc mô hìnhhọc máy có thể được áp dụng để giải quyết vấn đề này
• Dữ liệu huấn luyện và tài nguyên: NLP tiếng Việt gặp khó khăn do tài
nguyên dữ liệu hạn chế so với tiếng Anh Dữ liệu tiếng Việt có thể đượcthu thập từ các nguồn trực tuyến, bao gồm báo chí, diễn đàn và các tài liệu
Trang 10khác Ngoài ra, có một số tài nguyên ngôn ngữ như từ điển, bộ từ loại vàngữ pháp
Bài toán thêm dấu tiếng Việt là một bài toán trong lĩnh vực NLP Mục tiêu củabài toán này là thêm dấu câu và dấu thanh vào các từ tiếng Việt không có dấu đểtạo ra các câu hoàn chỉnh và đúng ngữ pháp
Một số phương pháp giải quyết bài toán này:
• Sử dụng từ điển: Xây dựng một từ điển chứa các từ tiếng Việt không dấu
và tương ứng với các từ tiếng Việt có dấu Khi gặp một từ không có dấu, tra
từ điển để tìm từ có dấu tương ứng
• Sử dụng quy tắc ngữ pháp: Xác định các quy tắc ngữ pháp để xác định vịtrí và loại dấu cần thêm vào các từ Ví dụ, dấu chấm câu thường được thêmvào cuối câu, và dấu thanh có thể được xác định dựa trên ngữ cảnh và từloại của từ
• Sử dụng mô hình học máy: Sử dụng các mô hình học máy như mạng neural,
mô hình Transformer hoặc BERT để học quy luật và cách thêm dấu tiếngViệt Mô hình được huấn luyện trên dữ liệu có dấu và không có dấu để tìm
ra quy tắc và mối quan hệ giữa các từ và dấu trong tiếng Việt
• Sử dụng phương pháp kết hợp: Kết hợp các phương pháp trên để tăngcường hiệu quả và độ chính xác của việc thêm dấu tiếng Việt Kết hợp từđiển, quy tắc ngữ pháp và mô hình học máy có thể giúp xử lý các trườnghợp đặc biệt và đa dạng trong tiếng Việt
Bài toán thêm dấu tiếng Việt có thể gặp khó khăn do sự đa nghĩa của các từ
và sự phụ thuộc vào ngữ cảnh Tuy nhiên, với sự kết hợp các phương pháp và tàinguyên phù hợp, bài toán này có thể được giải quyết một cách khá hiệu quả Vìvậy trong đợt học tập, làm luận văn này em đã chọn đề tài "Nghiên cứu mô hìnhTransformer và ứng dụng thêm dấu tiếng Việt" do thầy TS Nguyễn Hùng Cườnghướng dẫn Luận văn của em gồm 3 chương:
Chương 1: Trình bày tổng quan về NLP và các khái niệm, ứng dụng, hướngnghiên cứu được quan tâm
Chương 2: Trình bày mô hình transformer và một số kỹ thuật học sâu liên quantrực tiếp đến bài toán
Chương 2: Trình bày quá trình ứng dụng mô hình transformer thêm dấu tiếngViệt
Trang 11Tuy đã có nhiều cố gắng nhưng do thời gian và khả năng có hạn nên các vấn
đề trong luận văn vẫn chưa được trình bày sâu sắc và không thể tránh khỏi cónhững sai sót trong cách trình bày Mong được sự góp ý xây dựng của thầy cô vàcác bạn Em xin chân thành cảm ơn!
Trang 12Chương 1
CƠ BẢN VỀ XỬ LÝ NGÔN NGỮ TỰ
NHIÊN
Nội dung chương này em trình bày một số nội dung cơ bản về xử lý ngôn ngữ
tự nhiên làm nền tảng nghiên cứu các nội dung tiếp theo
NLP là một nhánh của ngôn ngữ học, khoa học máy tính và trí tuệ nhân tạoliên quan đến sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người(Ví dụ: Tiếng Anh, Tiếng Việt, ), giọng nói hoặc văn bản.[10]
Những thử thách trong lĩnh vực NLP là: Nhận diện giọng nói, hiểu được ngônngữ tự nhiên của con người và mô phỏng lại ngôn ngữ tự nhiên
NLP có nhiều ứng dụng như [8], [9], [10]:
• Phân tích cú pháp: Phân tích cú pháp giúp hiểu cấu trúc ngữ pháp của câu,
xác định các thành phần cú pháp như danh từ, động từ, cụm từ, và mốiquan hệ giữa chúng
• Phân tích ý: Hướng tiếp cận này nhằm đánh giá và phân loại ý kiến, cảm
xúc trong văn bản Nó có thể xác định xem một bình luận là tích cực, tiêucực hay trung lập
• Dịch máy: Dịch máy tập trung vào việc chuyển đổi văn bản từ một ngônngữ sang ngôn ngữ khác một cách tự động Các mô hình dịch máy sử dụng
cơ sở dữ liệu về các cặp câu đã dịch trước đó để học và áp dụng các quy tắcdịch đối với các câu mới
• Phân tích ngữ nghĩa: Phân tích ngữ nghĩa giúp hiểu ý nghĩa của văn bản.Điều này bao gồm xác định các từ khóa, thực thể, mối quan hệ giữa các từ,
và hiểu được ý nghĩa chung của câu
Trang 13• Tóm tắt văn bản: Hướng tiếp cận này nhằm tạo ra bản tóm tắt ngắn gọn và
ý nghĩa từ một đoạn văn hoặc văn bản dài
• Trả lời câu hỏi: Hướng tiếp cận này nhằm phân tích và hiểu câu hỏi, sau đó
tìm kiếm và trích xuất thông tin chính xác từ nguồn dữ liệu để cung cấp câutrả lời
• Tạo văn bản tự động: Hướng tiếp cận này tập trung vào việc tạo ra văn bản
tự động, bao gồm viết tiêu đề bài báo, tạo nội dung văn bản, viết email, vànhiều ứng dụng khác
• Phân loại văn bản: Hướng tiếp cận này nhằm xác định và phân loại các văn
bản theo chủ đề một cách tự động
NLP được chia thành 2 lĩnh vực chính: Ngôn ngữ học và Khoa học máy tính.Ngôn ngữ học chủ yếu tập trung vào việc hiểu được cấu trúc của ngôn ngữ, baogồm:
• Ngữ âm: Nghiên cứu âm thanh ngôn ngữ của con người
• Âm vị: Nghiên cứu hệ thống âm thanh trong ngôn ngữ của con người
• Cú pháp: Nghiên cứu sự hình thành và cấu trúc của một câu nói.
• Ngữ nghĩa: Nghiên cứu ý nghĩa của câu nói
• Ngữ dụng học: Nghiên cứu cách thức các câu nói với ý nghĩa của chúng
được sử dụng cho các mục đích giao tiếp cụ thể
Trong khi đó Khoa học máy tính lại quan tâm đến việc chuyển đổi các kiến thứcchuyên sâu về ngôn ngữ học thành những chương trình máy tính với sự trợ giúpđắc lực của trí tuệ nhân tạo nhằm phục vụ con người Những tiến bộ về mặt kĩthuật trong lĩnh vực NLP có thể được chia ra thành: Mô hình hệ thống dựa trênquy tắc, mô hình máy học cổ điển và Deep Learning
• Mô hình hệ thống dựa trên các quy tắc sẽ định ra một số các quy tắc dựatrên hiểu biết nhất định về ngôn ngữ học Tuy nhiên, do sự phức tạp củangôn ngữ con người hệ thống này chứng tỏ sự cứng nhắc, do phải luôn cóngười liên tục thêm các quy tắc vào, khó khăn để quản lý và có tính kháiquát hóa thấp
• Mô hình máy học cổ điển có thể giải nhiều bài toán thách thức hơn thông
qua việc trích lọc các đặc trưng bằng cách sử dụng những phương phápnhư Bag of Words, Part of Speech, sau đó xây dựng các mô hình máy họcnhư Support Vector Machine, Naive Bayes, Các mô hình này sẽ khai thác
Trang 14những mẫu câu có ngữ nghĩa trong dữ liệu huấn luyện để đưa ra các dựđoán trong tương lai.
• Mô hình Deep Learning: đang là mô hình phổ biến nhất trong nghiên cứu
và ứng dụng NLP, nó có tính khái quát hóa tốt hơn mô hình máy học cổđiển Khả năng học hỏi của mô hình Deep learning mạnh mẽ hơn so với các
mô hình cổ điển Hướng này mở ra con đường giải quyết được các bài toánNLP phức tạp một cách triệt để
Tách token: Việc tách các token từ một đầu vào được gọi là tokenization Nó
có tác dụng tách đầu vào thành một tập hợp các token riêng biệt Hay còn đượcgọi là các chunks có ý nghĩa Có thể hiểu một chunk có thể là một từ, một cụm
từ, một câu hoặc thậm chí là một đoạn văn Mỗi chunk được gọi là token Có cácphương pháp thực hiện tokenization:
Tách token dựa vào khoảng trắng: Tách các token dựa vào các khoảng trắnghoặc bất kể các ký tự nào không được hiển thị Có thể sử dụng trong python vớithư viện NLTK
Tách token dựa vào dấu câu: Phương pháp này là việc tách các token dựa trêncác dấu câu Phương pháp tokenizer này có sẵn trong thư viện NLTK Nhượcđiểm của phương pháp này đó là sẽ phân tách các token không mang ý nghĩa.Phân tách token dựa vào luật: Để giải quyết vấn đề của phương pháp thứ hai,chúng ta sẽ phân tách token dựa vào một tập hợp các luật ngữ pháp Nó sử dụngcác luật về ngữ pháp trong các ngôn ngữ để thực hiện tokenizer Và nó thực sựmang ý nghĩa cho các token về mặt ngữ nghĩa
Có hai phương pháp để thực hiện chuẩn hóa các token đó là stemming vàlemmazation
Trang 15• Stemming: Thay thế các hậu tố để đạt được định dạng gốc của từ, tức là
stem Nó đến từ ý tưởng cắt bỏ hoặc thay thế các hậu tố của từ Nhược điểmcủa phương pháp này là khi các token bị biến đổi hoàn toàn so với địnhdạng gốc, thì quy tắc này sẽ không còn đúng nữa
• Lemmazation: Sử dụng việc phân tích từ vựng và hình thái.
Giả sử chúng ta có từ điển là tợp hợp gồm n từ vựng: {w1, w2, w3, wn} Khi
đó mỗi từ sẽ được đại diện bởi một giá trị chính là index của nó Từ w1 có index
= 0, w1 có index = 1 One-hot véc tơ của từ vựng thứ i,i ≤ (n−1) sẽ là véc tơ
e i = [0, , 0, 1, 0, , 0] ∈ Rn sao cho các phần tử eij của véc tơ thoả mãn côngthức[10]:
Các nghiên cứu cho thấy từ mục tiêu sẽ được giải thích tốt hơn nếu được họctheo các từ bối cảnh Do đó mô hình skip-grams tìm cách xây dựng một thuậttoán học có giám sát có đầu vào là các từ bối cảnh và đầu ra là từ mục tiêu, như
mô tả trong hình1.1
Ở hình1.1ta có
• w t là từ bối cảnh w t−2 , w t−1 , w t+1 , w t+2là các từ mục tiêu
• Từ từ bối cảnh ta muốn dự báo từ mục tiêu
Kiến trúc mạng nơ ron trong mô hình skip-grams được mô tả như trong hình
1.2 Mô hình sẽ biểu diễn một từ bối cảnh dưới dạng one-hot véc tơ o c Véc tơ này
sẽ trở thành đầu vào cho một mạng nơ ron có tầng ẩn gồm 300 đơn vị Kết quả
ở tầng đầu ra là một hàm softmax tính xác xuất để các từ mục tiêu phân bố vàonhững từ trong từ điển (10000 từ) Dựa trên quá trình lan truyền ngược và lan
Trang 16Hình 1.1: Kiến trúc mô hình skip-grams.
Hình 1.2: Kiến trúc mạng nơ ron trong mô hình skip - grams.
truyền tiến, mô hình sẽ tìm ra tham số tối ưu để kết quả dự báo từ mục tiêu làchuẩn xác nhất Khi đó quay trở lại tầng ẩn ta sẽ thu được đầu ra tại tầng này là
ma trận nhúng E ∈ Rn×300như trong công thức1.2
e c ∈ R300là véc tơ nhúng trích xuất từ ma trận E tương ứng với từ bối cảnh c ˆy
là xác xuất được dự báo của từ mục tiêu
Khi áp dụng hàm softmax, xác xuất ở đầu ra có dạng biểu diễn theo công thức
Trang 17Kết quả dự báo mô hình mạng nơ ron càng chuẩn xác thì véc tơ nhúng sẽ càngthể hiện được mối liên hệ trên thực tế giữa từ bối cảnh và mục tiêu Kết quả cuối
cùng ta quan tâm chính là các dòng của ma trận E Chúng là các véc tơ nhúng e c
đại diện cho một từ bối cảnh
Mô hình skip-grams sẽ rất tốn chi phí để tính toán vì mẫu số xác xuất là tổngcủa rất nhiều số mũ cơ số tự nhiên Để hạn chế chi phí tính toán mô hình CBOW(continueos backward model) được áp dụng CBOW là một quá trình ngược lạicủa skip-grams Khi đó đầu vào của skip-grams sẽ được sử dụng làm đầu ratrong CBOW và ngược lại [8] Kiến trúc Cbow được mô tả như trong hình1.3
Hình 1.3: Kiến trúc CbowKiến trúc mạng nơ ron của CBOW như mô tả trong hình1.3sẽ gồm 3 tầng:
1 Tầng đầu vào: Là các từ bối cảnh xung quanh từ mục tiêu
2 Tầng chiếu: Lấy trung bình véc tơ biểu diễn của toàn bộ các từ input để tạo
Trang 18Cách tiếp cận này được gọi là trích xuất n-grams 1-gram tương ứng với 1 token,2-gram tương ứng với 2 token, và cứ tiếp tục như thế.
Để giải quyết vấn số lượng các đặc trưng có thể tăng lên theo cấp số mũ,chúng ta sẽ loại bỏ một số n-grams dựa trên tần suất xuất hiện của chúng trongtập hợp các câu duyệt đầu vào Có ba trường hợp xảy ra, n-grams có tần suấtxuất hiện cao, n-grams có tần suất xuất hiện thấp, n-grams có tần suất xuất hiệntrung bình [10]
• n-grams có tần suất xuất hiện cao: Trường hợp trong hầu hết các văn bản,chúng ta đều có thể thấy được n-grams này Đối với Tiếng Anh, đó có thể
là các giới từ, (a, an, the, ) Với Tiếng Việt, là các từ thì, là mà, và,cho nên, Và bởi vì chúng ta chỉ sử dụng cấu trúc ngữ pháp, cho nên chúngkhông có ý nghĩa nhiều lắm Chúng được gọi là các từ dừng - stop-words, nókhông thực sự giúp chúng ta phân biệt các đoạn văn bản với nhau Thườngchúng ta sẽ loại bỏ các từ dừng này
• n-grams có tần suất xuất hiện thấp: Là trường hợp thường đến từ lỗi gõ sai
từ người dùng, hoặc là n-grams thường hiếm xuất hiện trong bất kỳ các câuduyệt nào trong tập dữ liệu Cả hai trường hợp này là xấu đối với mô hìnhsau này Bởi vì, nếu chúng ta ko xóa các n-grams này, mô hình có thể sẽ bịquá khớp vào các tiểu tiết tạo nên hiện tượng overfitting và không tổng quáthóa được
• n-grams có tần suất xuất hiện trung bình: Là các n-grams tốt nhất bởi vì
chúng bao gồm n-grams mà không có từ dừng cũng như không có n-grams
bị gõ sai chính tả hoặc hiếm xuất hiện trong tập dữ liệu Vấn đề là trong tậpn-grams có tấn suất xuất hiện trung bình, có rất nhiều n-grams thuộc cácdải tần số xuất hiện khác nhau Ta có thể dựa vào tần số mà có thể lọc đượcn-grams là tốt, n-grams nào là xấu hơn Nếu chúng ta có thể xếp hạng cácn-grams này theo mức độ quan trọng của chúng thì sẽ rất có lợi trong việcphân loại Chúng ta có thể quyết định được n-grams với tần suất xuất hiệntrung bình thì n-grams nào là tốt, n-grams nào là xấu n-grams có tần suấtnhỏ hơn sẽ được đánh trọng số cao hơn vì nó là thể hiện cho các trường hợpriêng biệt trong câu duyệt Để thực hiện được ý tưởng này ở đây, thuật ngữ
TF sẽ được dùng cho việc biểu thị tần suất xuất hiện của n-grams
Chúng ta ký hiệu TF - Term Frequency cho tần suất xuất hiện của thành phần
t Thành phần t ở đây có thể hiểu là môt n-grams token trong một văn bản d Cónhiều cách tính giá trị tần suất xuất hiện tf này [9], [10]
Trang 19Cách đầu tiên và là cách dễ nhất là sử dụng giá trị nhị phân (0, 1) Chúng ta cóthể đưa 0 hoặc 1 vào tương ứng với việc token đấy có xuất hiện hay không xuấthiện trong văn bản đầu vào.
Cách thứ hai là việc đưa vào là giá trị đếm số lần xuất hiện một cách thôngthường, tức là có bao nhiêu lần thấy thành phần t xuất hiện trong văn bản Kýhiệu cho giá trị này là f
Cách thứ ba là tính tống số lần xuất hiện của tất cả các thành phần trong vănbản d Sau đó chia giá trị f này cho tổng vừa tìm được Như vậy chúng ta đãchuẩn hóa giá trị TF về khoảng (0, 1) Chỉ số này cho thấy đối với tổng số lần xuấthiện của tất cả các thành phần thì thành phần t xuất hiện nhiều hay ít
Cách cuối cùng, đó là sử dụng lược đồ chuẩn hóa logarit Điều này sẽ đưa TF
về thang đo logarit và sẽ có thể giúp giải quyết các nhiệm vụ về sau tốt hơn
Một cách khác là tính tần suất xuất hiện đảo ngược của văn bản, viết tắt làIDF - - Inverse Document Frequency [10] Ta ký hiệu N là tổng tất cả các văn bảntrong tập dữ liệu, D là bộ dữ liệu, đó là tập hợp tất cả các văn bản Hiểu đơn giản,một văn bản có thể là một câu duyệt trong tập dữ liệu Bây giờ, chúng ta cần tìm
số lượng các văn bản mà thành phần t xuất hiện trong đó:
|d ∈ D : t ∈ d|Bây giờ, ta có thể thấy rằng, ta có tần suất của văn bản, sau đó, ta lại quan tâmđến số lượng các văn bản nơi mà có sự xuất hiện của thành phần t, và sau đó chia
số lượng này cho tổng N Như vậy ta sẽ có tần xuất xuất hiện của thành phần ttrên toàn bộ tập dữ liệu Từ đây ta có thể đảo ngược thương số này và lấy logarit
Nếu sử dụng cả hai thuật ngữ TF và IDF, ta sẽ được giá trị TF-IDF [10] TF làtần suất xuất hiện của thành phần t trong văn bản d, và IDF là tần suất xuất hiệncủa thành phần t trên toàn bộ tập dữ liệu Giá trị TF-IDF sẽ bằng tích của TF và
Trang 20IDF Nó sẽ cho ta cái nhìn toàn diện trên toàn bộ tập dữ liệu cũng như trên chínhvăn bản chứa thành phần t mà ta đang xét.
Giá trị TF-IDF cao khi mà chúng ta có giá trị TF cao (tức là tần suất xuất hiệncủa thành phần t trên văn bản d cao) và tần suất của các văn bản chứa thànhphần t trên toàn bộ tập dữ liệu thấp (khi tần suất này mà thấp thì giá trị IDF sẽlớn) Điều này phản ánh việc thành phần t gần như chỉ tập trung vào trong vănbản mà ta đang xét, và giá trị TF-IDF cao có tác dụng nổi bật thành phần này này
để phân biệt được văn bản đang xét trong toàn bộ tập dữ liệu
Có nhiều công cụ và thư viện hỗ trợ giải quyết bài toán NLP Một số công cụ
và thư viện chính mà các nhà nghiên cứu và lập trình viên NLP sử dụng [8], [9],[10]:
1 Natural Language Toolkit (NLTK): Đây là một thư viện Python phổ biếncho NLP NLTK cung cấp các công cụ và tài liệu cho các nhiệm vụ như phânloại văn bản, phân tích cú pháp, xử lý ngôn ngữ tự nhiên, và nhiều hơn nữa
2 Stanford CoreNLP: Đây là một bộ công cụ NLP mạnh mẽ do đại học ford phát triển Nó bao gồm các công cụ phân tích cú pháp, phân loại ngữnghĩa, phân giải dạng câu, nhận diện thực thể và nhiều nhiệm vụ khác
Stan-3 spaCy: Đây là một thư viện NLP hiệu suất cao và dễ sử dụng spaCy cungcấp các công cụ cho việc phân tích cú pháp, nhận diện thực thể, tách từ, và
hỗ trợ nhiều ngôn ngữ
4 Gensim: Đây là một thư viện Python cho xử lý và mô hình hóa văn bản.Gensim cung cấp các công cụ cho việc xây dựng mô hình vector từ, môhình hóa chủ đề và tìm kiếm các cụm từ
5 TensorFlow và Keras: Đây là các thư viện phổ biến trong lĩnh vực học sâu(deep learning) Chúng cung cấp các công cụ mạnh mẽ để xây dựng và huấnluyện các mô hình NLP như mạng nơ-ron hồi quy, mạng nơ-ron biến đổi,
và LSTM
6 PyTorch: Đây là một thư viện học sâu khác cho Python, cung cấp các công
cụ mạnh mẽ để xây dựng và huấn luyện các mô hình NLP PyTorch được sửdụng rộng rãi trong cộng đồng nghiên cứu và phát triển AI
7 BERT (Bidirectional Encoder Representations from Transformers): Đây làmột kiến trúc mô hình học sâu tiên tiến cho NLP BERT đã đạt được thành
Trang 21công lớn trong nhiều tác vụ NLP như phân loại văn bản, phân tích ý, và dịchmáy.
1.4.2 Xử lý tiếng Việt
Xử lý ngôn ngữ tự nhiên (NLP) tiếng Việt đòi hỏi các phương pháp và công
cụ tương tự như NLP cho các ngôn ngữ khác, nhưng có một số thách thức đặcbiệt do đặc điểm riêng của tiếng Việt Một số phương pháp và công cụ được sửdụng trong xử lý NLP tiếng Việt [8]:
1 Thư viện PyVi: PyVi là một thư viện Python cho NLP tiếng Việt Nó cungcấp các công cụ cho việc tách từ, xử lý từ viết tắt, phân loại từ loại, và phânloại ngữ nghĩa
2 VnCoreNLP: VnCoreNLP là một bộ công cụ NLP cho tiếng Việt được pháttriển trên nền tảng CoreNLP Nó cung cấp các công cụ cho việc phân tích
cú pháp, phân loại ngữ nghĩa, nhận diện thực thể, tách từ, và các nhiệm vụNLP khác
3 Gensim và FastText: Gensim và FastText là hai thư viện Python cho xử lývăn bản và mô hình hóa từ tiếng Việt Chúng cung cấp các công cụ cho việcxây dựng mô hình vector từ, tìm kiếm các từ gần giống nhau, và phân loạivăn bản
4 Word2Vec và FastText pre-trained models: Có các mô hình Word2Vec vàFastText đã được huấn luyện trước cho tiếng Việt Các mô hình này cungcấp các vector từ đã được học từ dữ liệu tiếng Việt lớn, giúp trong việc biểudiễn từ và tính toán sự tương đồng giữa các từ
5 BERT pre-trained models: Mô hình BERT đã được huấn luyện trước chotiếng Việt, cho phép sử dụng kiến trúc transformer và pre-trained weights
để thực hiện các tác vụ NLP như phân loại văn bản, phân tích ý, và dịchmáy
6 Các bộ từ điển và tài liệu ngôn ngữ: Để xử lý NLP tiếng Việt, cần sử dụngcác tài liệu ngôn ngữ như từ điển, ngữ nghĩa từ điển, dữ liệu từ vựng, vàcác tài liệu văn bản tiếng Việt phong phú khác
Bài toán thêm dấu tiếng Việt trong xử lý ngôn ngữ tự nhiên được gọi là bàitoán gán dấu thanh vào tiếng Việt chưa có dấu Một số phương pháp phổ biến
để giải quyết bài toán này [10]:
Trang 22• Sử dụng từ điển: Một cách đơn giản là sử dụng từ điển chứa các từ tiếng
Việt không dấu và tương ứng với các từ tiếng Việt có dấu Khi gặp một từtiếng Việt không dấu, chúng ta có thể tra từ điển và gán dấu thanh phù hợpcho từ đó
• Sử dụng mô hình học máy: Các mô hình học máy có thể được huấn luyện
để dự đoán dấu thanh trong tiếng Việt Chúng ta có thể xây dựng một môhình phân loại đa lớp hoặc mô hình dự đoán chuỗi để dự đoán dấu thanhcho mỗi từ tiếng Việt không dấu
• Sử dụng mô hình ngôn ngữ: Mô hình ngôn ngữ có thể được sử dụng để
dự đoán từ tiếp theo trong văn bản Chúng ta có thể sử dụng một mô hìnhngôn ngữ tiếng Việt đã được huấn luyện để dự đoán dấu thanh cho từ tiếngViệt không dấu dựa trên ngữ cảnh của câu
• Kỹ thuật xử lý ngữ cảnh: Kỹ thuật này liên quan đến việc xem xét ngữ cảnhcủa từ trong câu để suy ra dấu thanh phù hợp Ví dụ, có thể sử dụng cácquy tắc ngữ pháp và cú pháp tiếng Việt để xác định dấu thanh cho các từkhông dấu
Ngoài ra, đề tài quan tâm nghiên cứu hướng sử dụng BERT, cơ chế tập trungvàtransformer để giải quyết bài toán thêm dấu tiếng Việt Thông thường, bài toán
có thể được thực hiện theo các bước sau:
• Chuẩn bị dữ liệu: Tạo tập dữ liệu huấn luyện gồm các cặp câu tiếng Việtkhông dấu và tương ứng với các câu tiếng Việt có dấu
• Tiền xử lý dữ liệu: Sử dụng thư viện PyVi hoặc các công cụ tách từ khác đểtách từ trong các câu tiếng Việt Đảm bảo cả câu không dấu và câu có dấu
• Tạo dự đoán dấu thanh: Sau khi huấn luyện xong, sử dụng mô hình BERT
để dự đoán dấu thanh cho các câu tiếng Việt không dấu Đầu vào cho môhình BERT là câu không dấu và đầu ra là dự đoán cho từng từ trong câu.Dựa trên các dự đoán này, gán dấu thanh cho từng từ tương ứng trong câukhông dấu
• Đánh giá và điều chỉnh: Đánh giá chất lượng của dự đoán dấu thanh và điềuchỉnh mô hình nếu cần thiết Có thể sử dụng các phép đo như độ chính xác,
Trang 23chỉ số F1 hay độ tương đồng giữa dự đoán và kết quả mong đợi để đánh giá
mô hình
Các cơ chế tập trung và transformer trong mô hình BERT giúp mô hình hiểu và
xử lý ngữ cảnh từ câu xung quanh để dự đoán dấu thanh Cơ chế tập trung chophép mô hình tập trung vào các phần quan trọng của câu, trong khi transformercho phép mô hình học các mối quan hệ phức tạp giữa các từ trong câu Các môhình này sẽ được nghiên cứu chi tiết trong chương 2
Kết luận chương 1: Chương 1 trình bày một số khái niệm cơ bản về NLP NLP
nghiên cứu các cách thức, phương pháp hướng đến mục tiêu máy tính có thểtương tác thông qua ngôn ngữ tự nhiên của con người (tiếng nói, văn bản) Để
xử lý văn bản, có các kĩ thuật điển hình như tách token, tách khoảng trắng, loại bỏdấu câu Để chuẩn hóa token, có các phương pháp là stemming và lemmazation.Trước khi xử lý trong các mô hình, các đơn vị văn bản phải được chuyển hóathành các véc tơ đặc trưng Một số phương pháp biến đổi word2vec là onehot,skip - grams, Cbow Một số kỹ thuật để tinh chỉnh,loại bỏ đơn vị từ thừa cũngnhư đo lường các đơn vị thành phần văn bản có ích hơn trong xử lý, là các độ đo
TF, IDF, TF-IDF
Chương 1 cũng giới thiêu bài toán thêm dấu tiếng Việt, bài toán chính củaluận văn Đây là bài toán gán dấu thanh vào tiếng Việt chưa có dấu Một sốphương pháp cũng như quy trình cơ bản để giải quyết bài toán này được giớithiệu
Luận văn quan tâm nghiên cứu phương pháp sử dụng deeplearning để giảiquyết bài toán thêm dấu tiếng Việt, sử dụng mô hình Bert, cơ chế tập trungvàTransformer Vì vậy các nội dung này sẽ được chuẩn bị trong chương 2
Trang 24Chương 2
MÔ HÌNH TRANSFORMER
Transformer là một kiến trúc mạng nơ-ron tái sử dụng đột phá, được giớithiệu bởi Vaswani et al vào năm 2017 [1] Nó đã đạt được thành công đáng kểtrong nhiều nhiệm vụ NLP như dịch máy, nhận dạng giọng nói, và xử lý ngônngữ tự nhiên
Cơ chế tập trung (attention mechanism) là một phần quan trọng trong former Nó cho phép mô hình tập trung vào các phần quan trọng của đầu vàokhi thực hiện các phép tính Thay vì sử dụng cấu trúc chuỗi truyền thống nhưLSTM hay GRU, Transformer sử dụng cơ chế tập trung để xác định mức độ quantrọng của các từ trong câu đầu vào
Trans-Cơ chế tập trung cho phép mô hình tìm hiểu các phụ thuộc ngữ cảnh giữa các
từ trong câu mà không cần biết vị trí tương đối của chúng Mô hình Transformer
sử dụng ba loại cơ chế tập trung : Tự tập trung (self-attention), tập trung đầu vào(encoder-decoder attention), và tập trung đa đầu (multi-head attention)
Trong cơ chế tự tập trung , một từ trong câu sẽ tương tác với các từ khác trongcùng câu bằng cách tính toán mức độ tương quan giữa chúng Mỗi từ sẽ đượcbiểu diễn bằng một vector nhiều chiều và tính toán các trọng số để xác định mức
độ quan trọng của từ đó đối với các từ khác
Cơ chế tập trung đầu vào sử dụng để kết nối các tầng mã hóa và giải mã trongTransformer Nó cho phép giải mã thông tin từ tầng mã hóa và tập trung đến cácphần quan trọng của tầng mã hóa khi giải mã
Cơ chế tập trung đa đầu (multi-head attention) cho phép mô hình học cáchtập trung đến các khía cạnh khác nhau của đầu vào đồng thời Bằng cách tínhtoán nhiều tự tập trung và kết hợp chúng, mô hình có thể học được nhiều môhình tập trung khác nhau và tăng cường khả năng học tập của mình
Cơ chế tập trung là một thành phần cốt lõi trong kiến trúc Transformer, giúp
mô hình xử lý các mối quan hệ phức tạp trong ngôn ngữ tự nhiên và đạt đượchiệu suất tốt trong nhiều tác vụ NLP
Nội dung chương 2 tập trung vào việc nghiên cứu các kiến thức trên để chuẩn
bị cho chương 3 Các kiến thức được tham khảo trực tiếp từ [1], [2] và [10]
Trang 252.1 Cơ chế tập trung
Cơ chế tập trung có thể hiểu như một quá trình tổng hợp tổng quát, tổng hợpthông tin đầu vào dựa vào các trọng số khác nhau Trọng tâm của cơ chế tậptrung nằm ở tầng tập trung, nơi mà đầu vào được gọi là câu truy vấn (query).Mỗi câu truy vấn khi đi qua tầng tập trung sẽ cho ra đầu ra dựa trên bộ nhớ chứacác cặp khóa-giá trị được lưu trữ trong tầng tập trung Đây chính là bộ nhớ màtầng tập trung sử dụng để thực hiện quá trình tổng hợp Khi bộ nhớ chứa n cặpvéc tơ khóa-giá trị kí hiệu là (k1, v1), ,(kn, vn), trong đó ki ∈Rdk và vi ∈Rdv
Với mỗi vector truy vấn q ∈ Rdq, tầng tập trung trả về đầu ra o ∈ Rd v có kíchthước trùng với kích thước của véc tơ giá trị Tầng tập trung được mô tả chi tiếtnhư hình2.1dưới đây:
Hình 2.1: Mô tả tầng tập trung
Để tính toán kết quả tại tầng tập trung , ta dùng hàm tính điểm alpha để đánhgiá mức độ tương đồng giữa câu truy vấn và các khóa Sau đó với các khóa
(k1, v1), ,(kn, vn),điểm a1, , an tương ứng được tính như sau:
Trang 26Mô tả đầu ra là tổng trọng số của các giá trị được thể hiện trong hình2.2.
Hình 2.2: Cách tính đầu ra của tầng tập trung.
Việc lựa chọn hàm tính điểm khác nhau sẽ tạo ra các tầng tập trung khác nhau.Hai tầng tập trung thường hay được sử dụng là tầng tập trung tích vô hướng vàtập trung Perceptron đa tầng
1 Tầng tập trung tích vô hướng Để tính tích vô hướng, chúng ta phải có giả
sử rằng câu truy vấn có cùng kích thước chiều với khóa, nghĩa là q, ki ∈Rd,với mọi i Điểm trong tầng tập trung được tính bằng tích vô hướng giữa câutruy vấn và khóa, sau đó kết quả này được chia cho√d để loại trừ bớt ảnhhưởng không liên quan của số chiều d lên điểm số Công thức 2.4thể hiệncách tính này
α(q, k) = hq, ki ÷√d (2.4)Với câu truy vấn và khóa đa chiều, sử dụng tích ma trận ta có thể mở rộngnhư sau:
trong đó Q ∈Rm×d là ma trận chứa m câu truy vấn d chiều và K∈ Rn×d là
ma trận chứa n khóa d chiều Kết quả này cho chúng ta toàn bộ m×nđiểmsố
Tầng tập trung tích vô hướng có các ưu điểm sau:
• Khả năng tập trung vào thông tin quan trọng: Tầng tập trung tích vôhướng cho phép mô hình tập trung vào những phần quan trọng trong
dữ liệu đầu vào, giúp nâng cao khả năng trích xuất thông tin quantrọng hơn
• Xử lý các mối quan hệ xa: Tầng tập trung tích vô hướng có khả năngtạo ra mối quan hệ giữa các phần của dữ liệu có khoảng cách xa nhau
Trang 27trong một chuỗi hoặc tương quan giữa các phần trong không gian đachiều.
• Tích hợp thông tin từ nhiều nguồn: Tầng tập trung tích vô hướng có thểtích hợp thông tin từ nhiều nguồn khác nhau và tập trung vào nhữngnguồn quan trọng hơn, giúp mô hình có khả năng học tương quan phứctạp
Tuy nhiên, nó cũng có một số nhược điểm sau:
• Phức tạp về tính toán: Phép nhân ma trận và phép chia trong tầng tập
trung tích vô hướng có thể gây ra một lượng lớn tính toán, đặc biệt khi
áp dụng cho dữ liệu lớn
• Khả năng chịu ảnh hưởng của độ dài chuỗi: Tầng tập trung tích vô
hướng có thể gặp khó khăn khi xử lý các chuỗi có độ dài khác nhau,đặc biệt là khi các mối quan hệ xa xuất hiện
2 Tập trung đa tầng Trong cơ chế này, ta chiếu cả câu truy vấn và khóa lên
không gian Rh bằng các tham số trọng số được học Hàm tính điểm trongtập trung đa tầng được định nghĩa như sau:
Ưu điểm của tầng tập trung perceptron đa tầng:
• Khả năng học mối quan hệ phức tạp: Tầng tập trung perceptron đatầng có khả năng học được các mối quan hệ phức tạp hơn thông quaviệc tổng hợp thông tin từ nhiều "đầu" tập trung khác nhau
• Xử lý dữ liệu đa dạng: Loại tầng tập trung này có khả năng xử lý dữliệu đa dạng, bao gồm cả dữ liệu dạng chuỗi, không gian đa chiều và
ma trận
Các nhược điểm:
• Phức tạp về tính toán: Do sử dụng nhiều "đầu" tập trung, tầng tập trungperceptron đa tầng có thể gây ra lượng tính toán lớn hơn so với tầng tậptrung tích vô hướng
Trang 28• Số lượng tham số lớn: Với nhiều "đầu" tập trung, số lượng tham số
trong tầng tập trung perceptron đa tầng cũng có thể tăng lên, đòi hỏinhiều dữ liệu huấn luyện và quản lý tham số kỹ lưỡng
Kiến trúc tự tập trung (Self-Attention) là một cơ chế quan trọng được sử dụngtrong các mô hình xử lý ngôn ngữ tự nhiên và dãy dữ liệu Được giới thiệu banđầu trong kiến trúc Transformer, self-attention cho phép mô hình tập trung vàocác phần quan trọng của dữ liệu đầu vào một cách linh hoạt Minh họa mô hìnhkiến trúc tự tập trung trong hình2.3
Hình 2.3: Kiến trúc tự tập trungTrong kiến trúc tự tập trung, mỗi phần tử trong dãy đầu vào (chẳng hạn như
từ trong một câu văn) được biểu diễn bằng một vector đặc trưng Quá trình tựtập trung bắt đầu bằng việc tính toán các trọng số tương ứng cho mỗi phần tửdựa trên mức độ quan trọng của nó đối với các phần tử khác trong dãy Các trọng
số này thường được xác định bằng cách tích vô hướng giữa vector đặc trưng củaphần tử đang xét và các vector đặc trưng của các phần tử khác
Sau đó, các trọng số được sử dụng để tạo ra một vector tổng hợp (weightedsum) của tất cả các vector đặc trưng trong dãy đầu vào Vector tổng hợp này chứathông tin quan trọng từ các phần tử khác nhau, dựa trên mức độ ảnh hưởng củachúng Quá trình này giúp mô hình tập trung vào những phần quan trọng và bỏqua những phần không cần thiết
Kiến trúc tự tập trung giúp mô hình tập trung vào những phần quan trọng
Trang 29trong chuỗi đầu vào và đồng thời giảm thiểu tác động của các phần không quantrọng Các kỹ thuật nâng cao như attention multi-head cũng được áp dụng để tối
ưu hiệu suất của kiến trúc tự tập trung trong các tác vụ xử lý ngôn ngữ tự nhiên.Kiến trúc tự tập trung có thể được mở rộng và cải tiến, ví dụ như multi-headself-attention trong kiến trúc Transformer, để cho phép mô hình học và áp dụngnhiều cách tự tập trung khác nhau trong cùng một dãy đầu vào Điều này giúptăng khả năng biểu diễn và hiệu suất của mô hình trong các tác vụ xử lý ngônngữ tự nhiên và dãy dữ liệu
Mô hình seq2seq (sequence to sequence) là một kiến trúc mạng nơ-ron sâuđược sử dụng chủ yếu cho các tác vụ xử lý ngôn ngữ tự nhiên (NLP) như dịchmáy, tạo chú thích ảnh, tạo văn bản tự động, và nhiều tác vụ khác Mô hình nàybao gồm hai thành phần chính: bộ mã hóa (encoder) và bộ giải mã (decoder)
• Bộ mã hóa (Encoder): Thành phần này nhận dữ liệu đầu vào dưới dạngchuỗi, ví dụ như câu văn, và biến đổi nó thành một biểu diễn ngữ cảnhhoặc một vectơ tương thích Bộ mã hóa có thể là mạng nơ-ron RNN nhưLSTM hoặc GRU, hoặc cả mạng nơ-ron đệ quy như Transformer
• Bộ giải mã (Decoder): Thành phần này nhận biểu diễn ngữ cảnh từ bộ mãhóa và bắt đầu tạo ra chuỗi kết quả Bộ giải mã cũng có thể là mạng nơ-ronRNN hoặc Transformer, thường được huấn luyện để dự đoán các phần tửtiếp theo trong chuỗi kết quả cho đến khi đạt được điều kiện dừng hoặc độdài tối đa cho chuỗi đầu ra
Mô hình seq2seq đã đạt được nhiều thành công trong NLP, tạo điều kiện chocác ứng dụng quan trọng như dịch máy và tạo văn bản tự động Tuy nhiên, nócũng có nhược điểm như khả năng mất thông tin khi biểu diễn ngữ cảnh dài,
và khả năng tạo ra kết quả không chính xác khi gặp các từ chưa từng xuất hiệntrong tập huấn luyện
Cơ chế tập trung thêm vào mô hình Seq2Seq một lớp gọi là tầng tập trung.Trong mỗi bước giải mã, tầng tập trung tính toán một trọng số tương ứng chotừng phần của chuỗi đầu vào dựa trên sự tương quan với biểu diễn ngữ cảnhhiện tại ở bộ giải mã Trọng số này được sử dụng để tính trung bình có trọng số
Trang 30của các biểu diễn ngữ cảnh, tạo ra biểu diễn ngữ cảnh tập trung tại mỗi bước giảimã.
Cơ chế tập trung giúp mô hình tự động học cách "tập trung" vào các phầnquan trọng của dữ liệu đầu vào để tạo ra kết quả đầu ra chính xác hơn Điều nàyđặc biệt hữu ích khi xử lý các chuỗi dài hoặc khi tạo ra các biểu diễn ngôn ngữphức tạp
Hình 2.4mô tả kiến trúc mô hình thực hiện mã hóa và giải mã tại bước thờigian t Bộ nhớ trong tầng tập trung ở đây chứa toàn bộ thông tin mà bộ mã hóa
đã học được tại mỗi bước thời gian như đầu ra của bộ mã hóa Trong quá trìnhgiải mã, đầu ra của bộ giải mã ở bước thời gian trước đó được sử dụng như mộttruy vấn Đầu ra của mô hình tập trung có thể được hiểu là thông tin ngữ cảnhcủa chuỗi, phần này nối tiếp đầu vào của bộ giải mã và kết quả cuối cùng đượcđưa vào bộ giải mã
Hình 2.4: Quá trình giải mã trong mô hình seq2seq áp dụng cơ chế tập trung.
Cấu trúc tầng của bộ mã hóa và bộ giải mã của mô hình Seq2seq áp dụng cơchế tập trung được minh họa trong hình2.5dưới đây Trong đó bộ mã hóa và bộgiải mã được hiểu như sau
• Bộ mã hóa Khi sử dụng cơ chế tập trung, bộ mã hóa của seq2seq không
thay đổi Bộ mã hóa của mô hình seq2seq chuyển đổi các chuỗi đầu vào có
độ dài khác nhau thành một vector ngữ cảnh c bằng cách mã hóa thông tin
từ những chuỗi này Thường sử dụng tầng RNN trong bộ mã hóa Với mộtchuỗi đầu vào x1, , xT, trong đó xt là từ thứ t Tại thời gian t sẽ có hai véc
tơ đầu vào cho mô hình RNN là véc tơ đặc trưng Xt của xt và trạng thái ẩn
của bước thời gian trước đó là ht−1 Gọi f là hàm chuyển đổi của các trạngthái ẩn trong RNN, ta có:
Trang 31Hình 2.5: Các tầng trong mô hinh seq2seq áp dụng cơ chế tập trung.
Sau đó, bộ mã hóa lấy thông tin của các trạng thái ẩn và mã hóa thành véc
tơ ngữ cảnh thông qua hàm q như sau:
• Bộ giải mã Với bộ giải mã, ta thêm tầng tập trung MLP có cùng kích thước
ẩn với bộ LSTM trong bộ giải mã Sau đó ta khởi tạo trạng thái của bộ giải
mã bằng cách truyền vào ba đầu ra thu được từ bộ mã hóa:
– Tại mỗi bước thời gian, đầu ra của bộ mã hóa được sử dụng như một
bộ nhớ trong tầng tập trung với các khóa và giá trị tương tự nhau
– Trạng thái ẩn của bộ mã hóa tại thời điểm cuối cùng được dùng làmtrạng thái ẩn ban đầu cho bộ giải mã
– Độ dài hợp lệ của bộ mã hóa được áp dụng để tầng tập trung có khảnăng bỏ qua các mã thông báo đệm có trong đầu ra của bộ mã hóa.Tại mỗi bước thời gian trong quá trình giải mã, trạng thái ẩn của tầng RNNcuối cùng được sử dụng như một câu truy vấn cho tầng tập trung Đầu racủa mô hình tập trung sau đó được ghép nối với vector embedding đầu vào
để đưa vào tầng RNN Mặc dù trạng thái ẩn của tầng RNN cũng chứa thôngtin từ bộ giải mã ở các bước thời gian trước đó nhưng đầu ra của tầng tậptrung sẽ lựa chọn các đầu ra của bộ mã hóa một cách tường minh dựa vàoenc-valid-len nhằm loại bỏ những thông tin không liên quan
Cơ chế tập trung là một phần quan trọng của nhiều mô hình học sâu, đặc biệt
là trong các mô hình mạng nơ-ron hồi quy và mạng nơ-ron transformer Mục tiêuchính của cơ chế tập trung là giúp mô hình tập trung vào các phần quan trọngcủa dữ liệu đầu vào hoặc dữ liệu liên quan trong quá trình xử lý
Trang 32Cơ chế tập trung hoạt động bằng cách định trọng số cho các phần của đầuvào, dựa trên mức độ quan trọng của chúng đối với tác vụ cụ thể Cơ chế này chophép mô hình chọn lọc thông tin quan trọng để xử lý và bỏ qua thông tin khôngquan trọng.
Cơ chế tập trung trong mô hình Transformer hoạt động theo các bước sau: Tạo
Q (query), K (key), và V (value): Mỗi từ đầu vào được biến đổi thành các vectors
Q, K và V Các vectors này được sử dụng để tính toán mức độ tương quan giữacác từ
Tính toán attention score: Bằng cách tính toán sự tương quan giữa Q và K, tathu được các attention scores Những attention scores này cho biết mức độ quantrọng của từng từ đối với từ hiện tại
Tính toán weighted sum (tổng có trọng số): Dùng attention scores để tínhtoán trọng số cho các vectors V Việc này tạo ra một vector kết quả, thể hiện sựtập trung vào thông tin quan trọng
Kết hợp thông tin: Vector kết quả từ bước trước có thể được kết hợp với cácthông tin khác để thực hiện các tác vụ
Mục này giới thiệu về kiến trúc Transformer Đây là một kiến trúc mạng nơron sử dụng trong xử lý ngôn ngữ tự nhiên đặc biệt là trong các bài toán dịchmáy và sinh văn bản Cách thức hoạt động của kiến trúc Transformer tập trungvào hai thành phần chính của mô hình là bộ mã hóa và bộ giải mã Các tính năngđặc biệt của Transformer gồm khả năng tập trung đa đầu và bộ tách kiểu cấutrúc Điều này giúp mô hình hiểu được các mối quan hệ giữa các từ trong câu
Transformer là một thuật toán mạnh mẽ cho xử lý bảng dữ liệu liên tục quence data) trong Deep Learning Nó được giới thiệu bởi Vaswani và các cộng
(se-sự trong bài báo “Attention is All You Need” năm 2017 [1]
Trong kiến trúc Transformer, từng từ trong một câu hay đoạn văn được biểudiễn dưới dạng một vector trong ma trận, và các mối quan hệ giữa những từ nàyđược xử lý thông qua một cơ chế attention Nhờ vào cơ chế này, mô hình có khảnăng hoạt động độc lập với chiều dài của đầu vào và có thể linh hoạt trong việchiểu rõ mối tương quan giữa các từ trong câu, điều này vượt trội so với các môhình truyền thống như RNN hoặc LSTM
Trong hệ thống chatbot GPT, kiến trúc Transformer được áp dụng để xử lý dữliệu văn bản và điều này giúp tìm ra câu trả lời tối ưu nhất cho các câu hỏi từngười dùng Mô hình Transformer của GPT được đào tạo trên một lượng lớn dữ
Trang 33liệu để có khả năng hiểu rõ ngữ cảnh và đưa ra câu trả lời phù hợp nhất cho mỗicâu hỏi từ người dùng.
Transformer là một mô hình mạng nơ ron được dùng trong các nhiệm vụ xử
lý dữ liệu liên tục, như dịch máy, xử lý ngôn ngữ tự nhiên (NLP), và thị giác máytính Kiến trúc này được thiết kế để giải quyết một số vấn đề của các mô hìnhtruyền thống, như việc mất thông tin trong các tầng khi xử lý dữ liệu liên tục.Trong Transformer, dữ liệu liên tục được mã hóa thành các vector đặc trưngqua các tầng mã hóa Các tầng Multi-Head Attention được sử dụng để tính toánmối quan hệ giữa các thành phần trong dữ liệu liên tục, cho phép mô hình tậptrung vào các phần quan trọng và bỏ qua những phần không cần thiết
Sau đó, tầng Feed-Forward và Layer Normalization được áp dụng để tối ưuhóa dữ liệu Những tầng này cung cấp một cấu trúc tuyến tính để mô hình họccác mối quan hệ giữa các thành phần trong dữ liệu liên tục
Cuối cùng, dữ liệu được đưa ra từ mô hình thông qua các tầng đầu ra
Trong cấu trúc của Transformer, không áp dụng mạng CNN (Convolutional
nơ ron Network) hoặc RNN (Recurrent nơ ron Network) truyền thống Thay vào
đó, mô hình sử dụng các lớp tự chú ý (self-attention) và lớp fully-connected forward
feed-Tuy nhiên, kiến thức và kinh nghiệm từ mạng CNN và RNN vẫn được tậndụng trong quá trình xây dựng kiến trúc Transformer Cụ thể, trong quá trìnhhuấn luyện, việc chuyển đổi chuỗi từ thành các vector nhúng (embeddings)tương tự như mạng RNN vẫn được thực hiện Sau đó, các lớp tự chú ý được
áp dụng để học cách kết nối các từ với nhau trong chuỗi, tương tự như cáchmạng RNN học về sự phụ thuộc thời gian giữa các từ
Hơn nữa, tri thức từ mạng CNN cũng được sử dụng bằng cách áp dụng các
bộ lọc (filters) để trích xuất đặc trưng từ đầu vào trước khi đưa vào các lớp tự chú
ý Tuy nhiên, thay vì sử dụng bộ lọc 1D hoặc 2D như trong CNN, Transformer sửdụng cơ chế tự chú ý đa đầu (multi-head attention) để trích xuất thông tin từ cácchuỗi đầu vào
So với mô hình seq2seq sử dụng cơ chế tập trung, Transformer có sự khácbiệt trong cách cơ chế này được tích hợp vào kiến trúc Thay vì sử dụng tầng hồitiếp như trong seq2seq, Transformer thay thế mỗi tầng hồi tiếp bằng một khốiTransformer
Trong bộ mã hóa của Transformer, khối này bao gồm hai thành phần chính
là tầng tập trung đa đầu (multi-head attention) và mạng truyền xuôi theo vịtrí (position-wise feed-forward network) với hai tầng fully-connected dày đặc.Trong bộ giải mã, khối Transformer bổ sung thêm một tầng tập trung đa đầu đểtiếp nhận trạng thái của bộ mã hóa Khối này cũng sử dụng cơ chế cộng và chuẩnhóa khác biệt so với mô hình seq2seq
Trang 34Một điểm nổi bật khác của kiến trúc Transformer là việc xử lý thông tin về
vị trí Trong mô hình này, việc biểu diễn vị trí không phân biệt thứ tự của cácphần tử trong chuỗi được thực hiện bởi tầng tập trung tự (self-attention) khôngphân biệt vị trí Để khắc phục điều này, một tầng biểu diễn vị trí được áp dụng
để thêm thông tin về vị trí vào mỗi phần tử trong chuỗi
Kiến trúc Transformer tạo ra sự khác biệt so với mô hình seq2seq trong cáchtích hợp cơ chế tập trung và xử lý thông tin vị trí, giúp nó đạt được hiệu suất tốthơn trong nhiều tác vụ liên quan đến xử lý ngôn ngữ tự nhiên và dãy dữ liệu.Kiến trúc này được minh họa trong hình2.6
Hình 2.6: Kiến trúc transformer
Tập trung đa đầu (Multi-head Attention) trong kiến trúc mạng Transformer.
Tập trung đa đầu (Multi-head Attention) là một phần quan trọng của kiếntrúc mạng Transformer, được sử dụng để tăng cường khả năng học và biểu diễnthông tin trong dữ liệu đầu vào Kiến trúc này cho phép mô hình học và sử dụngnhiều khía cạnh của tập trung tự trong cùng một lần tính toán, từ đó cải thiệnkhả năng xử lý ngôn ngữ tự nhiên và dãy dữ liệu phức tạp
Trong tập trung đa đầu, mỗi phần tử trong dãy đầu vào (chẳng hạn như từtrong câu) được biểu diễn bởi một vector đặc trưng Mô hình tạo ra nhiều bảnsao của dữ liệu này, mỗi bản sao được sử dụng để học một cách tập trung khácnhau Mỗi bản sao này thể hiện một khía cạnh khác nhau của thông tin tươngquan giữa các phần tử
Các bản sao này sau đó được truyền qua các lớp tập trung đa đầu riêng biệt.Trong mỗi lớp, quá trình tính toán tập trung tự được thực hiện trên bản sao tương