3.1 Tổng quan hệ thong
Knowlegde base
HINH 3.1: Tổng quan hệ thống chatbot.
Ở phan nay chúng tôi sẽ trình bày tổng quan hệ thống chatbot, các luồng xử ly
và cách hệ thống chatbot hoạt động. Hinh|3.5|mé tả tổng quan hệ thống chatbot.
Tổng quan hệ thống chatbot gồm 4 phần chính:
¢ Trang web: Noi để người dùng có thể tương tác với chatbot nhập vào các
câu hỏi và nhận các câu trả lời từ hệ thống.
¢ Trung tâm xử lý: Được xây dựng dựa trên trí tuệ nhân tạo để phân luồng
các câu hỏi va dựa vào các luéng xử lý để trả ra câu trả lời phù hợp đối với từng câu hỏi. Đây là thành phần quan trọng để tạo nên hệ thống chatbot
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 30
° Kiến thức cơ sở: Là nơi lưu trữ thông tin các câu trả lời, thông tin dữ liệu
cho các mô hình trong phần trung tâm xử lý. Đây là thành phần tiền đề để chatbot có thể hoạt động hiệu quả.
¢ Lưu trữ dữ liệu: Là nơi lưu trữ thông tin cuộc trò chuyện để chatbot có thể
theo dõi được các cuộc trò chuyện và là nguồn tài nguyên để có thể phục
vụ cho việc phân tích dữ liệu từ cuộc trò chuyện sau này.
Intent classification Private knowledge Answer Database
|
Slot Filling Technique
In domain
Conservation tracking
Recommen‹ \dation Ask again
HINH 3.2: Cac thanh phan trong hé théng.
Hình 8.2| mo tả các luồng xử lý va các tính năng của hệ thống chatbot. Dau
tiên để đưa vào mô hình có thể hoạt động hiệu quả thì câu hỏi sẽ được đưa qua các bước tiền xử lý. Sau đó sẽ kiểm tra xem câu hỏi thuộc ngôn ngữ nào nếu tiếng Việt thì có dấu hay chưa để tiến hành thêm dấu cho câu hỏi, đây là một phần quan trọng trong việc hiểu được câu hỏi giúp cho mô hình linh động tiếp nhận các dạng câu hỏi không dấu và có dấu trong tiếng Việt. Tiếp theo, sẽ được đưa vào một mô hình phân loại miễn trả lời. Có hai trường hợp sẽ xảy ra:
® Ngoài miễn tư van: Nếu câu hỏi không thuộc miễn tư van thì sẽ kiểm tra
câu hỏi có tương đồng với một vài câu hỏi ngoài miễn tư van trong kiến thức cơ sở. Nếu có độ tương đồng cao hơn ngưỡng thì sẽ đưa ra câu trả lời ngoài miễn tư vấn trường hợp nếu thấp hơn ngưỡng thì thông báo câu hỏi ngoài phạm vi hiểu biết của chatbot.
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 31
¢ Trong miễn tư vấn: Nếu câu hỏi trong miễn tư vấn thì sẽ đưa vào mô hình
phân lớp ý định để xác định câu hỏi đang hỏi đến vấn đề gì trong miễn tư
van. Sau đó sé đưa vào mô hình điền khuyết (slot filling) để xác định câu
trả lời cho câu hỏi về ý định đã xác định ở mô hình phân lớp ý định. Nếu
mô hình điển khuyết không xác định được câu trả lời thì chúng tôi sẽ tiến
hành xử lý theo từng trường hợp:
— Theo doi thông tin cuộc trò chuyện (Conversation tracking): Trường
này sẽ xem câu hỏi đầu hiện tại và câu hỏi trước có mối liên kết với nhau hay không để đưa ra câu trả lời.
— Đề xuất (Recommendation): Trường hợp này sẽ dé xuất các câu hỏi liên
quan với câu hỏi hiện tại.
— Hỏi lại (Asking again): Khi người dùng nhập câu hỏi không đủ ý nghĩa
để mô hình xác định được câu trả lời thì mô hình sẽ hỏi lại.
Chỉ tiết phương pháp thực hiện từng phần sẽ được chúng tôi trình bày ở các phần tiếp theo.
3.2 Xây dựng và đánh giá bộ dư liệu
3.2.1 Bộ dư liệu phân lớp ý định
Bộ đữ liệu của chúng tôi được xây dựng dựa trên dé án tuyển sinh của trường Đại học Công Nghệ Thông Tin năm 2021. Dựa vào đề án tuyển sinh, chúng tôi tiến hành đặt những cặp câu hỏi - câu trả lời từ dé án. Để bộ dữ liệu được phong phú, mỗi câu trả lời được chúng tôi tăng cường thêm bằng cách đặt những câu
hỏi có cùng ý nghĩa, khi đọc vào người đọc sẽ liên tưởng được với các câu hỏi
có cùng câu trả lời. Thêm vào đó, để chống lại sự thiên vị và tăng thêm góc nhìn
khác, các câu hỏi này được đặt bởi các người chú thích khác nhau. Với những
trường hợp xảy ra nhập nhằng, những người chú thích sẽ tập hợp các câu đó để giải thích vì sao mình đặt cặp câu hỏi - câu trả lời gây nhập nhằng, từ những góp
ý của các nhà chú thích khác, cặp câu hỏi - câu trả lời này sẽ được chỉnh sửa cho
hợp lý. Như vậy, từ một cặp câu hỏi - câu trả lời ban đầu thì chúng tôi sẽ tăng cường để trở thành nhiều cặp câu hỏi - câu trả lời có cùng câu trả lời.
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 32
STT Câu hỏi Ý định
1 Các phương thức xét tuyển ở UIT? Hỏi dap xét
tuyên
2 | Điểm xét tuyển dựa trên điểm thi tốt nghiệp THPT năm 2022? Hỏi dap điểm
Chỉ tiêu xét tuyến theo tiêu chí riêng của chương trình liên kêt Thông tin chỉ
3 với Dai học Birmingham City - Anh Quốc, do DH on esa om
Birmingham City cập bang?
4 Giá phòng ký túc xá 8 sinh viên là bao nhiêu? Hỏi đáp ký túc xá
5 Vi trí và khả năng làm việc sau tot nghiệp ngành Khoa học dữ Hỏi đáp nghề
liệu là gì? nghiệp
Mã ngành Khoa hoc máy tính liên két do chương trình Dai học ` `
6 Birmingham city cấp bằng 2022? Hỏi đáp ngành
7 Học phí của chương trình chính quy / đại trà là bao nhiêu? Hỏi đáp UIT
8 Tổ hợp xét tuyển Ngành Khoa học máy tính ? Hỏi đáp tổ hợp
9 O trường UIT có các loại học bổng nào? Hỏi đáp học bổng
10 Bắt xe bus số bao nhiêu để tới trường? Hỏi đáp xe bus
‘Dat các câu hỏi và
câu trả lời
Để án tuyển sinh
2021
Xác định các ý
định
Gan các ý định cho câu hỏi Kiểm tra chéo Bộ dữ liệu
Từ bộ câu hỏi - câu trả lời này, chúng tôi tiến hành phân chia thành những ý
định khác nhau. Tổng quan quy trình làm dữ liệu được thể hiện ở Hình |.3| Nội dung các ý định được thể hiện bên dưới va Bang 3.1] vi dụ về các câu hỏi tương
ứng với các ý định.
° Hỏi đáp xét tuyển: Những câu hỏi về phương thức xét tuyển, cách để xét
tuyển vào trường UIT, tiêu chí, đối tượng và điều kiện để xét tuyển, v.v.
¢ Hỏi đáp điểm chuẩn: Những câu hỏi về thông tin điểm chuẩn, ngưỡng dam
bảo đầu vào (điểm sàn) của kỳ thi Đánh giá năng lực và kỳ thi Trung Học Phổ Thông của các ngành qua các năm.
¢ Hỏi đáp ký túc xá: Những câu hỏi liên quan đến nơi cư trú là ký túc xá như
địa chỉ, giá phòng, thông tin phòng, điều kiện để được đăng ký ở ký túc xá,
V.V.
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 33
¢ Hỏi đáp ngành: Những câu hỏi về thông tin ngành, ví dụ như chuyên ngành
đào tạo, thời gian đào tạo, mã ngành.
¢ Hỏi đáp nghề nghiệp: Những câu hỏi liên quan đến vị trí việc làm sau khi
tốt nghiệp trường UIT.
° Hỏi đáp tổ hợp: Những câu hỏi liên quan đến tổ hợp xét tuyển vào các
ngành cua UIT.
¢ Hỏi đáp UIT: Những câu hỏi liên quan đến cơ sở vật chất của trường, hoc
phí, đội ngũ giảng viên hoặc phương châm, tỉnh thần giảng dạy của trường UIT, các ngành đào tạo ở UIT hoặc những thông tin khác về UIT.
e Thông tin chỉ tiêu: Những câu hỏi về thông tin chỉ tiêu của các ngành có
trong trường đại học Công nghệ thông tin.
® Hỏi đáp xe bus: Những câu hỏi liên quan đến xe bus như thông tin tuyến
xe bus, các tuyến xe có đến KTX, UIT.
* Thông tin học bổng: Nhưng câu hỏi về thông tin học bổng như các loại học
bổng, điều kiện để nhận được các loại học bổng đó.
3.2.2 Bộ dữ liệu thêm dấu
Với mục đích sử dụng mô hình thêm dấu để tích hợp vào chatbot, ở phần nghiên cứu này, chúng tôi tái sử dụng bộ dữ liệu phân loại ý định để xây dựng nên bộ dữ liệu cho bài toán thêm dấu. Việc sử dụng lại bộ câu hỏi tuyển sinh sẽ làm cho mô hình thêm dấu tập trung vào chủ dé hon so với sử dụng các bộ dữ
liệu có từ wikipedia hay từ các trang báo khác. Ngoài ra, các câu trả lời cũng có
thể được dùng làm dt liệu cho bài toán bằng phương pháp bóc tách các câu trong
câu trả lời. Từ bộ câu hỏi và các câu trả lời được bóc tách từ dữ liệu tuyển sinh,
chúng tôi tiến hành loại bỏ dau các câu này đi để được câu hỏi mới không có dau.
Các câu được thực hiện bỏ dấu theo quy tắc ở Bảng |B.2|
Câu sau khi bỏ dau sẽ đóng vai trò là câu đầu vào. Câu gốc có dau sẽ là câu đầu ra của mô hình thêm dấu. Như vậy, bộ dữ liệu cho bài toán thêm dấu cuối
cùng được hoàn thành.
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 34
Ký tự có dâu Ký tự không có dâu
IN ZI IX I 2M //ỨXI( PP (0 /PXS// We me Mh me “oman
a, a,a,ay,a,a,a,ay,a,a, Val
1-2 Lee LA Lee Le ee Le ee Le Le Le
a , Aa, A, aA, aA, aA, a
WLM XM IM mM RM IR RR
Oo, 0, 0, 0,90, 0, 0, 0, 0, 0, ”Q⁄
IRMA 1” SL II ZAL VIN AL JP 2đ“ I hh 1 Mh
Qo, Ơ, 0, Ơ, Ơ, Ơ, Ợ
WML IX IN JJAX( PP IK PA OK RY RK Ra WY Mh
é“, “è“, “Š“, “ẽ“, “e“, “ê⁄, “ê“, “ê“, “ế“, “ễ“, “ê e
A LL LL NHị “eo LLL LL ““ "” “
ỳ“,“ự“, “ủ“, “ủ“, “ụ”, “ư“, “ứ”, “ừ“, “ử“, “ữ”,“ự u
JIZM JJÀ/“ IIA JJ~/( JP*// IIMS
0,790, 1, 1, 4 i
"4 “q⁄“
ILM ISAAC PP // WN Mh
Yr, Y, Ys Ys ¥ y
BANG 3.2: Bảng quy tắc bỏ dau
3.2.3. Bộ dữ liệu phân loại miễn tư vấn
Dé chatbot có thể trả lời các câu hỏi ngoài miễn tư vấn chúng tôi thu thập các câu hỏi về các lĩnh vực trong đời sống như kinh tế, xã hội, văn hóa, thể thao, v.v. Ngoài ra chúng tôi cũng tạo ra một số câu hỏi và trả lời trong cuộc sống hàng ngày như thông tin về thời tiết, sức khỏe, một số người nổi tiếng trong nước và quốc tế.
Tiếp theo, chúng tôi tiền hành lọc ra các câu hỏi nhập nhằng với miễn tư vấn.
Loại bỏ các câu trùng.
Sau đó, chúng tôi gộp bộ dữ liệu phân lớp ý định và các câu hỏi ngoài miền
tư van để tạo mô hình phân loại miền tư van. Đây là một phan quan trong của hệ thống để xác định câu hỏi thuộc miền nào để đưa ra câu trả lời chính xác và phù
hợp.
3.2.4 Bộ dữ liệu khuôn mẫu
Từ bộ dữ liệu tuyển sinh, chúng tôi tái câu trúc các câu trả lời theo hệ thống dang cấu trúc dữ liệu cây. Bộ dữ liệu khuôn mẫu gồm các cây nhỏ có các ý định
là nút gốc và các nút cấp dưới là các thực thể. Các nút (và các lá) sẽ đóng vai trò
là một lỗ sẽ kết hợp lại với nhau để tạo thành một mẫu câu trả lời tương ứng. Ví
dụ như các câu trả lời trong ý định hỏi đáp ký túc xá được tổ chức như Hình|3.4|
Để tạo thành mẫu cho câu trả lời của “Giá phòng ký túc xá 4 người máy lạnh
là bao nhiêu“ thì cần phải có sự xuất hiện của các lỗ là các thực thể như “giá
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 35
se;
hồ sơ địa chỉ hồ sơ tổng quan liên hệ giá phòng điều kiện
XY
HINH 3.4: Sơ đồ cau trúc cây cho ý dinh”hdi dap ký túc xa”
phong”, “4 sinh viên“, “máy lạnh“, ghép các thực thé này lại với nhau ta có mẫu
câu trả lời là “hỏi đáp ktxl giá phòng | 4_sinh_vién | máy_lạnh“. Cac ô được tô
đậm như “địa chỉ“, “4 sinh viên“ có nghĩa là mẫu câu trả lời cũng có thể được tao
từ các nút phía trên của nút được tô đậm này mà không cần các nút lá phía dưới.
Ví dụ như mẫu câu trả lời cho câu hỏi “Tôi muốn biết dia chỉ của ký túc xá“ chỉ cần thực thể “địa chỉ“. Tương tự với các ý định còn lại, hệ thống mẫu câu trả lời được xây dựng để phục vụ cho bài toán Điền khuyết (Slot Filling) sẽ được giới
thiệu sau.
3.3 Tien xử lý dữ liệu
Tiền xử ly di liệu là một trong những thành phần quan trong trong các mô hình và bài toán liên quan đến ngôn ngữ. Việc tiền xử lý dữ liệu tốt sẽ giúp mô hình giảm số lượng từ vựng, giảm trọng số huấn luyện và tăng độ chính xác mô hình. Các bước tiền xử lý trước khi đưa vào mô hình được mô tả như sau:
© Bước 1: Đầu tiên chúng tôi tiến hành xóa các khoảng trắng dư thừa trong
câu, giữa 2 từ cách nhau chỉ một khoảng trắng. Sau đó chúng tôi tiến hành thay thế các từ đồng nghĩa hoặc một số từ viết tắt trong câu để giảm số
lượng bộ từ vựng va mô hình dé dàng xác định và hoạt động hiệu quả hơn.
Ví dụ như khmt, khoa học mt thì chúng tôi sẽ chuyển thành khoa học máy
tính.
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 36
° Bước 2: Chúng tôi xóa bỏ các từ dừng và các biểu tượng cảm xúc vì chúng
có rất ít hoặc không có thông tin cho nhiệm vụ phân loại ý định.
© Bước 3: Tiếp theo chúng tôi tiến hành sửa một số lỗi chính tả thường gặp
trong ngôn ngữ tiếng Việt như “xoá” thành “xóa”, “huỹ” thành “hủy” để
mô hình có thể hiểu đây là cùng 1 từ.
© Bước 4: Do trong quá trình tương tác với chatbot có thể có một số từ bị lặp
nhiều lần nên chúng tôi sẽ tiến hành xóa các từ bị lặp và chi giữ lại 1 từ.
© Bước 5: Loại bỏ các ký tự đặc biệt như là ”,.!%&...” để giảm kích thước bộ
dữ liệu.
© Bước 6: Đối với ngôn ngữ như tiếng Việt thì giai đoạn tách từ trong tiền
xử lý là không thể thiếu bởi vi từ vựng trong tiếng Việt có thể được tao thành từ một từ ngữ hoặc nhiều nhiều từ ngữ khác nhau ví dụ như từ vựng
“học sinh” được cau tạo từ 2 từ là “học” và “sinh” nhưng khi 2 từ này đứng riêng lẻ thì đều có ngữ nghĩa riêng và khác nhau. Để giải quyết trường hợp
này, nghiên cứu của chúng tôi sử dụng thư viện tách từ Pyvi Vietnamese
Toolkif|để tách từ trong dữ liệu đầu vào. Ngoài ra, chúng tôi cũng sử dụng
thư viện này để lây các nhãn từ loại của từng từ phục vụ cho quá trình biểu dién đặc trưng cho phương pháp học máy truyền thống.
3.4 Các phương pháp tiếp cận cho bài toán phân lớp
ý định và cài đặt.
Để phân lớp các ý định chúng tôi tiếp cận với các nhóm mô hình là:
¢ Các mô hình thuộc nhóm học máy: SVM, NaiVe Bayes, Neural Network.
® Các mô hình học sâu: CNN, LSTM.
* Các mô hình học chuyển tiếp: PhoBERT, XLMR.
Tổng quan quy trình làm thí nghiệm cho bài toán phân lớp ý định được thể hiện
trong Hình|3.5| Dưới đây là chỉ tiết cách cài đặt các mô hình.
1Python Vietnamese Toolkit:https:/ /github.com/trungtv/pyvi
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 37
Các phương pháp tiếp cận
May học
Trích xuất đặc trưng Thuật toán máy học
⁄ Học sâu
Hoc chuyên tiếp
sean ;S Ỷ PA)
HÌNH 3.5: Tổng quan quy trình làm thí nghiệm cho bài toán Phân
loại ý định.
3.4.1 Mô hình máy học
Trong phần này, chúng tôi trình bày phương pháp biến đổi dựa trên nền tảng học máy để giải quyết bài toán phân lớp ý định. Để giải quyết bài toán này chúng
tôi thí nghiệm sử dụng ba mô hình học máy là: Support Vector Machine, Naive
Bayes và Neural Network. Để đưa vào mô hình học máy chúng tôi thử nghiệm
các đặc trưng sau:
® N-grams: Đặc trưng 2, 3, 4 grams được rút trích từ dữ liệu đầu vào để làm
đặc trưng cho phân loại.
¢ Từ loại: Dựa vào nhãn từ loại để rút trích ra các danh từ, động từ, tinh từ
để làm đặc trưng.
Sau khi rút trích đặc trưng đữ liệu đầu vào chúng tôi đã thí nghiệm sử dụng hai 2 kỹ thuật trích xuất đặc trưng là TF-IDF và BoW để chuyển các đặc trưng rút trích thành vectơ đại diện rồi đưa vào mô hình máy học. Trong quá trình huấn luyện chúng tôi sử dụng kỹ thuật Cross-validation với k=5 để đánh giá hiệu suất của các mô hình và tiến hành so sánh.
Chương 3. NỘI DUNG VÀ PHƯƠNG PHÁP 38
3.4.2 Mô hình học sâu
Mạng tích chập (Convolutional Neural Network ) là một trong những mô hình
học sâu tiên tiến. Nó giúp cho chúng ta xây dựng được những hệ thống thông
minh với độ chính xác cao như hiện nay. Dé mô hình có thé phân lớp ý định chúng tôi xây dựng mô hình CNN với kích thước hạt nhân (kernel size) lần lượt
là 2, 3 kết hợp với bộ lọc (filter) là 64. Sau đó, chúng tôi kết hợp 2 lớp tổng hợp lớn nhất (Global Max Pooling) với lớp tổng hợp trung bình (Average Pooling) để thu được các đặc trưng quan trọng của đầu vào. Để tối ưu tham số mô hình, chúng tôi sử dụng thuật toán Adam với tốc độ học (learning rate) là 0.001, kích thước bó (batch size) là 32 và số lượng kỉ nguyên (epoch) tối đa là 100.
Đối với mô hình mạng hồi quy LSTM, chúng tôi xây dựng lớp LSTM với 256
tế bào (cell) và tỷ lệ bỏ học (drop out) là 0.25. Sau đó chúng tôi sử dụng 2 lớp kết nối đầy đủ (fully connected) với hàm kích hoạt là ReLU. Cả 2 mô hình học sâu chúng tôi đều sử dụng mô hình Word2Vec như là lớp nhúng để trích xuất đặc trưng đầu vào để đưa vào mô hình.
Bên cạnh đó, để khởi tạo vector từ cho các mô hình học sâu, chúng tôi thử
nghiệm với hai mô hình: (1) sử dụng Word2ve?| được dao tạo trước công khai
được đào tạo trên kho tài liệu tiếng Việt 20GB văn bản; (2) đào tạo trực tiếp về dữ liệu câu hỏi về tư van tuyển sinh miễn sử dụng kiến trúc Skip-gram. Thử nghiệm kết quả cho thây rằng việc sử dụng miền word2vec được đào tạo mang lại hiệu quả tốt hơn hiệu suất hơn Word2Vec thông thường. Vì vậy, chúng tôi báo cáo kết quả bằng cách sử dụng miền word2vec để trích xuất vector đại điện từ.
Bên cạnh đó, trong quá trình thí nghiệm chúng tôi cũng sử dụng kỹ thuật
Cross-validation như trong quá trình thí nghiệm với các mô hình máy học để so sánh hiệu suất các mô hình.
3.4.3. Mô hình học chuyển tiếp
Cuối cùng, thí nghiệm phân lớp ý định với 2 mô hình học chuyển tiếp chúng
tôi thí nghiệm sử dụng 2 mô hình đào tạo trước là PhoBERT và XLMR
được tải từ thư viện Huggingfacd | Đồng thời, chúng tôi tối ưu các tham số của
“https:/ /github.com/datquocnguyen/PhoW2V
Shttps: //huggingface.co/