1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng Chatbot biết cảm thông dựa trên mô hình Bert cho tiếng Việt

83 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng Chatbot biết cảm thông dựa trên mô hình Bert cho tiếng Việt
Tác giả Pham Thừa Tiểu Thành, Đặng Quốc Tiến
Người hướng dẫn TS. Nguyễn Lưu Thùy Ngân
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Khoa học Máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 83
Dung lượng 37,86 MB

Nội dung

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 3

DANH 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 4

LỜ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 5

2.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 6

CHƯƠ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 7

5.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 8

2.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 9

6.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 10

Al

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 11

DANH 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 12

h, đố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 13

nhữ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 14

1.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 15

1.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 16

CHƯƠ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 17

có 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 18

1On 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 21

4 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 22

mô 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 23

UVM đã 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 24

Hì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 25

nhó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 26

Trong đó:

- 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 27

3.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 29

Bê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 30

tê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 31

CHƯƠ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 32

TRÌ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 33

4.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 35

Phươ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 36

4.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 37

vó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 38

Phí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 39

hưở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 40

trọ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

Ngày đăng: 02/10/2024, 03:16

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w