Đồ án tìm hiểu mô hình ngôn ngữ phobert cho bài toán phân loại quan điểm bình luận tiếng việt
- 66 trang
- file .pdf
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG
-----------------------------
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh viên : Nguyễn Thành Long
Lớp : CT2101C
Giảng Viên Hướng Dẫn: Ths.Nguyễn Thị Xuân Hương
Hải Phòng – 2021
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG
-------------------------------
TÌM HIỂU VỀ MÔ HÌNH NGÔN NGỮ PHOBERT
CHO BÀI TOÁN PHÂN LOẠI QUAN ĐIỂM
BÌNH LUẬN TIẾNG VIỆT
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh Viên : Nguyễn Thành Long
Lớp : CT2101C
Giảng Viên Hướng Dẫn : Ths.Nguyễn Thị Xuân Hương
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG
--------------------------------------
NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP
Sinh viên: Nguyễn Thành Long Mã SV : 1712111008
Lớp : CT2101C
Ngành : Công nghệ thông tin
Tên đề tài: Tìm hiểu mô hình ngôn ngữ PhoBert cho bài toán phân loại quan điểm
bình luận tiếng Việt
CÁN BỘ HƯỚNG DẪN ĐỀ TÀI TỐT NGHIỆP
Họ và tên : Nguyễn Thị Xuân Hương
Học hàm, học vị : Thạc sĩ
Cơ quan công tác : Trường Đại học Quản lý và Công nghệ Hải Phòng
Nội dung hướng dẫn:
+ Tìm hiểu về mô hình ngôn ngữ PhoBert.
+ Tìm hiểu về bài toán phân tích quan điểm người dùng, phân loại quan điểm bình
luận Tiếng Việt.
+ Tìm hiểu về ngôn ngữ lập trình Python.
Đề tài tốt nghiệp được giao ngày 16 tháng 07 năm 2021
Yêu cầu phải hoàn thành xong trước ngày 03 tháng 10 năm 2021
Đã nhận nhiệm vụ ĐTTN Đã giao nhiệm vụ ĐTTN
Sinh viên Giảng viên hướng dẫn
Hải Phòng, ngày.....tháng.....năm 2021
TRƯỞNG KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN TỐT NGHIỆP
Họ và tên giảng viên: Nguyễn Thị Xuân Hương
Đơn vị công tác: Khoa Công nghệ thông tin, Trường Đại học Quản lý và Công nghệ Hải
Phòng
Họ và tên sinh viên: Nguyễn Thành Long Ngành: Công nghệ thông tin
Nội dung hướng dẫn:
+ Tìm hiểu về mô hình ngôn ngữ PhoBert.
+ Tìm hiểu về bài toán phân tích quan điểm người dùng, phân loại quan điểm bình
luận Tiếng Việt.
+ Tìm hiểu về ngôn ngữ lập trình Python.
1. Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp.
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
2. Đánh giá chất lượng của đồ án/khóa luận (so với nội dung yêu cầu đã đề ra trong nhiệm
vụ Đ.T. T.N trên các mặt lý luận, thực tiễn, tính toán số liệu…).
………………………………………………………………………………………………...
………………………………………………………………………………………………...
………………………………………………………………………………………………...
………………………………………………………………………………………………...
3. Ý kiến của giảng viên hướng dẫn tốt nghiệp.
Đạt Không đạt Điểm:……………………...
Hải Phòng, ngày.....tháng 10 năm 2021
Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN CHẤM PHẢN BIỆN
Họ và tên giảng viên: Đỗ Văn Chiểu
Đơn vị công tác: Khoa Công nghệ thông tin, Trường Đại học Quản lý và Công nghệ Hải
Phòng.
Họ và tên sinh viên: Nguyễn Thành Long Ngành: Công nghệ thông tin
Đề tài tốt nghiệp: Tìm hiểu mô hình ngôn ngữ PhoBert cho bài toán phân loại quan điểm
bình luận Tiếng Việt
1. Phần nhận xét của giảng viên chấm phản biện.
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
2. Những mặt còn hạn chế.
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
3. Ý kiến của giảng viên chấm phản biện.
Được bảo vệ Không được bảo vệ Điểm:…………………….
Hải Phòng, ngày.....tháng 10 năm 2021
Giảng viên chấm phản biện
(Ký và ghi rõ họ tên)
MỤC LỤC
MỤC LỤC ........................................................................................................................... 1
LỜI CẢM ƠN ...................................................................................................................... 4
MỞ ĐẦU ............................................................................................................................. 5
DANH MỤC CÁC HÌNH VẼ VÀ CÁC BẢNG................................................................. 7
BẢNG CÁC TỪ VIẾT TẮT ............................................................................................... 8
CHƯƠNG 1. MÔ HÌNH BERT .......................................................................................... 9
1.1. Khái niệm ................................................................................................................. 9
1.2. Tại sao lại cần BERT .............................................................................................. 10
1.3. Một số khái niệm .................................................................................................... 10
1.3.1. Nhiệm vụ phía sau (Downstream task) ........................................................... 10
1.3.2. Điểm khái quát đánh giá mức độ hiểu ngôn ngữ (GLUE score benchmark) .. 11
1.3.3. Phân tích cảm xúc (Sentiment Analysis) ......................................................... 11
1.3.4. Hỏi đáp (Question and Answering) ................................................................. 11
1.3.5. Suy luận ngôn ngữ (Natural Language Inference) .......................................... 11
1.3.6. Quan hệ văn bản (Textual Entailment) ............................................................ 11
1.3.7. Ngữ cảnh (Contextual) .................................................................................... 12
1.3.8. Phương pháp Hiện đại nhất (SOTA) ............................................................... 12
1.3.9. Mô hình LTR ................................................................................................... 12
1.3.10. Mô hình ngôn ngữ được đánh dấu MLM (Masked Language Model) ......... 12
1.4. Ngữ cảnh (Contextual) và vai trò trong NLP ......................................................... 13
1.5. Tiếp cận nông và học sâu trong ứng dụng huấn luyện trước (pre-training) trong NLP
....................................................................................................................................... 14
1.5.1. Tiếp cận nông (shallow approach) .................................................................. 14
1.5.2. Học sâu (deep-learning) .................................................................................. 15
1.6. Phương pháp TRANSFORMER ............................................................................ 16
1.6.1. Encoder và Decoder trong BERT .................................................................... 16
1.6.2. Các tiến trình self-attention và encoder-decoder attention ( phương pháp
transformer ) .............................................................................................................. 18
1.7. Mô hình BERT ....................................................................................................... 20
1
1.7.1. Mô hình BERT tinh chỉnh (Fine-tuning model BERT) .................................. 20
1.8. Cách huấn luyện BERT .......................................................................................... 22
1.8.1. Mô hình ngô ngữ được đánh dấu (Masked Language Model) ........................ 22
1.8.2. Next Sentence Prediction (NSP) ..................................................................... 24
1.9. Các kiến trúc mô hình BERT ................................................................................. 26
1.10. RoBerta ................................................................................................................. 27
1.10.1. Khái niệm RoBerta ........................................................................................ 27
1.10.2. Dữ liệu ........................................................................................................... 27
1.10.3. Extract fearture từ RoBerta ........................................................................... 31
1.10.4. Điền từ ( Filling Mask ) ................................................................................. 32
1.10.5. Trích suất đặc trưng ( Extract feature ) cho từ .............................................. 32
CHƯƠNG 2. PHOBERT ................................................................................................... 33
2.1. Sự ra đời của PhoBERT ......................................................................................... 33
2.2. Cấu trúc của PhoBERT .......................................................................................... 33
2.2.1. Dữ liệu trước khi huấn luyện ........................................................................... 36
2.2.2. Tối ưu hóa ........................................................................................................ 36
2.2.3. Thiết lập thử nghiệm........................................................................................ 37
2.2.4. Kết quả thực nghiệm........................................................................................ 38
2.2.5. Kết luận............................................................................................................ 41
2.3. Ứng dụng của PhoBert ........................................................................................... 41
CHƯƠNG 3. ỨNG DỤNG PHOBERT VÀO BÀI TOÁN PHÂN TÍCH QUAN ĐIỂM
BÌNH LUẬN TIẾNG VIỆT .............................................................................................. 42
3.1. Phát biểu bài toán ................................................................................................... 42
3.2. Dữ liệu và Công cụ, môi trường thực nghiệm: ....................................................... 45
3.2.1. Dữ liệu ............................................................................................................. 45
3.2.2. Công cụ và môi trường thực nghiệm: .............................................................. 46
❖ Công cụ ................................................................................................................ 46
Ngôn ngữ lập trình Python ............................................................................................ 46
Thư viện mã nguồn mở Tensorflow .......................................................................... 47
Thư viện Transformers .............................................................................................. 48
Thư viện fastBPE....................................................................................................... 48
Thư viện fairseq ......................................................................................................... 48
Thư viện VnCoreNLP ............................................................................................... 48
2
PhoBERT đã được huấn luyện trước. ........................................................................ 48
❖ Môi trường thực nghiệm: ..................................................................................... 48
3.3. Các bước thực hiện ................................................................................................. 48
3.3.1. Cài đặt các thư viện cần thiết........................................................................... 49
3.3.2. Cài đặt thư viện vncorenlp .............................................................................. 49
3.3.3. Tải về bộ dữ liệu huấn luyện từ trang chủ cuộc thi của AIVIVN và pre-trained
của PhoBERT ............................................................................................................ 50
3.3.4. Tải về dữ liệu của cuộc thi Phân tích sắc thái bình luận ................................ 50
3.3.5. Tách dữ liệu ra thành 2 tập train và validation theo tỉ lệ 90:10 ....................... 51
3.3.6. Tạo một mask gồm các giá trị 0, 1 để làm đầu vào cho thư viện transformers
................................................................................................................................... 52
3.3.7. Huấn luyện mô hình ........................................................................................ 53
KẾT LUẬN ....................................................................................................................... 57
TÀI LIỆU THAM KHẢO ................................................................................................. 58
3
LỜI CẢM ƠN
Lời đầu tiên cho em gửi lời cảm ơn sâu sắc đến gia đình, người thân của em đã động
viên, giúp đỡ, cổ vũ, tạo cho em thêm động lực để em có thể hoàn thành đồ án trong thời
gian được giao.
Em xin gửi lời cảm ơn đến Ban Giám Hiệu Trường Đại học Quản lý và Công nghệ Hải
Phòng, các Ban, Ngành đã hỗ trợ hết mức tạo điều kiện tốt nhất để em có thể đăng kí đồ
án tốt nghiệp.
Em xin cảm ơn đến các thầy, các cô Khoa Công nghệ thông tin, Trường Đại học Quản
lý và Công nghệ Hải Phòng, đã giúp em có những kiến thức cực kì bổ ích trong vòng 4
năm vừa qua, giúp em có được nền tảng kiến thức vững chắc để em có thẻ thực hiện được
đồ án.
Em xin gửi lời cảm ơn chân thành đến cô Ths. Nguyễn Thị Xuân Hương, đã dành rất
nhiều thời gian công sức, cả về vật chất và tinh thần giúp em có thể thể hoàn thành được
đồ án một cách trơn tru nhất.
Em xin chân thành cảm ơn!
Hải Phòng, ngày......tháng......năm 2021
Sinh viên
Nguyễn Thành Long
4
MỞ ĐẦU
Trong bất kỳ xã hội nào con người luôn có nhu cầu được giao tiếp và thể hiện, hình
thức được sử dụng phổ biến đó là diễn đạt bằng ngôn ngữ. Ngôn ngữ sử dụng từ ngữ hoặc
dấu hiệu để diễn tả được thể hiện qua lời nói, chữ viết hoặc các hình ảnh. Với sự bùng nổ
của Internet và các trang mạng xã hội, các trang web tài liệu, sách báo, các trang sản phẩm,
email,.. một lượng lớn dữ liệu văn bản của ngôn ngữ được tạo ra mỗi ngày. Để giúp máy
tính hiểu được những dữ liệu này là công việc quan trọng để hỗ trợ hoặc quyết định dựa
trên ngôn ngữ.
Xử lý ngôn ngữ tự nhiên nghiên cứu sự tương tác bằng ngôn ngữ tự nhiên giữa máy
tính và con người. Trong thực tế, việc sử dụng các kỹ thuật xử lý ngôn ngữ tự nhiên để xử
lý và phân tích dữ liệu văn bản (ngôn ngữ tự nhiên của con người) rất phổ biến, chẳng hạn
như các mô hình ngôn ngữ trong hay các mô hình dịch máy. Để có thể xây dựng các phương
pháp xử lý ngôn ngữ thì trước tiên chúng ta cần quan tâm đến việc biểu diễn ngôn ngữ tự
nhiên như thế nào. Một số phương pháp biểu diễn ngôn ngữ đã được giới thiệu được sử
dụng trong các nhiệm vụ xử lý ngôn ngữ tự nhiên như: sự xuất hiện (Presence) và tần suất
xuất hiện (Frequency), mô hình ngôn ngữ (n-gram), thông tin nhãn từ loại (Parts of
Speech), thông tin phân tích ngữ pháp (Syntactic parsing), biểu diễn véc tơ từ (Word2Vec),
nhúng ký tự (Character Embedding), mạng ngữ nghĩa (WordNet), mạng từ điển quan điểm
(SentiWordNet), v.v. Các phương pháp biểu diễn ngôn ngữ này giúp trích xuất các đặc
trưng từ ngôn ngữ sử dụng cho các mô hình xử lý ngôn ngữ tự nhiên giúp nâng cao hiệu
quả cho các phương pháp phân tích. Do đó, nghiên cứu về các phương pháp biểu diễn ngôn
ngữ nhằm tìm ra các đặc trưng hữu ích cho bài toán NLP là nhiệm vụ quan trọng.
Gần đây, Google AI giới thiệu mô hình ngôn ngữ BERT được coi là một bước đột phá
lớn trong học máy vì khả năng ứng dụng của nó vào nhiều bài toán xử lý ngôn ngữ tự nhiên
khác nhau với kết quả rất tốt. Tiếp theo đó, PhoBERT ra đời nhằm xây dựng mô hình ngôn
ngữ BERT riêng cho tiếng Việt với kết quả tốt nhất cho nhiều bài toán xử lý ngôn ngữ tự
nhiên tiếng Việt. Với sự phát triển của các trang mạng xã hội và các trang đánh giá sản
phẩm, dữ liệu bình luận khen chê của khách hàng đang gia tăng một cách nhanh chóng tạo
thành kho dữ liệu đánh giá khổng lồ. Việc hiểu xem khách hàng đánh giá về một sản phẩm,
dịch vụ hay vấn đề được quan tâm là tích cực hay tiêu cực là nhiệm vụ được các nhà nghiên
cứu quan tâm trong những thập niên gần đây và đã có nhiều ứng dụng trong thực tế. Chính
vì những lý do đó, em chọn đề tài “ Tìm hiểu mô hình PhoBert cho bài toán phân loại quan
5
điểm bình luận Tiếng Việt ”nhằm tìm hiểu các phương pháp mới biểu diễn cho ngôn ngữ
tiếng Việt và áp dụng nó cho bài toán phân loại bình luận tiếng Việt. Đồ án thiết kế gồm 3
chương: Chương 1 Mô hình BERT trình bày về mô hình BERT và các khái niệm liên quan,
chương 2: Mô hình PhoBERT trình bày về các tìm hiểu cho mô hình PhoBERT, Chương
3: Ứng dụng PhoBERT cho bài toán phân loại bình luận tiếng Việt trong đó trình bày về
bài toán, công cụ sử dụng và các cài đặt thử nghiệm, cuối cùng là phần kết luận.
6
DANH MỤC CÁC HÌNH VẼ VÀ CÁC BẢNG
Hình 1. Sơ đồ kiến trúc transformer kết hợp với attention
Hình 2. Sơ đồ vị trí áp dụng self-attention trong kiến trúc transformer
Hình 3. Sơ đồ attension tương tác giữa các véc tơ embedding của encoder và decoder
Hình 4. Toàn bộ tiến trình pre-training và fine-tuning của BERT
Hình 5. Sơ đồ kiến trúc BERT cho nhiệm vụ ngôn ngữ mô hình được đánh dấu
Hình 6. Các bước tạo Input trong tác vụ NSP
Hình 7. Mô hình đầu ra của NSP
Hình 8. Kiến trúc gồm nhiều layers tại encoder của model BERT
Hình 9. Sơ đồ phân tích cảm xúc
Bảng 1. Thống kê các bộ dữ liệu tác vụ xuôi dòng
Bảng 2. Điểm hiệu suất (tính bằng %) trên bộ kiểm tra gắn thẻ POS và phân tích cú pháp
phụ thuộc
Bảng 3. Điểm hiệu suất (tính bằng %) trong bộ bài kiểm tra NER và NLI
Bảng 4. Hiệu suất với các kích thước lô khác nhau của các mô hình
Bảng 5. Hiệu suất trên GLUE BenchMARK
7
BẢNG CÁC TỪ VIẾT TẮT
Viết tắt Đầy đủ Ý nghĩa
BERT Bidirectional Encoder Mô hình ngôn ngữ
Representations from Transformers
NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên
NSP Next Sentence Prediction Dữ báo câu tiếp theo
NER Name Entity Recognition Nhận diện thực thể trong
câu
NLI Natural Languague Inference Suy luận ngôn ngữ tự
nhiên
SQuAD Stanford Question Answering Tác vụ hỏi đáp
Dataset
SOTA State-Of-Art Hiện đại nhất
GLUE General Language Understanding Điểm khái quát đánh giá
Evaluation mức độ hiểu ngôn ngữ
MLM Masked Language Model Mô hình ngôn ngữ
Masked
RNN Recurrent Neural Network Mạng neural hồi quy
ELMo Embeddings from Language Nhúng từ Mô hình
Model Ngôn ngữ
8
CHƯƠNG 1. MÔ HÌNH BERT
1.1. Khái niệm
BERT ( Bidirectional Encoder Representations from Transformers ) là một mô hình
ngôn ngữ ( Language Model ) được tạo ra bởi Google AI và được giới thiệu vào năm 2008.
BERT được coi như là đột phá lớn trong Machine Learning bởi vì khả năng ứng dụng của
nó vào nhiều bài toán NLP ( Natural Language Processing ) khác nhau: Question
Answering, Natural Language Inference,... với kết quả rất tốt.
Các nhà nghiên cứu làm việc tại Google AI tái khẳng định, sự thiếu hụt dữ liệu huấn
luyện là một trong những thách thức lớn nhất trong lĩnh vực xử lý ngôn ngữ tự nhiên. Đây
là một lĩnh vực rộng lớn và đa dạng với nhiều nhiệm vụ riêng biệt, hầu hết các tập dữ liệu
đều chỉ đặc thù cho từng nhiệm vụ. Để thực hiện được tốt những nhiệm vụ này ta cần những
bộ dữ liệu lớn chứa hàng triệu thậm chí hàng tỷ ví dụ mẫu. Tuy nhiên, trong thực tế hầu
hết các tập dữ liệu hiện giờ chỉ chứa vài nghìn hoặc vài trăm nghìn mẫu được đánh nhãn
bằng tay bởi con người ( các chuyên gia ngôn ngữ học ). Sự thiếu hụt dữ liệu có nhãn chất
lượng cao để huấn luyện mô hình gây cản trở lớn cho sự phát triển của NLP nói chung.
Để giải quyết thách thức này, các mô hình xử lý ngôn ngữ tự nhiên sử dụng một cơ
chế tiền xử lý dữ liệu huấn luyện bằng việc transfer từ một mô hình chung được huấn luyện
từ một lượng lớn các dữ liệu không được gán nhãn. Ví dụ một số mô hình đã được nghiên
cứu trước đây để thực hiện nhiệm vụ này như Word2vec, Glove hay FastText.
Việc nghiên cứu các mô hình này sẽ giúp thu hẹp khoảng cách giữa các tập dữ liệu
chuyên biệt cho huấn luyện bằng việc xây dựng mô hình tìm ra đại diện chung của ngôn
ngữ sử dụng một số lượng lớn các văn bản chưa được gán nhãn lấy từ các trang web.
Các mô hình được huấn luyện trước khi được tinh chỉnh lại trên các nhiệm vụ khác
nhau với các bộ dữ liệu nhỏ như Question Answering, Sentiment Analysis,...sẽ dẫn đến sự
cải thiện đáng kể về độ chính xác cho so với các mô hình được huấn luyện trước với các
bộ dữ liệu này.
Tuy nhiên, các mô hình kể trên có những yếu điểm riêng của nó, đặc biệt là không thể
hiện được sự đại diện theo ngữ cảnh cụ thể của từ trong từng lĩnh vực hay văn cảnh cụ thể.
9
Tiếp nối sự thành công nhất định của các mô hình trước đó, Google đã công bố thêm
1 kỹ thuật mới được gọi là Bidirectional Encoder Representations from Transformers (
BERT ).
1.2. Tại sao lại cần BERT
Một trong những thách thức lớn nhất của NLP là vấn đề dữ liệu. Trên internet có hàng
tá dữ liệu, nhưng những dữ liệu đó không đồng nhất; mỗi phần của nó chỉ được dùng cho
một mục đích riêng biệt, do đó khi giải quyết một bài toán cụ thể, ta cần trích ra một bộ dữ
liệu thích hợp cho bài toán của mình, và kết quả là ta chỉ có một lượng rất ít dữ liệu.
Ví dụ : Trong OpenAI GPT, các tác giả sử dụng đã kiến trúc left-to-right, nghĩa là các
từ chỉ phụ thuộc vào các từ ở trước đó.
Nhưng có một nghịch lý là các mô hình Deep Learning cần lượng dữ liệu rất lớn - lên
tới hàng triệu - để có thể cho ra kết quả tốt. Do đó một vấn đề được đặt ra: làm thế nào để
tận dụng được nguồn dữ liệu vô cùng lớn có sẵn để giải quyết bài toán của mình. Đó là tiền
đề cho một kỹ thuật mới ra đời: Transfer Learning. Với Transfer Learning, các mô hình
(model) "chung" nhất với tập dữ liệu khổng lồ trên internet ( pre-training ) được xây dựng
và có thể được "tinh chỉnh" ( fine-tune ) cho các bài toán cụ thể.
Nhờ có kỹ thuật này mà kết quả cho các bài toán được cải thiện rõ rệt, không chỉ trong
xử lý ngôn ngữ tự nhiên mà còn trong các lĩnh vực khác như Computer Vision,... BERT là
một trong những đại diện ưu tú nhất trong Transfer Learning cho xử lý ngôn ngữ tự nhiên,
nó gây tiếng vang lớn không chỉ bởi kết quả mang lại trong nhiều bài toán khác nhau, mà
còn bởi vì nó hoàn toàn miễn phí, tất cả chúng ta đều có thể sử dụng BERT cho bài toán
của mình.
1.3. Một số khái niệm
1.3.1. Nhiệm vụ phía sau (Downstream task)
Là những nhiệm vụ học hỏi được giám sát được cải thiện dựa trên những mô hình được
huấn luyện trước.
Ví dụ: Chúng ta sử dụng lại các biểu diễn từ học được từ những mô hình được huấn
luyện trước trên bộ văn bản lớn vào một nhiệm vụ phân tích cảm xúc huấn luyện trên bộ
văn bản có kích thước nhỏ hơn. Áp dụng nhúng huấn luyện trước ( pretrain-embedding )
10
đã giúp cải thiện mô hình. Như vậy nhiệm vụ sử dụng nhúng huấn luyện trước được gọi là
nhiệm vụ sau.
1.3.2. Điểm khái quát đánh giá mức độ hiểu ngôn ngữ (GLUE score benchmark)
GLUE score benchmark là một tập hợp các chỉ số được xây dựng để đánh giá khái
quát mức độ hiểu ngôn ngữ của các mô hình NLP.
Các đánh giá được thực hiện trên các bộ dữ liệu tiêu chuẩn được qui định tại các
convention về phát triển và thúc đẩy NLP. Mỗi bộ dữ liệu tương ứng với một loại tác NLP
vụ như:
• Phân tích tình cảm (Sentiment Analysis)
• Hỏi đáp (Question and Answering)
• Suy luận ngôn ngữ tự nhiên (NLI - Natural Languague Inference)
• Dự báo câu tiếp theo (NSP - Next Sentence Prediction)
• Nhận diện thực thể trong câu (NER - Name Entity Recognition)
1.3.3. Phân tích cảm xúc (Sentiment Analysis)
Phân loại cảm xúc văn bản thành 2 nhãn tích cực (positive) và tiêu cực (negative).
Thường được sử dụng trong các hệ thống đánh giá bình luận của người dùng.
1.3.4. Hỏi đáp (Question and Answering)
Là thuật toán hỏi và đáp. Đầu vào là một cặp câu (pair sequence) bao gồm: câu hỏi
(question) có chức năng hỏi và đoạn văn bản (paragraph) chứa thông tin trả lời cho câu hỏi.
Một bộ dữ liệu chuẩn nằm trong GLUE dataset được sử dụng để đánh giá nhiệm vụ hỏi và
đáp là SQuAD - Stanford Question Answering Dataset.
1.3.5. Suy luận ngôn ngữ (Natural Language Inference)
Là các nhiệm vụ suy luận ngôn ngữ đánh giá mối quan hệ giữa các cặp câu, cũng tương
tự như Textual Entailment.
1.3.6. Quan hệ văn bản (Textual Entailment)
Là nhiệm vụ đánh giá mối quan hệ định hướng giữa 2 văn bản. Nhãn đầu ra của các
cặp câu được chia thành đối lập (contradiction), trung lập (neutral) hay có quan hệ đi kèm
(textual entailment).
Ví dụ, chúng ta có các câu:
11
• A: Hôm nay trời mưa.
• B: Tôi mang ô tới trường.
• C: Hôm nay trời không mưa.
• D: Hôm nay là thứ 3.
Khi đó (A, B) có mối quan hệ đi kèm. Các cặp câu (A, C) có mối quan hệ đối lập và
(A, D) là trung lập.
1.3.7. Ngữ cảnh (Contextual)
Là ngữ cảnh của từ. Một từ được định nghĩa bởi một cách phát âm nhưng khi được đặt
trong những câu khác nhau thì có thể mang ngữ nghĩa khác nhau. ngữ cảnh có thể coi là
môi trường xung quanh từ để góp phần định nghĩa từ.
Ví dụ:
- Câu A: Tôi đồng ý với ý kiến của anh.
- Câu B: Lão Hạc phải kiếm từng đồng để nuôi cậu Vàng.
Thì từ “ đồng ” trong câu A và B có ý nghĩa khác nhau. Chúng ta biết điều này vì dựa
vào ngữ cảnh của từ.
1.3.8. Phương pháp Hiện đại nhất (SOTA)
Viết tắt của state-of-art là những phương pháp, kỹ thuật tốt nhất mang lại hiệu quả cao
nhất từ trước đến nay.
Mô hình biểu diễn mã hóa 2 chiều dựa trên biến đổi (BERT-Bidirectional Encoder
Representation from Transformer)
Mô hình BERT. Đây là lớp mô hình SOTA trong nhiều nhiệm vụ của GLUE score
benchmark.
1.3.9. Mô hình LTR
Là mô hình học bối cảnh theo một chiều duy nhất từ trái sang phải. Chẳng hạn như lớp
các model RNN.
1.3.10. Mô hình ngôn ngữ được đánh dấu MLM (Masked Language Model)
Là mô hình mà bối cảnh của từ được học từ cả 2 phía bên trái và bên phải cùng một
lúc từ những bộ dữ liệu không có giám sát.
12
Dữ liệu vào sẽ được đánh dấu (tức thay bằng một mã đánh dấu (token MASK)) một
cách ngẫu nhiên với tỷ lệ thấp. Huấn luyện mô hình dự báo từ mã được đánh dấu dựa trên
bối cảnh xung quanh là những từ không được đánh dấu nhằm tìm ra biểu diễn của từ.
1.4. Ngữ cảnh (Contextual) và vai trò trong NLP
Bản chất của ngôn ngữ là âm thanh được phát ra để diễn giải dòng suy nghĩ của con
người. Trong giao tiếp, các từ thường không đứng độc lập mà chúng sẽ đi kèm với các từ
khác để liên kết mạch lạc thành một câu. Hiệu quả biểu thị nội dung và truyền đạt ý nghĩa
sẽ lớn hơn so với từng từ đứng độc lập.
Ngữ cảnh trong câu có một sự ảnh hưởng rất lớn trong việc giải thích ý nghĩa của từ.
Dựa trên đó, các thuật toán xử lý ngôn ngữ tự nhiên tốt nhất đều cố gắng đưa ngữ cảnh vào
mô hình nhằm tạo ra sự đột phá và cải tiến. Trong đó mô hình BERT cũng sử dụng tiếp
cận này.
Phân cấp mức độ phát triển của các phương pháp nhúng từ trong NLP có thể bao gồm
các nhóm:
• Không bối cảnh (Non-context) Là các thuật toán không tồn tại bối cảnh trong biểu
diễn từ. Đó là các thuật như “ WORD2VEC, GLOVE, FASTTEXT ”. Chúng ta chỉ
có duy nhất một biểu diễn véc tơ cho mỗi một từ mà không thay đổi theo bối cảnh.
Ví dụ :
- Câu A : Đơn vị tiền tệ của Việt Nam là “ đồng ”.
- Câu B : Vợ “ đồng ” ý với ý kiến của chồng là tăng thêm mỗi tháng 500k
tiền tiêu vặt
Thì từ đồng sẽ mang 2 ý nghĩa khác nhau nên phải có hai biểu diễn từ riêng biệt. Các
thuật toán không có bối cảnh đã không đáp ứng được sự đa dạng về ngữ nghĩa của từ trong
NLP.
• Một chiều (Uni-directional): Là các thuật toán đã bắt đầu xuất hiện bối cảnh của
từ. Các phương pháp nhúng từ dựa trên RNN là những phương pháp nhúng từ một
chiều. Các kết quả biểu diễn từ đã có bối cảnh nhưng chỉ được giải thích bởi một
chiều từ trái qua phải hoặc từ phải qua trái.
Ví dụ:
13
- Câu C: Hôm nay tôi mang 200 tỷ “ gửi ” ở ngân hàng.
- Câu D: Hôm nay tôi mang 200 tỷ “ gửi ” ….
Như vậy véc tơ biểu diễn của từ gửi được xác định thông qua các từ liền trước với nó.
Nếu chỉ dựa vào các từ liền trước “ Hôm nay tôi mang 200 tỷ ” thì ta có thể nghĩ từ phù
hợp ở vị trí hiện tại là cho vay, mua, thanh toán,....
Ví dụ đơn giản trên đã cho thấy các thuật toán biểu diễn từ có bối cảnh tuân theo theo
một chiều sẽ gặp hạn chế lớn trong biểu diễn từ hơn so với biểu diễn 2 chiều.
ELMo là một ví dụ cho phương pháp một chiều. Mặc dù phương pháp ELMO có kiến
trúc dựa trên một mạng BiLSTM xem xét bối cảnh theo hai chiều từ trái sang phải và từ
phải sang trái nhưng những chiều này là độc lập nhau nên ta coi như đó là biểu diễn một
chiều. Thuật toán ELMO đã cải tiến hơn so với WORD2VEC và FASTTEXT đó là tạo ra
nghĩa của từ theo bối cảnh. Trong ví dụ về từ “đồng” thì ở mỗi câu A và B chúng ta sẽ có
một biểu diễn từ khác biệt.
• Hai chiều (Bi-directional): Ngữ nghĩa của một từ không chỉ được biểu diễn bởi
những từ liền trước mà còn được giải thích bởi toàn bộ các từ xung quanh. Luồng
giải thích tuân theo đồng thời từ trái qua phải và từ phải qua trái cùng một lúc. Đại
diện cho các phép biểu diễn từ này là những mô hình sử dụng kỹ thuật transformer.
Gần đây, những thuật toán NLP theo trường phái hai chiều như BERT, ULMT,
OpenAI GPT đã đạt được những kết quả SOTA trên hầu hết các nhiệm vụ
của GLUE benchmark.
1.5. Tiếp cận nông và học sâu trong ứng dụng huấn luyện trước (pre-training) trong
NLP
1.5.1. Tiếp cận nông (shallow approach)
- Imagenet trong Computer Vision
Trong xử lý ảnh, chúng ta đều biết tới những mô hình được huấn luyện trước
(pretrained models) nổi tiếng trên bộ dữ liệu Imagenet với 1000 classes. Nhờ số lượng
classes lớn nên hầu hết các nhãn trong phân loại ảnh thông thường đều xuất hiện trong
Imagenet và chúng ta có thể học chuyển giao lại các nhiệm vụ xử lý ảnh rất nhanh và tiện
lợi. Chúng ta cũng kỳ vọng NLP có một tợp hợp các mô hình được huấn luyện trước như
14
TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG
-----------------------------
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh viên : Nguyễn Thành Long
Lớp : CT2101C
Giảng Viên Hướng Dẫn: Ths.Nguyễn Thị Xuân Hương
Hải Phòng – 2021
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG
-------------------------------
TÌM HIỂU VỀ MÔ HÌNH NGÔN NGỮ PHOBERT
CHO BÀI TOÁN PHÂN LOẠI QUAN ĐIỂM
BÌNH LUẬN TIẾNG VIỆT
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh Viên : Nguyễn Thành Long
Lớp : CT2101C
Giảng Viên Hướng Dẫn : Ths.Nguyễn Thị Xuân Hương
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG
--------------------------------------
NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP
Sinh viên: Nguyễn Thành Long Mã SV : 1712111008
Lớp : CT2101C
Ngành : Công nghệ thông tin
Tên đề tài: Tìm hiểu mô hình ngôn ngữ PhoBert cho bài toán phân loại quan điểm
bình luận tiếng Việt
CÁN BỘ HƯỚNG DẪN ĐỀ TÀI TỐT NGHIỆP
Họ và tên : Nguyễn Thị Xuân Hương
Học hàm, học vị : Thạc sĩ
Cơ quan công tác : Trường Đại học Quản lý và Công nghệ Hải Phòng
Nội dung hướng dẫn:
+ Tìm hiểu về mô hình ngôn ngữ PhoBert.
+ Tìm hiểu về bài toán phân tích quan điểm người dùng, phân loại quan điểm bình
luận Tiếng Việt.
+ Tìm hiểu về ngôn ngữ lập trình Python.
Đề tài tốt nghiệp được giao ngày 16 tháng 07 năm 2021
Yêu cầu phải hoàn thành xong trước ngày 03 tháng 10 năm 2021
Đã nhận nhiệm vụ ĐTTN Đã giao nhiệm vụ ĐTTN
Sinh viên Giảng viên hướng dẫn
Hải Phòng, ngày.....tháng.....năm 2021
TRƯỞNG KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN TỐT NGHIỆP
Họ và tên giảng viên: Nguyễn Thị Xuân Hương
Đơn vị công tác: Khoa Công nghệ thông tin, Trường Đại học Quản lý và Công nghệ Hải
Phòng
Họ và tên sinh viên: Nguyễn Thành Long Ngành: Công nghệ thông tin
Nội dung hướng dẫn:
+ Tìm hiểu về mô hình ngôn ngữ PhoBert.
+ Tìm hiểu về bài toán phân tích quan điểm người dùng, phân loại quan điểm bình
luận Tiếng Việt.
+ Tìm hiểu về ngôn ngữ lập trình Python.
1. Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp.
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
2. Đánh giá chất lượng của đồ án/khóa luận (so với nội dung yêu cầu đã đề ra trong nhiệm
vụ Đ.T. T.N trên các mặt lý luận, thực tiễn, tính toán số liệu…).
………………………………………………………………………………………………...
………………………………………………………………………………………………...
………………………………………………………………………………………………...
………………………………………………………………………………………………...
3. Ý kiến của giảng viên hướng dẫn tốt nghiệp.
Đạt Không đạt Điểm:……………………...
Hải Phòng, ngày.....tháng 10 năm 2021
Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN CHẤM PHẢN BIỆN
Họ và tên giảng viên: Đỗ Văn Chiểu
Đơn vị công tác: Khoa Công nghệ thông tin, Trường Đại học Quản lý và Công nghệ Hải
Phòng.
Họ và tên sinh viên: Nguyễn Thành Long Ngành: Công nghệ thông tin
Đề tài tốt nghiệp: Tìm hiểu mô hình ngôn ngữ PhoBert cho bài toán phân loại quan điểm
bình luận Tiếng Việt
1. Phần nhận xét của giảng viên chấm phản biện.
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
2. Những mặt còn hạn chế.
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
3. Ý kiến của giảng viên chấm phản biện.
Được bảo vệ Không được bảo vệ Điểm:…………………….
Hải Phòng, ngày.....tháng 10 năm 2021
Giảng viên chấm phản biện
(Ký và ghi rõ họ tên)
MỤC LỤC
MỤC LỤC ........................................................................................................................... 1
LỜI CẢM ƠN ...................................................................................................................... 4
MỞ ĐẦU ............................................................................................................................. 5
DANH MỤC CÁC HÌNH VẼ VÀ CÁC BẢNG................................................................. 7
BẢNG CÁC TỪ VIẾT TẮT ............................................................................................... 8
CHƯƠNG 1. MÔ HÌNH BERT .......................................................................................... 9
1.1. Khái niệm ................................................................................................................. 9
1.2. Tại sao lại cần BERT .............................................................................................. 10
1.3. Một số khái niệm .................................................................................................... 10
1.3.1. Nhiệm vụ phía sau (Downstream task) ........................................................... 10
1.3.2. Điểm khái quát đánh giá mức độ hiểu ngôn ngữ (GLUE score benchmark) .. 11
1.3.3. Phân tích cảm xúc (Sentiment Analysis) ......................................................... 11
1.3.4. Hỏi đáp (Question and Answering) ................................................................. 11
1.3.5. Suy luận ngôn ngữ (Natural Language Inference) .......................................... 11
1.3.6. Quan hệ văn bản (Textual Entailment) ............................................................ 11
1.3.7. Ngữ cảnh (Contextual) .................................................................................... 12
1.3.8. Phương pháp Hiện đại nhất (SOTA) ............................................................... 12
1.3.9. Mô hình LTR ................................................................................................... 12
1.3.10. Mô hình ngôn ngữ được đánh dấu MLM (Masked Language Model) ......... 12
1.4. Ngữ cảnh (Contextual) và vai trò trong NLP ......................................................... 13
1.5. Tiếp cận nông và học sâu trong ứng dụng huấn luyện trước (pre-training) trong NLP
....................................................................................................................................... 14
1.5.1. Tiếp cận nông (shallow approach) .................................................................. 14
1.5.2. Học sâu (deep-learning) .................................................................................. 15
1.6. Phương pháp TRANSFORMER ............................................................................ 16
1.6.1. Encoder và Decoder trong BERT .................................................................... 16
1.6.2. Các tiến trình self-attention và encoder-decoder attention ( phương pháp
transformer ) .............................................................................................................. 18
1.7. Mô hình BERT ....................................................................................................... 20
1
1.7.1. Mô hình BERT tinh chỉnh (Fine-tuning model BERT) .................................. 20
1.8. Cách huấn luyện BERT .......................................................................................... 22
1.8.1. Mô hình ngô ngữ được đánh dấu (Masked Language Model) ........................ 22
1.8.2. Next Sentence Prediction (NSP) ..................................................................... 24
1.9. Các kiến trúc mô hình BERT ................................................................................. 26
1.10. RoBerta ................................................................................................................. 27
1.10.1. Khái niệm RoBerta ........................................................................................ 27
1.10.2. Dữ liệu ........................................................................................................... 27
1.10.3. Extract fearture từ RoBerta ........................................................................... 31
1.10.4. Điền từ ( Filling Mask ) ................................................................................. 32
1.10.5. Trích suất đặc trưng ( Extract feature ) cho từ .............................................. 32
CHƯƠNG 2. PHOBERT ................................................................................................... 33
2.1. Sự ra đời của PhoBERT ......................................................................................... 33
2.2. Cấu trúc của PhoBERT .......................................................................................... 33
2.2.1. Dữ liệu trước khi huấn luyện ........................................................................... 36
2.2.2. Tối ưu hóa ........................................................................................................ 36
2.2.3. Thiết lập thử nghiệm........................................................................................ 37
2.2.4. Kết quả thực nghiệm........................................................................................ 38
2.2.5. Kết luận............................................................................................................ 41
2.3. Ứng dụng của PhoBert ........................................................................................... 41
CHƯƠNG 3. ỨNG DỤNG PHOBERT VÀO BÀI TOÁN PHÂN TÍCH QUAN ĐIỂM
BÌNH LUẬN TIẾNG VIỆT .............................................................................................. 42
3.1. Phát biểu bài toán ................................................................................................... 42
3.2. Dữ liệu và Công cụ, môi trường thực nghiệm: ....................................................... 45
3.2.1. Dữ liệu ............................................................................................................. 45
3.2.2. Công cụ và môi trường thực nghiệm: .............................................................. 46
❖ Công cụ ................................................................................................................ 46
Ngôn ngữ lập trình Python ............................................................................................ 46
Thư viện mã nguồn mở Tensorflow .......................................................................... 47
Thư viện Transformers .............................................................................................. 48
Thư viện fastBPE....................................................................................................... 48
Thư viện fairseq ......................................................................................................... 48
Thư viện VnCoreNLP ............................................................................................... 48
2
PhoBERT đã được huấn luyện trước. ........................................................................ 48
❖ Môi trường thực nghiệm: ..................................................................................... 48
3.3. Các bước thực hiện ................................................................................................. 48
3.3.1. Cài đặt các thư viện cần thiết........................................................................... 49
3.3.2. Cài đặt thư viện vncorenlp .............................................................................. 49
3.3.3. Tải về bộ dữ liệu huấn luyện từ trang chủ cuộc thi của AIVIVN và pre-trained
của PhoBERT ............................................................................................................ 50
3.3.4. Tải về dữ liệu của cuộc thi Phân tích sắc thái bình luận ................................ 50
3.3.5. Tách dữ liệu ra thành 2 tập train và validation theo tỉ lệ 90:10 ....................... 51
3.3.6. Tạo một mask gồm các giá trị 0, 1 để làm đầu vào cho thư viện transformers
................................................................................................................................... 52
3.3.7. Huấn luyện mô hình ........................................................................................ 53
KẾT LUẬN ....................................................................................................................... 57
TÀI LIỆU THAM KHẢO ................................................................................................. 58
3
LỜI CẢM ƠN
Lời đầu tiên cho em gửi lời cảm ơn sâu sắc đến gia đình, người thân của em đã động
viên, giúp đỡ, cổ vũ, tạo cho em thêm động lực để em có thể hoàn thành đồ án trong thời
gian được giao.
Em xin gửi lời cảm ơn đến Ban Giám Hiệu Trường Đại học Quản lý và Công nghệ Hải
Phòng, các Ban, Ngành đã hỗ trợ hết mức tạo điều kiện tốt nhất để em có thể đăng kí đồ
án tốt nghiệp.
Em xin cảm ơn đến các thầy, các cô Khoa Công nghệ thông tin, Trường Đại học Quản
lý và Công nghệ Hải Phòng, đã giúp em có những kiến thức cực kì bổ ích trong vòng 4
năm vừa qua, giúp em có được nền tảng kiến thức vững chắc để em có thẻ thực hiện được
đồ án.
Em xin gửi lời cảm ơn chân thành đến cô Ths. Nguyễn Thị Xuân Hương, đã dành rất
nhiều thời gian công sức, cả về vật chất và tinh thần giúp em có thể thể hoàn thành được
đồ án một cách trơn tru nhất.
Em xin chân thành cảm ơn!
Hải Phòng, ngày......tháng......năm 2021
Sinh viên
Nguyễn Thành Long
4
MỞ ĐẦU
Trong bất kỳ xã hội nào con người luôn có nhu cầu được giao tiếp và thể hiện, hình
thức được sử dụng phổ biến đó là diễn đạt bằng ngôn ngữ. Ngôn ngữ sử dụng từ ngữ hoặc
dấu hiệu để diễn tả được thể hiện qua lời nói, chữ viết hoặc các hình ảnh. Với sự bùng nổ
của Internet và các trang mạng xã hội, các trang web tài liệu, sách báo, các trang sản phẩm,
email,.. một lượng lớn dữ liệu văn bản của ngôn ngữ được tạo ra mỗi ngày. Để giúp máy
tính hiểu được những dữ liệu này là công việc quan trọng để hỗ trợ hoặc quyết định dựa
trên ngôn ngữ.
Xử lý ngôn ngữ tự nhiên nghiên cứu sự tương tác bằng ngôn ngữ tự nhiên giữa máy
tính và con người. Trong thực tế, việc sử dụng các kỹ thuật xử lý ngôn ngữ tự nhiên để xử
lý và phân tích dữ liệu văn bản (ngôn ngữ tự nhiên của con người) rất phổ biến, chẳng hạn
như các mô hình ngôn ngữ trong hay các mô hình dịch máy. Để có thể xây dựng các phương
pháp xử lý ngôn ngữ thì trước tiên chúng ta cần quan tâm đến việc biểu diễn ngôn ngữ tự
nhiên như thế nào. Một số phương pháp biểu diễn ngôn ngữ đã được giới thiệu được sử
dụng trong các nhiệm vụ xử lý ngôn ngữ tự nhiên như: sự xuất hiện (Presence) và tần suất
xuất hiện (Frequency), mô hình ngôn ngữ (n-gram), thông tin nhãn từ loại (Parts of
Speech), thông tin phân tích ngữ pháp (Syntactic parsing), biểu diễn véc tơ từ (Word2Vec),
nhúng ký tự (Character Embedding), mạng ngữ nghĩa (WordNet), mạng từ điển quan điểm
(SentiWordNet), v.v. Các phương pháp biểu diễn ngôn ngữ này giúp trích xuất các đặc
trưng từ ngôn ngữ sử dụng cho các mô hình xử lý ngôn ngữ tự nhiên giúp nâng cao hiệu
quả cho các phương pháp phân tích. Do đó, nghiên cứu về các phương pháp biểu diễn ngôn
ngữ nhằm tìm ra các đặc trưng hữu ích cho bài toán NLP là nhiệm vụ quan trọng.
Gần đây, Google AI giới thiệu mô hình ngôn ngữ BERT được coi là một bước đột phá
lớn trong học máy vì khả năng ứng dụng của nó vào nhiều bài toán xử lý ngôn ngữ tự nhiên
khác nhau với kết quả rất tốt. Tiếp theo đó, PhoBERT ra đời nhằm xây dựng mô hình ngôn
ngữ BERT riêng cho tiếng Việt với kết quả tốt nhất cho nhiều bài toán xử lý ngôn ngữ tự
nhiên tiếng Việt. Với sự phát triển của các trang mạng xã hội và các trang đánh giá sản
phẩm, dữ liệu bình luận khen chê của khách hàng đang gia tăng một cách nhanh chóng tạo
thành kho dữ liệu đánh giá khổng lồ. Việc hiểu xem khách hàng đánh giá về một sản phẩm,
dịch vụ hay vấn đề được quan tâm là tích cực hay tiêu cực là nhiệm vụ được các nhà nghiên
cứu quan tâm trong những thập niên gần đây và đã có nhiều ứng dụng trong thực tế. Chính
vì những lý do đó, em chọn đề tài “ Tìm hiểu mô hình PhoBert cho bài toán phân loại quan
5
điểm bình luận Tiếng Việt ”nhằm tìm hiểu các phương pháp mới biểu diễn cho ngôn ngữ
tiếng Việt và áp dụng nó cho bài toán phân loại bình luận tiếng Việt. Đồ án thiết kế gồm 3
chương: Chương 1 Mô hình BERT trình bày về mô hình BERT và các khái niệm liên quan,
chương 2: Mô hình PhoBERT trình bày về các tìm hiểu cho mô hình PhoBERT, Chương
3: Ứng dụng PhoBERT cho bài toán phân loại bình luận tiếng Việt trong đó trình bày về
bài toán, công cụ sử dụng và các cài đặt thử nghiệm, cuối cùng là phần kết luận.
6
DANH MỤC CÁC HÌNH VẼ VÀ CÁC BẢNG
Hình 1. Sơ đồ kiến trúc transformer kết hợp với attention
Hình 2. Sơ đồ vị trí áp dụng self-attention trong kiến trúc transformer
Hình 3. Sơ đồ attension tương tác giữa các véc tơ embedding của encoder và decoder
Hình 4. Toàn bộ tiến trình pre-training và fine-tuning của BERT
Hình 5. Sơ đồ kiến trúc BERT cho nhiệm vụ ngôn ngữ mô hình được đánh dấu
Hình 6. Các bước tạo Input trong tác vụ NSP
Hình 7. Mô hình đầu ra của NSP
Hình 8. Kiến trúc gồm nhiều layers tại encoder của model BERT
Hình 9. Sơ đồ phân tích cảm xúc
Bảng 1. Thống kê các bộ dữ liệu tác vụ xuôi dòng
Bảng 2. Điểm hiệu suất (tính bằng %) trên bộ kiểm tra gắn thẻ POS và phân tích cú pháp
phụ thuộc
Bảng 3. Điểm hiệu suất (tính bằng %) trong bộ bài kiểm tra NER và NLI
Bảng 4. Hiệu suất với các kích thước lô khác nhau của các mô hình
Bảng 5. Hiệu suất trên GLUE BenchMARK
7
BẢNG CÁC TỪ VIẾT TẮT
Viết tắt Đầy đủ Ý nghĩa
BERT Bidirectional Encoder Mô hình ngôn ngữ
Representations from Transformers
NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên
NSP Next Sentence Prediction Dữ báo câu tiếp theo
NER Name Entity Recognition Nhận diện thực thể trong
câu
NLI Natural Languague Inference Suy luận ngôn ngữ tự
nhiên
SQuAD Stanford Question Answering Tác vụ hỏi đáp
Dataset
SOTA State-Of-Art Hiện đại nhất
GLUE General Language Understanding Điểm khái quát đánh giá
Evaluation mức độ hiểu ngôn ngữ
MLM Masked Language Model Mô hình ngôn ngữ
Masked
RNN Recurrent Neural Network Mạng neural hồi quy
ELMo Embeddings from Language Nhúng từ Mô hình
Model Ngôn ngữ
8
CHƯƠNG 1. MÔ HÌNH BERT
1.1. Khái niệm
BERT ( Bidirectional Encoder Representations from Transformers ) là một mô hình
ngôn ngữ ( Language Model ) được tạo ra bởi Google AI và được giới thiệu vào năm 2008.
BERT được coi như là đột phá lớn trong Machine Learning bởi vì khả năng ứng dụng của
nó vào nhiều bài toán NLP ( Natural Language Processing ) khác nhau: Question
Answering, Natural Language Inference,... với kết quả rất tốt.
Các nhà nghiên cứu làm việc tại Google AI tái khẳng định, sự thiếu hụt dữ liệu huấn
luyện là một trong những thách thức lớn nhất trong lĩnh vực xử lý ngôn ngữ tự nhiên. Đây
là một lĩnh vực rộng lớn và đa dạng với nhiều nhiệm vụ riêng biệt, hầu hết các tập dữ liệu
đều chỉ đặc thù cho từng nhiệm vụ. Để thực hiện được tốt những nhiệm vụ này ta cần những
bộ dữ liệu lớn chứa hàng triệu thậm chí hàng tỷ ví dụ mẫu. Tuy nhiên, trong thực tế hầu
hết các tập dữ liệu hiện giờ chỉ chứa vài nghìn hoặc vài trăm nghìn mẫu được đánh nhãn
bằng tay bởi con người ( các chuyên gia ngôn ngữ học ). Sự thiếu hụt dữ liệu có nhãn chất
lượng cao để huấn luyện mô hình gây cản trở lớn cho sự phát triển của NLP nói chung.
Để giải quyết thách thức này, các mô hình xử lý ngôn ngữ tự nhiên sử dụng một cơ
chế tiền xử lý dữ liệu huấn luyện bằng việc transfer từ một mô hình chung được huấn luyện
từ một lượng lớn các dữ liệu không được gán nhãn. Ví dụ một số mô hình đã được nghiên
cứu trước đây để thực hiện nhiệm vụ này như Word2vec, Glove hay FastText.
Việc nghiên cứu các mô hình này sẽ giúp thu hẹp khoảng cách giữa các tập dữ liệu
chuyên biệt cho huấn luyện bằng việc xây dựng mô hình tìm ra đại diện chung của ngôn
ngữ sử dụng một số lượng lớn các văn bản chưa được gán nhãn lấy từ các trang web.
Các mô hình được huấn luyện trước khi được tinh chỉnh lại trên các nhiệm vụ khác
nhau với các bộ dữ liệu nhỏ như Question Answering, Sentiment Analysis,...sẽ dẫn đến sự
cải thiện đáng kể về độ chính xác cho so với các mô hình được huấn luyện trước với các
bộ dữ liệu này.
Tuy nhiên, các mô hình kể trên có những yếu điểm riêng của nó, đặc biệt là không thể
hiện được sự đại diện theo ngữ cảnh cụ thể của từ trong từng lĩnh vực hay văn cảnh cụ thể.
9
Tiếp nối sự thành công nhất định của các mô hình trước đó, Google đã công bố thêm
1 kỹ thuật mới được gọi là Bidirectional Encoder Representations from Transformers (
BERT ).
1.2. Tại sao lại cần BERT
Một trong những thách thức lớn nhất của NLP là vấn đề dữ liệu. Trên internet có hàng
tá dữ liệu, nhưng những dữ liệu đó không đồng nhất; mỗi phần của nó chỉ được dùng cho
một mục đích riêng biệt, do đó khi giải quyết một bài toán cụ thể, ta cần trích ra một bộ dữ
liệu thích hợp cho bài toán của mình, và kết quả là ta chỉ có một lượng rất ít dữ liệu.
Ví dụ : Trong OpenAI GPT, các tác giả sử dụng đã kiến trúc left-to-right, nghĩa là các
từ chỉ phụ thuộc vào các từ ở trước đó.
Nhưng có một nghịch lý là các mô hình Deep Learning cần lượng dữ liệu rất lớn - lên
tới hàng triệu - để có thể cho ra kết quả tốt. Do đó một vấn đề được đặt ra: làm thế nào để
tận dụng được nguồn dữ liệu vô cùng lớn có sẵn để giải quyết bài toán của mình. Đó là tiền
đề cho một kỹ thuật mới ra đời: Transfer Learning. Với Transfer Learning, các mô hình
(model) "chung" nhất với tập dữ liệu khổng lồ trên internet ( pre-training ) được xây dựng
và có thể được "tinh chỉnh" ( fine-tune ) cho các bài toán cụ thể.
Nhờ có kỹ thuật này mà kết quả cho các bài toán được cải thiện rõ rệt, không chỉ trong
xử lý ngôn ngữ tự nhiên mà còn trong các lĩnh vực khác như Computer Vision,... BERT là
một trong những đại diện ưu tú nhất trong Transfer Learning cho xử lý ngôn ngữ tự nhiên,
nó gây tiếng vang lớn không chỉ bởi kết quả mang lại trong nhiều bài toán khác nhau, mà
còn bởi vì nó hoàn toàn miễn phí, tất cả chúng ta đều có thể sử dụng BERT cho bài toán
của mình.
1.3. Một số khái niệm
1.3.1. Nhiệm vụ phía sau (Downstream task)
Là những nhiệm vụ học hỏi được giám sát được cải thiện dựa trên những mô hình được
huấn luyện trước.
Ví dụ: Chúng ta sử dụng lại các biểu diễn từ học được từ những mô hình được huấn
luyện trước trên bộ văn bản lớn vào một nhiệm vụ phân tích cảm xúc huấn luyện trên bộ
văn bản có kích thước nhỏ hơn. Áp dụng nhúng huấn luyện trước ( pretrain-embedding )
10
đã giúp cải thiện mô hình. Như vậy nhiệm vụ sử dụng nhúng huấn luyện trước được gọi là
nhiệm vụ sau.
1.3.2. Điểm khái quát đánh giá mức độ hiểu ngôn ngữ (GLUE score benchmark)
GLUE score benchmark là một tập hợp các chỉ số được xây dựng để đánh giá khái
quát mức độ hiểu ngôn ngữ của các mô hình NLP.
Các đánh giá được thực hiện trên các bộ dữ liệu tiêu chuẩn được qui định tại các
convention về phát triển và thúc đẩy NLP. Mỗi bộ dữ liệu tương ứng với một loại tác NLP
vụ như:
• Phân tích tình cảm (Sentiment Analysis)
• Hỏi đáp (Question and Answering)
• Suy luận ngôn ngữ tự nhiên (NLI - Natural Languague Inference)
• Dự báo câu tiếp theo (NSP - Next Sentence Prediction)
• Nhận diện thực thể trong câu (NER - Name Entity Recognition)
1.3.3. Phân tích cảm xúc (Sentiment Analysis)
Phân loại cảm xúc văn bản thành 2 nhãn tích cực (positive) và tiêu cực (negative).
Thường được sử dụng trong các hệ thống đánh giá bình luận của người dùng.
1.3.4. Hỏi đáp (Question and Answering)
Là thuật toán hỏi và đáp. Đầu vào là một cặp câu (pair sequence) bao gồm: câu hỏi
(question) có chức năng hỏi và đoạn văn bản (paragraph) chứa thông tin trả lời cho câu hỏi.
Một bộ dữ liệu chuẩn nằm trong GLUE dataset được sử dụng để đánh giá nhiệm vụ hỏi và
đáp là SQuAD - Stanford Question Answering Dataset.
1.3.5. Suy luận ngôn ngữ (Natural Language Inference)
Là các nhiệm vụ suy luận ngôn ngữ đánh giá mối quan hệ giữa các cặp câu, cũng tương
tự như Textual Entailment.
1.3.6. Quan hệ văn bản (Textual Entailment)
Là nhiệm vụ đánh giá mối quan hệ định hướng giữa 2 văn bản. Nhãn đầu ra của các
cặp câu được chia thành đối lập (contradiction), trung lập (neutral) hay có quan hệ đi kèm
(textual entailment).
Ví dụ, chúng ta có các câu:
11
• A: Hôm nay trời mưa.
• B: Tôi mang ô tới trường.
• C: Hôm nay trời không mưa.
• D: Hôm nay là thứ 3.
Khi đó (A, B) có mối quan hệ đi kèm. Các cặp câu (A, C) có mối quan hệ đối lập và
(A, D) là trung lập.
1.3.7. Ngữ cảnh (Contextual)
Là ngữ cảnh của từ. Một từ được định nghĩa bởi một cách phát âm nhưng khi được đặt
trong những câu khác nhau thì có thể mang ngữ nghĩa khác nhau. ngữ cảnh có thể coi là
môi trường xung quanh từ để góp phần định nghĩa từ.
Ví dụ:
- Câu A: Tôi đồng ý với ý kiến của anh.
- Câu B: Lão Hạc phải kiếm từng đồng để nuôi cậu Vàng.
Thì từ “ đồng ” trong câu A và B có ý nghĩa khác nhau. Chúng ta biết điều này vì dựa
vào ngữ cảnh của từ.
1.3.8. Phương pháp Hiện đại nhất (SOTA)
Viết tắt của state-of-art là những phương pháp, kỹ thuật tốt nhất mang lại hiệu quả cao
nhất từ trước đến nay.
Mô hình biểu diễn mã hóa 2 chiều dựa trên biến đổi (BERT-Bidirectional Encoder
Representation from Transformer)
Mô hình BERT. Đây là lớp mô hình SOTA trong nhiều nhiệm vụ của GLUE score
benchmark.
1.3.9. Mô hình LTR
Là mô hình học bối cảnh theo một chiều duy nhất từ trái sang phải. Chẳng hạn như lớp
các model RNN.
1.3.10. Mô hình ngôn ngữ được đánh dấu MLM (Masked Language Model)
Là mô hình mà bối cảnh của từ được học từ cả 2 phía bên trái và bên phải cùng một
lúc từ những bộ dữ liệu không có giám sát.
12
Dữ liệu vào sẽ được đánh dấu (tức thay bằng một mã đánh dấu (token MASK)) một
cách ngẫu nhiên với tỷ lệ thấp. Huấn luyện mô hình dự báo từ mã được đánh dấu dựa trên
bối cảnh xung quanh là những từ không được đánh dấu nhằm tìm ra biểu diễn của từ.
1.4. Ngữ cảnh (Contextual) và vai trò trong NLP
Bản chất của ngôn ngữ là âm thanh được phát ra để diễn giải dòng suy nghĩ của con
người. Trong giao tiếp, các từ thường không đứng độc lập mà chúng sẽ đi kèm với các từ
khác để liên kết mạch lạc thành một câu. Hiệu quả biểu thị nội dung và truyền đạt ý nghĩa
sẽ lớn hơn so với từng từ đứng độc lập.
Ngữ cảnh trong câu có một sự ảnh hưởng rất lớn trong việc giải thích ý nghĩa của từ.
Dựa trên đó, các thuật toán xử lý ngôn ngữ tự nhiên tốt nhất đều cố gắng đưa ngữ cảnh vào
mô hình nhằm tạo ra sự đột phá và cải tiến. Trong đó mô hình BERT cũng sử dụng tiếp
cận này.
Phân cấp mức độ phát triển của các phương pháp nhúng từ trong NLP có thể bao gồm
các nhóm:
• Không bối cảnh (Non-context) Là các thuật toán không tồn tại bối cảnh trong biểu
diễn từ. Đó là các thuật như “ WORD2VEC, GLOVE, FASTTEXT ”. Chúng ta chỉ
có duy nhất một biểu diễn véc tơ cho mỗi một từ mà không thay đổi theo bối cảnh.
Ví dụ :
- Câu A : Đơn vị tiền tệ của Việt Nam là “ đồng ”.
- Câu B : Vợ “ đồng ” ý với ý kiến của chồng là tăng thêm mỗi tháng 500k
tiền tiêu vặt
Thì từ đồng sẽ mang 2 ý nghĩa khác nhau nên phải có hai biểu diễn từ riêng biệt. Các
thuật toán không có bối cảnh đã không đáp ứng được sự đa dạng về ngữ nghĩa của từ trong
NLP.
• Một chiều (Uni-directional): Là các thuật toán đã bắt đầu xuất hiện bối cảnh của
từ. Các phương pháp nhúng từ dựa trên RNN là những phương pháp nhúng từ một
chiều. Các kết quả biểu diễn từ đã có bối cảnh nhưng chỉ được giải thích bởi một
chiều từ trái qua phải hoặc từ phải qua trái.
Ví dụ:
13
- Câu C: Hôm nay tôi mang 200 tỷ “ gửi ” ở ngân hàng.
- Câu D: Hôm nay tôi mang 200 tỷ “ gửi ” ….
Như vậy véc tơ biểu diễn của từ gửi được xác định thông qua các từ liền trước với nó.
Nếu chỉ dựa vào các từ liền trước “ Hôm nay tôi mang 200 tỷ ” thì ta có thể nghĩ từ phù
hợp ở vị trí hiện tại là cho vay, mua, thanh toán,....
Ví dụ đơn giản trên đã cho thấy các thuật toán biểu diễn từ có bối cảnh tuân theo theo
một chiều sẽ gặp hạn chế lớn trong biểu diễn từ hơn so với biểu diễn 2 chiều.
ELMo là một ví dụ cho phương pháp một chiều. Mặc dù phương pháp ELMO có kiến
trúc dựa trên một mạng BiLSTM xem xét bối cảnh theo hai chiều từ trái sang phải và từ
phải sang trái nhưng những chiều này là độc lập nhau nên ta coi như đó là biểu diễn một
chiều. Thuật toán ELMO đã cải tiến hơn so với WORD2VEC và FASTTEXT đó là tạo ra
nghĩa của từ theo bối cảnh. Trong ví dụ về từ “đồng” thì ở mỗi câu A và B chúng ta sẽ có
một biểu diễn từ khác biệt.
• Hai chiều (Bi-directional): Ngữ nghĩa của một từ không chỉ được biểu diễn bởi
những từ liền trước mà còn được giải thích bởi toàn bộ các từ xung quanh. Luồng
giải thích tuân theo đồng thời từ trái qua phải và từ phải qua trái cùng một lúc. Đại
diện cho các phép biểu diễn từ này là những mô hình sử dụng kỹ thuật transformer.
Gần đây, những thuật toán NLP theo trường phái hai chiều như BERT, ULMT,
OpenAI GPT đã đạt được những kết quả SOTA trên hầu hết các nhiệm vụ
của GLUE benchmark.
1.5. Tiếp cận nông và học sâu trong ứng dụng huấn luyện trước (pre-training) trong
NLP
1.5.1. Tiếp cận nông (shallow approach)
- Imagenet trong Computer Vision
Trong xử lý ảnh, chúng ta đều biết tới những mô hình được huấn luyện trước
(pretrained models) nổi tiếng trên bộ dữ liệu Imagenet với 1000 classes. Nhờ số lượng
classes lớn nên hầu hết các nhãn trong phân loại ảnh thông thường đều xuất hiện trong
Imagenet và chúng ta có thể học chuyển giao lại các nhiệm vụ xử lý ảnh rất nhanh và tiện
lợi. Chúng ta cũng kỳ vọng NLP có một tợp hợp các mô hình được huấn luyện trước như
14