1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống học sâu tự động thêm dấu cho tiếng việt

71 111 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 5,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

hiện một đề tài còn khá mới và thú vị, mang tính ứng dụng vào đời sống là: Ứng Dụng Hệ Thống Học Sâu Tự Động Thêm Dấu Cho Tiếng Việt với các công nghệ mới đi đầu trong deep learning tro

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

-

HUỲNH DƯƠNG KHANG

XÂY DỰNG HỆ THỐNG HỌC SÂU TỰ ĐỘNG THÊM

DẤU CHO TIẾNG VIỆT

Chuyên Ngành: Khoa Học Máy Tính

Mã số: 60480101

LUẬN VĂN THẠC SĨ

TP HCM, ngày 24 tháng 08 năm 2020

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG -HCM

Cán bộ hướng dẫn khoa học: PGS.TS Quản Thành Thơ

Cán bộ chấm nhận xét 1: TS Lê Thanh Vân

Cán bộ chấm nhận xét 2: PGS.TS Lê Anh Cường

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày

24 tháng 08 năm 2020

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1 Chủ tịch: PGS TS Dương Tuấn Anh

2 Thư ký: TS Võ Thị Ngọc Châu

3 Phản biện 1: TS Lê Thanh Vân

4 Phản biện 2: PGS TS Lê Anh Cường

5 Ủy viên: TS Lê Thị Ngọc Thơ

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

………

………

………

………

CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA…………

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: HUỲNH DƯƠNG KHANG MSHV: 1770476

Ngày, tháng, năm sinh: 25/12/1993 Nơi sinh: Tiền Giang

Chuyên ngành: Khoa học máy tính Mã số : 60480101

I TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG HỌC SÂU TỰ ĐỘNG THÊM DẤU CHO

TIẾNG VIỆT

II NHIỆM VỤ VÀ NỘI DUNG: Ứng dụng các phương pháp trong học sâu xây dựng và

phát triển hệ thống tự động thêm dấu cho Tiếng Việt

III NGÀY GIAO NHIỆM VỤ : 10/02/2020

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 21/06/2020

V CÁN BỘ HƯỚNG DẪN : PGS TS QUẢN THÀNH THƠ

Trang 4

LỜI CÁM ƠN

Trên thực tế, không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ và hướng dẫn dù ít hay nhiều, trực tiếp hay gián tiếp từ những người xung quanh Có câu nói rằng: “Chúng ta hãy nhớ rằng một đứa trẻ, một giáo viên, một quyển sách và một cái bút có thể thay đổi cả thế giới” – Malala Yousafzai Nhờ

sự hướng dẫn và hỗ trợ, cung cấp kiến thức từ những người thầy bất cứ một đứa trẻ nào cũng có thể thay đổi thế giới Trong suốt thời gian từ khi bắt đầu học tập tại giảng đường Bách Khoa đến nay, tôi đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình, bạn bè

Với lòng biết ơn sâu sắc nhất, tôi xin gửi đến quý Thầy Cô ở Khoa Khoa Học Máy Tính – Trường Đại Học Bách Khoa TP.HCM đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho những học viên cao học trong suốt thời gian học tập và nghiên cứu Đặc biệt hơn, là khoảng thời gian thực hiện luận văn này Thầy hướng dẫn đã dành rất nhiều thời gian và sự quan tâm cho tôi

Em xin gửi lời cám ơn đặc biệt đến Thầy Quản Thành Thơ đã tận tâm hướng dẫn các kiến thức, cùng những buổi thảo luận các phương pháp, tư duy để hoàn thành khóa luận này Nếu không nhận được sự tận tâm từ Thầy, thì đề tài này khó mà hoàn thành tốt được Một lần nữa em xin chân thành cám ơn Thầy

Luận văn này được thực hiện trong khoảng thời gian bốn tháng Với kiến thức bản thân cùng với khả năng nghiên cứu khoa học hạn chế nên còn khá nhiều công việc chưa hoàn thiện Do vậy, không tránh khỏi những điều thiếu sót nên tôi rất mong nhận được những ý kiến đóng góp từ quý Thầy Cô và các bạn để có thể hoàn thiện kiến thức hơn

Một lần nữa tôi xin chân thành cảm ơn vì đã dành thời gian cho Luận Văn này!!!

Tp Hồ Chí Minh, ngày 03 tháng 8 năm 2020

Sinh viên thực hiện

Huỳnh Dương Khang

Trang 10

MỤC LỤC

Mở đầu 1

1.1 Lý do chọn đề tài 1

1.1.1 Giới thiệu sơ lược 1

1.1.2 Lý do chọn đề tài 2

1.2 Mục tiêu, đối tượng và phạm vi nghiên cứu 2

1.2.1 Mục tiêu 2

1.2.2 Đối tượng 3

1.2.3 Phạm vi nghiên cứu 4

1.3 Ý nghĩa khoa học và thực tiễn của đề tài cần nghiên cứu 4

1.3.1 Ý nghĩa khoa học của đề tài 4

1.3.2 Ý nghĩa thực tiễn 4

Tổng quan 6

2.1.1 Các công trình liên quan 6

2.1.2 Vấn đề chung còn tồn tại 7

2.1.3 Hướng giải quyết 7

Cơ sở lý thuyết và nghiên cứu thực nghiệm 9

3.1 Cơ sở lý thuyết 9

3.1.1 Machine Translation 9

3.1.2 Mạng nơ-ron hồi quy – RNN 10

3.1.3 Mô hình hóa ngôn ngữ - Language Model 17

3.1.4 Beam search – Thuật toán tìm kiếm theo chùm tia 21

3.1.5 Cây tìm kiếm Trie 24

3.2 Phương pháp nghiên cứu 26

3.2.1 Phương pháp thu thập dữ liệu 26

3.2.2 Phương pháp xử lý tiếng Việt 27

Trang 11

3.2.3 Phương pháp xây dựng mô hình học sâu 27

3.2.4 Các phương pháp nghiên cứu khoa học 28

3.2.5 Đánh giá kết quả 28

Trình bày, đánh giá, bàn luận kết quả 30

4.1 Hiện thực đề tài 30

4.1.1 Mô hình của bài toán 30

4.1.2 Giải thích chi tiết mô hình 32

4.1.3 Trình bày kết quả 45

Kết luận và kiến nghị hướng mở rộng đề tài 52

5.1 Kết luận 52

5.2 Hướng mở rộng đề tài 52

Danh mục tài liệu tham khảo 54

Phụ lục 57

Trang 12

DANH MỤC HÌNH ẢNH

Hình 3-1 Mô hình mô phỏng mạng neural network - Nguồn:

https://noron.vn/post/gioi-thieu-ve-mang-neural-hoi-quy -recurrent-neur-40wwa1jsk2si 10

Hình 3-2 Mô hình RNN dàn trải ra - Nguồn:

https://noron.vn/post/gioi-thieu-ve-mang-neural-hoi-quy -recurrent-neur-40wwa1jsk2si 11

Hình 3-3 Đầu vào được tô màu đỏ, mạng RNN màu xanh, đầu ra màu xanh dương - Nguồn: Andrej Karpathy 11

Hình 3-4 Ứng dụng RNN cho bài toán dịch máy - Nguồn: http://cs224d.stanford.edu/lectures/CS224d-Lecture8.pdf 14

Hình 3-5 Ứng dụng RNN tạo tiêu đề cho ảnh Source: http://cs.stanford.edu/people/karpathy/deepimagesent/ 14

Hình 3-6 Mô hình chuẩn RNN 1 lớp Nguồn: Internet 16

Hình 3-7 Mô hình bên trong LSTM Nguồn: Internet 16

Hình 3-8 Mô hình ngram language models - nguồn: https://ongxuanhong.wordpress.com/2016/08/27/language-modeling-la-gi/ 18

Hình 3-9 Ví dụ minh họa mô hình trigram Markov LM Nguồn: https://ongxuanhong.wordpress.com/2016/08/27/language-modeling-la-gi/ 19

Hình 3-10 Cây ngữ pháp của câu "The dogs chasing the cat bark." - Nguồn: http://people.ee.ethz.ch/~spr/publications/Beutler:07_diss.pdf 21

Hình 3-11 Minh họa cho Beam search Nguồn: https://nerophung.github.io/2019/06/02/nlp-p4 22

Hình 3-12 Thuật toán Beamsearch – Nguồn Andrew Ng 23

Hình 3-13 Mô hình vẽ tay thuật toán Beamsearch - Nguồn: Andew Ng 23

Hình 3-14 Cấu trúc dữ liệu Trie Nguồn: https://github.com/umbertogriffo/Trie 25

Hình 4-1 Mô hình hiện thực bài toán 30

Hình 4-2 Mô hình processing 33

Hình 4-3 Bộ ký tự từ điển cho quá trình huấn luyện 34

Hình 4-4 Mô hình LSTM dùng training Language Model 37

Hình 4-5 Bidiectional LSTM = LSTM chạy tới + LSTM chạy lùi 37

Hình 4-6 Mô hình cho khối dự đoán 38

Hình 4-7 Mô hình áp dụng thuật toán tham lam sau khi decode 42

Hình 4-8 Mô hình áp dụng TrieSearch và Levenhstein distance 43

Hình 4-9 Kết quả của Greedy decode 45

Hình 4-10 Kết quả Beamsearch 46

Hình 4-11 Biểu đồ đánh giả thang điểm BLEU trên số từ văn bản dùng bộ decode bằng thuật toán tham lam 48

Hình 4-12 Biểu đồ đánh giả thang điểm BLEU trên số từ văn bản dùng bộ decode bằng thuật toán tím kiếm Beam 49

Hình 4-13 So sánh về độ chính xác (theo thang điểm BLEU) của 2 bộ giải mã 50

Trang 13

MỞ ĐẦU 1.1 Lý do chọn đề tài

1.1.1 Giới thiệu sơ lược

Ngày nay, trí thông minh nhân tạo là một lĩnh vực phát triển rất mạnh với nhiều ứng dụng thực tế và các chủ đề nghiên cứu rất tích cực Con người ngày nay tìm kiếm các phần mềm thông minh để tự động hóa lao động, hiểu được âm thanh hay hình ảnh, chuẩn đoán y học và có thể hỗ trợ nghiên cứu khoa học cơ bản AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể hơn là Machine Learning (Học Máy hoặc Máy Học) nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3 - công nghệ thông tin) Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning [1]

Thuật ngữ trí tuệ nhân tạo có thể được hiểu là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào, do con người lập trình tạo nên với mục tiêu giúp máy tính

có thể tự động hóa các hành vi thông minh như con người Artificial Intelligence (AI) được hiểu là bản sao trí thông minh của con người trong máy tính Khi nghiên cứu về

AI lần đầu được bắt đầu, các nhà nghiên cứu đã thử tái tạo trí thông minh con người cho một vài việc cụ thể - như là chơi game Họ đã giới thiệu một lượng lớn các quy tắc mà máy tính cần phải tuân theo Máy tính phải có một danh sách cụ thể các hành động khả thi và quyết định đưa ra từng hành động dựa vào các quy tắc này [2] Machine Learning, theo Wikipedia, được hiểu là một ngành học thuộc khoa học của máy tính, giúp máy tính có khả năng tự học mà không phải lập trình một cách rõ ràng

Những năm gần đây, khi mà khả năng tính toán của các máy tính được nâng lên một tầm cao mới và lượng dữ liệu khổng lồ được thu thập bởi các hãng công nghệ lớn, Machine Learning đã tiến thêm một bước dài và một lĩnh vực mới được ra đời gọi là Deep Learning Deep Learning đã giúp máy tính thực thi những việc tưởng chừng như không thể vào 10 năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng tác văn hay âm nhạc [2] Sự thành công của Deep Learning trong hầu như mọi lĩnh vực là không thể phủ nhận, bên cạnh

Trang 14

những thành tựu to lớn về xử lý ảnh, xử lý âm thanh, xử lý tiếng nói thì xử lý ngôn ngữ tự nhiên (NLP) cũng đang là một trong những lĩnh vực gặt hái được rất nhiều thành công

hiện một đề tài còn khá mới và thú vị, mang tính ứng dụng vào đời sống là: Ứng Dụng Hệ Thống Học Sâu Tự Động Thêm Dấu Cho Tiếng Việt với các công nghệ

mới đi đầu trong deep learning trong một vài năm gần đây như thư viện keras của tensorflow, mô hình neural network, ứng dụng beam_search, …

1.2 Mục tiêu, đối tượng và phạm vi nghiên cứu

1.2.1 Mục tiêu

Mục tiêu nghiên cứu của đề tài này là áp dụng các kỹ thuật tiên tiến, mới nhất của Xử Lý Ngôn Ngữ Tự Nhiên (NLP) vào Tiếng Việt để chuyển đổi từ một câu nhập vào không dấu có thể trả về một câu có dấu, có ý nghĩa và sát với suy nghĩ của tác giả nhất có thể Hướng tiếp cận tôi muốn thực hiện ở đây là sử dụng một mô hình dịch máy (Machine Translation) với ngôn ngữ nguồn là Tiếng-Việt-không-dấu và ngôn ngữ đích là Tiếng-Việt-có-dấu kết hợp các kỹ thuật mới của Deep Learning:

Ví dụ: input: hom nay toi di hoc => output: hôm nay tôi đi học

Việc tạo ra được kết quả sau ứng dụng có thể dùng cho các nghiên cứu khác như dự đoán tự hoàn thành tìm kiếm (như công cụ của google), sửa lỗi chính tả (điển hình ở đây là các lỗi liên quan đến dấu câu), Ngoài ra, qua việc vận dụng, tiếp cận theo nhiều phương pháp khác nhau giúp cho sau việc hoàn thành để tài này có thể giới thiệu một cách chi tiết hơn về các công nghệ mới trong Deep Learning hiện nay,

Trang 15

phương pháp training model language có thể sinh ra model dùng để áp dụng thêm cho một vài bài toán hay nghiên cứu liên quan

 Mục tiêu:

o Hoàn thành đề tài trong khoảng thời gian kế hoạch

o Nắm rõ được kiến thức trong đề tài và trình bày chi tiết, dễ hiểu

o Có sản phẩm demo và có kết quả

o Đánh giá được đề tài về mức độ hoàn thiện và kết quả khoa học

o Trình bày được hướng mở rộng đề tài

1.2.2 Đối tượng

Đối tượng nghiên cứu của đề tài là ngôn ngữ Tiếng Việt, với sự đặc thù của ngôn ngữ gồm các ngữ điệu được tạo thành bởi các dấu câu và sự đa dạng về nghĩa cũng như từ vựng Với một từ ngữ hay một câu khi ta đặt vào dấu câu khác nhau có thể dẫn đến sai lệch rất lớn về ngữ nghĩa dẫn đến khó hiểu cho người đọc cũng như mất đi sự tinh tế hay trong sáng của ngôn ngữ Việt Nam

Ví dụ ở câu nói “Mua nuoc lon o mien tay co rat nhieu ca vi the nen am thuc

o cac vung nay rat phong phu va da dang”, khi ta đọc một câu không có dấu sẽ thấy

rất tối nghĩa và thậm chí không hiểu được ý nghĩa của câu này nhưng khi thêm dấu

vào ta có câu “Mùa nước lớn ở miền tây có rất nhiều cá vì thế nên ẩm thực ở các

vùng này rất phong phú và đa dạng” Một ví dụ khác mà dấu câu làm thay đổi nghĩa

hoàn toàn câu nói như ở câu “nha trang co bai bien rat dep” nếu thêm dấu câu “Nha

Trang có bãi biển rất đẹp” hay một cách khác là “Nhà Trắng có bãi biển rất đẹp”,

khi ta đọc hai câu trên và hiểu thì sẽ thấy nội dung của câu khác nhau và thông tin đưa vào sẽ khác biệt hoàn toàn Tuy nhiên, với những thông tin giao tiếp trong cuộc sống thông thường con người (hay đặc biệt là người Việt Nam) có thể dễ dàng biết

được là ở đây đang nói ý câu thứ nhất và từ đúng là “Nha Trang”, nhưng làm sao máy tính có thể hiểu được như chúng ta?

Các dấu của Tiếng Việt ở đây không chỉ nói về những thanh âm như “sắc, huyền, hỏi, ngã, nặng” mà ở đây còn nói về các ký tự đặc biệt chỉ có ở Tiếng Việt như “â, ă, ơ, ô, ư, ê, đ” và sự kết hợp có ý nghĩa giữ các từ với nhau chứ không đơn thuần là thêm dấu cho chúng

Trang 16

1.2.3 Phạm vi nghiên cứu

Phạm vi nghiên cứu của đề tài này tôi dùng phương pháp học máy trong đó quan tâm đến các khía cạnh là khả năng áp dụng các mạng nơ ron học sâu (deep neural network) vào bài toán này so với các giải thuật học máy căn bản khác như thế nào

Bên cạnh đó, bài toán cần rất nhiều dữ liệu huấn luyện cho máy tính và nguồn

dữ liệu chủ yếu lấy từ các trang web trên internet, các bài báo mạng, các trang du lịch,… nên các từ ngữ là những từ thường dùng, các câu thông dụng và xuất hiện trong cuộc sống thường nhật với ngôn ngữ là Tiếng Việt quốc ngữ và vì thế các từ ngữ mới của giới trẻ hiện nay, các từ ngữ địa phương hay dân tộc hiếm xuất hiện trong tập dữ liệu, hay các tên riêng, địa danh ít xuất hiện trong tập dữ liệu huấn luyện

có thể dẫn đến ảnh hướng đến kết quả dự đoán ít nhiều

1.3 Ý nghĩa khoa học và thực tiễn của đề tài cần nghiên cứu

1.3.1 Ý nghĩa khoa học của đề tài

Đề tài củng cố được kiến thức khoa học cho người nghiên cứu, giúp bổ sung

và hoàn thiện về kiến thức khoa học cho nghiên cứu về Xử Lý Ngôn Ngữ Tự Nhiên bằng phương pháp Học Sâu

Giúp người nghiên cứu có thể ứng dụng được các phương pháp nghiên cứu

“state of the art” – thịnh hành nhất – vào mô hình xử lý mà chưa có công bố khoa học nào, áp dụng các kiến thức khác nhau vào một mô hình để xử lý cho một ngôn ngữ

cụ thể mang tính ứng dụng vào đời sống

Bằng cách dùng Deep Learning để tạo ra mô hình dữ liệu, đề tài này có thể cung cấp được mô hình dữ liệu cho Tiếng Việt ở mức ký tự Mô hình này có thể được dùng lại cho các nghiên cứu liên quan về xử lý ngôn ngữ

1.3.2 Ý nghĩa thực tiễn

 Với sự yêu thích và tôn trọng ngôn ngữ Tiếng Việt tôi chọn đề tài này với mong muốn góp phần ứng dụng được nhiều thành tựu khoa học mới vào xử lý cho ngôn ngữ mẹ đẻ đồng thời góp phần làm trong sáng Tiếng Việt tránh gây hiểu nhầm về dấu câu làm sai ngữ nghĩa

 Có thể giúp phát triển các bộ phần mềm liên quan đến xử lý ngôn ngữ Tiếng Việt

Trang 17

 Có thể ứng dụng được để xấy dựng bộ “tự hoàn thành tìm kiếm” hay “gợi ý tìm kiếm” cho hướng mở rộng của đề tài này

Trang 18

TỔNG QUAN 2.1.1 Các công trình liên quan

Các nghiên cứu về dịch máy (machine translation) đã được nghiên cứu từ rất lâu trước đây và đạt được các thành tựu nhất định trong những năm gần đây bằng việc thay thế mô hình thống kê (Statistical Machine Translate) trước đây bằng các

mô hình dịch máy neural network [2] Về đề tài dịch máy có rất nhiều các công trình liên quan đến đề tài Tiếng Việt hiện tại như:

Neural Machine Translation: A Review – Trong bài báo này, truy nguyên

nguồn gốc của các kiến trúc NMT hiện đại với các từ và các câu embedding và các

ví dụ trước đây của chúng mạng bộ giải mã-giải mã Bài báo kết thúc với một cuộc khảo sát về các xu hướng gần đây trong lĩnh vực này [1]

Neural Machine Translation Between Vietnamese And English: An Empirical Study – Bài báo này nêu bật những nỗ lực của tác giả trong việc cải thiện

các bản dịch tiếng Anh-Việt theo hai hướng: (1) Xây dựng kho văn bản tiếng Việt - tiếng Anh mở lớn nhất cho đến nay và (2) Các thử nghiệm mở rộng với các mô hình neural mới nhất để đạt được điểm BLEU cao nhất Các thí nghiệm của chúng tôi cung cấp các ví dụ thực tế về việc sử dụng hiệu quả các mô hình dịch máy thần kinh khác nhau với các cặp ngôn ngữ tài nguyên thấp [5]

VnCoreNLP: A Vietnamese Natural Language Processing Toolkit: Bài báo

trình bày một bộ công cụ nhanh và dễ sử dụng, cụ thể là VnCoreNLP, một bộ xứ lý Java NLP cho tiếng Việt VnCoreNLP hỗ trợ các tác vụ xử lý ngôn ngữ tự nhiên (NLP) chính bao gồm phân đoạn từ, gắn thẻ lời nói (POS), nhận dạng thực thể có tên (NER) và phân tích cú pháp phụ thuộc và đạt được kết quả hiện đại (SOTA) cho các kết quả này nhiệm vụ [4]

Sentiment Analysis for Vietnamese: bài viết này giải quyết vấn đề phân tích

cảm xúc ở cấp độ câu và xây dựng một hệ thống dựa trên quy tắc bằng cách sử dụng khung Gate Kết quả thử nghiệm trên một loạt các đánh giá sản phẩm máy tính là rất hứa hẹn [3]

Bên cạnh đó còn khá nhiều công trình nhưng đề tài về áp dụng dịch máy để

xử lý thêm dấu câu tự động này theo cá nhân tôi nhận thấy có ứng dụng cao và chưa

có công bố khoa học nào

Trang 19

Các bài toán trong cuộc thi AIVIVN-challenge 3 với đề bài thêm dấu cho Tiếng Việt: [6]- Bài thi yêu cầu thí sinh dùng mô hình trí tuệ nhân tạo xử lý và thêm dấu cho Tiếng Việt với tập câu đề bài được làm sạch dấu do ban tổ chức đưa ra

2.1.2 Vấn đề chung còn tồn tại

Ở các bài toán trên (ngoại trừ cuộc thi AIVIVN-challenge3) chưa trực tiếp đi vào nghiên cứu về thêm dấu cho Tiếng Việt Riêng ở dự án cuối cùng có nhiều tác giả đã đi vào nghiên cứu về đúng nội dung thêm dấu cho Tiếng Việt, nhưng theo các bài thi gửi về có đề cập đến là nằm trong phạm vi cuộc thi và độ hoàn thiện chưa đạt mức cao cùng với đó mô hình chưa được tối ưu và thử nghiệm với nhiều mô-đun bổ sung hơn Kết quả training và cuối cùng tập dữ liệu cũng bị overfitting với đề bài của Ban tổ chức

Nhược điểm:

 Mô hình vẫn còn khá lớn trong khi tập dữ liệu và thời gian huấn luyện hạn chế, đo đạc tính chính xác chưa cao – chỉ gói gọn xử lý cho tập dữ liệu của cuộc thi

 Mặc dù có độ chính xác tốt, nhưng mô hình của tác giả chạy rất chậm Tác giả chưa có đủ thời gian để thử nghiệm nhiều cấu hình khác nhau xem ảnh hưởng của nó tới độ chính xác như thế nào

 Mô hình seq2seq của tác giả chưa được thử nhiều config khác nhau nên chưa biết phần nào đem lại hiệu quả lớn nhất, hoặc phần nào không thực sự có ích (decoder 2 chiều, teacher forcing, hay masked softmax?)

 Code của tác giả có một số đoạn không được gọn và còn nhiều thiếu sót

2.1.3 Hướng giải quyết

Ở đề tài này, tôi sẽ giải quyết bài toán này theo phương pháp dùng Language Model kết hợp với bộ dịch máy LSTM để chuyển văn bản không dấu thành có dấu với câu có ý nghĩa xuất hiện phổ biến nhất dựa trên tập training Giải quyết được các vấn đề chung đưa ra về:

Dùng ít resource hơn (Đề tài được training trên Google Colab với resource khá hạn chế)

Tập data training ít hơn nhưng đa dạng và phong phú hơn và cho ra mô hình

có kết quả tương đương đến tốt hơn với thời gian training và resource ít hơn

Trang 20

Thử nghiệm thêm các phương pháp khác nhau như GRU, LSTM hay BeamSearch để chọn ra phương pháp có kết quả cao hơn đồng thời đánh giá bằng công cụ khoa học khách quan rõ ràng

Thêm vào xử lý từ ngữ ở mức ký tự, đề tài này mở rộng hơn bằng cách kết hợp thêm bộ xử lý ở mức từ để cho ra kết quả tối ưu hơn, đồng thời nắm rõ thêm kiến thức và nghiên cứu về “Word-Level Neural Language Model”

Trang 21

CƠ SỞ LÝ THUYẾT VÀ NGHIÊN CỨU THỰC NGHIỆM 3.1 Cơ sở lý thuyết

Qua quan sát và phân tích các ví dụ ở mục 1.2.2, tôi thấy rằng chúng ta có thể

dễ dàng dự đoán được câu “nha trang co bai bien rat dep” trên do kiến thức của con

người có thể biết rằng ở Nhà Trắng thì không có bãi biển, hay nói cách khác là chúng

ta ít nhắc về “bãi biển” khi nói đến “Nhà Trắng” nhưng lại dễ dàng thấy rằng từ “Nha

Trang” và “bãi biển” xuất hiện cùng nhau khá nhiều, hay hầu hết khi nói đến “Nha Trang” thì sẽ thấy có từ “bãi biển” xuất hiện Từ quan sát trên tôi quyết định dùng

các phương pháp deep learning, bằng cách huấn luyện máy học một lượng dữ liệu đủ lớn để phân biệt những từ hay xuất hiện cùng nhau và tăng độ chính xác của dự đoán lên, kết hợp với mô hình dịch máy được áp dụng các kỹ thuật mới là dùng neural network với mô hình ngôn ngữ để đưa ra dự đoán chính xác nhất

Trong đề tài “Ứng dụng hệ thống học sâu tự động thêm dấu cho Tiếng Việt”,

tôi tập trung nghiên cứu các vấn đề sau:

3.1.1 Machine Translation

Machine Translation: là nhiệm vụ dịch một câu x ở một ngôn ngữ (ngôn ngữ nguồn) thành một câu y ở một ngôn ngữ khác (ngôn ngữ đích) mà ý nghĩa của câu không đổi

Các hệ thống machine translation được bắt đầu nghiên cứu từ năm 1954 Trước đây, người ta giải quyết bài toán này dựa trên thống kê là chủ yếu, gọi là Statistical Machine Translation Vài năm trở lại đây, với sự phát triển vượt bậc của các kĩ thuật học máy, Neural Machine Translation được đưa vào nghiên cứu và có những cải thiện vược bậc cho các hệ thống dịch máy Đây là phương pháp dịch mà quá trình dịch được dựa trên 1 mạng neural duy nhất Kiến trúc này được gọi là sequence-to-sequence( seq2seq) do đầu vào và đâu ra đều là các sequence(khác với các bài toán phân loại, hồi quy thông thường) Các kiến trúc mạng thường được sử dụng là các kiến trúc mạng cho dữ liệu dạng time-series như RNN, LSTM, [1] …

Bài toán thêm dấu cho tiếng Việt được mình hiểu ở đây như một bài toán dịch máy kèm theo Language Model (cụ thể là dùng Markov model), công việc được thực hiện tương tự như việc dịch từ một ngôn ngữ nguồn sang một ngôn ngữ đích, điểm đặc biệt khá thú vị ở đây là cả hai ngôn ngữ nguồn và đích đều là Tiếng Việt, việc dịch từ Tiếng Việt sang Tiếng Việt cũng gây ra một số khó khăn đặc biệt nhất định

Trang 22

3.1.2 Mạng nơ-ron hồi quy – RNN

3.1.2.1 Mạng hồi quy là gì?

Mạng nơ-ron hồi quy (RNN - Recurrent Neural Network) là một thuật toán được chú ý rất nhiều trong thời gian gần đây bởi các kết quả tốt thu được trong lĩnh vực xử lý ngôn ngữ tự nhiên RNN ra đời với ý tưởng chính là sử dụng một bộ nhớ

để lưu lại thông tin từ từ những bước tính toán xử lý trước để dựa vào nó có thể đưa

ra dự đoán chính xác nhất cho bước dự đoán hiện tại Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau Tức là chúng không liên kết thành chuỗi với nhau Nhưng các mô hình này không phù hợp trong rất nhiều bài toán Ví dụ, nếu muốn đoán từ tiếp theo có thể xuất hiện trong một câu thì ta cũng cần biết các từ trước đó xuất hiện lần lượt thế nào? RNN được gọi là hồi quy (Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính trước đó Nói cách khác, RNN có khả năng nhớ các thông tin được tính toán trước đó Trên lý thuyết, RNN có thể sử dụng được thông tin của một văn bản rất dài, tuy nhiên thực tế thì nó chỉ có thể nhớđược một vài bước trước đó (ta cùng bàn cụ thể vấn đề này ở phía sau) mà thôi

Về cơ bản một mạng RNN có dạng như sau:

Hình 3-1 Mô hình mô phỏng mạng neural network - Nguồn: mang-neural-hoi-quy -recurrent-neur-40wwa1jsk2si

https://noron.vn/post/gioi-thieu-ve-Trong hình trên, A là mạng neural hồi quy Nó nhận đầu vào xt, tiến hành xử

lý và cho ra đầu ra là ht Điểm đặc biệt của A là nó sẽ lưu lại giá trị của ht để sử dụng cho đầu tiếp theo Có thể thấy rằng mạng neural hồi quy này là một chuỗi mạng giống

Trang 23

hệt nhau lặp đi lặp lại và mỗi mạng con sẽ truyền đi thông tin mà nó vừa xử lý cho

mạng phía sau nó Ta có thể tách vòng lặp ở A ra và vẽ lại để dễ hiểu kiến trúc của

RNN như sau:

Hình 3-2 Mô hình RNN dàn trải ra - Nguồn:

https://noron.vn/post/gioi-thieu-ve-mang-neural-hoi-quy -recurrent-neur-40wwa1jsk2si

Ta thấy rằng, chuỗi các ngõ vào x0, x1 , …, xt là những sự kiện, dữ liệu có dạng

chuỗi thời gian (time series) Các sự kiện này có mối liên hệ với nhau về thông tin

liên tiếp như tiếng nói hay văn bản, các thông tin của các sự kiện phía trước sẽ được

giữ lại để làm cơ sở một phần hoặc toàn bộ tính toán cho dữ liệu phía sau trong mạng

neural hồi quy Vì vậy, mô hình RNNs có ứng dụng quan trọng trong các bài toán xử

lý ngôn ngữ tự nhiên như: Dịch máy, phân loại ngữ nghĩa, Nhận diện giọng nói

Một trong các điểm mạnh của mạng neural hồi quy so với mạng ANN thông

thượng đó là khả năng tính toán trên một chuỗi vector Dưới đây là các kiểu hoạt

động của mạng RNN:

Theo hình vẽ trên, từ trái sang phải ta có các mô hình ứng dụng RNN:

Hình 3-3 Đầu vào được tô màu đỏ, mạng RNN màu xanh, đầu ra màu xanh dương - Nguồn: Andrej Karpathy

Trang 24

 Mạng neural kiểu Vanilla: Đầu vào và đầu ra có kích thước cố định (Bài toán nhận diện ảnh - Image Classification)

 Đầu ra có dạng chuỗi: Đầu vào cố định và đầu ra là một chuỗi các vector (Bài toán tạo tiêu đề cho ảnh - Image Captioning)

 Đầu vào có dạng chuỗi: Đầu vào là một chuỗi vector và đầu ra cố định (Bài toán phân loại ngữ nghĩa - Sentiment Classification)

 Đầu vào và đầu ra có dạng chuỗi: Bài toán Dịch máy - Neural Machine Translation

 Đầu vào và đầu ra có dạng chuỗi đồng bộ: Đầu vào và đầu ra là một chuỗi vector có độ dài bằng nhau (Bài toán phân loại video và gắn nhãn từng frame - Video Classification)

Có thể nhận thấy rằng độ dài các chuỗi đầu vào hay đầu ra tại mỗi trường hợp không bắt buộc phải cố định vì kích thước vector trạng thái thông tin trao đổi trong mạng neural hồi quy là cố định Giờ chúng ta sẽ đi sâu hơn vào phương thức hoạt động của mạng neural hồi quy

 Phương thức hoạt động

Mạng neural hồi quy nhận một vector đầu vào x và đưa ra vector đầu ra y Để

có thể lưu trữ được thông tin của các sự kiện trong quá khứ, mạng neural hồi quy lưu

trữ trong chính nó một vector trạng thái ẩn h Vector trạng thái này sẽ lưu trữ những

thông tin của những sự kiện đã được xử lý bằng cách cập nhật lại giá trị mỗi khi một

sự kiện mới được xử lý Ta có:

 W_hh: Ma trận weights cho vector trạng thái ẩn

 W_xh: Ma trận weights cho vector đầu vào x

 W_hy: Ma trận weights dùng để tính vector đầu ra y

Với ht ta tính toán dựa vào ht-1, như vậy ta cần khởi tạo vector đầu vào (thông thường là một vector 0) Các mô hình RNN sử dụng các hàm phi tuyến như hàm kích

hoạt Ví dụ công thức với hàm kích hoạt tanh: ht = tanh(Whhht-1 + Wxhxt) [7]

Các ma trận trọng số được cập nhật trong quá trình huấn luyện và cập nhật ngược trở lại theo thuật toán back propagation để điều chỉnh hành vi của mạng neural hồi quy

Trang 25

3.1.2.2 Khả năng của RNN

Ở các bài toán máy dịch hiện đại áp dụng RNN vào cho thấy kết quả chính xác cao và chất lượng cải thiện đáng kể [8] Trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP - Natural Language Processing), đã ghi nhận được nhiều thành công của RNN cho nhiều vấn đề khác nhau Tại thời điểm này, tôi muốn đề cập tới một mô hình phổ biến nhất được sử dụng của RNN là LSTM LSTM (Long Short-Term Memory) thể hiện được sự ưu việt ở điểm có thể nhớ được nhiều bước hơn mô hình RNN truyền thống Nhưng vì LSTM về cơ bản giống với cấu trúc của RNN truyền thống, chúng chỉ khác nhau ở cách tính toán của các nút ẩn Chúng ta sẽ cùng xem chi tiết hơn về LSTM trong phần sau Chúng ta cùng nhau xem một vài ứng dụng của RNN trong

xử lý ngôn ngữ tự nhiên dưới đây:

a Mô hình hóa ngôn ngữ

Mô hình ngôn ngữ cho phép ta dự đoán được xác xuất của một từ nào đó xuất hiện sau một chuỗi các từ đi liền trước nó Do có khả năng ước lượng được độ tương

tự của các câu nên nó còn được ứng dụng cho việc dịch máy Một điểm lý thú của việc có thể dự đoán được từ tiếp theo là ta có thể xây dựng được một mô hình tự sinh

từ cho phép máy tính có thể tự tạo ra các văn bản mới từ tập mẫu và xác xuất đầu ra của mỗi từ Vậy nên, tùy thuộc vào mô hình ngôn ngữ mà ta có thể tạo ra được nhiều văn bản khác nhau Trong mô hình ngôn ngữ, đầu vào thường là một chuỗi các

từ (được mô tả bằng vec-tơ one-hot) và đầu ra là một chuỗi các từ dự đoán được Khi huấn luyện mạng, ta sẽ gán ot = xt+1 vì ta muốn đầu ra tại bước t chính là từ tiếp theo của câu Một số bài báo về mô hình hóa ngôn ngữ và sinh văn bản: [9] [10]

b Dịch máy

Dịch máy (Machine Translation) tương tự như mô hình hóa ngôn ngữ ở điểm

là đầu vào là một chuỗi các từ trong ngôn ngữ nguồn (ngôn ngữ cần dịch - ví dụ là tiếng Việt) Còn đầu ra sẽ là một chuỗi các từ trong ngôn ngữ đích (ngôn ngữ dịch -

ví dụ là tiếng Anh) Điểm khác nhau ở đây là đầu ra của ta chỉ xử lý sau khi đã xem xét toàn bộ chuỗi đầu vào Vì từ dịch đầu tiên của câu dịch cần phải có đầy đủ thông tin từ đầu vào cần dịch mới có thể suy luận được

Trang 26

Hình 3-4 Ứng dụng RNN cho bài toán dịch máy - Nguồn: Lecture8.pdf

http://cs224d.stanford.edu/lectures/CS224d-Dưới đây là một vài bài báo nghiên cứu về dịch máy: [11] [12]

c Nhận diện giọng nói

Đưa vào một chuỗi các tín hiệu âm thanh, ta có thể dự đoán được chuỗi các đoạn ngữ âm đi kèm với xác xuất của chúng

Dưới đây là một vài nghiên cứu về nhận dạng giọng nói: [13]

d Mô tả hình ảnh

Cùng với ConvNet, RNN được sử dụng để tự động tạo mô tả cho các ảnh chưa được gán nhãn Sự kết hợp này đã đưa ra được các kết quả khá kinh ngạc Ví dụ như các ảnh dưới đây, các mô tả sinh ra có mức độ chính xác và độ tường tận khá cao

Hình 3-5 Ứng dụng RNN tạo tiêu đề cho ảnh Source: http://cs.stanford.edu/people/karpathy/deepimagesent/

Trang 27

3.1.2.3 Huấn luyện RNN

Huấn luyện mạng RNN cũng tương tự như các mạng nơ-ron truyền thống, tuy nhiên giải thuật lan truyền ngược (backpropagation) phải thay đổi một chút Đạo hàm tại mỗi đầu ra phụ thuộc không chỉ vào các tính toán tại bước đó, mà còn phụ thuộc vào các bước trước đó nữa, vì các tham số trong mạng RNN được sử dụng chung cho tất cả các bước trong mạng Ví dụ, để tính đạo hàm tại t=4 ta phải lan truyền ngược

cả 3 bước phía trước rồi cộng tổng đạo hàm của chúng lại với nhau Việc tính đạo hàm kiểu này được gọi là lan truyền ngược liên hồi (BPTT - Backpropagation Through Time) Tuy nhiên, với các bước phụ thuộc càng xa thì việc học sẽ càng khó khăn hơn vì sẽ xuất hiện vấn đề hao hụt/bùng nổ (vanishing/exploding) của đạo hàm

Có một vài phương pháp được đề xuất để giải quyết vấn đề này và các kiểu mạng RNN hiện nay đã được thiết kế để triệt tiêu bớt chúng như LSTM chẳng hạn

3.1.2.4 Mạng LSTM

LSTM là một dạng đặc biệt của mạng nơ-ron hồi quy, với nhiều bài toán thì

nó tốt hơn mạng hồi quy thuần Hầu hết các kết quả thú vị thu được từ mạng RNN là được sử dụng với LSTM Về mặt lý thuyết, rõ ràng là RNN có khả năng xử lý các phụ thuộc xa (long-term dependencies) Chúng ta có thể xem xét và cài đặt các tham

số sao cho khéo là có thể giải quyết được vấn đề này Tuy nhiên, đáng tiếc trong thực

tế RNN có vẻ không thể học được các tham số đó Vấn đề này đã được khám phá khá sâu, trong các bài báo [14], họ đã tìm được những lý do căn bản để giải thích tại sao RNN không thể học được

Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), thường được gọi là LSTM - là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc

xa LSTM được giới thiệu năm 1977, và sau đó đã được cải tiến và phổ biến bởi rất nhiều người trong ngành Chúng hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay

LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency) Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta không cần phải huấn luyện nó để có thể nhớ được Tức là ngay nội tại của nó đã có thể ghi nhớ được mà không cần bất kì can thiệp nào

Trang 28

Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng nơ-ron Với mạng RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản, thường

là một tầng tanh

LSTM cũng có

kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó có cấu trúc khác với mạng RNN chuẩn Thay vì chỉ có một tầng mạng nơ-ron, chúng có tới 4 tầng tương tác với nhau một cách rất đặc biệt

Về mô hình LSTM và mô hình GRU tôi sẽ áp dụng mô hình truyền thống của Mạng Neural Hồi Quy (RNN)

Hình 3-6 Mô hình chuẩn RNN 1 lớp Nguồn: Internet

Hình 3-7 Mô hình bên trong LSTM Nguồn: Internet

Trang 29

3.1.3 Mô hình hóa ngôn ngữ - Language Model

Language model – Mô hình hóa ngôn ngữ (LM) được định nghĩa như là một

mô hình dùng để đại diện cho những xác suất hay kiến thức đã học được từ một ngôn ngữ nào đó, những kiến thức này, cụ thể hóa thành những xác suất xuất hiện của từ hoặc chuỗi từ hoặc câu mà có thể xuất hiện cùng nhau hoặc mức độ xuất hiện của chúng trong ngôn ngữ đó

Mô hình ngôn ngữ ban đầu được phát triển để xử lý vấn đề nhận diện âm thanh, hiện nay, chúng vẫn còn giữ vai trò quan trọng trong công việc này Bên cạnh đó, LM cũng được ứng dụng rộng rãi trong việc xử lý ngôn ngữ tự nhiên ở các lĩnh vực khác Các kỹ thuật tối ưu thông số phát triển mô hình hóa ngôn ngữ hữu dụng trong các lĩnh vực trong đó có vấn đề mà bài toán của đề tài đang giải quyết [15]

Mô hình hóa ngôn ngữ được phân loại thành nhiều nhóm trong đó các nhóm phát triển được sử dụng rộng rãi gồm có ba nhóm chính như là: Statistical LM (Count-based), Neural Network LM (Continous-space) và Knowledge-base LM Sau đây chúng ta sẽ tìm hiểu từng nhóm này:

a Statistical Language Models (Count-based)

Các mô hình Statistical Language được sử dụng phổ biến nhất từ trước đến nay, các mô hình này dựa trên việc đếm tần suất xuất hiện của từng từ hay chuỗi, vì thế đối với mô hình này dữ liệu càng nhiều, càng lớn cho ra kết quả càng tốt

Statistical Language Model chính là một phân bố xác suất P(W),W∈V+ trên tập hợp của các câu, hay các chuỗi V+ có trong tập dữ liệu thuộc bộ từ vựng V của một ngôn ngữ ta cần mô hình

𝑘=1

𝑃(𝑤𝑘|𝑤1𝑤2… 𝑤𝑘−1) gọi là xác suất của từ 𝑤𝑘 có được khi ta đã biết chuỗi từ

𝑤1𝑤2… 𝑤𝑘−1 và được tính bằng cách đếm, như công thức:

Trang 30

𝑃(𝑤𝑘|𝑤1𝑤2… 𝑤𝑘−1) = 𝑐𝑜𝑢𝑛𝑡(𝑤1𝑤2… 𝑤𝑘)

𝑐𝑜𝑢𝑛𝑡(𝑤1𝑤2… 𝑤𝑘−1)Với công thức trên ta có thể thấy được, 𝑘 càng lớn dẫn đến tần suất xuất hiện của chuỗi sẽ càng nhỏ và tần suất của chuỗi 𝑘 − 1 sẽ lớn, khiến cho xác suất 𝑃(𝑤𝑘|𝑤1𝑤2… 𝑤𝑘−1) gần như bằng 0, hay nói cách khác chuỗi K không xuất hiện trong tập huấn luyện (điều này là không đúng) Vì thế, để khắc phục vấn đề này, thay

vì tính theo K-1, ta chọn N-1 từ dẫn trước thôi Từ đây phương thức N-gram Language Model ra đời:

𝑃(𝑤𝑘|𝑤1𝑤2… 𝑤𝑘−1) = 𝑃(𝑤𝑘|𝑤𝑘−𝑁+1𝑤𝑘−𝑁+2… 𝑤𝑘−1)

b N-gram Language Models

N-gram Language Model như được đề cập phía trên là một mô hình hóa ngôn ngữ dựa theo xác suất của một chuỗi với chiều dài cố định xuất hiện trong ngôn ngữ

- Mô hình này hay còn được gọi với một cái tên khác là (N-1)-order Markov Models

Ý tưởng chính của Markov Models là giả định xác suất của đối tượng đang xét như chỉ phụ thuộc vào một bộ (n-1) dữ liệu trước nó Các mô hình Trigram Language Models được rút ra trực tiếp từ mô hình này

Trang 31

Như vậy, từ chuỗi có dạng x1,x2,…xn, ta có thể phát sinh ra được |𝑉|𝑛các khả

năng Tất nhiên không thể liệt kê được hết số chuỗi để tính xác suất, thay vào đó, ta

có thể dùng công thức tổng quát hóa như sau (Công thức mô hình Markov bậc nhất):

𝑃(𝑋1 = 𝑥1, 𝑋2 = 𝑥2, … , 𝑋𝑛 = 𝑥𝑛)

= 𝑃(𝑋1 = 𝑥1)∏𝑛𝑖=2𝑃(𝑋𝑖 =𝑥𝑖|𝑋1 = 𝑥1, … , 𝑋𝑖−1 = 𝑥𝑖−1) (1.1)

= 𝑃(𝑋1 = 𝑥1)∏𝑛𝑖=2𝑃(𝑋𝑖 =𝑥𝑖|𝑋𝑖−1 = 𝑥𝑖−1) (1.2)

Theo trên (1.1) là công thức chuẩn suy ra từ xác suất đồng thời, (1.2) là công

thức suy ra với giả thuyết rằng đối tượng thứ i chỉ phụ thuộc vào đối tượng i-1 trước

Ta đặt ∗ là ký tự bắt đầu cho 1 chuỗi/câu 𝑥0 = 𝑥1 = ∗

Như vậy để tính xác suất của đối tượng 𝑥𝑖 có phân bố

𝑃(𝑋𝑖 = 𝑥𝑖|𝑋𝑖−2 = 𝑥𝑖−2, 𝑋𝑖−1 = 𝑥𝑖−1), ta th ực hiện như sau:

1 Khởi tạo 𝑖 = 1, và 𝑥0 = 𝑥1 = ∗

2 Phát sinh đối tượng 𝑥𝑖 từ công thức

𝑃(𝑋𝑖 = 𝑥𝑖|𝑋𝑖−2 = 𝑥𝑖−2, 𝑋𝑖−1 = 𝑥𝑖−1)

3 Nếu 𝑥𝑖 = 𝑆𝑇𝑂𝑃 thì ta trả về chuỗi 𝑥1𝑥2… 𝑥𝑛 Ngược lại, ta gán 𝑖 =

𝑖 + 1 và quay lại bước 2

Ta có được mô hình có thể sinh được chuỗi có chiều dài bất kỳ

Hình 3-9 Ví dụ minh họa mô hình trigram Markov LM Nguồn: https://ongxuanhong.wordpress.com/2016/08/27/language-modeling-la-gi/

Trang 32

Thông thường ta sẽ chọn N = 1, 2, 3 Trong mô hình này, việc xử lý dự đoán một chuỗi tự được chia ra dự đoán từng từ mỗi lần Xác suất một mô hình hóa ngôn ngữ được dựa trên lịch sử của các từ cho trước, trong đó được giới hạn bởi n-1 từ thay

vì k-1 từ Từ đây ta có thể dễ dàng thấy được những nhược điểm như:

 Sai điều kiện phụ thuộc: Việc chuyển đổi từ K-1 về N-1 từ phụ thuộc

đã không đúng với ngôn ngữ tự nhiên, vì số lượng N (thành phần của chuỗi) rất có thể ngẫu nhiêu và với sự kết hợp hay độ dài khác nhau sẽ sinh ra sự khác nhau về mặt ngữ nghĩa

 Bão hòa (hay Saturation): Khi dữ liệu tang lên càng nhiều có thể model

sẽ càng tốt nhưng đến một mức độ ta sẽ thấy được mô hình này cũng gây ra sự bão hòa, hay nói đúng hơn là xác suất không thay đổi, vì lý

do là phân bố xác suất trong n-gram đã không thay đổi (Điều này thường xảy ra cho trigram khi số lượng data đạt đến hàng tỷ)

 Thiếu tính tổng quát: Với thể loại hay chủ đề khác nhau thì việc tính xác suất ngôn ngữ cũng sẽ khác nhau, các từ ngữ chuyên ngành hay những ngôn ngữ phổ biến đều tạo ra một xác suất riêng đối với từng lĩnh vực cụ thể Do đó, có thể thấy sự đa dạng của data cũng rất quan trọng trong mô hình hóa ngôn ngữ thao loại này

 Thưa thớt dữ liệu: Khi thiếu dữ liệu, hay trong tình huống tập n-gram làm cho các chuỗi có thể không tồn tại trong tập train nhưng lại có mặt trong tập test, sẽ dẫn đến xác suất bằng 0 Việc dùng N-gram ban đầu

có thể làm giảm đi hiện tượng này nhưng thực chất vẫn không giải quyết được hẳn

c Structured Language Models

Giả sử ở câu nói ví dụ: “The dogs chasing the cat bark” Nếu dùng model gram ở đây là Trigram sẽ thấy P(bark|the cat) sẽ rất thấp vì theo tiếng Anh ta có thể thấy mèo không sủa, theo ngữ pháp tiếng anh từ bark ở đây cũng được chia ở dạng

N-số nhiều nên không thể dùng với cat N-số ít Ta có thể tránh tình trạng này bằng cách tăng số n lên Nhưng như thế cũng không triệt để giải quyết cho cả một văn bản hay nếu tăng lớn bằng 4-gram hay 5-gram ta sẽ đối mặt với vấn đề của Statiscal LM Do

đó ta cần áp dụng cấu trúc phân cấp (hierarchical structure) của câu văn vào mô hình, những models được áp dụng theo cách này được gọi là Structured Language Models

Trang 33

Hình 3-10 Cây ngữ pháp của câu "The dogs chasing the cat bark." - Nguồn:

http://people.ee.ethz.ch/~spr/publications/Beutler:07_diss.pdf

Các mô hình này thường sẽ sử dụng một statistical parser đã được huấn luyện

để làm hierarchical structure

d Knowledge Based Models

Mô hình này được xây dựng từ các chuyên gia, những người có am hiểu về ngôn ngữ, cú pháp, cụm từ, các thì,… Đúng với tên gọi mô hình ngôn ngữ, các kiến thức này được định nghĩa bằng các luật thì mô hình gọi là rule-based model

Ưu điểm mô hình này là không yêu cầu huấn luyện dữ liệu

Nhược điểm:

 Khó xây dựng: cần có kiến thức chuyên môn về ngôn ngữ cũng như mô hình thuật toán để thể hiện những luật ngôn ngữ theo mô hình thuật toán, tốn thời gian, chi phí

 Chỉ nhận diện được các từ thuộc intra-grammatical: là các từ thuộc về văn viết, trang trọng, không áp dụng tốt với văn nói thông dụng

 Thiếu tính tần số: Mô hình này có thể cho phép chọn câu đúng nhưng không chắc là câu đã hợp lý và xuất hiện phổ biến và thường xuyên

3.1.4 Beam search – Thuật toán tìm kiếm theo chùm tia

Thông thường, khi có được một câu kết quả sau khi dự đoán ta thường không muốn xuất bản ra một kết quả với giá trị ngẫu nhiên, trong nhiều trường hợp, kết quả với xác suất cao nhất chưa hẳn là chính xác nên ta cần kiểm chứng các xác suất có

Trang 34

thể xảy ra được Beamsearch là thuật toán được dùng rộng rãi để cho ra được n kết quả với xác suất có khả năng nhất

Beamsearch: Tìm kiếm beam (beam search) giống như tìm kiếm theo bề rộng,

nó phát triển các đỉnh ở một mức rồi phát triển các đỉnh ở mức tiếp theo Tuy nhiên, trong tìm kiếm theo bề rộng, ta phát triển tất cả các đỉnh ở một mức, còn trong tìm kiếm beam, ta hạn chế chỉ phát triển k đỉnh tốt nhất (các đỉnh này được xác định bởi hàm đánh giá) Do đó trong tìm kiếm beam, ở bất kỳ mức nào cũng chỉ có nhiều nhất

k đỉnh được phát triển, trong khi tìm kiếm theo bề rộng, số đỉnh cần phát triển ở mức

d là bd (b là nhân tố nhánh) Trong bài toán này Beam search được áp dụng sau khi

có được mô hình ngôn ngữ, từ câu nhập vào ta dùng Beam N-gram để tìm ra được N đáp án với xác suất cao nhất để cho kết quả và quan sát tốt nhất để điều chỉnh mô hình một cách hợp lý

Thuật toán Beam search có một tham số được gọi là beamwidth Tại mỗi bước

dự đoán, thay vì chọn ra từ có xác suất lớn nhất, ta sẽ chọn ra beam width kết quả, có xác suất cao nhất Chúng ta cùng theo dõi ví dụ:

X=Jane visite l′Afrique en septembre

Chọn beamwidth=3 như vậy chúng ta sẽ xem xét thuật toán của Beam Search

sử dụng để dịch ra câu Đẩu tiên, chúng ta chạy câu tiếng Pháp sang encoder network

và sau đó lớp đầu tiên trong decoder cho ra softmax output với hơn 10,000 khả năng

và chúng ta sẽ chọn ra 3 từ có xác suất tốt nhất [16]

Hình 3-11 Minh họa cho Beam search Nguồn: p4

Trang 35

https://nerophung.github.io/2019/06/02/nlp-Hình 3-12 Thuật toán Beamsearch – Nguồn Andrew Ng

Kế đến, cho mỗi 3 lựa chọn này, ta sẽ tính toán xác suất có thể có cho từ thứ hai được cho bởi từ đầu tiên cùng với câu tiếng Pháp Theo kết quả bước này, ta muốn tìm được cặp câu từ đầu và từ thứ hai tương thích nhất, hay xác suất tìm đc từ thứ hai khi biết từ đầu tiên

Hình 3-13 Mô hình vẽ tay thuật toán Beamsearch - Nguồn: Andew Ng

Trong bước hai này, vì chúng ta có 10,000 từ trong từ điển, nên ở bước 2 này

sẽ xét ba lần 10,000 từ (xét 30,000 xác suất) sau đó chọn ra ba kết quả cao nhất

Bởi vì beamwidth = 3, tại mỗi bước, chúng ta dẫn chứng ra ba bản sao của mạng để đánh giá được một đoạn và kết quả Vì thế, chúng ta sẽ dùng ba bản sao này của ba từ đầu tiên nhưng sẽ hiệu quả để tính toán trên 30,000 xác suất của từ thứ 2

Ngày đăng: 25/01/2021, 23:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] F. Stahlberg, "Neural Machine Translation: A Review," 04 Dec 2019. [Online]. Available: https://arxiv.org/pdf/1912.02047.pdf Sách, tạp chí
Tiêu đề: Neural Machine Translation: A Review
[2] V. H. Tiep, "Basic Machine Learning," [Online]. Available: https://machinelearningcoban.com/ Sách, tạp chí
Tiêu đề: Basic Machine Learning
[3] "Sentiment Analysis for Vietnamese," [Online]. Available: https://ieeexplore.ieee.org/abstract/document/5632131 Sách, tạp chí
Tiêu đề: Sentiment Analysis for Vietnamese
[5] H.-H. Phan-Vu, V.-T. Tran, V.-N. Nguyen, H.-V. Dang and P.-T. Do, "NEURAL MACHINE TRANSLATION BETWEEN VIETNAMESE AND ENGLISH: AN EMPIRICAL STUDY," 30 Oct 2018. [Online]. Available: https://arxiv.org/pdf/1810.12557.pdf Sách, tạp chí
Tiêu đề: NEURAL MACHINE TRANSLATION BETWEEN VIETNAMESE AND ENGLISH: AN EMPIRICAL STUDY
[6] AIVIVN, "AIVIVN-Contests," 2019. [Online]. Available: https://www.aivivn.com/contests/3 Sách, tạp chí
Tiêu đề: AIVIVN-Contests
[7] V. Zhou, "towardsdatascience," 2019. [Online]. Available: https://towardsdatascience.com/an-introduction-to-recurrent-neural-networks-for-beginners-664d717adbd Sách, tạp chí
Tiêu đề: towardsdatascience
[8] H. Kim and J.-H. Lee, "Recurrent Neural Network based Translation Quality Estimation," August 2016. [Online]. Available:https://www.aclweb.org/anthology/W16-2384.pdf Sách, tạp chí
Tiêu đề: Recurrent Neural Network based Translation Quality Estimation
[9] Tomas Mikolov, Martin Karafiat,Lukas Burget, Jan Honza Cernocky, Sanjeev Khudanpur, "Recurrent neural network based language model," INTERSPEECH, pp. 1045 - 1048, 2010 Sách, tạp chí
Tiêu đề: Recurrent neural network based language model
[10] Tomas Mikolov, Martin Karafiat,Lukas Burget, Jan Honza Cernocky, Sanjeev Khudanpur, "EXTENSIONS OF RECURRENT NEURAL NETWORK LANGUAGE MODEL," pp. 5528 - 5531, 2011 Sách, tạp chí
Tiêu đề: EXTENSIONS OF RECURRENT NEURAL NETWORK LANGUAGE MODEL
[11] Shujie Liu, Nan Yang, Mu Li, Ming Zhou, "A Recursive Recurrent Neural Network," Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics, pp. 1491 - 1500, 2014 Sách, tạp chí
Tiêu đề: A Recursive Recurrent Neural Network
[13] Alex Graves, Navdeep Jaitly, "Towards End-to-End Speech Recognition," Proceedings of the 31 st International Conference on Machine Learning, Beijing, China, 2014 Sách, tạp chí
Tiêu đề: Towards End-to-End Speech Recognition
[14] Yoshua Bengio, Patrice Simard, Paolo Frasconi, "Learning Long- term Dependencies with Gradient Descent is Difficult," Transaction on neural network, vol. 5, pp. 157 - 166, 1994 Sách, tạp chí
Tiêu đề: Learning Long-term Dependencies with Gradient Descent is Difficult
[15] M. Collins, "Language Modeling," in COURSE NOTES FOR NLP, pp. 1 - 19 Sách, tạp chí
Tiêu đề: Language Modeling
[16] A. Ng, "Coursera," [Online]. Available: https://www.coursera.org/lecture/nlp-sequence-models/beam-search-4EtHZ Sách, tạp chí
Tiêu đề: Coursera
[17] U. Griffo, "github," 2020. [Online]. Available: https://github.com/umbertogriffo/Trie Sách, tạp chí
Tiêu đề: github
[18] Wikipedia, "Wikipedia," 2020. [Online]. Available: https://en.wikipedia.org/wiki/Trie Sách, tạp chí
Tiêu đề: Wikipedia
[19] Keras, "About Keras," [Online]. Available: https://keras.io/about/ Sách, tạp chí
Tiêu đề: About Keras
[20] Kishore Papineni, Salim Roukos, Todd Ward, Wei-Jing Zhu, "BLEU: a Method for Automatic Evaluation of Machine Translation,"Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics (ACL), pp. 311 - 318, 2002 Sách, tạp chí
Tiêu đề: BLEU: a Method for Automatic Evaluation of Machine Translation
[21] Stanford, "CS224n: Natural Language Processing with Deep Learning," 2019. [Online]. Available: http://cs224n.stanford.edu/ Sách, tạp chí
Tiêu đề: CS224n: Natural Language Processing with Deep Learning
[23] M.-T. Luong, Q. V. Le, I. Sutskever, O. Vinyals and L. Kaiser, "MULTI-TASK SEQUENCE TO SEQUENCE LEARNING," Mar 2016. [Online]. Available: https://arxiv.org/pdf/1511.06114.pdf Sách, tạp chí
Tiêu đề: MULTI-TASK SEQUENCE TO SEQUENCE LEARNING

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm