Mãi đến gần 14 năm sau, với sự phát triển của khả năng tính toán, sự xuất hiệncủa các mô hình xác suất thống kê và các thuật toàn Machine learning, Xử lý ngôn ngữ tự nhiên đã quay trở lạ
Trang 1BAO CAO KHOA LUAN
TOT NGHIEP
Tên đề tai: HE THONG ĐÁNH GIA VA GOI Ý SAN
PHAM DỰA TREN BÌNH LUẬN SU DUNG BERT
(SENTIMENT ANALYSIS OF E-COMMERCE
PRODUCT REVIEWS USING BERT)
Giảng viên hướng dẫn: ThS Hồ Trần Nhat Thủy
Trang 2LOI CAM ON
Quá trình thực hiện khóa luận tốt nghiệp là giai đoạn quan trọng nhất trong quãngđời mỗi sinh viên Khóa luận tốt nghiệp là tiền để nhằm trang bị cho chúng em những
kỹ năng nghiên cứu, những kiến thức quý báu trước khi lập nghiệp
Trước hết, chúng em xin trân trọng cảm ơn Cô Hồ Trần Nhật Thủy đã tận tìnhgiúp đỡ, định hướng các tư duy và cách làm việc khoa học Đó là những góp ý hết sức
quý báu dành cho chúng em.
Ngoài ra, chúng em xin chân thành cảm ơn quý Thay, Cô đang giảng day và côngtác tại khoa Hệ thống thông tin, Trường Đại học Công nghệ Thông tin đã tận tình chỉdạy và trang bị cho chúng em những kiến thức cần thiết trong suốt thời gian ngồi trênghế giảng đường, làm nén tang để chúng em có thể hoàn thành được bài khóa luận này
Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người và xin chânthành cảm ơn!
TP Hồ Chí Minh, ngày 16 tháng 05 năm 2021
Nguyễn Lan Anh - Trần Văn Trường
Trang 3MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU TONG QUAN -555ccccvvvvvveerrrrrrrrrrrrrrree 4
LD BO na ố ẻ 41.2 Lịch sử phát triển Xử lý ngôn ngữ tự nhiên
I0 0o ẽn ẽ.ẽ 61.3.1 Phân tích cảm xúc từ ý kiến người dùng
1.3.2 Ứng dụng của bài toán phân tích cảm xúc -+c-++ 6
1.3.3 Thách thức của bài toán phân tích cảm xúc
1.4 Mục tiêu khóa luận -¿- ¿+22 c3 21323121 5E15551 51512151111 EETrrkrrrrree 8
1.5 Bố cục khóa luận
CHƯƠNG 2 CÁC NGHIÊN CỨU LIÊN QUAN VÀ PHƯƠNG PHÁP DE XUẤT
20 2.1 Các mức độ phân tích cảm xúc
2.2 Các nghiên cứu liên quan đến bài toán ¿¿2+z++22+++cvvszvesrrxee 20
CHƯƠNG 3 CƠ SỞ LÝ THUYẾT -: t:tt!+2ttttrrtttriiiirrrrree 24
3.1.1 Khái niệm - + St tt 2tr tr rerrrrrrrrdee 24
3.2 Biểu diễn dưới dạng Véc-tơ (Word Embedding) -:: c:z+ccss+ 25
3.2.1 Khái niệm và mục đÍích - -¿- ¿2+2 St x St *+k*EE+EEeEevketErkrrkeseserrersrrrree 25
3.2.2 Biểu diễn với Túi từ (Bag of Words) -2cccc2c2vccccccvvvrrrrrrrrrrrrr 25
3.2.3 One-hot encoding -¿- +: +52 3932221212122 2121211.11121.1 re 26 3.2.4 TF-IDF (Term Frequency — Inverse Document Erequency) - 27
Trang 43.2.5 Biểu diễn với N-grams 5c: 22v tt x21 1 28
3.2.8 Word embeddings [23] - ¿E651 E122 E12 1212121 1 tr rườn 36 3.2.9 BERT word embedding - ¿- - + 5S E22 EEEEEEEskekrrkrrrrerrke 373.3 Các phương pháp phân lớp truyền thống 2¿©22+¿z222v+zz+scrxee 42
3.3.2 Hoi quy Logistic (Logistic Regression) [26] - 2 +5+55+<+s<++ 49
3.4 Mô hình học sâu: BERT [23] - - ¿+22 +22 +2 *EcEEeE+xerrrrterrserrrrrrrrrrxer 53 3.4.1 Sự ra đời của BEIT - c1 St t1 23 E12 111 1511 1 111111111111 111 E1 xrke 53 3.4.2 Sự khác biệt của BERT so với các phương pháp trước - 54
3.4.3 Giới thiệu 3212:1075 54
3.4.5 Input Repr€s€nn{atiOI - - + tk ST HT HH rên 57 3.4.6 Pre-training 'Tia§ks - -s¿ c 21 St H222 01121110 2 ren 58
3.4.8 Fine-tuning_PTOC€dUTe - - + +2 + S + 2k2 221111 11 ke tre 61
3.5 Các độ đo đánh giá - ¿+ tk TT 101110 1011100 go rên 62 3.5.1 Độ chính xác (ACCUTACY) ¿c1 1S 1H91 HH 62 3.5.2 PPreCiSIOI - TS HH2 00102 12 H001 T1 ri hờn 62 3.5.3 Recall 63 3.5.4 Fl-Score.
4.1 Ngôn ngữ, công cụ hỗ trợ xây dựng website
Trang 54.1.1 Ngôn ngữ Python - - - ¿+ + S22 EE2E21 2121 1111101 T11 ren 64 4.1.2 Django FTameWOrK -¿- + + St kề TT 1210111111111 1101011 1 0 gi 65 4.1.3 nh ố ố ốố ố ố ố ố ốeố 65 4.1.4 Google COlab cà k1 121111 TH HH1” 21 0H HH HH HH HH ướt 66
4.2 Thiết kế hệ thống -2¿¿©22++22EE+++t2EEEE1222221111222211122211122222111 1211 xe 674.2.1 Sơ đồ Usecase ssssssssssssssssssssssssssssesssesseesesssstissinnnesssssssssssssssseeeeeeeeeseeseeees 674.2.2 Danh sách các seCase sàn 9111121221022 011k 684.2.3 Đặc tả Usecase và Sơ đồ hoạt động (Actitity Diagram) - 69
4.2.4 Sequence Diagram va Class Diagramm - ¿+ + sx‡svxerevserrrree 70
4.3 Thiết kế dữ liệu 222222 vn re 73
4.3.1 Mô hình dữ liệu quan hỆ - - ¿5252 2E S**Ek‡kekeEEEEkEkEkerrrkrkrkee 73
CHƯƠNG 5 THỰC NGHIỆM VA MINH HỌA -cccc-cc+++++z2222t+ 71
5.2 Các tập dữ liỆu 5: tt 5 2 1 HH HH HH H00 00011011001 1 1kg 77
5.3 Tiền xử lý đữ liệu ¿-522222¿-2222E2212221122222111122221112201112220111 01 Ceee 79
5.4 Xây dựng mô hình học sâu phân tích cảm XÚC - - - +2 << ++++ 81
5.4.1 Môi trường triển khai -¿ ©222++2VV+++t2EEES++eSEEE+rretEExrrrrrrkrrrrrrr 81
5.5 Két com ẽ.ẻẽ 835.6 Minh họa kết qua sccsscsscsssssssesssssssesssssssessssseecssssuesessssseseessseseesssiesesssseeseessseeeesase 835.6.1 Môi trường triỀn khai -22222222++2222222YE2+rtrtEEEEEvrrrrrrtrrrrrrrrrree 835.6.2 Kết quả đạt được
CHƯƠNG 6 KET LUẬN VÀ HƯỚNG PHÁT TRIẺN -cc+¿ 896.1 Kết quả
Trang 66.2 Khó khăn -¿- ¿52 52St22E2 2 122187122121211.T1 1.111 erree 89
Trang 7DANH MỤC HÌNH ẢNH
Hình 2.1 Tổng quát các bước thực hiện trong khóa luận - -+ 23
31 32 29
Hình 3.1 Biểu diễn từ "yêu" bằng các từ lân cận nó
Hình 3.2 Ma trận đồng xuất hiện
Hình 3.3 Ví dụ về mô hình N-grams
Hình 3.4 Kiến trúc mạng no-ron 33Hình 3.5 Ví dụ về Word2vec :::cccctt tre 33
Hình 3.8 Tìm đường thang dé phân chia các bộ điểm xanh và đỏ
Hình 3.9 Việc ánh xa tập data từ không gian 2 chiều sang không gian 3 chiéu 43Hình 3.10 Nhiều các đường thẳng dé phân chia 2 bộ điểm xanh, đỏ 43
Hình 3.13 Nguyên tắc xác định Hyperplan, trường hợp chọn đường thang B 47Hình 3.14 Nguyên tắc xác định Hyperplan, trường hợp chọn đường thẳng C 48Hình 3.15 Tìm siêu phẳng có margin lớn nhất -¿ 2czz+222vvscccc+2 48Hình 3.16 Xử lý mặt phẳng phi tuyến tính và không thé tách rời 49Hình 3.17 Vi dụ bài toán phân loại 2 lớp (Binary Classification) ‹ ‹ + 50 Hình 3.18 Hàm SigmOid - ¿- - - ¿5< SE SE 1E E11 111141111101 1 11010101 1u 51 Hình 3.19 Quy trình học từ dữ liệu ¿- + 5S St +t#vEvEvkerrkstskerkrrrerrrree 52 Hình 3.20 Sự so sánh giữa BERT, OpenAI GPT và ELMo ¿+ s++<<s+ 57 Hình 3.21 Input representatiOH cesses SS*Sk*k2k$ E112 11111 101111111 1 uy 57
Hình 3.22 Kết quả của BERT đạt được trên SQUAD v[ Ì -5 <+ 61Hình 3.23 Kết quả của BERT trên GLUE benchmark -2 ¿2225222 62
Hình 4.1 Logo của ngôn ngữ lập trình Python - 25+ 5555+scsscc>+x+eexsx+ 64 Hình 4.2 Mô hình MVT của framework Django ‹-¿- 5c + St sxskekekererrkekerree 65
Trang 8Hình 4.6 Usecase Quản lý bình luận - ¿+5 t2 ‡vEvEvxerrksteterrrrrrrrree 68
Hình 4.7 Sequence diagram Lấy bình luận từ URL -.cc::¿2vcvccccc+2 71Hình 4.8 Sequence diagram Phân tích sắc thái bình luận - : - 71
Hình 4.9 Sequence diagram Theo dõi giá . ¿-¿-¿- 52 25+ S++++xetererrrkskerrre 72
Hình 4.10 Class diagram tơng quất -22::¿£22222v2+2++tttEEEEEEvrrrrrtrrrrrrrrrree 73Hình 5.1 Tập dữ liệu huấn luyện bởi tổ chức AïVïVN -:ccccccccccveccrrr 71Hình 5.2 Đồ thị tương quan về số lượng bình luận tích cực và tiêu cực 78Hình 5.3 Dé thị thé hiện đồ dài bình luận trong bộ dữ liệu -: 79Hình 5.4 Các bước tiền xử lý dữ liệu :¿-2222222ccettcEEEErvrrrrrrrrrrrrrrrree 81Hình 5.5 Màn hình nhập URL sản phẩm và hiển thị các sản phẩm đã cĩ review 84Hình 5.6 Màn hình hiền thị chỉ tiết các review của sản phẩm . - - 85Hình 5.7 Màn hình hiền thị kết quả phân tích sắc thái bình luận - 87Hình 5.8 Màn hình thêm sản phẩm để theo dõi giá -cccc:c+222cvcvcccccee 87Hình 5.9 Kết quả cập nhật giá sau mỗi giờ . - -: +2v2z+222vvz+ttcvvsrrrrrx 87Hình 5.10 Màn hình hiền thị danh sách các sản phẩm dang theo dõi giá 88
Hình 5.11 Màn hình gửi email thơng báo cĩ giảm giá - - +5 s+++cex+xsxe 88
Trang 10ĐÈ CƯƠNG CHI TIẾT
TEN ĐÈ TÀI: HE THONG ĐÁNH GIÁ VÀ GỢI Ý SAN PHAM DUA TREN BÌNHLUẬN SỬ DỤNG BERT
SENTIMENT ANALYSIS OF E-COMMERCE PRODUCT REVIEWS USING BERTCán bộ hướng dẫn: ThS Hồ Trần Nhật Thủy
Thời gian thực hiện: Từ ngày 1/3/2021 đến ngày 14/6/2021
Sinh viên thực hiện:
Nguyễn Lan Anh - 17520241
Trần Văn Trường - 17521190
Nội dung đề tài: Xây dựng một hệ thống khuyến nghị sản phẩm giúp người dùng lựa chọnđược nơi mua sản phẩm tốt nhất Đồng thời, hệ thống có chức năng phân tích các bìnhluận của khách hàng, giúp người bán cải thiện sản phẩm và dich vụ Hệ thống thu thập dữliệu bình luận về sản phẩm, sau đó áp dụng các thuật toán máy học đề phân tích Từ đóđưa ra các khuyến nghị cho cả người mua và người bán
1 Mục tiêu:
- Tìm hiểu và nghiên cứu các thuật toán phân loại văn bản, công nghệ xây dựng website
- Xây dựng và huấn luyện các mô hình học sâu, từ đó có thể phân tích điểm mạnh và yếucủa từng mô hình đối với bài toán nói riêng và các phương pháp tiếp cận khác nói chung
- Xây dựng hệ thông khuyến nghị gợi ý sản phẩm, theo dõi sự biến động của giá cả cho
người dùng.
2 Phạm vi đề tài:
- Tìm hiểu các phương pháp phân loại văn bản
- Tìm hiểu và áp dụng BERT đề xây dựng mô hình phân tích sắc thái bình luận
- Xây dựng hệ thống thử nghiệm có các chức năng:
+ Đăng ký và đăng nhập.
+ Tìm kiếm sản phẩm
Trang 11+ Gợi ý sản phẩm có độ tin cậy cao, nhận được nhiều bình luận tích cực từ các khách hàng
đã mua.
+ Sắp xếp và hiền thị thông tin sản pham theo giá cả và độ tin cậy
+ Theo dõi giá cả sản phẩm
3 Đối tượng nghiên cứu:
- Dữ liệu đánh giá của khách hàng về các sản phẩm trên các trang thương mại điện tử:
Shopee, Tiki, Lazada.
- Các thuật toán phân loại văn ban.
4 Phương pháp thực hiện:
- Khảo sát các hệ thống khuyến nghị sản pham đã có trên thị trường
- Tìm hiểu, nghiên cứu các phương pháp phân loại văn bản: RNNs, LSTMs, CNNs, BERT,
PhoBERT.
- Thu thập dữ liệu bình luận, đánh giá của khách hàng về sản phẩm trên các trang thương
mại điện tử: Shopee, Tiki, Lazada.
- Xây dựng, so sánh, đánh giá mô hình thu được từ thuật toán.
- Phân tích, thiết kế, xây dựng hệ thống website khuyến nghị sản phẩm
5 Kết quả dự kiến:
- Xây dựng được mô hình phân tích đánh giá bình luận sản phẩm của khách hàng
- Xây dựng hoàn chỉnh hệ thống gợi ý sản phẩm cho hiệu năng cao Hệ thống có khả năng
mở rộng và phát triển phù hợp với nhu cầu người tiêu dùng
Trang 121 Khao sát va phân tích các hệ Nguyễn Lan Anh, 01/03/2021 —
thống khuyến nghị dang có mặt | Tran Văn Trường 07/03/2021
trên thị trường.
2 Tim hiểu và nghiên cứu các thuật | Nguyễn Lan Anh 08/03/2021 —
toán phân loại văn bản: RNNs, 15/03/2021
4 Xây dựng mô hình phân loại sắc | Nguyễn Lan Anh, 24/03/2021 —
thái bình luận Trần Văn Trường 31/03/2021
5 Phân tích, thiết kế các tính năng | Nguyễn Lan Anh 01/04/2021 —
của hệ thông khuyến nghị sản 05/04/2021
phẩm
6 Xây dựng và hoàn chỉnh các tính | Nguyễn Lan Anh, 06/04/2021 —
năng của hệ thống Trần Văn Trường 06/05/2021
7 | Triển khai và chạy thử hệ thống | Nguyễn Lan Anh, 07/05/2021 —
Trần Văn Trường 21/05/2021
§ Hoàn thiện sản phẩm Viết báo Nguyễn Lan Anh, 22/05/2021 —
cáo Trần Văn Trường 14/06/2021
Xác nhận của CBHD TP HCM, ngày 07 tháng 03 năm 2021
(Ký tên và ghi rõ họ tên) Sinh viên 1
(Ký tên và ghi rõ họ tên)
Trang 13ThS Hồ Trần Nhật Thủy Nguyễn Lan Anh
Sinh viên 2
(Ký tên và ghi rõ họ tên)
Trần Văn Trường
Trang 14CHUONG1 GIỚI THIỆU TONG QUAN
1.1 Bối cảnh
Cùng với xu thế phát triển công nghệ trên thế giới, thương mại điện tử ở Việt
Nam đang từng bước hình thành, tăng trưởng mạnh mẽ, và giữ vai trò ngày càng quan
trọng trong phân phối hàng hóa Việt Nam được đánh giá là một trong những thị trườngthương mại điện tử (TMĐT) phát triển nhanh nhất khu vực Đông Nam Á
Sự phát triển của TMĐT đã mở ra thị trường mua sắm online với nhiều mặt hang
đa dạng Đặc biệt, khi dịch Covid-19 bùng phát, thói quen của người tiêu dùng đang có
sự thay đổi rõ rệt, chuyển từ trực tiếp sang trực tuyến Trong một khảo sát gần đây củaNielsen Việt Nam và Infocus Mekong Mobile Panel, 25% số người được hỏi cho biết
đã tăng cường mua sắm online và giảm các hoạt động mua sắm trực tiếp Còn theonghiên cứu của Worldpanel, mua sắm trực tuyến dần chiếm ưu thé va bùng né ấn tượng
Tuy nhiên, mua hàng trực tuyến cũng tiềm ấn rất nhiều rủi ro Mua sắm onlinehạn chế người tiêu dùng trong việc đánh giá sản phẩm Bởi người tiêu dùng chỉ có thénhìn hình ảnh sản phẩm qua thiết bị kết nói mạng — thường tiềm ẩn rủi ro là không giốngvới sản phẩm thật Bên cạnh đó, việc tiếp cận các thông tin về an toàn/ cảnh báo củasản phẩm cũng khó khăn hơn so với hình thức mua sắm truyền thống Ngoài ra, sự xuấthiện của nhiều sàn thương mại điện tử và các dịch vụ mua săm online của các doanhnghiệp, mua bán nhỏ lẻ trên mạng xã hội cũng làm cho người tiêu dùng cảm thấy bốirồi, gặp khó khăn khi lựa chọn sản phẩm Chang hạn, cùng một loại mặt hàng nhưng ởcác cửa hàng online có rất nhiều sự khác biệt về giá cả, mẫu mã, hạn sử dung, dịch vụbảo hành và chăm sóc khách hàng Đề lựa chọn một sản phẩm tốt, người tiêu dùng phảimất nhiều thời gian, công sức tìm hiểu, trải nghiệm, so sánh, đánh giá
Nhận thay được khó khăn ấy, nhóm tác gia lựa chọn xây dựng hệ thống đánh giá
và gợi ý sản phẩm dựa trên bài toán Phân tích cảm xúc từ bình luận của khách hàng
1.2 Lịch sử phát triển Xứ lý ngôn ngữ tự nhiên
Các ý tưởng và nghiên cứu về Xử lý ngôn ngữ tự nhiên đã xuất hiện từ nhữngnăm đầu 1900 Mãi đến năm 1950, Alan Turing đã xuất bản bài báo “Computing
Trang 15Machinery and Intelligence” mô tả “Phép thử Turing”: đặt ra câu hỏi liệu máy tính có
thể đạt được ý thức và có khả năng suy nghĩ huy không qua đó hình thức hóa khái niệm
thuật toán và tính toán với máy [1] Sau đó không lâu, năm 1952, mô hình Hodgkin —
Huxley ra đời đã cho thây cách bộ não sử dụng các tế bào thần kinh trong việc cấu tạomạng lưới điện [2] Những sự kiện này đã giúp truyền cảm hứng cho ý tưởng về Trí tuệnhân tạo (AI), Xử lý ngôn ngữ tự nhiên (NLP) và sự phát triển của máy tính
Từ năm 1957 đến 1966, hàng loạt các nghiên cứu về Xử lý ngôn ngữ tự nhiênđược công bố Cau trúc ngữ pháp Phase — Structure Grammar được tạo ra bởi NoamChomsky cho phép máy tính có thé hiéu được ngôn ngữ tự nhiên (1957)
Năm 1964, một quá trình “đánh chữ” bình luận và phản hồi tự động được thiết
kế bởi ELIZA Năm 1964, ALPAC (Automatic Language Processing AdvisoryCommittee), một Uy ban được Mỹ thành lập dé đánh giá tiến trình nghiên cứu Xử lý
ngôn ngữ tự nhiên Tuy nhiên, năm 1966, NRC và ALPAC đã dừng việc tài trợ vào AI
và NLP vì không ứng dụng được vào sản xuất thực tế (chi phí tao ra bản dịch của máytính đắt hơn con người) Nghiên cứu Trí tuệ nhân tạo và Xử lý ngôn ngữ tự nhiên đã bịnhiều người xem là đi vào ngõ cụt
Mãi đến gần 14 năm sau, với sự phát triển của khả năng tính toán, sự xuất hiệncủa các mô hình xác suất thống kê và các thuật toàn Machine learning, Xử lý ngôn ngữ
tự nhiên đã quay trở lại mạnh mẽ với nhiều nghiên cứu thực tiễn ra đời: N-Grams trởnên cực kì hữu dụng trong việc nhận biết và theo dõi các cụm dữ liệu ngôn ngữ/số; Năm
1997, các mô hình mạng thần kinh tái phát (RNN, LSTM) được giới thiệu và tới năm
2007 đã được công nhận áp dụng đề xử lý giọng nói và văn bản [3]
Ngày nay, Xử lý ngôn ngữ tự nhiên đã trở nên phổ biến trong thực tiễn: các trợ
lý ảo có thé tự động tương tác và phục vụ người dùng như Siri, Alexa; chatbots có théthực hiện những cuộc nói chuyện phức tạp, trợ giúp kinh doanh (Talla, Glowboat); các
ứng dụng dịch thuật, chuyền giọng nói thành văn bản và ngược lại ngày càng hoàn thiện
Với xu hướng và tầm quan trọng của dữ liệu ở thời đại ngày nay, Xử lý ngônngữ tự nhiên là chìa khóa mau chốt dé khai thác tri thức từ những con chữ tưởng chừng
như vô nghĩa.
Trang 161.3 Phát biếu bài toán
1.3.1 Phân tích cảm xúc từ ý kiến người dùng
Phân tích cảm xúc trong ngôn ngữ tự nhiên đề cập đến việc sử dụng các phương
pháp xử lý ngôn ngữ tự nhiên, phân tích văn bản, các phép tính toán trong ngôn ngữ
học, sinh trắc học để xác định, trích xuất, định lượng, nghiên cứu một cách có hệ thống
các trạng thái tình cảm theo ý kiến chủ quan [4] Nói một cách dễ hiểu, phân tích cảm
xúc tức là phân loại cảm xúc (tích cực, tiêu cực, trung tính) của một câu hay đoạn văn
ta thường thấy hằng ngày Phân tích cảm xúc được ứng dụng nhiều trong việc phân tíchcảm xúc, ý kiến của người dùng, khách hàng để mang lại thông tin quý giá hỗ trợ trongkinh doanh.
Có những bài toán mở rộng hơn từ bài toán phân tích cảm xúc người dùng ban
đầu như xác định rõ trạng thái cảm xúc của người dùng (vui, buồn, giận dữ, ), phát
hiện mục tiêu/ nguồn gốc của cảm xúc Tuy nhiên, trong khóa luận này chi dé cập đến
bài toán phân tích cảm xúc người dùng cơ bản, là xác định mức độ tích cực, tiêu cực từ
các ý kiến phản hồi của người dùng.Có những bài toán mở rộng hơn từ bài toán phântích cảm xúc người đùng ban đầu như xác định rõ trạng thái cảm xúc của người dùng(vui, buồn, giận dữ, ), phát hiện mục tiêu/ nguồn gốc của cảm xúc Tuy nhiên, trongkhóa luận này chỉ đề cập đến bài toán phân tích cảm xúc người dùng cơ bản, là xác địnhmức độ tích cực, tiêu cực từ các ý kiến phản hồi của người dùng
1.3.2 Ung dụng cúa bài toán phân tích cảm xúc
Thương mại điện tử ra đời, đem lại nhiều lợi ích cho con người Khách hàng cóthé lựa chọn da dạng các sản phẩm mà không cần phải đến tận nơi, tiết kiệm tiền bạc,
thời gian và công sức Tuy nhiên, sự tiện lợi cũng đi kèm với những rủi ro Hàng giả,
hàng nhái, kém chất lượng tràn lan, rất khó kiểm duyệt trên sàn thương mại điện tử Vìthế, không ít khách hàng e ngại, do dự hay từ chối việc mua hàng online Do đó, những
hệ thống gợi ý sản phẩm uy tín dựa trên việc phân tích cảm xúc bình luận của ngườidùng vô cùng quan trọng.
Trong thực tế, khách hàng luôn thích được lắng nghe và chính bài toán phân tíchcảm xúc là chìa khóa của một thương hiệu dé thấu hiểu khách hàng của họ Tiếp nhận
phản hồi, ý kiến của người dùng đối với sản phẩm hay dịch vụ, hiểu được tâm tư của
Trang 17khách hàng là điều cần thiết đối với một doanh nghiệp, thương hiệu Thông qua nhữngcảm xúc, phản hồi từ người dùng, doanh nghiệp có thể nắm bắt được chất lượng làmviệc của dịch vụ chăm sóc khách hàng, chất lượng các tính năng của sản phẩm Từ đó,giúp cho việc cải tiến trở nên hiệu quả, chính xác hơn.
Theo báo cáo thống kê từ trang vnetwork.vn, hiện đang có tới 68,17 triệu người
đang sử dụng dịch vụ Internet tại Việt nam tinh tới thang 1 năm 2020 (tăng hơn 10% so
với 2019), chiếm 70% dân sé Việt Nam Vì thế riêng với nước ta, vẫn đang hiện diện
một nguồn dữ liệu người dùng khổng 16 chưa được khai thác trên Internet, đặc biệt là
các mạng xã hội hàng triệu người dùng, các sàn thương mại điện tử Chính nguồn dữliệu đổi dào và da dạng này là nguyên liệu, đồng thời cũng là cơ hội mạnh mẽ dé cácbài toán khai thác dữ liệu bứt phá.
Phân tích cảm xúc cũng không ngoại lệ, nhờ vào “ngôn ngữ tự nhiên”, những
nguyên liệu khổng lồ có sẵn trên Internet, việc thực hành và khả năng áp dụng vào thực
tế là hoàn toàn khả thi Bên cạnh đó, công dụng của bài toán cũng trở nên đa dạng
Ngoài những ứng dụng thực tiễn đã nêu trên, phân tích cảm xúc còn được sử dụng rộng
rãi trong việc nghiên cứu thị trường (nghiên cứu đối thủ); giám sát truyền thông, mạng
xã hội (cập nhập những xu hướng mới nhất; theo dõi nội dung quan tâm/ được tạo bởingười dùng mạng xã hội; khám phá những yếu t6 ảnh hưởng đến một thương hiệu; nângcao chất lượng quản lý rủi ro
Như vậy, đối với một thị trường xã hội còn mới mẻ và đang bắt đầu du nhậpnhững công nghệ Trí tuệ nhân tạo/ Khai thác dữ liệu cộng với nguồn dữ liệu dồi dàovẫn chưa được sử dụng và khai thác một cách triệt để chính là sân choi dé các bài toánMáy học/Học sâu, đặc biệt là Phân tích cảm xúc trong ngôn ngữ tự nhiên có thể tỏa
sáng.
1.3.3 Thách thức của bài toán phân tích cảm xúc
Dé phân tích cảm xúc trong ngôn ngữ tự nhiên hoàn thiện, máy tính phải hiểuđược câu trúc, ngữ nghĩa và ý định, mục đích chính xác của câu nói Điều này gây ranhiều sự khó khăn như:
- _ Nhận diện được đối tượng người dùng đang nhắc đến trong nhiều thực thé xuất
hiện trong một câu đề làm rõ ý định của người dùng
Trang 18- Nhận diện được các danh từ, cụm danh từ được sử dụng để đề cập đến một đối
tượng đã xuất hiện.
- Phân tích cú pháp của câu: nhận diện chủ ngữ va đối tượng của câu Nhận diện
động từ, tính từ, trạng từ đang đề cập, nhắn mạnh đến đối tượng nào trong câu
- Riêng ở Việt Nam, ta có nhiều từ long, thơ ca, thành ngữ, tục ngữ và nhiều cách
nói mỉa mai, châm biếm nên ý nghĩa, cảm xúc thật sự của câu nói có thể bị chegiấu
1.4 Mục tiêu khóa luận
Trước khi bắt đầu thực hiện, khóa luận này đặt ra những mục tiêu như sau:
- Tìm hiểu và nghiên cứu các thuật toán phân loại văn ban, công nghệ xây dựng
website.
- Xây dựng và huấn luyện các mô hình học sâu, từ đó có thể phân tích điểm mạnh
và yếu của từng mô hình đối với bài toán nói riêng và các phương pháp tiếp cậnkhác nói chung.
- _ Xây dựng hệ thống khuyến nghị gợi ý sản phẩm, theo dõi sự biến động của giá
cả cho người dùng.
1.5 Bố cục khóa luận
Với những mục tiêu đề ra, khóa luận sẽ bao gồm 6 chương được trình bày như sau:
Chương 1 Giới thiệu tổng quan về bối cảnh, lịch sử của Xử lý ngôn ngữ tựnhiên và phát biểu bài toán Phân tích cảm xúc bình luận (ứng dụng, thách thức).Chương 2 Giới thiệu chỉ tiết về bài toán Phân tích cảm xúc bình luận, nhữngcông trình nghiên cứu liên quan và đề xuất các phương pháp khóa luận sẽ thực
hiện.
Chương 3 Trình bày các kiến thức nền tảng về xử lý ngôn ngữ tự nhiên, kỹthuật học máy, các mô hình học sâu và độ đo kiểm định phục vụ cho bài toán.Chương 4 Mô tả quá trình phân tích thiết kế hệ thống, thiết kế dữ liệu cho hệthống website
Trang 19Chương 5 Mô tả quá trình thực hành, các bước thu thập, tiền xử lý dữ liệu, xâydựng mô hình, huấn luyện và đánh giá kết quá rồi từ đó rút ra kết luận Ứng dụng
mô hình có kết quả cao nhất vào hệ thống đánh giá và gợi ý sản phẩm
Chương 6 Phân tích, đánh giá và thảo luận các kết quả đạt được cùng với cáchướng phát triển trong tương lai
Trang 20CHƯƠNG2 CAC NGHIÊN CỨU LIEN QUAN VÀ
PHƯƠNG PHÁP ĐÈ XUẤT
2.1 Các mức độ phân tích cảm xúc
Bài toán Phân tích cảm xúc trong ngôn ngữ tự nhiên thuộc dạng bài toán phân tích
ngữ nghĩa văn bản Vì vậy, ta phải xây dựng một mô hình máy học có thể hiểu ngữ
nghĩa của câu văn, đoạn văn để đưa ra quyết định về màu sắc cảm xúc chủ đạo mà câu
văn hay đoạn văn đó thé hiện Bài toán được phân làm các mức độ khác nhau:
1 Phân tích cảm xúc, thái độ trong văn bản thành hai lớp: tích cực (positive) và
tiêu cực (negative).
2 Phát hiện cảm xúc thể hiện trong văn bản: buồn, vui, giận,
3 Phát hiện mục tiêu, nguồn gốc, môi trường nguyên nhân dẫn đến cảm xúc
Khóa luận này chỉ thực hiện giải quyết ở mức độ phân tích cảm xúc thành hailớp là tích cực (positive) và tiêu cực (negative).
Phát biểu theo góc nhìn của máy học (Machine learning), phân tích cảm xúc làbài toán phân lớp nhị phân dựa trên văn bản ngôn ngữ tự nhiên, với đầu vào là một câuhay một đoạn văn bản, còn dau ra là 0 hoặc 1, đại diện cho phân lớp tiêu cực hay tích
cực.
2.2 Các nghiên cứu liên quan đến bài toán
Bài toán có nhiều cách tiếp cận, nhưng thường được gom lại ba phương phápchung, đó là Dựa trên luật (Rule-based system); Dựa trên hệ thống tự động (AutomaticSystem: machine learning) và kết hợp cả hai [5]
Có một số phương pháp dựa trên các bộ từ điển cảm xúc (Lexicon based) tự tạonhư SentiWordNet, SenticNet, MPQA và Wordnet-Affect để gan nhan/diém cho các từ
là tích cực hay tiêu cực, sau đó ta dùng những nhãn này để áp dụng các tính toán vớingôn ngữ tự nhiên dựa trên các từ xuất hiện trong văn bản để cho ra một số điểm thểhiện cảm xúc của văn bản đó Tuy nhiên các phương pháp này phụ thuộc vào phan từvựng quá nhiều, tốn nhiễu thời gian và chi phí để xây dựng bộ từ vựng gán nhãn Ngoài
Trang 21ra, việc không thể hiểu được mối quan hệ các từ trong văn bản dẫn tới kết quả không
cao [6].
Với sự ra đời của học máy và học sâu, bài toán Phân tích cảm xúc có những
hướng giải quyết mạnh mẽ hơn Các phương pháp máy học (Machine learning) xem bàitoán này như một bài toán phân lớp, các đặc trưng sẽ được rút trích từ văn bản đầu vào
và đưa vào các mô hình phân lớp như SVM, Logistic Regression Phương pháp máy
học là phương pháp học có giám sát và thường cần rất nhiều dữ liệu dé huấn luyện với
nhãn được gán trước Độ chính xác của phân lớp cảm xúc sẽ phụ thuộc vào bộ dữ liệu
huấn luyện
Lan sóng phát triển vượt trội của khoa học kỹ thuật, các dịch vụ điện toán đámmây làm tiền đề và cơ hội cho phương pháp học sâu Deep learning trỗi dậy mạnh mẽ.Bài toán phân tích cảm xúc đã được giải quyết bằng mô hình học Recurrent NeuralNetwork (RNN) với một biến thể là LSTM Long Short Term Memory Neural Network(LSTMs) [7], kết hợp với mô hình hóa từ (vector representations of words)Word2Vector [8] với kiến trúc Continuous Bag-of-Words (CBOW) Ưu điểm củaphương pháp nay là độ chính xác, tốc độ cho ra kết quả nhanh, đầu vào có thé là một
câu hoặc một đoạn văn.
Một số nghiên cứu đã được thực hiện áp dụng các mô hình học sâu:
Augenstein và cộng sự đã đề xuất một LSTM hai chiều (Bi-LSTM) với mã hóa
có điều kiện cơ chế phát hiện lập trường trong dữ liệu Twitter chính trị [9]
Tang đề xuất mô hình học biéu diễn câu với CNN hoặc LSTM từ biểu diễn từnhúng, sau đó sử dụng GRU để mã hóa ngữ nghĩa của câu và các quan hệ trong biểudiễn văn bản để phân loại cảm xúc [10]
Zhou thiết kế mạng LSTM cho phân lớp cảm xúc ở mức độ văn bản xuyên ngônngữ Mô hình bao gồm 2 LSTM, mỗi LSTM đều cấu trúc phân cấp, do đó áp dụng hiệu
quả các thông tin cảm xúc trên các ngôn ngữ giàu tài nguyên cho các ngôn ngữ nghèo
tài nguyên và giúp cải thiện hiệu suất của bài toán phân lớp [11]
Wang và các đồng nghiệp đã đề xuất sự kết hợp giữa CNN và LSTM cho phântích cảm xúc Với nguyên tắc trích xuất đặc trưng văn bản của CNN kết hợp với khảnăng ghi nhớ thông tin đường dài của LSTM giúp cho mô hình được cải thiện tốc độ và
Trang 22Abdul-Mageed va Ungar lần đầu tiên xây dựng một tập dé liệu lớn dé tự độngphát hiện cảm xúc bằng cách sử dụng giám sát từ xa và sau đó sử dụng mạng GRU đềphát hiện cảm xúc chi tiết [13].
Sunmoo Yoon và đồng nghiệp cũng đưa ra ứng dụng thực tiễn của bài toán Phântích cảm xúc vào thực tế, tuy chỉ sử dụng các kỹ thuật cơ bản của xử lý ngôn ngữ tựnhiên, song nghiên cứu đã chỉ ra cách tiếp cận áp dụng bài toán vào phân tích mạng xã
hội Twitter, nơi mà mọi thông tin được cập nhật từng phút [14].
2.3 Phương pháp đề xuất
Khóa luận sẽ thực hiện hai phần chính: Xây dựng, huấn luyện mô hình học sâu
và Ứng dụng web minh họa
- _ Xây dựng, huấn luyện mô hình học sâu bao gồm xây dựng bộ vec-tơ hóa từ, thu
thập và tiền xử lý dữ liệu dùng cho huấn luyện các mô hình: TF-IDF + SVM,TF-IDF + Logistic Regression, BERT + Logistic Regression, PhoBERT, BERT.
Kết qua sẽ được lưu lại và so sánh, đánh giá dé chọn ra mô hình tốt nhất nhằm
áp dụng vào thực tiễn
- Ung dụng web minh họa: Cho phép người dùng lấy bình luận từ trang bán hàng
trên Shopee, Tiki thông qua URL đề phân tích cảm xúc Các bình luận sẽ đượcthu thập, lưu trữ và xử lý, sau đó chạy qua mô hình đề xuất kết quả, báo cáo trên
web.
Trang 24CHƯƠNG3 CƠ SỞ LÝ THUYÉT
3.1 Tách từ (Word Tokenization)
3.1.1 Khái niệm
Khái niệm “Tach từ” trong Tiếng Anh là “Word Segmentation” nhưng trong lập
trình, ta gọi là “Word Tokenization”, mỗi từ tách ra được gọi là một token [15].
Tach từ và tách các từ có nghĩa thành các thành phan trong một câu, nhưng đốivới Tiếng Việt, chúng ta có từ đơn và từ ghép Do đó, công đoạn tách từ trở nên rấtphức tạp, phải gom nhóm các từ đơn liền kề thành một từ ghép có ý nghĩa
Ví dụ: “Môn học này chắc chắn được điểm cao.” sau khi tách từ sẽ thành
“Môn học này chắc_chắn được điểm cao.” Về hình thức, các từ ghép được tạo từ hai
caer
từ đơn bằng cách nối với nhau qua kí tự “_”, trong trường hợp nay là từ “Môn_ học” va
từ “chắc_chắn” Sau khi thực hiện tách từ thì mỗi từ (token) trong câu sẽ được cáchnhau bởi một khoảng trắng Trong trường hợp các dấu câu cũng sẽ được cách bởi mộtkhoảng trắng Đây là quy ước chung cho tất cả các ngôn ngữ của bài toán tách từ trong
- Ngôn ngữ đơn lập: Tiếng Hán, tiếng Thái, Tiếng Việt và các tiếng trong ngôn
ngữ Môn-Khmer (một nhóm ngôn ngữ của ngữ hệ Nam A),
- Ngôn ngữ không đơn lập: được chia thành ba loại hình nhỏ:
+ Ngôn ngữ hòa kết: Tiếng Anh, tiếng Nga, tiếng Pháp,
+ Ngôn ngữ chap dính: Tiếng Nhật, tiếng Hàn, tiếng Thổ Nhĩ Ky,
+ Ngôn ngữ hỗn nhập (tổng hợp): Các ngôn ngữ Chu-cốt, Cam-chat
Đối với tiếng Anh thì việc tách từ khá dé dàng vì các từ đã được cách nhau bởikhoảng trắng và dấu câu Đối với tiếng Việt, ranh giới từ không được xác định mặc
Trang 25nhiên bằng khoảng trắng Ý nghĩa ngữ pháp của tiếng Việt nằm ở trật tự của từ Vì thế,trong một câu có thể có nhiều ngữ nghĩa khác nhau, tùy vào cách ta tách từ như thế nào,gây sự khó hiéu về mặt ngữ nghĩa.
Ví dụ: “Ăn cơm không được uống rượu.” có thể tách thành:
Ăn / cơm / không / được / uống / rượu
Ăn / cơm không / được / uống / rượu
Từ đó, ta thấy rằng việc tách từ tiếng Việt rất phức tạp, gây ảnh hưởng đến chấtlượng huấn luyện các mô hình máy học sau này Vì thế, tách từ là một quá trình khôngthể thiếu khi giải quyết các bài toàn liên quan đến ngôn ngữ tự nhiên
3.2 Biểu diễn dưới dạng Véc-tơ (Word Embedding)
3.2.1 Khái niệm và mục đích
Mục tiêu của bài toán không chỉ cho máy hiểu được cú pháp của ngôn ngữ màcòn hiểu ngữ nghĩa của các câu sử dụng trong từng tình huống, ngữ cảnh khác nhau màkhông mắc phải sự nhập nhằng Bước đầu tiên là chuyền đổi cách biểu diễn từ ngônngự tự nhiên sang một dạng biểu diễn mà máy tính có thể hiểu được (số hóa)
Ngôn ngữ tự nhiên là một hệ thống phức tạp ma con người sử dụng dé diễn đạtngữ nghĩa Trong hệ thống này, từ là đơn vị cơ bản của ngữ nghĩa Còn trong các môhình máy học, mô hình xử lý ngôn ngữ tự nhiên như LSTM, RNN, CNN yêu cầu dữliệu đầu vào ở dạng vector, mỗi vector bao gồm n số thực Cũng như tên gọi của nó,một vector từ (word vector) là một vector được sử dụng để biểu diễn một từ
Kỹ thuật ánh xạ từ ngữ sang vector còn được gọi là kỹ thuật nhúng từ (word embedding).
Kỹ thuật này lần đầu được thực hiện bởi mô hình Word2Vec [17], Glove, sau đó là
Fasttext [18], sự ra đời của nhúng từ là một bước đột phá trong lĩnh vực xử lý ngôn ngữ
tự nhiên.
3.2.2 Biểu diễn với Túi từ (Bag of Words)
Mô hình túi từ (bag of words hay BOW [19]) là một biểu diễn đơn giản hóa được
sử dụng trong xử lí ngôn ngữ tự nhiên Trong mô hình này, một văn bản (chẳng hạn nhưmột câu) được biểu diễn dưới đạng túi (multiset) chứa các từ của nó, không quan tâm
Trang 26đến ngữ pháp hay thậm chí trật tự của từ, nhưng vẫn giữ tính đa dạng BOW thườngđược sử dụng trong các phương pháp phân loại tài liệu Trong đó, sự xuất hiện (tan suất)của mỗi từ được sử dụng như một đặc trưng cho máy phân loại.
Một tài liệu tham khảo đầu tiên về “túi từ” có thể tìm thấy trong bài viết năm
1954 của tác giả Zellect Harris [20].
Vi dụ: “Vỹ thích chơi điện_ tử, Duy cũng thích chơi điện_ tử”, ta có các từ:
[“Vÿ”, “thích”, “chơi”, “điện_tử”, “Duy”, “cũng”, “thích”, “chơi”, “điện_ tử”] Vậy các từ được hình thành từ câu trên sẽ là:
{“Vỹ”: 1, “thích”: 2, “chơi”: 2, “điện_tử”: 2, “Duy”: 1, “cũng”: 1}
Mỗi phần tử gồm mỗi khóa là từ và mỗi giá trị là số lần xuất hiện cùa từ đó trongcâu hoặc văn bản Từ “Vỹ” xuất hiện 1 lần nên giá trị của nó là 1, từ “thích” xuất hiện
2 lần nên giá trị của nó là 2
Lưu ý, thứ tự của từ bị bỏ qua, mô hình BOW không chú trọng thứ tự của các từ
trong một câu hoặc văn bản.
3.2.3 One-hot encoding
Day là cách don giản dé biéu diễn ngôn ngữ sang dang vector với số chiều làkích thước từ điền Giống như tên của nó, chỉ ở chiều mà vi trí một từ xuất hiện trong
từ điển có giá trị là 1, các chiều khác đều có giá trị là 0
Ví dụ khi tập dữ liệu có 3 câu:
Câu 1: Tôi đang đi tìm một_nửa của mình.
Câu 2: Tôi đã ăn một_ nửa quả táo.
Câu 3: Tôi đã đi tìm một_ nửa quả táo.
Như vậy từ điển V = {tôi, dang, đi, tim, một-nửa, của, mình, đã, ăn, qua, táo} cókích thước § = 11 Biểu diễn theo one-hot thì:
Tôi =[I 0000000000]
Đang = [0 1000000000]
Mình = [00000010000]
Táo =[00000000001]
Trang 27Cách biểu diễn này rõ ràng là rất đơn giản nhưng giới hạn của nó cũng đã rõ Ví
dụ, khi muốn tính độ tương đồng giữa rôi và mình thì sẽ ra kết quả là 0 (bằng cách dùngcosine similarity) Nhưng trên thực tế, zôi và minh ở ngữ cảnh này đều là một Ngoài ra,với bộ dữ liệu 1 Terabyte của Google chứa 13 triệu từ, thì chiều của từng vector cũng
sẽ là 13 triệu Cách biểu diễn này quá tốn tài nguyên, nhưng thông tin mà nó lưu trữ lạikhông được nhiều như số chiều của nó
3.2.4 TF-IDF (Term Frequency — Inverse Document Frequency)
TE-IDF [22] là một kỹ thuật trong trích xuất đặc trưng Trọng số này được sửdụng để đánh giá tầm quan trọng của một từ trong văn bản Giá trị càng cao, thể hiện
độ quan trọng càng cao vào nó phụ thuộc vào tần suất xuất hiện của nó trong văn bản
TF (Term frequency): Tần suất xuất hiện của một từ trong văn bản Số lần xuấthiện của từ đó so với từ có sé lần xuất hiện nhiều nhất trong văn ban, giá trị nằm trong
- Tf (t, d): Tần suất xuất hiện của từ t trong văn bản d
- F(t,d): Số lần xuất hiện của từ t trong văn bản d
- Max {f(w, d): w € d}: Số lần xuất hiện của từ có số lần xuất hiện nhiều nhất
trong văn bản d.
IDF (Inverse Document Frequency): Nghịch đảo tần suất của văn bản, giúp đánhgiá tầm quan trọng của I từ Khi tinh TF, tat cả các từ được coi như có độ quan trọngbằng nhau Nhưng một số từ nối trong câu như “nên”, “vì” và “mà” thường xuất hiệnrất nhiều lần nhưng độ quan trọng lại không cao Như thế, chúng ta cần giảm độ quantrọng của những từ này xuống
Công thức:
|D|
idf Œ.P) = lose peal
Trong do:
Trang 28- ldf(, D): Giá tri idf của từ t trong tập văn bản
IDI: Tổng số văn bản trong tập D
- I{d€D:te€ d} I: Số văn bản chứ từ nhất định, với điều kiện t xuất hiện trong
văn bản d (tf(t, d) khác 0) Công thức tính:
tf —idf(t,d,D) = tƒ(t, đ) * idƒ(t,D)
Khi đó những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bảnnay (tf(t, d) cao), và xuất hiện ít trong các văn bản khác (idf(t, d) cao) Việc này giúplọc ra những từ phổ biến và giữ lại những từ có giá tri cao
3.2.5 Biểu diễn với N-grams
Mô hình N-grams [21] cũng là một biểu diễn của văn bản như BOW nhưng thayvào đó, nó lưu trữ thông tin về thứ tự và sự liên kết của các từ N ở đây là số lượng từliền kề được gom nhóm vào một túi, N có thé là 1, 2, 3, Về mặt khái niệm, chúng ta
có thé xem mô hình túi từ như một trường hợp đặc biệt của mô hình N-grams với N =
1 Với N = 1, ta gọi là Unigrams, với N = 2, ta gọi là Bigrams, với N = 3 ta gọi là Trigrams.
Vi dụ như câu trên “Vỹ thích chơi điện_tử, Duy cũng thích choi điện_tử”, một
mô hình Bigrams sẽ phân tích thành các đơn vị sau và lưu trữ tần số của từng đơn vị
như trước đây Vi vậy ta có ['“Vỹ thích”, “thích chơi”, “chơi điện_tử”, “Duy cũng”,
“cũng thích”, “thích chơi”, “chơi điện_tử”].
Trang 30So sánh với mô hình BOW
Mỗi đơn vị chỉ có một từ (có thé là từ don
hoặc từ ghép).
Mỗi đơn vị có số lượng từ tùy thuộc vào
N.
Không quan trọng thứ tự của các từ trong
câu hoặc văn bản.
Quan trọng thứ tự của các từ trong câu
hoặc văn bản.
với nhau.
Bảng 3.1 So sánh mô hình BOW và N-grams.
3.2.6 Co-occurrence matrix (Ma trận đồng hiện):
Năm 1957, nhà ngôn ngữ học J.R Firth đã định nghĩa “You shall know a word by
the company it keeps” (tạm dịch: ban sẽ hiéu một từ | qua các từ di cùng với nó)
Vi dụ như hình dưới biểu diễn mối tương quan của từ yêu và các từ đồng xuất hiện
gân nhât với nó:
Trang 31ekhoi_goi_tinh_yéu ®con người_yêu sđề_ tài_tình_yêu
Hình 3.2 Biểu diễn từ "yêu" bằng các từ lân cận nó.
Nhu vậy, một từ được biéu diễn ngữ nghĩa bởi các từ xung quanh nó
Ma trận đồng xuất hiện: được dé xuất ở hai mức là mức document (văn bản) và mức
windows (của số từ) Mức văn bản cho thông tin chung về các chủ đề hướng tới các
phương pháp LSA (latent semantic analysis) Mức cửa số từ cho thông tin về cả chức
năng cú pháp của từ và ngữ nghĩa.
Trang 32Counts | tôi | đang| đi | tìm |một nửa| của | mình | đã | ăn | quả | tảo
tdi 1 0 0 0 0 0 2 0 0 0
đang
tìm
một_nửa cua
minh
Hình 3.3 Ma trận đồng xuất hiện.
Cách biểu diễn này hợp lý hơn ở chỗ là đã ghi nhận được chính xác thông tin đồngxuất hiện của các từ trong dữ liệu Nhưng vẫn chưa giải quyết được van dé số chiều củavector tăng lên theo kích thước từ điền
3.2.7 Mô hình Word2vec
Word2vec [17] là một mạng nơ-ron hai lớp với duy nhất một lớp ẩn, lay đầu vào
là một tập dữ liệu văn bản tách từ ta thu được kết quả là một tập không gian các vectorđặc trưng Mỗi vector đặc trưng trong không gian thé hiện cho một từ duy nhất trong
văn bản.
Kiến trúc mạng nơ-ron:
Trang 33Input Vector
0 0 0 0 0 0
Probability that the word at a
- randomly chosen, nearby position is “abandon”
— > "ability”
«« “able"
300 neurons > "zone"
10,000
Hình 3.4 Kiến trúc mang nơ-ron.
Đầu vào: Một one-hot vector đại diện cho từ, độ lớn của vector bằng đúng số
lượng từ vựng
Đâu ra: Xác suât xuât hiện của các từ trong từ vựng so với dau vào.
Vua Hoang Phu nit Gang
Trang 34Ở ví dụ trên, mỗi cột chính là một vector đặc trưng của từ, ta có 4 từ “Vua”,
“Hoang hậu”, “Phụ nữ” va “Công chúa”, các đặc tính sẽ tạo nên vector đặc trưng có 4
chiều
Các từ “Vua”, “Hoàng hậu, “Công chúa” có xác suất xuất hiện với từ “Hoànggia” rất cao, trong khi từ “Phụ nữ” có xác suất rất thấp
Mục đích của Word2vec là nhóm các từ tương tự (các vector đặc trưng) lại với
nhau trong không gian vector Độ tương đồng giữa các từ được tính toán dựa trên toánhọc, cụ thể là khoảng cách Cosine giữa 2 vector đặc trưng:
A*B _ i=1 BiAj
|I4l|*|IEl|
similarity = cos(@) =
Giá trị khoảng cách Cosine trong khoảng [-1; 1] giá trị này càng lớn thé hiện độtương đồng, giống nhau giữa 2 vector càng lớn Từ đó, ta có thể nhóm các từ tương tựnhau và thé hiện vector đặc trưng của chúng trên không gian vector Vector từ học từ
mô hình word2vec rất phù hợp dé trả lời cho câu hỏi: Nếu A là B thì C la
Như ví dụ dưới đây, nếu thủ đô của China là Bắc Kinh, thì thủ đô của Nga làthành phố Moscow,
Trang 35Country and Capital Vectors Projected by PCA
2 4 n L + 4 L +
2 “1.5 a 0.5 0 0.5 1 1.5 2
Hình 3.6 Ví du về mối quan hệ từ của Word2vec.
Hay như trong ví dụ bên dưới là mối liên hệ về giới tính: có các cặp từ tươngđồng như: uncle — aunt, man — woman, sir-madam, kết quả này lấy từ mô hình
word2vec.
Trang 36là các từ hay xuất hiện cùng nhau trong văn cảnh, các từ đồng nghĩa, các từ thuộc cùng
- Con đường này nhiều cây quá (Từ đường diễn tả nơi đi lại được tao ra dé nối
các địa điểm với nhau)
Trang 37- Ca phê bạn nên cho thêm ít duong (Tu đường này là thé hiện chất kết tỉnh có Vị
giảm đi sự mêm mại và đa nghĩa của ngôn ngữ.
3.2.9 BERT word embedding
từ dữ liệu văn bản hoặc tinh chỉnh các mô hình này trên một nhiệm vụ cụ thể (phan loại,nhận dạng thực thé, trả lời câu hỏi, ) với dữ liệu riêng của mình
BERT mang lại một lợi thế vượt trội hơn so với các mô hình tiền nhiệm nhưWord2vec, Fasttext, khi mà mỗi từ chỉ được biểu diễn bằng 1 vector từ cố định, bất
ké từ đó có xuất hiện trong các câu khác nhau như thế nào đi nữa Lý do chính là BERT
có thêm ngữ cảnh (context) vào trong các vector embedding Ngữ cảnh là một thứ vô cùng quan trọng trong ngôn ngữ, với các ngữ cảnh khác nhau thì các từ trong câu được
hiểu theo ý nghĩa hoàn toàn khác nhau, các Language Model bỏ qua ngữ cảnh khó cóthể đạt được chất lượng tốt
Đối với nhúng từ không ngữ cảnh: như Word2vec hay Fasttext Mỗi từ trong
từ điển sẽ có một vector để đại diện cho nó và trong bat cứ câu nào, đoạn văn nào thì từ
đó vẫn chỉ được biểu diễn bởi vector đó
Đối với nhúng từ có ngữ cảnh 1 chiều: Người ta sử dụng các kiến trúc mạngRNN để có thể tạo ra mối quan hệ thứ tự giữa các từ trong câu, từ đó tạo ra vector từ cóngữ cảnh Tuy nhiên việc này chỉ thực hiện được theo một chiều từ trái sang phải, hoặc
Trang 38theo 2 hướng ngược nhau nhưng 2 hướng này độc lập không liên quan gì đến nhau nên
có thể xem là một chiều mà thôi
Ví dụ một bài toán mà nhúng từ 1 chiều chưa giải quyết được:
Câu văn gốc: “Hôm nay, tôi đưa bạn gái đi chơi” Sau đó chúng ta che từ “bạn
gái” đi và câu văn trở thành: “Hôm nay, tôi đưa [mask] đi chơi”.
Yêu cầu bài toán là dự đoán từ đã được che
Nếu là trong ngôn ngữ tự nhiên của con người, chúng ta nhìn vào câu là có thé
đoán ra ngay được từ trong đó là “bạn gái” Nhưng model thì không như vậy, do model
chỉ được training một chiều, cho nên sẽ dự đoán [mask] từ các từ trước đó là “Hom nay,tôi đưa” và có thể các từ được dự đoán là: “tiền”, “điện thoại”, “laptop”, “hàng” tùyvào vào từ điển của chúng ta Vậy là chưa hiệu quả rồi, trong khi nếu có kết hợp đượcthêm từ đi chơi phía sau thì có thể dự đoán ra các từ: “em gái”, “bạn”, “bạn gai”, vớixác suất chính xác cao hơn rất nhiều
BERT ra đời đã giải quyết van đề này, ngay trong cái tên của BERT đã thấy đượcchữ Bidirectional (2 chiều) Tóm lại là một từ trong câu sẽ được biểu diễn một cách cóliên quan đến cả những từ phía trước lẫn phía sau nó Hay nói cách khác là liên quanđến tất cả các từ có trong câu Ví dụ như câu trên, model sẽ dựa vào cả đoạn “Hôm nay
tôi đưa” và “đi chơi” dự đoán ra từ đã bị che với độ chính xác khá cao.
3.2.9.2 Định dạng đầu vào của BERT (Input Formatting)
Bởi vì BERT là mô hình được huấn luyện trước (pretrained model) cần dữ liệuđầu vào ở một định dạng nhất định, chúng ta cần:
1 Một token đặc biệt [SEP], dé đánh dâu phần cuối của một câu hay sự phân táchgiữa hai câu.
2 Một mã token đặc biệt [CLS], ở đầu văn bản Mã token này được sử dụng cho
các nhiệm vụ phân loại, tuy nhiên BERT mong đợi nó dù bat kể ứng dụng là gì
3 Các token phù hợp với bộ từ vựng cố định được sử dụng trong BERT
4 Các Token ID của các token, từ tokenizer của BERT.
5 Các Mask ID dé cho biết phần tử nào trong chuỗi là mã token và phan tử nào là
phần tử đệm (padding elements)
6 Các Segment ID ding dé phân biệt các câu khác nhau
Trang 397 Các Positional Embedding dùng để hiển thị vị trí các token trong chuỗi.
Các yêu cầu trên có thé được xử lý bằng chức năng tokenizer.encode_plus củatransformers.
3.2.9.3 Các token đặc biệt:
BERT có thé lay một hoặc hai câu làm đầu vào và sử dụng mã token đặc biệt[SEP] để phân biệt chúng Mã token [CLS] luôn xuất hiện ở đầu văn bản và dành riêngcho các nhiệm vụ phân loại Tuy nhiên, cả hai mã token trên luôn được yêu cầu, ngay
cả khi chúng ta chỉ có một câu và ngay cả khi chúng ta không sử dụng BERT đề phânloại Đó là cách BERT đã được huấn luyện trước, là những gì BERT mong đợi được
nhận.
Ví dụ:
Hai câu đầu vào:
[CLS] The man went to the store [SEP] He bought a gallon of milk.
Một câu đầu vào:
[CLS] The man went to the store [SEP]
3.2.9.4 Mã hóa (Tokenization)
BERT cung cấp tokenizer của riêng mình Quá trình xử lý được thể hiện ở ví dụ
như sau:
Trang 40text = “Here is the sentence I want embeddings for.”
marked_text = “[CLS] ” + text + “ [SEP]”
# Tokenize our sentence with the BERT tokenizer.
là cách tokenizer biểu thị rằng từ khóa hoặc ký tự phụ này là một phần của một từ lớn
hơn và đứng trước một từ khóa phụ khác Vì vậy, ví dụ, mã token “##bed” tách biệt với
mã token “bed”; từ đầu tiên được sử dụng bất cứ khi nào từ khóa phụ “bed” xuất hiện
trong một từ lớn hơn và từ thứ hai được sử dụng khi đó là mã token độc lập.
Tại sao lại như vậy? Đó là do BERT tokenizer được tạo bằng mô hìnhWordPiece Mô hình này tạo ra một lượng từ vựng có kích thước cố định gồm các ký
tự, từ phụ và từ riêng lẻ phù hợp nhất với dữ liệu ngôn ngữ Vì kích thước giới hạn từ
vựng của mô hình BERT tokenizer là 30.000 nên mô hình WordPiece đã tạo ra một bộ
từ vựng có chứa tat cả các ký tự tiếng Anh, gần 30.000 từ va từ phụ phổ biến nhất đượctìm thấy trong kho ngữ liệu tiếng Anh mà mô hình được huấn luyện Bộ từ vựng nàybao gồm 4 thứ:
1 Toàn bộ các từ
2 Các từ phụ xuất hiện tách biệt hoặc ở đầu một từ (Ví dụ: “em” trong
“embeddings” được gán cùng một vec-tơ như chuỗi ký tự độc lập “em” trong