Đã có rất nhiều hội nghị thường niên về vấn đề xử lý ngôn ngữ tự nhiên, xử lý dữ liệu lớn, tương tác người và máy, như TREC, CLEF,… tại Việt Nam có KSE, RIVF, ATC,… Trang 18 2 Với sự g
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
GIAO TIẾP BẰNG GIỌNG NÓI
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SĨ
VÕ THÀNH NHÂN
NGHIÊN CỨU THIẾT KẾ VÀ THI CÔNG TRỢ LÝ ẢO
GIAO TIẾP BẰNG GIỌNG NÓI
NGÀNH: KỸ THUẬT ĐIỆN TỬ
Hướng dẫn khoa học:
PGS TS TRƯƠNG NGỌC SƠN
Tp Hồ Chí Minh, tháng 9/2022
Trang 3i
LÝ LỊCH KHOA HỌC
(Dùng cho nghiên cứu sinh & học viên cao học)
I LÝ LỊCH SƠ LƯỢC:
Chức vụ, đơn vị công tác trước khi học tập, nghiên cứu:
Chỗ ở riêng hoặc địa chỉ liên lạc: 60 Tô Vĩnh Diện, KP5, phường Linh Chiểu, TP Thủ Đức, TP Hồ Chí Minh
II QUÁ TRÌNH ĐÀO TẠO:
1 Trung học chuyên nghiệp:
Nơi học (trường, thành phố):
Ngành học:
2 Đại học:
Nơi học (trường, thành phố): Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Ngành học: Công nghệ Kỹ thuật Điện tử - Truyền thông
Tên đồ án, luận án hoặc môn thi tốt nghiệp: Thiết kế và thi công mô hình xe điện di chuyển được điều khiển từ xa bằng cảm biến điện cơ đeo tay
Ngày & nơi bảo vệ đồ án, luận án hoặc thi tốt nghiệp: Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Người hướng dẫn: PGS TS Nguyễn Thanh Hải
3 Thạc sĩ:
Trang 4Người hướng dẫn: PGS TS Trương Ngọc Sơn
4 Tiến sĩ:
Tại (trường, viện, nước):
Tên luận án:
Người hướng dẫn:
Ngày & nơi bảo vệ:
5 Trình độ ngoại ngữ (biết ngoại ngữ gì, mức độ): Tiếng Anh trình độ B1
6 Học vị, học hàm, chức vụ kỹ thuật được chính thức cấp; số bằng, ngày & nơi cấp:
III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC:
IV CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ:
XÁC NHẬN CỦA CƠ QUAN hoặc ĐỊA PHƯƠNG Ngày tháng năm 20……
Trang 5iii
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tp Hồ Chí Minh, ngày … tháng … năm 20…
(Ký tên và ghi rõ họ tên)
Võ Thành Nhân
Trang 6iv
LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến Ban giám hiệu trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, quý thầy/cô trong Khoa Điện – Điện tử đã tận tình chỉ dạy, truyền đạt kiến thức và tạo điền kiện thuận lợi cho em trong suốt quá trình học tập vừa qua Đặc biệt em xin chân thành gửi đến Phó giáo sư Tiến sĩ Trương Ngọc Sơn lời cảm ơn sâu sắc Trong suốt thời gian thực hiện luận văn, Thầy đã tận tình quan tâm, hướng dẫn và động viên để em hoàn thành tốt luật văn này
Em xin gửi lời cảm ơn đến ba mẹ, gia đình và các bạn học viên cùng lớp Kỹ thuật điện
tử khóa 2019A đã nhiệt tình hỗ trợ, góp ý động viên để em hoàn thành luận văn
Tp Hồ Chí Minh, ngày … tháng … năm 20…
(Ký tên và ghi rõ họ tên)
Võ Thành Nhân
Trang 7v
TÓM TẮT
Trong bối cảnh mạng xã hội ngày càng phát triển và trở nên phổ biến đối với mọi người, con người kết nối với nhau qua các mạng xã hội, bất cứ thời gian nào và bất cứ nơi đâu Và nhu cầu có một hệ thống thông minh ngày càng lớn để có thể hỗ trợ con người bằng cách trò chuyện, có khả năng nhắc nhở, làm trợ lý công việc…
Mô hình đối thoại là một nhiệm vụ quan trọng trong bài toán xử lý ngôn ngữ tự nhiên nói riêng và máy học nói chung Các phương pháp tiếp cận trước đây thường bị giới hạn trong một lĩnh vực đề tài cụ thể, ví dụ như tư vấn ghi danh trực tuyến, trả lời các câu hỏi
về một sản phẩm hay đặt vé trực tuyến, tìm kiếm thông tin… và yêu cầu phải thiết kế các luật học bằng tay, mất rất nhiều thời gian công sức mà hiệu quả không quá cao, khó mở rộng mô hình cho các ứng dụng có liên quan
Đề tài này sẽ nghiên cứu xây dựng một mô hình trợ lý ảo, dựa trên mô hình Sequence
to Sequence, để có thể giao tiếp bằng cách tạo ra câu trả lời thích hợp dựa trên chuỗi đầu vào tương ứng Phương pháp này có ưu điểm là mô hình có thể huấn luyện end to end trên tập dữ liệu có sẵn, và có ít yêu cầu hơn các luật học được thiết kế bằng tay Kết quả chính luận văn đạt được là một mô hình trợ lý ảo ứng dụng mạng học sâu để sinh ra câu trả lời dựa trên câu hỏi đầu vào tương ứng Mô hình cho kết quả tốt khi có thể giải quyết được các vấn đề cơ bản về ngữ nghĩa, ngữ cảnh trong hệ thống đối thoại
Trang 8vi
ABSTRACT
In the context of social networking growing and becoming popular with everyone, people connect through social networks, anytime and anywhere And the need for an intelligent system is growing to be able to support people by chatting, having the ability to remind, do support work
The dialogue model is an important task in the problem of natural language processing
in particular and machine learning in general Previous approaches are often limited to a specific subject area, such as consulting online enrollment, answering questions about a product or booking online, searching for information and requires the design of the rules
by hand, takes a lot of time and effort but the efficiency is not too high, it is difficult to expand the model for relevant applications
This topic will study to build a virtual assistant model, based on Sequence to Sequence model, to be able to communicate by generating the appropriate answer based on the corresponding input sequence This method has the advantage that the model can end to end trainable on existing datasets, and has fewer requirements than hand-designed rules The main result of the thesis is a virtual assistant model applying a deep learning network
to generate answers based on the corresponding input questions The model gives good results when it can solve the basic problems of semantics and context in the dialogue system
Trang 9vii
MỤC LỤC
LÝ LỊCH KHOA HỌC i
LỜI CAM ĐOAN iii
LỜI CẢM ƠN iv
TÓM TẮT v
ABSTRACT vi
MỤC LỤC vii
DANH SÁCH HÌNH ẢNH xi
DANH SÁCH BẢNG xiii
DANH SÁCH TỪ VIẾT TẮT VÀ THUẬT NGỮ ANH – VIỆT xiv
CHƯƠNG 1: TỔNG QUAN 1
1.1 Đặt vấn đề 1
1.2 Các nghiên cứu đã được công bố 1
1.3 Mục tiêu 2
1.4 Nhiệm vụ và giới hạn 2
1.4.1 Nhiệm vụ 2
1.4.2 Giới hạn 2
1.5 Phương pháp nghiên cứu 3
1.6 Tóm tắt các chương 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 Trợ lý ảo 4
2.1.1 Khái niệm về trợ lý ảo 4
2.1.2 Các loại trợ lý ảo 4
Trang 10viii
2.1.3 Ứng dụng của trợ lý ảo 5
2.1.4 Những ưu điểm của trợ lý ảo 5
2.1.5 Các công nghệ được sử dụng cho trợ lý ảo 5
2.2 Kiến trúc mạng nơ ron nhân tạo 6
2.2.1 Mạng RNN 7
2.2.2 Mạng Long Short-Term Memory 8
2.2.3 Ý tưởng mạng LSTM 9
2.2.4 Chi tiết mô hình mạng LSTM 10
2.3 Các thuật toán thường được sử dụng cho việc nhận diện giọng nói 13
2.3.1 Hidden Markov Model 13
2.3.2 Convolutional Neural Network 14
2.3.3 Mạng Long Short-Term Memory 15
2.4 Một số thuật toán tối ưu dùng trong huấn luyện mạng nơ-ron 15
2.4.1 Giảm độ dốc 15
2.4.2 Giảm độ dốc ngẫu nhiên 16
2.4.3 Độ dốc thích ứng 16
CHƯƠNG 3: TIỀN XỬ LÝ NGÔN NGỮ TỰ NHIÊN 18
3.1 Làm sạch câu 18
3.2 Tách từ trong câu 19
3.3 Chuẩn hóa từ 19
3.4 Loại bỏ stop words 20
3.5 Vector hóa từ 21
3.5.1 Bag of Words (BoW) 21
3.5.2 TF-IDF (term frequency–inverse document frequency) 22
Trang 11ix
CHƯƠNG 4: Mô hình đối thoại với mạng nơ ron 24
4.1 Hệ thống đối thoại 24
4.2 Mô hình ngôn ngữ 24
4.3 Mô hình đối thoại seq2seq 24
4.4 Đề xuất mô hình Seq2Seq cho trợ lý ảo 25
4.5 Những thách thức chung khi xây dựng mô hình đối thoại 28
4.5.1 Phụ thuộc bối cảnh 28
4.5.2 Kết hợp tính cách 28
4.6 Thuật toán tối ưu dùng trong huấn luyện 29
4.6.1 Thuật toán lan truyền bình phương trung bình căn bậc hai 29
4.6.2 Ước lượng mô men thích ứng 29
4.7 Áp dụng mô hình Seq2Seq cho trợ lý ảo 30
4.7.1 Giới thiệu tập dữ liệu 30
4.7.2 Mô tả phương pháp huấn luyện 32
4.8 Mô tả quá trình xử lý của mô hình 36
4.9 Đánh giá độ chính xác kết quả trả lời 38
CHƯƠNG 5: KẾT QUẢ VÀ THẢO LUẬN 39
5.1 Kết quả huấn luyện 39
5.1.1 Áp dụng thuật toán RMSProp 39
5.1.2 Áp dụng thuật toán Adam 41
5.2 Kết quả trả lời 44
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47
6.1 Kết luận 47
6.2 Hướng phát triển 47
Trang 12x TÀI LIỆU THAM KHẢO 48PHỤ LỤC 53
Trang 13xi
DANH SÁCH HÌNH ẢNH
Hình 2.1: Mô hình chatbot 4
Hình 2.2: Kiến trúc mạng nơ ron nhân tạo 7
Hình 2.3: Mô hình mạng RNN 8
Hình 2.4: Mô hình cơ bản mạng LSTM 9
Hình 2.5: Đường trạng thái tế bào 10
Hình 2.6: Mô hình cổng trong mạng LSTM 10
Hình 2.7: Lớp cổng quên 11
Hình 2.8: Lớp tạo ra giá trị mới cho trạng thái tế bào 12
Hình 2.9: Cập nhật giá trị mới cho trạng thái tế bào 12
Hình 2.10: Cập nhật giá trị cho ngõ ra 13
Hình 2.11: Dạng sóng tín hiệu âm thanh 15
Hình 3.1: Các bước tiền xử lý trong xử lý ngôn ngữ tự nhiên 18
Hình 3.2: Sử dụng Regex để lọc các ký tự không mong muốn 19
Hình 4.1: Mô hình đối thoại seq2seq 25
Hình 4.2: Thông số mô hình với đầy đủ kết nối dành cho huấn luyện 26
Hình 4.3: Các kết nối của mô hình Seq2Seq 27
Hình 4.4: Thông số mô hình Encoder 27
Hình 4.5: Thông số mô hình Decoder 28
Hình 4.6: Lưu đồ quá trình huấn luyện mạng 35
Hình 4.7: Lưu đồ quá trình xử lý của mô hình Seq2Seq 37
Hình 5.1: Biểu đồ độ chính xác trong quá trình huấn luyện với thuật toán tối ưu RMSProp của mô hình được đề xuất 40
Hình 5.2: Biểu đồ giá trị mất mát trong quá trình huấn luyện với thuật toán tối ưu RMSProp của mô hình được đề xuất 40
Trang 14xii
Hình 5.3: Biểu đồ độ chính xác trong quá trình huấn luyện với thuật toán tối ưu
RMSProp của mô hình chỉnh sửa 41
Hình 5.4: Biểu đồ giá trị mất mát trong quá trình huấn với thuật toán tối ưu RMSProp luyện của mô hình chỉnh sửa 41
Hình 5.5: Biểu đồ độ chính xác trong quá trình huấn luyện với thuật toán tối ưu Adam của mô hình được đề xuất 42
Hình 5.6: Biểu đồ giá trị mất mát trong quá trình huấn luyện với thuật toán tối ưu Adam của mô hình được đề xuất 42
Hình 5.7: Biểu đồ độ chính xác trong quá trình huấn luyện với thuật toán tối ưu Adam của mô hình chỉnh sửa 43
Hình 5.8: Biểu đồ giá trị mất mát trong quá trình huấn với thuật toán tối ưu Adam luyện của mô hình chỉnh sửa 43
Hình 5.9: Biểu đồ so sánh độ chính xác của mô hình đề xuất và mô hình chỉnh sửa khi huấn luyện với hai thuật toán tối ưu là RMSProp và Adam 44
Hình 5.10: Kết quả hội thoại bằng tiếng Anh 45
Hình 5.11: Kết quả trả lời bằng tiếng Việt 45
Hình 5.12: Các trường hợp trả lời sai 45
Trang 15xiii
DANH SÁCH BẢNG
Bảng 4.1: Mẫu câu hỏi và câu trả lời tiếng Anh cho việc huấn luyện 31 Bảng 4.2: Mẫu câu hỏi và câu trả lời tiếng Việt cho việc huấn luyện 31
Trang 16xiv
DANH SÁCH TỪ VIẾT TẮT VÀ THUẬT NGỮ ANH – VIỆT
Trang 171
CHƯƠNG 1: TỔNG QUAN
1.1 Đặt vấn đề
Công nghệ kỹ thuật ngày càng phát triển và có nhiều bước tiến lớn, trong đó đặc biệt
là lĩnh vực trí thông minh nhân tạo đã đạt được nhiều thành công to lớn Cùng với sự phát triển của trí thông minh nhân tạo là sự ra đời của các trợ lý ảo Trợ lý ảo đã góp phần thay đổi cách con người tương tác với các hệ thống, giúp người dùng dễ dàng tương tác hơn Hàng loạt các công ty công nghệ hàng đầu hiện nay như Microsoft (Cortana), Apple (Siri), Google (Google Assistant), Facebook (M),… đã giới thiệu các trợ lý ảo của mình, là các
hệ thống trả lời tự động [1]
Một số công ty trong nước như FPT, BKAV,… đã và đang phát triển các ứng dụng trợ
lý ảo trả lời tự động ứng dụng trí thông minh nhân tạo Hay các ứng dụng học tiếng Anh cũng đã ứng dụng trí thông minh nhân tạo để tạo ra các trợ lý ảo trả lời tự động giao tiếp với người học, nhằm nâng cao khả năng tương tác và hỗ trợ người học liên tục Trợ lý ảo được phát triển mạnh mẽ nhằm trợ giúp người dùng, khách hàng có thể được trợ giúp bất
kỳ lúc nào và có những trải nghiệm tốt nhất về các dịch vụ được cung cấp
Đề tài “Nghiên cứu thiết kế và thi công trợ lý ảo giao tiếp bằng giọng nói” được
học viên tiến hành nghiên cứu cũng nhằm mục đích giúp tìm hiểu và lựa chọn giải pháp, thuật toán mang lại kết quả tốt nhất cho vấn đề
1.2 Các nghiên cứu đã được công bố
Các hệ thống trợ lý ảo trả lời tự động đã được quan tâm nghiên cứu và phát triển từ rất lâu, bao gồm các viện nghiên cứu, các trường đại học và các doanh nghiệp Việc nghiên cứu và phát triển các hệ thống trợ lý ảo giúp trả lời tự động có ý nghĩa trong khoa học và thực tế Đã có rất nhiều hội nghị thường niên về vấn đề xử lý ngôn ngữ tự nhiên, xử lý dữ liệu lớn, tương tác người và máy, như TREC, CLEF,… tại Việt Nam có KSE, RIVF, ATC,…
Với sự ra đời của mô hình Sequence to Sequence [2], nhiều hệ thống đã được xây dựng
và huấn luyện sử dụng các mạng nơ-ron để tạo ra các câu trả lời khi đưa vào mạng câu hỏi
Trang 182
Với sự giúp đỡ của các mô hình xử lý ngôn ngữ tự nhiên, mỗi câu hỏi đầu vào được mã hóa thành một vector đại diện Để loại bỏ sự cần thiết của mô hình ngôn ngữ, Serban và các cộng sự đã đề xuất mô hình end-to-end trên một mạng RNN [3] Và mạng LSTM đã được phát triển để khắc phục các vấn đề của mạng RNN, giúp nâng cao hiệu suất hoạt động
1.3 Mục tiêu
Luận văn xây dựng một hệ thống trợ lý ảo có thể trò chuyện với người dùng bằng giọng nói sử dụng mô hình sequence to sequence Trong hệ thống này, việc xây dựng và đánh giá hiệu suất được thực hiện trên tập dữ liệu thu thập được, là các đoạn hội thoại giữa hai người với nhau, với mục tiêu mô hình hệ thống trợ lý ảo có độ chính xác trên 90% Đồng thời so sánh hiệu suất về ảnh hưởng độ sâu của mô hình trong huấn luyện cũng như trong việc hội thoại, và so sánh thuật toán tối ưu hóa dùng trong huấn luyện mạng
1.4 Nhiệm vụ và giới hạn
1.4.1 Nhiệm vụ
− Thu thập dữ liệu các mẫu hội thoại trên website
− Đọc tài liệu, tóm tắt các phương pháp để làm cơ sở lý thuyết cho nghiên cứu luận văn
− Nghiên cứu về mạng nơ-ron LSTM, tìm hiểu quá trình một câu hội thoại đi qua các lớp mạng và sự ảnh hưởng của các lớp mạng lên nó, thay đổi các lớp mạng và đánh giá hiệu suất; đồng thời tìm hiểu các thuật toán tối ưu sử dụng trong huấn luyện mạng nơ-ron
− Viết chương trình cho quá trình huấn luyện và nhận dạng
− Chạy chương trình, kiểm tra đánh giá và chỉnh sửa
− Viết luận văn
1.4.2 Giới hạn
− Số lượng mẫu hội thoại để huấn luyện vẫn còn hạn chế
− Mô hình huấn luyện vẫn chưa đạt độ chính xác cao
Trang 193
1.5 Phương pháp nghiên cứu
Thu thập và nghiên cứu tài liệu, các bài báo trong và ngoài nước về xử lý ngôn ngữ tự nhiên, đặc biệt tập trung vào các nghiên cứu ứng dụng mạng học sâu trong việc phát triển ứng dụng xử lý ngôn ngữ tự nhiên
Phân tích, tổng hợp, mô phỏng để đưa ra kết quả và đánh giá
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
Trang 204
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Trợ lý ảo
2.1.1 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
2.1.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
Người dùng
Chatbot
Hình 2.1: Mô hình chatbot
Trang 215
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
2.1.4 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
2.1.5 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
Trang 22đủ 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
2.2 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,
Trang 237
đượ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
Hình 2.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
2.2.1 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]
Trang 248
Hình 2.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
2.2.2 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
Trang 25Ý 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
nút của mạng, nhờ đó mà thông tin được truyền đi xuyên suốt mạng
Trang 2610
Hình 2.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
Hình 2.6: Mô hình cổng trong mạng LSTM
2.2.4 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
Trang 2711
thông tin sẽ bị xóa
~
t
hai giá trị lại tạo thành một giá trị mới cập nhật vào trạng thái tế bào
Trang 292.3 Các thuật toán thường được sử dụng cho việc nhận diện giọng nói
2.3.1 Hidden Markov Model
Các lý thuyết cơ bản về chuỗi Markov (Markov chains) được các nhà toán học và kỹ
sư biết đến từ những năm 1900 Nhưng đến những năm 1960 – 1970, thuật toán này mới được sử dụng rộng rãi [16] Lý do chính khiến cho các mô hình xử lý giọng nói, dựa trên chuỗi Markov, phải mất nhiều thời gian phát triển chính là sự thiếu các phương pháp tối
ưu hóa các tham số cho chuỗi Markov để cho kết quả chính xác Có hai lý do chính để
Trang 3014
HMM trở nên phổ biến Đầu tiên là mô hình HMM có mô hình toán học phong phú, giúp
dễ dàng hình thành các cơ sở lý thuyết cho nhiều ứng dụng khác nhau Lý do thứ hai là khi được áp dụng một cách chính xác, mô hình cho kết quả có độ chính xác cao trong các ứng dụng quan trọng [17]
Một chuỗi trạng thái ngẫu nhiên có thuộc tính Markov khi xác suất chuyển sang trạng thái kế tiếp, chỉ phụ thuộc vào trạng thái hiện tại và trạng thái trước đó Nếu chuỗi trạng thái có dãy xác suất chuyển sang trạng thái kế tiếp có thể quan sát dễ dàng thì đây là chuỗi Markov [18] Với các chuỗi trạng thái không thể quan sát một cách trực tiếp, mà chỉ có thể quan sát thông qua một chuỗi trạng thái khác, thì đây là mô hình Markov ẩn (HMM)
2.3.2 Convolutional Neural Network
CNN là một trong những mô hình Deep Learning tiên tiến, hỗ trợ cho việc xây dựng các hệ thống thông minh có khả năng nhận dạng với độ chính xác cao [19]
Trong toán học, tích chập là một phép toán sử dụng cho hai hàm số, với kết quả là một hàm số khác biểu diễn cho sự kết hợp của hai hàm số ban đầu [20]
Đối với CNN có hai công việc chính là trích đặc trưng của đối tượng và nhận dạng đối tượng Việc nhân tích chập tín hiệu ngõ vào với các kernel thích hợp sẽ cho ra kết quả là các đặc trưng của tín hiệu ngõ vào Ta có thể sử dụng tích chập để lọc nhiễu cho tín hiệu trước khi trích đặc trưng Ta có thể thay đổi các tham số trong kernel để phù hợp với các yêu cầu khác nhau như tăng cường tín hiệu, lọc tín hiệu, trích đặc trưng của tín hiệu Với tín hiệu âm thanh sau khi được ghi lại sẽ được rời rạc tín hiệu và nhân tích chập với các kernel thích hợp để thu được kết quả là các đặc trưng của tín hiệu cần nhận dạng [21]
Trang 3115
Hình 2.11: Dạng sóng tín hiệu âm thanh
Sau khi trích được các đặc trưng của tín hiệu, các đặc trưng đó sẽ được dùng để so sánh với các mẫu có trong CSDL Ngõ ra cuối cùng của CNN là các kết quả xác suất tín hiệu ngõ vào giống với tín hiệu mẫu nào
Để tính toán các tham số cho các kernel cũng như trọng số của các lớp khác trong mạng CNN, thì cần phải có một lượng CSDL về giọng nói tương đối lớn và đa dạng Việc thu thập CSDL này tương đối khó khăn và mất nhiều thời gian
2.3.3 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 Và đã được ứng dụng rất thành công trong lĩnh vực nhận diện giọng nói Một công cụ nổi bật cho việc ứng dụng mạng LSTM là Google Voice transcription, được nghiên cứu và phát triển bởi Google [22] Công cụ này sử dụng mạng LSTM từ năm 2012 đến nay vẫn tiếp tục được phát triển, nâng cấp Hiện tại, công cụ này có khả năng nhận diện giọng nói với nhiều ngôn ngữ khác nhau, tiếng Việt cũng được hỗ trợ bỏi công cụ này, với độ chính xác cao, ít xảy ra sai sót Việc này cho thấy mạng LSTM có thể đáp ứng về độ chính xác cao cho các ứng dụng nhận diện ngôn ngữ tự nhiên Và cũng giống như những mạng nơ ron khác, mạng LSTM cũng cần một lượng lớn CSDL cho việc huấn luyện để có thể đạt được độ chính xác yêu cầu
2.4 Một số thuật toán tối ưu dùng trong huấn luyện mạng nơ-ron
2.4.1 Giảm độ dốc
nằm trong khoảng chấp nhận được:
Trang 32Vì ta cần tính toán độ dốc cho toàn bộ tập dữ liệu để thực hiện chỉ một bản cập nhật, việc giảm độ dốc có thể rất chậm và không thể truy cập được đối với các bộ dữ liệu không phù hợp với bộ nhớ Hiện thuật toán này có rất nhiều biến thể, điển hình là Giảm độ dốc ngẫu nhiên (SGD) đã khắc phục được nhược điểm trên
2.4.2 Giảm độ dốc ngẫu nhiên
Giảm độ dốc ngẫu nhiên (SGD) [24] thực hiện cập nhật tham số cho mỗi mẫu huấn
từng mẫu trong toàn bộ dữ liệu
2.4.3 Độ dốc thích ứng
Độ dốc thích ứng (Adagrad) [25], [26] là một thuật toán để tối ưu hóa dựa trên độ dốc,
nó điều chỉnh tốc độ học cho các tham số, thực hiện các cập nhật nhỏ hơn (tốc độ học thấp) cho các tham số trong các trường hợp lặp lại nhiều và cập nhật lớn hơn (tốc độ học cao) cho các tham số trong các trường hợp lặp lại ít hoặc không lặp lại Nó sử dụng tốc độ học
Trang 33 = − )
t
1
t
g G
Trang 3418
CHƯƠNG 3: TIỀN XỬ LÝ NGÔN NGỮ TỰ NHIÊN
Tiền xử lý là một bước đầu tiên và không thể thiếu để có thể biến đổi dữ liệu về đúng định dạng yêu cầu Trong xử lý ngôn ngữ tự nhiên, tiền xử lý gồm các bước:
Hình 3.1: Các bước tiền xử lý trong xử lý ngôn ngữ tự nhiên
3.1 Làm sạch câu
Bước này là để loại bỏ các nhiễu trong dữ liệu cần xử lý Các nhiễu có thể là các ký tự không có ý nghĩa (!@#*), các thẻ HTML, Javascript… Nếu không lọc bỏ các ký tự này thì
sẽ dẫn đến kết quả của quá trình xử lý không tốt
Thông thường ta sẽ sử dụng regex để có thể lọc các ký tự không mong muốn trong câu Regex (Regular Expression – biểu thức chính quy) là một chuỗi các ký tự được dùng
để miêu tả một bộ chuỗi các ký tự khác, theo những quy tắc và cú pháp nhất định [27]
Trang 35lý ngôn ngữ tự nhiên, đặc biệt là đối với các ngôn ngữ thuộc vùng Đông Á, ví dụ: tiếng Trung Quốc, tiếng Nhật, tiếng Thái, tiếng Việt,… Với các ngôn ngữ này, ranh giới từ không chỉ đơn giản là những khoảng trắng như trong các ngôn ngữ như tiếng Anh…, mà có sự liên hệ chặt chẽ giữa các tiếng với nhau, một từ có thể cấu tạo bởi một hoặc nhiều tiếng
Vì vậy đối với các ngôn ngữ thuộc vùng Đông Á, vấn đề của bài toán tách từ là khử được
sự nhập nhằng trong ranh giới từ
3.3 Chuẩn hóa từ
Mục đích của bước này là đưa văn bản từ các dạng khác nhau về cùng một dạng Bước này có thể giúp tối ưu bộ nhớ và tăng tính chính xác cho kết quả
Trang 3620
Ví dụ: Trong từ điển dùng để huấn luyện chỉ có từ USA mà không có từ U.S.A, nên việc chuyển đổi những từ như U.S.A về USA là cần thiết, giúp cho các bước xử lý sau được chính xác hơn
Ngoài ra, trong một số trường hợp, các ký tự số không mang lại ý nghĩa cho câu thì cũng sẽ tiến hành loại bỏ Nếu để nguyên rất có thể các ký tự số sẽ thành nhiễu, ảnh hưởng đến độ chính xác của quá trình xử lý
3.4 Loại bỏ stop words
Stop words là những từ xuất hiện nhiều trong ngôn ngữ tự nhiên nhưng không có nhiều
ý nghĩa cho việc đánh giá ý nghĩa của câu [28] Việc loại bỏ stop words sẽ không ảnh hưởng đến ý nghĩa của cả câu Có bốn phương pháp loại bỏ stop words là [29]:
Phương pháp loại bỏ stop words theo từ điển: Các câu sẽ được lọc và loại bỏ các từ có xuất hiện trong từ điển stop words [30]
Phương pháp loại bỏ dựa trên Zipf’s law: kết hợp với phương pháp loại bỏ stop words theo từ điển, phương pháp này sẽ sử dụng thêm ba phương pháp tạo danh sách từ stop words theo định luật Zipf, bao gồm: Xóa hầu hết các từ thường gặp (TF-High) và xóa các
từ xuất hiện một lần [30], [31]
Phương pháp loại bỏ dựa trên thông tin tương hỗ (Mutual Information - MI): Thông tin tương hỗ giữa hai biến được sử dụng để xem xét mối quan hệ giữa hai biến Khi giá trị này càng lớn thì sự liên quan của hai biến càng lớn và ngược lại Với phương pháp này, khi thông tin tương hỗ thấp thì cho thấy từ ít liên quan đến câu và cần loại bỏ nó [30]–[32] Phương pháp loại bỏ dựa trên Term Based Random Sampling (TBRS): Phương pháp này được đề xuất lần đầu bởi Lo et al (2005) để phát hiện stop words trong các tài liệu Phương thức này hoạt động bằng cách quét qua các đoạn văn riêng biệt được chọn ngẫu nhiên Sau đó xếp hạng các từ trong mỗi đợn văn dựa trên các giá trị thông tin của chúng bằng thước đo Kullback-Leibler divergence [33] Cuối cùng stop list sẽ được xây dựng bao gồm các từ có giá trị thông tin thấp trong các đoạn văn, và các từ này sẽ được loại bỏ
Trang 3721
3.5 Vector hóa từ
Thông thường, máy tính không thể hiểu được ý nghĩa của các từ trong văn bản Như vậy, để xử lý ngôn ngữ tự nhiên, ta cần phải biểu diễn văn bản dưới dạng mà máy tính có thể hiểu được Phương pháp tiêu chuẩn để biểu diễn văn bản đó là biểu diễn văn bản dưới dạng các vector
3.5.1 Bag of Words (BoW)
Đây là cách biểu diễn vector truyền thống phổ biến nhất được sử dụng Mỗi từ hoặc gram từ sẽ được mô tả là một vector có số chiều bằng đúng số từ trong bộ từ điển Tại vị trí tương ứng với vị trí của từ đó trong từ điển, phần tử trong vector đó sẽ được đánh dấu
n-là 1 Những vị trí còn lại sẽ được đánh dấu n-là 0 [14]
Ví dụ: Ta có hai câu như sau:
• The quick brown fox jumps over the lazy dog and
• Never jump over the lazy dog quickly
Từ 2 câu trên, tiến hành tạo từ điển có chứa các từ xuất hiện trong hai câu và được sắp xếp thứ tự:
['and', 'brown', 'dog', 'fox', 'jump', 'jumps', 'lazy', 'never', 'over', 'quick', 'quickly', 'the'] Dựa vào bộ từ trong từ điển vừa tạo, tiến hành tạo vector lưu trữ sụ xuất hiện của từ trong từ điển ứng với mỗi câu Do từ diển có 12 từ nên vector của hai câu sẽ có dạng như sau:
Trang 383.5.2 TF-IDF (term frequency–inverse document frequency)
Trong hầu hết các ngôn ngữ, có một số từ có xu hướng xuất hiện thường xuyên như trong tiếng Anh có "is", "the" tương tự tiếng việt có các từ như "là", "của", "cứ" Chính
vì vậy nếu chỉ xét theo sự xuất hiện của từng từ thì việc phân loại văn bản rất có thể cho kết quả sai dẫn tỷ lệ chính xác sẽ thấp
TF- IDF (term frequency–inverse document frequency) – tần suất- tần suất đảo nghịch
từ Đây là một phương pháp thống kê, nhằm phản ánh độ quan trọng của mỗi từ hoặc gram đối với văn bản trên toàn bộ tài liệu đầu vào [34] Giá trị TF-IDF của một từ thu được qua thống kê sẽ thể hiện mức độ quan trọng của từ này trong văn bản Giá trị TF-IDF sẽ tăng tỷ lệ thuận với số lần xuất hiện của từ trong đoạn văn bản và số văn bản có chứa từ đó
Trang 39phép chia không hợp lệ, vì thế với trường hợp này thường mẫu số sẽ là 1
Từ biểu thức (3.1) và (3.2), ta tính được giá trị TF-IDF theo công thức sau:
( , , ) ( ), ( ),
này và xuất hiện ít trong các văn bản khác Giá trị này giúp lọc ra được những từ phổ biến
và giữ lại các từ có giá trị cao cho việc xử lý văn bản
Trang 404.2 Mô hình ngôn ngữ
Mô hình ngô ngữ là nền tảng cho việc xây dựng mô hình chuỗi tuần tự Mô hình ngôn ngữ có đầu vào là một chuỗi các giá trị, và dựa trên từng phần tử của chuỗi để dự đoán các phần tử tiếp theo của chuỗi văn bản Có thể mô tả quá trình bằng hàm số:
đại diện cho mạng nơ ron mà có thể dự đoán được phần tử tiếp theo của chuỗi, dựa trên phần tử hiện tại được cho trước
Không giống với các mô hình ngôn ngữ đơn giản là chỉ dự đoán xác suất cho từ tiếp theo khi được cho bởi từ hiện tại, mô hình mạng nơ ron có thể xem xét toàn bộ chuỗi đầu vào Do đó, mạng nơ ron có thể dự đoán xác xuất tạo ra các từ tiếp theo dựa trên các từ hiện tại, cũng như tất cả các từ trước đó
4.3 Mô hình đối thoại seq2seq
Mô hình chuỗi sang chuỗi (sequence-to-sequence – seq2seq) được giới thiệu bởi Kyunghyun Cho và các cộng sự năm 2014 trong bài báo “Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation” [36] Kể từ đó, mô hình
đã được sử dụng rộng rãi trong nhiều ứng dụng, đặc biệt là trong các hệ thống đối thoại (Dialogue Systems)