Chương 1. Trong chương đầu tiên, nhóm trình bày khái quát về đề tài, mục tiêu, phạm vi và cấu trúc đề tài luận văn. Kiến thức nền tảng. Chương này nhóm trình bày những kiến thức nền tảng để phát triển hệ thống chatbot và các kiến thức liên quan trong xử lý ngôn ngữ tự nhiên.
Các công trình liên quan. Chương này nhóm sẽ trình bày về những công trình và hệ thống liên quan đến đề tài của nhóm. Tập dữ liệu. Chương này bao gồm các tập dữ liệu đã tham khảo và được dùng để huấn luyện các mô hình trong luận văn.
Đặc tả và hiện thực hệ thống. Chương này nhóm trình bày về phương pháp thực hiện đề tài và mô hình kiến trúc hệ thống đề xuất. Công nghệ sử dụng. Chương này nhóm giới thiệu các công nghệ dự định để sử dụng phát triển đề tài này.
Thí nghiệm và đánh giá. Chương này nhóm trình bày các thí nghiệm và đánh giá hệ thống chatbot sau khi đã triển khai. Chương cuối cùng, nhóm tổng kết lại các vấn đề trong quá trình hoàn thiện đề tài luận văn. Đồng thời, nhóm nêu ra các hạn chế cũng như mở ra các hướng phát triển của đề tài trong tương lai.
2 KIẾN THỨC NỀN TẢNG Trong chương này, tôi sẽ trình bày những kiến thức nền tảng được sử dụng trong quá trình thực hiện luận văn bao gồm: giới thiệu về hệ thống chatbot, các khái niệm thường được sử dụng trong mạng học sâu, xử lí ngôn ngữ tự nhiên và học tăng cường.1 Tổng quan về chatbot .3 Mạng nơ-ron nhân tạo - Artificial Neural Network (ANN) .4 Recurrent Neural Networks .5 Attention và Transformer .6 Mô hình Generative Pre-trained Transformer .7 Mô hình Bidirectional Encoders Representation from Transformer (BERT). 24 CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 7 2.1 Tổng quan về chatbot 2.1 Giới thiệu Chatbot là một phần mềm được thiết kế để mô phỏng lại đoạn hội thoại của người dùng, đặc biệt là những cuộc trò chuyện qua Internet. Phần mềm này đóng vai trò như là một phương thức để con người có thể giao tiếp được với máy tính. Nó cung cấp cho máy tính khả năng hiểu được câu hỏi từ ngôn ngữ tự nhiên của con người và trả lời người dùng.
Hệ thống chatbot đầu tiên được thiết kế tại M.T vào năm 1966 là ELIZA [1]. Tiếp sau đó đã có nhiều chatbot được phát triển, ví dụ như tương tác với người dùng bằng những tính cách khác nhau [2], kết hợp với các công cụ tìm kiếm [3]. Qua từng năm, chatbot ngày càng trở nên phức tạp, có thể xử lý được những đoạn hội thoại một cách tự nhiên và giúp cho người dùng thoải mái khi được trợ giúp nhanh nhất có thể. Mặc dù không thể xử lý được tất cả những yêu cầu từ người dùng, nhưng chatbot có thể xử lý được hầu hết các yêu cầu thường gặp giúp cho thời gian xử lý được cải thiện đáng kể.2 Phân loại chatbot Hiện tại, chatbot được chia thành nhiều loại dựa trên nhiều tiêu chí khác nhau như: dựa trên cách giao tiếp (giọng nói hoặc văn bản), dựa trên kiến thức (đóng hoặc mở), dựa trên phương pháp học (dựa theo luật, dựa theo trích xuất thông tin, hoặc dựa vào học máy), và dựa trên mục tiêu (có hoặc không có mục tiêu cụ thể) [4].1: Các hướng phân loại chatbot CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 8 Tuy nhiên trong thực tế, chatbot thường được chia thành hai loại chính dựa vào mục tiêu: 1.
Chatbot có mục tiêu 2. Chatbot không có mục tiêu Chatbot hướng mục tiêu được thiết kế để có thể hoàn thành một nhiệm vụ cụ thể và hoàn thành cuộc hội thoại nhanh nhất, và thường đi kèm là có kiến thức đóng. Chatbot không hướng mục tiêu có thể mô phỏng cuộc trò chuyện của con người, trò chuyện với người dùng với mục đích giải trí và có kiến thức mở.3 Các kỹ thuật thiết kế chatbot Có nhiều hướng khác nhau được dùng để thiết kế một chatbot hướng mục tiêu hoặc không hướng mục tiêu. Từ những ngày đầu phát triển chatbot đến nay, các hướng thiết kế chatbot có thể được chia thành ba nhóm chính: 1.
Thiết kế chatbot dựa vào luật 2. Thiết kế chatbot dựa vào trích xuất 3. Thiết kế chatbot dựa vào phương pháp sinh Với mỗi hướng tiếp cận trên sẽ sinh ra nhiều kỹ thuật khác nhau, cụ thể được liệt kê và mô tả chi tiết dưới đây: 1. Parsing: Phân tích câu nhập thành các cấu trúc phức tạp hơn về ngữ pháp của ngôn ngữ.
Sau đó so sánh với các câu được định nghĩa sẵn để trả lời. Pattern Matching: Câu nhập được phân loại theo những cặp mẫu câu hỏi và câu trả lời được định nghĩa sẵn để trả lời người dùng. AIML dùng để thiết kế luồng hội thoại của chatbot và dùng các phương pháp so trùng để phân loại và trả lời người dùng. Markov Chain Model: là một mô hình xác suất để dựa đoán câu trả lời cho chuỗi nhập vào của người dùng.
Artificial Neural Networks Models: Sử dụng những bước tiến mới nhất trong học máy để phát triển hệ thống chatbot. Phương pháp này có thể sử dụng cả mô hình trích xuất thông tin và mô hình sinh để phát triển. CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 9 2.1 Giới thiệu Văn bản được cấu thành bằng các từ, chữ số và các dấu câu, các thành phần này gọi chung là từ trong xử lý ngôn ngữ tự nhiên. Các từ được sắp xếp theo thứ tự để tạo nên một văn bản có nghĩa.
Word Embedding là một phương pháp biến đổi cách biểu diễn của những từ cấu tạo nên văn bản giúp cho máy tính có thể hiểu được văn bản đó. Một cách đơn giản nhất để biểu diễn văn bản là dạng One-hot vector. Để biểu diễn, một từ điển gồm các từ xuất hiện trong văn bản và mỗi từ được gắn một số không trùng nhau. One-hot vector biểu diễn một từ trong văn bản thành một vector có số chiều bằng với độ lớn của từ điển, tại chiều ứng với số biểu điễn cho từ đó là 1 và các chiều còn lại là 0.
Các biểu diễn này ít được dùng do gây ra lãng phí bộ nhớ, việc tính toán chậm do đây là các vector thưa. Ngoài ra việc biểu diễn dưới dạng One-hot vector cũng không thể hiện được quan hệ giữa các từ bất kì. Một phương pháp tốt hơn để biểu diễn các từ trong văn bản là dùng một vector gồm các số thực với số chiều ít hơn nhiều lần so với One-hot vector. Cách biểu diễn này dựa trên giả thuyết phân bố [5] của Zellig S.
Harris: các từ được sử dụng gần nhau trong văn bản có ý nghĩa gần giống nhau. Dựa trên đó, phương pháp Word2Vec [6] được đề xuất và sử dụng phổ biến. Phương pháp này biểu diễn từ bằng vector trong không gian liên tục (từ 50 đến 300 chiều) từ một từ điển rất lớn (trên 10000 từ). Hai mô hình được đề xuất từ phương pháp Word2Vec là CBOW (Continuous Bag-of-Words) và Skip-gram (Continuous Skip-gram Model), cả hai đều dựa trên kiến trúc mạng học sâu, sẽ được trình bày sau, để biến đổi cách biểu diễn One-hot vector về dạng vector số thực ít chiều hơn.2 Continuous Bag-of-Words Model Mô hình CBOW học phương pháp biểu diễn từ bằng cách dự đoán một từ dựa vào ngữ cảnh được cung cấp.
Ngữ cảnh được xác định bằng các từ xung quanh từ cần biểu diễn. Một văn bản gồm N từ: w0 , w1 ,. , wN−2 , wN−1 với wi là từ thứ i trong văn bản. Để dự đoán wi mô hình CBOW dùng các từ wi−k , wi−k+1 ,.
, wi+k−1 , wi+k để làm ngữ cảnh, với 2k là kích thước cửa sổ của mô hình. Mô hình CBOW gồm hai ma trận W ∈ Rd×|V | , thường gọi là Embedding Matrix, dùng để mã hoá từ và ma trận W 0 ∈ R|V |×d , thường gọi là Inversed Embedding Matrix, dùng để giải mã từ về dạng One-hot vector, với |V | là số lượng từ vựng trong từ điển, d là số chiều sau khi thu giảm. Các từ ban đầu được biểu diễn bằng One-hot vector x ∈ N|V | , đầu vào của mô hình là các One-hot vector của các từ ngữ cảnh, đầu ra sẽ là One-hot vector của từ cần biểu diễn. Mô hình được thực hiện qua các bước sau: • Tính từng vector vi = W > xi ứng với từng từ trong ngữ cảnh.
• Tính z = W 0 v và ŷ = so f tmax(z), ŷ là phân phối xác suất của từ cần biển diễn. • Từ ŷ và One-hot vector y, ta tính được sai khác và dùng Gradient Descent để huấn luyện mô hình. CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 10 2.3 Continuous Skip-gram Model Mô hình Skip-gram gần giống với CBOW, nhưng dùng từ cần biểu diễn để dự đoán các từ ngữ cảnh xung quanh từ này. Để dự đoán các từ wi−k , wi−k+1 ,.
, wi+k−1 , wi+k mô hình Skip-gram dùng từ wi để làm ngữ cảnh, với 2k là kích thước cửa sổ của mô hình. Sai khác của mô hình so với thực tế được tính bằng trung bình của sai khác ứng với mỗi từ đoán được.2: Mô hình CBOW và Skip-gram (Nguồn: [6]).3 Mạng nơ-ron nhân tạo - Artificial Neural Network (ANN) 2.1 Giới thiệu Trong tự nhiên, não bộ của người được cấu tạo từ những tế bào được gọi là nơ-ron thần kinh. Các nơ-ron thần kinh được liên kết với nhau để tạo ra mạng nơ-ron thần kinh nhằm chuyển tải thông tin, giúp con người và động vật có khả năng nhận biết và phản ứng với môi trường xung quanh. Mạng nơ-ron thần kinh là một sức mạnh to lớn của não bộ để truyền tải và xử lý thông tin.
Chính vì thế, mạng nơ-ron nhân tạo [7] được đề xuất để giúp máy tính có được sức mạnh trên. Một ANN cũng bao gồm nhiều đơn vị xử lý thông tin là nơ-ron tương tự như nơ-ron thần kinh và được gọi là nơ-ron. Nơ-ron này cũng bao gồm nhiều đầu vào (input) và một đầu ra (output) đều là các đại lượng vô hướng (Hình 2. Mỗi giá trị đầu vào được nhân với một trọng số và tính tổng tất cả giá trị trên.
Giá trị tổng được đưa qua hàm phi tuyến dùng để kích hoạt đầu ra. Các giá trị đầu ra của nơ-ron được đưa tiếp tục cho nơ-ron tiếp tieo sẽ tạo thành một mạng nơ-ron nhân tạo. Một MLP ngoài tầng đầu vào (Input Layer) và tầng đầu ra (Output Layer) thì còn một hoặc nhiều tầng ẩn (Hidden Layer) (Hình 2. CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 11 Hình 2.3: Mô hình nơ-ron nhân tạo (Nguồn: [7]).4: MLP với hai hidden layer (Nguồn: [8]).2 Các công thức toán học Một nơ-ron ở tầng sau sẽ nhận kết quả của toàn bộ nơ-ron ở tầng trước đó, cách liên kết này gọi là Fully Connected.