đặt vấn đề, các nghiên cứu đã được công bố, mục tiêu, nhiệm vụ, giới hạn và phương pháp nghiên cứu. Chương 2: Cơ sở lý thuyết. Lý thuyết về mạng nơ ron và các thuật toán tối ưu đang sử dụng hiện nay. Chương 3: Tiền xử lý ngôn ngữ tự nhiên.
Mô tả các bước tiền xử lý dành cho ngôn ngữ tự nhiên. Chương 4: Mô hình đối thoại với mạng nơ ron. Mô tả mô hình xử lý ngôn ngữ Sequence to Sequence. Đồng thời mô tả phương pháp huấn luyện mạng.
Chương 5: Kết quả và thảo luận. Bao gồm kết quả hai quá trình huấn luyện và xử lý. So sánh hiệu suất mô hình mạng trong luận văn. Chương 6: Kết luận và hướng phát triển 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.
Khái niệm về trợ lý ảo Trợ lý ảo là một phần mềm của hệ thống, có thể hỗ trợ việc hệ thống tương tác với người dùng bằng ngôn ngữ tự nhiên [4]. Cũng có thể xem trợ lý ảo như là một robot có khả năng trò chuyện với con người. Có những trợ lý ảo có thể học hỏi theo thời gian để có thể trả lời giống con người nhất [5]. Việc huấn luyện để trợ lý ảo có thể đưa ra câu trả lời đúng với câu hỏi của người hỏi rất quan trọng.
Người dùng Câu hỏi Câu trả lời Chatbot Hình 2.1: Mô hình chatbot 2. Các loại trợ lý ảo Có 2 loại trợ lý ảo là: − Trợ lý ảo theo kịch bản: đây là trợ lý ảo trả lời các câu hỏi hoặc thực hiện các công việc theo các quy tắc được cài đặt sẵn. Các quy tắc này được xây dựng dựa trên các kịch bản đối thoại xảy ra thường xuyên nhất. Tại mỗi bước người sử dụng cần phải chọn các tùy chọn được trợ lý ảo đưa ra theo một kịch bản đã được cài đặt, để xác định bước tiếp theo trong cuộc trò chuyện.
− Trợ lý ảo thông minh: đây là trợ lý ảo được xây dựng bằng trí thông minh nhân tạo. Trí thông minh nhân tạo (AI) cho phép trợ lý ảo trở nên linh hoạt hơn với nhiều kiểu 4 dữ liệu được thu nhận từ người dùng, như tin nhắn văn bản, hình ảnh hay giọng nói. Trợ lý ảo này sẽ không thực hiện theo các bước đã cài đặt trước, mà sẽ tự lựa các hành động tiếp theo phù hợp với từng người sử dụng. Ứng dụng của trợ lý ảo Hiện nay có hơn 300.000 trợ lý ảo đang hoạt động trên nền tảng mạng xã hội Facebook, nền tảng có nhiều người sử dụng nhất [6].
Các công việc mà trợ lý ảo có thể hỗ trợ là: − Trợ lý cá nhân. − Giới thiệu sản phẩm. − Chăm sóc khách hàng. − Đặt chỗ, mua hàng.
− Hỗ trợ thanh toán trực tuyến. − Cung cấp tin tức. Những ưu điểm của trợ lý ảo Trợ lý ảo có nhiều ưu điểm trong cuộc sống con người. Một vài ưu điểm có thể kể đến là: − Trợ lý ảo có khả năng làm việc trong thời gian dài.
− Trợ lý ảo thường có độ chính xác cao. − Có khả năng đưa các tương tác trong thời gian ngắn. − Bất kỳ ngôn ngữ lập trình nào cũng có thể được sử dụng để phát triển trợ lý ảo. − Trợ lý ảo có thể thay thế một số lượng lớn nhân lực.
Các công nghệ được sử dụng cho trợ lý ảo Các công nghệ thường được sử dụng để xây dựng trợ lý ảo là: nhận diện tiếng nói (speech recognition), xử lý ngôn ngữ tự nhiên (NLP – Natural Language Processing) và chuyển đổi văn bản thành giọng nói. − Nhận diện giọng nói: là một quá trình nhận dạng mẫu, với dữ liệu ngõ vào là tín hiệu giọng nói. Tín hiệu ngõ vào sẽ được lọc nhiễu và so sánh với các mẫu đã được lưu 5 trong CSDL để đưa ra kiểu dữ liệu mà phần mềm có thể xử lý được. Giúp cho việc xử lý tín hiệu giọng nói được dễ dàng hơn.
Khó khăn cơ bản của việc nhận diện giọng nói chính là tín hiệu giọng nói luôn biến thiên theo thời gian và luôn khác nhau giữa những người nói khác nhau, như về tốc độ nói, biên độ của tín hiệu, cũng như cách phát âm của từng người… Việc xác định sự biến thiên tín hiệu nào là có ý nghĩa và không có ý nghĩa cho việc nhận diện giọng nói là một việc rất quan trọng. Việc này khó khăn đến mức các thuật toán thường được sử dụng hiện nay vẫn còn có sự sai sót [7][8]. Việc nhận diện giọng nói còn cần một CSDL rất lớn với các mẫu tiếng nói để có thể huấn luyện, với số lượng mẫu đủ lớn sẽ có thể huấn luyện được thuật toán với độ chính xác cao. Các thuật toán thường được sử dụng cho nhận diện giọng nói là: HMM, CNN, LSTM… − Xử lý ngôn ngữ tự nhiên: là công việc của nhiều hệ thống phối hợp với nhau để xử lý các tương tác giữa người dùng và hệ thống bằng ngôn ngữ của con người.
Giúp cho các hệ thống hiểu được ngôn ngữ của con người [9]. Qua đó, người dùng có thể trò chuyện hoặc hướng dẫn các hệ thống xử lý và giúp đỡ trong các công việc khác nhau một cách dễ dàng. − Chuyển đổi văn bản thành giọng nói (TTS – Text to Speech) là một công nghệ mới có nhiều ứng dụng và vẫn luôn được phát triển để trở nên tốt hơn. Thay vì phải thu âm giọng đọc trước, nhờ vào các công cụ chuyển văn bản thành giọng nói chỉ cần nhập văn bản cần chuyển đổi vào thì hệ thống sẽ tự động đọc lại văn bản.
Công cụ này là sự hỗ trợ lớn cho những người cao tuổi và nhưng người khiếm thị, với khoảng 2,2 tỷ người khiếm thị trên toàn thế giới [10]. Công cụ này còn hỗ trợ trong các trường hợp cần sự tập trung cao mà không thể đọc được văn bản như việc đọc dẫn đường hoặc tin nhắn trong lúc điều khiển xe. Việc chuyển đổi văn bản thành giọng nói cũng giúp đem đến một trải nghiệm mới cho việc tương tác giữa con người và các hệ thống khác nhau. Kiến trúc mạng nơ ron nhân tạo Mạng nơ ron nhân tạo (Artificial Neural Network – ANN) là một mô hình được mô phỏng dựa trên hoạt động của hệ thần kinh của sinh vật, bao gồm số lượng lớn các nơ ron được gắn kết với nhau để xử lý thông tin [11].
ANN hoạt động giống như bộ não con người, 6 được học thông qua các kinh nghiệm (quá trình huấn luyện), có khả năng lưu giữ các tri thức và sử dụng các tri thức đó trong việc dự đoán các dữ liệu chưa biết.2: Kiến trúc mạng nơ ron nhân tạo Kiến trúc của một mạng nơ ron nhân tạo cơ bản bao gồm ba phần chính đó là: Input Layer, Hidden Layer, Output Layer. Mạng RNN Với các mô hình mạng nơ ron truyền thống thì chỉ có khả năng xử lý dữ liệu hiện tại, mà không có khả năng ghi nhớ những dữ liệu đã xử lý trước đó. Đây có thể được xem là khuyết điểm lớn nhất của mạng nơ ron truyền thống. Và mạng RNN được tìm ra để khắc phục vấn đề này.
Mạng RNN có chứa các vòng lặp bên trong giúp cho dữ liệu có thể được lưu lại [12].3: Mô hình mạng RNN Theo hình 2.3, mạng RNN có thể được xem như là nhiều bản sao của cùng một mạng mà được sắp xếp thành một chuỗi liên kết với nhau. Trong đó, đầu ra của mạng này là đầu vào của mạng tiếp theo. Chính sự liên quan giữa các mạng với nhau giúp cho thông tin có thể lưu giữ lại được, và kết quả của trạng thái hiện tại có phụ thuộc với các trạng thái trước đó. Mặc dù có thể lưu giữ thông tin, nhưng mạng RNN chỉ lưu giữ một số lượng dữ liệu nhất định.
Mà trong việc xử lý ngôn ngữ tự nhiên, cần lưu trữ nhiều thông tin để có thể xử lý được nhiều đoạn văn bản dài. Đây có thể xem là khuyết điểm lớn nhất của mạng RNN. Để khắc phục vấn đề này, mạng LSTM đã được phát triển và đã được ứng dụng vào nhiều hệ thống khác nhau. Mạng Long Short-Term Memory LSTM được tìm ra bởi Hochreiter và Schmidhuber vào năm 1997 [13].
Đây là một trong các mạng nơ ron đang được ứng dụng phổ biến hiện nay. Mạng LSTM được phát triển từ mạng nơ ron hồi quy RNN. Với các cải tiến, mạng LSTM khắc phục được nhiều vấn đề của mạng RNN. Một trong số các vấn đề đó là mạng LSTM có khả năng học được các mối quan hệ xa giữa các từ trong câu mà mạng RNN không thể thực hiện được [14].
Việc này giúp cho mạng LSTM có khả năng lưu trữ nhiều thông tin hơn, giúp cho việc xử lý nhiều đoạn văn bản dài có độ chính xác cao hơn. Mạng nơ ron LSTM có một vài điểm 8 khác biệt so với mạng RNN truyền thống. Và mạng LSTM hoạt động hiệu quả trên nhiều bài toán khác nhau nên nó đã dần trở nên phổ biến [15].4: Mô hình cơ bản mạng LSTM 2. Ý tưởng mạng LSTM Ý tưởng chính của mạng LSTM là trạng thái của tế bào (cell state), được thể hiện bằng đường Ct phía trên của mô hình mạng LSTM.
Trạng thái tế bào chạy xuyên suốt qua các nút của mạng, nhờ đó mà thông tin được truyền đi xuyên suốt mạng.5: Đường trạng thái tế bào Mạng LSTM còn có các cổng (gate) để loại bỏ hoặc thêm vào thông tin cho trạng thái của tế bào. Nhờ vào các cổng mà thông tin luôn được chọn lọc cẩn thận. Các cổng được tạo nên bởi một khối sigmoid và một khối nhân.6: Mô hình cổng trong mạng LSTM 2. Chi tiết mô hình mạng LSTM Bước đầu tiên trong mô hình mạng LSTM là tính toán để quyết định sẽ giữ lại hoặc loại bỏ thông tin nào từ trạng thái của tế bào.
Quyết định này được đưa ra nhờ vào khối sigmoid – gọi là lớp cổng quên (forget gate layer). Đầu vào của khối sigmoid này sẽ là tín hiệu xt và ht −1 , đầu ra của khối này sẽ là một giá trị nằm trong khoảng [0;1] cho mỗi thông 10 tin trạng thái tế bào Ct −1. Đầu ra 1 thể hiện sẽ giữ lại toàn bộ thông tin, còn đầu ra 0 thì thông tin sẽ bị xóa.7: Lớp cổng quên ft = (W f xt + U f ht −1 ) (2.1) Bước tiếp theo là quyết định thông tin nào sẽ được thêm vào trạng thái của tế bào. Bước này gồm hai phần.
Đầu tiên là sử dụng khối sigmoid được gọi là lớp ngõ vào (input gate layer) để quyết định giá trị nào sẽ được cập nhật.