Mặt khác máy tính chỉ có thể hiểu được dữ liệu đầu vào ở dạng số mà phần lớn lượng thông tin hiện nay lại ở dạng văn bản – một dạng của ngôn ngữ tự nhiên nên vấn đề đặt ra ở đây là làm s
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRẦN THỊ THÚY HÀ
PHÂN LOẠI VĂN BẢN DỰA TRÊN CNN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng – Năm 2021
DUT.LRCC
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRẦN THỊ THÚY HÀ
PHÂN LOẠI VĂN BẢN DỰA TRÊN CNN
Chuyên ngành : Khoa học máy tính
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: PGS.TS VÕ TRUNG HÙNG
Đà Nẵng – Năm 2021
DUT.LRCC
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn trực tiếp của PGS.TS Võ Trung Hùng
Mọi tham khảo, số liệu, bảng biểu dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Tác giả
Trần Thị Thúy Hà
DUT.LRCC
Trang 4TÓM TẮT ĐỀ TÀI
PHÂN LOẠI VĂN BẢN DỰA TRÊN CNN
Học viên: Trần Thị Thúy Hà Chuyên ngành: Khoa học máy tính
Mã số: 8480101 Khóa:36 Trường Đại học Bách khoa – ĐHĐN
Tóm tắt – Hiện nay, số lượng văn bản quá lớn, sử dụng phương pháp
phân loại dữ liệu thủ công là điều không khả thi bởi có vô số văn bản cần phân loại Mặt khác máy tính chỉ có thể hiểu được dữ liệu đầu vào ở dạng
số mà phần lớn lượng thông tin hiện nay lại ở dạng văn bản – một dạng của ngôn ngữ tự nhiên nên vấn đề đặt ra ở đây là làm sao để chuyển dữ liệu ở dạng ký tự về dữ liệu dạng số sau đó tổ chức huấn luyện máy tính
có thể hiểu để phân loại thông tin có hiệu quả cao nhất, nhanh chóng phân loại được thông tin theo thể loại đã định trước
Trước hết đã là bài toán phân loại thì chúng ta có thể dùng các
thuật toán phân loại như: Naive Bayes, Decision Tree (Random Forest), Véc tơ Support Machine (SVM), Convolution Nơron Network (CNN), Recurrent Nơron Network (RNN)… Theo một số khảo sát, nghiên cứu thì kỹ thuật mạng Nơron tích chập - CNN được đánh giá là có độ chính xác tốt với tính nhất quán dữ liệu khá cao và vượt trội hơn các kỹ thuật khác ở thời gian huấn luyện dữ liệu
Luận văn bao gồm các nội dung sau: (1) Tổng quan lý thuyết và phương pháp xử lý ngôn ngữ tự nhiên (2) Tổng quan về bài toán phân loại văn bản (3) Triển khai hệ thống và nhận xét
Từ khóa – Phân loại văn bản, mạng nơ ron tích chập, xử lý dữ liệu,
nhúng từ, siêu tham số
DUT.LRCC
Trang 5(CONVOLUTIONAL NORON NETWORK) Abstract - Now, the amount of documents is too large, using manual data
classification method is not feasible because there are countless documents
to classify On the other hand, computers can only understand input data in the form of numbers, but most of the information today is in text form - a form of natural language so the problem is how to transfer data Character data about digital data, then computer training organizations can understand
to classify information most effectively, quickly classify information according to predetermined categories
First of all, the classification problem, we can use classification algorithms such as: Naive Bayes, Decision Tree (Random Forest), Véc tơ Support Machine (SVM), Convolution Nơron Network (CNN), Recurrent Nơron Network (RNN) ) According to some surveys and studies, the convolutional nơron network technique - CNN is considered to have good accuracy with high data consistency and is superior to other techniques at data training time Whether
The thesis includes the following contents: (1) Overview of theory and natural language processing methods (2) Overview of the text classification problem (3) Implementing system and commenting
Key words - Classification of text, nơron networks, data processing,
Word Embedding, hyperparameter
DUT.LRCC
Trang 6MỤC LỤC
LỜI CAM ĐOAN i
TÓM TẮT ĐỀ TÀI ii
MỤC LỤC iv
DANH MỤC CÁC HÌNH ẢNH vi
DANH MỤC BẢNG BIỂU vii
DANH MỤC TỪ VIẾT TẮT viii
MỞ ĐẦU 1
1 LÝ DO CHỌN ĐỀ TÀI 1
2 MỤC TIÊU VÀ NHIỆM VỤ 2
3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3
4 PHƯƠNG PHÁP NGHIÊN CỨU 3
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 4
6 BỐ CỤC LUẬN VĂN 4
CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT 5
1.1 Tổng quan về xử lý ngôn ngữ tự nhiên 5
1.2 Học sâu 10
1.2.1 Khái niệm 10
1.2.2 Học sâu là một mạng lưới thần kinh lớn 10
1.2.3 Học sâu là học tính năng phân cấp 13
1.2.4 Học sâu - học có thể mở rộng trên các miền 16
1.3 Hứa hẹn của học sâu dành cho ngôn ngữ tự nhiên 17
1.3.1.Hứa hẹn của học sâu 17
1.3.2.Hứa hẹn của mô hình thay thế thả vào 18
1.3.3.Hứa hẹn của mô hình nlp mới 18
1.3.4.Hứa hẹn về tính năng học tập 19
1.3.5.Hứa hẹn tiếp tục cải tiến 20
1.3.6.Hứa hẹn về các mô hình đầu cuối 20
1.4 Tiểu kết chương 21
DUT.LRCC
Trang 7CHƯƠNG 2 PHÂN LOẠI VĂN BẢN 23
2.1 Mô tả bài toán 23
2.2 Kỹ thuật Word Embeddings kết hợp CNN cho bài phân loại văn bản 26
2.3 Sử dụng kiến trúc CNN một lớp 33
2.4 Siêu tham số trong CNN 39
2.5 Tiểu kết chương 42
CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ 43
3.1 Đặc tả chương trình 43
3.2 Lựa chọn công cụ 44
3.2.1.Ngôn ngữ Python 44
3.2.2.Framework Tensorflow 46
3.2.3.Keras 46
3.3 Các bước triển khai 47
3.4 Chuẩn bị dữ liệu 48
3.5 Cài đặt - ứng dụng 49
3.6 Đánh giá 59
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61
TÀI LIỆU THAM KHẢO 62
Tài liệu tiếng Việt: 62
Tài liệu tiếng Anh: 62
DUT.LRCC
Trang 8DANH MỤC CÁC HÌNH ẢNH
Hình 1 1 Mô hình mạng thần kinh nhân tạo 11
Hình 1 2 Lý do sử dụng Deep Learning 13
Hình 2 1 Cấu trúc CNN phân loại câu 24
Hình 2 2 Ví dụ mô tả về xử lý thành Véc tơ của Word Embedding 28
Hình 2 3 Phân bố mối quan hệ giữa các từ trong word2vec 29
Hình 2 4 Mô hình skip-gram trong word2vec 30
Hình 2 5 Mô hình mạng Nơron 1 lớp ẩn của word2vec 31
Hình 2 6 Hoạt động của lớp ẩn của mô hình hoạt động 32
Hình 2 7 Cửa sổ trượt Sliding window 34
Hình 2 8 Mô tả cách một Filter 3×3 có thể phát hiện Vertical Edge của một image 34
Hình 2 9 Sơ đồ mô hình 1 lớp của CNN 35
Hình 2 10 Filter kích thước 2x2 để tính giá trị Pooling 36
Hình 2 11 Cấu trúc tổng quát mô hình CNN 36
Hình 2 12 Một ví dụ về Bộ lọc CNN và Kiến trúc bỏ phiếu cho NNTN xử lý 38
Hình 2 13 Ma trận sử dụng Zero Padding 41
Hình 3 1 Workflow của quy trình giải quyết của học máy 43
DUT.LRCC
Trang 9DANH MỤC BẢNG BIỂU
Bảng 2 1 Bảng so sánh kích thước Filter 40
DUT.LRCC
Trang 10DANH MỤC TỪ VIẾT TẮT
STT TỪ VIẾT TẮT MÔ TẢ
1 CNN Convolutional Nơron Network - Mạng nơ ron tích chập
2 NLP Natural language processing - Xử lý ngôn ngữ tự nhiên
3 DL Deep learning – Học sâu
4 RNN Recurrent nơron network - Mạng nơ ron hồi quy
5 NMT Nơron machine translation – Mô hình dịch máy
6 API Application Programming Interface – phương thức
trung gian kết nối các ứng dụng và thư viện khác nhau
DUT.LRCC
Trang 11MỞ ĐẦU
1 LÝ DO CHỌN ĐỀ TÀI
Ngày nay, với sự phát triển mạnh mẽ của ngành công nghệ thông tin cùng với sự bùng nổ về khối lượng thông tin trên mạng Internet đang khiến con người loay hoay với việc xử lý ra sao với lượng thông tin đó để có thể phân loại, chọn lọc thông tin sao cho tốt nhất cho mình
Trong thực tế, số lượng văn bản quá lớn, sử dụng phương pháp phân loại
dữ liệu thủ công là điều không khả thi bởi có vô số văn bản cần phân loại Mặt khác như chúng ta đã biết máy tính chỉ có thể hiểu được dữ liệu đầu vào ở dạng
số mà phần lớn lượng thông tin hiện nay lại ở dạng văn bản - một dạng của ngôn ngữ tự nhiên nên vấn đề đặt ra ở đây là làm sao để chuyển dữ liệu ở dạng ký tự
về dữ liệu dạng số sau đó tổ chức huấn luyện máy tính có thể hiểu để phân loại thông tin có hiệu quả cao nhất, nhanh chóng phân loại được thông tin theo thể loại
đã định trước Đã có nhiều nghiên cứu nhằm giải quyết vấn đề trên và bài toán phân loại văn bản là một trong những giải pháp hợp lý Phân loại văn bản là một vấn đề quan trọng trong lĩnh vực xử lý ngôn ngữ tự nhiên (NNTN) Nhiệm vụ của bài toán này là gán các tài liệu văn bản vào nhóm các chủ đề cho trước Hướng giải quyết cho bài toán trên là xây dựng một chương trình máy tính tự động phân loại các thông tin dữ liệu trên để xử lý một cách nhanh chóng và hiệu quả
Trước hết đã là bài toán phân loại thì chúng ta có thể dùng các thuật toán phân loại (trong machine learning hay deep learning) như: Naive Bayes, Decision Tree (Random Forest), Véc tơ Support Machine (SVM), Convolution Nơron Network (CNN), Recurrent Nơron Network (RNN), Long Short-Term Memory (LSTM)…
Thông thường khi nhắc tới xử lý ngôn ngữ tự nhiên, người ta thường nhắc tới mạng RNN (recurrent nơron network) mạng nơ- ron hồi quy Ngay từ cái nhìn đầu tiên, CNN có vẻ không phù hợp với nhiệm vụ khai phá văn bản mà chỉ phù hợp với việc xử lý trên hình ảnh Đầu tiên, những pixcel của bức ảnh được biểu diễn rất giống nhau (với sự kết hợp của RGB), bất kể ở vị trí nào trong bức ảnh,
DUT.LRCC
Trang 12còn với một văn bản thì vị trí của các từ rất quan trọng Thứ hai, những vấn đề ví
dụ như dịch chuyển không thể xử lý theo cùng một cách ở trong dữ liệu văn bản Những pixcel gần nhau trong một bức ảnh thông thường rất giống nhau, trong khi những từ gần nhau trong văn bản thì không bao giờ giống nhau
Tuy nhiên, những năm gần đây thì việc dùng mạng CNN cho xử lý ngôn ngữ tự nhiên trở nên rất phổ biến và hiệu suất ngày càng được cải thiện Theo một
số khảo sát, nghiên cứu thì kỹ thuật mạng Nơron tích chập - CNN được đánh giá
là có độ chính xác tốt với tính nhất quán dữ liệu khá cao và vượt trội hơn các kỹ thuật khác ở thời gian huấn luyện – trainning dữ liệu
Trong luận văn này, tôi tập trung nêu ra chi tiết các bước thực hiện bài toán
“Phân loại văn bản dựa trên CNN (Convolutional Nơron Network)” trong lĩnh
vực xử lý ngôn ngữ tự nhiên và cách tiếp cận để giải quyết bài toán cũng những kết quả đã đạt được Cuối cùng là xây dựng chương trình ứng dụng dựa trên kỹ thuật Word Embedding kết hợp với thuật toán CNN để phân loại văn bản
Bài toán phân loại văn bản ở đây là tự động phân loại văn bản vào một hoặc nhiều danh mục (chuyên mục) đã được xác định trước đó Một vài ví dụ của phân loại văn bản là: phân loại theo cảm xúc của người viết bài (vui, buồn, tức giận )
từ mạng xã hội, phát hiện thư rác, tự động gán nhãn các truy vấn của khách hàng, phân loại các bài báo thành các chủ đề đã được xác định trước…
Để phân loại văn bản, trong đề tài này tôi sẽ triển khai các nhiệm vụ chính như sau:
DUT.LRCC
Trang 13- Thu thập và xử lý dữ liệu văn bản: gồm các công việc chính như thu thập sau đó “làm sạch” hoặc lọc lại dữ liệu
- Xây dựng tập văn bản cần huấn luyện: Dữ liệu đầu vào mà mô hình học
có giám sát của chúng ta có thể hiểu và hứa hẹn được các lớp cần thiết gồm hai tập chính là Data trainning và Data testing Giai đoạn này gồm các bước chính là tách từ và lựa chọn từ đặc trưng hay từ quan trọng Sau đó chúng ta xây dựng bộ
từ điển các từ để thay thế các từ xuất hiện bằng vị trí trong từ điển
- Xây dựng véc tơ đặc trưng (Feature Véc tơ): Một véc tơ đặc trưng là một véc tơ bao gồm thông tin chi tiết các đặc tính của dữ liệu đầu vào cho từng file dữ liệu Mỗi véc tơ có độ dài bằng chính số từ trong từ điển
- Huấn luyện: gán nhãn dữ liệu và tiến hành phân lớp văn bản để huấn luyện
Ở đây tập trung sử dụng thuật toán CNN để huấn luyện xử lý để phân lớp văn bản
- Đánh giá: Mô hình đã được huấn luyện trước đó sẽ được dùng để hứa hẹn lớp cho văn bản cần phân loại Đây là bước đánh giá bộ phân lớp
4.1 Phương pháp nghiên cứu tài liệu
- Tìm hiểu các bài báo trong và ngoài nước về xử lý ngôn ngữ tự nhiên và học sâu
- Tìm các dữ liệu mẫu về bài toán phân loại văn bản
- Tìm hiểu các phương pháp phân loại văn bản áp dụng cho việc huấn luyện dùng CNN
DUT.LRCC
Trang 144.2 Phương pháp nghiên cứu thực nghiệm
- Xây dựng chương trình demo vào chương cuối dựa trên giải pháp đề xuất
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN
- Ý nghĩa khoa học: Nghiên cứu các kỹ thuật học sâu và một số giải thuật thường sử dụng trong học sâu Phát triển ứng dụng kỹ thuật Word Embedding và thuật toán CNN vào giải quyết bài toán thực tế
- Ý nghĩa thực tiễn: Xây dựng một chương trình tự động để hỗ trợ máy tính phân loại văn bản từ việc xử lý ngôn ngữ tự nhiên
6 BỐ CỤC LUẬN VĂN
CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT
Chương này trình bày khái quát về ngôn ngữ tự nhiên và các phương pháp
xử lý ngôn ngữ tự nhiên
CHƯƠNG 2: PHÂN LOẠI VĂN BẢN
Chương này trình bày về bài toán phân loại văn bản và kỹ thuật xử lý ngôn ngữ tự nhiên Word Embeddings và mô hình nơ ron tích chập cho phân loại văn bản
CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ
Triển khai ứng dụng cụ thể giải quyết bài toán thực tế mô phỏng cho cơ sở
lý thuyết ở chương 1 và 2 và đánh giá
DUT.LRCC
Trang 15CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT
Xử lý ngôn ngữ tự nhiên hay viết tắt là NLP, được định nghĩa rộng rãi là thao tác tự động của ngôn ngữ tự nhiên như lời nói và văn bản bằng phần mềm Nghiên cứu xử lý ngôn ngữ tự nhiên đã tồn tại hơn 50 năm và phát triển ra khỏi lĩnh vực ngôn ngữ học với sự phát triển của máy tính Trong chương này, chúng ta sẽ khám phá xử lý ngôn ngữ tự nhiên là gì và tại sao nó là rất quan trọng
1.1 Tổng quan về xử lý ngôn ngữ tự nhiên
1.1.1 Khái niệm về ngôn ngữ tự nhiên
Ngôn ngữ tự nhiên đề cập đến cách mà con người giao tiếp với nhau cụ thể
là lời nói và văn bản Chúng ta đang được được bao quanh bởi văn bản Hãy suy nghĩ về số lượng văn bản bạn nhìn thấy mỗi ngày: dấu hiệu, thực đơn, Email, tin nhắn, trang web, Chúng ta có thể nói chuyện với nhau một cách dễ dàng hơn là cách chúng ta viết Văn nói bao giờ cũng dễ hơn văn viết Giọng nói và văn bản
là cách chúng ta giao tiếp với mọi người Do tầm quan trọng của loại dữ liệu này, chúng ta phải có phương pháp để hiểu và suy luận về ngôn ngữ tự nhiên, giống như chúng ta làm đối với các loại dữ liệu khác.[1]
1.1.2 Thách thức đặt ra đối với ngôn ngữ tự nhiên
Làm việc với dữ liệu của ngôn ngữ tự nhiên không phải dễ để xử lý Nó đã được nghiên cứu trong nửa thế kỷ và nó thực sự rất khó
“Đó là khó khăn từ quan điểm của một đứa trẻ, người phải mất nhiều năm
để có được một ngôn ngữ rất khó cho người học ngôn ngữ người lớn, nó khó cho nhà khoa học người cố gắng mô hình hóa các hiện tượng liên quan, và thật khó cho kỹ sư cố gắng xây dựng các hệ thống xử lý đầu vào hoặc đầu ra ngôn ngữ
tự nhiên Những nhiệm vụ khó khăn đến mức Turing có thể thực hiện cuộc trò chuyện trôi chảy một cách tự nhiên ngôn ngữ trung tâm của bài kiểm tra trí thông minh của mình.” [4]
Ngôn ngữ tự nhiên chủ yếu là khó vì vấn đề là nó khá lộn xộn Có một vài quy tắc giúp chúng ta có thể dễ dàng hiểu nhau hầu hết thời gian
1.1.3 Từ ngôn ngữ học đến xử lý ngôn ngữ tự nhiên
DUT.LRCC
Trang 16Ngôn ngữ học là nghiên cứu khoa học về ngôn ngữ, bao gồm ngữ pháp, ngữ nghĩa và ngữ âm của nó Ngôn ngữ học cổ điển liên quan đến việc nghĩ ra và đánh giá các quy tắc của ngôn ngữ Những tiến bộ lớn đã được thực hiện về các phương thức chính thức cho cú pháp và ngữ nghĩa, nhưng phần lớn, các vấn đề thú vị trong hiểu ngôn ngữ tự nhiên chống lại hình thức toán học sạch
Nhìn rộng ra, một nhà ngôn ngữ học là bất cứ ai nghiên cứu ngôn ngữ, nhưng có lẽ thông thường hơn một nhà ngôn ngữ học tự thân là người có thể tập trung hơn vào việc ra ngoài thực địa Toán học là công cụ của khoa học Các nhà toán học làm việc trên ngôn ngữ tự nhiên có thể coi nghiên cứu của họ là toán học ngôn ngữ học, tập trung hoàn toàn vào việc sử dụng các hình thức và lý thuyết toán học rời rạc cho ngôn ngữ tự nhiên
Ngôn ngữ học tính toán là nghiên cứu hiện đại về ngôn ngữ học sử dụng các công cụ của khoa học máy tính Ngôn ngữ học trước đây có thể là nhà ngôn ngữ học tính toán còn ngày nay khi sử dụng các công cụ tính toán và suy nghĩ đã vượt qua hầu hết các lĩnh vực nghiên cứu
Ngôn ngữ học tính toán là nghiên cứu về hệ thống máy tính để hiểu và tạo
ra ngôn ngữ tự nhiên Một chức năng tự nhiên cho ngôn ngữ học tính toán sẽ là thử nghiệm ngữ pháp được đề xuất bởi các nhà ngôn ngữ học lý thuyết
Dữ liệu lớn và máy tính nhanh có nghĩa là những thứ mới và khác nhau có thể được phát hiện từ bộ dữ liệu lớn của văn bản bằng cách viết và chạy phần mềm Trong những năm 1990, phương pháp thống kê và học máy thống kê bắt đầu và cuối cùng thay thế dựa trên quy tắc từ trên xuống cổ điển tiếp cận với ngôn ngữ, chủ yếu là do kết quả tốt hơn, tốc độ và sự mạnh mẽ của họ Các phương pháp thống kê để nghiên cứu ngôn ngữ tự nhiên hiện đang thống trị lĩnh vực này;
nó có thể định nghĩa cánh trường
Các phương pháp dựa trên dữ liệu để xử lý ngôn ngữ tự nhiên đã trở nên rất phổ biến rằng chúng phải được coi là phương pháp tiếp cận chủ đạo đối với ngôn ngữ học tính toán Một yếu tố đóng góp mạnh mẽ cho sự phát triển này chắc chắn là sự gia tăng lượng dữ liệu được lưu trữ điện tử có sẵn mà các phương pháp
DUT.LRCC
Trang 17này có thể được áp dụng; một yếu tố khác có thể là một sự bất mãn nhất định với các phương pháp chỉ dựa vào trên các quy tắc thủ công
Cách tiếp cận thống kê đối với ngôn ngữ tự nhiên không chỉ giới hạn ở thống kê, mà còn đối với phương pháp suy luận tiên tiến như những phương pháp được sử dụng trong học máy ứng dụng Hiểu ngôn ngữ tự nhiên đòi hỏi lượng lớn kiến thức về hình thái, cú pháp, ngữ nghĩa và thực dụng cũng như kiến thức chung
về thế giới Tiếp thu và mã hóa tất cả những kiến thức này là một trong những trở ngại cơ bản để phát triển hệ thống ngôn ngữ hiệu quả và mạnh mẽ Giống như thống kê phương pháp phương pháp học máy không hứa hẹn mua lại tự động kiến thức này từ ngôn ngữ ngôn ngữ chú thích hoặc không được chú ý
Ngôn ngữ học tính toán cũng được biết đến bằng tên của quá trình xử lý ngôn ngữ tự nhiên để phản ánh cách tiếp cận dựa trên sự sắp đặt hoặc dựa trên kinh nghiệm của các phương pháp thống kê
Ngôn ngữ học là một chủ đề lớn của nghiên cứu, và, mặc dù cách tiếp cận thống kê về ngôn ngữ tự nhiên đã chỉ ra thành công lớn trong một số lĩnh vực, vẫn còn chỗ và lợi ích lớn từ trên xuống cổ điển phương pháp
1.1.4 Xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ - công cụ hoàn hảo nhất của tư duy và giao tiếp
Xử lý ngôn ngữ tự nhiên có vai trò hết sức quan trọng trong ngành Khoa học máy tính Nó có vô vàn ứng dụng hữu ích trong cuộc sống cũng như nghiên cứu Chúng ta có thể điểm qua một vài ứng dụng của xử lý ngôn ngữ tự nhiên như:1
1 https://insights.magestore.com/posts/natural-language-processing-chatbot
DUT.LRCC
Trang 18- Nhận dạng chữ viết: Có hai kiểu nhận dạng, thứ nhất là nhận dạng chữ
in, ví dụ nhận dạng chữ trên sách giáo khoa rồi chuyển nó thành dạng văn bản điện tử như dưới định dạng doc của Microsoft Word chẳng hạn
- Phức tạp hơn là nhận dạng chữ viết tay, có khó khăn bởi vì chữ viết tay không có khuôn dạng rõ ràng và thay đổi từ người này sang người khác Với chương trình nhận dạng chữ viết in có thể chuyển hàng ngàn đầu sách trong thư viện thành văn bản điện tử trong thời gian ngắn Nhận dạng chữ viết của con người có ứng dụng trong khoa học hình sự và bảo mật thông tin (nhận dạng chữ ký điện tử)
- Nhận dạng tiếng nói: Nhận dạng tiếng nói rồi chuyển chúng thành văn bản tương ứng Giúp thao tác của con người trên các thiết bị nhanh hơn
và đơn giản hơn, chẳng hạn thay vì gõ một tài liệu nào đó bạn đọc nó lên
và trình soạn thảo sẽ tự ghi nó ra Đây cũng là bước đầu tiên cần phải thực hiện trong ước mơ thực hiện giao tiếp giữa con người với robot Nhận dạng tiếng nói có khả năng trợ giúp người khiếm thị rất nhiều
- Tổng hợp tiếng nói: Từ một văn bản tự động tổng hợp thành tiếng nói Thay vì phải tự đọc một cuốn sách hay nội dung một trang web, nó tự động đọc cho chúng ta Giống như nhận dạng tiếng nói, tổng hợp tiếng nói là sự trợ giúp tốt cho người khiếm thị, nhưng ngược lại nó là bước cuối cùng trong giao tiếp giữa robot với người
- Dịch tự động (Machine translate): Như tên gọi đây là chương trình dịch
tự động từ ngôn ngữ này sang ngôn ngữ khác Một phần mềm điển hình
về tiếng Việt của chương trình này là Evtrans của Softex, dịch tự động
từ tiếng Anh sang tiếng Việt và ngược lại, phần mềm từng được trang web vdict.com mua bản quyền, đây cũng là trang đầu tiên đưa ứng dụng này lên mạng Tháng 10 năm 2008 có hai công ty tham gia vào lĩnh vực này cho ngôn ngữ tiếng Việt là công ty Lạc Việt (công ty phát hành từ điển Lạc Việt) và Google, một thời gian sau đó Xalo.vncũng đưa ra dịch
vụ tương tự
DUT.LRCC
Trang 19- Tìm kiếm thông tin (Information retrieval): Đặt câu hỏi và chương trình
tự tìm ra nội dung phù hợp nhất Thông tin ngày càng đầy lên theo cấp
số nhân, đặc biệt với sự trợ giúp của Internet việc tiếp cận thông tin trở lên dễ dàng hơn bao giờ hết Việc khó khăn lúc này là tìm đúng nhất thông tin mình cần giữa bề bộn tri thức và đặc biệt thông tin đó phải đáng tin cậy Các máy tìm kiếm dựa trên giao diện web như Google hay Yahoo hiện nay chỉ phân tích nội dung rất đơn giản dựa trên tần suất của từ khoá
và thứ hạng của trang và một số tiêu chí đánh giá khác để đưa ra kết luận, kết quả là rất nhiều tìm kiếm không nhận được câu trả lời phù hợp, thậm chí bị dẫn tới một liên kết không liên quan gì do thủ thuật đánh lừa của các trang web nhằm giới thiệu sản phẩm (có tên tiếng Anh là SEO viết tắt của từ Search Engine Optimization) Thực tế cho đến bây giờ chưa có máy tìm kiếm nào hiểu được ngôn ngữ tự nhiên của con người trừ trang www.ask.com được đánh giá là "hiểu" được những câu hỏi có cấu trúc ở dạng đơn giản nhất Mới đây cộng đồng mạng đang xôn xao về trang Wolfram Alpha, được hứa hẹn là có khả năng hiểu ngôn ngữ tự nhiên của con người và đưa ra câu trả lời chính xác Lĩnh vực này hứa hẹn tạo
ra bước nhảy trong cách thức tiếp nhận tri thức của cả cộng đồng
- Tóm tắt văn bản: Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn theo mong muốn nhưng vẫn chứa những nội dung thiết yếu nhất
- Khai phá dữ liệu (Data mining) và phát hiện tri thức: Từ rất nhiều tài liệu khác nhau phát hiện ra tri thức mới Thực tế để làm được điều này rất khó, nó gần như là mô phỏng quá trình học tập, khám phá khoa học của con người, đây là lĩnh vực đang trong giai đoạn đầu phát triển Ở mức độ đơn giản khi kết hợp với máy tìm kiếm nó cho phép đặt câu hỏi để từ đó công cụ tự tìm ra câu trả lời dựa trên các thông tin trên web mặc cho việc trước đó có câu trả lời lưu trên web hay không (giống như trang Yahoo! hỏi và đáp, nơi chuyên đặt các câu hỏi để người khác trả lời), nói một
DUT.LRCC
Trang 20cách dễ hiểu là nó đã biết xử lý dữ liệu để trả lời câu hỏi của người sử dụng, thay vì máy móc đáp trả những gì chỉ có sẵn trong bộ nhớ
Xử lý ngôn ngữ tự nhiên là một kĩ thuật quan trọng nhằm giúp máy tính hiểu được ngôn ngữ của con người, qua đó hướng dẫn máy tính thực hiện và giúp
đỡ con người trong những công việc có liên quan đến ngôn ngữ như : dịch thuật, phân tích dữ liệu văn bản, nhận dạng tiếng nói, tìm kiếm thông tin,
1.2 Học sâu
1.2.1 Khái niệm
Học sâu2 (Deep learning) là một chi của ngành máy học dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều biến đổi phi tuyến
Học sâu là một phần của một họ các phương pháp học máy rộng hơn dựa trên đại diện học của dữ liệu Một quan sát (ví dụ như, một hình ảnh) có thể được biểu diễn bằng nhiều cách như một véc tơ của các giá trị cường độ cho mỗi điểm ảnh, hoặc một cách trừu tượng hơn như là một tập hợp các cạnh, các khu vực hình dạng cụ thể, vv Một vài đại diện làm khiến việc học các nhiệm vụ dễ dàng hơn (ví dụ, nhận dạng khuôn mặt hoặc biểu hiện cảm xúc trên khuôn mặt) từ các ví
dụ Một trong những hứa hẹn của học sâu là thay thế các tính năng thủ công bằng các thuật toán hiệu quả đối với học không có giám sát hoặc nửa giám sát và tính năng phân cấp
Deep Learning là một lĩnh vực của học máy liên quan đến các thuật toán lấy cảm hứng từ cấu trúc và chức năng của não gọi là mạng lưới thần kinh nhân tạo
1.2.2 Học sâu là một mạng lưới thần kinh lớn
Deep Learning (DL) hoạt động dựa trên việc “mô phỏng” quy trình hoạt động của bộ não người Khi suy nghĩ hoặc xác định một vấn đề, chúng ta thường
2 https://vi.wikipedia.org/wiki/Hoc_sau
DUT.LRCC
Trang 21học bằng các kinh nghiệm trước đó (learning) Hoặc khi gặp một vấn đề phức tạp hơn, thông thường chúng ta phân tích vấn đề phức tạp đó thành các vấn đề đơn giản hơn để dễ giải quyết
Mạng lưới thần kinh được đặt tên như vậy là bởi vì về căn bản chúng bắt chước hoạt động của các tế bào thần kinh trong não người Các mạng này được tạo thành từ 3 lớp tế bào thần kinh kỹ thuật số: lớp đầu vào, lớp ẩn, lớp đầu ra Tất cả các mạng thần kinh đều có một lớp đầu vào, trong đó dữ liệu ban đầu được đưa vào và một lớp đầu ra, tạo ra Hứa hẹn cuối cùng Nhưng trong một mạng lưới thần kinh sâu, sẽ có nhiều “lớp tế bào” ẩn giữa các lớp đầu vào và đầu ra, mỗi lớp cho dữ liệu vào nhau Do đó, thuật ngữ “Deep” trong “Deep Learning” và “mạng lưới thần kinh sâu”, nó liên quan đến số lượng lớn các lớp ẩn - thường lớn hơn ba
- tại trung tâm của các mạng thần kinh này
Hình 1 1 Mô hình mạng thần kinh nhân tạo
Mô hình mạng lưới thần kinh3 đầu tiên đến từ McCulloch và Pitts năm 1943 Mạng này là một bộ phân loại nhị phân, có khả năng nhận ra hai loại khác nhau dựa trên một số đầu vào Các vấn đề là các trọng số được sử dụng để xác định nhãn lớp cho đầu vào đã cho là cần thiết được điều chỉnh thủ công bởi con người
- loại mô hình này rõ ràng không có quy mô tốt
3 https://uniduc.com/vi/blog/deep-learning-la-gi
DUT.LRCC
Trang 22Sau đó, vào những năm 1950, thuật toán Perceptron bán kết được Rosenblatt xuất bản - mô hình có thể tự động tìm hiểu các trọng số cần thiết để phân loại đầu vào (không có sự can thiệp của con người cần thiết) Trong thực tế, quy trình đào tạo tự động hình thành nên cơ sở của Stochastic Gradient Descent (SGD) vẫn còn được sử dụng để đào tạo mạng lưới thần kinh rất sâu ngày nay
Có lẽ ví dụ điển hình của việc học sâu ứng dụng vào tính năng học tập là Mạng thần kinh chuyển đổi (LeCun 1988) được áp dụng để nhận dạng ký tự viết tay tự động tìm hiểu các mẫu phân biệt (được gọi là bộ lọc của bộ lọc) từ hình ảnh bằng cách xếp chồng liên tiếp các lớp chồng lên nhau Các bộ lọc ở các cấp thấp hơn của mạng đại diện cho các cạnh và góc, trong khi các lớp cấp cao hơn sử dụng các cạnh và góc để tìm hiểu các khái niệm trừu tượng hữu ích hơn cho phân biệt giữa các lớp hình ảnh
Theo Andrew Ng - Nhà khoa học hàng đầu của Baidu Research, cốt lõi của học sâu là phải có máy tính đủ nhanh và đủ dữ liệu để thực sự huấn luyện các mạng nơ-ron lớn Khi thảo luận về lý do tại sao bay giờ là thời gian mà học sâu đang phát triển mạnh mẽ, tại ExtracConf 2015 và trong buổi nói chuyện có tiêu
đề “Những gì các nhà khoa học dữ liệu nên biết về Deep Learning” ông đã nói:
“…các mạng nơ-ron rất lớn hiện nay chúng ta có thể có và … một lượng
dữ liệu lớn mà chúng ta có quyền truy cập vào”
Ông cũng nhận xét về điểm quan trọng liên quan đến quy mô Khi chúng ta xây dựng các mạng nơ-ron lớn và huấn luyện chúng với càng nhiều dữ liệu, hiệu suất của chúng tiếp tục tăng Điều này thường khác với các kỹ thuật học máy khác khi đạt tới trạng thái hiệu suất ổn định
“…với hầu hết các thuật toán học thế hệ cũ, hiệu suất sẽ đạt trạng thái ổn định trong khi học sâu là lớp các thuật toán đầu tiên có khả năng nâng cao hiệu suất khi nó được nạp nhiều dữ liệu học hơn…” [5]
DUT.LRCC
Trang 23Hình 1 2 Lý do sử dụng Deep Learning (Trích Slide: “What data scientists should know about deep learning”) Trong nhiều ứng dụng, CNN hiện được coi là trình phân loại hình ảnh mạnh nhất và hiện chịu trách nhiệm thúc đẩy các công nghệ tiên tiến trong lĩnh vực thị giác máy tính thúc đẩy học máy
1.2.3 Học sâu là học tính năng phân cấp
Ngoài khả năng mở rộng, một lợi ích khác thường được trích dẫn của các
mô hình học sâu là khả năng thực hiện trích xuất tính năng tự động từ dữ liệu thô, còn được gọi là tính năng học
Theo Yoshua Bengio - một nhà lãnh đạo khác trong học tập sâu đã viết trong bài báo có tên “Deep Learning of Representations for Unsupervised and Transfer Learning - Học sâu về cách đại diện cho việc học không giám sát và chuyển giao” vào năm 2012 viết rằng:
“Các thuật toán học sâu tìm cách khai thác cấu trúc chưa biết trong phân phối đầu vào để khám phá các biểu diễn tốt, thường ở nhiều cấp, với các tính năng đã học ở cấp cao hơn được xác định theo các tính năng cấp thấp hơn”
Hay trong cuốn sách được xuất bản có tựa đề “Deep Learning – Học sâu” đồng tác giả với Ian Goodfellow và Aaron Courville, họ định nghĩa học sâu về độ sâu của kiến trúc của các mô hình
DUT.LRCC
Trang 24“Hệ thống phân cấp các khái niệm cho phép máy tính học các khái niệm phức tạp bằng cách xây dựng chúng từ các khái niệm đơn giản hơn Nếu chúng
ta vẽ một biểu đồ cho thấy các khái niệm này được xây dựng chồng lên nhau như thế nào, thì biểu đồ sẽ sâu, có nhiều lớp Vì lý do này, chúng tôi gọi cách tiếp cận này là học sâu AI”
Jeff Dean - Giáo sư và là thành viên cao cấp của Google về Hệ thống và Cơ
sở hạ tầng Nhóm tại Google chịu trách nhiệm nhân rộng và ứng dụng học tập sâu trong Google Jeff đã tham gia vào dự án Google Brain và phát triển phần mềm học tập sâu quy mô lớn DistBelief và sau đó là TensorFlow Trong một buổi nói chuyện năm 2016 bài nói chuyện có tiêu đề “Deep Learning and Understandability versus Software Engineering and Verication - Học sâu để xây dựng hệ thống máy tính thông minh”, ông đã nói rằng học sâu đó thực sự là tất cả
về các mạng lưới thần kinh lớn
“Khi bạn nghe thấy thuật ngữ học sâu, chỉ cần nghĩ về một mạng lưới thần kinh sâu lớn Sâu đề cập đến số lượng lớp thông thường và vì vậy loại thuật ngữ phổ biến này đã được thông qua trên báo chí Tôi nghĩ về họ như các mạng lưới thần kinh sâu sắc nói chung.”
Ông đã nhấn mạnh tới khả năng mở rộng của các mạng thần kinh và chỉ ra rằng kết quả sẽ tốt hơn với nhiều dữ liệu hơn và các mô hình lớn hơn, đến lúc đó
nó sẽ đòi hỏi nhiều tính toán hơn để thực hiện việc đào tạo
Hay như Peter Norvig - Giám đốc Nghiên cứu của Google và nổi tiếng với cuốn sách giáo khoa về AI có tiêu đề “ Trí tuệ nhân tạo: Phương pháp tiếp cận hiện đại ”
Trong một bài nói chuyện năm 2016, ông đã đưa ra tiêu đề “Articial Intelligence: A Modern Approach - Học sâu – Phương pháp tiếp cận hiện đại ”, ông đã định nghĩa học sâu theo cách rất giống với Yoshua, tập trung vào sức mạnh của sự trừu tượng được cho phép bằng cách sử dụng cấu trúc mạng sâu hơn
Trong một bài nói chuyện năm 2016, ông đã đưa ra tiêu đề “Deep Learning and Understandability versus Software Engineering and Verication - Học sâu và
DUT.LRCC
Trang 25khả năng hiểu so với Kỹ thuật phần mềm và xác minh ”, ông đã định nghĩa học sâu theo cách rất giống với Yoshua, tập trung vào sức mạnh của sự trừu tượng được cho phép bằng cách sử dụng cấu trúc mạng sâu hơn
“Một kiểu học tập trong đó biểu diễn mà bạn tạo thành có một số cấp độ trừu tượng, thay vì đầu vào trực tiếp cho đầu ra.”
Như chúng ta đã biết các thuật toán học máy nói chung rơi vào ba loại - học
có giám sát, học không giám sát và học bán giám sát
Đầu tiên là trường hợp học có giám sát, thuật toán học máy sẽ được cung cấp cả bộ đầu vào và mục tiêu đầu ra Thuật toán sau đó cố gắng tìm hiểu các mẫu
có thể được sử dụng để tự động ánh xạ dữ liệu đầu vào chỉ ra đầu ra mục tiêu chính xác của chúng Học có giám sát tương tự như việc một giáo viên theo dõi bạn làm một bài kiểm tra Với kiến thức trước đây của bạn, bạn làm hết sức mình
để đánh dấu câu trả lời đúng vào thi; tuy nhiên, nếu bạn không chính xác, giáo viên của bạn sẽ hướng dẫn bạn một phỏng đoán tốt hơn, có giáo dục hơn lần tới
Trong trường hợp học không giám sát, các thuật toán học máy cố gắng tự động khám phá các tính năng phân biệt mà không có bất kỳ gợi ý nào về đầu vào
là gì Trong kịch bản này, học sinh cố gắng phân loại nhóm các câu hỏi và câu trả lời tương tự lại với nhau, mặc dù học sinh không biết những câu trả lời đúng là gì
và giáo viên không ở đó để cung cấp cho họ câu trả lời đúng
Học sâu hay cụ thể là mạng lưới thần kinh chuyển đổi, có một cách tiếp cận khác, được sử dụng để phân loại hình ảnh và thu được nhãn lớp đầu ra - lớp đầu
ra là trực tiếp hoặc ảnh hưởng gián tiếp bởi mọi nút khác trong mạng
Chúng ta có thể xem quá trình này là học phân cấp: mỗi lớp trong mạng sử dụng đầu ra của các lớp trước khi xây dựng các khối để xây dựng các khái niệm trừu tượng hơn Những lớp được học tự động - không có kỹ thuật thủ công nào diễn ra trong mạng
Một trong những lợi ích chính của việc học sâu và Mạng nơ ron kết hợp là
nó cho phép bỏ qua bước trích xuất tính năng và thay vào đó tập trung vào quá trình đào tạo để tìm hiểu các bộ lọc này
DUT.LRCC
Trang 261.2.4 Học sâu - học có thể mở rộng trên các miền
Học sâu vượt trội trên các lĩnh vực vấn đề trong đó đầu vào và thậm chí cả đầu ra là tương tự (analog) Có nghĩa, dữ liệu của chúng không chỉ là một số định dạng bảng mà thay vào đó là dữ liệu hình ảnh của pixel, dữ liệu của các tài liệu, văn bản hoặc tập âm thanh
Yann LeCun - giám đốc nghiên cứu của Facebook và là cha đẻ của kiến trúc mạng vượt trội trong việc nhận dạng đối tượng trong dữ liệu ảnh được gọi là Mạng thần kinh tích chập (CNN) Kỹ thuật này đang đạt thành công lớn bởi vì giống như mạng lưới nơron truyền thẳng tri giác đa cấp perceptionron đa lớp, kỹ thuật này có quy mô với dữ liệu và kích thước mô hình và có thể được đào tạo truyền ngược backpropagation
Ông cho rằng học sâu là sự phát triển của các CNN rất lớn Ông mô tả học sâu là học các biểu diễn phân cấp và định nghĩa nó như là một cách tiếp cận có thể mở rộng để xây dựng các hệ thống nhận dạng đối tượng
“Học sâu [là] một hệ thống các mô-đun tất cả đều có thể đào tạo được sâu bởi vì [có] nhiều giai đoạn trong quá trình nhận dạng một đối tượng và tất
cả các giai đoạn đó là một phần của khóa đào tạo”
Jurgen Schmidhuber là cha đẻ của một thuật toán phổ biến khác như MLP
và CNNs khẳng định nó có thể được huấn luyện kiểu truyền ngược nhưng thay vì như vậy nó được điều chỉnh để học dữ liệu trình tự, được gọi là LSTM (Long Short-Term Memory Network), một loại mạng nơron hồi quy Chúng tôi thấy một
số nhầm lẫn trong cụm từ của lĩnh vực như học sâu Trong bài viết năm 2014 của mình có tiêu đề Deep Learning trong mạng lưới thần kinh: Tổng quan ông bình luận về việc đặt tên có vấn đề của lĩnh vực và sự khác biệt sâu sắc từ học nông Ông cũng thú vị mô tả chiều sâu về mức độ phức tạp của vấn đề thay vì mô hình được sử dụng để giải quyết vấn đề
Để chốt lại khái niệm này thì Yann LeCun cùng Yoshua Bengio và Geoffrey Hinton đã xuất bản bài báo có tên “Deep Learning” và mở rộng định nghĩa một cách rõ nét hơn về học sâu như sau:
DUT.LRCC
Trang 27“Học sâu cho phép các mô hình tính toán báo gồm nhiều lớp xử lý để học cách biểu diễn dữ liệu với nhiều mức độ trừu tượng”
“Các phương pháp học sâu là các phương pháp học mô tả với nhiều cấp
độ mô tả thu được bằng cách kết hợp các môđun đơn giản nhưng phi tuyến tính, mỗi môđun biến đổi biểu diễn ở một mức (bắt đầu bằng đầu vào thô) thành biểu diễn ở mức cao hơn một chút … Khía cạnh quan trọng của học sâu là các lớp đặc trưng này không được thiết kế bởi con người: chúng được học từ dữ liệu bằng cách sử dụng quy trình học đa năng” [6]
1.3 Hứa hẹn của học sâu dành cho ngôn ngữ tự nhiên
1.3.1 Hứa hẹn của học sâu
Phương pháp học sâu là khá phổ biến, chủ yếu bởi vì chúng đang có tiềm năng phát triển của chúng Điều đó không có nghĩa là không có sự cường điệu xung quanh công nghệ, mà là sự cường điệu dựa trên trên các kết quả rất thực đang được chứng minh qua một bộ các vấn đề thách thức trí tuệ nhân tạo từ thi giác máy tính và xử lý ngôn ngữ tự nhiên Một số những minh chứng lớn đầu tiên
về sức mạnh của việc học sâu là trong xử lý ngôn ngữ tự nhiên, cụ thể là nhận dạng giọng nói và gần đây hơn trong dịch máy
Trong phần này, chúng ta sẽ xem xét năm hứa hẹn cụ thể về phương pháp học sâu trong lĩnh vực xử lý ngôn ngữ tự nhiên
- The Promise of Drop-in Replacement Models - Hứa hẹn về các mô hình thay thế thả vào: phương pháp học sâu có thể được thả vào các hệ thống ngôn ngữ tự nhiên hiện có như các mô hình thay thế có thể đạt được hiệu suất tương xứng hoặc tốt hơn
- The Promise of New NLP Models - Hứa hẹn về các mô hình NLP mới: phương pháp học sâu cung cấp cơ hội mới của phương pháp mô hình hóa mới đối với các vấn đề ngôn ngữ tự nhiên đầy thách thức giống như Hứa hẹn tuần tự
- The Promise of Feature Learning - Hứa hẹn về tính năng học tập: phương pháp học sâu có thể học các tính năng từ ngôn ngữ tự nhiên theo yêu cầu
DUT.LRCC
Trang 28của mô hình, thay vì yêu cầu các tính năng được chỉ định và trích xuất bởi một chuyên gia
- The Promise of Continued Improvement - Hứa hẹn tiếp tục cải tiến: hiệu suất của sâu học về xử lý ngôn ngữ tự nhiên dựa trên kết quả thực tế và những cải tiến dường như đang tiếp tục và có lẽ tăng tốc hơn
- The Promise of End-to-End Model - Lời hứa về các mô hình đầu - cuối:
độ lớn của mô hình học sâu đầu - cuối có thể phù hợp với các vấn đề ngôn ngữ tự nhiên cung cấp một cách tổng quát hơn và tốt hơn phương pháp tiếp cận [3]
1.3.2 Hứa hẹn của mô hình thay thế thả vào
Lời hứa đầu tiên cho việc học sâu trong xử lý ngôn ngữ tự nhiên là khả năng thay thế các mô hình tuyến tính hiện có với các mô hình hoạt động tốt hơn có khả năng học hỏi và khai thác phi tuyến các mối quan hệ Yoav Goldberg trong bài viết đầu tiên về mạng lưới nơron cho các nhà nghiên cứu NLP, nhấn mạnh cả hai phương pháp học sâu đều đạt được kết quả ấn tượng
“Gần đây, các mô hình mạng nơron cũng bắt đầu được áp dụng cho tín hiệu ngôn ngữ văn bản tự nhiên, một lần nữa mang lại kết quả rất hứa hẹn”
Ông tiếp tục nhấn mạnh rằng các phương pháp này rất dễ sử dụng và đôi khi có thể được sử dụng để bán để thay thế các phương pháp tuyến tính hiện có
“Gần đây, lĩnh vực này đã thấy một số thành công trong việc chuyển đổi từ các mô hình tuyến tính qua đầu vào thưa thớt cho các mô hình mạng nơron phi tuyến tính trên các đầu vào dày đặc Trong khi hầu hết các kỹ thuật mạng nơron rất dễ áp dụng, đôi khi gần như thả vào thay thế các phân loại tuyến tính cũ, trong nhiều trường hợp là một rào cản mạnh mẽ của sự tiếp nhận.” [3]
1.3.3 Hứa hẹn của mô hình NLP mới
Một hứa hẹn khác là phương pháp học sâu tạo điều kiện phát triển các mô hình hoàn toàn mới Một ví dụ mạnh mẽ là việc sử dụng các mạng nơron lặp lại
có khả năng học hỏi và điều kiện đầu ra qua các chuỗi rất dài Cách tiếp cận khác
DUT.LRCC
Trang 29nhau ở chỗ chúng cho phép người thực hành thoát khỏi các mô hình giả định truyền thống và lần lượt đạt được các kết quả hiện đại
Trong cuốn sách mở rộng về học tập sâu dành cho NLP, Yoav Goldberg nhận xét các mô hình mạng nơron phức tạp như mạng nơron hồi quy tạo cơ hội cho phép các mô hình hóa NLP hoàn toàn mới
“Khoảng năm 2014, lĩnh vực này đã bắt đầu thấy một số thành công trong việc chuyển đổi từ đó mô hình tuyến tính trên đầu vào thưa thớt đến mô hình mạng
nơ ron phi tuyến trên dày đặc đầu vào Những người khác tiến bộ hơn, đòi hỏi phải thay đổi tư duy và cung cấp mới Cơ hội mô hình hóa, đặc biệt, một tập hợp của các phương pháp dựa trên lặp mạng nơron hôi quy (RNNs) làm giảm bớt sự phụ thuộc vào Giả định Markov phổ biến trong các mô hình trình tự, cho phép ra điều kiện trên các chuỗi dài tùy ý và tạo các tính năng trích xuất hiệu quả Những tiến bộ này dẫn đến những đột phá trong mô hình ngôn ngữ, dịch máy tự động và các ứng dụng khác.” [6]
1.3.4 Hứa hẹn về tính năng học tập
Các phương pháp học sâu có khả năng học các đặc tính đặt trưng của đối tượng thay vì yêu cầu các chuyên gia chỉ định và trích xuất các đối tượng địa lý
từ ngôn ngữ tự nhiên theo cách thủ công
Nhà nghiên cứu NLP Chris Manning, trong bài giảng đầu tiên của khóa học
về học sâu để xử lý ngôn ngữ tự nhiên, đã nêu bật một quan điểm khác biệt Ông
mô tả những hạn chế của các tính năng nhập đầu vào theo cách thủ công, trong đó các ứng dụng trước đây của máy học trong NLP thống kê thực sự là một minh chứng cho việc con người loại bỏ các tính năng này và rằng máy tính học được rất ít
Chris đồng ý rằng hứa hẹn của các phương pháp học sâu là tính năng học
tự động Ông nhấn mạnh rằng tính năng học tập là tự động chứ không phải thủ công, dễ thích nghi hơn và có thể cải tiến liên tục và tự động
“Nhìn chung, các tính năng được thiết kế theo cách thủ công của chúng tôi
có xu hướng bị chỉnh sửa quá mức, không hoàn chỉnh, mất nhiều thời gian để thiết
DUT.LRCC
Trang 30kế và xác thực và chỉ đưa bạn đến một mức hiệu suất nhất định vào cuối ngày Nơi mà các tính năng đã học dễ dàng thích ứng, đào tạo nhanh và chúng có thể tiếp tục học hỏi để đạt được mức hiệu suất tốt hơn mà chúng tôi đã có thể đạt được trước đây.” [7]
1.3.5 Hứa hẹn tiếp tục cải tiến
Một hứa hẹn khác về học sâu cho NLP là tiếp tục và cải thiện nhanh chóng các vấn đề khó khăn Trong cùng bài giảng đầu tiên về học sâu cho NLP, Chris Manning tiếp tục mô tả rằng các phương pháp học sâu rất phổ biến đối với ngôn ngữ tự nhiên vì chúng đang có hiệu quả
“Lý do thực sự khiến học sâu trở nên thú vị đối với hầu hết mọi người là nó
đã hoạt động hiệu quả.” [7]
Ông nhấn mạnh rằng kết quả ban đầu rất ấn tượng và đạt được kết quả trong bài phát biểu tốt hơn bất kỳ phương pháp nào khác trong 30 năm qua Chris tiếp tục đề cập rằng nó không chỉ là kết quả hiện đại đạt được mà còn là tỷ lệ cải thiện trong tương lai
“ điều hoàn toàn tuyệt vời là trong 6 hoặc 7 năm qua, chỉ có một đoạn đường tuyệt vời này, trong đó các phương pháp học sâu tiếp tục được cải thiện
và ngày càng trở nên tốt hơn với tốc độ đáng kinh ngạc Tôi thực sự chỉ muốn nói điều đó chưa từng có, về mặt này có vẻ như một lĩnh vực đang tiến triển khá nhanh so với khả năng đưa ra các phương pháp thực hiện tốt hơn hàng tháng.”[7]
1.3.6 Hứa hẹn về các mô hình đầu cuối
Một lời hứa cuối cùng của học sâu là khả năng phát triển và đào tạo các mô hình đầu cuối cho các vấn đề ngôn ngữ tự nhiên thay vì phát triển các mô hình chuyên biệt Đây là điều mong muốn cả về tốc độ và sự đơn giản của quá trình phát triển cùng với việc cải thiện hiệu suất của các mô hình này
NMT (Nơron Machine Translation) là sự kết hợp của dịch máy (Machine Translation) và mạng nơ-ron nhân tạo (Artificial Nơron Network – ANN) đề cập đến các mạng nơron lớn cố gắng học cách dịch ngôn ngữ này sang ngôn ngữ khác Đây là một nhiệm vụ truyền thống được xử lý bởi một loạt các mô hình được điều
DUT.LRCC
Trang 31chỉnh bằng tay truyền thống, mỗi mô hình đều yêu cầu chuyên môn chuyên sâu Điều này được Chris Manning mô tả trong bài giảng 10 của khóa học Stanford về học sâu cho NLP
Dịch máy bằng nơron được sử dụng có nghĩa là xây dựng một mạng nơ-ron lớn mà chúng ta có thể đào tạo toàn bộ quy trình dịch máy từ đầu đến cuối và tối
ưu hóa đầu cuối Việc chuyển đổi từ các mô hình từng mảnh tùy chỉnh thủ công sang các mô hình dự đoán trình tự từ đầu đến cuối đã là xu hướng trong nhận dạng giọng nói Các hệ thống làm điều đó được gọi là hệ thống NMT - dịch máy bằng nơron Xu hướng hướng tới các mô hình đầu – cuối hơn là các đường ống của các
hệ thống chuyên dụng cũng là một xu hướng trong nhận dạng giọng nói
Trong phần trình bày của mình về nhận dạng giọng nói trong khóa học NLP tại Stanford, nhà nghiên cứu NLP Navdeep Jaitly, hiện đang làm việc tại Nvidia, nhấn mạnh rằng mỗi thành phần của nhận dạng giọng nói có thể được thay thế bằng một mạng nơ-ron Các khối lớn của hệ thống nhận dạng giọng nói tự động
là xử lý giọng nói, mô hình âm học, mô hình phát âm và mô hình ngôn ngữ Vấn
đề là, các thuộc tính và quan trọng là lỗi của mỗi hệ thống con là khác nhau Điều này thúc đẩy nhu cầu phát triển một mạng nơ-ron để tìm hiểu toàn bộ vấn đề từ đầu đến cuối
“Theo thời gian, mọi người bắt đầu nhận thấy rằng mỗi thành phần này có thể được thực hiện tốt hơn nếu chúng ta sử dụng mạng nơ-ron Tuy nhiên, vẫn còn một vấn đề đó là có mạng nơron trong mọi thành phần, nhưng lỗi trong mỗi thành phần là khác nhau vì vậy chúng có thể không hoạt động tốt với nhau Vì vậy, đó là động lực cơ bản để cố gắng đi đến một quá trình mà bạn đào tạo toàn
bộ mô hình như một mô hình lớn.” [7]
1.4 Tiểu kết chương
Trong chương này, chúng ta đã khám phá ra cách xử lý ngôn ngữ tự nhiên
và tại sao nó lại quan trọng như vậy, những lời hứa của mạng nơ ron học sâu dành cho ngôn ngữ tự nhiên
Cụ thể, chúng ta đã tìm hiểu được:
DUT.LRCC
Trang 32- Ngôn ngữ tự nhiên là gì và nó khác với các loại dữ liệu khác như thế nào
- Điều gì khiến việc làm việc với ngôn ngữ tự nhiên trở nên khó khăn như vậy
- Hứa hẹn của học sâu trong việc xử lý ngôn ngữ tự nhiên
- Các phương pháp học sâu chính và các ứng dụng để xử lý ngôn ngữ tự nhiên
Những nội dung của chương có ý nghĩa quan trọng để làm tiền đề cho việc tìm hiểu bài toán phân loại văn bản ở chương tiếp theo
DUT.LRCC
Trang 33CHƯƠNG 2 PHÂN LOẠI VĂN BẢN
Chương này trình bày mô tả sơ lược về bài toán phân loại văn bản và kỹ thuật xử lý ngôn ngữ tự nhiên Word Embeddings và mô hình mạng nơ ron tích chập CNN trong bài toán phân loại văn bản
2.1 Mô tả bài toán
Phân loại văn bản (Text Classification) là bài toán thuộc nhóm học có giám sát (Supervised learning) trong học máy Bài toán này yêu cầu dữ liệu cần có nhãn (label) Mô hình sẽ học từ dữ liệu có nhãn đó, sau đó được dùng để dự đoán nhãn cho các dữ liệu mới mà mô hình chưa gặp
Bài toán phân loại văn bản4 có thể được định nghĩa như sau Từ một tập các văn bản D = {d1, d2, …, dn}, được gọi là tập huấn luyện, trong đó các tài liệu di được gán nhãn chủ đề ci với ci thuộc tập các chủ đề C = {c1, c2, …, cn} để xây dựng bộ phân lớp Nhiệm vụ của bộ phân lớp là gán đúng nhãn chủ đề ck cho một tài liệu mới dk bất kỳ, trong đó ck thuộc vào tập chủ đề
Ví dụ tại mô hình Convolutional Nơron Network 5dưới đây ta sử dụng 3 bộ lọc có các kích thước khác nhau: 2, 3, 4 và mỗi một kích thước lại có 2 bộ lọc khác nhau Các bộ lọc thực hiện nhân tích chập (convolution) lên ma trận của câu văn đầu vào và mỗi bộ lọc tạo ra một map lưu trữ các đặc trưng(features map) 6 map đặc trưng này từng map sẽ đi qua 1-max pooling – Tức là giá trị lớn nhất trong mỗi map đặc trưng sẽ được lưu lại
Do vậy, một véc tơ có 1 phần tử được tạo ra ở mỗi map đặc trưng Sau đó, các giá trị này được nối lại với nhau tạo nên lớp áp chót ở trong hình Và cuối cùng, kết quả này đi qua một hàm softmax và nhận được là một véc tơ đặc trưng
và dùng nó để dự đoán nhãn cho văn bản Trong ví dụ này, giả sử đây là bài toán phân loại văn bản chỉ có 2 lớp (binary classification) nên ở đây đầu ra chỉ có 2 trạng thái.[11]
4 Nghiên cứu phân lớp tự động văn bản báo chí tiếng Việt về tài nguyên và môi trường - Trần Thị Lan Hương Trường Đại học Công nghệ - Luận văn Thạc sĩ ngành: Hệ thống thông tin;
5 with-word-embeddings/
http://www.joshuakim.io/understanding-how-convolutional-neural-network-cnn-perform-text-classification-DUT.LRCC
Trang 34Hình 2 1 Cấu trúc CNN phân loại câu (Trích A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional
Nơron Networks for Sentence Classification.)
#sentence
Ví dụ trên sử dụng câu “I like this movie very much!” Câu văn này có 6 từ
và một dấu câu nữa Dấu câu này ở đây sẽ được coi như là một từ Như vậy là chúng ta có 7 từ tất cả Ở đây tôi chọn số chiều của word véc tơ là 5(tức là mỗi từ
sẽ là một véc tơ kích thước 1×5) Giả sử ta gọi d là số chiều của word véc tơ Như vậy kích thước ma trận của cả câu văn này là 7 x 5
Từ trong trường hợp này chính là một đặc trưng Tùy bài toán mà người ta
có coi dấu câu là đặc trưng hay không Điều đó phụ thuộc vào việc nó có hữu dụng không Tức là nếu lấy dấu câu thì có giúp tăng độ chính xác hay không Do vậy, có nhiều trường hợp dấu câu sẽ bị loại bỏ
DUT.LRCC
Trang 35#filters
Một tính chất mong muốn của thuật toán CNN bên xử lý ảnh là giữ được tính không gian 2 chiều theo góc quan sát của máy tính Văn bản cũng có tính chất này như ảnh Nhưng thay vì 2 chiều, văn bản chỉ có một chiều và đó là các chuỗi
từ liên tiếp Ở ví dụ trên mỗi từ lại là một véc tơ 5 chiều, do vậy ta cần cố định số chiều của bộ lọc cho phù hợp với số chiều của từ Như vậy bộ lọc này nên có kích thước (? x 5) Dấu ? thể hiện số từ (số hàng) mà ta muốn lấy vào
Ở bức hình trên, #filters là minh họa cho các bộ lọc Đây không phải là bộ lọc để lọc bỏ các phần tử khỏi ma trận bị lọc Điều này sẽ được giải thích kỹ hơn
ở đoạn tiếp theo Ở đây, mô hình sử dụng 6 bộ lọc, các bộ lọc được sử dụng có kích thước (2, 3, 4) từ
#1max
DUT.LRCC
Trang 36Lưu ý rằng kích thước của map đặc trưng phụ thuộc vào ma trận văn bản
và ma trận bộ lọc Nói cách khác, map đặc trưng sẽ có kích thước thay đổi chứ không cố định Để đưa ma trận đặc trưng này về kích thước như nhau Hoặc trong nhiều trường hợp người ta chỉ muốn giữ lại các đặc trưng tiêu biểu Chúng ta có thể sử dụng max-pooling để lấy ra các giá trị lớn nhất trong map đặc trưng Điều này giúp giảm chiều dữ liệu, tăng tốc độ tính toán
Trong ví dụ này, ta sử dụng 1-max-pooling Tức là lấy ra 1 giá trị lớn nhất trong từng map đặc trưng Việc này giúp ta có ma trận output có cùng kích thước
Ở đây kích thước sau khi áp dụng #1max là (1×1) Như vậy, ta chỉ lấy 1 đặc trưng trội nhất ở tất cả các lớp cnn để phục vụ cho bài toán
Hơn nữa, các độ đo lỗi ở giai đoạn phân loại này sau đó sẽ được đưa lại vào các tham số đóng vai trò là một phần của quá trình học để cải thiện độ chính xác cho mô hình
2.2 Kỹ thuật Word Embeddings kết hợp CNN cho bài phân loại văn bản
Thông thường, máy tính không thể hiểu được ý nghĩa các từ Như vậy, để
xử lý được ngôn ngữ tự nhiên, ta cần có một phương pháp để biểu diễn văn bản dưới dạng mà máy tính có thể hiểu được Phương pháp tiêu chuẩn để biểu diễn văn bản đó là biểu diễn các văn bản theo véc tơ Trong đó, các từ/cụm từ thuộc kho tài liệu ngôn ngữ được ánh xạ thành những véc tơ trên hệ không gian số thực
DUT.LRCC
Trang 37Vào khoảng năm 2000 khi Yoshuo Bengio viết chuỗi bài báo Nơron probabilistic language models để nhằm giảm số chiều của véc tơ biểu diễn một
“từ” theo ngữ cảnh bằng cách dùng học máy Sau đó thì nhiều nhà khoa học khác cũng đề xuất nhiều kỹ thuật khác nhau để tìm ra cách biểu diễn tốt nhất cho “từ” Tuy nhiên trong giai đoạn trước 2010 thì không có nhiều điểm bứt phá vì tốc độ
để học các word véc tơ là rất lâu trong khi hiệu suất không cải thiện nhiều Tuy nhiên, năm 2013 thì nhóm nghiên cứu của Tomas Mikolov đã cung cấp bộ công
cụ word2vec với khả năng học word véc tơ rất nhanh cũng như hiệu suất khá tốt, khi đó thì word embedding càng được sử dụng rộng rãi hơn nhiều Có nhiều cách học word embedding nhưng mình sẽ giới thiệu một ví dụ sử dụng mạng Nơron để học word embedding của các từ
Đối với bài toán tìm ra word véc tơ, dữ liệu đầu vào sẽ là một văn bản, xem như là tập hợp các từ (word) Đầu tiên, tương ứng với mỗi word thì chúng ta sẽ khởi tạo một véc tơ random với số chiều được chỉ định (giả sử 100) Sau khi đã
có véc tơ random, việc tiếp theo là thực hiện quá trình điều chỉnh véc tơ của các
từ này để sao cho chúng có thể biểu diễn được liên hệ giữa các từ có quan hệ với nhau
Giả sử chúng ta có câu văn sau: Con mèo trèo cây cau6 Tương ứng với mỗi
từ trong câu này, chúng ta sẽ khởi tạo một véc tơ random với số chiều được quy định trước (ví dụ số chiều = 50) Người ta sử dụng một mạng nơron và dùng mạng nơron này để điều chỉnh dần dần các véc tơ của các từ sao cho chúng thỏa mãn một số điều kiện nào đó.Câu hỏi đặt ra ở đây: Điều kiện đó là gì?
Chúng ta sử dụng một mạng nơ ron để xem câu này có hợp lệ hay không Giả sử thay từ “ trèo ” bằng từ “ ngủ “, rõ ràng chúng ta sẽ một câu hoàn toàn vô nghĩa và hầu như không bao giờ xuất hiện trong văn bản bình thường: “mèo ngủ cây cau” Bằng cách thay từ “trèo” bằng từ “ngủ” và nói cho mạng nơ ron biết rằng câu mới sinh ra là không hợp lệ, mạng nơ ron sẽ phải điều chỉnh các tham số
6 https://sites.google.com/site/vncoder95/nlp/word-embedding
DUT.LRCC
Trang 38trong mạng của nó một cách hợp lý để đưa ra được đầu ra đúng như chúng ta mong muốn (tức là “không hợp lệ”) Thông thường đầu vào vào mạng nơ ron sẽ không phải là nguyên một câu mà chỉ là một cụm từ của câu có độ dài dựa theo một tham số gọi là window size Ví dụ window_size = 3 thì chúng ta sẽ có các cụm từ: “con mèo trèo”, “mèo trèo cây”, “trèo cây cau” Với mỗi windows size thì chúng ta có thể thay một từ nào đó bằng 1 từ random khác để có các cụm câu
vô nghĩa dùng để huấn luyện mạng nơ ron (bởi vì khi huấn luyện mạng nơ ron thì phải vừa cho đầu vào với nhãn “hợp lệ” và cũng phải có đầu vào với nhãn “không hợp lệ” nhằm giúp cho mạng nơ ron đó phân biệt cho đúng)
Trong Xử lý ngôn ngữ tự nhiên, Word Embedding là một kỹ thuật được sử dụng để chuyển hóa text (characters, words hoặc phrases) thành dạng véc tơ số để
từ đó làm đầu vào cho việc huấn luyện các mô hình Deep learning Word Embedding đảm bảo rằng các từ tương tự nhau sẽ có giá trị véc tơ gần giống nhau
Ví dụ như véc tơ của King, Queen hoặc véc tơ của Man, Woman là tương tự nhau
và đặc biệt ta có King – Man + Woman ≈ Queen
Hình 2 2 Ví dụ mô tả về xử lý thành Véc tơ của Word Embedding
Thông thường, Word Embedding được chia thành hai loại chính là Frequency-based embedding và Prediction-based embedding:
– Frequency-based embedding: là phương pháp véc tơ hóa dựa trên tần số xuất hiện của các từ trong Corpus Ví dụ tiêu biểu về phương pháp này là Glove (đề xuất năm 2014) và TF-IDF
DUT.LRCC
Trang 39– Prediction-based embedding: là phương pháp véc tơ hóa dựa trên kết quả của một mô hình dự đoán Thông thường là mô hình mạng Nơron với 3 lớp: 1 Input layer, 1 Hidden layer và 1 Ouput layer Ví dụ tiêu biểu về phương pháp này
là Word2vec (đễ xuất năm 2013 với sự kết hợp của hai mô hình là Continuos Bag of Words và Skip-gram)
CBOW-Hiện nay, hai phương pháp được sử dụng nhiều nhất trong Word Embedding là Glove và Word2vec Mặc dù hai phương pháp này thuộc hai dạng khác nhau nhưng nhiều kết quả cho thấy chúng có nhiều điểm tương đồng và tương đối gần nhau Phương pháp được sử dụng trong luận văn là Word2vec
Word2vec là phương pháp biểu diễn một từ dưới dạng một phân bố quan
hệ với các từ còn lại Mỗi từ được biểu diễn bằng một véc tơ có các phần tử mang giá trị là phân bố quan hệ của từ này đối với các từ khác trong từ điển
Năm 2013, Google đã khởi dựng dự án word2vec của riêng mình với dữ liệu được sử dụng từ Google News Bộ dữ liệu được coi là đồ sộ nhất cho tới bây giờ với 100 tỷ từ [2]
Hình 2 3 Phân bố mối quan hệ giữa các từ trong word2vec
Ví dụ bài toán kinh điển King + Man – Woman = ? ở phần trên Việc nhúng các từ trong không gian véc tơ cho thấy sự tương tự giữa các từ Giả sử như tại hình 2.3 là một sự khác biệt về mặt giới tính giữa các cặp từ (“man”,”woman”), (“uncle”,”aunt”), (“king”,”queen”)
W(“woman”) – W(“man”) ≈ W(“aunt”) – W(“uncle”)
W(“woman”) – W(“man”) ≈ W(“queen”) – W(“king”)
Từ đó, kết quả của King + Man – Woman = Queen
DUT.LRCC
Trang 40Để xây dựng được véc tơ mô tả phân bố quan hệ với tập từ điển, bản chất
mô hình Word2vec sử dụng một mạng nơron đơn giản với một lớp ẩn Sau khi được huấn luyện trên toàn bộ tập văn bản, toàn bộ lớp ẩn sẽ có giá trị mô hình hóa quan hệ của từ trong tập văn bản được huấn luyện ở mức trừu tượng Trong ngữ cảnh, từ sẽ được huấn luyện việc sử dụng thuật toán Continuous Bag of Words (CBOW) và skip gram Bản chất của CBOW là sử dụng ngữ cảnh để đoán từ và bản chất của skip gram là dùng từ để dự đoán ngữ cảnh Một trong hai cách sẽ được áp dụng để huấn luyện cho mô hình word2vec, trong đó cách sử dụng mô hình skip gram thường được sử dụng do việc đáp ứng tốt với tập dữ liệu lớn
Khi sử dụng mô hình skip gram thì đầu vào là một từ trong câu, thuật toán
sẽ nhìn vào những từ xung quanh nó Giá trị số từ xung quanh nó được xét gọi là
“window size” Một window size bằng 5 có nghĩa sẽ xét 5 từ trước nó và 5 từ sau
nó Xác suất đầu ra sẽ liên quan tới khả năng tìm thấy các từ xung quanh từ hiện tại đang xét Ví dụ nếu tôi đã huấn luyện với từ đầu vào là “bóng đá”, xác suất đầu ra sẽ cao hơn đối với những từ “quả bóng” hay “cầu thủ” so với các từ không liên quan như “dưa hấu” hay “Nam Phi” tôi sẽ huấn luyện mạng nơron này bằng cách cho xét từng cặp từ gồm từ được xét và từ xung quanh nó Xét câu “The quick brown fox jumps over the lazy dog” với window size bằng 2 từ được bôi đậm là từ đầu vào
Hình 2 4 Mô hình skip-gram trong word2vec
DUT.LRCC