Trong khi đó, chatbot được sử dụng để tán gẫu chat-chit, giáo dục, giải trí, tin tức, ...; thường được xây dung dựa trên i hệ thống luật hoặc ii dùng mô hình máy học với dạng context-res
Trang 1ĐẠI HỌC QUỐC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THONG TIN
KHOA KHOA HỌC MÁY TÍNH
PHAM THỪA TIỂU THÀNH
ĐẶNG QUỐC TIẾN
KHÓA LUẬN TỐT NGHIỆP
DỰA TREN MÔ HÌNH BERT CHO TIENG VIỆT
BERT-BASED EMPATHETIC CHATBOT FOR THE
VIETNAMESE LANGUAGE
CỬ NHÂN NGANH KHOA HOC MAY TÍNH
Trang 2ĐẠI HỌC QUỐC GIA TP HO CHÍ MINH
TRUONG DAI HỌC CÔNG NGHỆ THONG TIN
KHOA KHOA HỌC MAY TÍNH
PHAM THUA TIEU THANH - 17521056
DANG QUOC TIEN - 17521121
KHOA LUAN TOT NGHIEP
XAY DUNG CHATBOT BIET CAM THONG DUA TREN MO HÌNH BERT CHO TIENG VIỆT
BERT-BASED EMPATHETIC CHATBOT FOR THE
VIETNAMESE LANGUAGE
CỬ NHÂN NGANH KHOA HỌC MAY TÍNH
GIẢNG VIÊN HƯỚNG DẪN
TS NGUYÊN LƯU THÙY NGÂN
TP HO CHÍ MINH, 2021
Trang 3DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
ngay của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1 PGS.TS Lê Đình Duy - Chủ tịch.
2 Th§ Nguyễn Bích Vân - Thư ký.
3 TS Nguyễn Vinh Tiệp - Ủy viên.
Trang 4LỜI CẢM ƠN
Chúng em xin được gửi lời cảm ơn chân thành đến các thầy cô, anh chị và đồng nghiệp của trường Đại học Công nghệ thông tin đã luôn sát cánh và hỗ trợ chúng em trong suốt thời gian qua Xin được gửi lời cảm ơn đặc biệt đến giáo viên hướng dẫn, tiễn sĩ Nguyễn Lưu Thuy Ngân đã tận tình hướng dẫn cho chúng em xuyên suốt hành trình thực hiện đề tài này, nếu không có những chỉ điểm, nhận xét và động viên từ cô có lẽ sẽ còn rất nhiều khó khăn để đề tài này
được hoàn thành.
Ngoài những hướng dẫn từ thầy cô, chúng em cũng xin gửi lời cảm ơn sâu sắc nhất đến các anh chị, bạn bè tại Phòng Thí nghiệm Truyền thông Đa phương
tiện đã tạo nên một môi trường làm việc chuyên nghiệp, nghiêm túc, ngoài ra
những sự giúp đỡ, những câu hỏi và góp ý từ mọi người đều giúp ích cho chúng
em rất nhiều.
Thay cho lời kết, xin chúc cho Phòng Thí nghiệm Truyền thông Da phương
tiện nói riêng và trường Đại học Công nghệ thông tin nói chung gặt hái được
thêm nhiều thành công trong tương lai.
Xin chân thành cảm ơn,
Phạm Thừa Tiểu Thành, Đặng Quốc Tiến
Trang 52.1 Công trình liên quan ẶẶẶSe
2.2 Tóm tat những đóng góp của đề tài
-2.2.1 Bộ dữ liệu UIT-VED-27K 2.2.2 Xây dựng trình quản lí hội thoại
2.2.3 Nối thêm cảm xúc (emotion prepend) - Hướng đi mới
3.3.2 UVM
UIT-VED-27K
Trang 6CHƯƠNG 4 MÔ HÌNH CHATBOT SỬ DỤNG KIEN TRÚC BERT
4.1 Thiết kế mô hình chatbot truy vấn biết cảm thông 20
4.1.1 Mô hình téngquan 0.2000005 20 4.2_ Hệ thống truy vấn thông tỉn 2
4.3 Biểu diễn từ (Word embedding) 23
4.3.1 Transformer 2 00.00.0002 00000 0004 25 43.2 BERT 0 0000000000000 0000008 31 4.3.3 PhoBERT 0.0.0.0 2.0 000.0000 20 0004 32
4.5.2 Bộ chuyển đổi đại tỲừ co 38
4.5.3 Chiến thuật duy trì cuộc đối thoại 42
4.5.4 Kịch bản cho một cuộc trò chuyện 43 4.6 Hàm muctitu 2.0.2.0 0.00.00 0 00200000 45
4.7 Hàm mất mat ee 45
CHUONG 5 THU NGHIEM, DANH GIA
5.1 Các độ do được sử dung trong đánh giá thử nghiệm 46
5.1.2 PGRN Qua 48 5.1.3 Đánh giá bởi con người Ặ ee 49 5.2 Đánh giá bộ dữ liệu -.ẶẶẶSẶ SỰ 49
5.2.1 ULT-VED-AUTO(UVA) 49
5.2.2 UIT-VED-27K 50
Trang 75.3 Đánh giá trình quản lý hội thoại
5.3.1 Lịch sử hội thoại 2 2 ee ee ee
5.3.2 Bộ chuyển đổi đại tỲ co 5.3.3 Duy trì đối thoại ee
5.4 Đánh giá các mô hình chọn câu phan hồi
5.4.1 Các kết quả đánh giá mô hình
-5.4.2 hận xét
CHƯƠNG 6 XÂY DỰNG CHATBOT BIẾT CAM THONG
6.2 Xây dựng ứng dụng minh hoạ ằ.
CHƯƠNG 7 KET QUA, HƯỚNG PHÁT TRIEN
7.1 Kết quả đạt doe ee 7.2 Hướng phát triển 2 ee
PHU LUC A
Trang 82.1
2.2
2.3
2.4
2.6
3.1
3.2
4.1
4.2
4.3
4.4
4.6
4.7
5.1
5.2
DANH MỤC HÌNH
(a) Phản hồi đúng ngữ nghĩa nhưng sai cảm xúc (b) Chatbot
biết cam thông ee 3
Mô hình truy vấn được thử nghiệm bởi Cảnh và Trong Nguồn [2] 5
Bộ phân loại cam xtc 2 ee 6
Hạn chế của nối thêm cảm xúc - 7
Các vị trí tương đối giữa hai véc to 2 cà ào 8 Tích vô hướng giữa hai véc to © ee ee 9 Tim phải hồi bằng ghép cặp từng ứng viên (candidate) với câu truy van (context ứ%QÒ, 10
(a) Các cung bậc cảm xúc theo Plutchik (b) Các cung bậc cảm xúc theo Paul Ekman .ẶẶ 13 Cấu trúc bộ dit liệu Empathetic Dialogues 14
Mô hình tổng quan của hệ thống chatbot 21
Hệ thống truy vấn thông tỉn - 2
So sánh học nông và học sâu 24
Kiến trúc của Transformer Ặ So 26 Multi-head Attention 00000000 28 Transformer Encoder Ặ Q Q ee eee 29 Transformer Decoder ẶẶcẶẶẶ 30 Kết quả đánh giá mô hình sử dụng phương pháp nối thêm cảm xúc và mô hình sử dụng bộ phân loại cảm xúc 57
Kết quả đánh giá mô hình sử dụng hàm mục tiêu mới và mô hình
Trang 96.1
6.2
6.3
6.4
6.5
6.6
Kết quả đánh giá mô hình khi kết hợp phương pháp nối thêm
cảm xúc và hàm mục tiêu mới được thực hiện trên bộ dữ liệu
Giao diện chatbot 2.2 2.000002 Q Q QQ Q ee 62
Tro chuyện với chatbot mẫu 1 - 62
Tro chuyện với chatbot mẫu 2 ốc 63 Tro chuyện với chatbot mẫu 3 63
'Trò chuyện với chatbot mẫu 4 - 64
Trò chuyện với chatbot mẫu 5 64
A.I Cấu trúc bộ dữ liệu UIT-VED-27K 68
Trang 10Al
A.2
DANH MUC BANG
Bang phân bố số lượng câu của các nhãn của bộ dữ liệu
Trang 11DANH MỤC TỪ VIẾT TẮT
Từ viết tắt Tên day đủ Ghi chú
Bidirectional Encoder Representations from BERT
Transformers
ED Empathetic Dialogues Bộ dữ liệu
UIT - Vietnamese Empathetic Dialogues with UIT-VED-27E Bộ dữ liệu
27000 samples UVA UIT-VED-AUTO Bộ dữ liệu
UVM UIT-VED-MANUAL Bộ dữ liệu
Trang 12h, đối tượng và phạm vi nghiên cứu.
Con người và máy móc khác nhau, đó là điều không thể phủ nhận Một bên
là vật vô tri vô giác, không có cảm xúc; bên còn lại
nh
rh
học tập và lam việc, đồng thời cũ
cảm xúc được biểu hiện ở
iều mặt, từ hành động, biểu cảm trên khuôn mặt cho tới lời nói, ánh nhìn,
Đối với con người, giao tiếp chính là chìa khoá để tiếp nhận kiến thức, để
gày nay, dưới sự phát triển của khoa học kĩ thuật, nị
xa cách với xã hội hoặc theo góc nhìn khác, nó vô tìn
các căn bệnh về khó giao tiếp, tránh né hoạt động xã
ng là thứ để giúp con người giãi bày với nhau.
hiều người lại càng trở nên
1 trở thành mầm bệnh cho
hội Hệ quả là những bệnh
14n này thiếu đi một người bạn để sé chia, tâm sự kỉ
nghe, không phải ai cũng có thể làm tốt việc lắng nị
tốn một khoản,
là thứ mà ai cũng trân quý.
ni cần thiết Về phía người
ghe người khác và thường
g thời gian nhất định mới đạt được hiệu quả, ngặt nỗi thời gian
Nói về các doanh nghiệp hiện nay, các hệ thống giao tiếp khách hàng ở Việt
Nam dựa chủ yếu là vào sức người, thứ mà tốn nhiều thời gian và công sức để
đào tạo và vận hành, cũng như chỉ đáp ứng được một số lượng người dùng nhất
định tại một thời điểm và chỉ hoạt động trong một khoảng thời gian cụ thể nào
đó trong ngày (ví dụ giờ hành chính hoặc làm theo ca), đó chính là những điểm yếu trong thực tế của các hệ thống chăm sóc khách hàng hiện nay.
Xuất phát từ các nhu cầu và điểm yếu kể trên, ¢ húng tôi thực hiện đề tài:
Xây dựng chatbot biết cảm thông dựa trên mô hình BERT cho tiếng
Việt sử dụng phương pháp truy vấn thông tin ứng dụng mô hình học sâu BERT
để giải quyết bài toán với mong muốn ứng dụng tự động hoá vào việc giúp đỡ
Trang 13những người Việt gặp khó khăn trong giao tiếp có thêm một người bạn để an
ủi, tâm sự cũng như có thể tích hợp vào một hệ thống giao tiếp khách hàng đa
năng.
Trong thời gian gần đây, có hai khái niệm dễ gây hiểu nhầm, đó là trợ lí
ảo (điển hình như Google Assistant của Google hay Cortana của Microsoft) và
chatbot Về cơ bản, chatbot và trợ lí ảo là hai thuật ngữ khác nhau nhưng không tách biệt nhau hoàn toàn, cả hai có chung đầu vào, và đầu ra là thực hiện
một nhiệm vụ nào đó.
Trợ lí ảo thay thế con người trong các tác vụ thường xuyên lặp lại một cách
nhàm chán, ví dụ đặt lịch báo thức, tìm địa điểm trên bản đồ, nhắc nhở công
việc, với các mô đun công việc cụ thể Nhiệm vụ của một trợ lí ảo là phải
hiểu người dùng đang gọi mô đun nào và phân tích câu lệnh để thực hiện và trợ
lí ảo không được thiết kế cho việc bầu bạn cùng người dùng Tuy nhiên, người
dùng vẫn có thể giải toả tâm trạng bằng cách chỉ rõ mong muốn của mình, ví
dụ “Hãy đọc một mẫu truyện ngắn cho tôi nghe” hay “Mở bài hát tiền nhiều để
làm gì cho tôi”.
Trong khi đó, chatbot được sử dụng để tán gẫu (chat-chit), giáo dục, giải trí,
tin tức, ; thường được xây dung dựa trên (i) hệ thống luật hoặc (ii) dùng mô
hình máy học với dạng context-response matching (tạm dịch bắt cặp câu đầu
vào và câu đầu ra) hay response selection model (mô hình chọn lựa câu phan hồi), như vậy chatbot linh hoạt hơn trong các tác vụ so với trợ lí ảo vì câu đầu vào không bị rap khuôn, thích hợp với văn phong đời thường hơn Dang (i) điển hình như ELIZA (1966) được xây dựng dựa theo lí thuyết tâm lí học, các phản hồi trở nên khô cứng và lặp lại các từ mà người dùng vừa đưa ra gây ra cảm
Trang 141.2 Mô tả bài toán
Nghiên cứu này là về xây dựng một chatbot biết cảm thông nhằm giúp mọi người có thêm một người bạn để trao đổi và tâm sự Chatbot biết cảm thông là
hệ thống có khả năng “dự đoán được tâm trạng hiện tại của người dùng”
để đưa ra phản hồi phù hợp về ngữ nghĩa và cảm xúc Nói cách khác, chatbot
biết cảm thông là chatbot đưa ra phản hồi phù hợp với tâm trạng của người dùng, giúp họ cảm thấy tốt hơn, xem các ví dụ hình 1.1.
CN là tuổi trẻ thường Bạn rất may mắn đầy và
CN phạm sai lầm mà đứa bé cũng rất ngoan!
Gn a, vậy, tôi đã trả on cho cậu
(a) (b)
Lúc nãy tôi làm rơi vi, may mà
có một cậu bé được và trả lại
Lúc nấy tôi làm rơi vi, may mà
có một cậu bé được và trả lại
Hình 1.1 (a) Phản hoi đúng ngữ nghĩa nhưng sai cém súc (b) Chatbot biết
cam thông.
- Đầu vào: Câu nói của người dùng thường dùng trong đời sống hằng ngày,
thường là câu để bộc lộ cảm xúc dựa trên hoàn cảnh thực tại, ví du “Nay
ra ngoài đường làm rơi ví mà loay hoay mãi vẫn không tìm lại được, tức
thật!”, và câu nói không nhắm tới một nhiệm vụ cụ thể nào như hỏi đáp,
đặt phòng.
- Đầu ra: Câu phản hồi lại câu nói của người dùng phù hợp về ngữ nghĩa và cảm xúc, câu phản hồi không nhất thiết phải là câu cảm than, nó có thể là câu hỏi “Sao lại có thể như vậy chứ?”, hoặc câu trần thuật “Tôi cũng từng
có một gia đình hạnh phúc”.
Trang 151.3 Mục tiêu
- Mở rộng bộ dữ liệu tiếng Việt để sử dụng cho đề tài.
- Cải tiến phương pháp chọn câu phản hồi dựa trên mô hình BERT.
- Nghiên cứu và xây dựng trình quan lí hội thoại.
- Xây dựng ứng dụng minh hoạ các kỹ thuật đã nghiên cứu.
1.4 Đối tượng và phạm vi nghiên cứu
1.41 Đối tượng
- Dữ liệu hội thoại cảm thông.
- Phương pháp mã hoá câu thành véc tơ ngữ nghĩa với BERT và PhoBERT.
- Các phương pháp truy vấn thông tin ứng dụng trong chatbot và phương
pháp quản lí hội thoại.
1.4.2 Phạm vi
Đề tài này tập trung vào các cuộc trò chuyện thể hiện sự cảm thông trong giao tiếp thường ngày, xét trong phạm vi tiếng Việt, không chú trọng vào các nhiệm vụ cụ thể như hỏi đáp, nhắc lịch,
Trang 16CHƯƠNG 2 TỔNG QUAN
Chương này trình bày các nghiên cứu liên quan và các vấn đề còn tồn tại,
từ đó dẫn đến các vấn đề chúng tôi tập trung nghiên cứu giải quyết, đồng thời
trình bày tóm tắt những đóng góp trong đề tài.
2.1 Công trình liên quan
Nghiên cứu [2] đã phân biệt rõ hai loại hình chatbot có ứng dụng kĩ thuật
học sâu là retrieval-based (truy vấn thông tin) và generative-based (sinh văn
bản) Vì tiếng Việt là ngôn ngữ có nguồn dữ liệu chưa đủ nhiều, cụ thể trong
phạm vi đề tài này chỉ có bộ dữ liệu UIT-VED với 7200 mau dit liệu, trong khi
đó tiếng Anh với các bộ dữ liệu lớn như Reddit! (với khoảng 1.7 tỉ câu bìnhluận được chép từ Reddit), Daily Dialog, Empathetic Dialogues’, cộng vớiviệc mô hình generative-based cần một lượng dữ liệu lớn nếu muốn đạt kết quakhả quan, nên [2] đã thử nghiệm mô hình chatbot cảm thông dựa trên truy vấnthông tin ứng dụng BERT cho tiếng Việt như hình 2.1
Hình 2.1 Mô hành truy van được thủ nghiệm bởi Cảnh va Trong Nguồn [2]
Trong đó, context là câu truy van (câu dau vào), candidates là các phan hôi
https: //affect.media.mit.edu/neural_chat/datasets/
*nttps://dl.fbaipublicfiles.com/parlai/empatheticdialogues/
empatheticdialogues.tar.gz
Trang 17có săn trong bộ dữ liệu (câu ứng viên) Chúng tôi nhận thấy một số nhược điểm
ở kiến trúc chatbot này như sau:
- Mô hình chưa giải quyết được vấn đề sai đại từ xưng hô giữa chatbot và người
sử dụng Ví dụ:
Câu truy vấn: “Em cho anh mượn cuốn sách nay được không?”
Câu phản hồi mong muốn: “Anh muốn mượn cuốn sách nào?”
Câu phản hồi thu được: “Chi muốn muon cuốn sách nào?”
Trong ví dụ trên, chatbot đưa ra câu phản hồi sai dai từ xưng hô là “chi”
khi cần dai từ đúng là “anh”
- Mô hình chưa có chiến lược để duy trì một cuộc hội thoại xuyên suốt và mạch
lạc, bao gồm: bắt chuyện với người dùng, giữ mạch câu chuyện một cách rõ
ràng, kết thúc một đoạn hội thoại sao cho phù hợp
- Mô đun Phân loại và nỗi thêm cảm xúc (emotion classifier) được xây dựng
và thử nghiệm như hình 2.2 và 2.3 tồn tại các điểm hạn chế sau:
Trang 181On TÔI buôn quá.
Emotion
classifier BIEU DIEN
NGỮ NGHĨA
Tôi cũng buôn Tôi cũng buồn.
That dang buôn That đáng buôn.
Té that day Tệ that day chuyện gì vay?
Hình 2.3 Hạn chế của nối thêm cam súc
+ Câu đầu vào và câu ứng viên sau khi được phân loại cảm xúc và nối
thêm cảm xúc không tương ứng về cảm xúc và không thể hiện được yếu
tố cảm thông
+ Bộ phân loại cảm xúc sử dụng fasttext đạt kết quả F1 36% cho 32 nhãn,
dễ thấy mô đun không đủ tốt để sử dụng Đồng thời, nhận diện cảm xúc không thể chỉ dựa vào ngôn từ, mà còn có ngữ điệu, cử chỉ, chơi chữ, kinh
nghiệm Ví dụ: “Coi chừng đó nha” phản hồi lại câu trêu chọc của người
dùng, là một phép tu từ tương phản thường gặp, chứ không phải là nhãn
“cực kì tức giận” để phản hồi lại sự trêu chọc.
+ Chúng tôi thử nghiệm bộ phân loại cam xúc sử dụng PhoBERT cho 3 nhãn
“vui, buồn và trung lập” với Fl = 86% va accuracy = 87% không cải thiện
kết quả (p@1,100 giảm từ 34.33% còn 31.83%, thông tin về p@1,100 ở [mục
5.1.2]), thử nghiệm của [8] cũng cho thấy phân loại nhãn cảm xúc không
mang lại kết quả tích cực.
- Về hàm mục tiêu, [8] xét tới 2 phương án để tìm ra độ tương đồng giữa hai véc tơ embedding (véc tơ biểu diễn ngữ nghĩa cho câu đầu vào và câu ứng
viên) là độ tương đồng cosine và tích vô hướng, trong đó độ tương đồng cosine
là phiên bản chuẩn hoá của tích vô hướng Đối với hệ thống truy vấn, độ tương
ĩ
Trang 19đồng giữa ứng viên và câu truy vấn là điểm số, ứng viên nào có điểm số cao nhất chính là phản hồi của chatbot, xét công thức tính điểm cho ứng viên [8]
đã thử nghiệm:
score(u,v) —= tụ - 0Ÿ (2.1)
Trong đó:
+ ula một véc tơ 768 chiều biểu diễn ngữ cảnh của câu đầu vào.
+ ø là một véc tơ 768 chiều biểu diễn ngữ nghĩa cho một ứng viên
Chúng tôi cho rằng việc chi sử dụng mỗi độ đo tương đồng cosine và tích vô
hương là chưa đủ hiệu quả, xem hình 2.4.
lot
Hình 2.4 Các vi trí tương đối giữa hai uéc tơ
Dễ thấy rằng hình 2.4(a) là hai véc tơ khác biệt nhất và hình 2.4(c) là hai véc tơ tương đồng nhất Nếu như sử dụng độ tương đồng cosine để làm hàm mục tiêu thì chúng ta không thể tận dụng được yếu tố thông tin khoảng cách
của hai véc tơ dẫn đến kết quả của hình 2.4(b) và hình 2.4(e) sẽ là như nhau
(cùng điểm số) vì chúng có cùng số đo góc Trong khi đó, nếu xét đến phương
án sử dụng tích vô hướng thay thế cho cosine thì vẫn xảy ra một vấn đề như
sau: Tích vô hướng sẽ cho kết quả điểm số càng cao nếu như độ lớn của các véc
Trang 20đổi; u; là véc tơ ứng cử viên; đ là độ dài hình chiếu của véc tơ q lên véc tơ ứng
cử viên thứ ¡ Khi sử dụng tích vô hướng làm hàm mục tiêu, giá trị này được
tính bằng công thức socre (q, ui) = |q|.|ui|.cos(q, ui) = d.|u¿|, giá trị trả về lúc
này chỉ phụ thuộc vào mỗi độ dài của véc tơ ứng cử viên (do véc tơ ø và số đo
góc không thay đổi nên độ dài hình chiếu đ cũng không thay đổi), nếu giá trị
này càng lớn thì cho điểm số càng lớn (tỷ lệ thuận) Theo như hình 2.5, kết quả của tích vô hướng sẽ cho rằng c là véc tơ có độ tương đồng với ạ nhất nhưng thực tế thì b mới là véc tơ cần phải tìm.
Như vậy, tích vô hướng cũng như cosine đã tỏ ra không hiệu quả khi không
đánh giá được độ tương đồng giữa hai véc tơ có cùng có số đo góc Câu hỏi đặt
ra rằng chúng ta phải làm sao để khắc phục nhược điểm của hai độ đo này.
Tương ứng với từng hạn chế trên, chúng tôi đề xuất:
1 Bộ chuyển đổi đại từ [mục 4.5.2].
2 Trình quản lí hội thoại [mục 4.5].
3 Phương pháp nối thêm cảm xúc - emotion prepend [mục 4.4.1]
Trang 214 Thử nghiệm hàm mục tiêu mới - sự kết hợp giữa độ tương đồng khoảng
cách Euclidian? và tích vô hướng [mục 4.6]
Các kiến trúc truy van thông tin khác
Khao sát một số nghiên cứu [12, 13] trong danh sách * đều sử dụng kiến trúc
Xét về mặt thực tiễn, với mỗi câu truy van, hệ thống phải tính toán các giá
trị “IS RESPONSE” trong [0,1] trên toàn bộ bộ dữ liệu và đầu ra là câu ứng
viên có điểm số cao nhất Chúng tôi sử dụng nền tảng Colab để thử nghiệm
“https: //developers google.com/machine-learning/clustering/similarity/
measuring-simi larity
‘https: //paperswithcode
com/sota/conversational-response-selection-on-ubuntu-1 (truy cập lúc 20-01-2021)
Trang 22mô hình trên (GPU Telsa K80 12GB GDDR5 VRAM), kết quả là với 11000 câu
ứng viên, mô đun này cần 60 giây để tìm ra câu phản hồi cho mỗi câu truy vấn, đồng nghĩa với việc mỗi lần người dùng nhắn một tin cho chatbot phải đợi 60
giây mới nhận được câu phản hồi Khi số lượng ứng viên tăng con số 60 giây sẽ
còn tăng, vậy nên đây là một kiến trúc không đáp ứng được về mặt thực tiễn.
Cách tiến hành khác là chia hệ thống context & candidates embedding rathành 2 mô đun riêng biệt có chung kiến trúc: context embedding và candidatesembedding Nhưng vì dữ liệu huấn luyện chưa nhiều cộng với việc tham số huấn
luyện tăng gấp đôi (vì có hai mô hình) khiến cho việc biểu diễn ngữ nghĩa thiếu
tính tổng quát và mô hình nhanh overfit hơn Kết quả đánh giá cho thấy: tách
bộ embedding ra không cải thiện kết quả trong hoàn cảnh hiện tại (thông tin
Xuất phát từ bộ dữ liệu gốc Empathetic Dialogues (ED - tiếng Anh) [8], bộ
dữ liệu UTT-VED (tiếng Việt) [2] gồm 2 bộ con: UVA (dịch ED bằng thư viện
googletrans °) và UVM (dịch thủ công bộ ED) Vì bộ dữ liệu UVM đảm bảo vềmặt ngữ pháp và văn phong tiếng Việt nên thích hợp sử dụng trong huấn luyện
và đánh giá mô hình Tuy nhiên, UVM chứa số lượng đoạn hội thoại khá ít ỏigồm 1629 đoạn hội thoại với 7213 câu đối thoại, đó là một thiếu sót lớn nếu
muốn bao quát các khía cạnh khác nhau của một cuộc trò chuyện trong cuộc
sống đời thường Vì vậy chúng tôi đã tiến hành các cập nhật cho UVM như bổ
sung thêm các mẫu dịch mới, sửa các mẫu dịch sai, gán nhãn sai Bộ dữ liệu
'https: //pypi.org/project/googletrans/
11
Trang 23UVM đã cập nhật lại chúng tôi gọi là UIT-VED-27K.
2.2.2_ Xây dựng trình quan lí hội thoại
Tham khảo công trình nghiên cứu công trình Ravenclaw - A advanced dialog
manager [1], chúng tôi đã có một số cơ sở để tiến hành thiết kế những mô đun
mới cho trình quản lí hội thoại, bao gồm:
- Xây dựng bộ chuyển đổi đại từ nhân xưng cho ngôi thứ nhất và ngôi thứ
hai, giúp chuyển đổi linh hoạt qua lại đại từ trong câu từ dạng ban đầu
về dạng chuẩn “tôi/của tôi” và “bạn/của bạn” và ngược lại một cách chính
xác và linh hoạt [mục 4.5.2].
- Duy trì hội thoại: đưa ra các câu hỏi mở, các câu duy trì đối thoại khi người
dùng dừng tương tác trong một khoảng thời gian nhất định [mục 4.5.3]
- Kịch bản hội thoại: nhận biết các câu chào hỏi và kết thúc từ người dùng,
từ đó đưa ra phản hồi phù hợp [mục 4.5.4]
2.2.3 Nối thêm cảm xúc (emotion prepend) - Hướng đi mới trong
việc xử lí cảm xúc cho chatbot
Chúng tôi đề xuất phương pháp nối thêm cảm xúc: nhãn cảm xúc cho câu phản hồi được gắn theo tâm trạng của người dùng Có tất cả 32 nhãn cảm xúc
được liệt kê bộ dữ liệu UIT-VED-27K giúp bao quát hầu hết các khía cạnh cảm
xúc trong cuộc sống thường nhật Chi tiết về cách tiến hành ở [mục 4.4.1].
2.2.4 Hàm mục tiêu mới
Chúng tôi đề xuất hàm mục tiêu mới - sự kết hợp giữa độ tương đồng khoảngcách Euclidian® và tích vô hướng [mục 4.6]
Trang 24Hình 3.1 (a) Các cưng bậc cam súc theo Plutchik (b) Các cưng bậc cam xúc
theo Paul Ekman (Nguồn 7 được chúng tôi dịch qua tiếng Việt)
Dựa theo biểu cảm trong khuôn mặt của con người và nghiên cứu nhóm cơ
mặt trong việc lộc lộ tâm trạng, Plutchik [7] chia cảm xúc thành 8 nhóm riêng
biệt, mỗi nhóm gồm 4 loại phân theo trình tự suy nghĩ và tư duy của con người,
tổng cộng có đến 32 nhãn cảm xúc khác nhau được Plutchik xác định, gom
"https: //www.sciencedirect.com/science/article/pii/B9780125587013500077,
https: //doi.org/10.1037/h0028327
13
Trang 25nhóm theo hướng nguyên nhân kết quả, ví dụ “cảnh giác” và “quan tâm” được
xếp chung 1 nhóm, hình 3.1(a) Plutchik cũng nhận định rang, cảm xúc là thứ
rất khó để định nghĩa chính xác, có tới hơn 90 định nghĩa của cảm xúc được
tính cho đến thời điểm 2001 Nghiên cứu của Ekman [3] cho rằng cảm xúc có 6
cung bậc chính, chia nhóm theo tâm trang của con người, hình 3.1(b).
3.2 Bộ dữ liệu Empathetic Dialogues
Bộ dữ liệu Empathetic Dialogues được Facebook công bố lần đầu tiên vào
năm 2019, gọi tắt là ED, được xây dựng dựa trên ngôn ngữ Anh Có tất cả
24850 đoạn hội thoại trong bộ dữ liệu này với nhiều chủ đề khác nhau được thực
hiện bởi 810 người tham dự Mỗi đoạn đối thoại có sự góp mặt của 2 người, tròchuyện về một ngữ cảnh cho trước (có chỉ rõ nhãn cảm xúc) Bộ dữ liệu đượcchia làm ba phan: train/valid/test với tỉ lệ tương ứng là khoảng 80%/10%/10%
Nhãn cảm xúc xác định trong mỗi hội thoại đã nêu trên gồm có tổng cộng
32 nhãn khác nhau được tổng hợp từ nhiều bộ dit liệu và công trình khác nhau, không theo một lí thuyết cụ thể nào, phủ được các mức độ cảm xúc khác nhau
và bao quát hầu hết các khía cạnh trong hội thoại thông thường.
Cấu trúc của bộ dữ liệu Empathetic Dialogues được trình bày như hình 3.2,
trong đó mỗi đoạn hội thoại được hai người xây dựng, một bên là người nói,
bên còn lại là người nghe trả lời người nói.
A B c D E F ^
1 jcon.id utterance_idx context prompt speaker_idx utterance +
I remember going to see the fireworks with my best friend It was the first time we ever spent time
L remember going to the fireworks with my best friend There was alone together Although there was a lot of people_comma_we felt like the only people in the
2 /hit:0_conv:1 1 sentimental a lot of people_comma_but it only felt like us in the world 1 world.
3 hit:0_conv:t 2 sentimental 0 Was this a friend you were in love with_comma_or just a best friend?
4 /hit:0_conv:t best friend | miss her.
5 she gone?
6 |hit0 conv:1 1 We no longer talk.
7 |hiE0_conv:1 6 sentimental a lot of people_comma_but it only felt ike us in the world 0 Oh was this something that happened because of an argument?
8 hit:1_conv:2 1 afraid used to scare for darkness 2 it feels like hitting to blank wall when i see the darkness
9 /hit:1_conv:2 2 afraid used to scare for darkness 3 Ohya? | don't really see how
10 jhit:1_conv:2 3 afraid used to scare for darkness 2 dont you feel so its a wonder
11 jhít1_conv:2 4 afraid used to scare for darkness 3 Ido actually hit blank walls a lot of times but i get by
12 jhit:1_conv:2 5 afraid iused to scare for darkness 2 ivirtually thought so and i used to get sweatings
13 /hit:1_conv:2 6 afraid used to scare for darkness 3 Wait what are sweatings
| showed a guy how to run a good bead in welding class and he
14 hit1_conv:3 1 proud 3 Hihow are you doing today
15 jhit:1_conv:3 2 proud
la_ trying to understand how someone can feel ike hitting a blank wall when they
16 lhit1 conv:3 3 proud
Hình 3.2 Cấu trúc bộ dit liệu Empathetic Dialogues
Trang 26Trong đó:
- Dòng đầu tiên là header, các dòng phía dưới là các câu đối thoại cùng các
thông tin khác có liên quan.
- Cột conv_ id dùng để phân biệt giữa các đoạn hội thoại với nhau.
- Cột utterance_ idx là thứ tự các câu đối thoại diễn ra trong một đoạn hộithoại (từ 1 đến tối đa là 8)
- Cột context là cảm xúc hiện thời của người nói.
- Cột prompt là ngữ cảnh mà người nói nói tới, đồng thời cột prompt là ngữ
cảnh sinh ra cảm xúc ở cột context.
- Cột speaker_ id cho biết ai đã đã xây dựng nên đoạn hội thoại đó (giá tri
từ 0 đến 809 vì có 810 người tham gia xây dựng)
- Cột utterance là phần chính của một dữ liệu này, mỗi dòng tương ứng
một câu của người nói hoặc người nghe.
- _comma_ tương ứng với dấu phẩy (*,”).
- Con một số thành phần khác nhưng tác giả của [8] không trình bay và cũngkhông mang ý nghĩa trong đề tài này nên chúng tôi không trình bày thêm
Các thông sô khác đáng quan tâm, chú ý:
- Mỗi cá nhân xây dựng bộ dữ liệu tạo ra trung bình 8 đoạn hội thoại (có
810 cá nhân cùng xây dựng).
- Trung bình một câu đối đáp có 15.2 từ
- Trung bình một đoạn đối thoại có 4.31 lượt đối đáp
15
Trang 273.3 Bộ dữ liệu UIT-VED
Bộ dữ liệu UIT-VED [2] được dịch từ bộ dữ liệu Empathetic Dialogues [8]
gồm hai bộ dữ liệu con: UVA và UVM
3.3.1 UVA
UVA là bộ dữ liệu dịch tự động bang thư viện googletrans 3.0.08 Vì được
dịch tự động nên số lượng đoạn hội thoại và tỷ lệ chia train/valid/test cũng như
phân bố nhãn cảm xúc trong bộ dữ liệu này so với bộ dữ liệu ED là như nhau
(như hình 3.2 và A.1).
3.3.2 UVM
VÌ UVM la bộ dữ liệu được xây dựng bằng cách dich thủ công bởi con người
nên đảm bảo được ngữ pháp, văn phong tiếng Việt, câu văn rõ ràng, mạch lạc
với các thành ngữ, từ lóng, đa dang, phù hợp Thông tin bộ dữ liệu bao gồm:
- Vẫn giữ nguyên 32 nhãn cảm xúc giống như bộ dữ liệu gốc
- Đố lượng hội thoại là 1629 đoạn tương ứng là 7213 câu, trong đó train/valid/testlần lượt là 5823/696/694
34.4 UIT-VED-27K
Nhận thấy rằng số lượng bộ dữ liệu UVM được công bố trước đó có số lượng
mẫu còn ít (gồm 1629 đoạn hội thoại với 7213 câu đối thoại), các câu phản hồi
không đa dạng về chủ đề Vì chất lượng của mô hình phụ thuộc rất nhiều vào
kích cỡ bộ dữ liệu huấn luyện nên chúng tôi thực hiện cập nhật bộ dữ liệu UVM
bằng cách:
- Chỉnh sửa các mẫu dịch sai, sai chính tả, gán sai nhãn cảm xúc.
Snttps://pypi org/project/googletrans/
Trang 28- Tăng số lượng mẫu dữ liệu train/valid/test của bộ dit liệu UIT-VED từ
5825 /694/694 lên 23871/2502/694, tổng cộng là 27067 mẫu, trong đó tập
test không thay đổi để so sánh kết quả mô hình chúng tôi và các mô hình
trước đó.
3.4.1 Thông tin bộ dữ liệu UIT-VED-27K
Nhãn Tập train Tap valid Tập test Ty lệ
Trang 29Bên cạnh các ghi chú được đề cập trong [2], quá trình dịch của chúng tôi bổ
thứ tư là số lượng câu của tương ứng với nhãn trong tập train, valid và test;cột cuối cùng là tỷ lệ phần trăm của nhãn đó trên toàn bộ bộ dữ liệu Phân bố
nhãn cảm xúc của dữ liệu UIT-VED-27K đồng đều hơn so với bộ UVM Trong
đó nhãn “bất ngờ” chiếm tỷ lệ cao nhất (chiếm 4.6%), ít nhất là nhãn “kinhkhủng” (chiếm 2.2%)
3.4.2 Một số van dé và giải pháp trong quá trình dịch dữ liệu hội
sung bổ sung các tiêu chí: dịch theo văn phong của người Việt và đảm bảo giống
Trang 30tên riéng, được chuyển sang các tên gọi quen thuộc với người Việt Nam Vì
việc dịch từ ngôn ngữ này sang ngôn ngữ khác đòi hỏi người dịch có một vốn
ngoại ngữ ở mức độ phù hợp, việc mà không đảm bảo được trong đề tài này,
vì vậy đối với các mẫu khó dịch, người dịch đảm bảo chuyển đổi nó thành một
đoạn đối thoại mới miễn sao phù hợp về các tiêu chí đề ra Các nhãn cảm xúc
gán sai cho đoạn hội thoại cũng được suy xét sửa đổi.
Các thành ngữ/tục ngữ và cụm động từ của tiếng Anh được ghi chú lại trong
quá trình dịch:
- get the short end of the stick: bị ép làm việc mà không thích làm.
- once in the blue moon: hiếm khi, rất hiếm khi.
- better late than never: thà muộn còn hơn không.
- when pig flies: có mà mơ, mơ di, mo giữa ban ngày.
Các từ tiếng Anh thường được viết tắt:
- lol: Laugh out loud (cười sái quai hàm).
- preK: pre kindergarten (lớp chồi, lớp mẫu giáo).
- OP: over-power (quá vượt trội, quá mạnh).
- U: you.
- OMG, omg: oh my god (trời ơi).
19
Trang 31CHƯƠNG 4 MÔ HÌNH CHATBOT SỬ DỤNG
KIÊN TRÚC BERT
Trong chương nay, chúng tôi trình bày cơ sở lí thuyết, chi tiết các phương
pháp sử dụng và những cải tiến đã thực hiện.
4.1 Thiết kế mô hình chatbot truy vẫn biết cảm thông
Một số thuật ngữ được dùng trong phần này:
« context: Câu truy vấn (câu đầu vào)
¢ candidate: Một câu phản hồi trong bộ dữ liệu (một ứng viên)
« candidates: Tập hợp tất cả các câu ứng viên có trong bộ dữ liệu
« u: context representation (véc tơ embedding của câu truy vấn)
» v: candidate representation (véc tơ embedding của ứng viên).
» V: tập hợp các véc tơ embedding của các ứng viên có trong bộ dữ liệu).
4.1.1 Mô hình tổng quan
Chúng tôi thiết kế một mô hình mới khắc phục một số nhược điểm đã nêu ở
[mục 2.1] , bao gồm bổ sung thêm trình quản lý hội thoại, thay đổi hàm mục
tiêu và phương pháp nối thêm cảm xúc, mô hình tổng quan như hình 4.1.
Về kiến trúc, trình quản lí hội thoại ở bên trái, nằm trung gian giữa đầu vào/
đầu ra của mô hình và mô đun truy vấn thông tin, phần bên phải là các thực
hiện bởi mô đun truy van thông tin
Về cách tiến hành, câu đầu vào (context) đưa vào trình quản lí hội thoại
và lần lượt được xử lí qua các mô đun: nhận diện đại từ xưng hô > chuyển
đổi dai từ về “2i/bạn” > lưu vào lịch sử hội thoại > kiểm tra câu đầu vào
Trang 32TRÌNH QUẢN LÍ HỘI "mộ :
i BERT
ĐẦU VÀO Nhận diện và :
chuyển đổi dai từ H
Hình 4.1 Mô hành tổng quan của hệ thống chatbot.
trong kịch bản — lưu kết quả vào lịch sử hội thoại — trả lại đại từ về dạng
ban đầu, xuất kết quả và kết thúc, nếu không có thì chuyển sang mô đun truy
van thông tin Tai mô đun truy vấn thông tin ứng dụng BERT, câu đầu vào
tiến hành lần lượt: tách từ bằng VnCoreNLP [I1] mã hoá câu thành một véc tơ tương ứng -> biểu diễn ngữ nghĩa với pretrained PhoBERT [5].
Các ứng viên (các câu phản hồi có sẵn hay candidates) được nỗi thêm cảm
xúc từ bộ dữ liệu (được trình bay chỉ tiết ở phần 4.4.1, gọi là emotion prepend),
sau đó tiến hành tương tự như câu đầu vào Véc tơ biểu diễn ngữ nghĩa cho câu đầu vào lần lượt bắt cặp với các véc tơ mã hoá ứng viên > hàm mục tiêu tính
ra điểm số — điểm số cao nhất là phản hồi của chatbot -> lưu vào lịch sử hội
thoại — trả lại đại từ ban đầu, xuất kết quả và kết thúc
21
Trang 334.2_ Hệ thống truy van thông tin
Hình 4.2 Hệ thống truụ uấn thông tín
Nhìn chung, một hệ thống truy vấn thông tin có các thành phần chính như
sau:
- Biểu diễn dữ liệu: Gồm toàn bộ các ứng viên và cung cấp phương thức
mã hoá ứng viên thành các véc tơ biểu diễn ngữ nghĩa.
- Biểu diễn câu truy vấn: Mã hoá câu truy vấn của người dùng thành véc
tơ biểu diễn ngữ nghĩa.
- Mô hình truy van: Cung cấp một phương thức (thuật toán) tìm kiếm
phù hợp để tìm ra các tài liệu có nội dung liên quan đến câu truy vấn của
Trang 34- Phản hồi của người dùng: Dựa vào các hồi âm của người dùng để đưa
ra các hiệu chỉnh trong hệ thống cho phù hợp
Như chúng ta biết rằng máy tính không thể hiểu được dữ liệu ở dạng văn bản, vì thế việc biểu diễn câu truy vấn nhằm mục đích ánh xạ dạng ký tự sang dạng véc tơ mà máy tính có thể hiểu được Có nhiều kỹ thuật khác nhau được
- Dua trên các kỹ thuật học sâu như: RNN, LSTM, Transformer, BERT,
4.3 Biểu diễn từ (Word embedding)
Biểu diễn từ là một không gian để ánh xa các từ ngữ (ký tự) sang dạng số, dùng để biểu diễn ngữ nghĩa của từ Trong không gian này, mỗi từ được biểu diễn bởi một véc tơ có số chiều nhất định (chang hạn với BERT-based là 768 chiều), các từ vựng đồng nghĩa có véc tơ biểu diễn nằm gần nhau (gồm hướng
và độ lớn), và ngược lại những từ không liên quan hoặc trái nghĩa nằm cách xa
nhau.
Điển hình cho phương pháp mã hoá dựa trên thống kê tần suất xuất
hiện từ là TF-IDF (Term Frequency — Inverse Document Frequency) - một kỹ
thuật để tính toán trọng số cho từ trong một văn ban Trọng số này thể hiện
mức độ quan trọng của một từ trong văn bản đó, giá trị càng cao thì càng mang
nhiều giá trị Tuy nhiên, việc mã hoá theo phương pháp này gặp nhược điểm
lớn đó chính là mỗi từ trong câu được biểu diễn độc lập, nghĩa là chúng không
phụ thuộc vào vị trí của chúng đối với những từ xung quanh
23
Trang 35Phương pháp mã hoá dựa trên hướng tiếp cận nông (như CBOW, Skip-gram, ) học được cách biểu diễn từ thông qua ngữ cảnh, khắc phục được nhược điểm của phương pháp thống kê theo tần suất gặp phải đó là các từ biểu
diễn độc lập dù trong bất kì ngữ cảnh nào Mặc dù có sử dụng các lớp nơ ron
nhân tạo để học và biểu diễn ngữ nghĩa, các kiến trúc này chỉ có 2 lớp mạng nơ ron được dùng để biểu diễn ngữ nghĩa của từ.
Công trình [4] đã chi ra rằng mô hình học sâu thể hiện tốt hon so với mô
hình học nông trong cùng một tác vụ, cùng lượng tham số huấn luyện, và cùng
các biến thiết đặt môi trường.
Number of units Number of parameters
Hình 4.3 So sánh học nông va hoc sâu 3
Do đó trong đề này tài, chúng tôi sử dụng kiến trúc mạng học sâu BERT để
biểu diễn ngữ nghĩa cho câu.
°nttps://www.aaai.org/ocs/index.php/AAAT/AAAI17/paper/viewFile/14849/14414
Trang 364.3.1 Transformer
“Attention is All You Need” [10] là một công trình có tầm ảnh hưởnglớn trong những năm gần đây, đặc biệt là trong lĩnh vực dịch máy Trước đây,RNN được xem như là khung xương của kiến trúc dịch máy nói riêng và trongnhiều tác vụ trong NLP nói chung bởi lẽ RNN có kiến trúc phù hợp - kiến trúchồi quy - thích hợp trong nhiệm vụ xử lý chuỗi Cho đến khi Transformer được
đề xuất, một kiến trúc áp dụng cơ chế tự chú ý (self-attention), đã và đang thay
thế cho các phiên bản mô hình hồi quy trước đây Dù bắt nguồn từ NLP, nhưng
Transformer đang dần “lấn sân” sang xử lí ảnh và cũng đạt được một số kết quả
khả quan.
1) Tại sao lại là Transformer?
Trước khi Transformer ra đời, hầu hết các mô hình dịch máy được sử dụng
là RNN và các biến thể của nó (LSTM, GRU, ) Thế nhưng bản thân của các
mô hình này lại chứa một số nhược điểm lớn như:
- Kiến trúc của RNN là kiến trúc tuần tự, không hỗ trợ tính toán song song, mỗi trạng thái sau đều phụ thuộc vào trạng thái trước đó, dẫn đến thời gian
huan luyện chậm.
- RNN gặp khó khăn trong việc ghi nhớ các phụ thuộc tầm xa trong mạng.Nguyên nhân là trong quá trình đệ quy nhiều lần dẫn đến hiện tượng mất
mát hoặc bùng nổ đạo hàm làm thất thoát thông tin Để khắc phục nhược
điểm đó, LSTM ra đời, tuy nhiên chi phí tính toán cho mô hình này lớn hơn nhiều so với RNN và cũng không khắc phục hoàn toàn nhược điểm của
RNN (xử lý được những câu dài đến 35 từ nhưng với những câu dài như
Trang 37vóc tơ duy nhất gọi là véc tơ context (Scontert) khiến cho dữ liệu nghẽn cổ
chai làm mat mát thông tin đối với những câu dài Trong thực tế, các véc
tơ biểu diễn ở lớp ẩn (hidden layers) vẫn chứa các thông tin mã hoá quan
trọng nhưng RNN hay LSTM không tận dụng được điều đó
Transformer ra đời với cơ chế Multi-head Attention đã khắc phục nhược điểm
của các phiên bản tiền nhiệm, giúp cho việc huấn luyện mô hình diễn ra một
cách song song, không còn hiện tượng phụ thuộc tầm xa trong mạng, đồng thời
thời gian huấn luyện của mô hình được rút ngắn.
2) Kién trúc của Transformer
Multi-Head Attention
Multi-Head Attention
®
Positional
Encoding
Inputs Input Embedding
Multi-Head
Attention
® AL) Positional
er Encoding
Hình 4.4 Kiến trúc của Transformer Í1
Nhìn vào hình 4.4, ta thấy rằng Transformer vẫn sử dụng thiết kế gồm hai
phần: bộ mã hoá (Encoder) và bộ giải mã (Decoder) như các kiến trúc trước
Trang 38Phía bên trái là bộ mã hóa và phía bên phải là bộ giải mã Cả bộ mã hoá và
bộ giải mã đều có N khối giống nhau xếp chồng lên nhau Sau đây là trình bày chi tiết về kiến trúc của mô hình Transformer.
a) Input embedding
Máy tính không hiểu được văn bản, vì vậy phải biến đổi văn bản thành dạng
véc tơ biểu diễn, ở đây tác giả sử dụng bộ tokenizer đã được huấn luyện săn để
mã hoá văn bản thành dạng véc tơ token embedding Trong đó mỗi token là
tương ứng với vi trí của nó trong bộ từ vựng của tokenizer, số chiều của véc tơ
embedding bằng max_ length tuỳ chọn (nhưng có giới hạn).
b) Positional Encoding
Không giống như RNN hoặc các mạng hồi quy khác, Transformer có mô đun
biểu thị vị trí các từ trong câu, ví dụ : “Tôi cao hơn bạn” và “bạn cao hơn tôi” được biểu diễn khác nhau Để biểu diễn thứ tự các từ trong một câu,
Transformer sử dụng phương pháp Positional Encoding (tạm gọi là mã hoá vị
trí), các véc tơ mã hoá vị trí này có cùng chiều với input embedding để tính tổng lại, sau đó đi qua Encoder Công thức tính vị trí của một từ mà tác giả
đã đề xuất (4.1)
PE (pos,2i) = Sin pos /100002"/4moeet
- (4.1)
PE (pos,2i+1) = COS (pos /10000%/4me")
Trong đó, pos là vi trí của từ trong câu, i là số chiều Khi đó, mỗi chiều trong positional encoding tương ứng với một hình sin với bước sóng từ 2z đến 10000z.
c) Multi-Head Attention
Cả Eneoder và Decoder đều sử dụng thành phần gọi là Multi-Head
Atten-tion, được xem như là thành phần chính của Transformer và là điểm đặc biệt
so với những mô hình sinh văn bản trước đó Để thuận tiện trong việc theo dõi,
chúng tôi trình bày phần này trước khi đi vào chi tiết của Encoder và Decoder
Như đã đề cập, Transformer dùng cơ chế self-attention để biểu thị tầm ảnh
27
Trang 39hưởng của những từ trong câu so với một từ đang xét, được thể hiện bằng trọng
số liên quan (attention weight) Với cơ chế này, mỗi từ được đại diện bởi bộ
ba tham số là key, value và query (k,q,v) - được khởi tạo ngẫu nhiên và được
tối ưu thông qua quá trình học và cập nhật Như vậy, một câu đầu vào bất kỳ
được đại diện bởi bộ ba ma trận K,Q,V tương ứng là (keys, queries, values) và
attention weight được tính bằng phép “Scale dot product attention” thông
qua phương trình sau:
attention(Q, K,V) = softmax (2) V (4.2)
Việc tiến hành chia cho Vd; - chiều dai của véc tơ key, nhằm mục đích chuẩn
hoá lại giá trị trong trường hợp số mũ quá lớn
Multi-Head Attention
Scaled Dot-Product
Attention 2
Hình 4.5 Multi-head Attention 12
Trọng số của một self-attention có xu hướng đánh trọng số cho chính nó cao
hơn những từ xung quanh nhưng chúng ta trông đợi trọng số đó thể hiện mức
độ liên quan giữa nó và các từ khác trong câu Giải pháp được đưa ra là thay
vì sử dụng một, ta sử dụng nhiều self-attention cùng một lúc để học được nhiều
Trang 40trọng số attention khác nhau nhằm đảm bảo sự công bằng khi lấy trung bình (hoặc tổng) của các trọng số self-attention này Việc làm như vậy được gọi là
Multi-Head Attention Vi ban thân mỗi self-attention cho ra một ma trận
trọng số attention riêng nên ta tiến hành nối các ma trận này và nhân với ma
trận trọng số Wo để ra một ma trận attention duy nhất (weighted sum) Ma
trận trọng số này cũng được cập nhật qua mỗi lần huấn luyện.
ở phần trên, khối thứ hai chỉ là các mạng chuyển tiếp đơn giản (Feed forward).
Giữa mỗi lớp con có một kết nối residual connection (tương tự dropout với
P_drop = 0.1) và theo sau đó chính là một lớp chuẩn hoá (Norm layer) Việc sử
dụng residual connection nhằm giúp mạng giữ được thông tin trước đó và việc
l”https : //arxiv.org/abs/1706.03762
29