You are on page 1of 21

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

PHAN THÀNH NHÂN - PHAN MINH HUY

DỊCH MÁY

TIỂU LUẬN MÔN HỌC

Xử lý ngôn ngữ tự nhiên

Tp. Hồ Chí Minh - 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

PHAN THÀNH NHÂN - PHAN MINH HUY

DỊCH MÁY

TIỂU LUẬN MÔN HỌC

Xử lý ngôn ngữ tự nhiên

GIẢNG VIÊN

PGS.TS. Đinh Điền

Tp. Hồ Chí Minh - 2021


Mục lục

1 GIỚI THIỆU 5

1.1 Khái niệm về dịch máy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Tại sao chúng ta cần dịch máy? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Tại sao dịch máy là rất khó? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4 Lịch sử dịch máy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Các phương pháp dịch máy 9

2.1 Dịch máy cổ điển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 Dịch trực tiếp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.2 Dịch dựa trên chuyển đổi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1.3 Dịch dựa trên ngôn ngữ trung gian (liên ngữ) . . . . . . . . . . . . . . . . . . . . . 11

2.2 Dịch máy dựa trên thống kê . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Mô hình transformer cho dịch máy 13

3.1 Tổng quan mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2.1 Self-attention layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2.2 Multi Head Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3 Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3.1 Masked Multi Head Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3.2 Fully Connected Layer cuối cùng, hàm softmax và hàm loss . . . . . . . . . . . . . 19

Tài liệu tham khảo 20

3
4 MỤC LỤC
Chương 1

GIỚI THIỆU

1.1 Khái niệm về dịch máy

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

1.2 Tại sao chúng ta cần dịch máy?

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.

Dùng máy dịch Dùng người dịch

- Chi phí rẻ; - Có thể sử dụng ngôn ngữ tinh vi, rất phức

- Tốc độ dịch nhanh; tạp;

Ư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.

lớn; - Có thể cải tiến bản dịch thô thành bản

- 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).

- Thường đưa ra bản dịch có độ chính xác - Chi phí cao;

thấp; - Mất nhiều thời gian.

- 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).

- Không thể sử dụng kinh nghiệm hay cảm

xúc của người viết;

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.

1.3 Tại sao dịch máy là rất khó?

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

• Sự đa dạng của ngôn ngữ trên thế giới

− Trật tự từ: SOV, SVO, VSO, OSV;


− Trật tự từ tự do và theo quy tắc;
− Sự khác nhau về cách diễn đạt của cùng một khái niệm
− ...

• Sự nhập nhằng trong ngôn ngữ

− Từ đồng nghĩa;
− Từ nhiều nghĩa;
− ...

• Sự đa dạng về các hình thái ngôn ngữ

− Sự khác nhau về đơn vị từ.


− ...

1.4 Lịch sử dịch máy

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.

• Giai đoạn 1930 - 1940


Từ thế kỷ 17 nhiều nhà nghiên cứu đã có những nỗ lực đầu tiên trong việc xây dựng một cách
biểu diễn chung cho tất cả các ngôn ngữ. Năm 1933, đã có hai phát minh được cấp bằng sáng chế
liên quan đến việc xây dựng các thiết bị dịch ngôn ngữ. George Artsrouni một người Pháp gốc
Armenia đã thiết kế một thiết bị lưu trữ có thể tìm kiếm nhanh chóng các cặp từ - giải nghĩa của
hai cặp ngôn ngữ bất kỳ. Cũng trong năm đó, một người Nga tên là Petr Smirnov-Troyanskii đã
thiết kế một thiết bị dịch máy gồm 3 công đoạn: Phân tích câu nguồn, chuyển đổi từ ngữ và sinh
câu đích. Thiết kế của Troyanskii tuy chưa bao giờ trở thành hiện thực nhưng nó là ý tưởng cơ bản
cho nhiều loại máy dịch được thiết kế sau này.

• Giai đoạn 1940 - 1970


Vào cuối những năm 1940, khi máy tính đã được phát minh và ứng dụng thành công vào việc
giải mật mã, nhiều người đã nghĩ đến khả năng ứng dụng máy tính vào việc phiên dịch với quan
điểm coi việc dịch từ một ngôn ngữ bất kỳ sang tiếng Anh tương tự như việc giải mã một văn
bản tiếng Anh được viết bằng một loại mật mã nào đó. Khái niệm dịch máy (machine translation)
được Warren Weaver đề ra vào năm 1949. Những chương trình dịch tự động đầu tiên đơn giản chỉ
sử dụng phương pháp dịch từ sang từ (word-for-word translation) đã cho những kết quả rất giới
hạn vì từ ngữ có nghĩa khác nhau trong những ngữ cảnh khác nhau. Năm 1954, công ty IBM và
trường đại học tổng hợp Georgetown hợp tác xây dựng một chương trình dịch tự động Nga-Anh
nhưng kết quả rất hạn chế. Với khả năng giới hạn của máy tính trong những năm 1950-1960 và
việc nghiên cứu lý thuyết xử lý ngôn ngữ tự nhiên còn chập chững, các kết quả thu được trong
lĩnh vực dịch tự động thời kỳ này không đạt được kết quả khả quan.
8 CHƯƠNG 1. GIỚI THIỆU

• Giai đoạn 1970 - 1990


Vào đầu những năm 1970, sau một số thành công trong nghiên cứu về lý thuyết xử lý ngôn ngữ tự
nhiên và sức mạnh của máy tính cũng tăng lên đáng kể (với sự ra đời của mạch tích hợp), nhiều
trung tâm nghiên cứu bắt đầu quay lại đầu tư vào dịch máy Hàng loạt đề án dịch tự động của rất
nhiều tổ chức và quốc gia được triển khai như

– 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.

• Giai đoạn 1990 - nay


Đầu những năm 1990, với sự phát triển mạnh mẽ của Internet, nhu cầu trao đổi thông tin bùng
nổ, cộng với sự tích lũy kiến thức về mặt ngôn ngữ, sức mạnh của máy tính tăng lên hàng ngày
và nhiều thành tựu mới về mặt lý thuyết, việc phát triển các hệ thống dịch tự động trở nên rất cần
thiết. Ngày nay, chất lượng của nhiều hệ thống dịch đã ở mức chấp nhận được và một số các ứng
dụng dịch tự động đã đi vào cuộc sống trong một số lĩnh vực hẹp.
Theo ước tính của John Hutchins, vào năm 2001, có khoảng 1000 phần mềm dịch tự động các ngôn
ngữ được bán trên thị trường. Tiêu biểu nhất trong thời điểm hiện nay là các server dịch tự động
trên Internet; chẳng hạn dịch vụ Babel Fish, WorldLingo hay dự án của công ty Microsoft cộng tác
với trường đại học tổng hợp Stanford cho việc nhận dạng chữ viết, nhận dạng tiếng nói, dịch tự
động, tóm tắt nội dung.
Tại Việt Nam, ngoài chương trình dịch tự động Anh-Việt EVTran 3.0 của tác giả Lê Khánh Hùng,
còn có một số các chương trình khác nhưng mới chỉ đang được thử nghiệm trong phạm vi hẹp chứ
chưa được đưa ra thị trường. Các chương trình dịch tự động được nghiên cứu tại Việt Nam chủ
yếu hướng vào việc dịch tự động Anh-Việt do có sẵn khá nhiều kết quả nghiên cứu về tiếng Anh,
dịch từ tiếng Anh sang ngôn ngữ khác để có thể áp dụng vào chương trình.
Chương 2

Các phương pháp dịch máy

2.1 Dịch máy cổ điển

Có 3 chiến lược dịch máy chủ yếu và các biến thể bao gồm:

• Dịch trực tiếp;

• Dịch dựa trên chuyển đổi

• Dịch dựa trên ngôn ngữ trung gian (liên ngữ)

2.1.1 Dịch trực tiếp

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

Các giai đoạn

Một hệ dịch trực tiếp hoạt động theo 3 giai đoạn:

• 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ừ.

• Sinh câu đích thích hợp.

Ư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ả

2.1.2 Dịch dựa trên chuyển đổi

Dịch chuyển đổi cú pháp

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

Dịch chuyển đổi cú pháp cộng phân giải ngữ nghĩa

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

Quy trình dịch chuyển đổi

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!

2.2 Dịch máy dựa trên thống kê

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

Mô hình transformer cho dịch máy

3.1 Tổng quan mô hình

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,. . .

Word Embedding được phân chủ yếu thành 2 loại:

• 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

Phương pháp sinusoidal position encoding

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

3.2.1 Self-attention layer

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

3.2.2 Multi Head Attention

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.

• Chú ý đến từ kế trước của một từ


18 CHƯƠNG 3. MÔ HÌNH TRANSFORMER CHO DỊCH MÁY

• Chú ý đến từ kế sau của một từ

• Chú ý đến những từ liên quan của một từ

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.

3.3.1 Masked Multi Head Attention

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.

Hàm loss ta sử dụng là cross-entropy loss .


20 CHƯƠNG 3. MÔ HÌNH TRANSFORMER CHO DỊCH MÁY
Tài liệu tham khảo

[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

You might also like