32 Trang 8 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮTNLPXử lý ngôn ngữ tự nhiênWord Representation Biểu diễn từ.TokenizeTách từ.|x|2 Chuẩn 2 của véc tơ, chuẩn EuclideRnKhông gian véc tơ thự
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN THỊ THU HÒA
NGHIÊN CỨU MỘT SỐ KỸ THUẬT NLP
VÀ ỨNG DỤNG PHÂN LOẠI VĂN BẢN 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 Trần Quang Quý
Thái Nguyên - 2023
Trang 2Em xin gửi lời cảm ơn sâu sắc tới thầy giáo hướng dẫn TS.Trần Quang Quý.Thầy đã giao đề tài và tận tình hướng dẫn em trong quá trình hoàn thành đề tàinày.
Em xin gửi lời cám ơn của mình tới các thầy cô giáo trong trường Đại họcCông nghệ thông tin và Truyền Thông - ĐHTN, các thầy cô đã giảng dạy giúp
đỡ em trong quá trình học tập tại trường
Tôi xin chân thành cảm ơn các đồng nghiệp ở cơ quan, trường Cao đẳng LàoCai Cảm ơn gia đình bè bạn đã giúp đỡ tôi hoàn thành luận văn này
Thái Nguyên, ngày 10 tháng 8 năm 2023
Sinh Viên
Nguyễn Thị Thu Hòa
Trang 3LỜ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ẫncủa TS.Trần Quang Quý 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ủachươ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 10 tháng 8 năm 2023
Học viên
Nguyễn Thị Thu Hòa
Trang 4Mục lục
DANH SÁCH BẢNG v
DANH SÁCH HÌNH VẼ v
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vii
MỞ ĐẦU 1
Chương 1 GIỚI THIỆU VỀ XỬ LÝ NGÔN NGỮ TỰ NHIÊN 5
1.1 Các khái niệm cơ bản 5
1.1.1 Xử lý ngôn ngữ tự nhiên 5
1.1.2 Các đơn vị văn bản 5
1.2 Biểu diễn từ 6
1.2.1 onehot vector 7
1.2.2 Word2Vec 7
1.2.3 Glove 9
1.2.4 Biểu diễn t-SNE 10
1.2.5 SVD 11
1.3 Bài toán phân loại văn bản 12
1.3.1 Bài toán phân loại văn bản 12
1.3.2 Một số hướng tiếp cận 13
1.3.3 Một số độ đo mô hình phân loại 14
1.4 Một số thư viện hỗ trợ NLP 15
Chương 2 MỘT SỐ KỸ THUẬT HỌC SÂU TRONG NLP 17
2.1 Kiến trúc Transformer 18
2.1.1 Kiến trúc transformer 18
2.1.2 Mô hình chuỗi sang chuỗi 19
2.1.3 Kiến trúc tự tập trung 21
2.1.4 Các kỹ thuật trong transformer 22
2.1.5 Bộ mã hóa và giải mã trong transformer 25
2.1.6 Huấn luyện transformer 27
2.2 Mô hình bert 28
2.2.1 Tinh chỉnh bert 28
2.2.2 Mặt nạ ngôn ngữ 30
2.2.3 Các kiến trúc mô hình BERT 31
2.2.4 BERT trong Tiếng Việt 31
2.2.5 Một số kỹ thuật tokennize 34
Trang 52.3 Một số mô hình học sâu hiện đại khác 37
Chương 3 ỨNG DỤNG PHÂN LOẠI VĂN BẢN TIẾNG VIỆT 40
3.1 Chuẩn bị dữ liệu 41
3.1.1 Nguồn dữ liệu 41
3.1.2 Đọc và lưu dữ liệu 42
3.1.3 Tokenize nội dung 45
3.2 Thiết lập mô hình mạng 46
3.2.1 Cấu hình mô hình BERT 46
3.2.2 Kiến trúc mô hình 47
3.3 Huấn luyện mô hình 48
3.3.1 Thuật toán huấn luyện mô hình 48
3.3.2 Load mô hình BERT 52
3.3.3 Huấn luyện mô hình 53
Kết luận 55
Tài liệu tham khảo 56
Trang 6Danh sách bảng
3.1 Bảng mô tả dữ liệu huấn luyện 42
3.2 Bảng mô tả dữ liệu test 43
Trang 7Danh sách hình vẽ
1.1 So sánh giữa CBOW và Skip gram 9
2.1 Kiến trúc transformer 20
2.2 Kiến trúc seq2seq 20
2.3 Các tầng trong bộ mã hóa và giải mã 21
2.4 Kiến trúc tự tập trung 22
2.5 Kỹ thuật tập trung đa đầu 23
2.6 Kỹ thuật biểu diễn vị trí trong transformer 25
2.7 Minh họa dự đoán ở bước thời gian t của tầng tự tập trung 27
2.8 Tiến trình huấn luyện trước và tinh chỉnh của BERT 29
2.9 Kiến trúc bert base và bert large 32
3.1 Kiến trúc tinh chỉnh của BERT cho tác vụ phân loại 48
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Word Representation Biểu diễn từ.
|x|2 Chuẩn 2 của véc tơ, chuẩn Euclide
Rn Không gian véc tơ thực n chiều.
Sklearn Thư viện học máy cơ bản trong python.
Word embedding Nhúng từ.
SVD Phân tích ma trận bằng phương pháp suy biến.
PCA Một phương pháp giảm chiều, phân tích thành phần chính Word2vec Một phương pháp đưa từ thành véc tơ.
Layers Các lớp, tầng trong mạng nơ ron.
t-SNE Một thuật toán giảm chiều dùng để biểu diễn từ.
gensim Một thư viện xử lý ngôn ngữ tự nhiên.
Bert Mô hình biểu diễn từ hai chiều ứng dụng Transformer
fine tuning Tinh chỉnh mô hình (tham số)
MLM Mặt nạ LM - tác vụ tinh chỉnh biểu diễn từ
Fully connect Kết nối đầy đủ
SOTA State-of-the-art Kết quả tốt nhất
Roberta Một kiến trúc, thuật toán của facebook trên pytorch.
Trang 9MỞ ĐẦU
Xử lý ngôn ngữ tự nhiên (NLP) đại diện cho một phân nhánh quan trọng tronglĩnh vực Trí tuệ nhân tạo, đặc biệt chú trọng vào việc khám phá sự tương tácgiữa máy tính và ngôn ngữ tự nhiên của con người, bất kể đó là qua hình thứctiếng nói (speech) hay văn bản (text) [1], [2] Mục tiêu vượt qua trong lĩnh vựcnày là giúp máy tính thấu hiểu và thực hiện các nhiệm vụ liên quan đến ngônngữ của con người một cách hiệu quả, bao gồm việc tương tác giữa con người
và máy, cải thiện chất lượng giao tiếp giữa con người và con người, cũng nhưtối ưu hóa quá trình xử lý cả văn bản và lời nói
Xử lý ngôn ngữ tự nhiên có nguồn gốc từ những năm 1940 của thế kỷ 20, trảiqua một hành trình phát triển đa dạng với một loạt phương pháp và mô hình
xử lý khác nhau Các giai đoạn quan trọng bao gồm việc áp dụng các phươngpháp ô-tô-mát và mô hình xác suất vào những năm 1950, việc khai thác ký hiệu
và các phương pháp ngẫu nhiên trong những năm 1970, tiến bộ sử dụng họcmáy truyền thống vào đầu thế kỷ 21, và đặc biệt là sự bùng nổ của học sâu trongthập kỷ gần đây [3], [4]
Xử lý ngôn ngữ tự nhiên có khả năng được phân chia thành hai hướng pháttriển quan trọng, không hoàn toàn độc lập, gồm xử lý tiếng nói (speech process-ing) và xử lý văn bản (text processing) Xử lý tiếng nói tập trung vào việc nghiêncứu và phát triển các thuật toán cũng như chương trình máy tính nhằm xử lýngôn ngữ con người ở dạng tiếng nói (dữ liệu âm thanh) Trong lĩnh vực này,nhận dạng tiếng nói và tổng hợp tiếng nói đứng ra như những ứng dụng quantrọng Nhận dạng tiếng nói liên quan đến việc chuyển đổi ngôn ngữ từ dạngtiếng nói sang dạng văn bản, trong khi tổng hợp tiếng nói thực hiện chuyểnngôn ngữ từ dạng văn bản thành tiếng nói
Xử lý văn bản tập trung vào việc phân tích dữ liệu văn bản Các ứng dụngquan trọng trong lĩnh vực này bao gồm tìm kiếm và truy xuất thông tin, dịchmáy, tóm tắt văn bản tự động và kiểm tra chính tả tự động Thậm chí, xử lý vănbản có thể tiếp tục được chia thành hai phân nhánh nhỏ hơn, bao gồm hiểu vănbản và sinh văn bản Hiểu văn bản liên quan đến các nhiệm vụ phân tích vănbản, trong khi sinh văn bản liên quan đến việc tạo ra văn bản mới, như trongcác ứng dụng dịch máy hoặc tóm tắt văn bản tự động [4]
Bài toán phân loại văn bản là một trong những bài toán quan trọng tronglĩnh vực xử lý ngôn ngữ tự nhiên Quy trình cơ bản để xây dựng mô hình phânloại văn bản sử dụng các mô hình học máy, học sâu là [4]:
Trang 10• Chuẩn bị dữ liệu: Thu thập và chuẩn bị dữ liệu cho bài toán phân loại vănbản Dữ liệu này gồm các văn bản đã được gán nhãn (label) cho từng loạiphân loại Ví dụ: nếu muốn phân loại email là spam hay không, dữ liệu sẽbao gồm các email đã được gán nhãn là "spam" hoặc "không phải spam".
• Tiền xử lý dữ liệu: Dữ liệu văn bản thường cần được tiền xử lý để loại
bỏ các ký tự đặc biệt, chuyển đổi về dạng chuẩn (ví dụ: chuyển đổi thànhchữ thường), loại bỏ từ dừng (stop words) và thực hiện các quy trình nhưtokenization, stemming hoặc lemmatization
• Trích xuất đặc trưng: Văn bản cần được biểu diễn thành các đặc trưng sốhọc để máy học có thể xử lý Một số phương pháp phổ biến để trích xuấtđặc trưng từ văn bản là sử dụng bag-of-words, TF-IDF (Term Frequency-Inverse Document Frequency), Word2Vec, hoặc BERT (Bidirectional En-coder Representations from Transformers)
• Xây dựng mô hình: Chọn một thuật toán phù hợp để huấn luyện mô hìnhphân loại Các thuật toán phổ biến dùng trong phân loại văn bản bao gồmNaive Bayes, Logistic Regression, Support Vector Machines (SVM), Ran-dom Forest, hoặc các mô hình học sâu như Recurrent Neural Networks(RNNs) và Convolutional Neural Networks (CNNs)
• Huấn luyện và đánh giá mô hình: Sử dụng dữ liệu đã được gán nhãn, huấnluyện mô hình trên tập huấn luyện và đánh giá hiệu suất của mô hình trêntập kiểm tra Các phép đo đánh giá thông thường bao gồm độ chính xác(accuracy), độ phủ (recall), độ chính xác trung bình trọng số (weightedprecision), và F1-score
• Tinh chỉnh mô hình
Bài toán phân loại văn bản tiếng Việt có một số điểm khác biệt so với phânloại văn bản nói chung do đặc thù ngôn ngữ và ngữ cảnh văn hóa Một số điểmkhác biệt quan trọng [9]:
• Ngôn ngữ và Từ vựng: Ngôn ngữ tiếng Việt có các đặc điểm riêng, baogồm cấu trúc ngữ pháp, từ vựng và cách ngữ âm Điều này tạo ra một sốthách thức trong việc biểu diễn từ vựng, xử lý ngữ pháp và thậm chí việcphát hiện từ ngữ mới hay viết sai
• Từ viết tắt và biểu ngữ cụ thể: Ngôn ngữ tiếng Việt thường sử dụng rấtnhiều từ viết tắt, biểu ngữ cụ thể và ngôn ngữ thông tin (ví dụ: "e", "mình",
"mk" thay cho "tôi", "mình") Điều này có thể làm cho việc biểu diễn ngônngữ và phân loại trở nên phức tạp hơn
Trang 11• Sự phong phú về biểu cảm và ngữ cảnh văn hóa: Tiếng Việt thường chứanhiều biểu cảm và ngữ cảnh văn hóa mà mô hình phân loại cần phải hiểu
để đảm bảo tính chính xác cao Các biểu cảm, từ ngữ thể hiện tôn trọng,lịch sự cũng như ngữ cảnh địa phương có thể ảnh hưởng đến kết quả phânloại
• Dữ liệu không đồng nhất: Dữ liệu văn bản tiếng Việt có thể không đồngnhất về cấu trúc và chất lượng Việc tiền xử lý và chuẩn hóa dữ liệu có thểcần thiết để đảm bảo rằng mô hình có thể xử lý đúng và hiệu quả
• Hạn chế tài liệu và nguồn dữ liệu: So với tiếng Anh, tài liệu và nguồn dữliệu tiếng Việt có thể hạn chế hơn Điều này có thể dẫn đến việc khó khăntrong việc huấn luyện và đánh giá mô hình
• Đa dạng chủ đề và ngữ cảnh địa phương: Các chủ đề và ngữ cảnh địaphương trong tiếng Việt có thể khác biệt so với tiếng Anh hoặc các ngônngữ khác Điều này có thể yêu cầu mô hình phân loại hiểu rõ và phản ánhđúng các ngữ cảnh địa phương
Vì vậy trong quá trình làm luận văn, được sự gợi ý của thầy em đã lựa chọn
đề tài: NGHIÊN CỨU MỘT SỐ KỸ THUẬT NLP VÀ ỨNG DỤNG PHÂN LOẠIVĂN BẢN TIẾNG VIỆT để nghiên cứu, tìm hiểu Luận văn bao gồm các nộidung chính sau
Chương 1: Trình bày tổng quan về NLP; Các khái niệm về xử lý ngôn ngữ, cácđơn vị văn bản trong đó Kiến thức tổng quan về các phương pháp biểudiễn từ, chuyển từ và các đơn vị văn bản về vector cũng được đưa ra Bàitoán phân loại văn bản và các hướng giải quyết cũng như các độ đo môhình phân loại cũng được giới thiệu chuẩn bị cho các chương sau
Chương 2: Trình bày một số kỹ thuật học sâu trong NLP, bao gồm mô hìnhmạng Transformer, Bert Đây là các mô hình đóng vai trò quan trọng trongviệc giải quyết bài toán phân loại văn bản nói chung và phân loại văn bảnnói riêng
Chương 3: Trình bày quá trình thực hành phân loại văn bản tiếng việt sử dụngBert và đánh giá kết quả Các bước của quá trình gồm: Chuẩn bị dữ liệu, Tải
mô hình bert đã được đào tạo trước, Xây dựng mô hình phân loại, chuẩn
bị dữ liệu cho fine tuning, fine turning, đánh giá và dự đoán
Tuy đã có nhiều cố gắng nhưng do thời gian và khả năng có hạn Hơn nữa đâyđều là các kiến thức khá mới và khó Vì vậy cho nên các vấn đề trong luận văn
Trang 12có thể chưa sâu sắc và không tránh khỏi có những sai sót trong cách trình bày,cách hiểu Mong được sự góp ý xây dựng của thầy cô và các bạn để em hoànthiện hơn Em xin chân thành cảm ơn!
Thái Nguyên, ngày 10 tháng 8 năm 2023
HỌC VIÊN
NGUYỄN THỊ THU HÒA
Trang 13Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) đóng vai trò
vô cùng quan trọng trong lĩnh vực Trí tuệ nhân tạo (AI), nơi mà ngôn ngữ học,khoa học máy tính và trí tuệ nhân tạo giao thoa một cách chặt chẽ [3], [10] Sựphát triển mạnh mẽ của giao tiếp giữa con người và máy, cùng với việc gia tăngđáng kể của các thiết bị thông minh và các giải pháp dựa trên đám mây, đã thúcđẩy mạnh mẽ cho sự phát triển của ứng dụng NLP Nhiệm vụ cốt lõi của NLP
là xử lý và phân tích khối lượng lớn dữ liệu ngôn ngữ tự nhiên để mô phỏngcác tương tác giữa con người một cách đồng nhất với cách con người tương tác.Các hệ thống NLP hiệu quả có khả năng hiểu rõ nội dung của văn bản, bao gồm
cả tầm quan trọng của các mặt cảm xúc
Trong lĩnh vực trí tuệ nhân tạo, xử lý ngôn ngữ tự nhiên là một phần phứctạp và khó nhất Điều này bởi nó đòi hỏi khả năng hiểu ý nghĩa sâu sắc củangôn ngữ, một công cụ tinh vi và hoàn hảo của khả năng tư duy và giao tiếp
Trang 14tạo thành một nguồn tài nguyên dạng văn bản Một văn bản cũng có thểđược coi là bộ văn bản của các câu trong văn bản Các bộ văn bản lớnthường có từ vài nghìn đến vài trăm nghìn văn bản trong nó.
• Kí tự là tợp hợp gồm các chữ cái (nguyên âm và phụ âm) và dấu câu Mỗimột ngôn ngữ sẽ có một bộ các kí tự khác nhau
• Từ vựng là tập hợp các kết hợp của các ký tự tạo thành các từ, thể hiện một
ý nghĩa cụ thể hoặc định nghĩa riêng biệt Chẳng hạn, trong ngôn ngữ củacon người, chúng ta có thể coi từ "con người" là một ví dụ về từ vựng Từvựng bao gồm cả từ đơn chỉ bởi một âm tiết, và từ ghép với nhiều hơn một
âm tiết Điều đáng chú ý là, trong tiếng Việt, khác với tiếng Anh với các từ
đa phần chỉ có một âm tiết, tiếng Việt có nhiều từ ghép gồm hai hoặc ba
âm tiết Điều này đặt ra vấn đề về việc cần phải chia từ thành các phần nhỏhơn để xử lý (gọi là "tokenize") trong câu Các thư viện thông dụng được
sử dụng rộng rãi trong tiếng Việt như pyvi, VNCoreNLP có khả năng thựchiện việc tokenize Tuy nhiên, kết quả của quá trình tokenize có thể khácnhau tùy thuộc vào cách mà từ ghép được định nghĩa trong mỗi thư viện.Trong một số lĩnh vực đặc biệt của xử lý ngôn ngữ tự nhiên, có thể cần đến
từ điển chuyên ngành Do đó, việc tùy chỉnh và tạo từ điển riêng là cầnthiết, thay vì chỉ sử dụng từ điển có sẵn trong các thư viện [10]
• Từ điển là tợp hợp các từ vựng xuất hiện trong văn bản
• Tương đồng ngữ nghĩa: Các biểu diễn vector cho phép đo lường mức độtương đồng ngữ nghĩa giữa các từ Những từ có ý nghĩa tương tự thường
có biểu diễn vector gần nhau trong không gian vector
• Khả năng tích hợp vào mô hình: Dạng vector dễ dàng tích hợp vào các môhình học máy và mạng nơ-ron để thực hiện các tác vụ phức tạp như phânloại, dịch máy, tóm tắt văn bản, và nhiều tác vụ khác
Trang 15• Hiểu ngữ cảnh: Biểu diễn vector cho phép mô hình hiểu ngữ cảnh xungquanh từ, do đó giúp xử lý đúng các nghĩa khác nhau của từ trong các ngữcảnh khác nhau.
• Tính toán tương tự và phép toán số học: Các biểu diễn vector cho phépthực hiện các phép toán số học như cộng, trừ, nhân, chia trên các từ, giúptạo ra các phép tương tự và phân loại từ một cách dễ dàng
• Giúp học máy học từ ngữ: Mô hình học máy không thể trực tiếp làm việcvới các chuỗi ký tự (như từ vựng), do đó việc biểu diễn chúng dưới dạngvector giúp mô hình học được từ ngữ và tương tác giữa chúng
Một số phương pháp biểu diễn từ phổ biến:
Biểu diễn từ bằng cách sử dụng một vector one-hot, trong đó chỉ có một phần
tử là 1 tại vị trí tương ứng với từ, còn các phần tử khác là 0 Tuy nhiên, phươngpháp này không capture được mối quan hệ ngữ nghĩa giữa các từ Onehot 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 saocho các phần tử eij của véc tơ thoả mãn:
Sử dụng mạng nơ-ron để học biểu diễn từ sao cho các từ có ý nghĩa tương
tự gần nhau trong không gian vector Skip-Gram và Continuous Bag of Words(CBOW) là hai phương pháp chính trong Word2Vec [3], [4], [10]
Skip-Gram tập trung vào việc dự đoán các từ xung quanh một từ đã cho Ýtưởng cơ bản của Skip-Gram là khi ta biết một từ cụ thể, ta có thể dự đoán đượccác từ mà thường xuất hiện cùng với từ đó trong ngữ cảnh
Cách thức hoạt động của Skip-Gram như sau:
• Tạo dữ liệu huấn luyện: Từ mỗi vị trí trong văn bản, ta chọn một từ làm từtrung tâm (target word) và cố gắng dự đoán các từ xung quanh nó trongkhoảng cách cố định
• Tạo vector đầu vào và đầu ra: Từ target word, ta tạo một vector đầu vàoone-hot Mục tiêu là dự đoán các vector đầu ra one-hot của các từ xungquanh
Trang 16• Huấn luyện mạng nơ-ron: Sử dụng mạng nơ-ron, ta cố gắng tối ưu hóa cáctrọng số để giảm thiểu sai số giữa vector đầu ra dự đoán và vector thực tế.
• Học biểu diễn vector: Sau khi mạng nơ-ron được huấn luyện, các vectortrọng số tại tầng ẩn (hidden layer) của mạng có thể được sử dụng nhưbiểu diễn vector của các từ trong không gian vector
Cụ thể, trong mô hình, từ bối cảnh sẽ được biểu diễn dưới dạng vector
one-hot oc Vector này sẽ đóng vai trò là đầu vào cho một mạng nơ-ron có tầng ẩn với
300 đơn vị Kết quả tại tầng đầu ra được tính bằng hàm softmax để xác định xácsuất của các từ mục tiêu trong từ điển (10000 từ) Qua quá trình feed forward vàback propagation, mô hình sẽ điều chỉnh các tham số để dự đoán từ mục tiêumột cách chính xác nhất Khi đó, sau khi đi qua tầng ẩn, ta thu được đầu ra tại
tầng này là ma trận nhúng E ∈ Rn×300:
Véc tơ nhúng e c ∈ R300 là kết quả trích xuất từ ma trận E và tương ứng với
từ bối cảnh c ˆy biểu thị xác suất dự đoán cho từ mục tiêu.
Khi áp dụng hàm softmax, xác suất đầu ra được tính bằng công thức:
Khi mô hình mạng nơ-ron dự đoán ngày càng chính xác, các vector nhúng
sẽ càng hiển thị mối quan hệ thực tế giữa từ bối cảnh và từ mục tiêu Kết quả
cuối cùng mà ta quan tâm là các hàng của ma trận E, chúng biểu diễn các vector nhúng ec tượng trưng cho các từ bối cảnh
Skip-Gram thường hoạt động tốt với các từ hiếm và cách chúng tương tác vớicác từ xung quanh Phương pháp này giúp tạo ra các biểu diễn từ có khả năngbắt chước tương quan ngữ nghĩa giữa các từ trong ngữ cảnh
CBOW tập trung vào việc dự đoán từ trung tâm (target word) dựa trên các
từ xung quanh nó trong ngữ cảnh Ý tưởng chính của CBOW là dự đoán một từdựa trên ngữ cảnh xung quanh nó Cách thức hoạt động của CBOW như sau:
• Tạo dữ liệu huấn luyện: Từ mỗi vị trí trong văn bản, ta chọn một từ làm
từ trung tâm (target word) và cố gắng dự đoán nó dựa trên các từ xungquanh nó trong khoảng cách cố định
Trang 17• Tạo vector đầu vào và đầu ra: Từ các từ xung quanh target word, ta tạocác vector đầu vào one-hot Mục tiêu là dự đoán vector đầu ra one-hot củatarget word.
• Huấn luyện mạng nơ-ron: Sử dụng mạng nơ-ron, ta cố gắng tối ưu hóa cáctrọng số để giảm thiểu sai số giữa vector đầu ra dự đoán và vector thực tếcủa target word
• Học biểu diễn vector: Sau khi mạng nơ-ron được huấn luyện, các vectortrọng số tại tầng ẩn (hidden layer) của mạng có thể được sử dụng nhưbiểu diễn vector của các từ trong không gian vector
Về cơ bản thì CBOW là một quá trình ngược lại của skip-grams Khi đó inputcủa skip-grams sẽ được sử dụng làm output trong CBOW và ngược lại
Kiến trúc mạng nơ ron của CBOW sẽ gồm 3 layers:
1 Input layers: Là các từ bối cảnh xung quanh từ mục tiêu
2 Projection layer: Lấy trung bình véc tơ biểu diễn của toàn bộ các từ input
để tạo ra một véc tơ đặc trưng
3 Output layer: Là một dense layers áp dụng hàm softmax để dự báo xácxuất của từ mục tiêu
CBOW nhanh hơn trong khi skip-gram chậm hơn nhưng hoạt động tốt hơnđối với các từ không thường xuyên So sánh giữa hai phương pháp được minhhọa trong hình 1.1
Hình 1.1: So sánh giữa CBOW và Skip gram
GloVe (Global Vectors for Word Representation) là một phương pháp biểudiễn từ trong không gian vector dựa trên mô hình học máy Mục tiêu của GloVe
Trang 18là tạo ra các biểu diễn từ vựng sao cho chúng bao hàm thông tin về mối tươngquan ngữ nghĩa giữa các từ.
GloVe hoạt động dựa trên một hướng tiếp cận toàn cục, tức là nó cố gắng họccách biểu diễn từ dựa trên xác suất thống kê của chúng xuất hiện cùng nhautrong văn bản Ý tưởng chính của GloVe là xem xét xác suất tương quan giữahai từ trong một ngữ cảnh cụ thể Thông qua việc xây dựng một ma trận xácsuất từ-cặp (word co-occurrence matrix), GloVe tìm cách biểu diễn các từ saocho khoảng cách giữa chúng trong không gian vector phản ánh độ tương quanngữ nghĩa của chúng
Cách thức hoạt động của GloVe có thể được tóm tắt như sau:
• Xây dựng ma trận xác suất từ-cặp: GloVe bắt đầu bằng việc tính toán xácsuất xuất hiện đồng thời của hai từ trong một ngữ cảnh nhất định Ma trậnnày thể hiện mối quan hệ giữa các từ và ngữ cảnh
• Xác định hàm mục tiêu: GloVe sử dụng hàm mục tiêu để tối ưu hóa khoảngcách giữa các từ dựa trên thông tin xác suất từ-cặp Hàm mục tiêu này giúptìm ra các vector biểu diễn từ sao cho tỷ lệ xác suất xác định giữa các từ thểhiện mối quan hệ ngữ nghĩa của chúng
• Huấn luyện mô hình: Quá trình huấn luyện mô hình GloVe dựa trên việctối ưu hóa hàm mục tiêu, điều chỉnh các vector biểu diễn từ sao cho chúngphản ánh tốt nhất mối tương quan ngữ nghĩa giữa các từ
Kết quả của quá trình huấn luyện là một tập hợp các vector biểu diễn từ vựngtrong không gian vector, thể hiện mối quan hệ ngữ nghĩa và cú pháp giữa các
từ Những vector này thường có khả năng thể hiện các mối liên hệ ngữ nghĩa,
ví dụ như quan hệ tương tự và tương phản giữa các từ
t-SNE (t-Distributed Stochastic Neighbor Embedding) là một kỹ thuật giảmchiều dữ liệu và biểu diễn dữ liệu đa chiều thành các điểm trong không gian haihoặc ba chiều để hiển thị sự tương quan tương đối giữa các điểm trong khônggian gốc Tên của kỹ thuật đã gợi ý phương pháp làm việc của nó:
• t-Distributed: Đề cập đến việc tạo ra phân phối xác suất tương tự như phânphối t trong không gian giữa các điểm Điều này giúp duy trì cấu trúc dữliệu dưới góc nhìn xác suất
• Stochastic Neighbor Embedding: Phương pháp này tập trung vào việc giữnguyên sự tương quan hàng xóm (neighborhood) giữa các điểm trongkhông gian ban đầu
Trang 19t-SNE ban đầu được thiết kế để biểu diễn dữ liệu dưới dạng biểu đồ phântán, giúp hình dung mối quan hệ giữa các điểm dữ liệu trong không gian caochiều Nó thường được sử dụng để khám phá cấu trúc ẩn của dữ liệu, phát hiệncụm và mô hình quan hệ tương quan giữa các điểm.
Phương pháp t-SNE hoạt động bằng cách tạo ra một biểu đồ phân tán trongkhông gian ít chiều hơn (thường là 2D hoặc 3D) dựa trên mối tương quan xácsuất giữa các điểm trong không gian gốc Quá trình này tập trung vào việc tối
ưu hóa khoảng cách giữa các điểm trong không gian gốc và khoảng cách giữacác điểm tương ứng trong không gian giảm chiều
T-SNE thường được sử dụng để hiểu rõ hơn về cấu trúc của dữ liệu phứctạp, thể hiện mối quan hệ giữa các điểm dữ liệu và giúp khám phá thông tinhữu ích từ dữ liệu đa chiều
Trong ngữ cảnh của xử lý ngôn ngữ tự nhiên, t-SNE cũng có thể được sửdụng để biểu diễn từ hoặc từ vựng dưới dạng biểu đồ phân tán để hiểu rõ hơn
về mối quan hệ giữa các từ trong không gian nghĩa T-SNE giúp chúng ta thấycách các từ có liên quan hoặc tương đồng nghĩa được nhóm lại và tạo thành cáccụm trong không gian giảm chiều
Khi áp dụng t-SNE trong biểu diễn từ, quá trình hoạt động tương tự như mô
tả ở trên, nhưng thay vì dữ liệu dạng số, chúng ta sử dụng biểu diễn vector của
từ vựng (như Word2Vec, GloVe, FastText) làm dữ liệu đầu vào Mỗi vector biểudiễn một từ trong không gian đa chiều T-SNE sau đó thực hiện giảm chiều dữliệu đa chiều này thành một không gian hai chiều hoặc ba chiều, trong đó mỗiđiểm biểu diễn một từ
Kết quả của t-SNE trong biểu diễn từ thường là một biểu đồ phân tán, trong
đó các từ có mối quan hệ gần nhau trong không gian vector sẽ được tập trung
ở gần nhau trên biểu đồ Các từ có ý nghĩa tương đồng thường được nhóm lạithành các cụm T-SNE giúp hình dung mối quan hệ ngữ nghĩa giữa các từ, chophép người dùng thấy được cấu trúc của từ vựng một cách rõ ràng hơn
SVD (Singular Value Decomposition) là một phương pháp phân tích ma trậntrong đại số tuyến tính Nó thực hiện việc phân rã một ma trận thành các thànhphần cơ bản để hiểu và biểu diễn cấu trúc của ma trận đó [2]
SVD của một ma trận A có dạng: A = UΣVT, trong đó
• U là ma trận unitary (thường gọi là ma trận trái) có các cột là các vectorriêng (eigenvector) của AAT
• Σ là ma trận đường chéo chứa các giá trị riêng (eigenvalue) của AAT hoặc
ATA(đều giống nhau về tính chất), săp xếp giảm dân trên đường chéo
Trang 20• V là ma trận unitary (thường gọi là ma trận phải) có các cột là các vectorriêng của ATA.
Trong biểu diễn từ và văn bản, SVD được sử dụng để giảm chiều ma trận biểudiễn từ hoặc văn bản, giúp tạo ra các vector biểu diễn có số chiều thấp hơn.Điều này giúp giảm lượng thông tin không cần thiết và tạo ra các biểu diễn cókhả năng tập trung vào các khía cạnh quan trọng của ngữ nghĩa và mối tươngquan giữa các từ Khi được áp dụng cho ma trận từ vựng, SVD giúp tạo ra cácvector biểu diễn từ cơ bản (thường gọi là "latent semantic vectors") có khả nănghiện thị mối liên hệ ngữ nghĩa giữa các từ Tuy nhiên, SVD có thể gặp vấn đề vềkích thước và tính toán trong các tập dữ liệu lớn [4]
Phân loại văn bản là quá trình gán một nhãn (lớp, thể loại) cụ thể cho mộtmẫu văn bản dựa trên nội dung của nó Mục tiêu là xác định xem văn bản thuộcvào loại nào trong các loại đã định trước Đây thuộc dạng học có giám sát, vìtrong quá trình huấn luyện, mô hình sẽ được cung cấp các ví dụ văn bản cùngvới nhãn tương ứng
Phân loại văn bản tiếng Việt có một số đặc thù riêng:
• Từ vựng đa dạng: Tiếng Việt có một từ vựng đa dạng, bao gồm cả từ đơn
và từ ghép có số âm tiết lớn hơn so với tiếng Anh Điều này tạo ra tháchthức trong việc xử lý và biểu diễn từ
• Tone và dấu câu: Tone và dấu câu trong tiếng Việt có thể thay đổi ý nghĩacủa từ hoặc câu hoàn toàn Việc xử lý các yếu tố này đòi hỏi sự chú ý đặcbiệt
• Ngữ cảnh và biểu đạt: Đôi khi việc hiểu ý nghĩa của một từ hoặc câu trongtiếng Việt phụ thuộc vào ngữ cảnh và cách biểu đạt Điều này có thể đòihỏi mô hình có khả năng hiểu sâu hơn về cấu trúc và ngữ pháp tiếng Việt
• Khả năng diễn đạt nhiều ý: Một mẫu văn bản tiếng Việt có thể diễn đạtnhiều ý khác nhau, và điều này đòi hỏi mô hình phải có khả năng phânloại dựa trên ngữ cảnh rộng hơn
• Dữ liệu huấn luyện: So với tiếng Anh, dữ liệu huấn luyện cho phân loạivăn bản tiếng Việt thường ít hơn và có thể không đủ đa dạng Điều này cóthể gây khó khăn trong việc huấn luyện mô hình chính xác và tổng quát
Trang 21Vì những đặc thù này, phân loại văn bản tiếng Việt thường đòi hỏi các phươngpháp xử lý và mô hình hóa đặc thù, đồng thời cũng cần dữ liệu huấn luyện đủlớn và đa dạng để đạt được hiệu suất tốt.
• Support Vector Machines (SVM): Sử dụng SVM để tìm ra siêu mặt phânchia tốt nhất giữa các lớp dựa trên đặc trưng của văn bản
• Random Forests và Decision Trees: Sử dụng cây quyết định hoặc tập hợpcác cây quyết định (Random Forests) để xác định quy luật phân loại từ dữliệu
• Logistic Regression: Sử dụng mô hình hồi quy logistic để dự đoán xác suấtthuộc về từng lớp cho một văn bản
Bên cạnh đó, học sâu đã mang lại nhiều tiến bộ đáng kể trong bài toán phânloại văn bản Các mô hình có khả năng biểu diễn và hiểu ngữ cảnh của văn bảnmột cách hiệu quả hơn Một số hướng giải quyết phổ biến bằng học sâu
• Convolutional Neural Networks (CNNs): Áp dụng CNNs để xử lý văn bảndưới dạng dãy từ, tạo ra các đặc trưng cục bộ từ các n-gram và sau đó kếthợp chúng để dự đoán lớp của văn bản
• Recurrent Neural Networks (RNNs): Sử dụng RNNs để mô hình dạngchuỗi của văn bản, chú trọng vào việc lưu giữ thông tin từ quá khứ để
dự đoán lớp của văn bản
• Long Short-Term Memory (LSTM): Sử dụng kiến trúc LSTM, một dạng củaRNN, để giải quyết vấn đề mất thông tin xa trong chuỗi khi xử lý văn bảndài
• Gated Recurrent Units (GRUs): Tương tự như LSTM, GRUs là một dạngkhác của RNN giúp giải quyết vấn đề mất thông tin trong chuỗi
• Attention Mechanisms: Sử dụng cơ chế attention để tập trung vào các phầnquan trọng của văn bản khi dự đoán lớp Điều này giúp cải thiện khả năngbiểu diễn và hiệu suất
Trang 22• Transformer Models: Sử dụng các kiến trúc như BERT, GPT, và former để tạo ra biểu diễn từ hiệu quả và tận dụng thông tin ngữ cảnhphức tạp trong văn bản.
Trans-• Pretrained Word Embeddings: Sử dụng các biểu diễn từ tiền huấn luyệnnhư Word2Vec, GloVe, FastText để tạo ra đầu vào ban đầu cho mô hìnhhọc sâu
• Transfer Learning: Sử dụng mô hình học sâu đã được huấn luyện trướctrên dữ liệu lớn, sau đó điều chỉnh lại cho bài toán phân loại văn bản cụthể
Có nhiều độ đo khác nhau được sử dụng để đánh giá hiệu suất của mô hìnhphân loại Các độ đo phổ biến gồm:
1 Accuracy (Độ chính xác): Độ chính xác đơn giản là tỉ lệ giữa số lượngmẫu được phân loại đúng và tổng số mẫu trong tập dữ liệu kiểm tra Tuynhiên, độ chính xác có thể không phản ánh chính xác trong trường hợpmẫu không cân bằng giữa các lớp
Công thức của Accuracy như sau:
Accuracy = Số mẫu được phân loại đúng
Tổng số mầu trong tập dữ liệu (1.4)Trong công thức này, "Số mẫu được phân loại đúng" là số lượng mẫu trongtập kiểm tra mà mô hình dự đoán đúng lớp của chúng, và "Tổng số mẫutrong tập dữ liệu" là tổng số lượng mẫu trong tập kiểm tra
Độ chính xác thường được thể hiện dưới dạng phần trăm, và giá trị nằmtrong khoảng từ 0 đến 100% Tuy nhiên, cần lưu ý rằng độ chính xác có thểkhông phản ánh chính xác trong các tình huống mẫu không cân bằng giữacác lớp
2 Precision (Độ chính xác dương tính): Precision là tỉ lệ giữa số lượng mẫudương (positive) được phân loại đúng và tổng số mẫu được phân loại làdương Độ đo này thường được sử dụng khi chúng ta quan tâm đến việcgiảm thiểu số lượng sai dương tính Ta có
Precision = Số mẩu dương được phân loại đúng
Tổng số mẩu được phân loại là dương (1.5)
Trang 233 Recall (Độ bao phủ): Recall là tỉ lệ giữa số lượng mẫu dương được phânloại đúng và tổng số mẫu dương trong tập dữ liệu Độ đo này thường được
sử dụng khi chúng ta quan tâm đến việc giảm thiểu số lượng sai phân loạicủa các mẫu thực sự là dương Công thức:
Recall = Số mẩu dương được phân loại đúng
Tồng số mẩu dương trong tập dữ liệu (1.6)
4 F1-Score: F1-Score là trung bình điều hòa của Precision và Recall Độ đonày thường được sử dụng khi cần cân nhắc cả hai khía cạnh chính xác và
6 Confusion Matrix (Ma trận nhầm lẫn): Confusion Matrix là bảng thống kêhiển thị số lượng mẫu trong từng phạm vi dự đoán và thực tế Từ ma trậnnày, chúng ta có thể tính toán Precision, Recall và F1-Score
Có rất nhiều công cụ tốt hỗ trợ giải các bài toán trong NLP
• Natural Language ToolKit (NLTK) là một trong những nền tảng hàng đầu
để xây dựng các chương trình Python xử lý và phân tích dữ liệu ngôn ngữcủa con người NLTK cung cấp giao diện dễ sử dụng cho hơn 50 tài nguyênngữ liệu và từ vựng như mạng từ, cùng với một bộ thư viện xử lý văn bản
để phân loại, mã hóa, tạo gốc, gắn thẻ, phân tích cú pháp và lập luận ngữnghĩa
• Gensim là một framework Python mã nguồn mở chuyên dụng, được sửdụng để biểu diễn tài liệu dưới dạng vectơ ngữ nghĩa theo những cáchhiệu quả nhất và dễ dàng nhất có thể Các tác giả đã thiết kế Gensim để xử
lý văn bản thô, không có cấu trúc bằng cách sử dụng nhiều thuật toán họcmáy – vì vậy sử dụng Gensim để tiếp cận các tác vụ như Lập mô hình chủ
Trang 24đề là một ý tưởng tốt Thêm vào đó, Gensim làm rất tốt việc xác định cácđiểm tương đồng trong văn bản, lập chỉ mục văn bản và điều hướng cáctài liệu khác nhau.
• Tensorflow là phiên bản cũ hơn và được phát triển bởi nhóm Brain củaGoogle Mặt khác, Pytorch là một thư viện mã nguồn mở dựa trên thưviện Torch và được phát triển chủ yếu bởi phòng thí nghiệm Nghiên cứu
AI (FAIR) của Facebook
• Hugging Face Thư viện Hugging Face là một nền tảng cung cấp các công
cụ và tài nguyên cho xử lý ngôn ngữ tự nhiên và Trí tuệ nhân tạo Thư việnnày nổi tiếng với việc cung cấp các mô hình ngôn ngữ tiên tiến, bộ dữ liệu
và công cụ cho cộng đồng nghiên cứu và phát triển NLP
Tổng kết chương 1: Chương này trình bày kiến thức tổng quan về NLP Baogồm các khái niệm về xử lý ngôn ngữ, các đơn vị văn bản trong đó Kiến thứctổng quan về các phương pháp biểu diễn từ, chuyển từ và các đơn vị văn bản
về vector cũng được đưa ra Bài toán phân loại văn bản và các hướng giải quyếtcũng như các độ đo mô hình phân loại cũng được giới thiệu chuẩn bị cho cácchương sau
Trong chương 2, em sẽ tìm hiểu một số mô hình mạng nơ ron học sâu hiệnđại hiệu quả trong việc giải quyết nhiều bài toán NLP nói chung và bài toánphân loại văn bản nói riêng Đó là transformer và Bert
Trang 25Transformer là Kiến trúc Cơ bản cho Mạng Nơ-ron Học Sâu: Transformer
đã thay đổi cách chúng ta hiểu và xây dựng các mạng nơ-ron học sâu Nó sửdụng cơ chế chú ý đa hướng để tạo ra biểu diễn từ và văn bản hiệu quả hơn.Transformer cho phép xử lý chuỗi dữ liệu như văn bản mà không cần sử dụngmạng nơ-ron tái lập (RNN) hay mạng nơ-ron hồi quy (LSTM), giúp tăng tốc độhuấn luyện và cải thiện hiệu suất Kiến trúc của Transformer đã được áp dụngcho nhiều tác vụ khác nhau trong NLP như dịch máy, tổng hợp văn bản, phântích tình cảm, gợi ý, và nhiều tác vụ khác
BERT (Bidirectional Encoder Representations from Transformers) đã cáchbiệt với các mô hình trước bằng việc tiền huấn luyện trực tiếp trên toàn bộvăn bản dưới dạng hai chiều (bidirectional) Điều này giúp tạo ra biểu diễn
từ tự nhiên và hiệu quả hơn BERT đã mở ra cánh cửa cho việc sử dụng tiềnhuấn luyện và transfer learning trong NLP Mô hình được huấn luyện trướctrên lượng lớn dữ liệu, sau đó có thể được tinh chỉnh (fine-tune) cho các tác vụ
cụ thể, giúp cải thiện hiệu suất mô hình trên dữ liệu nhỏ hơn Nhờ việc tiềnhuấn luyện trên toàn bộ văn bản, BERT có khả năng hiểu ngữ cảnh và sự tươngtác giữa các từ trong một đoạn văn bản, giúp cải thiện khả năng phân loại vàbiểu diễn văn bản
Cả hai Transformer và BERT đều có tác động lớn trong cách chúng ta tiếpcận và giải quyết các vấn đề trong NLP, giúp cải thiện hiệu suất và khả nănghiểu ngữ nghĩa của các mô hình xử lý ngôn ngữ tự nhiên
Nội dung chương 2 sẽ trình bày chi tiết cấu trúc của hai mô hình trên Cáckiến thức trong chương được tham khảo chủ yếu từ các tài liệu [3]-[8]
Trang 262.1 Kiến trúc Transformer
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ínhnăng đặc biệt của Transformer gồm khả năng tập trung đa đầu và bộ tách kiểucấu trúc Điều này giúp mô hình hiểu được các mối quan hệ giữa các từ trongcâu
2.1.1 Kiến trúc transformer
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 [11]
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 trongviệc hiể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ữ liệu để có khả năng hiểu rõ ngữ cảnh và đưa ra câu trả lời phù hợp nhất chomỗi câ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ácmáy tí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ình truyền thống, như việc mất thông tin trong các tầng khi xử lý dữ liệu liêntụ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
Trang 27Trong 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 Thayvào đó, mô hình sử dụng các lớp tự chú ý (self-attention) và lớp fully-connectedfeedforward
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 ápdụng để học cách kết nối các từ với nhau trong chuỗi, tương tự như cách mạngRNN 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ụngcác bộ lọc (filters) để trích xuất đặc trưng từ đầu vào trước khi đưa vào cáclớ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íchxuất thông tin từ các chuỗ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ẩn hóa khác biệt so với mô hình seq2seq
Mộ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
Tóm lại, kiến trúc Transformer tạo ra sự khác biệt so với mô hình seq2seqtrong cách tích hợp cơ chế tập trung và xử lý thông tin vị trí, giúp nó đạt đượchiệu suất tốt hơ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.1
Mô hình chuỗi sang chuỗi - seq2seq, viết tắt của "sequence-to-sequence", làmột kiến trúc mạng nơ ron được sử dụng chủ yếu cho các tác vụ liên quan đến
Trang 282 Decoder (Bộ giải mã): Decoder nhận vào vector đại diện từ bộ mã hóa và
sử dụng nó để tạo ra dãy dữ liệu đầu ra mong muốn Quá trình này thườngđược thực hiện bởi một mạng RNN (hoặc biến thể như LSTM và GRU) hoặccũng có thể sử dụng Transformer Mô hình này sinh ra dãy dữ liệu một phầnmột phần, thường là từng từ, dựa trên thông tin từ vector đại diện và từ cácphần đã được giải mã trước đó
Các tầng trong bộ mã hóa và bộ giải mã được minh họa trong2.3
Trang 29Hình 2.3: Các tầng trong bộ mã hóa và giải mã
Seq2seq thường được sử dụng trong các tác vụ như dịch máy, khi dãy đầuvào và dãy đầu ra có độ dài khác nhau Mô hình này cũng có thể được mở rộng
để xử lý các vấn đề phức tạp hơn, như tạo tiêu đề cho văn bản, tạo câu chuyện,hay thậm chí trong các ứng dụng âm thanh và video
Mô hình seq2seq đã tạo ra sự tiến bộ đáng kể trong nhiều tác vụ liên quanđến xử lý ngôn ngữ tự nhiên và dãy dữ liệu, và nó đã được kết hợp và cải tiếntrong nhiều kiến trúc mạng phức tạp hơn để giải quyết những thách thức khókhăn hơn
2.1.3 Kiến trúc tự tập trung
Kiến trúc tự tập trung (Self-Attention) là một cơ chế quan trọng được sửdụng trong các mô hình xử lý ngôn ngữ tự nhiên và dãy dữ liệu Được giớithiệu ban đầu trong kiến trúc Transformer, self-attention cho phép mô hình tậptrung vào các phần quan trọng của dữ liệu đầu vào một cách linh hoạt Minhhọa mô hình kiến trúc tự tập trung trong hình2.4
Trong 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áctrọng số này thường được xác định bằng cách tích vô hướng giữa vector đặctrưng của phầ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àychứa thông tin quan trọng từ các phần tử khác nhau, dựa trên mức độ ảnhhưởng của chúng Quá trình này giúp mô hình tập trung vào những phần quantrọng và bỏ qua những phần không cần thiết
Trang 30Hình 2.4: Kiến trúc tự tập trung
Kiến trúc tự tập trung giúp mô hình tập trung vào những phần quan trọngtrong 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
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
Trang 31tương ứng, giúp mô hình học cách xác định mức độ quan trọng của mỗi phần
tử đối với các phần tử khác trong dãy
Kết quả của các lớp tập trung đa đầu riêng biệt sau đó được kết hợp thôngqua một quá trình học trọng số Quá trình này có thể bao gồm việc kết hợp(concatenate) các kết quả hoặc thực hiện một phép biến đổi tuyến tính để tạo rabiểu diễn cuối cùng
Tập trung đa đầu trong kiến trúc Transformer cho phép mô hình học cách
xử lý thông tin từ nhiều góc độ khác nhau, giúp cải thiện hiệu suất trong nhiềunhiệm vụ xử lý ngôn ngữ tự nhiên và dãy dữ liệu phức tạp Hình2.5minh họakiến trúc tập trung đa đầu
Hình 2.5: Kỹ thuật tập trung đa đầu
Mạng truyền xuôi theo vị trí (Positional Encoding) Kỹ thuật Mạng truyềnxuôi theo vị trí (Positional Encoding) là một thành phần quan trọng trong kiếntrúc mạng Transformer, giúp mô hình xử lý thông tin về vị trí của các phần tửtrong dãy đầu vào Điều này là cần thiết vì Transformer không có cơ chế tương
hỗ thời gian như mạng RNN và LSTM
Trong kiến trúc Transformer, các từ hoặc phần tử trong dãy đầu vào không
có thứ tự cụ thể, và do đó không có thông tin về vị trí được tích hợp vào dữ liệu
Để giải quyết vấn đề này, kỹ thuật Mạng truyền xuôi theo vị trí được áp dụngbằng cách thêm vào vector biểu diễn của mỗi phần tử một vector bổ sung biểuthị vị trí của nó trong dãy
Thường thì, vector vị trí được tạo ra bằng cách sử dụng các hàm toán họcnhư sin và cos, với tần số khác nhau cho mỗi chiều của vector Vector vị trí sau
đó được cộng vào vector biểu diễn của từng phần tử trong dãy Quá trình nàygiúp mô hình nhận biết vị trí tương đối của các phần tử trong dãy đầu vào.Tóm lại, kỹ thuật Mạng truyền xuôi theo vị trí là một phần quan trọng củakiến trúc mạng Transformer, giúp mô hình hiểu thông tin về vị trí của các phần
tử trong dãy đầu vào Điều này làm cho mô hình có khả năng xử lý các tác vụ
Trang 32như dịch máy và xử lý ngôn ngữ tự nhiên mà cần quan tâm đến vị trí của các
từ trong câu
Kỹ thuật Cộng và chuẩn hóa (Add and Normalize) Kỹ thuật Cộng và chuẩnhóa (Add and Normalize)là một bước quan trọng trong kiến trúc mạng Trans-former, được áp dụng sau khi các phép tích vô hướng (dot product) trong tầng
tự tập trung (self-attention) và mạng truyền xuôi theo vị trí (position-wise forward network)
feed-Quá trình Cộng và chuẩn hóa thường được thực hiện như sau:
• Cộng (Add): Đầu ra của tầng tự tập trung hoặc mạng truyền xuôi theo vịtrí (position-wise feed-forward network) được cộng vào đầu vào ban đầucủa tầng đó Điều này có ý nghĩa là thông tin mới được thêm vào dữ liệuban đầu, giúp cập nhật và mở rộng thông tin mô hình đã học
• Chuẩn hóa (Normalize): Sau khi thêm thông tin mới vào, một bước chuẩnhóa được thực hiện để đảm bảo rằng đầu ra có cùng tỷ lệ với dữ liệu banđầu và tránh tình trạng đặc biệt (exploding gradients) trong quá trình huấnluyện Thông thường, chuẩn hóa được thực hiện bằng cách sử dụng các kỹthuật như chuẩn hóa theo tầng (layer normalization) hoặc chuẩn hóa theobatch (batch normalization)
Kỹ thuật Cộng và chuẩn hóa giúp kiểm soát việc thông tin mới được thêmvào mô hình và đảm bảo rằng các phép tính được thực hiện trên dữ liệu đầuvào không làm biến dạng thông tin quá nhiều Quá trình này cũng giúp tăngcường khả năng học và hiệu suất của mạng Transformer trong việc xử lý ngônngữ tự nhiên và dãy dữ liệu phức tạp Kỹ thuật Cộng và chuẩn hóa là một bướcquan trọng trong quá trình tính toán trong kiến trúc mạng Transformer, giúpthêm thông tin và điều chỉnh đầu ra một cách cân đối và hiệu quả
Kỹ thuật Biểu diễn vị trí (Positional Encoding)trong kiến trúc Transformerđược sử dụng để giúp mô hình nhận biết vị trí tương đối của các phần tử trongdãy đầu vào, mà không cần sử dụng mạng RNN hoặc LSTM có khả năng xử lýthông tin thứ tự Điều này là cần thiết vì kiến trúc Transformer không có khảnăng tự hiểu về thứ tự mặc định của dãy đầu vào
Trong kỹ thuật Biểu diễn vị trí, một vector biểu diễn vị trí được tạo ra chomỗi phần tử trong dãy đầu vào Vector này được thêm vào vector biểu diễn củaphần tử tương ứng, để tạo ra một biểu diễn cuối cùng chứa thông tin về vị trí.Quá trình này thường được thực hiện bằng cách sử dụng các hàm toán học nhưsin và cos với tần số khác nhau cho từng chiều của vector
Cụ thể, công thức biểu diễn vị trí cho vị trí pos và chiêu i trong một dãy dài
Trang 33dmodel (kích thước của vector biểu diễn) thường có dạng:
• PE(pos,2i)và PE(pos,2i+1)là các thành phân của vector biểu diễn vị trí cho vịtrí pos và chiều i
• dmodel là kích thước của véc tơ biểu diễn
• pos là vị trí của phần tử trong dãy đầu vào
• ilà chỉ số của chiều trong véc tơ biểu diễn
Sau khi có các vector biểu diễn vị trí, chúng sẽ được cộng vào vector biểudiễn của các phần tử tương ứng trong dãy đầu vào trước khi đưa vào mô hìnhTransformer Tóm lại, kỹ thuật Biểu diễn vị trí trong kiến trúc Transformer giúp
mô hình hiểu thông tin về vị trí của các phần tử trong dãy đầu vào mà khôngcần sử dụng mạng thần kinh tuần tự Minh họa kỹ thuật biểu diễn vị trí đượcthể hiện trong hình2.6
Hình 2.6: Kỹ thuật biểu diễn vị trí trong transformer
Bộ mã hóa (Encoder) là một phần quan trọng trong kiến trúc Transformer,đóng vai trò xử lý và biểu diễn dữ liệu đầu vào Trong mô hình Transformer, cóhai tầng chính trong bộ mã hóa:
• Tầng tự tập trung (Self-Attention Layer): Tầng này xử lý thông tin liên quanđến mối quan hệ giữa các phần tử trong dãy đầu vào Mỗi phần tử đượcbiểu diễn bởi một vector đặc trưng Trong quá trình tính toán, tầng tự tậptrung tính toán các trọng số tương ứng cho mỗi phần tử dựa trên mức độ
Trang 34quan trọng của nó đối với các phần tử khác trong dãy Quá trình này tạo
ra một ma trận trọng số, được sử dụng để tính tổng có trọng số của cácvector đặc trưng, tạo ra biểu diễn tổng hợp cho dãy đầu vào Tầng tự tậptrung có thể được mở rộng bằng cách sử dụng kỹ thuật tập trung đa đầu(multi-head attention) để học nhiều cách biểu diễn tập trung khác nhau
• Tầng mạng truyền xuôi theo vị trí (Position-wise Feed-Forward NetworkLayer): Tầng này xử lý thông tin theo vị trí trong từng phần tử của dãy đầuvào Nó áp dụng các phép biến đổi tuyến tính độc lập cho mỗi chiều củavector biểu diễn, giúp mô hình học các mối quan hệ và đặc trưng trong dữliệu đầu vào
Cả hai tầng trên được sử dụng lặp lại nhiều lần để biểu diễn dữ liệu đầu vào
ở mức độ phức tạp và trừu tượng hơn Quá trình biểu diễn này tạo ra biểu diễngồm các vector đặc trưng, thể hiện thông tin quan trọng về dữ liệu đầu vào.Tóm lại, bộ mã hóa trong kiến trúc Transformer chịu trách nhiệm biểu diễn
dữ liệu đầu vào và tạo ra các biểu diễn đặc trưng mà bộ giải mã có thể sử dụng
để tạo ra kết quả đầu ra phù hợp
Bộ giải mã (Decoder) là một thành phần quan trọng trong kiến trúc former, đóng vai trò sinh ra kết quả đầu ra từ các biểu diễn đặc trưng được tạo
Trans-ra bởi bộ mã hóa và thông tin từ kết quả trước đó (trong trường hợp của các tác
vụ tự học)
Trong mô hình Transformer, bộ giải mã cũng gồm hai tầng chính:
• Tầng tự tập trung của giải mã (Self-Attention Layer in Decoder): Tương tựnhư trong bộ mã hóa, tầng tự tập trung ở giải mã xử lý thông tin liên quanđến mối quan hệ giữa các phần tử trong dãy đầu ra mà bộ giải mã đangtạo ra Tuy nhiên, để tránh việc mô hình "nhìn thấy tương lai", tầng tự tậptrung ở giải mã được hạn chế chỉ nhìn các phần tử đã được tạo ra trước đó
• Tầng tập trung đa đầu từ bộ mã hóa (Multi-Head Attention from Encoder):Tầng này cho phép bộ giải mã tập trung vào thông tin quan trọng từ bộ mãhóa Nó tính toán các trọng số tương ứng cho các phần tử trong bộ mã hóadựa trên mức độ quan trọng của chúng đối với phần tử đang được tạo ratrong bộ giải mã
• Tầng mạng truyền xuôi theo vị trí (Position-wise Feed-Forward NetworkLayer): Tương tự như tầng này ở bộ mã hóa, tầng này trong bộ giải mã xử
lý thông tin theo vị trí và áp dụng các phép biến đổi tuyến tính để tạo rakết quả đầu ra phù hợp