CHƯƠNG 1: MỘT SỐ MÔ HÌNH NLP VÀ CHATBOT Sử dụng AutoTokenizer và AutoModel từ thư viện Hugging Face Transformers để tải tokenizer và mô hình PhoBERT. Câu văn được tokenize và chuyển đổi thành input IDs sử dụng tokenizer của PhoBERT. Input IDs được đưa qua mô hình PhoBERT để nhận được các biểu diễn ngôn ngữ ẩn tại lớp cuối cùng. Đầu ra của mô hình là một tensor chứa các biểu diễn ngôn ngữ cho mỗi từ trong câu.
Lấy đặc trưng của lớp cuối cùng của mô hình và trích xuất biểu diễn của token [CLS] từ đặc trưng của toàn bộ câu. Cuối cùng, in ra embedding của câu văn, đây là biểu diễn của toàn bộ câu dưới dạng vector. Kết quả in “cls_embedding” sẽ có kích thước là (1, 768), với 1 là số lượng câu và 768 là số chiều của biểu diễn. Mỗi phần tử trong vector này đại diện cho một đặc trưng của toàn bộ câu theo quan điểm của mô hình.
Kết quả biểu diễn nhúng câu của đoạn mã trên như sau: PhoBERT sử dụng kiến trúc Transformer cho khả năng biểu diễn sâu của ngôn ngữ. Điều này giúp nó hiểu được mối quan hệ giữa các từ trong câu và học được các đặc trưng phức tạp. Vì vậy, PhoBERT được sử dụng trong nhiều ứng dụng trong lĩnh vực xử lý ngôn ngữ tự nhiên tiếng Việt như phân loại văn bản, phân tích ý kiến, dịch máy, truy xuất thông tin, xây dựng chatbot… PhoBERT cũng cho phép người dùng dễ dàng tinh chỉnh để phù hợp với các tác vụ cụ thể. Để tinh chỉnh PhoBERT, có thể thực hiện xây dựng mô hình mới dựa trên kiến SVTH: Nguyễn Thị Diễm – D19CNPM7 10 Đồ án tốt nghiệp đại học CHƯƠNG 1: MỘT SỐ MÔ HÌNH NLP VÀ CHATBOT trúc của nó.
Thông thường, sẽ thêm một hoặc vài lớp trên cùng của PhoBERT để phù hợp với nhiệm vụ cụ thể.3 Các phương pháp học sâu Hiện nay, học sâu đã trở thành một phương pháp mạnh mẽ trong NLP, đặc biệt là khi kết hợp các kiến trúc mạng thần kinh sâu với các mô hình biểu diễn ngôn ngữ tiên tiến như PhoBERT. Quan hệ tương quan giữa PhoBERT và các mô hình mạng thần kinh sâu không chỉ là sự kết hợp cấu trúc mà còn là quá trình tối ưu hóa và tinh chỉnh tham số. Điều này giúp cải thiện khả năng hiểu ngôn ngữ và tạo ra các biểu diễn ngôn ngữ có chất lượng cao. Trong đồ án này, sẽ tìm hiểu lý thuyết cơ bản của các phương pháp học sâu để học cách tích hợp và tối ưu hóa chúng với PhoBERT.
Mạng bộ nhớ dài – ngắn (LSTM) Bộ nhớ dài-ngắn hạn hay Bộ nhớ ngắn-dài hạn (tiếng Anh: Long short-term memory, viết tắt LSTM [11]) là một mạng thần kinh tái phát (RNN - Recurrent Neural Network) được sử dụng trong lĩnh vực học sâu. LSTM là một dạng đặc biệt của RNN, nó được thiết kế để giải quyết các bài toán về phụ thuộc xa trong mạng RNN (các mạng RNN cơ bản không thể thực hiện các khả năng ghi nhớ ở khoảng cách xa, do đó những phần tử đầu tiên của chuỗi không ảnh hưởng nhiều đến kết quả tính toán) [12]. Một đơn vị LSTM thông thường bao gồm: một tế bào, một cổng vào, một cổng ra và một cổng quên. Tế bào sẽ ghi nhớ các giá trị trong khoảng thời gian bất kỳ và ba cổng sẽ điều chỉnh luồng thông tin ra vào của tế bào.
Cấu trúc LSTM giúp nó giữ lại thông tin quan trọng, loại bỏ thông tin không quan trọng, và xử lý hiệu quả các chuỗi dài trong quá trình huấn luyện mô hình [13]. Bi-LSTM (Bidirectional Long Short-Term Memory) là một loại kiến trúc mạng nơ-ron hồi quy (RNN) được thiết kế để xử lý chuỗi dữ liệu trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) và nhiều ứng dụng khác liên quan đến chuỗi thời gian. "Bi-" trong Bi- LSTM đề cập đến sự kết hợp của hai hướng: từ trái sang phải (forward) và từ phải sang trái (backward). Một Bi-LSTM có hai phần, mỗi phần là một LSTM chạy theo một hướng khác nhau.
Một phần xử lý dữ liệu từ trái sang phải và phần còn lại xử lý từ phải sang trái. Cả hai kết quả đầu ra được kết hợp để tạo ra biểu diễn cuối cùng. SVTH: Nguyễn Thị Diễm – D19CNPM7 11 Đồ án tốt nghiệp đại học CHƯƠNG 1: MỘT SỐ MÔ HÌNH NLP VÀ CHATBOT Bi-LSTM thường được sử dụng trong các ứng dụng NLP như phân loại cảm xúc, dịch máy, và tác vụ dự đoán chuỗi. Sự kết hợp của hai hướng trong Bi-LSTM giúp mô hình "nhìn" được cả hai phía của mỗi từ trong chuỗi, tạo ra một biểu diễn mạnh mẽ cho các tác vụ liên quan đến chuỗi dữ liệu.
Mạng tích chập (Convolutional neural network) Convolutional Neural Network (CNN) [14] - mạng nơ ron tích chập, là một mô hình học sâu tiên tiến và phổ biến, giúp xây dựng những hệ thống có độ chính xác cao. Mạng CNN [15] là một tập hợp các lớp Convolution (nếp cuộn ) chồng lên nhau và sử dụng các hàm kích hoạt phi tuyến tính như ReLU và tanh để kích hoạt các trọng số trong các nút. Mỗi lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo. Các lớp được liên kết được với nhau thông qua cơ chế tích chập.
Lớp tiếp theo là kết quả từ lớp trước đó, nhờ vậy mà ta có được các kết nối cục bộ. Tính kết hợp cục bộ cho các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng thông qua tích chập từ các bộ lọc. 3: Ví dụ kiến trúc mô hình CNN [14] Với xử lý văn bản, tầng đầu tiên gồm các ma trận có kích thước n x k, biểu diễn câu có n từ, mỗi từ có k chiều. Lớp này mã hóa các từ trong câu thành vector từ.
Tầng Convolution sử dụng phép tích chập để xử lý dữ liệu bằng cách trượt cửa sổ trượt (slide windows) có kích thước cố định (còn gọi là kernel) trên ma trận dữ liệu đầu vào để có thể thu được kết quả đã được tinh chỉnh. Tầng Max-over-time pooling (Tổng hợp tối đa theo thời gian) sẽ tổng hợp các vector kết quả từ tầng Convolution và giữ lại những vector quan trọng nhất. Tầng full-connected là một neural network sử dụng những vector còn SVTH: Nguyễn Thị Diễm – D19CNPM7 12 Đồ án tốt nghiệp đại học CHƯƠNG 1: MỘT SỐ MÔ HÌNH NLP VÀ CHATBOT lại ở các lớp trên làm đầu vào để tạo ra kết quả cuối cùng thông qua quá trình huấn luyện với dropout và kết quả softmax [16]. FastText FastText [17] là thư viện để học cách nhúng từ và phân loại văn bản do phòng thí nghiệm Nghiên cứu AI (FAIR) của Facebook tạo ra.
Mô hình này cho phép người ta tạo ra một thuật toán học không giám sát hoặc học có giám sát để thu được các biểu diễn vectơ cho các từ. Một điểm mạnh của FastText là khả năng biểu diễn cả sub-words, tức là các phần nhỏ hơn của từ. Điều này giúp FastText thực hiện tốt với các từ mới, từ nằm ngoài từ điển, và các từ có các biến thể chính tả. FastText sử dụng hai kiến trúc chính là CBOW và Skip-gram.
CBOW cố gắng dự đoán từ giữa một ngữ cảnh xung quanh, trong khi Skip- gram cố gắng dự đoán các từ xung quanh từ đích. Cả hai kiến trúc này đều được FastText sử dụng để học biểu diễn từ. Dựa trên kiến trúc Bi-LSTM và nhúng từ FastText cho bài toán phân tích bình luận là một ứng dụng trong lĩnh vực xử lý ngôn ngữ tự nhiên và học máy: Đầu vào là các từ trong câu sẽ được đưa qua FastText để biểu diễn thành vectơ. Sau đó, các vectơ đi qua một tầng Bi-LSTM, giúp mô hình học được các đặc trưng phức tạp từ chuỗi.
Kết quả từ Bi-LSTM có thể được kết hợp để dự đoán cảm xúc toàn bộ câu, thường thông qua một tầng kết hợp hoặc một lớp đầu ra softmax. Kỹ thuật Drop-out Kỹ thuật Dropout là một phương pháp được sử dụng để ngăn chặn overfitting (học tủ) trong quá trình huấn luyện mô hình học máy, đặc biệt là trong các mô hình nơ-ron như mạng nơ-ron sâu. Trong quá trình huấn luyện, các nơ-ron được chọn ngẫu nhiên để bị tắt dựa trên một xác suất dropout đã được chỉ định. SVTH: Nguyễn Thị Diễm – D19CNPM7 13 Đồ án tốt nghiệp đại học CHƯƠNG 1: MỘT SỐ MÔ HÌNH NLP VÀ CHATBOT Hình 1.
4: Mô tả hoạt động của Dropout [18] Dropout thường giúp cải thiện khả năng tổng quát hóa của mô hình, đặc biệt là khi có ít dữ liệu huấn luyện. Tuy nhiên, việc sử dụng dropout quá mức có thể làm giảm hiệu suất của mô hình hoặc gây ra underfitting, do đó cần tinh chỉnh tham số dropout sao cho phù hợp với bài toán cụ thể. Hàm kích hoạt (Activation functions) ReLU (Rectified Linear Unit - Đơn vị tuyến tính được chỉnh lưu) và Softmax là hai hàm kích hoạt thường được sử dụng trong mạng nơ-ron, đặc biệt là trong các tầng của các mô hình học sâu. ReLU là một hàm kích hoạt không tuyến tính, được đặc trưng bởi công thức: f(x)=max(0,x).
Khi đầu vào x là dương, ReLU trả về giá trị x. Khi đầu vào x là âm, ReLU trả về 0. ReLU thường được sử dụng trong các tầng ẩn để giúp mô hình học các đặc trưng phức tạp. 5: Mô tả ReLU Softmax là một hàm kích hoạt thường được sử dụng trong tầng đầu ra của mạng nơ- ron cho bài toán phân loại.
Công thức hàm Softmax như sau: SVTH: Nguyễn Thị Diễm – D19CNPM7 14 Đồ án tốt nghiệp đại học CHƯƠNG 1: MỘT SỐ MÔ HÌNH NLP VÀ CHATBOT z là vector đầu vào có K chiều (hoặc số lớp trong bài toán phân loại). 6: Mô tả của Softmax Tổng của các xác suất đầu ra của Softmax luôn bằng 1, điều này làm cho nó lý tưởng để biểu diễn xác suất. Softmax thường được sử dụng trong tầng đầu ra để chuyển đầu ra thành xác suất và thực hiện phân loại.4 Nền tảng xây dựng chatbot - Rasa 1. Tổng quan về Rasa Rasa [19] là một nền tảng mã nguồn mở được sử dụng để phát triển các ứng dụng trò chuyện và chatbot.
Nó cung cấp các công cụ và thư viện cho việc xây dựng các hệ thống trò chuyện thông minh, cho phép chatbot hiểu và tương tác tự nhiên với người dùng. Rasa cung cấp hai thành phần chính là Rasa NLU và Rasa Core để xây dựng một hệ thống chatbot hoàn chỉnh. Rasa NLU (Natural Language Understanding): Rasa NLU giúp chatbot hiểu và phân tích ngôn ngữ tự nhiên, dịch các câu truy vấn của người dùng thành các ý nghĩa và thông tin cụ thể.