TÓM TẮT LUẬN VĂN Trong những năm gần đây, với sự phát triển bùng nổ của “Cách mạng công nghiệp 4.0”, nhiều chương trình dựa trên trí thông minh nhân tạo AI được biểu hiện dưới nhiều dạng
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 3Cán bộ hướng dẫn khoa học:
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1:
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2:
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày
27 tháng 8 năm 2020
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 Chủ tịch: GS.TS Lê Tiến Thường
2 Thư ký: PGS.TS Võ Nguyên Quốc Bảo
3 Phản biện 1: TS Võ Quế Sơn
4 Phản biện 2: TS Mai Linh
5 Ủy viên: PGS.TS Đỗ Hồng Tuấn
Xác nhận của Chủ tịch Hội đồng đánh giá LV và trưởng khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA
Trang 4TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Hữu Ánh MSHV:1870397
Ngày, tháng, năm sinh: 18/01/1994 Nơi sinh: Quảng Trị
Chuyên ngành: Kỹ thuật viễn thông Mã số : 8.52.02.08
I TÊN ĐỀ TÀI (Tiếng Việt và Tiếng Anh):
Tiếng Việt : Xây dựng hệ thống chatbot chăm sóc khách hàng của cảng hàng không
Tiếng Anh : Build chatbot system for customer care for airlines
II NHIỆM VỤ VÀ NỘI DUNG:
Nghiên cứu tổng quan về hệ thống chatbot Phát triển các giải thuật tối ưu hóa để tối ưu độ chính xác, hiệu suất, thời gian xử lý và tính khả thi của hệ thống chatbot Xây dựng phần mềm ứng dụng trong thực tế
III NGÀY GIAO NHIỆM VỤ : (Ghi theo trong QĐ giao đề tài) 07/2019
IV NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài) 08/2020
V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên):
TS Võ Tuấn Kiệt Hướng dẫn chính
PGS.TS Hà Hoàng Kha Hướng dẫn phụ
Trang 5LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn đến Ban giám hiệu trường đại học Bách Khoa Tp.HCM đã tạo cho em môi trường tốt nhất để em có thể tiếp tục học tập và tiếp thu được những kiến thức quý báu trong những năm qua
Đặc biệt, em xin gửi lời chân thành cảm ơn thầy hướng dẫn: TS.Võ Tuấn Kiệt và PGS.TS.Hà Hoàng Kha đã quan tâm, giúp đỡ, hướng dẫn để em hoàn thành luận văn này
Bên cạnh đó, em xin gửi lời cảm ơn đến gia đình và bạn bè, những người đã luôn
hỗ trợ và động viên để em có thể cơ hội hoàn thành luận văn này một cách tốt nhất Tuy nhiên, dù đã cố gắng để hoàn thiện luận văn nhưng sẽ không tránh khỏi những thiếu sót, em rất mong nhận được các đóng góp ý kiến và lời khuyên của các thầy cô
để đề tài này có thể được cải thiện và phát triển nhiều hơn trong tương lai
Em xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 27 tháng 8 năm 2020
Nguyễn Hữu Ánh
Trang 6TÓM TẮT LUẬN VĂN
Trong những năm gần đây, với sự phát triển bùng nổ của “Cách mạng công nghiệp 4.0”, nhiều chương trình dựa trên trí thông minh nhân tạo (AI) được biểu hiện dưới nhiều dạng như hình ảnh, âm thanh và giọng nói, có thể làm được nhiều thứ như con người và có khả năng thay thế con người, chẳng hạn như các chương trình, hệ thống
tự động trả lời, nhận diện khuôn mặt…Trong đó hệ thống chatbot ngày càng được càng được cải thiện và ứng dụng rộng rãi vào đời sống trên nhiều lĩnh vực khác nhau như bán hàng, quản lý tài chính…
Từ sự quan sát trên, luận văn đặt ra mục tiêu là thiết kế hệ thống chatbot, mà cụ thể ở đây là chăm sóc khách hàng cho cảng hàng không Đầu tiên, luận văn trình bày những phương pháp, thuật toán dùng để xây dựng chatbot dựa trên ngôn ngữ tiếng Việt, bao gồm:
- Thuật toán xử lý ngôn ngữ tự nhiên (SVM, RNN, LSTM…)
- Các phương pháp tách từ trong tiếng Việt
- Cách tính độ tương đồng văn bản tiếng Việt
Từ đó, đưa ra sự lựa chọn những phương pháp phù hợp nhất để thiết kế hệ thống chatbot chăm sóc khách hàng cho cảng hàng không
Trang 7ABSTRACT
In recent years, with the explosive development of "Industry Revolution 4.0", many programs based on artificial intelligence (AI) have manifested in many forms such as images, sound and voice, can do many things like humans and have the ability
to replace people, such as programs, automatic answering systems, face recognition In which the chatbot system is increasingly being improved and Widely applied to life in many different fields such as sales, financial management
From the above observation, the thesis sets the goal is to design the chatbot system,
in particular here is customer care for airports First, the thesis presents methods and algorithms used to build chatbots based on Vietnamese language, including:
- Algorithm of Natural Language Processing (SVM, RNN, LSTM…)
- Methods of separating words in Vietnamese
- How to calculate the similarity of Vietnamese document
After that, we make a selection of the most appropriate methods to design the chatbot customer care system for airports
Trang 8LỜI CAM ĐOAN Tôi xin cam đoan, những kiến thước trình bày trong luận văn là do tôi tìm hiểu, nghiên cứu và trình bày lại Trong quá trình làm luận văn tôi có có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo đó Những kết quả mới trong luận văn là của riêng tôi, không sao chép từ bất kỳ một công trình nào khác Nếu có điều gì không trung thực, tôi xin hoàn toàn chịu trách nhiệm
Tp Hồ Chí Minh, ngày 27 tháng 8 năm 2020
Nguyễn Hữu Ánh
Trang 9Mục lục ii HV: Nguyễn Hữu Ánh
MỤC LỤC
MỤC LỤC II DANH MỤC CÁC TỪ VIẾT TẮT IV DANH MỤC CÁC HÌNH ẢNH V
MỞ ĐẦU 1
1 GIỚI THIỆU TỔNG QUAN 3
1.1 Xu hướng trong, ngoài nước và các vấn đề đặt ra 3
1.2 Tổng quan về phát triển chatbot 5
1.3 Các nghiên cứu liên quan 5
2 CƠ SỞ LÝ THUYẾT 7
2.1 Chatbot và NLP (Natural Language Processing) 7
2.1.1 Chatbot 7
2.1.2 NLP (Natural Language Processing) 7
2.2 Word embedding 9
2.2.1 Word embedding 9
2.2.2 Count Vector 9
2.2.3 TF-IDF vector 10
2.2.4 Co-occurrence Matrix 11
2.2.5 GloVe (Global vectors for Word Representation) 13
2.2.6 Word2vec 14
2.3 Phương pháp tính độ tương đồng của văn bản 18
2.3.1 Khoảng cách Jaro 19
2.3.2 Mô hình độ tương phản(Contrast model) 19
2.3.3 Hệ số Jaccard 19
2.3.4 Độ tương đồng cosine 20
2.3.5 Khoảng cách Euclide 20
2.3.6 WMD (Word Mover Distance) 21
Trang 10Mục lục iii HV: Nguyễn Hữu Ánh
2.4 Các phương pháp tách từ trong tiếng việt 22
2.4.1 So khớp từ dài nhất (Longest Matching) 22
2.4.2 So khớp cực đại (Maximum Matching) 22
2.4.3 Mơ hình ngơn ngữ (language model) 22
2.4.4 Phương pháp sử dụng mơ hình Markov ẩn 23
2.4.5 Phương pháp tách từ sử dụng mơ hình xác suất cĩ điều kiện và độ hỗ loạn cực đại 24
2.4.6 Phương pháp tách từ sử dụng mơ hình Pointwise 24
2.5 Các phương pháp phân loại văn bản 25
2.5.1 Nạve Bayes Classification 25
2.5.2 Support Vector Machine 26
2.5.3 RNN (Recurrent Neural Network) 28
2.5.4 LSTM (Long Short Term Memory) 30
2.5.5 GRU (Gated Recurrent Units) 33
2.5.6 Bidirectional LSTM 33
2.5.7 Transformer 34
2.5.8 BERT (Bidirectional Encoder Representation from Transformers) 36
3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG CHATBOT 42
3.1 Phân tích hệ thống chatbot 42
3.1.1 Mơ hình hoạt động của chatbot 42
3.1.2 Xây dựng dữ liệu chatbot 43
3.1.3 Quá trình huấn luyện dữ liệu 44
3.1.4 Những vấn đề về dữ liệu đầu vào ảnh hưởng đến chatbot 46
3.2 Thiết kế hệ thống chatbot 47
4 KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ ỨNG DỤNG 49
4.1 Kết quả 49
4.2 Nhận xét và đánh giá ứng dụng 52
5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54
5.1 Kết luận 54
5.2 Hướng phát triển 54
Trang 11Danh mục các từ viết tắt iv HV: Nguyễn Hữu Ánh
DANH MỤC CÁC TỪ VIẾT TẮT
AI Artificial Intelligence SVM Support Vector Machine NLP Natural Language Processing NBC Nạve Bayes Classfication IEEE Institute of Electrical and Electronics Engineers RNN Recurrent Neural Network
LSTM Long short-term memory
TF-IDF Term Frequency-Inverse Document Frequency GloVe Global vectors for Word Representation
CRF Conditional Random Fields
GRU Gated Recurrent Units CBOW Continuous Bag of Words
Trang 12Danh mục các hình ảnh v HV: Nguyễn Hữu Ánh
DANH MỤC CÁC HÌNH ẢNH
Hình 1.1 Tỷ lệ tăng trưởng của thị trường chatbot giai đoạn 2014-2025 [1] 3
Hình 2.1 Ví dụ về context window = 2……… 12
Hình 2.2 Mô hình CBOW (Continuous Bag of Words) và skip-gram [15]………15
Hình 2.3 CBOW model với input layer là một one-hot-vector [16]……… 15
Hình 2.4 CBOW model với input nhiều one-hot-vector [16]……… 16
Hình 2.5 Cấu trúc của mô hình Skip-gram [6]……… 17
Hình 2.6 Xác định một siêu phẳng tối ưu [23]……… 27
Hình 2.7 Các xác định siêu phẳng tối ưu với magin lớn nhất [23].……….27
Hình 2.8 Ánh xạ dữ liệu qua không gian khác [23]……… 28
Hình 2.9 Minh họa mạng RNN [24]……… 29
Hình 2.10 Minh họa mạng RNN khi duỗi thẳng [25]……….30
Hình 2.11 Kiến trúc của LSTM [25]……….30
Hình 2.12 Cổng quên trong mạng LSTM [26]……… 31
Hình 2.13 Cổng vào của mạng LSTM [26]………31
Hình 2.14 Cập nhật trạng thái cell hiện tại cho mạng LSTM [26]………32
Hình 2.15 Cổng output cho mạng LSTM [26]……… 32
Hình 2.16 Kiến trúc của mạng GRU [26]……… 33
Hình 2.17 Kiến trúc mạng Bi-LSTM [27]……….34
Hình 2.18 Kiến trúc của transformer model [28]……… 35
Hình 2.19 Đầu vào của BERT (BERT input representation) [32] 38
Hình 2.20 Masked LM [32] 38
Hình 2.21 Những Fine-Tuning khác nhau của BERT [32] 40
Hình 3.1 Mô hình hoạt động của chatbot……… 43
Hình 3.2 Mô hình phân lớp ý định người dùng [33]……… 43
Hình 3.3 Quá trình huấn luyện dữ liệu……… 44
Trang 13Danh mục các hình ảnh vi HV: Nguyễn Hữu Ánh
Hình 3.4 Kiến trúc BERT [34]……… 45
Hình 3.5 Giao diện của chatbot… ……… 47
Hình 4.1 Kết quả mô phỏng tính độ tương đồng văn bản……… 49
Hình 4.2 Kết quả mô phỏng thêm dấu câu cho tiếng Việt……… …… 50
Hình 4.3 Kết quả khi phân lớp ý định người dùng……… … 50
Hình 4.4 Kết quả khi chạy trên ứng dụng chatbot……… … … 50
Trang 14Mở đầu 1 HV: Nguyễn Hữu Ánh
MỞ ĐẦU
1 Lý do chọn đề tài
Chatbot là một chương trình máy tính hoặc trí thông minh nhân tạo tương tác với con người thông qua một giao diện dưới dạng tin nhắn hoặc âm thanh Hiện nay, các chatbot được phát triển thông qua các trợ lý ảo như Google Assistant, Apple Siri, Bixby… Với sự phát triển của trí tuệ nhân tạo và nền tảng xử lý ngôn ngữ tự nhiên, chatbot được thiết kế ngày càng phức tạp và được áp dụng trong nhiều lĩnh vực như chăm sóc khách hàng, tra cứu dữ liệu y tế, chăm sóc sức khỏe
Với mong muốn tạo ra một chatbot có khả năng hỗ trợ chăm sóc khách hàng nhằm tối ưu hóa năng xuất, giảm thiểu chi phí…cho cảng hàng hàng không, tôi đã chọn đề tài “Xây dựng ứng dụng chatbot chăm sóc khách hàng cho cảng hàng không” làm đề tài luận văn của mình
2 Mục tiêu nghiên cứu
Nghiên cứu cơ sở lý thuyết các phương pháp, giải thuật trong xử lý ngôn ngữ tiếng Việt, các thuật toán học máy (Machine learning) cổ điển (SVM, NBC…) và deep learning; xây dựng hệ thống chatbot hỗ trợ chăm sóc khách hàng thông qua hội thoại giữa người dùng và máy
3 Đối tượng và phạm vi nghiên cứu của đề tài
Đối tượng nghiên cứu
Các phương pháp xử lý ngôn ngữ tự nhiên cho tiếng Việt, các mô hình học máy
và deep learning, ứng dụng nó để xây dựng chatbot
Phạm vi nghiên cứu
Ứng dụng chatbot được xây dựng dựa trên các thuật toán học máy và deep learning
có khả năng thực hiện hội thoại với người sử dụng
4 Ý nghĩa khoa học, thực tiễn của đề tài
Ý nghĩa khoa học
- Nghiên cứu, nắm vững về trí tuệ nhận tạo và deep learning
- Vận dụng trí tuệ nhân tạo và deep learning để xử lý ngôn ngữ tự nhiên (tiếng Việt)
- Tìm hiểu về chatbot và ứng dụng chatbot vào việc cung cấp thông tin, chăm sóc khách hàng
Ý nghĩa thực tiễn
Trang 15Mở đầu 2 HV: Nguyễn Hữu Ánh
- Tạo ra công cụ hỗ trợ chăm sóc khách hàng theo hình thức hội thoại giữa người
và máy
- Nâng cao sự hiểu biết về trí tuệ nhân tạo đồng thời nghiên cứu để thể áp dụng thực tiễn tại Việt Nam
5 Kết cấu luận văn
Chương 1: Giới thiệu tổng quan: Các xu hướng trong và ngoài nước, các vấn đề đặt ra, tổng quan về phát triển chatbot và các nghiên cứu liên quan
Chương 2: Cơ sở lý thuyết: Trình bày những lý thuyết về chatbot, NLP, các phương pháp tạo word embedding, cách tính độ tương đồng văn bản, các phương pháp tách từ trong tiếng Việt và các thuật toán phân loại văn bản
Chương 3: Phân tích, thiết kế hệ thống chatbot: Trình bày những vấn đề cơ bản về những phân tích cũng như những thiết kế của ứng dụng
Chương 4: Kết quả, nhận xét và đánh giá về ứng dụng
Chương 5: Kết luận trình bày những điểm mạnh và hạn chế trong luận văn và hướng phát triển trong tương lai
Trang 161 – Giới thiệu tổng quan 3 HV: Nguyễn Hữu Ánh
1 GIỚI THIỆU TỔNG QUAN
Trong phần này, luận văn trình bày tổng quan về xu hướng gia tăng nhu cầu sử dụng chatbot trên thế giới cũng như trong nước với nhiều lĩnh vực khác nhau, đặc biệt là marketing Sau đó là sơ lược về các công trình nghiên cứu liên quan Những yếu tố trên cũng là mục đích, động cơ và mang ý nghĩa cấp thiết để thực hiện ý tưởng nêu trong luận văn này
1.1 Xu hướng trong, ngoài nước và các vấn đề đặt ra
Trên thế giới, nhiều chương trình dựa trên trí thông minh nhân tạo (AI) được biểu diễn dưới nhiều dạng như hình ảnh, âm thanh và giọng nói Nó mô phỏng các quá trình hoạt động trí tuệ của con người, bao gồm quá trình học tập (thu thập thông tin
và các quy tắc để sử dụng thông tin), lập luận (sử dụng các quy tắc để đạt được kết luận gần đúng, tự sửa lỗi) và ngày càng được ứng dụng rộng rãi trong cuộc sống của chúng ta trên nhiều lĩnh vực khác nhau như marketing, giao thông, y tế…
Hình 1.1 Tỷ lệ tăng trưởng của thị trường chatbot giai đoạn 2014-2025 [1] Theo nghiên cứu của Grand View Research thì thị trường chatbot quốc tế dự kiến đạt mức tăng trưởng 1.25 tỉ đô vào năm 2025, dự báo tăng trưởng kép hằng năm CAGR đạt mức 24.3% Thị trường châu Á-Thái Bình Dương được dự đoán sẽ tăng trưởng đáng kể nhờ sự phát triển của những công nghệ mới (đột phá trong các giải thuật xử lý ngôn ngữ tự nhiên), mức tăng trưởng dự kiến là 24.7% mỗi năm từ năm
Trang 171 – Giới thiệu tổng quan 4 HV: Nguyễn Hữu Ánh
2017 đến năm 2025 Một nghiên cứu khác của Credence đã chỉ ra rằng, 85% tương tác của khách hàng sẽ được quản lý mà không cần con người vào năm 2020 [2] Những nghiên cứu trên cho thấy tiềm năng và ứng dụng vào thực tiễn ngày càng rộng rãi của chatbot Trong một báo cáo của IBM, mỗi năm tập đoàn ghi nhận 265 tỷ yêu cầu của khách hàng và công ty phải chi 1.300 tỷ USD để giải quyết Nhưng việc
sử dụng chatbot đã giúp doanh nghiệp tiết kiệm đến 30% chi phí này [2]
Ở nước ta, trong sự phát triển nhanh như vũ bão của cách mạng công nghiệp 4.0, trí tuệ nhân tạo (AI) ngày càng phát triển và có nhiều ứng dụng rộng rãi, đặc biệt là trong lĩnh vực marketing Trong những năm gần đây, công việc giải đáp những thắc mắc, chăm sóc khách hàng vẫn do con người thực hiện Tuy nhiên, việc này còn thực hiện một cách thủ công và gặp nhiều khó khăn như: tốn thời gian, chi phí chi trả cho nhân viên chỉ để trả lời cho những câu hỏi đơn giản và giống nhau, không có khả năng chăm sóc khách hàng 24/7, số lượng khách hàng lớn Chính vì vậy, nhu cầu cấp thiết là cần một hệ thống điều khiển thông minh, tự động để mang lại hiệu quả cao hơn và chatbot là một sự lựa chọn hoàn hảo
1950 Alan Turing viết báo cáo với tự đề “Computing Machinery and
Intelligence”, xây dựng các phép thử Turing (là phép thử dựa trên việc phân tích trả lời của một “máy tính”)
1966 Joseph Weizenbaum xuất bản chương trình ELIZA, được coi là chương
trình chatbot đầu tiên trên thế giới
1972 Chatbot Jabberwacky được thiết kế để “Mô phỏng trò chuyện của con
người tự nhiên theo cách thú vị và hài hước”
1988 Cybulsky và Jelenska-Macieszyna chụp ảnh được điện não đồ của cơn động
kinh thí nghiệm
1992 Được tạo ra bởi Creative Labs, Dr.SBAITSO “trò chuyện” với người dung
như thể nó là một nhà tâm lý học
1995 ALICEBOT được sáng tạo bởi Richard Wallace, sử dụng một lược đồ XML
có tên AIML (Artificial Intelligence Markup Language- Ngôn ngữ đánh dấu trí thông minh nhân tạo) để xác định các quy tắc trò chuyện heuristic
2001 SmarterChild là một Chatbot có sẵn trên mạng AOL Instant Messenger và
Windows Live Messenger, đóng vai trò giới thiệu cho việc truy cập dữ liệu nhanh và cuộc trò chuyện được cá nhân hóa thú vị hơn
2006 IBM Watson được tạo ra với mục tiêu vượt lên và chiến thắng các thí sinh
tham dự cuộc thi Jeopardy! Với khả năng chạy hàng trăm thuật toán phân tích ngôn ngữ cùng một lúc, IBM Watson sở hữu một sự thông minh ngôn ngữ đáng ngạc nhiên
2010-
2016
Nửa đầu thập kỷ này chứng kiến sự bùng nổ của các trợ lý cá nhân ảo: Siri (2010), Google Now (2012), Alexa (2015), Cortana (2015) và Google Assistant (2016) Với khả năng phân tích và xử lý ngôn ngữ tự nhiên, các
Trang 181 – Giới thiệu tổng quan 5 HV: Nguyễn Hữu Ánh
trợ lý này kết nối với các dịch vụ web để trả lời các câu hỏi và đáp ứng các yêu cầu của người dùng
Bảng 1.1 Sơ lược lịch sử 1.2 Tổng quan về phát triển chatbot
Chatbot tương tác với con người qua âm thanh hoặc văn bản và sử dụng các platform để giao tiếp với bot Phần mà các lập trình viên cần phát triển nằm toàn bộ
ở phía sau bao gồm [3]:
Translator: Dịch yêu cầu của user, giúp máy tính hiểu được yêu cầu mình cần thực hiện, quyết định việc chatbot có thông minh hay không
Processor: Xử lý yêu cầu, thành phần này giúp khả năng của chatbot không bị giới hạn, máy tính làm được gì thì chatbot cũng làm được như vậy
Respondent: Nhận output và đóng gói gửi trả lại messenger platform, trả lại cho người dùng kết quả sự
1.3 Các nghiên cứu liên quan
Trong [4], tác giả đã sử dụng mã nguồn mở AIML để xây dựng chatbot trợ giúp phương pháp học tập cho sinh viên ngành kỹ thuật Tác giả muốn tạo ra cộng cụ tư vấn, trợ giúp theo hình thức hội thoại người – máy nhằm nâng cao hiệu quả học tập cho sinh viên Hệ thống có ưu điểm là dễ sử dụng, có thể thay đổi và bổ sung các chủ
đề hội thoại, các mẫu hội thoại để cho ra kết quả phù hợp nhất, cũng như thể hiện được sự thông minh, gần gủi với con người Nhưng bên cạch đó, vẫn còn tồn tại nhược điểm sau: chưa Việt hóa được trong quá trình hội thoại, cơ sở dữ liệu chưa đủ lớn để có thể tư vấn mức độ phù hợp và thông minh với sinh viên bất kỳ ngành học nào
Trong [5], tác giả đã nghiên cứu mô hình PCFGs và ngôn ngữ AIML trong xây dựng chatbot hỗ trợ học tiếng Anh Tác giả đã giới thiệu một số mã nguồn mở hỗ trợ xây dựng chatbot, kiểm tra ngữ pháp; đồng thời áp dụng mô hình PCFGs và thuật toán CKY trong bài toán phân tích cú pháp câu Tuy nhiên, vẫn có những hạn chế: Tập dữ liệu hội thoại sử dụng trong chatbot còn đơn giản, độ chính xác của kết quả cũng phụ thuộc vào tập luật, chưa đưa ra được lỗi cụ thể đối với những văn bản lỗi
Trang 191 – Giới thiệu tổng quan 6 HV: Nguyễn Hữu Ánh
Trong [6], tác giả tập trung điều chỉnh mô hình Transformer [Vaswaniet al.,2017] cho chatbot, hiện đang là mô hình “dịch thuật” thần kinh Trước tiên, tác giả trình bày thí nghiệm của mình với mô hình vanilla, bằng cách sử dụng hội thoại được rút
ra từ Cornell Movie-Dialog Corpus [Danescu-Niculescu-Mizil và Lee, 2011] Họ phân tích chi tiết về cách mô hình vanilla thực hiện trên dữ liệu hội thoại bằng cách
so sánh nó với mô hình chatbot trước đó, và cách tính năng bổ sung, ảnh hưởng đến chất lượng của các phải hồi được tạo
Trong [7], tác giả trình bày một nghiên cứu về chatbot hỗ trợ khách hàng cho công
ty GAMING1 Tác giả đã sử dụng thuật toán LSTM và phân loại ý định người dùng (intent classification) kết hợp với mô hình Skip-gram để xây dựng chatbot Mô hình này khá đơn giản nhưng lại dễ vận hành Tuy nhiên, vì số liệu về hiệu suất rất khó diễn giải cho cuộc đối thoại của hệ thống nên rất nhiều trường hợp thử nghiệm được trình bày
Trong [8], nhóm tác giả đã xây dựng chatbot dựng trên việc bắt chước các nhân vật phổ biến trên TV như: Barney from How I Met Your Mother, Sheldon from The Big Bang Theory, Michael from The Office Mô hình được lựa chọn dựa trên mô hình Google’s Neural Machine Translation Đó là mô hình sequence-to-sequence với
cơ chết cho phép bộ giải mã truy cập trực tiếp vào đầu ra trạng thái ẩn bằng bộ mã hóa Đối với các RNN, họ sủ dụng các ô GRU xếp chồng lên nhau gồm ba lớp Tuy nhiên, không giống như những mô hình seq2seq khác, mô hình của họ không sử dụng
mã thông báo bắt đầu hoặc mã thông báo kết thúc cho bộ mã hóa mà chỉ sử dụng mã thông báo kết thúc cho bộ giải mã
Trang 202 – Cơ sở lý thuyết 7 HV: Nguyễn Hữu Ánh
Ưu điểm của chatbot:
- Độ tin cậy cao
- Vượt trội con người về mặt tốc độ và độ chính xác
- Bất cứ ngôn ngữ lập trình nào cũng có thể sử dụng để phát triển chatbot
- Có thể thay thế số lượng lớn về nhân lực
- Tự tích lũy kiến thức nhận được và trở nên thông minh, linh hoạt hơn sau mỗi cuộc trò chuyện
- Luôn hỗ trợ 24/7, cải thiện trải nghiệm của khách hàng
Chatbot là sự kết hợp của các kịch bản có trước và tự học trong quá trình tương tác Ta sẽ tương tác với chatbot qua nền tảng tin nhắn Với các câu hỏi được đặt ra, ChatBot sử dụng các hệ thống xử lý ngôn ngữ tự nhiên (Natural Language Processing) để phân tích dữ liệu sau đó chúng lựa chọn các thuật toán học máy để tạo
ra các loại phản ứng khác nhau, chúng sẽ dự đoán và phản hồi chính xác nhất có thể Chatbot sử dụng nhiều hệ thống quét các từ khoá bên trong đầu vào, sau đó bot khởi động một hành động, kéo một câu trả lời với các từ khóa phù hợp nhất và trả lời thông tin từ một cơ sở dữ liệu / API, hoặc bàn giao cho con người Nếu tình huống đó chưa xảy ra (không có trong dữ liệu), ChatBot sẽ bỏ qua nhưng sẽ đồng thời tự học để áp dụng cho các cuộc trò chuyện về sau Một trong các yếu tố làm nên sức mạnh của ChatBot là khả năng tự học hỏi Càng được sử dụng, tương tác với người dùng nhiều, nền tảng ChatBot càng “thông minh” ChatBot thông minh có khả năng tự học hỏi dựa trên các dữ liệu đưa vào mà không cần phải được lập trình cụ thể (đó được gọi
là phương pháp máy học-Machine Learning) Chính điều này làm cho các nhà phát triển dễ dàng tạo các chương trình trò chuyện và tự động hoá các cuộc trò chuyện với người dùng [9]
2.1.2 NLP (Natural Language Processing)
Xử lý ngôn ngữ tự nhiên (NLP) là một nhánh của Trí tuệ nhân tạo, tập trung vào việc nghiên cứu sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người Mục tiêu của lĩnh vực này là giúp máy tính hiểu và thực hiện hiệu quả những nhiệm vụ
Trang 212 – Cơ sở lý thuyết 8 HV: Nguyễn Hữu Ánh
liên quan đến ngôn ngữ của con người như: tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữa con người với con người, hoặc đơn giản là nâng cao hiệu quả
xử lý văn bản và lời nói [10]
Xử lý ngôn ngữ tự nhiên ra đời từ những năm 1940, với rất nhiều công trình nghiên cứu theo hai hướng chính là:
- Ô-tô-mát (automaton) và các mô hình xác suất (probabilistic models) vào những năm 1950 [10]
- Các phương pháp dựa trên ký hiệu (symbolic) và các phương pháp ngẫu nhiên (stochastic) vào những năm 1970 Giai đoạn tiếp theo (1970-1983) chứng kiến sự bùng nổ trong nghiên cứu về xử lý tiếng nói và ngôn ngữ Ngày nay với sự phát triển nhanh chóng, học máy (machine learning) đã trở thành trung tâm của phần lớn các lĩnh vực thuộc khoa học máy tính, bao gồm xử lý ảnh và thị giác máy tính (computer vision), tin sinh học (bioinformatics), các hệ tư vấn (recommender systems), kỹ nghệ phần mềm, và cả xử lý ngôn ngữ tự nhiên [10]
Xử lý ngôn ngữ tự nhiên bao gồm hiểu ngôn ngữ tự nhiên (Natural Language Understanding – NLU) và sinh ngôn ngữ tự nhiên (Natural Language Generation – NLG) Trong đó, hiểu ngôn ngữ tự nhiên (NLU) bao gồm 4 bước chính sau đây: Phân tích hình vị: là sự nhận biết, phân tích, và miêu tả cấu trúc của những hình vị trong một ngôn ngữ cho trước và các đơn vị ngôn ngữ khác, như từ gốc, biên từ, phụ
tố, từ loại… Có hai loại bài toán điển hình trong phần này, bao gồm bài toán tách từ (word segmentation) và gán nhãn từ loại (POS) [11]
Phân tích cú pháp: là quy trình phân tích một chuỗi các biểu tượng, ở dạng ngôn ngữ tự nhiên hoặc ngôn ngữ máy tính, tuân theo văn phạm hình thức Văn phạm hình thức thường dùng trong phân tích cú pháp của ngôn ngữ tự nhiên bao gồm Văn phạm phi ngữ cảnh (Context-free grammar – CFG), Văn phạm danh mục kết nối (Combinatory categorial grammar – CCG), và Văn phạm phụ thuộc (Dependency grammar – DG) Đầu vào của quá trình phân tích là một câu gồm một chuỗi từ và nhãn từ loại của chúng, và đầu ra là một cây phân tích thể hiện cấu trúc cú pháp của câu đó Các thuật toán phân tích cú pháp phổ biến bao gồm CKY, Earley, Chart, và GLR [11]
Phân tích ngữ nghĩa: là quá trình liên hệ cấu trúc ngữ nghĩa, từ cấp độ cụm từ, mệnh đề, câu và đoạn đến cấp độ toàn bài viết, với ý nghĩa độc lập của chúng Nói cách khác, việc này nhằm tìm ra ngữ nghĩa của đầu vào ngôn từ Phân tích ngữ nghĩa bao gồm hai mức độ: Ngữ nghĩa từ vựng biểu hiện các ý nghĩa của những từ thành phần, và phân biệt nghĩa của từ; Ngữ nghĩa thành phần liên quan đến cách thức các
từ liên kết để hình thành những nghĩa rộng hơn [11]
Phân tích diễn ngôn: Ngữ dụng học là môn nghiên cứu về mối quan hệ giữa ngôn ngữ và ngữ cảnh sử dụng (context-of-use) Ngữ cảnh sử dụng bao gồm danh tính của
Trang 222 – Cơ sở lý thuyết 9 HV: Nguyễn Hữu Ánh
người hoặc vật, và vì thế ngữ dụng học bao gồm những nghiên cứu về cách ngôn ngữ được dùng để đề cập (hoặc tái đề cập) tới người hoặc vật Ngữ cảnh sử dụng bao gồm ngữ cảnh diễn ngôn, vì vậy ngữ dụng học cũng bao gồm những nghiên cứu về cách thức cấu tạo nên diễn ngôn, và cách người nghe hiểu người đang đối thoại với mình [11]
Khía cạnh thứ hai của NLP là sinh ngôn ngữ tự nhiên (NLG) Đây là một nhiệm
vụ trong quá trình xử lý ngôn ngữ tự nhiên trong việc sinh ra ngôn ngữ tự nhiên từ một hệ thống máy biểu diễn như một cơ sở tri thức hoặc một dạng biểu diễn logic NLG đóng vai trò quan trọng trong rất nhiều ứng dụng NLP, bao gồm sinh hội thoại, tương tác người – máy, dịch thuật máy, và tóm tắt văn bản tự động [6]
2.2 Word embedding
2.2.1 Word embedding
Word Embedding là tên gọi chung của các mô hình ngôn ngữ và các phương pháp học theo đặc trưng trong xử lý ngôn ngữ tự nhiên (NLP), ở đó các từ hoặc cụm từ được ánh xạ sang các vector số (thường là số thực) Đây là một công cụ đóng vai trò quan trọng đối với hầu hết các thuật toán, kiến trúc Machine Learning, Deep Learning trong việc xử lý Input ở dạng text, do chúng chỉ có thể hiểu được input ở dạng là số,
từ đó mới thực hiện các công việc phân loại, hồi quy… [12]
Word Embedding được phân chủ yếu thành 2 loại:
Frequency-based embedding: dựa vào tần số xuất hiện của các từ để tạo ra các vector từ, trong đó có 3 loại phổ biến (Count vector, TF-IDF Vector, Co-occurrence Matrix)
Prediction-based embedding: Xây dựng các vector từ dựa vào các mô hình dự đoán (Word2vec)
Word Embedding tạo ra các vector từ mà dựa vào đó ta có thể áp dụng chúng để thực hiện các thao tác về ngữ nghĩa như là tìm từ đồng nghĩa, trái nghĩa,… Ngoài ra, chúng cũng là nguồn tài nguyên cho các hệ thống Machine Learning, Deep Learning nhằm thực hiện các mục đích cao hơn như là các hệ thống máy dịch, phân tích cảm xúc dựa trên ngôn từ…[12]
2.2.2 Count Vector
Count Vector là dạng đơn giản nhất của Frequencey-based Embedding, giả sử ta
có D documents d1,d2,…dD và N là độ dài của từ điển, vector biểu diễn của một từ là một vector số nguyên và có độ dài là D, ở đó phần tử tại vị trí i chính là tần số của từ
đó xuất hiện trong document di [12] Ma trận Count Vector M được tạo ra bởi DxN với mỗi hàng chứa tần số xuất hiện của từ trong document
Trang 232 – Cơ sở lý thuyết 10 HV: Nguyễn Hữu Ánh
Ta lấy một ví dụ đơn giản sau:
D1: Tôi muốn đặt mua vé máy bay
D2: Tôi muốn tìm kiếm vé máy bay
Bộ từ điển được tạo ra có thể là danh sách các từ duy nhất trong tài liệu: [‘Tôi’,’muốn’,’đặt’,’mua’,’vé’,’máy’,’bay’,’tìm’,’kiếm’] Ở đây, ta có D =2, N=9
Ma trận M có kích thước 2x9 như sau:
Tôi muốn đặt mua vé máy bay tìm kiếm
Bảng 2.1 Ví dụ về ma trận Count Vector Trong một số trường hợp, ta có thể lượt bớt các từ có tần số xuất hiện thấp hoặc thay đổi mục nhập của vector (thay vì tần số có thể thay bằng một giá trị nhị phân biểu thị sự xuất hiện của từ) tùy vào mục đích cụ thể Tuy nhiên, nhược điểm của phương pháp trên chính là việc nó chỉ chú trọng đến tần số xuất hiện của một từ, dẫn tới nó hầu như không mang ý nghĩa gì về mặt ngữ cảnh [12]
2.2.3 TF-IDF vector
Đây là một phương pháp khác dựa trên phương pháp tần số, nhưng khác với count vector chỉ xét đến tần số xuất hiện của từ trong một document, IF-IDF vector xét tần
số xuất hiện của từ trong toàn bộ tập dữ liệu Chính do đặc điểm này mà tf-idf Vector
có tính phân loại cao hơn so với Count Vector TF-IDF (Term Frequency-Inverse Document Frequency) Vector là một vector số thực cũng có độ dài D với D là số văn bản, nó được tính bằng tích của 2 phần bao gồm TF và IDF, công thức của mỗi phần
tử của vector được tính như sau [12]:
Trang 242 – Cơ sở lý thuyết 11 HV: Nguyễn Hữu Ánh
TF biểu thị sự đóng góp của từ này vào document, nghĩa là tần số xuất hiện của một từ trong văn bản
𝐼𝐷𝐹 = 𝑙𝑜𝑔𝐷
𝑑
(2.2)
Trong đó:
D: tổng số documents trong tập dữ liệu
d: số lượng documents có sự xuất hiện của từ
IDF (Inverse Document Frequency) là tần số nghịch của một từ trong tập văn bản Mục đích của việc tính IDF là làm giảm giá trị của các từ thường xuất hiện do các từ này không mang nhiều ý nghĩa trong việc phân loại
Ta lấy lại ví dụ mục 2.2.2 Count Vector để tính TF-IDF vector cho từ ‘đặt’ và từ
‘vé’:
IF(đặt, D1) = 1/7, IDF(đặt) = log(2/1) = 0.301, TFIDF(đặt, D1) = 0.043
TF(đặt, D2) = 0/7 = 0, IDF(đặt) = log(2/1) = 0.301, TFIDF(đặt, D1) = 0
TF(vé, D1) = 1/7, IDF(vé) = log(2/2) = 0, TFIDF(đặt, D1) = 0
TF(vé, D2) = 1/7, IDF(vé) = log(2/2) = 0, TFIDF(đặt, D1) = 0
Những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, và xuất hiện ít trong các văn bản khác Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khoá của văn bản đó) Tuy nhiên, nhược điểm của phương pháp trên chính là việc nó chỉ chú trọng đến tần số xuất hiện của một từ, dẫn tới nó hầu như không mang ý nghĩa gì về mặt ngữ cảnh [12]
2.2.4 Co-occurrence Matrix
Co-occurrence Matrix là một ma trận vuông đối xứng, mỗi hàng hoặc mỗi cột sẽ chính là vector biểu thị của từ tương ứng [12] Co-occurrence Matrix được xây dựng dựa trên số lần xuất hiện của các cặp từ trong Context Window Một Context Window được xác định bởi kích thước và hướng của nó Ta lấy ví dụ về Context Window như sau:
Trang 252 – Cơ sở lý thuyết 12 HV: Nguyễn Hữu Ánh
D1: Tôi muốn đặt mua vé máy bay Tôi muốn tìm kiếm vé máy bay
Tôi muốn đặt mua vé máy bay tìm kiếm
kỹ thuật như SVD (Singular Value Decomposition), PCA… để giảm kích thước của vector từ nhằm giúp cho biểu diễn của từ được rõ ràng hơn đồng thời tiết kiệm bộ nhớ dùng để lưu trữ Co-occurrence Matrix (do các Co-occurrence Matrix có kích thước rất lớn) [12]
Ưu điểm:
- Nó bảo tồn mối quan hệ ngữ nghĩa giữa các từ (ví dụ như từ ‘con trai’ và ‘con gái’ gần nhau hơn so với ‘con trai’ và ‘quả chuối’)
Trang 262 – Cơ sở lý thuyết 13 HV: Nguyễn Hữu Ánh
- Nó sử dụng SVD, tạo ra các biểu diễn vector từ chính xác hơn so với các phương thức hiện có
- Nó sử dụng hệ số hóa, là một vấn đề được xác định rõ và được giải quyết một cách hiệu quả
- Nó được tính toán một lần và có thể được sử dụng bất cứ lúc nào khi tính toán Như vậy, nó có thể nhanh hơn so với một vài phương pháp khác
Nhược điểm:
- Nó đòi hỏi bộ nhớ lớn để lưu trữ ma trận Nhưng vấn đề này có thể khắc phục bằng các đưa yếu tố ma trận ra khỏi hệ thống, ví dụ như trong Hadoop cluster… và có thể được lưu lại
2.2.5 GloVe (Global vectors for Word Representation)
GloVe (Global Vector) là một trong những phương pháp mới để xây dựng vector
từ Nó là một thuật toán học không giám sát, được giới thiệu vào năm 2014 bởi Jeffrey Pennington, Richard Socher, and Christopher D Manning Nó thực chất được xây dựng dựa trên Co-occurrence Matrix và có bản chất là xác suất
Ý tưởng chính của GloVe: độ tương tự ngữ nghĩa giữa hai từ i, j có thể được xác định thông qua độ tương tự ngữ nghĩa giữa từ k với mỗi từ i, j, những từ k có tính xác định ngữ nghĩa tốt chính là những từ làm cho (1) >>1 hoặc xấp chỉ bằng 0 Ví dụ, nếu i là “table”, j là “cat” và k là “chair” thì (1) sẽ khá lớn do “chair” có nghĩa gần hơn với “table” hơn là “cat”, ở trường hợp khác, nếu ta thay k là “ice cream” thì (2.4)
sẽ xấp xỉ bằng 1 do “ice cream” hầu như chẳng lên quan gì tới “table” và “cat” [12]
𝑃(𝑘|𝑖)𝑃(𝑘|𝑗)
P(k|i) là xác suất xuất hiện của từ k trong ngữ cảnh của từ i, tương tự với P(k|j)
Xik: số lần xuất hiện của từ k trong ngữ cảnh của từ i(hoặc ngược lại)
Xi: số lần xuất hiện của từ i trong ngữ cảnh của toàn bộ các từ còn lại ngoại trừ i Dựa trên tầm quan trọng của (1), GloVe khởi đầu bằng việc là nó sẽ tìm một hàm
F sao cho nó ánh xạ từ các vec-tơ từ trong vùng không gian V sang một giá trị tỉ lệ
Trang 272 – Cơ sở lý thuyết 14 HV: Nguyễn Hữu Ánh
với (1) Việc tìm F không đơn giản, tuy nhiên, sau nhiều bước đơn giản hóa cũng như tối ưu, ta có thể đưa nó về bài toán hồi quy với việc minimum cost function sau [12]:
Xij: mục nhập tương ứng với các cặp từ i,j trong Co-occurrence Matrix
Hàm f được gọi là weighting function, được them vào để giảm bớt sự ảnh hưởng của các cặp từ xuất hiện trong quá trình thường xuyên, thỏa mãn ba tính chất sau: có giới hạn bằng 0, là hàm không giảm và có giá trị nhỏ nhất khi x rất lớn
Việc thực hiện minimum cost function J để tìm ra các vec-tơ từ wi, wj thể được thực hiện bằng nhiều cách, trong đó cách tiêu chuẩn nhất là sử dụng Gradient Descent [12]
2.2.6 Word2vec
Word2vec được tạo ra năm 2013 bởi một kỹ sư ở google có tên là Tomas Mikolov
Nó là một model unsupervised learning, được training từ large corpus Chiều của Word2vec nhỏ hơn nhiều so với one-hot-encoding [13] Word2vec có 2 model là skip-gram và Cbow Cả hai mô hình này đều được xây dựng dựa trên một mạng neuron gồm 3 lớp:1 Input Layer,1 Hidden Layer và 1 Output Layer Gọi V là tập các tất cả các từ hay vocabulary với n từ khác nhau Layer input biểu diễn dưới dạng one-hot encoding với n node đại diện cho n từ trong vocabulary Activation function (hàm kích hoạt) chỉ có tại layer cuối là softmax function, loss function là cross entropy loss, tương tự như cách biểu diễn mô hình của các bài toán classification thông thường vậy Ở giữa 2 layer input và output là 1 layer trung gian với size = k, chính là vector sẽ được sử dụng để biểu diễn các từ sau khi huấn luyện mô hình [14] Mục đích chính của các mạng neuron này là học các trọng số biểu diễn vector từ
Trang 282 – Cơ sở lý thuyết 15 HV: Nguyễn Hữu Ánh
Hình 2.2 Mô hình CBOW (Continuous Bag of Words) và skip-gram [15] 2.2.6.1 CBOW (Continuous Bag of Words)
Mô hình và hoạt động của CBOW model:
Hình 2.3 CBOW model với input layer là một one-hot-vector [16]
- Input là một hay nhiều one-hot-vector mỗi word sẽ có dạng x1,x2, xv trong đó
V là số vocabulary, là một vector trong đó mỗi word sẽ có giá trị 1 tương đương với index trong vocabulary và còn lại sẽ là 0
- Weight matrix giữa input và hidden layer là matrix W(có dimention VxN) có active function là linear, weight giữa hidden và out put là W′ (có dimention là NxV) active function của out put là soft max Hai ma trận này được khởi tạo ngẫu nhiên
Trang 292 – Cơ sở lý thuyết 16 HV: Nguyễn Hữu Ánh
Input sẽ được nhân với Weights Matrix (giữa input với hidden layer) ra được một kết quả gọi là Hidden Activation
- Trong trường hợp input là nhiều one-hot-vector, các kết quả thu được khi nhân các Input với Weights Matrix (giữa input với hidden layer) sẽ được lấy trung bình để
ra được Hidden Activation cuối cùng
- Từ hidden layer đến out put là matrix W′= 𝑤, Ta tính score ui cho mỗi word trong vocabulary
- Trong đó vw và 𝑣 là 2 vector đại diện cho word w đên từ matrix W và W′
- Output này sẽ được so sánh với output mong muốn và tính toán độ lỗi, dựa vào độ lỗi này mà mạng neuron sẽ lan truyền ngược trở lại để cập nhật các giá trị của các ma trận trọng số
- Output sẽ là một vector xác suất cũng với chiều dài V của từ liên quan hoặc còn thiếu
Hình 2.4 CBOW model với input nhiều one-hot-vector [16]
Trang 302 – Cơ sở lý thuyết 17 HV: Nguyễn Hữu Ánh
2.2.6.2 Skip-gram
Mô hình và hoạt động của Skip-gram model:
Hình 2.5 Cấu trúc của mô hình Skip-gram [6]
- Input là one-hot-vector mỗi word sẽ có dạng x1,x2, xv trong đó V là số vocabulary, là một vector trong đó mỗi word sẽ có giá trị 1 tương đương với index trong vocabulary và còn lại sẽ là 0
- Weight matrix giữa input và hidden layer là matrix W(có dimention VxN) có active function là linear, weight giữa hidden và out put là W′ (có dimention là NxV) active function của out put là soft max
- Mỗi hàng của W là vector N chiều đại diện cho vW là mỗi word trong input layer Mỗi hàng của W là 𝑣 Lưu ý là input là 1 one hot vector (sẽ có dạng 000100) chỉ có 1 phần tử bằng 1 nên
Trang 312 – Cơ sở lý thuyết 18 HV: Nguyễn Hữu Ánh
𝑃 𝑤 𝑤 = 𝑦 = exp (𝑢 )
∑ exp (𝑢 )=
exp (𝑣′ 𝑣 )
- Trong đó vw và 𝑣 là 2 vector đại diện cho word w đên từ matrix W và W′
- Output này sẽ được so sánh với output mong muốn và tính toán độ lỗi, dựa vào độ lỗi này mà mạng neuron sẽ lan truyền ngược trở lại để cập nhật các giá trị của các ma trận trọng số
- Output sẽ là nhiều vector xác suất cũng với chiều dài V của từ liên quan hoặc còn thiếu
“Apple” cho công ty và quả táo Lấy mẫu của những từ phụ tốt hơn
so với các phương pháp nói chung khác
Nhược
điểm
Các từ giống nhau nhưng nghĩa
khác nhau vẫn chỉ được biểu diễn
bằng 1 vec-tơ từ duy nhất Ex: từ
apple lấy giá trị trung bình của
công ty và quả táo
Tốn RAM hơn so với CBOW model Tốn nhiều thời gian huấn luyện hơn
2.3 Phương pháp tính độ tương đồng của văn bản
Độ tương đồng là một đại lượng dùng để so sánh hai hay nhiều đối tượng với nhau, phản ánh cường độ của mối quan hệ với nhau Bài toán tính độ tương đồng được phát biểu như sau:
Xét văn bản di và dj Mục tiêu là tìm ra một giá trị S(di,dj), S(0,1), thể hiện độ tương đồng giữa hai văn bản di và dj Giá trị càng cao thì sự giống nhau về nghĩa của hai văn bản càng lớn [17]
Trang 322 – Cơ sở lý thuyết 19 HV: Nguyễn Hữu Ánh
Độ tương tự ngữ nghĩa là khái niệm thể hiện tỷ lệ dựa trên sự giống nhau về nội dung ý nghĩa của tập các tài liệu hoặc các thuật ngữ trong một danh sách các thuật ngữ Độ tương đồng ngữ nghĩa phản ánh mối quan hệ ngữ nghĩa giữa các câu, các tài liệu văn bản Độ tương đồng văn bản được tính dựa vào tập từ chung hoặc dựa trên vector biểu diễn [17]
2.3.1 Khoảng cách Jaro
Khoảng cách Jaro định nghĩa độ đo tương tự giữa hai chuỗi Cho hai câu s1 và s2, khoảng cách Jaro d giữa s1 và s2 được tính như sau (Winkler, W E., “String Comparator Metrics and Enhanced Decision Rules in the Fellegi-Sunter Model of Record Linkage”, 1990):
Trong đó m là số từ giống nhau, t là ½ số bước chuyển
Phép chuyển vị trí sẽ được thực hiện khi hai từ giống nhau trong hai câu s1 và s2
có khoảng cách không lớn hơn giá trị:
max (|𝑠 |, |𝑠 |)
Mỗi từ trong câu s1 được so sánh với tất cả các từ trong s2 Số bước chuyển được định nghĩa là số lượng từ giống nhau giữa hai câu (nhưng thứ tự trong chuỗi khác nhau) chia cho 2 [17]
2.3.2 Mô hình độ tương phản(Contrast model)
Mô hình tương phản do Tversky đề xuất (“Features of similarity”, Psychological Review, 1977) để tính độ tương tự giữa hai câu A và B như sau:
𝑆𝑖𝑚(𝐴, 𝐵) =∝∗ 𝑔(𝐴 ∩ 𝐵) − 𝛽 ∗ 𝑔(𝐴 − 𝐵) − 𝛾 ∗ 𝑔(𝐵 − 𝐴) (2.14) Trong đó g(A∩B) biểu diễn cho các từ chung giữa A và B, g(A-B) biểu diễn cho các từ riêng của A và g(B-A) biểu diễn cho các từ riêng của B Hệ số ∝, 𝛽, 𝛾 được xác định trong quá trình thử nghiệm thuật toán [17]
2.3.3 Hệ số Jaccard
Hệ số Jaccard là một độ đo tương tự của các tập hợp dựa trên phương pháp thống
kê Theo đó, độ tương tự giữa hai câu A và B như sau (Paul Jaccard, “Etude
Trang 332 – Cơ sở lý thuyết 20 HV: Nguyễn Hữu Ánh
comparative de la distribution orale dans une portion des Alpes et des Jura” In Bulletin del la Socit Vaudoise des Sciences Naturelles, volume 37, pages 547-579):
đã thu được từ quá trình tiền xử lý văn bản đầu
Không gian vector hay số chiều của vector có kích thước bằng số mục từ trong danh sách mục từ Giá trị mỗi phần tử của vector là độ quan trọng của mục từ trong câu Độ quan trọng của từ được tính theo một trong các phương pháp đã trình bày ở trên, phần mô hình vector biểu diễn văn bản, ví dụ:
Trong đó: tfij là tần số xuất hiện của từ i trong câu j
Giả sử vector biểu diễn cho hai văn bản lần lượt có dạng:
Di =< 𝑤 , … , 𝑤 > với 𝑤 là trọng số của từ thứ t trong không gian vector i
Dj =< 𝑤 , … , 𝑤 > với 𝑤 là trọng số của từ thứ t trong không gian vector j
Độ đo tương đồng được tính là Cosine của góc giữa hai vector biểu diễn cho hai văn bản Di và Dj Độ tương tự của chúng được tính theo công thức:
Nhược điểm của phương pháp này là vector biểu diễn cho các câu chưa quan tâm đến mối quan hệ ngữ nghĩa giữa các từ mục, do đó các từ đồng nghĩa sẽ không được phát hiện, kết quả tín độ tương tự chưa cao [17]
2.3.5 Khoảng cách Euclide
Khoảng cách Euclide cũng là một phương pháp khá phổ biến để xác định mức độ tương đồng giữa các vector đặc trưng của hai văn bản [17]
Trang 342 – Cơ sở lý thuyết 21 HV: Nguyễn Hữu Ánh
Cho hai vector 𝑣⃗ và 𝑣⃗, khoảng cách Euclide được định nghĩa như sau:
2.3.6 WMD (Word Mover Distance)
WMD là một phương pháp cho phép đánh giá khoảng cách giữa hai tài liệu một cách có ý nghĩa, ngay cả khi chúng không có từ chung Nó đã được chứng minh vượt trội hơn nhiều so với phương pháp phân loại K-Nearest Neighbors [18]
Giả sử chung ta được cung cấp ma trận X ∈ Rdxn với kích thước từ điển của n từ Đặt xi ∈ Rd đại diện cho từ thứ i Nếu từ i xuất hiện ci lần trong tài liệu, ta định nghĩa rằng: 𝑑 =
Trong đó: c(i,j) = 𝑥 − 𝑥 là khoảng cách giữa từ i và từ j
WMD là một trường hợp đặc biệt của Earth Mover’s Distance(EMD) và tổng quát hơn so với Wassserstein distance
Trang 352 – Cơ sở lý thuyết 22 HV: Nguyễn Hữu Ánh
2.4 Các phương pháp tách từ trong tiếng việt
Tách từ là quá trình xử lý nhằm mục đích xác định ranh giới của các từ trong câu, hay nói đơn giản là quá trình xác định các từ đơn, từ ghép… có trong câu [19] Vấn
đề này tưởng chừng đơn giản với con người nhưng rất khó để giải quyết đối với máy tính Chính vì vậy, tách từ được xem là bước tiền xử lý quan trọng đối với các hệ thống xử lý ngôn ngữ tự nhiên Đặc biệt là đối với ngôn ngữ tiếng việt, ranh giới từ không chỉ là những khoảng trắng mà còn có sự liên kết chặt chẽ với nhau (một từ có thể cấu tạo bởi một hoặc nhiều tiếng Có ba phương pháp tiếp cận chính cho việc tách
từ bao gồm: tiếp cận dựa vào từ điển cố định, thông kê thuần túy và dựa vào hai phương pháp trên
2.4.1 So khớp từ dài nhất (Longest Matching)
Với mỗi câu, duyệt từ trái qua phải các âm tiết trong câu, kiểm tra xem có nhóm các âm tiết có tồn tại từ trong từ điển hay không Chuỗi dài nhất các âm tiết được xác định là từ sẽ được chọn ra Tiếp tục thực hiện việc so khớp cho đến hết câu (Surapant Meknavin et al., 1997) [20]
Ví dụ: “Học sinh học sinh vật học”, từ trái qua phải, âm tiết đầu tiên là “học”,
“học” cũng có thể là 1 từ đơn, nhưng “học” cũng có thể kết hợp với âm tiết “sinh” để tạo nên từ ghép “học sinh”, ta được từ đầu tiên là “học sinh”, xét tiếp các âm tiết còn lại cho đến khi hết câu ta có các từ sau: “học sinh”, “học sinh”, “vật”, “học” Với ví
dụ này, phương pháp so khớp từ dài nhất không đem lại kết quả như mong muốn 2.4.2 So khớp cực đại (Maximum Matching)
Ứng với mỗi câu dữ liệu đầu vào, tìm tất cả các trường hợp mà các âm tiết có thể kết hợp lại để tạo nên các từ có nghĩa Ứng với mỗi loại ngôn ngữ khác nhau thì sự lựa chọn các nhóm âm tiết này có thể khác nhau Phương pháp này là so khớp toàn diện cho một câu thay vì so khớp cục bộ âm tiết đang được xét (Chih-Hao Tsai, 1996) [20]
Ví dụ: “Học sinh học sinh vật học”: các trường hợp kết hợp của các âm tiết có thể
có “sinh vật học”, “học sinh”, “học”, từ được tách trong câu sẽ chính xác hơn phương pháp so khớp từ dài nhất
2.4.3 Mô hình ngôn ngữ (language model)
Một mô hình ngôn ngữ thường được xây dựng dựa trên việc thu thập thống kê số lần xuất hiện hoặc đồng xuất hiện của các từ trong một tập lớn các văn bản (Jelinek
et al., 1991) Với một đoạn văn bản 𝑤 = 𝑤 𝑤 … 𝑤 , mô hình LM được dùng để tính xác suất P(𝑤 ) của đoạn văn bản này [20] Công thức tính xác suất tổng quát có thể được biểu diễn như sau:
Trang 362 – Cơ sở lý thuyết 23 HV: Nguyễn Hữu Ánh
𝑃(𝑤 ) = 𝑃(𝑤 )𝑃(𝑤 |𝑤 )𝑃(𝑤 |𝑤 ) 𝑃(𝑤 |𝑤 ) = ⊆ 𝑃(𝑤 |𝑤 ) (2.23) Ứng dụng giả thuyết của Markov rằng dự đoán kế tiếp chỉ phụ thuộc vào lịch sử gần đây thay vì toàn bộ lịch sử, chúng ta có thể biểu diễn công thức trên bằng công thức sau:
Với 𝐶(𝑤 , … , 𝑤 ) là số lần xuất hiện của dãy các từ 𝑤 , … , 𝑤 trong tập
dữ liệu huấn luyện và 𝐶(𝑤 , … , 𝑤 ) là số lần xuất hiện của dãy các từ
𝑤 , … , 𝑤 trong tập dữ liệu huấn luyện
2.4.4 Phương pháp sử dụng mô hình Markov ẩn
Mô hình tách từ dựa theo thống kê (ở đây là mô hình n-grams) cơ bản nhất được
đề xuất bởi Luo vào năm 1996 cho một câu tiếng Trung Việc tách từ trong một câu tiếng Trung tương đồng với tách từ trong câu tiếng Việt, nghĩa là có một số từ nên đứng riêng, một số từ khác nên được ghép chung để thành từ ghép [20]
Gọi S là một câu tiếng Việt bao gồm n từ 𝑤 𝑤 … 𝑤 với 𝑤 là một từ trong câu Bài toán đặt ra là tách câu này thành các cụm từ thích hợp:
S = 𝑤 𝑤 … 𝑤 = (𝑤 … 𝑤 ) … (𝑤 … 𝑤 ) = C1C2…Cm (2.26) Với xi là vị trí của từ cuối cùng của cụm từ (từ ghép) thứ i: Ci = 𝑤 … 𝑤 , với i