Ứng dụng xử lý ngôn ngữ tự nhiên trong phòng chống dịch
- 85 trang
- file .pdf
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
ỨNG DỤNG XỬ LÝ NGÔN NGỮ TỰ NHIÊN
TRONG PHÒNG CHỐNG DỊCH
NGUYỄN PHÙNG HẢI CHUNG
[email protected]
Ngành Toán Tin
Chuyên ngành Toán Tin
Giảng viên hướng dẫn: TS. LÊ CHÍ NGỌC
Bộ môn: Toán Tin Chữ ký của GVHD
Viện: Toán ứng dụng và tin học
HÀ NỘI, 2022
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
o0o
ỨNG DỤNG XỬ LÝ NGÔN NGỮ TỰ NHIÊN
TRONG PHÒNG CHỐNG DỊCH
LUẬN VĂN THẠC SĨ
Ngành Toán Tin
Chuyên ngành Toán Tin
Giảng viên hướng dẫn: TS. LÊ CHÍ NGỌC
Học viên thực hiện: NGUYỄN PHÙNG HẢI CHUNG
Mã học viên: 202463M
Lớp: Toán Tin 20B
HÀ NỘI, 2022
1
Lời cảm ơn
Em xin gửi lời cảm ơn đến TS. Lê Chí Ngọc, người thầy đã hướng
dẫn và giúp đỡ em trong suốt thời gian học tập tại trường. Nhờ sự chỉ
bảo của thầy cũng như kiến thức thầy đã truyền tải, em đã có thể hoàn
thành luận văn của mình. Tuy vậy, vì kiến thức còn hạn chế, luận văn
không tránh khỏi thiếu sót, em mong muốn được nghe ý kiến đóng góp
từ thầy, cô và người đọc.
Em cũng xin gửi lời cảm ơn đến các thầy cô tại viện Toán ứng dụng
và Tin học - Đại học Bách Khoa Hà Nội, đã giảng dạy và giúp đỡ em
cùng các bạn học trong thời gian chúng em học tập và nghiên cứu tại
trường.
Em xin chân thành cảm ơn!
Hà Nội, 12 tháng 10 năm 2022
Tác giả luận văn
Nguyễn Phùng Hải Chung
Tóm tắt nội dung luận văn
1. Trình bày về ảnh hưởng của COVID-19 đối với con người và xã
hội. Đưa ra lý do của việc cần có một ứng dụng hỗ trợ con người
trong phòng chống dịch bệnh.
2. Trình bày cơ sở lý thuyết, các khái niệm về máy học và xử lý ngôn
ngữ tự nhiên. Chỉ ra bài toán nhận dạng thực thể được đặt tên có
thể áp dụng vào phương thức phòng dịch. Ngoài ra, trình bày về
một số mô hình, thuật toán học sâu quan trọng và phương pháp
đánh giá các mô hình để làm cơ sở cho nghiên cứu.
3. Đề xuất một số mô hình phù hợp và mạnh mẽ để áp dụng cho bài
toán nhận dạng thực thể được đặt tên.
4. Trình bày và phân tích hệ thống sử dụng xử lý ngôn ngữ tự nhiên
với các ứng dụng trong phòng chống dịch. Trong đó, đề xuất và
công bố một tập dữ liệu mới về nhận dạng thực thể được đặt tên
cho tiếng Việt với chủ đề COVID-19. Tiến hành huấn luyện mô
hình, thử nghiệm và đánh giá trên tập dữ liệu mới. Qua đó, phân
tích về các hạn chế và khả năng ứng dụng vào thực tiễn.
Hà Nội, 12 tháng 10 năm 2022
Tác giả luận văn
Nguyễn Phùng Hải Chung
Mục lục
Ký hiệu và chữ viết tắt 1
Danh sách bảng 2
Danh sách hình vẽ 4
Mở đầu 8
1 Cơ sở lý thuyết 9
1.1 Máy học . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Xử lý ngôn ngữ tự nhiên . . . . . . . . . . . . . . . . . . 12
1.2.1 Khái quát về xử lý ngôn ngữ tự nhiên . . . . . . . 12
1.2.2 Tách từ . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.3 Nhúng từ . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Học sâu . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1 Thuật toán học Perceptron . . . . . . . . . . . . 17
1.3.2 Mạng truyền thẳng nhiều lớp . . . . . . . . . . . 19
1.3.3 Mạng hồi quy . . . . . . . . . . . . . . . . . . . . 20
1.3.4 Cơ chế chú ý . . . . . . . . . . . . . . . . . . . . 23
1.3.5 Mô hình Transformer . . . . . . . . . . . . . . . . 24
1.4 Bài toán nhận dạng thực thể được đặt tên . . . . . . . . 28
1.5 Các cách tiếp cận để giải các bài toán NER . . . . . . . 29
4
1.6 Phương pháp đánh giá mô hình . . . . . . . . . . . . . . 30
2 Mô hình được sử dụng 31
2.1 Học chuyển giao . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.1 Biểu diễn thể hiện mã hóa hai chiều từ Transformer 33
2.1.2 Phương pháp tiền huấn luyện tối ưu cho BERT -
RoBERTa . . . . . . . . . . . . . . . . . . . . . . 35
2.1.3 Mô hình đa ngôn ngữ kết hợp dựa trên RoBERTa 39
2.1.4 Mô hình ngôn ngữ dành cho tiếng Việt - PhoBERT 40
2.2 Một số mô hình hỗ trợ . . . . . . . . . . . . . . . . . . . 43
2.2.1 Thuật toán xếp hạng văn bản - BM25 . . . . . . 43
2.2.2 Trường xác suất có điều kiện . . . . . . . . . . . 45
3 Xây dựng hệ thống 47
3.1 Khảo sát các nghiên cứu liên quan . . . . . . . . . . . . 48
3.2 Thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . 49
3.3 Thu thập dữ liệu . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Các kiểu thực thể . . . . . . . . . . . . . . . . . . . . . . 51
3.5 Gán nhãn dữ liệu . . . . . . . . . . . . . . . . . . . . . . 54
3.6 Tiền xử lý dữ liệu . . . . . . . . . . . . . . . . . . . . . . 55
3.7 Huấn luyện và đánh giá . . . . . . . . . . . . . . . . . . 56
3.8 Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . 57
3.8.1 Phân tích lỗi . . . . . . . . . . . . . . . . . . . . 58
3.8.2 Ứng dụng trong thực tiễn . . . . . . . . . . . . . 60
Tổng kết 65
Chỉ mục 67
Tài liệu tham khảo 79
1
Ký hiệu và chữ viết tắt
NLP Xử lý ngôn ngữ tự nhiên (Natural Language Processing)
POS Từ loại (Part Of Speech)
ASR Nhận dạng tiếng nói tự động (Automatic Speech Recognition)
RNN Mạng neural hồi quy (Recurrent Neural Network)
CNN Mạng neural tích chập (Convolutional Neural Network)
GAN Mạng đối nghịch tạo sinh (Generative Adversarial Network)
PLA Thuật toán Perceptron (Perceptron Learning Algorithm)
MLP Mạng truyền thẳng nhiều lớp (Multi Layer Perceptron - MLP)
NER Nhận dạng thực thể được đặt tên (Named Entity Recognition)
HMM Mô hình Markov ẩn (Hidden Markov Model)
SVM Máy véc-tơ hỗ trợ (Support Vector Machine)
CRF Trường ngẫu nhiên có điều kiên (Conditional Random Field)
XLM-R XLM-RoBERTa
R tập các số thực
Rn không gian Euclide n chiều
x∈D x thuộc tập D
⟨x, y⟩ tích vô hướng của x và y
∥x∥ chuẩn Euclide của x
∇f (x) véc-tơ gradient của hàm f tại điểm x
v.đ.k viết tắt của cụm từ "với điều kiện"
2
Danh sách bảng
2.1 Kết quả của BERT trên tập dữ liệu GLUE[60]. . . . . . 35
2.2 Kết quả của BERT trên tập dữ liệu SQuAD 1.1[49]. . . . 36
2.3 Kết quả của BERT trên tập dữ liệu SQuAD 2.0[50]. . . . 36
2.4 Kết quả của BERT trên CoNLL-2003. . . . . . . . . . . 37
2.5 So sánh sự phức tạp trong huấn luyện dữ liệu (ppl) và độ
chính xác trên các tập dữ liệu với các kích thước lô (bsz)
và tỉ lệ học (lr). . . . . . . . . . . . . . . . . . . . . . . 37
2.6 So sánh các chiến lược huấn luyện có và không sử dụng
hàm mất mát từ việc dự đoán câu tiếp theo. . . . . . . 39
2.7 F1 theo hai phương pháp che tĩnh và động được so sánh
trên một số tập dữ liệu. [30] . . . . . . . . . . . . . . . . 39
2.8 Hiệu suất của PhoBERT trên bài toán POS tagging và
Dependency parsing . . . . . . . . . . . . . . . . . . . . 41
2.9 Hiệu suất của PhoBERT trên bài toán NER và NLI. . . 42
3.1 Mô tả các kiểu thực thể. . . . . . . . . . . . . . . . . . . 51
3.2 Thống kê tập dữ liệu. . . . . . . . . . . . . . . . . . . . . 52
3.3 Kết quả nhận dạng các thực thể với PhoBERTlarge -CRF+CSC
trên tập phát triển (trên) và tập kiểm thử (dưới). . . . . 59
3.4 Kết quả nhận dạng các thực thể cấp 1 trên tập phát triển. 61
3.5 Kết quả nhận dạng các thực thể cấp 1 trên tập kiểm thử. 62
3
3.6 Kết quả nhận dạng các thực thể cấp 2 trên tập phát triển. 63
3.7 Kết quả nhận dạng các thực thể cấp 2 trên tập kiểm thử. 64
4
Danh sách hình vẽ
1.1 Mô hình phân loại trong lĩnh vực xử lý ngôn ngữ tự nhiên. 12
1.2 Biểu diễn Perceptron dưới dạng mạng neural. . . . . . . 18
1.3 MLP với 2 lớp ẩn. . . . . . . . . . . . . . . . . . . . . . . 19
1.4 Mô hình dịch máy sử dụng kiến trúc RNN. . . . . . . . . 23
1.5 Mô hình sử dụng attention. Trong đó ai,j là điểm chú ý,
hi là trạng thái ẩn của bộ mã hóa, sj là trạng thái ẩn của
bộ giải mã, cj là véc-tơ ngữ cảnh và yj là Token được dự
đoán. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6 Kiến trúc Transformer [58] . . . . . . . . . . . . . . . . . 26
1.7 Minh họa Self-attention. . . . . . . . . . . . . . . . . . . 27
2.1 Học chuyển giao. . . . . . . . . . . . . . . . . . . . . . . 32
2.2 So sánh 88 ngôn ngữ trong Wiki-100 và CommonCrawl. . 41
2.3 Câu được phân đoạn cấp tiếng (trên) và phân đoạn theo
cấp từ (dưới). . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1 Hệ thống NER trong phòng chống COVID. . . . . . . . . 49
3.2 Thực thể và ngữ cảnh của nó không nằm trong cùng một
câu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3 Mô phỏng Cross-Sentence Context. . . . . . . . . . . . . 55
5
Mở đầu
Thế giới đã từng chứng kiến sự xuất hiện của đại dịch Hội chứng hô
hấp cấp tính nghiêm trọng (SARS) ở Trung Quốc vào năm 2002–2003
và Hội chứng hô hấp ở Trung Đông (MERS) trên bán đảo Ả Rập vào
năm 2012. Chúng đã để lại những hậu quả nghiệm trọng đối với đời sống
xã hội của con người. Trong giai đoạn 2019 đến nay, chủng vi rút mới
có tên là nCov - COVID-19 một lần nữa làm thế giới chao đảo. Trong
khi hai bệnh trước đây là do vi-rút Corona (CoV), là một họ vi-rút lớn
gây ra các bệnh từ cảm lạnh thông thường đến các bệnh nặng hơn, thì
COVID-19 mang dấu ấn của một chủng vi-rút mới, mà trước đây chưa
được xác định ở người. Mang đặc trưng bởi vi-rút gây ra dịch SARS,
nhiễm COVID-19 có các triệu chứng như cảm lạnh thông thường và
các triệu chứng hô hấp như ho khan, sốt và khó thở. Trong trường hợp
nghiêm trọng hơn, nó có thể gây viêm phổi, hội chứng hô hấp cấp tính
nghiêm trọng và tử vong.
Trường hợp đầu tiên của COVID-19 được báo cáo vào ngày 01 tháng
12 năm 2019 tại thành phố Vũ Hán, thành phố lớn nhất ở tỉnh Hồ Bắc
và là thành phố đông dân nhất ở miền trung Trung Quốc. Ngày 31 tháng
12 năm 2019, tổ chức Y tế Thế giới (WHO) đã chính thức được thông
báo về một nhóm các trường hợp viêm phổi ở thành phố Vũ Hán. Đến
ngày 20 tháng 1, WHO đã biết về các trường hợp được xác nhận nằm
6
ngoài Trung Quốc. Ngày 30 tháng 1 năm 2020, tiến sĩ Tedros Adhanom
Ghebreyesus, tổng giám đốc WHO, tuyên bố đợt bùng phát COVID-19
là tình trạng khẩn cấp về sức khỏe cộng đồng được quốc tế quan tâm,
đây là mức báo động cao nhất của WHO. Ngày 11 tháng 3 năm 2020,
sự gia tăng nhanh chóng các trường hợp COVID-19 trên khắp thế giới
đã khiến WHO phải ra một tuyên bố gọi COVID-19 là "Đại dịch toàn
cầu". COVID-19 đã lây nhiễm ở khắp các châu lục vào tháng 12 năm
2020, sau khi gây ra hàng chục trường hợp được báo cáo ở Nam Cực, lục
địa cuối cùng mà vi-rút xâm nhập trên trái đất. Bệnh do vi-rút Corona
đã được các chuyên gia công nhận là một cuộc khủng hoảng tồi tệ nhất
kể từ Thế Chiến II với những hậu quả nặng nề liên quan đến tỷ lệ tử
vong cao ở những người mắc bệnh tim, tiểu đường và ung thư cũng như
người già. Tuy nhiên, giới y học cũng đã chứng kiến những tác động này
ở những người chưa từng có bệnh lý tiềm ẩn. Đối với hầu hết mọi người,
COVID-19 dường như mất từ 02 đến 09 ngày để gây ra các triệu chứng,
điều này không may làm cho loại vi-rút Corona mới này trở nên nguy
hiểm hơn. Vì nó là một loại vi-rút chưa từng thấy ở người nên không
ai có thể miễn nhiễm với nó. Trong giai đoạn một, người nhiễm bệnh
không có triệu chứng hoặc bệnh nhẹ, họ có thể truyền vi rút cho hàng
chục người khác dễ dàng như bệnh cúm. Do đại dịch COVID-19, nền
kinh tế thế giới bị ảnh hưởng nặng nề do nhu cầu giảm, chuỗi cung ứng
hàng hóa bị gián đoạn. Điều này có thể được nhìn thấy trong các ngành
bị ảnh hưởng nặng nề như du lịch và sản xuất, nơi mà nhiều nhà máy
sản xuất đã phải thua lỗ do thiếu nguyên liệu cũng như công nhân bị
nhiễm vi-rút.
Tại Việt Nam, trong 15 tháng kể từ khi vụ dịch bắt đầu vào tháng
1 năm 2020, cả nước chỉ ghi nhận ít hơn 3.000 trường hợp mắc và 35
7
trường hợp tử vong. Tuy nhiên, tình hình đã thay đổi khi biến thể Delta
xuất hiện. Từ tháng 4 đến tháng 10 năm 2021, Việt Nam có đợt bùng
phát dịch lớn nhất từ trước đến nay với gần 800 nghìn ca nhiễm, đặc
biệt ở thành phố lớn nhất là thành phố Hồ Chí Minh và một số tỉnh
lân cận như Bình Dương, Long An, Đồng Nai. Toàn quốc đã tuân thủ
cách ly xã hội nghiêm ngặt từ cuối tháng 7 đến tháng 10. Kể từ tháng
7 năm 2022, COVID-19 đang dần hoạt động trở lại. Một số nước trên
thế giới vẫn còn số lượng lớn các ca lây nhiễm và họ phải phong tỏa và
cách ly xã hội. Tình trạng này đã từng làm tê liệt hệ thống chăm sóc
sức khỏe dự phòng của Việt Nam và gây căng thẳng tột độ cho hệ thống
này. Việc ngăn chặn dịch bệnh gặp rất nhiều khó khăn do sự xuất hiện
của các chủng vi-rút Corona mới cũng như sự lây truyền dễ dàng. Ngay
cả đối với hệ thống y tế của các nước phát triển như Hoa Kỳ hay khu
vực Châu Âu, các bệnh viện đã tê liệt trước cơn sóng thần lớn với số
lượng bệnh nhân liên tục tăng lên và không hề thuyên giảm trong một
thời gian dài.
Trước những khó khăn khi đối diện với COVID-19, rất nhiều những
phát kiến cũng như nghiên cứu đa ngành được thực hiện để góp phần cải
thiện và khắc phục hậu quả. Không thể không nói tới ngành trí tuệ nhân
tạo với những đóng góp to lớn, mang máy móc hỗ trợ con người một cách
đáng kể trong việc phòng chống dịch bệnh. Trong đó, các nghiên cứu về
xử lý ngôn ngữ tự nhiên chiếm một phần lớn và mang ảnh hưởng cũng
như đóng góp rất đáng ghi nhận cho xã hội. Luận văn mong muốn tiếp
thu những nghiên cứu đó và đề xuất một hướng phát triển mới cho việc
ứng dụng xử lý ngôn ngữ tự nhiên trong phòng chống dịch COVID-19
nói riêng và dịch bệnh nói chung.
Trong phạm vi luận văn, những kiến thức cơ bản về xử lý ngôn ngữ
8
sẽ được trình bày cũng như đề xuất một tập dữ liệu và ứng dụng xử lý
ngôn ngữ trong phòng chống dịch. Về chi tiết, Chương 1 trình bày cơ sở
lý thuyết. Chương 2 trình bày về các mô hình sẽ được sử dụng. Chương
3 trình bày về cách xây dựng hệ thống, bao gồm thu thập và xây dựng
tập dữ liệu, thực nghiệm và xây dựng hệ thống nhằm mục đích ứng dụng
trong thực tiễn. Luận văn được thực hiện với hy vọng thúc đẩy việc kế
thừa và phát triển các nghiên cứu, nhằm ngăn chặn COVID-19 cũng như
các dịch bệnh trong tương lai.
9
Chương 1
Cơ sở lý thuyết
1.1 Máy học
Máy học[38] là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc
nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự
động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy
có thể "học" cách phân loại thư điện tử xem có phải thư rác (spam) hay
không và tự động xếp thư vào thư mục tương ứng. Máy học rất gần với
suy diễn thống kê (statistical inference) tuy có khác nhau về thuật ngữ.
Một nhánh của máy học là học sâu phát triển rất mạnh mẽ gần đây và
có những kết quả vượt trội so với các phương pháp máy học khác. Máy
học có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu
việc phân tích dữ liệu, nhưng khác với thống kê, máy học tập trung vào
sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài
toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần của
máy học là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà
có thể xử lý được. Máy học và các thuật toán của nó, nhìn chung, luôn
cố gắng phát triển về khả năng thu nhận tri thức và biểu diễn tri thức.
Sao cho, các tri thức được "học" và áp dụng một cách tốt nhất trên các
10
ứng dụng đa dạng của đời sống. Các thuật toán học máy được phân loại
theo kết quả mong muốn của bài toán. Các loại bài toán bao gồm:
Học có giám sát
Thuật toán hay mô hình tạo ra một hàm ánh xạ dữ liệu vào tới kết
quả mong muốn. Một phát biểu chuẩn về một việc học có giám sát là
bài toán phân loại: chương trình cần học (cách xấp xỉ biểu hiện của)
một hàm ánh xạ một véc-tơ x tới một vài lớp bằng cách xem xét một số
mẫu dữ liệu - kết quả của hàm đó.
Học có giám sát còn được tiếp tục chia nhỏ ra thành hai loại chính:
Phân loại: Một bài toán được gọi là phân loại nếu các nhãn của dữ
liệu đầu vào được chia thành một số hữu hạn nhóm.
Hồi quy: Nếu nhãn không được chia thành các nhóm mà là một giá
trị thực cụ thể.
Học không giám sát
Trong bài toán này, dữ liệu đầu vào không có nhãn. Học không giám
sát sẽ dựa vào cấu trúc của dữ liệu để thực hiện nhiệm vụ cụ thể (phân
nhóm, giảm chiều dữ liệu).
Gọi là học không giám sát vì mô hình không được giám sát bằng
cách học trên dữ liệu đã được gán nhãn. Bài toán học không giám sát
có thể chia làm hai loại:
Phân nhóm: Một bài toán phân nhóm toàn bộ dữ liệu X thành các
nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm. Ví
dụ: phân nhóm khách hàng dựa trên hành vi mua hàng.
Liên hợp: Là bài toán khi chúng ta muốn khám phá ra một quy luật
dựa trên nhiều dữ liệu cho trước.
11
Học bán giám sát
Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một
phần trong chúng được gán nhãn được gọi là học bán giám sát. Những
bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên.
Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn
bản được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản
khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa được
gán nhãn được thu thập từ internet. Thực tế cho thấy rất nhiều các bài
toán máy học thuộc vào nhóm này vì việc thu thập dữ liệu có nhãn tốn
rất nhiều thời gian và có chi phí cao. Rất nhiều loại dữ liệu thậm chí cần
phải có chuyên gia mới gán nhãn được (ảnh y học chẳng hạn). Ngược lại,
dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ internet.
Học tăng cường
Là các bài toán giúp cho một hệ thống tự động xác định hành vi
dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the perfor-
mance). Hiện tại, học tăng cường chủ yếu được áp dụng vào Lý Thuyết
Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo
để đạt được điểm số cao nhất.
Học chuyển giao
Xây dựng các mô hình được huấn luyện trước, chứa đựng các thông
tin và tri thức về một lĩnh vực chung chung nào đó (ngôn ngữ, hình ảnh,
tiếng nói...). Các mô hình này được sử dụng làm thành phần cốt lõi, như
"bộ não" trong một mô hình khác mà tại đó, chúng giải quyết các vấn
đề cụ thể như trích xuất thông tin, nhận dạng về một chủ đề hình ảnh
nào đó,... Học chuyển giao giải quyết vấn đề tài nguyên khi giảm bớt
12
Hình 1.1: Mô hình phân loại trong lĩnh vực xử lý ngôn ngữ tự nhiên.
lượng dữ liệu và thời gian một mô hình phải học cho một nhiệm vụ cụ
thể nào đó. Học chuyển giao được trình bày chi tiết hơn tại Phần 2.1.
Máy học hiện nay được áp dụng rộng rãi bao gồm các lĩnh vực xử lý
ảnh, xử lý ngôn ngữ tự nhiên, xử lý tiếng nói v.v.
1.2 Xử lý ngôn ngữ tự nhiên
1.2.1 Khái quát về xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là
một nhánh của trí tuệ nhân tạo, liên quan đến sự tương tác giữa máy
tính và ngôn ngữ con người. Cụ thể, máy móc được đào tạo để xử lý
và phân tích lượng lớn dữ liệu văn bản phi cấu trúc, như bài đăng trên
mạng xã hội, tin tức, đánh giá trực tuyến của khách hàng, v.v. Công
nghệ này được tạo ra với mong muốn rằng một máy tính có thể "hiểu"
nội dung của tài liệu và sử dụng chúng để trích xuất chính xác thông tin
13
và kiến thức có trong tài liệu để thực hiện các tác vụ khác.
Trong vấn đề phân loại, như thể hiện trong Hình 1.1, các mô hình
và hệ thống NLP sử dụng tính năng nhúng văn bản để chuyển văn bản
thành véc-tơ số. Sau đó, các thuật toán máy học hoặc học sâu được cung
cấp dữ liệu đào tạo và kết quả đầu ra (nhãn) dự kiến để đào tạo các mô
hình, để đưa ra một đầu ra hợp lệ cho một đầu vào cụ thể. Sau đó, máy
học cách xây dựng “kiến thức” của riêng mình trước khi đưa ra dự đoán
cho dữ liệu chưa từng nhìn thấy (văn bản mới).
Các ứng dụng điển hình trong NLP bao gồm dịch máy, tóm tắt văn
bản, nhận dạng đối tượng được đặt tên, gắn thẻ từ loại (Part Of Speech -
POS), truy xuất thông tin, nhóm thông tin, phân tích cảm xúc, truy vấn
trả lời và nhận dạng giọng nói tự động (Automatic Speech Recognition
- ASR).
Trong ngành chăm sóc sức khỏe, xử lý ngôn ngữ tự nhiên có rất nhiều
ứng dụng tiềm năng. NLP có thể tăng tính nhất quán, đồng bộ và chính
xác của hồ sơ sức khỏe bằng cách chuyển đổi văn bản phi cấu trúc sang
định dạng chuẩn hóa. Nó có thể tự động trích xuất các thông tin từ các
ghi chú trong hồ sơ y tế. NLP có tiềm năng gần như vô hạn để thu hẹp
khoảng cách giữa lượng dữ liệu vô cùng lớn được tạo ra mỗi giây và khả
năng nhận thức hạn chế của tâm trí con người.
Khi nhắc đến xử lý ngôn ngữ tự nhiên, điều được quan tâm nhất đó
chính là "làm thế nào để máy móc hiểu được ngôn ngữ tự nhiên và ứng
dụng nó vào các bài toán cụ thể một cách tốt nhất?". Các phần tiếp
theo sẽ được trình bày với mục tiêu trả lời câu hỏi này.
14
1.2.2 Tách từ
Máy móc hoạt động với các con số chứ không phải các chữ cái/từ/câu.
Vì vậy, để làm việc với một lượng lớn dữ liệu văn bản có sẵn, tiền xử lý
văn bản (text pre-processing) là quá trình cần thiết giúp làm sạch văn
bản. Bản thân tiền xử lý văn bản bao gồm nhiều giai đoạn, và một trong
số đó là tách từ (hay còn gọi là Tokenization).
Có thể coi Tokens là các khối xây dựng của NLP và tất cả các mô
hình NLP đều xử lý văn bản thô ở cấp độ các Token. Chúng được sử
dụng để tạo từ vựng trong một kho ngữ liệu (một tập dữ liệu trong
NLP). Từ vựng này sau đó được chuyển thành số (ID) và giúp chúng
ta lập mô hình. Tokens có thể là bất cứ thứ gì – một từ (word), một từ
phụ (sub-word) hoặc thậm chí là một ký tự (character). Các thuật toán
khác nhau tuân theo các quy trình khác nhau trong việc thực hiện mã
hóa và sự khác biệt giữa ba loại Tokens này sẽ được chỉ ra dưới đây.
Ví dụ: Câu gốc là “Let us learn Tokenization.”
Thuật toán mã hóa dựa trên từ (word-based Tokenization algo-
rithm) sẽ chia câu thành các từ: [“Let”, “us”, “learn”, “Tokenization.”].
Thuật toán mã hóa dựa trên từ phụ (subword-based Tokenization
algorithm) sẽ chia câu thành các từ khóa phụ: [“Let”, “us”, “learn”, “To-
ken”, “ization.”]
Thuật toán mã hóa dựa trên ký tự (character-based Tokenization
algorithm) sẽ chia câu thành các ký tự, ở đây là từng chữ cái một.
Các Token sau khi được tách sẽ được đưa vào một bộ từ vựng (vocab-
ulary). Bộ từ vựng làm nhiệm vụ lưu trữ các Token (không lặp lại) và
đánh chỉ mục cho nó. Việc đánh chỉ mục thường dưới dạng số nguyên
dương, mục đích để gắn Token để phân biệt, truy xuất và quan trọng
nhất là số hóa Token từ dạng văn bản.
LUẬN VĂN THẠC SĨ
ỨNG DỤNG XỬ LÝ NGÔN NGỮ TỰ NHIÊN
TRONG PHÒNG CHỐNG DỊCH
NGUYỄN PHÙNG HẢI CHUNG
[email protected]
Ngành Toán Tin
Chuyên ngành Toán Tin
Giảng viên hướng dẫn: TS. LÊ CHÍ NGỌC
Bộ môn: Toán Tin Chữ ký của GVHD
Viện: Toán ứng dụng và tin học
HÀ NỘI, 2022
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
o0o
ỨNG DỤNG XỬ LÝ NGÔN NGỮ TỰ NHIÊN
TRONG PHÒNG CHỐNG DỊCH
LUẬN VĂN THẠC SĨ
Ngành Toán Tin
Chuyên ngành Toán Tin
Giảng viên hướng dẫn: TS. LÊ CHÍ NGỌC
Học viên thực hiện: NGUYỄN PHÙNG HẢI CHUNG
Mã học viên: 202463M
Lớp: Toán Tin 20B
HÀ NỘI, 2022
1
Lời cảm ơn
Em xin gửi lời cảm ơn đến TS. Lê Chí Ngọc, người thầy đã hướng
dẫn và giúp đỡ em trong suốt thời gian học tập tại trường. Nhờ sự chỉ
bảo của thầy cũng như kiến thức thầy đã truyền tải, em đã có thể hoàn
thành luận văn của mình. Tuy vậy, vì kiến thức còn hạn chế, luận văn
không tránh khỏi thiếu sót, em mong muốn được nghe ý kiến đóng góp
từ thầy, cô và người đọc.
Em cũng xin gửi lời cảm ơn đến các thầy cô tại viện Toán ứng dụng
và Tin học - Đại học Bách Khoa Hà Nội, đã giảng dạy và giúp đỡ em
cùng các bạn học trong thời gian chúng em học tập và nghiên cứu tại
trường.
Em xin chân thành cảm ơn!
Hà Nội, 12 tháng 10 năm 2022
Tác giả luận văn
Nguyễn Phùng Hải Chung
Tóm tắt nội dung luận văn
1. Trình bày về ảnh hưởng của COVID-19 đối với con người và xã
hội. Đưa ra lý do của việc cần có một ứng dụng hỗ trợ con người
trong phòng chống dịch bệnh.
2. Trình bày cơ sở lý thuyết, các khái niệm về máy học và xử lý ngôn
ngữ tự nhiên. Chỉ ra bài toán nhận dạng thực thể được đặt tên có
thể áp dụng vào phương thức phòng dịch. Ngoài ra, trình bày về
một số mô hình, thuật toán học sâu quan trọng và phương pháp
đánh giá các mô hình để làm cơ sở cho nghiên cứu.
3. Đề xuất một số mô hình phù hợp và mạnh mẽ để áp dụng cho bài
toán nhận dạng thực thể được đặt tên.
4. Trình bày và phân tích hệ thống sử dụng xử lý ngôn ngữ tự nhiên
với các ứng dụng trong phòng chống dịch. Trong đó, đề xuất và
công bố một tập dữ liệu mới về nhận dạng thực thể được đặt tên
cho tiếng Việt với chủ đề COVID-19. Tiến hành huấn luyện mô
hình, thử nghiệm và đánh giá trên tập dữ liệu mới. Qua đó, phân
tích về các hạn chế và khả năng ứng dụng vào thực tiễn.
Hà Nội, 12 tháng 10 năm 2022
Tác giả luận văn
Nguyễn Phùng Hải Chung
Mục lục
Ký hiệu và chữ viết tắt 1
Danh sách bảng 2
Danh sách hình vẽ 4
Mở đầu 8
1 Cơ sở lý thuyết 9
1.1 Máy học . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Xử lý ngôn ngữ tự nhiên . . . . . . . . . . . . . . . . . . 12
1.2.1 Khái quát về xử lý ngôn ngữ tự nhiên . . . . . . . 12
1.2.2 Tách từ . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.3 Nhúng từ . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Học sâu . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1 Thuật toán học Perceptron . . . . . . . . . . . . 17
1.3.2 Mạng truyền thẳng nhiều lớp . . . . . . . . . . . 19
1.3.3 Mạng hồi quy . . . . . . . . . . . . . . . . . . . . 20
1.3.4 Cơ chế chú ý . . . . . . . . . . . . . . . . . . . . 23
1.3.5 Mô hình Transformer . . . . . . . . . . . . . . . . 24
1.4 Bài toán nhận dạng thực thể được đặt tên . . . . . . . . 28
1.5 Các cách tiếp cận để giải các bài toán NER . . . . . . . 29
4
1.6 Phương pháp đánh giá mô hình . . . . . . . . . . . . . . 30
2 Mô hình được sử dụng 31
2.1 Học chuyển giao . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.1 Biểu diễn thể hiện mã hóa hai chiều từ Transformer 33
2.1.2 Phương pháp tiền huấn luyện tối ưu cho BERT -
RoBERTa . . . . . . . . . . . . . . . . . . . . . . 35
2.1.3 Mô hình đa ngôn ngữ kết hợp dựa trên RoBERTa 39
2.1.4 Mô hình ngôn ngữ dành cho tiếng Việt - PhoBERT 40
2.2 Một số mô hình hỗ trợ . . . . . . . . . . . . . . . . . . . 43
2.2.1 Thuật toán xếp hạng văn bản - BM25 . . . . . . 43
2.2.2 Trường xác suất có điều kiện . . . . . . . . . . . 45
3 Xây dựng hệ thống 47
3.1 Khảo sát các nghiên cứu liên quan . . . . . . . . . . . . 48
3.2 Thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . 49
3.3 Thu thập dữ liệu . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Các kiểu thực thể . . . . . . . . . . . . . . . . . . . . . . 51
3.5 Gán nhãn dữ liệu . . . . . . . . . . . . . . . . . . . . . . 54
3.6 Tiền xử lý dữ liệu . . . . . . . . . . . . . . . . . . . . . . 55
3.7 Huấn luyện và đánh giá . . . . . . . . . . . . . . . . . . 56
3.8 Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . 57
3.8.1 Phân tích lỗi . . . . . . . . . . . . . . . . . . . . 58
3.8.2 Ứng dụng trong thực tiễn . . . . . . . . . . . . . 60
Tổng kết 65
Chỉ mục 67
Tài liệu tham khảo 79
1
Ký hiệu và chữ viết tắt
NLP Xử lý ngôn ngữ tự nhiên (Natural Language Processing)
POS Từ loại (Part Of Speech)
ASR Nhận dạng tiếng nói tự động (Automatic Speech Recognition)
RNN Mạng neural hồi quy (Recurrent Neural Network)
CNN Mạng neural tích chập (Convolutional Neural Network)
GAN Mạng đối nghịch tạo sinh (Generative Adversarial Network)
PLA Thuật toán Perceptron (Perceptron Learning Algorithm)
MLP Mạng truyền thẳng nhiều lớp (Multi Layer Perceptron - MLP)
NER Nhận dạng thực thể được đặt tên (Named Entity Recognition)
HMM Mô hình Markov ẩn (Hidden Markov Model)
SVM Máy véc-tơ hỗ trợ (Support Vector Machine)
CRF Trường ngẫu nhiên có điều kiên (Conditional Random Field)
XLM-R XLM-RoBERTa
R tập các số thực
Rn không gian Euclide n chiều
x∈D x thuộc tập D
⟨x, y⟩ tích vô hướng của x và y
∥x∥ chuẩn Euclide của x
∇f (x) véc-tơ gradient của hàm f tại điểm x
v.đ.k viết tắt của cụm từ "với điều kiện"
2
Danh sách bảng
2.1 Kết quả của BERT trên tập dữ liệu GLUE[60]. . . . . . 35
2.2 Kết quả của BERT trên tập dữ liệu SQuAD 1.1[49]. . . . 36
2.3 Kết quả của BERT trên tập dữ liệu SQuAD 2.0[50]. . . . 36
2.4 Kết quả của BERT trên CoNLL-2003. . . . . . . . . . . 37
2.5 So sánh sự phức tạp trong huấn luyện dữ liệu (ppl) và độ
chính xác trên các tập dữ liệu với các kích thước lô (bsz)
và tỉ lệ học (lr). . . . . . . . . . . . . . . . . . . . . . . 37
2.6 So sánh các chiến lược huấn luyện có và không sử dụng
hàm mất mát từ việc dự đoán câu tiếp theo. . . . . . . 39
2.7 F1 theo hai phương pháp che tĩnh và động được so sánh
trên một số tập dữ liệu. [30] . . . . . . . . . . . . . . . . 39
2.8 Hiệu suất của PhoBERT trên bài toán POS tagging và
Dependency parsing . . . . . . . . . . . . . . . . . . . . 41
2.9 Hiệu suất của PhoBERT trên bài toán NER và NLI. . . 42
3.1 Mô tả các kiểu thực thể. . . . . . . . . . . . . . . . . . . 51
3.2 Thống kê tập dữ liệu. . . . . . . . . . . . . . . . . . . . . 52
3.3 Kết quả nhận dạng các thực thể với PhoBERTlarge -CRF+CSC
trên tập phát triển (trên) và tập kiểm thử (dưới). . . . . 59
3.4 Kết quả nhận dạng các thực thể cấp 1 trên tập phát triển. 61
3.5 Kết quả nhận dạng các thực thể cấp 1 trên tập kiểm thử. 62
3
3.6 Kết quả nhận dạng các thực thể cấp 2 trên tập phát triển. 63
3.7 Kết quả nhận dạng các thực thể cấp 2 trên tập kiểm thử. 64
4
Danh sách hình vẽ
1.1 Mô hình phân loại trong lĩnh vực xử lý ngôn ngữ tự nhiên. 12
1.2 Biểu diễn Perceptron dưới dạng mạng neural. . . . . . . 18
1.3 MLP với 2 lớp ẩn. . . . . . . . . . . . . . . . . . . . . . . 19
1.4 Mô hình dịch máy sử dụng kiến trúc RNN. . . . . . . . . 23
1.5 Mô hình sử dụng attention. Trong đó ai,j là điểm chú ý,
hi là trạng thái ẩn của bộ mã hóa, sj là trạng thái ẩn của
bộ giải mã, cj là véc-tơ ngữ cảnh và yj là Token được dự
đoán. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6 Kiến trúc Transformer [58] . . . . . . . . . . . . . . . . . 26
1.7 Minh họa Self-attention. . . . . . . . . . . . . . . . . . . 27
2.1 Học chuyển giao. . . . . . . . . . . . . . . . . . . . . . . 32
2.2 So sánh 88 ngôn ngữ trong Wiki-100 và CommonCrawl. . 41
2.3 Câu được phân đoạn cấp tiếng (trên) và phân đoạn theo
cấp từ (dưới). . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1 Hệ thống NER trong phòng chống COVID. . . . . . . . . 49
3.2 Thực thể và ngữ cảnh của nó không nằm trong cùng một
câu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3 Mô phỏng Cross-Sentence Context. . . . . . . . . . . . . 55
5
Mở đầu
Thế giới đã từng chứng kiến sự xuất hiện của đại dịch Hội chứng hô
hấp cấp tính nghiêm trọng (SARS) ở Trung Quốc vào năm 2002–2003
và Hội chứng hô hấp ở Trung Đông (MERS) trên bán đảo Ả Rập vào
năm 2012. Chúng đã để lại những hậu quả nghiệm trọng đối với đời sống
xã hội của con người. Trong giai đoạn 2019 đến nay, chủng vi rút mới
có tên là nCov - COVID-19 một lần nữa làm thế giới chao đảo. Trong
khi hai bệnh trước đây là do vi-rút Corona (CoV), là một họ vi-rút lớn
gây ra các bệnh từ cảm lạnh thông thường đến các bệnh nặng hơn, thì
COVID-19 mang dấu ấn của một chủng vi-rút mới, mà trước đây chưa
được xác định ở người. Mang đặc trưng bởi vi-rút gây ra dịch SARS,
nhiễm COVID-19 có các triệu chứng như cảm lạnh thông thường và
các triệu chứng hô hấp như ho khan, sốt và khó thở. Trong trường hợp
nghiêm trọng hơn, nó có thể gây viêm phổi, hội chứng hô hấp cấp tính
nghiêm trọng và tử vong.
Trường hợp đầu tiên của COVID-19 được báo cáo vào ngày 01 tháng
12 năm 2019 tại thành phố Vũ Hán, thành phố lớn nhất ở tỉnh Hồ Bắc
và là thành phố đông dân nhất ở miền trung Trung Quốc. Ngày 31 tháng
12 năm 2019, tổ chức Y tế Thế giới (WHO) đã chính thức được thông
báo về một nhóm các trường hợp viêm phổi ở thành phố Vũ Hán. Đến
ngày 20 tháng 1, WHO đã biết về các trường hợp được xác nhận nằm
6
ngoài Trung Quốc. Ngày 30 tháng 1 năm 2020, tiến sĩ Tedros Adhanom
Ghebreyesus, tổng giám đốc WHO, tuyên bố đợt bùng phát COVID-19
là tình trạng khẩn cấp về sức khỏe cộng đồng được quốc tế quan tâm,
đây là mức báo động cao nhất của WHO. Ngày 11 tháng 3 năm 2020,
sự gia tăng nhanh chóng các trường hợp COVID-19 trên khắp thế giới
đã khiến WHO phải ra một tuyên bố gọi COVID-19 là "Đại dịch toàn
cầu". COVID-19 đã lây nhiễm ở khắp các châu lục vào tháng 12 năm
2020, sau khi gây ra hàng chục trường hợp được báo cáo ở Nam Cực, lục
địa cuối cùng mà vi-rút xâm nhập trên trái đất. Bệnh do vi-rút Corona
đã được các chuyên gia công nhận là một cuộc khủng hoảng tồi tệ nhất
kể từ Thế Chiến II với những hậu quả nặng nề liên quan đến tỷ lệ tử
vong cao ở những người mắc bệnh tim, tiểu đường và ung thư cũng như
người già. Tuy nhiên, giới y học cũng đã chứng kiến những tác động này
ở những người chưa từng có bệnh lý tiềm ẩn. Đối với hầu hết mọi người,
COVID-19 dường như mất từ 02 đến 09 ngày để gây ra các triệu chứng,
điều này không may làm cho loại vi-rút Corona mới này trở nên nguy
hiểm hơn. Vì nó là một loại vi-rút chưa từng thấy ở người nên không
ai có thể miễn nhiễm với nó. Trong giai đoạn một, người nhiễm bệnh
không có triệu chứng hoặc bệnh nhẹ, họ có thể truyền vi rút cho hàng
chục người khác dễ dàng như bệnh cúm. Do đại dịch COVID-19, nền
kinh tế thế giới bị ảnh hưởng nặng nề do nhu cầu giảm, chuỗi cung ứng
hàng hóa bị gián đoạn. Điều này có thể được nhìn thấy trong các ngành
bị ảnh hưởng nặng nề như du lịch và sản xuất, nơi mà nhiều nhà máy
sản xuất đã phải thua lỗ do thiếu nguyên liệu cũng như công nhân bị
nhiễm vi-rút.
Tại Việt Nam, trong 15 tháng kể từ khi vụ dịch bắt đầu vào tháng
1 năm 2020, cả nước chỉ ghi nhận ít hơn 3.000 trường hợp mắc và 35
7
trường hợp tử vong. Tuy nhiên, tình hình đã thay đổi khi biến thể Delta
xuất hiện. Từ tháng 4 đến tháng 10 năm 2021, Việt Nam có đợt bùng
phát dịch lớn nhất từ trước đến nay với gần 800 nghìn ca nhiễm, đặc
biệt ở thành phố lớn nhất là thành phố Hồ Chí Minh và một số tỉnh
lân cận như Bình Dương, Long An, Đồng Nai. Toàn quốc đã tuân thủ
cách ly xã hội nghiêm ngặt từ cuối tháng 7 đến tháng 10. Kể từ tháng
7 năm 2022, COVID-19 đang dần hoạt động trở lại. Một số nước trên
thế giới vẫn còn số lượng lớn các ca lây nhiễm và họ phải phong tỏa và
cách ly xã hội. Tình trạng này đã từng làm tê liệt hệ thống chăm sóc
sức khỏe dự phòng của Việt Nam và gây căng thẳng tột độ cho hệ thống
này. Việc ngăn chặn dịch bệnh gặp rất nhiều khó khăn do sự xuất hiện
của các chủng vi-rút Corona mới cũng như sự lây truyền dễ dàng. Ngay
cả đối với hệ thống y tế của các nước phát triển như Hoa Kỳ hay khu
vực Châu Âu, các bệnh viện đã tê liệt trước cơn sóng thần lớn với số
lượng bệnh nhân liên tục tăng lên và không hề thuyên giảm trong một
thời gian dài.
Trước những khó khăn khi đối diện với COVID-19, rất nhiều những
phát kiến cũng như nghiên cứu đa ngành được thực hiện để góp phần cải
thiện và khắc phục hậu quả. Không thể không nói tới ngành trí tuệ nhân
tạo với những đóng góp to lớn, mang máy móc hỗ trợ con người một cách
đáng kể trong việc phòng chống dịch bệnh. Trong đó, các nghiên cứu về
xử lý ngôn ngữ tự nhiên chiếm một phần lớn và mang ảnh hưởng cũng
như đóng góp rất đáng ghi nhận cho xã hội. Luận văn mong muốn tiếp
thu những nghiên cứu đó và đề xuất một hướng phát triển mới cho việc
ứng dụng xử lý ngôn ngữ tự nhiên trong phòng chống dịch COVID-19
nói riêng và dịch bệnh nói chung.
Trong phạm vi luận văn, những kiến thức cơ bản về xử lý ngôn ngữ
8
sẽ được trình bày cũng như đề xuất một tập dữ liệu và ứng dụng xử lý
ngôn ngữ trong phòng chống dịch. Về chi tiết, Chương 1 trình bày cơ sở
lý thuyết. Chương 2 trình bày về các mô hình sẽ được sử dụng. Chương
3 trình bày về cách xây dựng hệ thống, bao gồm thu thập và xây dựng
tập dữ liệu, thực nghiệm và xây dựng hệ thống nhằm mục đích ứng dụng
trong thực tiễn. Luận văn được thực hiện với hy vọng thúc đẩy việc kế
thừa và phát triển các nghiên cứu, nhằm ngăn chặn COVID-19 cũng như
các dịch bệnh trong tương lai.
9
Chương 1
Cơ sở lý thuyết
1.1 Máy học
Máy học[38] là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc
nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự
động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy
có thể "học" cách phân loại thư điện tử xem có phải thư rác (spam) hay
không và tự động xếp thư vào thư mục tương ứng. Máy học rất gần với
suy diễn thống kê (statistical inference) tuy có khác nhau về thuật ngữ.
Một nhánh của máy học là học sâu phát triển rất mạnh mẽ gần đây và
có những kết quả vượt trội so với các phương pháp máy học khác. Máy
học có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu
việc phân tích dữ liệu, nhưng khác với thống kê, máy học tập trung vào
sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài
toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần của
máy học là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà
có thể xử lý được. Máy học và các thuật toán của nó, nhìn chung, luôn
cố gắng phát triển về khả năng thu nhận tri thức và biểu diễn tri thức.
Sao cho, các tri thức được "học" và áp dụng một cách tốt nhất trên các
10
ứng dụng đa dạng của đời sống. Các thuật toán học máy được phân loại
theo kết quả mong muốn của bài toán. Các loại bài toán bao gồm:
Học có giám sát
Thuật toán hay mô hình tạo ra một hàm ánh xạ dữ liệu vào tới kết
quả mong muốn. Một phát biểu chuẩn về một việc học có giám sát là
bài toán phân loại: chương trình cần học (cách xấp xỉ biểu hiện của)
một hàm ánh xạ một véc-tơ x tới một vài lớp bằng cách xem xét một số
mẫu dữ liệu - kết quả của hàm đó.
Học có giám sát còn được tiếp tục chia nhỏ ra thành hai loại chính:
Phân loại: Một bài toán được gọi là phân loại nếu các nhãn của dữ
liệu đầu vào được chia thành một số hữu hạn nhóm.
Hồi quy: Nếu nhãn không được chia thành các nhóm mà là một giá
trị thực cụ thể.
Học không giám sát
Trong bài toán này, dữ liệu đầu vào không có nhãn. Học không giám
sát sẽ dựa vào cấu trúc của dữ liệu để thực hiện nhiệm vụ cụ thể (phân
nhóm, giảm chiều dữ liệu).
Gọi là học không giám sát vì mô hình không được giám sát bằng
cách học trên dữ liệu đã được gán nhãn. Bài toán học không giám sát
có thể chia làm hai loại:
Phân nhóm: Một bài toán phân nhóm toàn bộ dữ liệu X thành các
nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm. Ví
dụ: phân nhóm khách hàng dựa trên hành vi mua hàng.
Liên hợp: Là bài toán khi chúng ta muốn khám phá ra một quy luật
dựa trên nhiều dữ liệu cho trước.
11
Học bán giám sát
Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một
phần trong chúng được gán nhãn được gọi là học bán giám sát. Những
bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên.
Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn
bản được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản
khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa được
gán nhãn được thu thập từ internet. Thực tế cho thấy rất nhiều các bài
toán máy học thuộc vào nhóm này vì việc thu thập dữ liệu có nhãn tốn
rất nhiều thời gian và có chi phí cao. Rất nhiều loại dữ liệu thậm chí cần
phải có chuyên gia mới gán nhãn được (ảnh y học chẳng hạn). Ngược lại,
dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ internet.
Học tăng cường
Là các bài toán giúp cho một hệ thống tự động xác định hành vi
dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the perfor-
mance). Hiện tại, học tăng cường chủ yếu được áp dụng vào Lý Thuyết
Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo
để đạt được điểm số cao nhất.
Học chuyển giao
Xây dựng các mô hình được huấn luyện trước, chứa đựng các thông
tin và tri thức về một lĩnh vực chung chung nào đó (ngôn ngữ, hình ảnh,
tiếng nói...). Các mô hình này được sử dụng làm thành phần cốt lõi, như
"bộ não" trong một mô hình khác mà tại đó, chúng giải quyết các vấn
đề cụ thể như trích xuất thông tin, nhận dạng về một chủ đề hình ảnh
nào đó,... Học chuyển giao giải quyết vấn đề tài nguyên khi giảm bớt
12
Hình 1.1: Mô hình phân loại trong lĩnh vực xử lý ngôn ngữ tự nhiên.
lượng dữ liệu và thời gian một mô hình phải học cho một nhiệm vụ cụ
thể nào đó. Học chuyển giao được trình bày chi tiết hơn tại Phần 2.1.
Máy học hiện nay được áp dụng rộng rãi bao gồm các lĩnh vực xử lý
ảnh, xử lý ngôn ngữ tự nhiên, xử lý tiếng nói v.v.
1.2 Xử lý ngôn ngữ tự nhiên
1.2.1 Khái quát về xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là
một nhánh của trí tuệ nhân tạo, liên quan đến sự tương tác giữa máy
tính và ngôn ngữ con người. Cụ thể, máy móc được đào tạo để xử lý
và phân tích lượng lớn dữ liệu văn bản phi cấu trúc, như bài đăng trên
mạng xã hội, tin tức, đánh giá trực tuyến của khách hàng, v.v. Công
nghệ này được tạo ra với mong muốn rằng một máy tính có thể "hiểu"
nội dung của tài liệu và sử dụng chúng để trích xuất chính xác thông tin
13
và kiến thức có trong tài liệu để thực hiện các tác vụ khác.
Trong vấn đề phân loại, như thể hiện trong Hình 1.1, các mô hình
và hệ thống NLP sử dụng tính năng nhúng văn bản để chuyển văn bản
thành véc-tơ số. Sau đó, các thuật toán máy học hoặc học sâu được cung
cấp dữ liệu đào tạo và kết quả đầu ra (nhãn) dự kiến để đào tạo các mô
hình, để đưa ra một đầu ra hợp lệ cho một đầu vào cụ thể. Sau đó, máy
học cách xây dựng “kiến thức” của riêng mình trước khi đưa ra dự đoán
cho dữ liệu chưa từng nhìn thấy (văn bản mới).
Các ứng dụng điển hình trong NLP bao gồm dịch máy, tóm tắt văn
bản, nhận dạng đối tượng được đặt tên, gắn thẻ từ loại (Part Of Speech -
POS), truy xuất thông tin, nhóm thông tin, phân tích cảm xúc, truy vấn
trả lời và nhận dạng giọng nói tự động (Automatic Speech Recognition
- ASR).
Trong ngành chăm sóc sức khỏe, xử lý ngôn ngữ tự nhiên có rất nhiều
ứng dụng tiềm năng. NLP có thể tăng tính nhất quán, đồng bộ và chính
xác của hồ sơ sức khỏe bằng cách chuyển đổi văn bản phi cấu trúc sang
định dạng chuẩn hóa. Nó có thể tự động trích xuất các thông tin từ các
ghi chú trong hồ sơ y tế. NLP có tiềm năng gần như vô hạn để thu hẹp
khoảng cách giữa lượng dữ liệu vô cùng lớn được tạo ra mỗi giây và khả
năng nhận thức hạn chế của tâm trí con người.
Khi nhắc đến xử lý ngôn ngữ tự nhiên, điều được quan tâm nhất đó
chính là "làm thế nào để máy móc hiểu được ngôn ngữ tự nhiên và ứng
dụng nó vào các bài toán cụ thể một cách tốt nhất?". Các phần tiếp
theo sẽ được trình bày với mục tiêu trả lời câu hỏi này.
14
1.2.2 Tách từ
Máy móc hoạt động với các con số chứ không phải các chữ cái/từ/câu.
Vì vậy, để làm việc với một lượng lớn dữ liệu văn bản có sẵn, tiền xử lý
văn bản (text pre-processing) là quá trình cần thiết giúp làm sạch văn
bản. Bản thân tiền xử lý văn bản bao gồm nhiều giai đoạn, và một trong
số đó là tách từ (hay còn gọi là Tokenization).
Có thể coi Tokens là các khối xây dựng của NLP và tất cả các mô
hình NLP đều xử lý văn bản thô ở cấp độ các Token. Chúng được sử
dụng để tạo từ vựng trong một kho ngữ liệu (một tập dữ liệu trong
NLP). Từ vựng này sau đó được chuyển thành số (ID) và giúp chúng
ta lập mô hình. Tokens có thể là bất cứ thứ gì – một từ (word), một từ
phụ (sub-word) hoặc thậm chí là một ký tự (character). Các thuật toán
khác nhau tuân theo các quy trình khác nhau trong việc thực hiện mã
hóa và sự khác biệt giữa ba loại Tokens này sẽ được chỉ ra dưới đây.
Ví dụ: Câu gốc là “Let us learn Tokenization.”
Thuật toán mã hóa dựa trên từ (word-based Tokenization algo-
rithm) sẽ chia câu thành các từ: [“Let”, “us”, “learn”, “Tokenization.”].
Thuật toán mã hóa dựa trên từ phụ (subword-based Tokenization
algorithm) sẽ chia câu thành các từ khóa phụ: [“Let”, “us”, “learn”, “To-
ken”, “ization.”]
Thuật toán mã hóa dựa trên ký tự (character-based Tokenization
algorithm) sẽ chia câu thành các ký tự, ở đây là từng chữ cái một.
Các Token sau khi được tách sẽ được đưa vào một bộ từ vựng (vocab-
ulary). Bộ từ vựng làm nhiệm vụ lưu trữ các Token (không lặp lại) và
đánh chỉ mục cho nó. Việc đánh chỉ mục thường dưới dạng số nguyên
dương, mục đích để gắn Token để phân biệt, truy xuất và quan trọng
nhất là số hóa Token từ dạng văn bản.