(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân(Luận văn thạc sĩ) - Phân tích câu hỏi tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân
Trang 1VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
Trang 2HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
LUẬN VĂN THẠC SĨ NGÀNH MÁY TÍNH
CÁN BỘ HƯỚNG DẪN KHOA HỌC: TS.Nguyễn Như Sơn
HÀ NỘI – 2020
Nguyễn Như Sơn
Trang 3LỜI CAM ĐOAN
Tôi là Lưu Thị Vân, học viên khóa I, ngành Công nghệ thông tin, chuyên ngành Hệ Thống Thông Tin Tôi xin cam đoan luận văn “Phân tích câu hỏi Tiếng Việt trong hệ thống đón tiếp và phân loại bệnh nhân” là do tôi nghiên cứu, tìm hiểu và phát triển dưới sự hướng dẫn của TS Nguyễn Như Sơn Luận văn không phải sự sao chép từ các tài liệu, công trình nghiên cứu của người khác mà không ghi rõ trong tài liệu tham khảo Tôi xin chịu trách nhiệm về lời cam đoan này
Hà Nội, tháng 10 năm 2020
Học viên
Lưu Thị Vân
Trang 4LỜI CẢM ƠN
Đầu tiên tôi xin gửi lời cảm ơn tới các thầy cô Học viện Khoa học và Công nghệ nghệ Việt nam, Viện Hàn lâm Khoa học và Công nghệ Việt Nam đã tận tình giảng dạy và truyền đạt kiến thức cho tôi trong suốt khóa học cao học vừa qua.Tôi cũng xin được gửi lời cảm ơn đến các thầy cô trong Bộ môn Hệ thống thông tin cũng như Khoa công nghệ thông tin đã mang lại cho tôi những kiến thức vô cùng quý giá và bổ ích trong quá trình học tập tại trường
Đặc biệt xin chân thành cảm ơn thầy giáo, TS Nguyễn Như Sơn, người
đã định hướng, giúp đỡ, trực tiếp hướng dẫn và tận tình chỉ bảo tôi trong suốt quá
trình nghiên cứu, xây dựng và hoàn thiện luận văn này
Tôi cũng xin được cảm ơn tới gia đình, những người thân, các đồng nghiệp và bạn bè đã thường xuyên quan tâm, động viên, chia sẻ kinh nghiệm, cung cấp các tài liệu hữu ích trong thời gian học tập, nghiên cứu cũng như trong suốt quá trình thực hiện luận văn tốt nghiệp
Hà Nội, tháng 10 năm 2020
Học viên
Lưu Thị Vân
Trang 5MỤC LỤC
LỜI CAM ĐOAN 2
LỜI CẢM ƠN 3
MỤC LỤC 4
DANH MỤC THUẬT NGỮ VÀ CÁC KÝ HIỆU VIẾT TẮT 6
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ 7
DANH MỤC CÁC BẢNG BIỂU 7
TÓM TẮT 8
MỞ ĐẦU 10
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 13
1 Tổng quan về hệ thống trả lời tự động 13
1.1 Hệ thống hướng nhiệm vụ và hướng hội thoại 14
1.2 Tình hình nghiên cứu trong và ngoài nước 15
2 Xử lý ngôn ngữ tự nhiên và ứng dụng 17
2.1 Sơ lược về ngôn ngữ tự nhiên 17
2.2 Các ứng dụng xử lý ngôn ngữ tự nhiên 18
2.3 Tiền xử lý văn bản 18
2.3.1 Chuẩn hóa và biến đổi văn bản 18
2.3.2 Biểu diễn văn bản dưới dạng vector 19
3 Bài toán phân loại văn bản 19
3.1 Bài toán phân loại văn bản 19
3.2 Một số thuật toán phân loại văn bản 20
3.2.1 Thuật toán Naive Bayes 20
3.2.2 Thuật toán SVM 23
3.2.3 Mạng nơ-ron nhân tạo 31
3.3 Các phương pháp đánh giá một hệ thống phân lớp 36
3.3.1 Đánh giá theo độ chính xác Accuracy 37
3.3.2 Ma trận nhầm lẫn 37
Trang 63.3.3 True/False Positive/Negative 39
3.3.4 Precision và Recall 40
3.3.5 F1-Score 42
CHƯƠNG 2: PHÂN TÍCH CÂU HỎI TRONG HỆ THỐNG TRẢ LỜI TỰ ĐỘNG 44
1 Vấn đề cơ bản của một hệ thống trả lời tự động 44
2 Bài toán phân loại câu hỏi 46
2.1 Phát biểu bài toán 46
2.2 Các phương pháp phân loại câu hỏi 46
2.2.1 Phân loại câu hỏi dựa trên luật 47
2.2.2 Phương pháp sử dụng mô hình ngôn ngữ 48
2.2.3 Phân loại câu hỏi dựa vào học máy 48
2.3 Trích chọn đặc trưng cho phân tích câu hỏi 51
2.3.1 Đặc trưng về từ vựng 51
2.3.2 Đặc trưng về cú pháp 53
2.3.3 Đặc trưng về ngữ nghĩa 54
3 Sự phân loại câu hỏi Taxonomy 55
3.1 Khái niệm Taxonomy 55
3.2 Taxonomy câu hỏi 55
3.3 Mô hình phân lớp đa cấp 59
4 Một số kết quả nghiên cứu 60
CHƯƠNG 3: XÂY DỰNG MÔ HÌNH VÀ ĐÁNH GIÁ THỰC NGHIỆM 62
1 Kiến trúc ứng dụng 62
2 Xây dựng và cài đặt mô hình 63
2.1 Tập dữ liệu thực nghiệm 63
2.2 Công cụ thực nghiệm 65
2.3 Lựa chọn đặc trưng 66
3 Đánh giá kết quả thực nghiệm 67
KẾT LUẬN 69
TÀI LIỆU THAM KHẢO 70
Trang 7DANH MỤC THUẬT NGỮ VÀ CÁC KÝ HIỆU VIẾT TẮT
AI Artificial Intelligence Trí tuệ nhân tạo
ML Machine Learning Máy học, máy mĩc cĩ khả năng học
tập ANN Artificial Nerual Network Mạng nơ ron nhân tạo
Bộ cơng cụ xử lý ngơn ngữ tiếng Việt
NLTK Natural Language Toolkit Bộ cơng cụ xử lý ngơn ngữ tự nhiên
bằng Python Python Python Ngơn ngữ lập trình python, nền tảng
lập trình phía máy chủ SDK Support Development Kit Bộ cơng cụ hỗ trợ phát triển
CPU Central Processing Unit Bộ xử lý trung tâm
GPU Graphics Processing Unit Bộ vi xử lý chuyên dụng nhận nhiệm
vụ tăng tốc, xử lý đồ họa cho bộ vi xử
lý trung tâm CPU API Application Programming
Interface
Giao diện lập trình ứng dụng
QA Question Answering Các cặp câu hỏi đáp
Agent Agent hay Software Agent Tác tử hay Tác tử phần mềm, là một
chương trình máy tính tồn tại trong một mơi trường nhất định, tự động hành động phản ứng lại sự thay đổi của mơi trường nhằm đáp ứng mục tiêu đã được thiết kế trước
Conversational
agents
Conversational agents Các tác tử đàm thoại là tác tử cĩ khả
năng giao tiếp thơng qua văn bản hoặc lời nĩi
NBC Naive Bayes Classifier Bộ phân lớp Nạve Bayes
TREC Text REtrieval Conference Hội nghị về truy hồi thơng tin
SVM Support Vector Machine Một thuật tốn học máy cĩ giám sát
được sử dụng rất phổ biến ngày nay trong các bài tốn phân lớp (classification) hay hồi qui (Regression)
Trang 8DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1: Mặt phân cách dữ liệu 24
Hình 2 Lề siêu phẳng 24
Hình 3 Dữ liệu phi tuyến 27
Hình 4 Không gian dữ liệu phi tuyến 29
Hình 5 Kiến trúc mạng nơ-ron nhân tạo 32
Hình 6 Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo 33
Hình 7 Minh hoạ unnormalized confusion và normalized confusion matrix 39
Hình 8 Cách tính Precision và Recall 41
Hình 9 Các bước cơ bản trong hệ thống trả lời tự động 44
Hình 10 Mô hình giai đoạn huấn luyện 49
Hình 11 Các bước thực hiện giai đoạn huấn luyện 50
Hình 12 Mô hình giai đoạn phân lớp 51
Hình 13 Bộ phân lớp đa cấp của Li và Roth 60
Hình 14 Kiến trúc tổng quan của hệ thống phân loại câu hỏi 63
Hình 15 Tập dữ liệu huấn luyện 64
Hình 16 Tập dữ liệu kiểm tra 64
DANH MỤC CÁC BẢNG BIỂU Bảng 1 Một vài so sánh các cách sắp xếp trật tự câu 18
Bảng 2 Dữ liệu tập mẫu tính xác suất theo phương pháp Naive Bayes 21
Bảng 3 Biểu diễn các đặc trưng của một câu hỏi 52
Bảng 4 Taxonomy câu hỏi 56
Bảng 5 Độ chính xác phân loại câu hỏi với các thuật toán học máy khác nhau 61 Bảng 6 Thông tin phần cứng thực nghiệm 65
Bảng 7 Các công cụ, thư viện sử dụng 65 Bảng 8 Độ chính xác kết quả thực nghiệm SVM với các đặc trưng khác nhau 67
Trang 9TÓM TẮT
Sự phát triển mạnh mẽ của Công nghệ thông tin trong những năm gần đây, đặc biệt trong bối cảnh cuộc cách mạng công nghiệp lần thứ tư đang tác động tới nhiều ngành nghề, nhiều lĩnh vực, trong đó có ngành y tế, đòi hỏi các bệnh viện và các cơ sở y tế phải không ngừng đổi mới để nâng cao chất lượng dịch vụ khám chữa bệnh, nâng cao hiệu suất làm việc của bác sĩ, giảm chi phí khám chữa bệnh, giảm thời gian chờ đợi của bệnh nhân
Ứng dụng những công nghệ mới như : Trí tuệ nhân tạo (AI), Dữ liệu lớn (Big Data), Điện toán đám mây (Cloud Computing), Kết nối vạn vật (IOT), Di động (Mobility), … sẽ giúp các lãnh đạo của bệnh viện và các cơ sở y tế có thể quản lý toàn bộ hoạt động với các số liệu chính xác, trung thực và trực tuyến Việc ứng dụng công nghệ thông tin (CNTT) trong công tác bảo vệ, chăm sóc, nâng cao sức khỏe ở Việt Nam đã có những bước phát triển quan trọng, đặt nền móng xây dựng, triển khai và vận hành nền y tế thông minh
Trí tuệ nhân tạo (AI – Artificial Intelligent) là một ngành của Khoa học máy tính liên quan đến việc mô phỏng các quá trình suy nghĩ và học tập của con người cho máy móc, đặc biệt là cho các hệ thống máy tính Các quá trình này bao gồm việc học tập (thu thập thông tin và thiết lập 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 hoặc xác định),
và tự sửa lỗi AI gần đây trở nên bùng nổ, nhận được nhiều sự quan tâm là nhờ
Dữ liệu lớn (Big data) phát triển, cho phép xử lý công nghệ AI với tốc độ nhanh hơn bao giờ hết Một số ứng dụng điển hình của AI trong lĩnh vực y tế có thể kể
đến như : (1) Phẫu thuật với sự hỗ trợ của Robot cho phép bác sĩ thực hiện nhiều quy trình phức tạp cùng với sự kiểm soát tốt hơn ; (2) Trợ lý y tá ảo
hướng dẫn và tương tác với bệnh nhân, thực hiện các biện pháp chăm sóc tránh
việc thăm khám không cần thiết ; (3) Hỗ trợ chẩn đoán lâm sàng như phát hiện ung thư, hay việc hỗ trợ đưa ra phác đồ điều trị ; (4)Tự động hóa các tác vụ quản trị giúp tiết kiệm thời gian, giúp giảm bớt khối lượng công việc và nhiệm
vụ quản trị ; (5) Phân tích hình ảnh giúp bác sĩ đưa ra được kết luận chính xác
về các tổn thương trên các hình ảnh X-Quang, CT, MRI,
Đón tiếp và phân loại bệnh nhân là một bài toán quan trọng trong việc
Trang 10đón tiếp bệnh nhân đến thăm khám và điều trị chữa bệnh tại các cơ sở y tế và các bệnh viện Việc đón tiếp liên tục, tự động hóa và nhanh chóng giúp phân luồng và giảm tải cho cơ sở khám chữa bệnh (KCB) để có thể cứu chữa và thăm khám được nhiều bệnh nhân hơn, đồng nghĩa cứu được nhiều mạng người hơn
Từ các yêu cầu thực tế để xây dựng và triển khai một hệ thống có thể tự động đón tiếp khám bệnh, đón tiếp làm cận lâm sàng, hướng dẫn tìm đường, hướng dẫn thủ tục, phân loại khám bệnh cho bệnh nhân dựa vào tập câu hỏi cho trước thay cho cán bộ đón tiếp Để xây dựng được một hệ thống đón tiếp như vậy, tôi thực hiện nghiên cứu các phương pháp phân tích câu hỏi tiếng Việt để tiền xử lý tập lệnh cho hệ thống đón tiếp và phân loại bệnh nhân một cách tự động
Phân loại văn bản là quá trình gán nhãn hoặc phân nhóm cho văn bản theo nội dung của nó Đây là một trong những nhiệm vụ cơ bản của Xử lý ngôn ngữ
tự nhiên với các ứng dụng rộng rãi như : Phân tích cảm xúc (Sentiment analysis), gán nhãn chủ đề (Topic labeling), phát hiện thư rác (Spam detection),
và phát hiện ý định (Intent detection)
Trong khuôn khổ của đề tài này, nghiên cứu các phương pháp Phân tích câu hỏi tiếng Việt và đưa ra một kiến trúc để xây dựng một hệ thống đón tiếp và phân loại bệnh nhân được ứng dụng tại các bệnh viện và cơ sở khám
chữa bệnh
Kết quả chính của mà tôi đạt được là một mô hình phân loại văn để xác định ý định và nhu cầu khám chữa bệnh của người dân, đối với nhóm đối tượng điều trị bệnh mãn tính, nhóm đối tượng tư vấn tổng quát Mô hình ban đầu đã cho kết quả rất tính cực, có thể giải quyết được những vấn đề cơ bản về ngữ nghĩa, ngữ cảnh và tiến tới giải quyết được những yêu cầu cao hơn về việc phân loại và hỗ trợ tự động
Trang 11MỞ ĐẦU
1 Động lực nghiên cứu và tính cấp thiết của bài toán thực tế
Trong bối cảnh mạng Internet đã trở lên rất phổ biến như hiện nay, con người kết nối với con người thông qua mạng xã hội, bất cứ thời gian nào và ở bất cứ nơi đâu Sẽ thật tốt hơn nếu có một hệ thống tự động thông minh 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 và
có thể theo dõi tình trạng sức khỏe cá nhân mọi lúc, mọi nơi
Hệ thống trả lời tự động hay trợ lý ảo đang là chủ đề rất nóng từ đầu năm
2016, khi chính thức các công ty lớn như Microsoft, Google, Facebook, Apple, Samsung, WeChat, Slack đã giới thiệu các trợ lý ảo của mình, là các hệ thống trả lời tự động Chính thức đặt cược lớn vào cuộc chơi tạo những những thế hệ trợ lý ảo, với mong muốn tạo ra một trợ lý ảo thực sự thông minh tồn tại trong
hệ sinh thái các sản phẩm của mình
Trong nước, một số công ty như ERM và Vietcare đã phát triển tạo ra hệ thống trả lời tự động về kiến thức y khoa, hỏi đáp về sức khỏe thông tin y tế, hay Subiz, Messnow, Harafunnel, Chatbot Vietnam, … cũng đang cố gắng tạo ra cho mình một hệ thống hỗ trợ, chăm sóc khách hàng và bán hàng tự động
Trong lĩnh vực y tế, một số công ty cũng đã ứng dụng Robot Đón tiếp như một sản phẩm của Trí tuệ nhân tạo, Robot là một sản phẩm của quá trình chuyển đổi số y tế, là nhân tố không thể thiếu trong một bệnh viện thông minh Hỗ trợ hướng dẫn toàn bộ các quy trình từ khám chữa bệnh đến chỉ dẫn, có thể kết nối với hệ thống thông tin y tế khác
Nhiều nhà nghiên cứu đang có hi vọng phát triển các trợ lý ảo có thể hiểu được ngôn ngữ tự nhiên của con người, có thể đối thoại và tương tác được với con người một cách tự nhiên Nhiều người cho rằng việc sử dụng kỹ thuật xử lý ngôn ngữ tự nhiên NLP và các kỹ thuật học sâu Deep Learning để làm tăng được chất lượng và hiệu quả của hệ thống Nhưng từ lý thuyết đến thực tế là cả một chặng đường dài và nhiều thách thức, bằng cách nào đó, con người có thể tích hợp Trí tuệ nhân tạo vào các sản phẩm công nghiệp của mình
Trang 12Có thể thấy, hệ thống trả lời tự động có những nhiệm vụ và vai trò quan trọng, có thể trợ giúp được con người rất nhiều trong rất nhiều lĩnh vực: y tế, giáo dục, thương mại điện tử, …, là động lực to lớn để nghiên cứu và đưa ra các sản phẩm phù hợp ứng dụng vào thực tế
2 Mục tiêu của luận văn
Với cơ sở thực tiễn trên, luận văn này đặt ra mục tiêu nghiên cứu một số phương pháp xử lý ngôn ngữ tự nhiên để phân tích câu hỏi, câu mệnh lệnh, cho phép phân loại các văn bản đầu vào là các câu nói tiếng Việt có tính chất sai khiến, yêu cầu ra lệnh Nhằm giải quyết một phần nhỏ trong một hệ thống Hỏi đáp và Đón tiếp bệnh nhân tại các cơ sở y tế
Từ đó, xây dựng một mô hình phân loại văn bản để dự đoán được ý định của văn bản đầu vào Từ kết quả thu được, sẽ được sử dụng để ứng dụng vào bài toán Đón tiếp và phân loại bệnh nhân đến phòng khám phù hợp tại các cơ sở khám chữa bệnh
3 Cấu trúc của luận văn
Các nghiên cứu và kết quả được mô tả trong luận văn được chia thành bố cục với các nội dung như sau:
CHƯƠNG 1: Giới thiệu tổng quan; Giới thiệu tổng quan về hệ thống trả
lời tự động, tình hình nghiên cứu trong và ngoài nước; Nghiên cứu về cơ sở xử
lý ngôn ngữ tự nhiên và các ứng dụng;tìm hiểu bài toán phân loại văn bản và Các phương pháp phân loại văn bản
CHƯƠNG2: Phân tích câu hỏi trong hệ thống trả lời tự dộng; Nghiên
cứu các vấn đề cơ bản của hệ thống trả lời tự động, tìm hiểu các phương pháp xác định ý định người dùng bằng phương pháp học máy; Nghiên cứu phương pháp đánh giá một hệ thống thống phân lớp ý định
CHƯƠNG3: Xây dựng mô hình và đánh giá thực nghiệm; Đề xuất mô
hình học máy và kiến trúc của ứng dụng, trình bày các kỹ thuật tiền xử lý dữ liệu đầu vào là các câu nói Tiếng Việt có tính chất sai khiến, yêu cầu ra lệnh.Liệt kê các vấn đề và giải pháp khắc phục khi huấn luyện mô hìnhdữ liệu
Trang 13KẾT LUẬN VÀ KIẾN NGHỊ: Phần này đƣa ra các kết luận và đánh giá
kết quả đạt đƣợc của luận văn, một số đề xuất để cải tiến mô hình, cũng nhƣ khả năng ứng dụng vào bài toán thực tế
TÀI LIỆU THAM KHẢO: Đƣa ra danh sách các bài báo đƣợc sử dụng
làm tham khảo, tham chiếu cho luận văn
Trang 14CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
Xây dựng hệ thống trả lời tự động là một bài toán khó thuộc lĩnh vực xử
lý ngôn ngữ tự nhiên Bởi vì tính nhập nhằng, đa nghĩa, đa ngữ cảnh của ngôn ngữ tự nhiên Bài toán đặt ra nhiều thách thức để phát hiện ra được câu trả lời phù hợp nhất, thông tin hữu ích nhất
Chương này sẽ giới thiệu tổng quan về hệ thống đối thoại người máy, các nghiên cứu ở trong và ngoài nước để thấy được các phương pháp tiếp cận là rất phong phú, sau đó tổng quan và phân loại các mô hình trả lời tự động Tìm hiểu
và giới thiệu bài toán phân loại văn bản, các lý thuyết về học máy, các phương pháp đánh giá một hệ thống phân lớp
1 Tổng quan về hệ thống trả lời tự động
Hệ thống hộp thoại (Dialogue systems), còn được gọi là trợ lý tương tác hội thoại, trợ lý ảo và đôi khi được gọi với thuật ngữ là chatbot, được sử dụng rộng rãi trong các ứng dụng khác nhau, từ các dịch vụ kỹ thuật cho đến các công
cụ có thể học ngôn ngữ và giải trí [22] Các hệ thống đối thoại có thể được chia
thành các hệ thống hướng mục tiêu, ví dụ như các dịch vụ hỗ trợ kỹ thuật, và các hệ thống không có định hướng mục tiêu, ví dụ như các công cụ học ngôn
ngữ hoặc các nhân vật trò chơi máy tính [23] Trong luận văn này tập trung vào trường hợp thứ nhất, thiết kế một hệ thống hướng tới các nhiệm vụ có mục tiêu, tức là đi xây dựng một mô hình phân tích ý định của người dùng cho tiếng Việt trên tập dữ liệu được xây dựng theo kịch bản
Một trong những thách thức chính trong phát triển của hệ thống đối thoại người máy hướng nhiệm vụ, và trong việc mở rộng chúng trong nhiều miền ứng dụng, được nhắc đến trong [24], là sự sẵn có của dữ liệu trên một miền hội thoại
cụ thể Hệ thống đối thoại cần kết hợp và khai thác nhiều thành phần, ví dụ như nhận dạng giọng nói, hiểu ngôn ngữ tự nhiên, giám sát hội thoại, phát sinh ngôn ngữ tự nhiên, và mỗi thành phần này yêu cầu sẵn có nguồn dữ liệu trên miền cụ thể, tài nguyên và các mô hình Bao gồm các mô hình ngôn ngữ, mô hình ngữ
âm, mô hình hiểu ngôn ngữ, các miền bản thể Ontology, các kịch bản tương tác, các mô hình sinh ngôn ngữ, …
Mặc dù, nhiều vấn đề AI đã được hưởng lợi ích từ các nguồn dữ liệu ngày càng lớn, thu thập dữ liệu end-to-end cho các hệ thống đối thoại hướng nhiệm
Trang 15vụ vẫn còn là một vấn đề khó khăn Phương pháp tiếp cận hiện tại để thu thập
dữ liệu thoại dẫn đến chi phí phát triển cao và tiêu tốn thời gian cho các nhà phát triển hệ thống Trừ khi các nguồn lực bên ngoài đã có sẵn trong miền tập dữ liệu yêu cầu phải có một hệ thống triển khai có khả năng duy trì một cuộc đối thoại với người dùng Điều này dẫn đến một vấn đề khởi đầu: do thiếu dữ liệu để huấn luyện hệ thống ban đầu, các nhà phát triển hệ thống mang gánh nặng về việc phát triển văn phạm và các mô hình ngôn ngữ, hoặc là thủ công [24] Thu thập
dữ liệu hội thoại với phiên bản đầu tiên của một hệ thống được triển khai thường
có thiếu sót: chất lượng dữ liệu thu thập có thể phải chịu những bất cập của hệ thống chính nó, và người dùng có thể chịu ảnh hưởng ngôn ngữ của chúng để điều chỉnh cho những khuyết điểm của hệ thống trong việc theo hết một cuộc đối thoại Kết quả là, tốc độ của tập dữ liệu có thể chậm hơn so với mong muốn Cuối cùng, quá trình phát triển tốn kém này phải được lặp đi lặp lại trên một lần nữa cho mỗi miền hoặc hệ thống mới, hoặc ngay cả khi chức năng mới được thêm vào
1.1 Hệ thống hướng nhiệm vụ và hướng hội thoại
Các hệ thống trả lời tự động giao tiếp với người dùng bằng ngôn ngữ tự nhiên (văn bản, giọng nói, hoặc cả hai) thường được chia vào hai nhóm chính:
Hướng nhiệm vụ hoặc hướng hội thoại:
Các hệ thống hướng nhiệm vụ được thiết kế cho một tác vụ cụ thể và được thiết lập để có các cuộc hội thoại ngắn (từ một tương tác đơn lẻ đến các hàng loạt các tương tác liên tiếp) để lấy thông tin từ người dùng để giúp hoàn thành tác vụ
Ngày nay mà chúng ta có thể thấy sự hiện diện của chúng trên các thiết bị
di động hoặc trên bộ điều khiển gia đình (Siri, Cortana, Alexa, Google Home, v.v.) mà các hệ thốnghội thoại có thể đưa ra chỉ dẫn tìm đường, điều khiển thiết
bị gia đình, tìm nhà hàng hoặc giúp gọi điện thoại hoặc gửi văn bản Các công ty triển khai các tác tử đàm thoại trên trang web của họ để giúp khách hàng trả lời các câu hỏi hoặc giải quyết các vấn đề một cách tự động Tác tử đàm thoại đóng một vai trò quan trọng như một giao diệncho robot để có thể giao tiếp
Hệ thống hướng hội thoại là các hệ thống được thiết kế cho các cuộc hội thoại mở rộng, được cài đặt để mô phỏng các cuộc hội thoại không có cấu trúc
Trang 16hoặc mô phỏng lại đặc trưng của sự tương tác giữa người và người, thay vì tập trung vào một nhiệm vụ cụ thể như đặt vé máy bay Các hệ thống này thường có giá trị giải trí, chẳng hạn như hệ thống Microsoft Xiao XiaoIce (Little Bing) (Microsoft, 2014), trò chuyện với mọi người trên nền tảng nhắn tin văn bản
Trên phương tiện truyền thông và trong công nghiệp, các tác tử đàm thoại người-máy thường được gọi bằng thuật ngữ Chatbots, và các chương trình này, cũng thường cố gắng vượt qua các bài kiểm tra thử nghiệm Turing khác nhau
Tuy nhiên, một hệ thống đầu tiên rất sớm, ELIZA (Weizenbaum, 1966), những Chatbots cũng đã được sử dụng cho các mục đích thực tế, chẳng hạn như kiểm tra các lý thuyết về tư vấn tâm lý
1.2 Tình hình nghiên cứu trong và ngoài nước
Việc nghiên cứu vềhệ thống trả lời tự động có ý nghĩa trong khoa học và thực tế Đã có rất nhiều các hội nghị thường niên về xử lý ngôn ngữ tự nhiên, khai phá dữ liệu, xử lý dữ liệu lớn, tương tác người máy, … như TREC, CLEF, tại Việt Nam có KSE, RIVF, ATC, …
Theo ý tưởng của Russellvà cộng sự [25], thì một hệ thống AI phải được
kiểm tra (hành động dưới sự ràng buộc hình thức và phù hợp với các điều kiện
kỹ thuật); phải được xác nhận (không theo đuổi các hành vi không mong muốn dưới sự ràng buộc trước); phải an toàn (ngăn chặn các thao tác có chủ ý của các bên thứ ba, hoặc bên ngoài hoặc bên trong); và phải được kiểm soát (con người
cần phải có cách để thiết lập lại kiểm soát nếu cần thiết)
Thiết kế hệ thống đối thoại là một nhiệm vụ đầy thách thức và là một trong những mục tiêu ban đầu của trí tuệ nhân tạo (Turing, 1950) [26] Trong nhiều thập kỷ, việc thiết kế tác nhân đối thoại đã giúp các hệ thống dựa trên cơ
sở tri thức và cơ chế dựa trên luật Rule-based để hiểu các thông điệp đầu vào của con người và tạo ra các phản hồi đáp ứng hợp lý [27,28,29] Phương pháp tiếp cận hướng dữ liệu nhấn mạnh vào việc học trực tiếp từ các tập ngữ liệu của các cuộc đối thoại tiếng nói hoặc văn bản chữ viết Gần đây, phương pháp này
đã đạt được hiệu quả vì lợi thế dữ liệu phong phú [23], sức mạnh tính toán, và các thuật toán học tốt hơn [30,31]
Trang 17Ritter và cộng sự (2010) [32] đã đề xuất phương pháp tiếp cận hướng dữ liệu cho việc xây dựng hệ thống đối thoại, và họ đã trích xuất ra 1,3 triệu cuộc hội thoại từ Twitter với mục đích là phát hiện ra các hành động trong cuộc hội thoại Bằng việc xây dựng dựa trên sự tương đồng về phân phối trong khuôn khổ
mô hình không gian vector, Banchs và Li (2012) [33] đã xây dựng một công cụ tìm kiếm để lấy câu trả lời thích hợp cho bất kỳ một thông điệp đầu vào Phương pháp tiếp cận khác tập trung vào nhiệm vụ trên một lĩnh vực cụ thể như các trò chơi [34], và các nhà hàng ăn uống (2016) [35,36]
Việc xây dựng các chương trình Trả lời tự động và Tác tử đàm thoại (conversational agents) đã được theo đuổi bởi nhiều nhà nghiên cứu trong nhiều thập kỷ qua, và rất nhiều nghiên cứu khác không được đề cập trong danh mục tham khảo Tuy nhiên, hầu hết các hệ thống hội thoại này đòi hỏi một quy trình
xử lý khá phức tạp qua nhiều giai đoạn [37, 38]
Trang 182 Xử lý ngôn ngữ tự nhiên và ứng dụng
2.1 Sơ lược về ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP), là một lĩnh vực khoa học máy tính, kỹ thuật thông tin và trí tuệ nhân tạo tập trung vào nghiên cứu các tương tác về mặt ngôn ngữ giữa máy tính và con người, cụ thể hơn là làm thế nào để lập trình cho máy tính xử lý và phân tích một lượng lớn
dữ liệu ngôn ngữ tự nhiên
Theo cách hiểu khác, NLP quan tâm đến việc làm thế nào để máy tính hiểu và tận dụng được các tập dữ liệu sẵn có dưới dạng ngôn ngữ tự nhiên NLP
đã được ứng dụng rộng rãi trong thực tế nhằm: tiết kiệm sức lao động, thúc đẩy các ngành nghề kinh doanh mới, và giúp các nhà hoạch định chiến lược trong việc đưa ra quyết định, …
Ngôn ngữ tự nhiên không giống với ngôn ngữ nhân tạo như ngôn ngữ máy tính (C, PHP, …) Trên thế giới hiện nay có khoảng 7000 loại ngôn ngữ
Có nhiều cách để phân loại, một số cách phân loại ngôn ngữ phổ biến như dựa vào: nguồn gốc, đặc điểm, …
Phân loại ngôn ngữ theo nguồn gốc:
1 Ấn – Âu : Dòng Ấn độ, Hy lạp, German, …
2 Xê-mít (Semite): Dòng Semite, Do Thái, Ả Rập, Ai cập, Kusit, …
3 Thổ: Thổ Nhĩ Kỳ
4 Hán Tạng (Tạng-Miến): Dòng Hán, Tạng-Miến, …
5 Nam Phương: Dòng Nam-Thái, Nam Á (Tiếng Việt)
Phân loại ngôn ngữ theo đặc điểm:
1 Hòa kết (Flexional): Đức, Anh, Nga…
2 Chắp dính (Agglutinate): Thổ Nhĩ Kỳ, Nhật Bản, Triều Tiên, …
3 Đơn lập (Isolate): Tiếng Việt, Hán, …
4 Tổng hợp (Polysynthetic): Chukchi, Aniu…
Do đó tiếng Việt được xếp vào loại đơn lập – tức phi hình thái, không biến hình Cùng với đó, tiếng Việt được viết theo trật tự S – V – O (subject (S), verb (V) and object (O))
Trang 19Bảng 1 Một vài so sánh các cách sắp xếp trật tự câu
2 Loại bỏ dấu câu (nếu không thực hiện tách câu)
3 Loại bỏ các kí tự đặc biệt biệt, các chữ số, phép tính toán số học
4 Loại bỏ các từ dừng stopword (những từ xuất hiện hầu hết trong các văn bản) không có ý nghĩa khi tham gia vào phân loại văn bản
5 Các kỹ thuật tinh chỉnh khác dựa trên kinh nghiệm
2.3.1 Chuẩn hóa và biến đổi văn bản
Một trong những nhiệm vụ đầu tiên trong việc xử lý phân loại văn bản là chọn được một mô hình biểu diễn văn bản thích hợp Một văn bản ở dạng thô (dạng chuỗi) cần được chuyển sang một mô hình khác để tạo thuận lợi cho việc biểu diễn và tính toán
Tuỳ thuộc vào từng thuật toán phân loại khác nhau mà chúng ta có mô hình biểu diễn riêng Một trong những mô hình đơn giản và thường được sử dụng trong nhiệm vụ này là mô hình không gian vector Một văn bản trong
Trang 20nhiệm vụ này được biểu diễn theo dạng , với là một vector n chiều để
đo lường giá trị của phần tử văn bản
2.3.2 Biểu diễn văn bản dưới dạng vector
Mô hình không gian vector là một trong những mô hình được sử dụng rộng rãi nhất cho việc tìm kiếm (truy hồi) thông tin Nguyên nhân chính là bởi vì
sự đơn giản của nó
Trong mô hình này, các văn bản được thể hiện trong một không gian có
số chiều lớn, trong đó mỗi chiều của không gian tương ứng với một từ trong văn bản Phương pháp này có thể biểu diễn một cách hình tượng như sau : mỗi văn bản D được biểu diễn dưới dạng ⃗ (vector đặc trưng cho văn bản D) Trong đó, ⃗ , và n là số lượng đặc trưng hay số chiều của vector văn bản,
là trọng số của đặc trưng thứ i (với 1≤ i ≤n)
Như vậy, nếu trong kho ngữ liệu của quá trình huấn luyện nhiều văn bản,
ta kí hiệu Dj, là văn bản thứ j trong tập ngữ liệu, và vector
là vector đặc trưng cho văn bản Dj, và là trọng số thứ i của vector văn bản j
3 Bài toán phân loại văn bản
3.1 Bài toán phân loại văn bản
Trong lĩnh vực xử lý ngôn ngữ tự nhiên, phân loại văn bản là một bài toán
xử lý văn bản cổ điển, có nhiệm vụ là ánh xạ một văn bản vào một chủ đề đã biết trong một tập hữu hạn các chủ đề dựa trên ngữ nghĩa của văn bản Theo
Yang & Xiu (1999)[1] “Phân loại văn bản tự động là việc gán các nhãn phân
loại lên một văn bản mới dựa trên mức độ tương tự của văn bản đó so với các văn bản đã được gán nhãn trong tập huấn luyện” Ví dụ một bài viết trong một
tờ báo có thể thuộc một (hoặc một vài) chủ đề nào đó (như thể thao, sức khỏe, công nghệ thông tin,…) Việc tự động phân loại văn bản vào một chủ đề nào đó giúp cho việc sắp xếp, lưu trữ và truy vấn tài liệu dễ dàng hơn về sau
Bài toán phân loại văn bản, thực chất, có thể xem là bài toán phân lớp Phân loại văn bản tự động là việc gán các nhãn phân loại lên một văn bản mới dựa trên mức độ tương tự của văn bản đó so với các văn bản đã được gán nhãn trong tập huấn luyện Các ứng dụng của phân lớp văn bản thường rất đa dạng
Trang 21như: lọc email spam, phân tích cảm xúc (sentiment analysis), phân loại tin tức,
…
Đã cĩ nhiều cơng trình nghiên cứu đạt những kết quả khả quan, nhất là đối với phân loại văn bản tiếng Anh Tuy vậy, các nghiên cứu và ứng dụng đối với văn bản tiếng Việt cịn nhiều hạn chế do khĩ khăn về tách từ và câu Một số cơng trình nghiên cứu trong nước với các hướng tiếp cận khác nhau cho bài tốn phân loại văn bản, như: phân loại với máy học vectơ hỗ trợ [39], cách tiếp cận
sử dụng lý thuyết tập thơ [40], cách tiếp cận thống kê hình vị [41], cách tiếp cận
sử dụng phương pháp học khơng giám sát và đánh chỉ mục [42], cách tiếp cận theo luật kết hợp [43] Theo các kết quả trình bày trong các cơng trình đĩ thì những cách tiếp cận nêu trên đều cho kết quả khá tốt
3.2 Một số thuật tốn phân loại văn bản
3.2.1 Thuật tốn Naive Bayes
Naive Bayes đã được nghiên cứu rộng rãi từ những năm 1950 Được dùng lần đầu tiên trong lĩnh vực phân loại vào đầu những năm 1960 Sau đĩ nĩ trở nên phổ biến và được sử dụng rộng rãi trong lĩnh vực này cho đến ngày nay
Ý tưởng cơ bản của cách tiếp cận này là sử dụng xác suất cĩ điều kiện giữa từ hoặc cụm từ và chủ đề để dự đốn xác suất chủ đề của một tập tin cần phân loại Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng
sự xuất hiện của tất cả các từ trong tập tin đều độc lập với nhau Ví dụ một loại trái cây cĩ thể được cho là quả táo nếu nĩ đỏ, trịn và đường kính là 10cm Giải thuật Nạve Bayes sẽ cho rằng mỗi tính năng này đều đĩng gĩp một cách độc lập
để xác suất trái cây này là quả táo bất kể sự hiện diện hay vắng mặt của các tính năng khác
Thuật tốn Naive Bayes dựa trên định lý Bayes được phát biểu như sau :
|
| Trong đĩ:
P(Y|X) là xác suất X thuộc lớp Y
Trang 22 P(X|Y) xác suất một phần tử thuộc lớp Y, và phần từ đó có đặc điểm
| |
Trong đó: P(Nam|Phương): Xác suất Phương là Nam
P (Phương|Nam): xác suất những người phái nam được gọi Phương (có tên Phương)
P(Nam): xác suất phái nam trong tập dữ liệu
P(Phương): xác suất tên Phương trong tập dữ liệu
Tương tự ta có:
| |
Giả sử ta có bảng dữ liệu tên và giới tính như sau :
Bảng 2.Dữ liệu tập mẫu tính xác suất theo phương pháp Naive Bayes
Trang 23Thuật toán Naive Bayes Classification được áp dụng vào các loại ứng dụng sau:
Real time Prediction: NBC chạy khá nhanh nên nó thích hợp áp dụng ứng dụng nhiều vào các ứng dụng chạy thời gian thực, như hệ thống cảnh báo, các hệ thống trading …
Multi class Prediction: Nhờ vào định lý Bayes mở rộng ta có thể ứng dụng vào các loại ứng dụng đa dự đoán, tức là ứng dụng có thể dự đoán nhiều giả thuyết mục tiêu
Text classification/ Spam Filtering/ Sentiment Analysis: NBC cũng rất thích hợp cho các hệ thống phân loại văn bản hay ngôn ngữ tự nhiên vì tính chính xác của nó lớn hơn các thuật toán khác Ngoài ra các hệ thống chống thư rác cũng rất ưu chuộng thuật toán này Và các hệ thống phân tích tâm lý thị trường cũng áp dụng NBC để tiến hành phân tích tâm lý người dùng ưu chuộng hay không ưu chuộng các loại sản phẩm nào từ việc phân tích các thói quen và hành động của khách hàng
Recommendation System: Naive Bayes Classifier và Collaborative Filtering được sử dụng rất nhiều để xây dựng cả hệ thống gợi ý, ví dụ như xuất hiện các quảng cáo mà người dùng đang quan tâm nhiều nhất
từ việc học hỏi thói quen sử dụng internet của người dùng, hoặc như ví
Trang 24dụ đầu bài viết đưa ra gợi ý các bài hát tiếp theo mà có vẻ người dùng
sẽ thích trong một ứng dụng nghe nhạc
3.2.2 Thuật toán SVM
SVM (Support Vector Machine) là một thuật toán học máy có giám sát được sử dụng rất phổ biến ngày nay trong các bài toán phân lớp (classification) hay hồi qui (Regression)
SVM được đề xuất bởi Vladimir N Vapnik [5] và các đồng nhiệp của ông vào năm 1963 tại Nga dựa trên lý thuyết học thống kê và sau đó trở nên phổ biến trong những năm 90 nhờ ứng dụng giải quyết các bài toán phi tuyến tính (nonlinear) bằng phương pháp Kernel Trick [4] Có nhiều tiềm năng phát triển
về mặt lý thuyết cũng như ứng dụng trong thực tiễn
Ý tưởng của phương pháp này là cho trước một tập huấn luyện được biểu diễn trong không gian véc-tơ, trong đó mỗi văn bản được xem như là một điểm
trong không gian này Phương pháp này tìm ra một mặt siêu phẳng h quyết định
tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng, tạm gọi là lớp + (dương) và lớp – (âm) Như vậy, bộ phân loại SVM là một mặt siêu phẳng tách các mẫu thuộc lớp dương ra khỏi cách mẫu thuộc lớp âm với độ chênh lệch lớn nhất Độ chênh lệch này hay còn gọi là khoảng cách biên được xác định bằng khoảng cách giữa mẫu dương và mẫu âm gần mặt siêu phẳng nhất (hình)
Khoảng cách này càng lớn các mẫu thuộc hai lớp càng được phân chia rõ ràng, nghĩa là sẽ đạt được kết quả phân loại tốt Mục tiêu của thuật toán SVM là tìm được khoảng cách biên lớn nhất để tạo được kết quả phân loại tốt
Với bài toán phân loại nhị phân tuyến tính ta cần vẽ được mặt phân tách (với không gian 2 chiều thì mặt phẳng này là đường phân tách):
để phân biệt được dữ liệu Khi đó dấu của hàm ước lượng
sẽ thể hiện được điểm dữ
liệu x nằm ở cụm dữ liệu nào
Trang 25Hình 1: Mặt phân cách dữ liệu
Ta có thể thấy có nhiều mặt phân tách thoả mãn được việc này và đương nhiên là nếu chọn được mặt mà phân tách tốt thì kết quả phân loại của ta sẽ tốt hơn Một lẽ rất tự nhiên là dường như mặt nằm vừa khít giữa 2 cụm dữ liệu sao cho nằm xa các tập dữ liệu nhất là mặt tốt nhất
Hình 2 Lề siêu phẳng
Trang 26SVM chính là một biện pháp để thực hiện được phép lấy mặt phẳng như
vậy
Để xác định mặt phẳng kẹp giữa đó, trước tiên ta cần phải xác định được
2 mặt biên gốc như 2 đường nét đứt ở trên Các điểm dữ liệu gần với mặt biên gốc này nhất có thể xác định bằng:
Để dễ dàng cho việc tính toán thì người ta sẽ chọn w và b sao cho các
điểm gần nhất (mặt biên gốc) thoả mãn: , tức là:
Đương nhiên là có thể tồn tại nhiều cặp đôi mặt biên gốc như vậy và tồn tại nhiều mặt phân đôi kẹp giữa các mặt biên gốc đó Nên ta phải tìm cách xác định được mặt kẹp giữa tốt nhất bằng cách lấy cặp có khoảng cách xa nhau nhất
Lẽ này là đương nhiên bởi cặp có khoảng cách xa nhất đồng nghĩa với chuyện tập dữ liệu được phân cách xa nhất
Như vậy, ta có thể thiết lập thông số tính khoảng cách đó bằng phép lấy
độ rộng biên từ mặt biên gốc tới mặt phân tách cần tìm
Bài toán của ta bây giờ sẽ là cần xác định w và b sao cho ρ đạt lớn nhất và
các điểm dữ liệu ρ đạt lớn nhất đồng nghĩa với việc ∥w∥ đạt nhỏ nhất Tức là:
Trang 27Ở đây, m là số lượng các điểm dữ liệu còn việc lấy bình phương
và chia đôi nhằm dễ dàng tính toán và tối ưu lồi
Bài toán này có thể giải thông qua bài toán đối ngẫu của nó và sử dụng phương pháp nhân tử Lagrance Lúc này, ta sẽ cần tìm các giá trị λ như sau:
Việc giải λ có thể được thực hiện bằng phương pháp quy hoạch động bậc
2 (Quadratic Programing) Sau khi tìm được λ thì ta có các tham số :
Ở đây, là một điểm dữ liệu bất kì nào đó nằm trên đường biên
gốc Điểm dữ liệu này còn được gọi là Support Vector Tên của phương pháp
SVM cũng từ đây mà ra Tuy nhiên, thường người ta tính b bằng phép lấy trung bình tổng của tất cả các bi Giả sử, ta có tập các Support Vectors thì:
Khi đó, một điểm dữ liệu mới sẽ được phân loại dựa theo:
Trang 28Như vậy, chỉ cần các điểm Support Vector trên đường biên gốc là ta có thể ước lượng được các tham số tối ưu cho bài toán Việc này rất có lợi khi tính toán giúp phương pháp này tiết kiệm được tài nguyên thực thi
Dữ liệu chồng nhau và phương pháp biên mềm
Trong thực tế tập dữ liệu thường không được sạch như trên mà thường có nhiễu Nhiễu ở đây là dạng dữ liệu chồng chéo lên nhau như hình bên dưới
Hình 3 Dữ liệu phi tuyến
Với dạng dữ liệu như vậy thì mặt phân tách tìm được sẽ khó mà tối ưu được, thậm chí là không tìm được mặt phân tách luôn Giờ vấn đề đặt ra là làm sao triệt được các nhiễu này Tức là tính toán bỏ qua được các nhiễu này khi huấn luyện
Một cách hình thức, các điểm nhiễu là những điểm mà không đảm bảo điều kiện Khi đó bằng phép thêm biến lùi (Slack
Variables) sao cho ra có được ràng buộc:
Giờ, hàm mục tiêu tối ưu được viết lại như sau :
Trang 29C ở đây là hệ số cân bằng giữa nhiễu và không nhiễu Nếu C càng lớn thì các nhiễu càng nhiều điểm được coi là nhiễu hơn tức là nhiễu được coi trọng hơn
Giải bài toán này, nghiệm tương tự như cách tính ở trên chỉ khác một điều
là tập các điểm support vectors được mở rộng thêm tới các điểm ra miễn sao nó thoả mãn điều kiện:
Tức là :
Khi đó, tham số được ước lượng như sau:
Với tập mở rộng như vậy người ta gọi phương pháp này là phương
pháp biên mềm (Soft-Margin SVM) Còn phương pháp truyền thống là biên cứng (Hard-Margin SVM)
Trang 30Dữ liệu phân tách phi tuyến và phương pháp kernel
Hình 4 Không gian dữ liệu phi tuyến
Đối với các bài toán có không gian dữ liệu là phi tuyến tính (non-linear) chúng ta không thể tìm được một siêu phẳng thỏa mãn bài toán
Để giải quyết bài toán trong trường hợp này chúng ra cần biểu diễn (ánh xạ) dữ liệu từ không gian ban đầu X sang không gian F bằng một hàm ánh xạ phi tuyến:
Trong không gian F tập dữ liệu có thể phân tách tuyến tính Nhưng nảy sinh một vẫn đề lớn đó là trong không gian mới này số chiều của dữ liệu tăng lên rất nhiều so với không gian ban đầu làm cho chi phí tính toán vô cùng tốn kém Rất may trong bài toán SVM người ta đã tìm ra một cách không cần phải
Trang 31tính , và hàm ánh xạ mà vẫn tính được Phương pháp này gọi là Kernel Trick
Khi đó tối ưu biên mềm được viết dưới dạng:
Khi đó tham số tương ứng sẽ là :
Điểm dữ liệu mới được phân lớp với:
Như vậy, chỉ cần hàm Kernel để tính tích vô hướng giữa các điểm
dữ liệu trong không gian mới là ta có thể ước lượng được một điểm mới nằm trong phân lớp nào
Việc sử dụng hàm Kernel ở đây sẽ giúp giảm được công số tính từng hàm Φ và tích vô hướng giữa chúng Nó có thể tính được cho bất kì không gian nào rất
Trang 32hiệu quả Kể cả các không gian với số chiều vô hạn Bởi nó chỉ cần tính tích vô hương giữa các điểm dữ liệu mà thôi Tất nhiên để làm được điều đó thì Kernel phải thoả mãn điều kiện Mercer [7]
Khi làm việc người ta thường chọn một hàm Kernel thông dụng sau:
Phương pháp SVM là một cách hiệu quả cho bài toán phân lớp mà chỉ sử dụng một lượng ít dữ liệu là các điểm support vectors nằm trên đường biên gốc
và phần mở rộng
3.2.3 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
xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống 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 để xử lý thông tin ANN hoạt động giống như bộ não của con người, được học bởi kinh nghiệm (thông qua việc 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 (unseen data)
Một mạng ron là một nhóm các nút nối với nhau, mô phỏng mạng ron thần kinh của não người Mạng nơ ron nhân tạo được thể hiện thông qua ba thành phần cơ bản: mô hình của nơ ron, cấu trúc và sự liên kết giữa các nơ ron Trong nhiều trường hợp, mạng nơ ron nhân tạo là một hệ thống thích ứng, tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chạy qua mạng trong quá trình học
Trang 33nơ-Hình 5 Kiến trúc mạng nơ-ron nhân tạo
Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer, Hidden Layer và Output Layer
Trong đó, lớp ẩn (Hidden Layer) gồm các nơ-ron, nhận dữ liệu input từ
các Nơ-ron ở lớp (Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo Trong một mạng ANN có thể có nhiều Hidden Layer
Lợi thế lớn nhất của các mạng ANN là khả năng được sử dụng như một
cơ chế xấp xỉ hàm tùy ý mà “học” được từ các dữ liệu quan sát Tuy nhiên, sử dụng chúng không đơn giản như vậy, một số các đặc tính và kinh nghiệm khi thiết kế một mạng nơ-ron ANN
Chọn mô hình: Điều này phụ thuộc vào cách trình bày dữ liệu và các
ứng dụng Mô hình quá phức tạp có xu hướng dẫn đền những thách thức trong quá trình học
Cấu trúc và sự liên kết giữa các nơ-ron
Thuật toán học: Có hai vấn đề cần học đối với mỗi mạng ANN, đó là
học tham số của mô hình (parameter learning) và học cấu trúc (structure learning) Học tham số là thay đổi trọng số của các liên kết giữa các nơ-ron trong một mạng, còn học cấu trúc là việc điều chỉnh
Trang 34cấu trúc mạng bằng việc thay đổi số lớp ẩn, số nơ-ron mỗi lớp và cách liên kết giữa chúng Hai vấn đề này có thể được thực hiện đồng thời hoặc tách biệt
Nếu các mô hình, hàm chi phí và thuật toán học được lựa chọn một cách thích hợp, thì mạng ANN sẽ cho kết quả có thể vô cùng mạnh mẽ và hiệu quả
Hoạt động của mạng nơ-ron nhân tạo:
Hình 6 Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo
Inputs: Mỗi Input tương ứng với 1 đặc trưng của dữ liệu Ví dụ như trong
ứng dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay không thì mỗi input là một thuộc tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,…
Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ
như với bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì output là yes hoặc no
Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan
trọng của một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu vào đối với quá trình xử lý thông tin chuyển đổi dữ liệu từ Layer này sang layer khác Quá trình học của ANN thực ra là quá trình điều chỉnh các trọng số Weight của các dữ liệu đầu vào để có được kết quả mong muốn
Trang 35Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input
được đưa vào mỗi Nơ-ron Hàm tổng của một Nơ-ron đối với n input được tính theo công thức sau:
∑
Transfer Function (Hàm chuyển đổi): Hàm tổng của một nơ-ron cho biết
khả năng kích hoạt của nơ-ron đó còn gọi là kích hoạt bên trong Các nơ-ron này
có thể sinh ra một output hoặc không trong mạng ANN, nói cách khác rằng có thể output của 1 Nơ-ron có thể được chuyển đến layer tiếp trong mạng Nơ-ron theo hoặc không Mối quan hệ giữa hàm tổng và kết quả output được thể hiện bằng hàm chuyển đổi
Việc lựa chọn hàm chuyển đổi có tác động lớn đến kết quả đầu ra của
mạng ANN Hàm chuyển đổi phi tuyến được sử dụng phổ biến trong mạng
ANN là hoặc sigmoid hoặc tanh
Trong đó, hàm tanh là phiên bản thay đổi tỉ lệ của sigmoid , tức là khoảng
giá trị đầu ra của hàm chuyển đổi thuộc khoảng [-1, 1] thay vì [0,1] nên chúng còn gọi là hàm chuẩn hóa (Normalized Function)
Kết quả xử lý tại các nơ-ron (Output) đôi khi rất lớn, vì vậy hàm chuyển đổi được sử dụng để xử lý output này trước khi chuyển đến layer tiếp theo Đôi khi thay vì sử dụng Transfer Function người ta sử dụng giá trị ngưỡng (Threshold value) để kiểm soát các output của các neuron tại một layer nào đó trước khi chuyển các output này đến các Layer tiếp theo Nếu output của một neuron nào đó nhỏ hơn Threshold thì nó sẻ không được chuyển đến Layer tiếp theo
Mạng nơ-ron của chúng ta dự đoán dựa trên lan truyền thẳng (forward propagation) là các phép nhân ma trận cùng với activation function để thu được
Trang 36kết quả đầu ra Nếu input x là vector 2 chiều thì ta có thể tính kết quả dự đoán ̂ bằng công thức sau
̂ Trong đó, là input của layer thứ , là output của layer thứ sau khi áp dụng activation function là các thông số (parameters) cần tìm của
mô hình mạng nơ-ron
Huấn luyện để tìm các thông số cho mô hình tương đương với việc tìm các thông số , sao cho độ lỗi của mô hình đạt được là thấp nhất Ta
gọi hàm độ lỗi của mô hình là loss function Đối với softmax function, ta
dùng cross-entropy loss (còn gọi là negative log likelihood)
Nếu ta có N dòng dữ liệu huấn luyện, và C nhóm phân lớp (trường hợp này là hai lớp nam, nữ), khi đó loss function giữa giá trị dự đoán ̂ và được tính như sau
̂ ∑ ∑ ̂
Ý nghĩa công thức trên nghĩa là: lấy tổng trên toàn bộ tập huấn luyện và cộng dồn vào hàm loss nếu kết quả phân lớp sai Độ dị biệt giữa hai giá trị ̂ và càng lớn thì độ lỗi càng cao Mục tiêu của chúng ta là tối thiểu hóa hàm lỗi này Ta có thể sử dụng phương pháp gradient descent để tối tiểu hóa hàm lỗi Có hai loại gradient descent, một loại với fixed learning rate được gọi
là batch gradient descent, loại còn lại có learning rate thay đổi theo quá trình huấn luyện được gọi là SGD (stochastic gradient descent) hay minibatch gradient descent
Gradient descent cần các gradient là các vector có được bằng cách lấy đạo hàm của loss function theo từng thông số , , , Để tính các gradient
này, ta sử dụng thuật toán backpropagation (lan truyền ngược) Đây là cách hiệu
quả để tính gradient khởi điểm từ output layer
Trang 37Áp dụng backpropagation ta có các đại lượng:
3.3 Các phương pháp đánh giá một hệ thống phân lớp
Khi xây dựng một mô hình phân lớp, chúng ta cần một phương pháp đánh giá để xem mô hình sử dụng có hiệu quả không và để so sánh khả năng của các
mô hình Trong phần này sẽ giới thiệu các phương pháp đánh giá các mô hình phân lớp
Hiệu năng của một mô hình thường được đánh giá dựa trên tập dữ liệu kiểm thử (test data) Cụ thể, giả sử đầu ra của mô hình khi đầu vào là tập kiểm
thử được mô tả bởi vector y_pred - là vector dự đoán đầu ra với mỗi phần tử là
class được dự đoán của một điểm dữ liệu trong tập kiểm thử Ta cần so sánh
giữa vector dự đoán y_pred này với vector class thật của dữ liệu, được mô tả bởi vector y_true
Ví dụ với bài toán có 3 lớp dữ liệu được gán nhãn là 0, 1, 2 Trong bài
toán thực tế, các class có thể có nhãn bất kỳ, không nhất thiết là số, và không
nhất thiết bắt đầu từ 0 Chúng ta hãy tạm giả sử các class được đánh số
từ 0 đến C-1 trong trường hợp có C lớp dữ liệu Có 10 điểm dữ liệu trong tập
kiểm thử với các nhãn thực sự được mô tả bởi y_true = [0, 0, 0, 0, 1, 1, 1, 2, 2, 2] Giả sử bộ phân lớp chúng ta đang cần đánh giá dự đoán nhãn cho các điểm này là y_pred = [0, 1, 0, 2, 1, 1, 0, 2, 1, 2]
Có rất nhiều cách đánh giá một mô hình phân lớp Tuỳ vào những bài toán khác nhau mà chúng ta sử dụng các phương pháp khác nhau Các phương pháp thường được sử dụng là: