Professional Documents
Culture Documents
HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
DỊCH MÁY
DỊCH MÁY
GIẢNG VIÊN
1 GIỚI THIỆU 5
2.1.3 Dịch dựa trên ngôn ngữ trung gian (liên ngữ) . . . . . . . . . . . . . . . . . . . . . 11
3.2 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.2 Fully Connected Layer cuối cùng, hàm softmax và hàm loss . . . . . . . . . . . . . 19
3
4 MỤC LỤC
Chương 1
GIỚI THIỆU
Khái niệm dịch máy đã được nhiều tác giả trong lĩnh vực xử lý ngôn ngữ tự nhiên định nghĩa, tuy có
một vài điểm khác biệt nhưng hầu hết đều tương ứng với định nghĩa sau:
Một dịch máy (Machine Translation System) là một hệ thống sử dụng máy tính để chuyển đổi văn bản
được viết trong tự nhiên của ngôn ngữ này thành tương đương bản dịch trong ngôn ngữ khác. Nói
chung, dịch thuật là một nỗ lực khó khăn, hấp dẫn và mãnh liệt của con người, phong phú như bất kỳ
lĩnh vực sáng tạo nào khác của con người.
Ngôn ngữ của văn bản cần dịch còn gọi là ngôn ngữ nguồn, ngôn ngữ của bản dịch được gọi là ngôn
ngữ đích. Sơ đồ sau thể hiện vị trí của hệ dịch máy trong tiến trình dịch tài liệu
Đầu vào của một hệ dịch máy thường là một văn bản viết trong ngôn ngữ nguồn, quá trinh dịch có
thể chia thành hai giai đoạn, đầu tiên, văn bản được phân tích thành các thành phần, sau đó được dịch
thành văn bản ở dạng ngôn ngữ đích. Kết quả dịch có thể được con người hiệu đính để trở thành bản
dịch tốt. Như vậy trong một quá trình dịch, con người có thể tác động vào các bước xử lý với mục đích
làm cho kết quả dịch tốt hơn.
5
6 CHƯƠNG 1. GIỚI THIỆU
Ngày nay có khoảng hơn 7000 ngôn ngữ trên thế giới, được phân bố không đồng đều. Các ngôn ngữ
được phân loại theo các nguồn gốc gồm: Ấn Âu, Sê mít, Thổ, Hán-Tạng và Nam Phương; hoặc theo các
loại hình gồm: ngôn ngữ hòa kết, ngôn ngữ chắp dính, ngôn ngữ đơn lập và ngôn ngữ đa tổng hợp.
Do đó, nhu cầu trao đổi thông tin giữa các quốc gia, các nền văn hóa, giữa mỗi con người,. . . càng làm
cho việc dịch trở nên quan trọng. Công việc dịch sử dụng con người là công việc có tính thủ công, chất
lượng cao nhưng năng suất thấp và giá thành cao. Từ đó, dịch máy ra đời để đáp ứng nhu cầu dịch thuật
của con người.
Mỗi cách dịch – cách dịch dùng người dịch và dịch bằng máy – đều có vai trò, ưu/nhược điểm riêng.
- Chi phí rẻ; - Có thể sử dụng ngôn ngữ tinh vi, rất phức
Ưu điểm - Được dùng để dịch hàng loạt, khối lượng - Thể hiện được cảm xúc của văn bản gốc.
- Cung cấp bản dịch thô của các văn bản dịch có chất lượng cao.
(ý chính).
- Không tập trung vào ngữ cảnh và giải mã - Chất lượng các bản dịch không đồng đều
Nhược điểm
nghĩa bóng của ngôn ngữ; (phụ thuộc vào người dịch).
Tóm lại, với sự phát triển mạnh mẽ của khoa học công nghệ, khối lượng thông tin trao đổi của con người
ngày càng nhiều. Trong nhiều trường hợp có thể có, con người không cần đến chất lượng dịch cao như
sử dụng người phiên dịch mà chỉ cần có một bản dịch nháp có chất lượng không quá thấp nhưng không
phải chờ đợi lâu. Với trường hợp cụ thể này, một hệ dịch máy chất lượng bình thường đáp ứng tốt hơn
một người phiên dịch giỏi. Do vậy, nhu cầu cần có các hệ dịch máy là tất yếu. Nếu xây dựng hệ dịch máy
thành công, đây sẽ là công cụ giúp con người tiếp cận với kho tri thức viết bằng các ngôn ngữ khác.
Bài toán dịch máy là một toán khó của con người, bởi các lý do sau:
1.4. LỊCH SỬ DỊCH MÁY 7
− Từ đồng nghĩa;
− Từ nhiều nghĩa;
− ...
Ngành dịch máy đã có quá trình phát triển trên 50 năm, tuy có những giai đoạn hầu như không phát
triển nhưng dịch máy vẫn là một trong những chuyên ngành phát triển của khoa học máy tính với nhiều
kết quả về lý thuyết và ứng dụng thực tế. Có thể chia sự phát triển của ngành dịch máy thành ba thời
kỳ, kể từ năm 1949 với những ý tưởng sơ khai về một hệ dịch máy cho đến hiện nay (2006) với sự ra đời
của nhiều trình dịch máy tương đối hoàn thiện, đã có ứng dụng vào cuộc sống.
– Hệ thống TAUM-METEO (1977) của đại học Montréal – Canada chuyên dịch tin tức khí tượng
từ tiếng Anh sang tiếng Pháp.
– Hệ thống METAL (1985) của Linguistic Research Center, đại học Texas, dịch từ tiếng Đức
sang tiếng Anh.
– Chương trình máy tính thế hệ 5 (The Fifth Generation) của chính phủ Nhật Bản, một trong
các mục tiêu của chương trình này là một hệ thống dịch tự động xuôi ngược Anh-Nhật, Nhật-
Anh.
Có 3 chiến lược dịch máy chủ yếu và các biến thể bao gồm:
Khái niệm
Dịch trực tiếp là phương pháp phát triển cho cặp ngôn ngữ cụ thể, tiến trình dịch là một quá trình biến
đổi từ ngôn ngữ nguồn sang ngôn ngữ đích dựa trên từ điển song ngữ và một số quy tắc từ vựng kết
hợp với một số quy tắc xử lý ngữ pháp đơn giản. Sơ đồ hệ dịch trực tiếp được thể hiện ở mô hình dưới
đây
9
10 CHƯƠNG 2. CÁC PHƯƠNG PHÁP DỊCH MÁY
• Tiền xử lý: Ngắt đoạn cần dịch thành dãy các câu.
• Xử lý: Hệ phân tích câu cần dịch thành dãy các từ, sau đó dựa trên từ điển song ngữ, tìm hình thái
và nghĩa cho từng từ hay cụm từ.
Ưu - nhược điểm
Các hệ dịch trực tiếp có ưu điểm là đơn giản và có tốc độ nhanh. Phương pháp rất thích hợp với việc
dịch trong những lĩnh vực chuyên môn (không có nhiều nhập nhằng về ngữ nghĩa) và cho kết quả khá
tốt khi áp dụng cho các cặp ngôn ngữ có nhiều điểm tương đồng về ngữ pháp và từ vựng (như tiếng
Pháp và tiếng Anh,...). Với những cặp ngôn ngữ ít tương đồng hơn, hoặc với nguồn có không gian nghĩa
mở (như các tác phẩm văn học), cách tiếp cận này tỏ ra thiếu hiệu quả
Dịch chuyển đổi cú pháp thực hiện phân tích cú pháp câu được nhập vào và sau đó áp dụng những
luật ngôn ngữ và từ vựng (hay còn được gọi là những luật chuyển đổi) để ánh xạ thông tin văn phạm từ
ngôn ngữ này sang ngôn ngữ khác
Dung hoà giữa mức độ phân tích cú pháp và phân giải ngữ nghĩa. Hệ dịch chủ yếu dựa vào phân tích
cú pháp, và chỉ phân giải ngữ nghĩa ở mức cần thiết để khử nhập nhằng nghĩa.
2.1. DỊCH MÁY CỔ ĐIỂN 11
Một hệ dịch máy theo phương pháp chuyển đổi hoạt động theo 3 bước:
• Phân tích: Phân tích câu cần dịch thành dãy hình thái của các từ sau đó dựng cây cú pháp cho câu.
• Chuyển đổi: Chuyển đổi cây cú pháp - ứng với mỗi luật sinh ngôn ngữ nguồn có kèm theo một
quy tắc dịch, chọn luật tương ứng trong ngôn ngữ đích để xây dựng cây cú pháp của ngôn ngữ
đích từ cây cú pháp của ngôn ngữ nguồn.
• Sinh câu đích: Từ cây cú pháp → tổng hợp từ vựng và sinh văn bản dịch.
Ưu - nhược điểm
Ưu điểm: các hệ dịch chuyển đổi cho kết quả dịch tốt do câu đích sinh ra chuyển tải được cả nội dung
về ngữ pháp và ngữ nghĩa.
Nhược điểm: các hệ dịch chuyển đổi phải đối mặt với vấn đề nhập nhằng về văn phạm và nhập nhằng
về ngữ nghĩa, có nhiều phương pháp được xây dựng để vượt qua hai vấn đề nan giải này, nhưng hiện
tại chưa có một phương pháp nào chứng tỏ sự vượt trội về mặt kết quả.
2.1.3 Dịch dựa trên ngôn ngữ trung gian (liên ngữ)
Như mô hình và lý thuyết đã nêu, dịch liên ngữ là một phương pháp dịch máy sát nghĩa nhất.
Sơ đồ hình tháp dưới đây thể hiện sự tương quan giữa ba phương pháp dịch trong việc xử lý dữ liệu
dịch, trong đó, dịch liên ngữ nằm ở mức cao nhất trong việc hiểu ý nghĩa của câu
Ưu - nhược điểm
Ưu điểm:
12 CHƯƠNG 2. CÁC PHƯƠNG PHÁP DỊCH MÁY
• Kết quả dịch rất tốt do câu đích biểu đạt được nội dung của câu nguồn về mặt: từ vựng, ngữ pháp
và ngữ nghĩa.
• Xây dựng các hệ dịch đa ngôn ngữ bằng liên ngữ rất thuận lợi: Ta chỉ cần xây dựng tri thức chuyển
đổi giữa ngôn ngữ mới và liên ngữ.
Nhược điểm:
• Chưa có mô hình thực tế cũng như lý thuyết nào xây dựng liên ngữ đủ phong phú để có thể biểu
đạt mọi sắc thái trong ngôn ngữ khác (cho đến nay).
• Dịch liên ngữ xây dựng một ngôn ngữ trung gian biểu diễn độc lập với mọi ngôn ngữ tự nhiên và
biểu diễn được mọi sự khác biệt về ý nghĩa đến mức tinh tế nhất của mọi ngôn ngữ có trong hệ
dịch đó. Khó khăn lớn nhất là không dễ xây dựng một ngôn ngữ trung gian!
Tiếp cận dịch máy dựa trên thống kê xuất hiện vào cuối những năm 1980, được đề xuất bởi trung tâm
nghiên cứu IBM TJ Watson với hệ dịch máy Anh-Pháp Candide. Ý tưởng dịch máy bằng thống kê rất
đơn giản và thuần túy toán học: Thay vì xây dựng các từ điển, các quy luật chuyển đổi bằng tay, hệ dịch
này tự động xây dựng các từ điển, các quy luật dựa trên thống kê. Cách tiếp cận này không đòi hỏi sự
phân tích sâu về ngôn ngữ, chúng thực hiện hoàn toàn tự động các quá trình phân tích, chuyển đổi, tạo
câu dựa trên kết quả thống kê có được từ kho ngữ liệu (corpus).
Phương pháp dịch dựa trên thống kê đòi hỏi phải có một tập dữ liệu cực lớn các câu tương đương giữa
ngôn ngữ nguồn và ngôn ngữ đích để có thể ra kết quả thống kê chính xác, đây là trở ngại cho các đề án
thực hiện theo phương pháp này vì chi phí và công sức rất lớn. Một điều rất đáng ngạc nhiên nhưng rất
logic là phương pháp dịch bằng thống kê không quan tâm đến việc xử lý ngữ nghĩa nhưng chất lượng
dịch của các phương pháp này rất cao. Hệ dịch Arập-Anh của NSA thậm chí không sử dụng từ điển
nhưng vẫn có thể dịch được nghĩa bóng của nhiều thành ngữ Arập. Vào thời điểm hiện nay, các hệ dịch
bằng thống kê đi tiên phong trong việc đạt được các câu dịch có chất lượng cao
Chương 3
Kiến trúc tổng quan của mô hình transformer bao gồm 2 phần lớn là Encoder và Decoder. Encoder dùng
để học vector biểu của câu với mong muốn rằng vector này mang thông tin hoàn hảo của câu đó. Decoder
thực hiện chức năng chuyển vector biểu diễn kia thành ngôn ngữ đích. Cụ thể, encoder của mô hình
transformer nhận một câu tiếng anh, và mã hóa thành một vector biểu diễn ngữ nghĩa của câu, sau đó
mô hình decoder nhận vector biểu diễn này, và dịch nó thành câu tiếng việt.
Ví dụ 3.1. Khi dịch câu tiếng Anh: “ little sun ”thành câu tiếng Việt: “mặt trời bé nhỏ”như sau:
Một trong những ưu điểm của transformer là mô hình này có khả năng xử lý song song cho các từ. Các
encoder của mô hình transformer bao gồm nhiều encoder layer khác, mỗi encoder layer này xử lý đồng thời
các từ.
13
14 CHƯƠNG 3. MÔ HÌNH TRANSFORMER CHO DỊCH MÁY
Chúng ta sẽ đi tìm hiểu một số khía cạnh cần thiết trước khi sâu vào tìm hiểu hai thành phần chính của
mô hình.
Word embedding
Word Embedding là tên gọi chung của các mô hình ngôn ngữ và các phương pháp học theo đặc trưng
trong Xử lý ngôn ngữ tự nhiên(NLP), ở đó các từ hoặc cụm từ được ánh xạ sang các vector số (thường là
số thực). Đây là một công cụ đóng vai trò quan trọng đối với hầu hết các thuật toán, kiến trúc Machine
Learning, Deep Learning trong việc xử lý đầu vào ở dạng text, do chúng chỉ có thể hiểu được đầu vào ở
dạng là số, từ đó mới thực hiện các công việc phân loại, hồi quy,. . .
• Frequency-based embedding,
• Prediction-based embedding.
Trong phạm vi tiểu luận này, chúng ta sẽ dừng lại ở khái niệm word embedding mà không đi sâu vào cách
tạo word embedding
Position Encoding dùng để đưa thông tin về vị trí của các từ vào mô hình transformer.
Đầu tiên, các từ được biểu diễn bằng một vector sử dụng một ma trận word embedding có số dòng bằng
kích thước của tập từ vựng. Sau đó các từ trong câu được tìm kiếm trong ma trận này, và được nối
nhau thành các dòng của một ma trận 2 chiều chứa ngữ nghĩa của từng từ riêng biệt. Transformer xử lý
các từ song song, do đó, với chỉ word embedding mô hình không thể nào biết được vị trí các từ. Như
vậy, chúng ta cần một cơ chế nào đó để đưa thông tin vị trí các từ vào trong vector đầu vào. Đó là lúc
positional encoding xuất hiện và giải quyết vấn đề của chúng ta.
Vị trí của các từ được mã hóa bằng một vector có kích thước bằng word embedding và được cộng trực
tiếp vào word embedding.
3.2. ENCODER 15
Cụ thể, tại vị trí chẵn, ta sử dụng hàm sin, và với vị trí lẽ ta sử dụng hàm cos để tính giá trị tại chiều đó.
sin ωt · t nếu i = 2k 1
pit = f (t)i = , với ωt =
cos ωt · t nếu i = 2k + 1 100002k/d
3.2 Encoder
Encoder của mô hình transformer có thể bao gồm nhiều encoder layer tương tự nhau. Mỗi encoder layer
của transformer lại bao gồm 2 thành phần chính là multi head attention và feedforward network, ngoài
ra còn có skip connection và normalization layer.
Encoder đầu tiên sẽ nhận ma trận biểu diễn của các từ đã được cộng với thông tin vị trí thông qua
positional encoding. Sau đó, ma trận này sẽ được xử lý bởi Multi Head Attention. Multi Head Attention thật
chất là self-attention, nhưng mà để mô hình có thể có chú ý nhiều kiểu hình khác nhau, mô hình đơn giản
là sử dụng nhiều self-attention.
16 CHƯƠNG 3. MÔ HÌNH TRANSFORMER CHO DỊCH MÁY
Self Attention cho phép mô hình khi mã hóa một từ có thể sử dụng thông tin của những từ liên quan tới
nó. Ví dụ khi từ nó được mã hóa, nó sẽ chú ý vào các từ liên quan như là mặt trời.
Có thể tưởng tượng rằng cơ chế self attention giống như cơ chế tìm kiếm. Với một từ cho trước, cơ chế
này sẽ cho phép mô hình tìm kiếm trong cách từ còn lại, từ nào “giống”để sau đó thông tin sẽ được mã
hóa dựa trên tất cả các từ trên.
Đầu tiên, với mỗi từ chúng ta cần tạo ra 3 vector: query, key, value vector bằng cách nhân ma trận biểu
diễn các từ đầu vào với ma trận học tương ứng.
• Query vector: vector dùng để chứa thông tin của từ được tìm kiếm, so sánh. Giống như là câu
query của google search.
• Key vector: vector dùng để biểu diễn thông tin các từ được so sánh với từ cần tìm kiếm ở trên. Ví
dụ, như các trang web mà google sẽ so sánh với từ khóa mà bạn tìm kiếm.
• Value vector: vector biểu diễn nội dung, ý nghĩa của các từ. Các bạn có thể tượng tượng, nó như
là nội dung trang web được hiển thị cho người dùng sau khi tìm kiếm.
Để tính tương quan, chúng ta đơn giản chỉ cần tính tích vô hướng dựa các vector query và key. Sau đó
dùng hàm softmax để chuẩn hóa chỉ số tương quan trong đoạn 0 − 1, và cuối cùng, tính trung bình cộng
có trọng số giữa các vector values sử dụng chỉ số tương quan mới tính được.
Cụ thể hơn, quá trình tính toán attention vector có thể được tóm tắt làm 3 bước như sau:
Bước 1: Tính ma trận query, key, value bằng cách khởi tạo 3 ma trận trọng số query, key, vector,
sau đó nhân input với các ma trận trọng số này để tạo thành 3 ma trận tương ứng.
Bước 2: Tính attention weights. Nhân 2 ma trận key, query vừa được tính ở trên với nhau để với
ý nghĩa là so sánh giữa câu query và key để học mối tương quan. Sau đó thì chuẩn hóa
về đoạn [0 − 1] bằng hàm softmax. 1 có nghĩa là câu query giống với key, 0 có nghĩa là
không giống.
Bước 3: Tính output. Nhân attention weights với ma trận value. Điều này có nghĩa là chúng ta
biểu diễn một từ bằng trung bình có trọng số (attention weights) của ma trận value.
3.2. ENCODER 17
Chúng ta muốn mô hình có thể học nhiều kiểu mối quan hệ giữa các từ với nhau. Với mỗi self-attention,
chúng ta học được một kiểu hình, do đó để có thể mở rộng khả năng này, chúng ta đơn giản là thêm
nhiều self-attention. Tức là chúng ta cần nhiều ma trận query, key, value mà thôi. Giờ đây ma trận trọng
số key, query, value sẽ có thêm 1 chiều nữa - chiều sâu (depth).
Multi head attention cho phép mô hình chú ý đến đồng thời những mẫu dễ quan sát được như sau.
3.3 Decoder
Decoder thực hiện chức năng giải mã vector của câu nguồn thành câu đích, do đó decoder sẽ nhận thông
tin từ encoder là 2 vector key và value. Kiến trúc của decoder rất giống với encoder, ngoại trừ có thêm một
multi head attention nằm ở giữa dùng để học mối liên quan giữ từ đang được dịch với các từ được ở câu
nguồn.
Masked Multi Head Attention tất nhiên là multi head attention mà chúng ta đã nói đến ở trên, có chức năng
dùng để encode các từ câu câu đích trong quá trình dịch, tuy nhiên, lúc cài đặt chúng ta cần lưu ý rằng
phải che đi các từ ở tương lai chưa được mô hình dịch đến, để làm việc này thì đơn giản là chúng ta chỉ
cần nhân với một vector chứa các giá trị 0, 1.
Trong decoder còn có một multi head attention khác có chức năng chú ý các từ ở mô hình encoder, layer
này nhận vector key và value từ mô hình encoder, và đầu ra từ layer phía dưới. Đơn giản bởi vì chúng ta
muốn so sánh sự tương quan giữa từ đang được dịch với các từ nguồn.
3.3. DECODER 19
3.3.2 Fully Connected Layer cuối cùng, hàm softmax và hàm loss
Giống như nhiều mô hình khác, chúng ta cần thêm một fully connected layer để chuyển đầu ra từ layer
phía trước thành ma trận có chiều bằng số từ mà ta cần dự đoán.
Sau đó thì đến hàm softmax để có thể tính được xác suất của từ xuất hiện tiếp theo là bao nhiêu.
[1] Speech and Language Processing: An Introduction to Natural Language Processing Computational
Linguistics and Speech Recognition, Daniel Jurafsky & James H. Martin 2006
[2] https://towardsdatascience.com/transformers-89034557de14
[3] https://github.com/pbcquoc/transformer
21