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

Luận văn thạc sĩ Khoa học máy tính: Dịch máy tiếng việt-ba na bằng phương pháp attention

62 3 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Dịch máy tiếng Việt – Ba Na bằng phương pháp Attention
Tác giả Nguyễn Sư Phước
Người hướng dẫn PGS.TS. Quản Thành Thơ
Trường học Đại học Quốc gia Tp. HCM
Chuyên ngành Khoa Học Máy Tính
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2021
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 62
Dung lượng 1,32 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU (14)
    • 1.1 Giới thiệu đề tài (14)
    • 1.2 Mục tiêu của đề tài (14)
    • 1.3 Ý nghĩa của đề tài (15)
      • 1.3.1 Ý nghĩa thực tiễn (15)
      • 1.3.2 Ý nghĩa khoa học (15)
    • 1.4 Phạm vi của đề tài (15)
    • 1.5 Bố cục luận văn (15)
  • CHƯƠNG 2: CÔNG TRÌNH LIÊN QUAN (17)
    • 2.1 Các mô hình dịch máy (17)
      • 2.1.1 Dịch máy trên cơ sở luật (17)
      • 2.1.2 Dịch máy thống kê (SMT) (17)
      • 2.1.3 Dịch máy nơ-ron (NMT) (18)
    • 2.2 Ngôn ngữ Ba Na (19)
      • 2.2.1 Từ điển Ba Na Kriem (20)
      • 2.2.2 Một số quy luật của tiếng Ba Na (21)
    • 2.3 Kiến trúc Transformer (21)
    • 2.4 Mô hình tiền huấn luyện từ kiến trúc Transformer – BERT (22)
    • 2.5 Một số giải thuật tìm kiếm ngôn ngữ đích (22)
  • CHƯƠNG 3: CƠ SỞ LÝ THUYẾT (23)
    • 3.1. Mô hình ngôn ngữ (Language Model – LM) (23)
      • 3.1.1. Khái niệm (23)
      • 3.1.2. Các hướng tiếp cận của mô hình ngôn ngữ (23)
    • 3.2. Tổng quan về Recurrent Neural Network (RNN) và LSTM (Long Short- (24)
      • 3.2.1. Recurrent Neural Network (RNN) (24)
      • 3.2.2. Long Short-Term Memory (LSTM) (26)
    • 3.3. Word Embedding (27)
      • 3.3.1. Khái niệm (27)
      • 3.3.2. Lý do sử dụng Word Embedding (27)
      • 3.3.3. Biểu diễn Word Embedding (28)
    • 3.4. Mô hình Sequence to Sequence (29)
    • 3.5. Kiến trúc Transformer (31)
      • 3.5.1. Tầng mã hóa – Encoder (32)
      • 3.5.2. Tầng giải mã – Decoder (34)
    • 3.6. BERT (Bidirectional Encoder Representations from Transformers) (35)
  • CHƯƠNG 4: PHƯƠNG PHÁP ĐỀ XUẤT (37)
    • 4.1 Xây dựng tập dữ liệu (37)
      • 4.1.1 Thu thập dữ liệu văn bản (39)
      • 4.1.2 Làm giàu dữ liệu (40)
    • 4.2 Mô hình học sâu dịch máy Việt – Ba Na (41)
  • CHƯƠNG 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ (44)
    • 5.1 Tiêu chí đánh giá (44)
    • 5.2 Chuẩn bị dữ liệu (45)
    • 5.3 Cài đặt thực nghiệm (46)
    • 5.4 Kết quả thực nghiệm (47)
  • TÀI LIỆU THAM KHẢO (49)
  • PHỤ LỤC (51)

Nội dung

GIỚI THIỆU

Giới thiệu đề tài

Là một trong những dân tộc thiểu số đông dân cư nhất Tây Nguyên, cùng với địa bàn cư trú khá rộng ở nam Kon Tum, bắc Gia Lai và phía tây tỉnh Bình Định, dân tộc Ba Na đứng thứ hai về dân số trong 6 dân tộc thiểu số bản địa tỉnh Kon Tum, có nhiều đóng góp trong quá trình hình thành, phát triển và trong công cuộc xây dựng, bảo vệ quê hương Tây Nguyên nói riêng cũng như đất nước nói chung Là một trong những cư dân sinh tụ lâu đời ở Trường Sơn - Tây Nguyên, đồng bào Ba Na kiến lập nên nền văn hoá độc đáo ở đây, một trong những nét đặc trưng đó chính là tiếng nói và chữ viết [1]

Tiếng nói và chữ viết đại diện cho đời sống tinh thần, nguyện vọng, văn hóa của mọi dân tộc, vì vậy việc giữ gìn và bảo tồn bản sắc văn hóa của các dân tộc nói riêng cũng như bảo đảm sự hài hòa giữa phát triển kinh tế – xã hội nói chung rất quan trọng Trong thời đại khoa học – công nghệ ngày càng phát triển, sự khác biệt về ngôn ngữ ngày càng được thu hẹp bởi sự ra đời của hệ thống dịch máy (Neural Machine Translation – NMT) từ một ngôn ngữ sang một ngôn ngữ khác, chúng tôi, với ý nguyện muốn góp phần vào việc dạy – học tiếng Ba Na và tiếng Việt ở vùng đồng bào Ba Na, mong muốn xây dựng một hệ thống dịch máy từ tiếng Việt sang tiếng Ba

Na để mong làm sao có thể giúp đỡ, truyền tải tiếng nói, chữ viết từ chữ Quốc ngữ sang tiếng Ba Na một cách nhanh chóng, giúp cho khoảng cách giữa giao lưu văn hóa cũng như nền kinh tế – xã hội của đồng bào dân tộc Ba Na với đất nước được gần nhau hơn, góp phần phát triển đất nước

Mục đích của nghiên cứu này là dựa trên các nghiên cứu về học sâu, ứng dụng và kết hợp các phương pháp mới nhất, đặc biệt là nghiên cứu gần đây về mô hình sequence to sequence, kĩ thuật Attention, kiến trúc Transformer đã thành công khi áp dụng dịch từ tiếng Anh sang tiếng Đức Dù có hạn chế về mặt dữ liệu, nhưng chúng tôi hi vọng nghiên cứu sẽ mang lại tính khả quan, giúp ích cho việc trao đổi, truyền tải nội dung của chính phủ đến gần đồng bào Ba Na nhanh chóng hơn.

Mục tiêu của đề tài

Dựa trên cơ sở những thành công của các công trình nghiên cứu trước đó, có thể tạo ra hệ thống dịch máy tự động một cách nhanh chóng và chính xác là mục tiêu của

2 nghiên cứu này, giúp cho việc tự động hóa việc chuyển tải nội dung các văn bản hành chính đến tay đồng bào Ba Na một cách nhanh chóng, thuận tiện.

Ý nghĩa của đề tài

Bài toán dịch máy đã và đang được nghiên cứu rất nhiều, áp dụng cho nhiều ngôn ngữ phổ biến như tiếng Anh, Pháp, Đức, … Tiếng Ba Na là tiếng dân tộc đồng bào, hiện nay có một số kho ngữ liệu tiếng Ba Na nhưng chỉ dừng ở mức tra cứu từ điển, chưa có phần dịch thuật Vì vậy, việc nghiên cứu đề tài có ý nghĩa thực tiễn và khoa học

Luận văn đề xuất được một số giải pháp ứng dụng mô hình học sâu Sequence to

Sequence kết hợp kỹ thuật Attention có thể áp dụng trong thực tiễn để áp dụng cho dịch máy, áp dụng cho dịch máy từ tiếng Việt – Ba Na

Luận văn đóng góp dịch máy từ tiếng Việt sang tiếng Ba Na sử dụng mô hình

Sequence to Sequence kết hợp kỹ thuật Attention Ngoài ra luận văn cũng tìm hiểu, nghiên cứu về ngôn ngữ, tiếng Ba Na, thu thập và tiền xử lý dữ liệu để làm cơ sở, tiền đề cho các nghiên cứu về tiếng Ba Na trong tương lai.

Phạm vi của đề tài

Trong khuôn khổ của luận văn, giới hạn nghiên cứu dịch máy theo hướng học sâu (Deep Learning – DL) sử dụng mô hình Sequence to Sequence kết hợp kỹ thuật Attention Dữ liệu huấn luyện và kiểm tra là tiếng Việt và Ba Na Kriem tương ứng Đầu vào hệ thống là văn bản tiếng Việt unicode, đầu ra là văn bản tiếng Ba Na Kriem đề xuất Giới hạn cho một số câu đơn giản, phổ thông của tiếng Ba Na, chủ yếu cho các cán bộ công tác ở vùng đồng bào dân tộc Ba Na.

Bố cục luận văn

Luận văn có 5 chương Chương 1 giới thiệu khái quát về đề tài Chương 2 giới thiệu các công trình nghiên cứu liên quan về dịch máy, tìm hiểu ngôn ngữ tiếng Ba

Na, các hướng giải quyết cho bài toán, Chương 3 cung cấp một số cơ sở lý thuyết đặt nền móng cho các mô hình được đề xuất trong chương 4 Chương 5 là các kết quả thực nghiệm các chỉ tiêu đánh giá, kết quả đánh giá của các phương pháp và phân

3 tích, nhận xét các kết quả đó Phần cuối cùng là phần kết luận về luận văn và trình bày hướng phát triển trong tương lai

CÔNG TRÌNH LIÊN QUAN

Các mô hình dịch máy

Hiện nay, dịch máy được phân chia thành một số phương pháp như: dịch máy trên cơ sở luật, dịch máy thống kê (Statistical Machine Translation – SMT), dịch máy trên cơ sở ví dụ và dịch máy bằng nơ-ron (Neural Machine Translation) Do những khác biệt về ngữ hệ, khác biệt về văn hóa và thiếu vắng nguồn tài nguyên nên chất lượng cũng như phạm vi ứng dụng còn nhiều hạn chế

2.1.1 Dịch máy trên cơ sở luật

Phương pháp dịch máy trên cơ sở luật cần phải xây dựng hệ thống luật cú pháp, ngữ nghĩa và phải có một từ điển khá đầy đủ thông tin cho các mục từ như ngữ nghĩa, ngữ dụng, Để thực hiện phương pháp dịch máy dựa trên cơ sở luật, người ta cần nhiều thời gian và tiền bạc nhưng sản phẩm dịch vẫn không đạt độ chính xác như mong đợi

2.1.2 Dịch máy thống kê (SMT)

SMT là một phương pháp dịch máy, trong đó các bản dịch được tạo ra trên cơ sở các mô hình thống kê có các tham số được bắt nguồn từ việc phân tích các cặp câu song ngữ Các phương pháp tiếp cận thống kê tương phản với các phương pháp tiếp cận dựa trên luật trong dịch máy cũng như với dịch máy dựa trên ví dụ Ý tưởng đằng sau dịch máy thống kê đến từ lý thuyết thông tin Tài liệu được dịch theo phân bố xác suất p(e|f) trong đó e là ngôn ngữ đích (ví dụ, Tiếng Việt) dịch từ f là ngôn ngữ nguồn (ví dụ, Tiếng Anh) Ưu điểm vượt trội của phương pháp này là thay vì xây dựng các từ điển, các quy luật chuyển đổi bằng tay, hệ dịch tự động thiết lập các từ điển, các quy luật dựa trên kết quả thống kê có được từ các kho ngữ liệu Chính vì vậy, dịch máy dựa vào thống kê có tính khả chuyển cao áp dụng được cho bất kỳ cặp ngôn ngữ nào

Dịch máy thống kê hiện nay đi theo 3 hướng tiếp cận chính, đó là dịch máy thống kê dựa trên đơn vị từ; dựa trên đơn vị cụm từ và dựa trên cú pháp Trong đó dịch máy thống kê dựa trên đơn vị cụm từ hiện đang là cách tiếp cận thu hút được nhiều sự quan tâm nhất của giới nghiên cứu dịch máy

5 Tuy nhiên, cách tiếp cận thống kê nói chung vẫn phải đối mặt với những hạn chế do sự thiếu hụt về thông tin ngôn ngữ Mô hình dịch thống kê vẫn chưa giải quyết được một số vấn đề cơ bản của dịch máy như trật tự từ, khả năng lựa chọn cụm từ phù hợp, và vấn đề về dữ liệu thưa Các cải tiến làm tăng chất lượng dịch bằng cách tích hợp các thông tin ngôn ngữ vào các bước tiền xử lý, hậu xử lý hay tích hợp trực tiếp vào mô hình dịch đã được đề xuất [7] Với sự xuất hiện của phương pháp dịch máy thống kê kết hợp thông tin ngôn ngữ, những hạn chế trên đã được cải thiện đáng kể

2.1.3 Dịch máy nơ-ron (NMT) Đây là phương pháp dịch sử dụng mạng nơ-ron nhân tạo và học sâu – deep learning Với cách dịch thông thường, các câu được chia nhỏ và dịch thành từng phần, nhưng bằng cách sử dụng NMT, việc dịch sử dụng cách thức học mạng nơ-ron để chuyển đổi từ ngôn ngữ nguồn → diễn đạt trung gian → ngôn ngữ kết quả dựa trên toàn bộ câu nguồn, nên kết quả dịch tự nhiên hơn Đây được coi là một hệ dịch cho chất lượng dịch vượt trội so với các phương pháp truyền thống trước đây Hiện tại, Google Dịch đang sử dụng phương pháp này

Thông thường, hệ dịch được huấn luyện trên lượng lớn dữ liệu song ngữ và dữ liệu đơn ngữ của ngôn ngữ đích đối với dịch máy thống kê và dữ liệu song ngữ đối với dịch máy nơ-ron, trong bản thân những dữ liệu huấn luyện này có thể bao gồm các chủ đề đồng nhất hoặc không đồng nhất và thường thì mỗi chủ đề đó sẽ có tập các từ thuật ngữ riêng biệt Chất lượng của bản dịch phụ thuộc rất lớn vào dữ liệu huấn luyện, nếu miền dữ liệu huấn luyện và miền thử nghiệm giống nhau hoặc có sự tương đồng càng lớn thì chất lượng bản dịch thu được sẽ càng tốt so với việc miền dữ liệu dùng để huấn luyện và miền thử nghiệm đặc biệt khác nhau hoặc có ít sự tương đồng hơn

Với phương pháp này, người ta chỉ cần huấn luyện một hệ thống duy nhất trên tập văn bản nguồn và văn bản đích (end-to-end system), không cần phải xây dựng một pipeline gồm các hệt thống chuyên biệt giống như SMT, không cần phải có nhiều kiến thức chuyên môn về ngôn ngữ, nhờ vậy mà có thể áp dụng cho các cặp ngôn ngữ khác nhau khá dễ dàng

6 Các mô hình dịch máy nơ-ron thường là bộ mã hóa – giải mã (encoders – decoders), mã hóa một câu đầu vào thành một vector có chiều dài cố định mà từ đó bộ giải mã tạo ra một bản dịch

Trước khi Google công bố bài báo về Transformers (Attention Is All You Need), hầu hết các tác vụ xử lý ngôn ngữ tự nhiên, đặc biệt là dịch máy (Machine Translation) sử dụng kiến trúc Recurrent Neural Networks (RNNs) Điểm yếu của phương pháp này là rất khó bắt được sự phụ thuộc xa giữa các từ trong câu và tốc độ huấn luyện chậm do phải xử lý input tuần tự Transformers sinh ra để giải quyết 2 vấn đề này; và các biến thể của nó như BERT, GPT-2 tạo ra state-of-the-art mới cho các tác vụ liên quan đến NLP

Các bài báo nghiên cứu về NMT gần đây càng nhiều [9] chứng tỏ sự mới mẻ, quan tâm cũng như hiệu quả của dịch máy nơ-ron đã thu hút các nhà khoa học là khá lớn Cùng với sự phát triển của khoa học kỹ thuật, các máy tính với cấu hình phần cứng mạnh mẽ ra đời ngày càng nhiều thì vấn đề phần cứng cũng phần nào được giải quyết, cũng bởi vì không cần nhiều kiến thức chuyên sâu về ngôn ngữ nhiều, chúng tôi quyết định chọn mô hình dịch máy nơ-ron với các phương pháp kỹ thuật Transformer để áp dụng vào bài toán dịch máy từ tiếng Việt và tiếng Ba Na.

Ngôn ngữ Ba Na

Người Ba Na cư trú ở các tỉnh Kon Tum, Gia Lai, Bình Ðịnh và Phú Yên với tổng dân số là 174 456 người Tại Kontum, người Ba Na cư trú tập trung tại 15 làng xung quanh thị xã Kontum như Kon Hơ ngo, Kon Rơ Bang, Kon Rơ Pắt, Kon Rơ Hai, Kon Kơ Lo Ở Gia Lai, người Ba Na tập trung tại Măng Giang, An Khê (Kơ Bang), Giang Trung, Giang Nam, Bơ Goong Tại tỉnh Bình Ðịnh, người Ba Na cư trú tập trung tại các xã huyện Vĩnh Thạnh và một số xã thuộc huyện Vân Canh, An Lão và Hoài Ân [2]

Người Ba Na thuộc nhóm Môn Khơ me Về mặt dân tộc học, người Ba Na phân thành các nhánh Gơ la, Tơ Lô, Giơ Lâng, Kon Kơđeh, A La Kông, Kơ Pơng Kông, Kriêm Về mặt ngôn ngữ, tiếng Ba Na về cơ bản thống nhất trong cơ cấu ngữ âm, ngữ pháp Tuy nhiên, do quá trình biến đổi lịch sử, do tiếp xúc với các ngôn ngữ khác nhau, tiếng nói của mỗi nhóm địa phương có sự khác biệt về cách phát âm, và một số về từ vựng Các phương ngữ chính tiếng Ba Na gồm: Ba Na Kon Tum, Ba Na An Khê, và Ba Na Tơ lo, Ba Na Kon Kơ Ðeh, Ba Na Kriêm; giữa các phương ngữ trên, tìm thấy sự khác biệt rõ rệt giữa Ba Na Kon tum, Ba Na Gia lai (An Khê) và Ba Na

7 Bình Ðịnh (Ba Na Kriêm) Người Ba Na ở Vĩnh Thạnh còn giữ được nhiều nét văn hoá tộc người đặc thù hơn cả Người Ba Na ở Vĩnh Thạnh, An Lão, một số xã ở Hoài Ân, thuộc nhóm Ba Na Kriêm Theo đồng bào Ba Na ở Vĩnh Thạnh, tên gọi Kriêm, ban đầu là tên con sông Ðăc Kriêm; người Ba Na Kriêm – người Ba Na sống quanh con sông Kriêm, ở vùng thấp Người dân Ba Na Kriêm cũng cho rằng, về nguồn gốc,

Ba Na Kriêm vốn từ khu vực Gia Lai chuyển đến [2]

Từ những nguồn trên, nghiên cứu xoay quanh ngôn ngữ Ba Na Kriêm gồm từ điển, các câu hội thoại cũng như nội dung phát thanh của truyền hình Vĩnh Thạnh

2.2.1 Từ điển Ba Na Kriem

Hình 2.1: Bảng chữ cái tiếng Ba Na Kriem

Dấu: “'” – (dấu “phẩy trên”) và dấu “ ̆ ” (dấu “vành trăng khuyết”)

Cách ghi các nguyên âm: a, ă, e, ĕ, ê, ê̆, i, ĭ, o, ŏ, ô, ô̆, ơ, ơ̆, u, ŭ, ư, ư̆, ươ

Cách ghi các phụ âm đơn: b, 'b, ch, d, đ, g, h, i, j, k, kh, l, m, n, nh, ng, p, ph, r, s, t, th, u, w, y

Cách ghi các phụ âm kép: hm, hnh, 'm, 'n, 'ng, hk, kl, kr, br, li, pi, su, pu, ih, hngl, hri, 'ng,

Các nguyên âm đôi: ia, iă, ie, iĕ, iô, iô̆, ua, uă, ue, uĕ, uê, uê̆

8 Tiếng Ba Na còn hạn chế khi chưa có nhiều từ vựng, nên khi dịch từ tiếng Việt sang, với những từ không có trong từ điển tiếng Ba Na sẽ mượn từ tiếng Việt, bỏ các dấu không có trong tiếng Ba Na như sắc, hỏi, ngã, nặng

2.2.2 Một số quy luật của tiếng Ba Na

Theo nghiên cứu của chúng tôi ở các đoạn hội thoại từ cuốn từ điển Ba Na Kriem, tiếng Ba Na không có các thể bị động, chia các thì quá khứ, hiện tại hay tương lai như tiếng Anh.

Kiến trúc Transformer

Được đề xuất ở bài báo “Attention is all you need” [5], sử dụng cơ chế tập trung Kiến trúc này song song hóa bằng cách học chuỗi hồi tiếp với cơ chế tập trung, đồng thời mã hóa vị trí của từng phần tử trong chuỗi Kết quả là ta có một mô hình tương thích với thời gian huấn luyện ngắn hơn đáng kể Tương tự như mô hình Sequence to sequence (seq2seq), Transformer cũng dựa trên kiến trúc mã hóa-giải mã Tuy nhiên, nó thay thế các tầng hồi tiếp trong seq2seq bằng các tầng tập trung đa đầu (multi-head attention), kết hợp thông tin vị trí thông qua biểu diễn vị trí (positional encoding) và áp dụng chuẩn hóa tầng (layer normalization) Hình 2.2 sẽ so sánh cấu trúc của Transformer và seq2seq [12]

Mô hình tiền huấn luyện từ kiến trúc Transformer – BERT

BERT (Bidirectional Encoder Representations from Transformers) là mô hình biểu diễn ngôn ngữ tiền huấn luyện mã hóa hai chiều từ Transformer, mã hóa ngữ cảnh theo hai chiều và chỉ yêu cầu vài thay đổi kiến trúc tối thiểu cho một loạt các tác vụ xử lý ngôn ngữ tự nhiên [8] Được Google công bố vào tháng 11/2018 BERT là một khái niệm đơn giản nhưng lại mang lại hiệu quả cực lớn trong thực tế

Sử dụng bộ mã hóa Transformer được tiền huấn luyện, BERT có thể biểu diễn bất kỳ token nào dựa trên ngữ cảnh hai chiều của nó Trong quá trình học có giám sát trên các tác vụ xuôi dòng, BERT tương tự như GPT ở hai khía cạnh Đầu tiên, các biểu diễn BERT sẽ được truyền vào một tầng đầu ra được bổ sung, với những thay đổi tối thiểu tới kiến trúc mô hình tùy thuộc vào bản chất của tác vụ, chẳng hạn như dự đoán cho mỗi token hay dự đoán cho toàn bộ chuỗi Thứ hai, tất cả các tham số của bộ mã hóa Transformer đã tiền huấn luyện đều được tinh chỉnh, trong khi tầng đầu ra bổ sung sẽ được huấn luyện từ đầu.

Một số giải thuật tìm kiếm ngôn ngữ đích

Greedy search: Cách tìm kiếm này dựa theo giải thuật tham lam nhằm tìm ra một từ có xác suất cao nhất ở tầng giải mã ở mỗi bước Một bộ giải mã tham lam, còn được gọi là bộ giải mã đường dẫn tốt nhất xem xét mã thông báo (ký tự hoặc từ) có xác suất cao nhất trong mỗi dự đoán và ghép tất cả các mã thông báo được dự đoán để có được chuỗi đầu ra cuối cùng Đây là một cách đơn giản và nhanh chóng để lấy chuỗi đầu ra Nhưng không phải lúc nào thuật toán này cũng có thể mang lại kết quả tốt nhất

Beam search: Không giống như bộ giải mã tham lam, giải thuật này không chỉ xem xét mã thông báo có khả năng xảy ra cao nhất ở mỗi dự đoán mà còn xem xét mã thông báo k hàng đầu có xác suất cao hơn (trong đó k được gọi là beam width hoặc beam size) Mặc dù tìm beam search cho kết quả tốt hơn, nhưng giải thuật này cũng làm tốn bộ nhớ và năng lực tính toán hơn.

CƠ SỞ LÝ THUYẾT

Mô hình ngôn ngữ (Language Model – LM)

Mô hình ngôn ngữ là tập hợp các kiến thức trước đó về một ngôn ngữ nhất định, các kiến thức này có thể là các kiến thức về từ vựng, về ngữ pháp, về tần suất xuất hiện của các cụm từ, Một mô hình ngôn ngữ có thể được xây dựng theo hướng chuyên gia hoặc hướng dữ liệu

Mục đích của mô hình này là để cung cấp phân bố xác suất tiền nghiệm (prior distribution), từ đó giúp chúng ta biết được một câu có "hợp lý" với ngôn ngữ xác định hay không (ở đây là tiếng việt) hoặc một từ thêm vào sau 1 câu có đúng ngữ cảnh và ăn khớp với các từ ở trước đó hay không

Ví dụ: khi áp dụng mô hình ngôn ngữ cho tiếng Việt: p[“hôm nay là thứ bảy”] = 0.001 p[“bảy thứ hôm là nay”] = 0

Ví dụ trên cho thấy, câu "hôm nay là thứ bảy" có khả năng là một câu tiếng Việt cao hơn so với câu "bảy thứ hôm là nay" Đây là ví dụ đơn giản nhất để có thể hình dung được một mô hình ngôn ngữ làm gì

Trong thời gian gần đây, mô hình ngôn ngữ (Language Model) đóng vai trò quan trọng trong rất nhiều ứng dụng, bài toán của Xử lý ngôn ngữ tự nhiên và đang là chủ đề nghiên cứu thu hút được nhiều sự quan tâm của các lập trình viên, nhà nghiên cứu trên toàn thế giới Tuy nhiên, do mỗi quốc gia, sẽ sử dụng một ngôn ngữ khác nhau với cấu trúc ngữ pháp, văn hóa, hình thức nói khác nhau, dẫn đến việc Language Model cho từng ngôn ngữ sẽ phải giải quyết nhiều bài toán đặc thù của nó

3.1.2 Các hướng tiếp cận của mô hình ngôn ngữ

- Knowledge-based Language Model: Đây là những mô hình ngôn ngữ được xây dựng dựa trên những kiến thức đã được con người (cụ thể là các chuyên gia về

11 ngôn ngữ học) tích luỹ, phân tích từ cú pháp một câu, cách chia động từ hoặc sự phân rã của tính từ

- Statistical Language Model: Xây dựng mô hình ngôn ngữ dựa trên thống kê là việc cố gắng đi xác định giá trị của p(w 1 , …, w n ) với p(w 1 , …, w n ) được hiểu đơn giản là xác suất cụm từ w 1 , …, w n thuộc một ngôn ngữ cụ thể Dựa theo cách thức xác định giá trị xác suất p(w 1 , …, w n ) thì Statistical Language Model được chia làm 2 hướng tiếp cận nhỏ hơn là N-gram Language Models và Structured Language Models

- Neural Network Language Model: là những phương pháp mới nhất dựa trên mạng Neural để xây dựng mô hình ngôn ngữ, các mô hình này còn có một tên gọi khác là Continuous-space language models Neural Network Language Model cũng được chia thành 2 hướng tiếp cận chính là Feed-forward neural network based LM và Recurrent Neural Network Based LM.

Tổng quan về Recurrent Neural Network (RNN) và LSTM (Long Short-

Trong mô hình mạng Neuron thông thường (Feed forward network), chúng ta coi input data là các dữ liệu độc lập, không có mối liên hệ với nhau Tuy nhiên, trong ngôn ngữ tự nhiên thì mối liên hệ giữa các từ và ngữ cảnh đóng một vai trò quan trọng, quyết định ý nghĩa của câu văn Do đó việc áp dụng môt hình mạng Neuron thông thường vào các bài toán NLP thường không đạt kết quả mong muốn Để khắc phục nhược điểm này, chúng ta sử dụng mô hình RNN (Recurrent Neural Network) RNN coi dữ liệu đầu vào là một chuỗi (sequence) liên tục, nối tiếp nhau theo thứ tự thời gian Ví dụ như một đoạn text có thể được coi là một chuỗi các từ vựng(words) hoặc là một chuỗi các ký tự (character) Tại thời điểm t, với dữ liệu đầu vào x t ta có kết quả output là y t Tuy nhiên, khác với mạng Feed forward network, y t lại được sử dụng là input để tính kết quả output cho thời điểm (t+1) Điều này cho phép RNN có thể lưu trữ và truyền thông tin đến thời điểm tiếp theo Mô hình hoạt động của RNN có thể được mô tả trong hình dưới đây (thông thường hàm activation function g h được sử dụng là tanh còn g y có thể là hàm sigmoid hoặc softmax tùy thuộc vào từng bài toán cụ thể)

Hình 3.1: Mạng Recurrent Neural Network

Hình 3.2: Ví dụ về RNN với “Hello”

Chúng ta có thể hiểu một cách đơn giản rằng RNN là một mô hình mạng Neuron có “memory” để lưu trữ thông tin của phần xử lý trước đó Về mặt lý thuyết thì RNN có thể xử lý và lưu trữ thông tin của một chuỗi dữ liệu với độ dài bất kỳ Tuy nhiên trong thực tế thì RNN chỉ tỏ ra hiệu quả với chuỗi dữ liệu có độ dài không quá lớn (short-term memory hay còn gọi là long-term dependency problem) Nguyên nhân của vấn đề này là do vanishing gradient problem (gradient được sử dụng để cập nhật giá trị của ma trận trọng số (weight matrix) trong RNN và nó có giá trị nhỏ dần theo từng layer khi thực hiện lan truyền ngược (back propagation) Khi gradient trở nên rất nhỏ (có giá trị gần bằng 0) thì giá trị của weight matrix sẽ không được cập nhật thêm và do đó mạng Neuron sẽ dừng việc học tại layer này Đây cũng chính là lý do khiến cho RNN không thể lưu trữ thông tin của các timesteps đầu tiên trong một chuỗi dữ liệu có độ dài lớn

3.2.2 Long Short-Term Memory (LSTM)

Ngoài việc sử dụng hai dữ liệu đầu vào là Current input (xt) và Hidden state ht-1 như mạng RNN thông thường, LSTM còn sử dụng thêm một đầu vào nữa là Cell state (ct-1) Ở đây chúng ta có thể coi Cell state là ‘memory’ của mạng LSTM và nó có thể lưu trữ thông tin của các timestep đầu tiên, do đó hạn chế ảnh hưởng của short-term memory như trong Vanilla RNN

Cấu trúc Cell của LSTM được hình thành từ 3 gates: Forget gate, Input gate và Output gate như sau:

Hình 3.3: Mạng Long Short-Term Memory a) Forget gate: có nhiệm vụ quyết định liệu thông tin của Cell state ở timestep t-

1 có cần được lưu trữ hay không Thông tin từ Current input và Hidden state được chuyển qua Sigmoid function với output nằm trong khoảng [0, 1] Do đó nếu giá trị output gần bằng 1, tức là thông tin cần được giữ lại còn nếu output gần bằng 0 thì phải loại bỏ thông tin b) Input gate: có nhiệm vụ cập nhật thông tin vào Cell state Ở đây ta nhân output của Sigmoid với output của Tanh để quyết định thông tin của Current input và Hidden state có nên được cập nhật vào Cell state hay không c) Output gate: có nhiệm vụ tính giá trị của Hidden state cho timestep tiếp theo Với việc sử dụng Forget gate và Input gate, ta có thể tính được giá trị mới của Cell state và từ đó kết hợp với Current input và Hidden state để tính giá trị của Hidden state tiếp theo Ở đây giá trị của Hidden state mới này cũng chính là giá trị dự đoán – prediction

14 Như vậy, trong LSTM chúng ta có 3 input và 2 output là Cell state và Hidden state.

Word Embedding

Word Embedding là một không gian vector dùng để biểu diễn dữ liệu có khả năng miêu tả được mối liên hệ, sự tương đồng về mặt ngữ nghĩa, ngữ cảnh (context) của dữ liệu Không gian này bao gồm nhiều chiều và các từ trong không gian đó mà có cùng văn cảnh hoặc ngữ nghĩa sẽ có vị trí gần nhau Ví dụ như ta có hai câu: "Hôm nay ăn táo" và "Hôm nay ăn xoài" Khi ta thực hiện Word Embedding, "táo" và "xoài" sẽ có vị trí gần nhau trong không gian chúng ta biểu diễn do chúng có vị trị giống nhau trong một câu [6]

3.3.2 Lý do sử dụng Word Embedding

Chúng ta thử so sánh với một cách biểu diễn khác mà chúng ta thường dùng trong các bài toán multi-label, multi-task là one-hot encoding Nếu sử dụng one-hot encoding, dữ liệu mà chúng ta biểu diễn sẽ có dạng như sau:

Bảng 3.1: Biểu diễn one-hot encoding

Từ điển Chỉ số One-hot encoding a 1 [1, 0, 0, , 0](9999 số 0) ă 2 [0, 1, 0, , 0, 0] â 3 [0, 0, 1, , 0, 0]

Nhìn vào bảng trên, ta thấy có 3 vấn đề khi ta biểu diễn từ điển dạng chữ (text) dưới dạng one-hot vector:

- Chi phí tính toán lớn: Nếu data có 100 từ, độ dài của vector one-hot là 100.Nếu data có 10.000 từ, độ dài của vector one-hot là 10.000 Tuy nhiên, để mô hình có độ khái quát cao thì trong thực tế dữ liệu có thể lên đến hàng triệu từ, lúc đó độ dài vector one-hot sẽ phình to gây khó khăn cho việc tính toán, lưu trữ

- Mang ít giá trị thông tin: Các vector hầu như toàn số 0 Và chúng ta có thể thấy, đối với dữ liệu dạng chữ thì giá trị chứa trong các điểm ảnh (nếu đầu vào là dạng ảnh ) hay các dạng khác là rất ít Nó chủ yếu nằm trong vị trí tương đối giữa các từ với nhau và quan hệ về mặt ngữ nghĩa Tuy nhiên, vector one-hot không thể biểu diễn điều đó vì nó chỉ đánh chỉ mục (index) theo thứ tự từ điển đầu vào chứ không phải vị trí các từ trong một ngữ cảnh cụ thể Để khắc phục điều đó, trong mô hình thường dùng một lớp RNN hoặc LSTM để nó có thể trích xuất được thông tin về vị trí Có một cách khác như trong mô hình transformer, được bỏ hoàn toàn lớp word embedding hay RNN và thêm vào đó lớp positional encoding và self-attention

- Độ khái quát yếu: Ví dụ ta có ba từ cùng chỉ người mẹ: mẹ, má, bầm Tuy nhiên, từ bầm tương đối hiếm gặp trong tiếng Việt Khi biểu diễn bằng one-hot encoding, khi đưa vào mô hình để huấn luyện thì từ bầm mặc dù cùng nghĩa so với hai từ kia nhưng lại bị phân vào lớp khác nhau do cách biểu diễn khác nhau Còn nếu dùng word embedding, do biểu diễn được cả thông tin về vị trí, ngữ nghĩa nên từ bầm sẽ có vị trí gần với hai từ kia Đúng như mục đích embedding của chúng ta ban đầu

Có 2 phương pháp chủ yếu được hay dùng để tính toán Word Embedding là Count based và Predictive Cả hai cách này đều dựa trên một giả thuyết rằng những từ nào xuất hiện trong cùng một văn cảnh, một ngữ nghĩa sẽ có vị trí gần nhau trong không gian mới được biến đổi

Count-based: Phương pháp này tính toán mức liên quan về mặt ngữ nghĩa giữa các từ bằng cách thống kê số lần đồng xuất hiện của một từ so với các từ khác Ví dụ bạn có hai câu như sau:

==> Ta xây dựng được ma trận đồng xuất hiện của các từ như sau và nhận thấy canh và cá có ý nghĩa tương đồng nhau nên nó sẽ có vị trí gần nhau trong không gian vector biểu diễn

Bảng 3.2: Biểu diễn ma trận xuất hiện của các từ mèo canh cá ăn mèo 0 1 0 2 canh 1 0 0 1 cá 1 0 0 1 ăn 2 1 1 0

Predictive (Word2Vec): Khác so với Count-based, Predictive tính toán sự tương đồng ngữ nghĩa giữa các từ để dự đoán từ tiếp theo bằng cách đưa qua một mạng nơ- ron có một hoặc vài layer dựa trên input là các từ xung quanh (context word) Một context word có thể là một hoặc nhiều từ Ví dụ cũng với hai câu ở trên, ban đầu hai từ cơm và cá có thể được khởi tạo ở khá xa nhau nhưng để tối thiểu mức sai sót (loss) giữa hai từ đó và context word ("Mèo" và "ăn") thì vị trí của hai từ canh và cá trong không gian vector phải gần nhau Có 2 phương pháp predictive phổ biến đó chính là: Continuous Bag-of-Words (CBOW) và Skip-gram.

Mô hình Sequence to Sequence

Sequence to Sequence Model (Seq2seq) là một mô hình Deep Learning với mục đích tạo ra một output sequence từ một input sequence mà độ dài của 2 sequences này có thể khác nhau Seq2seq được giới thiệu bởi nhóm nghiên cứu của Google vào năm

2014 trong bài báo Sequence to Sequence with Neural Networks Mặc dù mục đích ban đầu của Model này là để áp dụng trong Machine Translation, tuy nhiên hiện nay Seq2seq cũng được áp dụng nhiều trong các hệ thống khác như Nhận diện giọng nói – Speech recognition, Tóm tắt văn bản – Text summarization, Đặt tiêu đề ảnh – Image captioning,…

Hình 3.4: Kiến trúc của mô hình Sequence to Sequence với câu đầu vào là chuỗi “A B C D” và câu đầu ra là chuỗi “X Y Z”

Các thành phần chính của mô hình Sequence to Sequence gồm:

- Bộ Encoder được sử dụng để ánh xạ chuỗi token trong ngôn ngữ đầu vào thành một vector có kích thước cố định Tại mỗi bước mã hóa, Encoder sẽ nhận vector tương ứng với mỗi token trong chuỗi đầu vào để tạo ra vector trạng thái ẩn s đại diện cho chuỗi đầu vào tại bước mã hóa cuối cùng

- Bộ Decoder sử dụng vector s để khởi tạo cho trạng thái ẩn đầu tiên và tạo ra các chuỗi token ở ngôn ngữ đích tại mỗi bước giải mã

Tùy từng bài toán cụ thể mà Encoder và Decoder sử dụng các kỹ thuật Deep Learning khác nhau Ví dụ như trong Machine Translation thì Encoder thường là LSTM, GRU hoặc Bi-directional RNN, còn trong Image Captioning thì Encoder lại là CNN Trong khuôn khổ luận văn này, chúng tôi sẽ sử dụng Seq2Seq trong dịch máy (Machine Translation), từ dữ liệu đầu vào là một chuỗi dưới dạng text, chúng ta sử dụng Embedding Layer để chuyển các từ này sang dạng Word Embedding rồi sử dụng Attention để tạo ra một biểu diễn của chuỗi đầu vào (representation input sequence)

Decoder cũng được tạo thành từ RNN và sử dụng output của Encoder làm dữ liệu đầu vào để tạo ra một output sequence Tuy nhiên trong Machine Translation chúng ta phải chọn câu văn phù hợp nhất thay vì để RNN cell tạo ra từng từ một Thông thường việc lựa chọn chuỗi đầu ra (output sequence) được thực hiện bởi các thuật toán tìm kiếm với hai phương pháp chính sau:

– Greedy search: chọn từ có xác xuất cao nhất làm output của từng vị trí tương đương ở tập ngôn ngữ đích Ưu điểm của phương pháp này là có tốc độ nhanh, nhưng thường sẽ không tạo ra câu văn hợp lý nhất

18 – Beam search: tại mỗi bước giải mã, chúng ta chọn n-words (beam width) với xác xuất cao nhất Ví dụ khi chúng ta chọn beam_width=3 thì tại mỗi bước giải mã, ta sẽ giữ lại 3 từ có xác xuất cao nhất rồi lấy từng từ một làm đầu vào cho bước giải mã tiếp theo Cứ như thế lặp lại cho đến khi ta gặp đánh dấu việc kết thúc câu

+ Với beam_width=1, ta có thể coi Beam search trường hợp này là Greedy Search

+ Khi tính toán xác xuất của chuỗi đầu ra (output sequence) trong Beam search, chúng ta sử dụng lôgarit và tính trung bình cộng của các giá trị lôgarit này Điều này giúp giải quyết vấn đề gặp phải khi nhân nhiều giá trị xác xuất (thường là các số rất nhỏ) với nhau Vì khi đó sẽ tạo ra số nhỏ đến mức mà máy tính không thể phân biệt được

+ Beam search không bảo đảm sẽ tìm được kết quả tốt nhất Ngoài ra, khi giá trị beam_width càng lớn thì ta sẽ được kết quả với độ chính xác càng cao Tuy nhiên, khi đó chúng ta sẽ tốn nhiều thời gian và tài nguyên để xử lý hơn.

Kiến trúc Transformer

Kiến trúc Transformers cũng sử dụng 2 phần Encoder và Decoder khá giống RNNs Điểm khác biệt là input được đẩy vào cùng một lúc Sẽ không còn khái niệm timestep trong Transformers nữa Vậy cơ chế nào đã thay thế cho sự "recurrent" của RNNs? Đó chính là Self-Attention, và đó cũng là lý do tên paper là "Attention Is All You Need" [1]

Hình 3.5: Mô hình tổng quát của kiến trúc Transformer

Ta biểu diễn câu chữ dưới dạng vector, gọi là input embedding Điều này đảm bảo các từ gần nghĩa có vector gần giống nhau Hiện đã có khá nhiều pretrained word embeddings như GloVe, Fasttext, gensim Word2Vec,

Hình 3.6: Ví dụ Input embedding

Word embeddings phần nào cho giúp ta biểu diễn ngữ nghĩa của một từ, tuy nhiên cùng một từ ở vị trí khác nhau của câu lại mang ý nghĩa khác nhau Đó là lý do Transformers có thêm một phần Positional Encoding để inject thêm thông tin về vị trí của một từ

Trong đó pos là vị trí của từ trong câu, PE là giá trị phần tử thứ i trong embeddings có độ dài dmodel Sau đó ta cộng PE vector và Embedding vector:

Self-Attention là cơ chế giúp Transformers "hiểu" được sự liên quan giữa các từ trong một câu Ví dụ như từ "kicked" trong câu "I kicked the ball" (tôi đã đá quả bóng) liên quan như thế nào đến các từ khác? Rõ ràng nó liên quan mật thiết đến từ "I" (chủ ngữ), "kicked" là chính nó lên sẽ luôn "liên quan mạnh" và "ball" (vị ngữ) Ngoài ra từ "the" là giới từ nên sự liên kết với từ "kicked" gần như không có

Ta có thể tưởng tượng cơ chế self attention giống như cơ chế tìm kiếm Với một từ cho trước, cơ chế này sẽ cho phép mô hình tìm kiếm trong cách từ còn lại, từ nào

“giống” để sau đó thông tin sẽ được mã hóa dựa trên tất cả các từ trên

Quá trình tính toán attention vector có thể được tóm tắt làm 3 bước như sau: Bước 1: Tính ma trận query, key, value bằng cách khởi tạo 3 ma trận trọng số query, key, vector Sau đó nhân input với các ma trận trọng số này để tạo thành 3 ma trận tương ứng

Bước 2: Tính attention weights Nhân 2 ma trận key, query vừa được tính ở trên với nhau để với ý nghĩa là so sánh giữa câu query và key để học mối tương quan Sau đó thì chuẩn hóa về đoạn [0-1] bằng hàm softmax 1 có nghĩa là câu query giống với key, 0 có nghĩa là không giống

Bước 3: Tính output Nhân attention weights với ma trận value Điều này có nghĩa là chúng ta biểu diễn một từ bằng trung bình có trọng số (attention weights) của ma trận value

Hình 3.7: Quá trình tính toán vector attention

Chúng ta muốn mô hình có thể học nhiều kiểu mối quan hệ giữa các từ với nhau Với mỗi self-attention, chúng ta học được một kiểu pattern, do đó để có thể mở rộng khả năng này, chúng ta đơn giản là thêm nhiều self-attention Tức là chúng ta cần nhiều ma trận query, key, value mà thôi Giờ đây ma trận trọng số key, query, value sẽ có thêm 1 chiều depth nữa.

Hình 3.8: Quá trình tính multi-head attention

Residuals connection và tầng chuẩn hóa (Normalization Layer)

Trong kiến trúc của mô hình transformer, residuals connection và normalization layer được sử dụng mọi nơi, giống như tinh thần của nó 2 kỹ thuật giúp cho mô hình huấn luyện nhanh hội tụ hơn và trách mất mát thông tin trong quá trình huấn luyện mô hình, ví dụ như là thông tin của vị trí các từ được mã hóa

Decoder thực hiện chức năng giải mã vector của câu nguồn thành câu đích, do đó decoder sẽ nhận thông tin từ encoder là 2 vector key và value Kiến trúc của decoder rất giống với encoder, ngoại trừ có thêm một multi head attention nằm ở giữa dùng để học mối liên quan giữ từ đang được dịch với các từ được ở câu nguồn

Masked Multi Head Attention tất nhiên là multi head attention mà chúng ta đã nói đến ở trên, có chức năng dùng để encode các từ câu câu đích trong quá trình dịch, tuy nhiên, lúc cài đặt chúng ta cần lưu ý rằng phải che đi các từ ở tương lai chưa được

22 mô hình dịch đến, để làm việc này thì đơn giản là chúng ta chỉ cần nhân với một vector chứa các giá trị 0,1

Trong decoder còn có một multi head attention khác có chức năng chú ý các từ ở mô hình encoder, layer này nhận vector key và value từ mô hình encoder, và output từ layer phía dưới Đơn giản bởi vì chúng ta muốn so sánh sự tương quan giữa từ đang được dịch với các từ nguồn

Quá trình decode về cơ bản là giống với encode, chỉ khác là Decoder decode từng từ một và input của Decoder (câu tiếng Pháp) bị masked Sau khi masked input đưa qua sub-layer #1 của Decoder, nó sẽ không nhân với 3 ma trận trọng số để tạo ra

BERT (Bidirectional Encoder Representations from Transformers)

BERT được viết tắt của Bidirectional Encoder Representations from Transformers, một kiến trúc mới cho lớp bài toán Language Representation đươc Google công bố vào đầu tháng 11 vừa qua Không giống như các mô hình trước đó, BERT được thiết kế để đào tạo ra các vector đại diện cho ngôn ngữ văn bản thông qua ngữ cảnh 2 chiều (trái và phải) của chúng Kết quả là, vector đại diện được sinh ra từ mô hình BERT được tính chỉnh với các lớp đầu ra bổ sung đã tạo ra nhiều kiến trúc cải tiến đáng kể cho các nhiệm vụ xử lý ngôn ngữ tự nhiên như Question Answering, Language Inference, mà không cần thay đổi quá nhiều từ các kiến trúc cũ [4]

Chìa khóa đột phá kỹ thuật quan trọng của BERT đang áp dụng là đào tạo thông qua ngữ cảnh hai chiều của Tranformer (một kiến trúc mạng thần kinh dựa trên cơ chế tự chú ý để hiểu ngôn ngữ), một mô hình chú ý phổ biến, cho mô hình hóa ngôn ngữ Điều này trái ngược với những nỗ lực trước đó đã xem xét một chuỗi văn bản theo kiểu đào tạo từ trái sang phải hoặc kết hợp cả đào tạo từ trái sang phải và phải sang trái Kết quả bài báo cho thấy một mô hình ngôn ngữ được đào tạo hai chiều có

23 thể có ý thức sâu sắc hơn về bối cảnh so với các mô hình ngôn ngữ đào tạo theo một hướng Trong bài báo, các nhà nghiên cứu mô tả chi tiết một kỹ thuật mới có tên Masked LM (MLM) cho phép đào tạo hai chiều trong các mô hình mà trước đây không thể thực hiện được Đây sẽ là hướng đi trong tương lai, áp dụng một mô hình tiền huấn luyện cho tầng mã hóa – encoder để giảm thời gian huấn luyện và tăng độ chính xác hơn Hiện nay đã có bộ tiền huấn luyện tiếng Việt mang tên Phở Bert được các nhà nghiên cứu của Vin AI phát triển, chúng tôi sẽ nghiên cứu áp dụng trong tương lai cho mô hình dịch máy này

PHƯƠNG PHÁP ĐỀ XUẤT

Xây dựng tập dữ liệu

- Dữ liệu được thu thập qua nhiều nguồn khác nhau, bao gồm trích xuất từ vựng, câu chuyển từ hình ảnh sang văn bản từ cuốn từ điển tiếng Bơhnar Kriêm do Sở Khoa học và Công nghệ (Ủy ban nhân dân tỉnh Bình Định) và Viện Ngôn ngữ học (Viện Khoa học xã hội Việt Nam) hợp tác thực hiện, các văn bản các chương trình radio bằng tiếng Ba Na của huyện Vĩnh Thạnh, và một số tài liệu dịch thuật liên quan

- Nghiên cứu tiền xử lý dữ liệu với các từ hiếm, ký tự đặc biệt, tên riêng, số, …

- Nghiên cứu để sinh ra các tập từ điển với các từ vựng đã cho để làm giàu thêm tập từ điển

Hình 4.1: Cuốn sách từ điển Ba Na – Việt

Dữ liệu tiếng Việt – Ba Na bản tin của huyện Vĩnh Thạnh là một số văn bản song ngữ tiếng Việt và Ba Na theo ngày (mỗi ngày 1 thư mục riêng) từ 07/2019 đến 06/2020, bên trong gồm 2 thư mục con là Dữ liệu gốc và Dữ liệu đã xử lý

Hình 4.2: Bản tin Việt – Ba Na huyện Vĩnh Thạnh

Hình 4.3: Nội dung bản tin theo ngày

Dữ liệu gốc gồm 3 phần:

File mp3 là bản tin (chưa cắt hết phần chương trình tiếng Việt trước đó)

File *BN*.doc là file chứa nội dung đọc tiếng Ba Na có trong phần file mp3 File *TV*.doc là phần dịch tiếng Việt tương ứng với văn bản tiếng Ba Na

Dữ liệu đã xử lý gồm 2 phần:

File excel xlsx chứa nội dung các câu trong file văn bản *BN*.doc, mỗi câu 1 dòng Cột thứ nhất là ID của câu, cột thứ hai là tiếng Ba Na, cột thứ ba là câu tiếng Việt tương ứng Mỗi file chứa khoảng 50 – 90 câu

Hình 4.5: Nội dung tập tin dịch

26 Danh sách các file .wav, mỗi file biểu diễn bằng lời nói tiếng Ba Na cho các câu tương ứng trong file xlsx, tên file là ID của câu Mỗi file có độ dài khoảng vài đến 20 giây, kích thước khoảng 3MB – 8MB

Hình 4.6: Dữ liệu đã xử lý

4.1.1 Thu thập dữ liệu văn bản

Như đã giới thiệu, chúng tôi thu thập dữ liệu thông qua cuốn từ điển Ba Na Kriem và nội dung văn bản radio đài phát thanh huyện Vĩnh Thạnh

+ Cuốn từ điển Ba Na Kriem

Vì cuốn từ điển được lưu dưới dạng tập tin pdf hình ảnh, nên chúng tôi phải trích xuất chữ từ tập tin đó Cụ thể chúng tôi sử dụng thư viện tesseract OCR (https://pypi.org/project/pytesseract/) để nhận diện và trích xuất chữ Vì thư viện không hỗ trợ tiếng Ba Na nên chúng tôi phải sử dụng heuristic để tìm ra một số quy luật chuyển sang tiếng Ba Na

Hình 4.7: Dữ liệu sau khi được trích xuất từ thư viện tesseract

Hình 4.8: Dữ liệu sau khi được chuyển sang ngôn ngữ Ba Na (hình bên trái) bằng các quy luật heuristic

27 + Nội dung văn bản radio huyện Vĩnh Thạnh Ở phần này, do tiếng Ba Na được hiển thị ở font VNI-Times, nên chúng tôi thực hiện chuyển đổi sang font Unicode, sau khi thực hiện chuyển đổi font thì không hiển thị được dấu “ ̆ ”, chúng tôi tiếp tục thực hiện các phương pháp heuristic để tìm quy luật và chuyển sang tiếng Ba Na hoàn chỉnh Do quy luật cũng dễ nắm bắt nên được thực hiện dễ dàng

Phần nội dung phát thanh tiếng Ba Na có rất nhiều từ mượn của tiếng Việt và bỏ các dấu sắc, hỏi, ngã, nặng Có một số từ vẫn giữ nguyên dấu nên chúng tôi phải chỉnh lại

Hình 4.9: Dữ liệu dịch văn bản phát thanh radio huyện Vĩnh Thạnh

Dữ liệu sau khi chuyển từ font VNI-Times sang Unicode:

HĐND huyên Vinh Thanh khai mac măng hop măng mă 10 HĐND huyên khoa

Ví dụ câu chưa chuyển hẳn đúng ngôn ngữ Ba Na:

Dư lê ơêi đ/c Đinh Đrin, Phoê ‘biê thư thương trưêk Huyên uy, Chu tich HĐND huyên…

Ví dụ câu đã được chuyển sang ngôn ngữ Ba Na:

Dư lê ơĭ đ/c Đinh Đrin, Phŏ 'bĭ thư thương trư̆k Huyên uy, Chu tich HĐND huyên…

Vì dữ liệu của chúng tôi có được khá mỏng, nên chúng tôi thêm các bước làm giàu dữ liệu để có thêm dữ liệu trong quá trình huấn luyện Ở bước này chúng tôi chỉ áp dụng cho dữ liệu ở cuốn từ điển Ba Na Kriem Quy trình sinh thêm dữ liệu được thực hiện như sau:

Bước 1: Tách các câu đơn trong các câu trong đoạn hội thoại của cuốn từ điển

Bước 2: Lần lượt áp dụng thay thế các từ đồng nghĩa, cùng từ loại, … với các từ tìm được ở tiếng Việt và Ba Na tương ứng để tạo nên một câu mới Bảng 4.1 mô tả các từ chúng tôi đã trích xuất được trong cuốn từ điển, chủ yếu chúng tôi tìm từ trong tiếng Việt rồi tìm từ Ba Na tương ứng Chủ yếu chúng tôi thay thế các từ phổ thông, không áp dụng cho các từ địa phương

Bước 3: Mỗi bước áp dụng một cặp từ thành công tạo nên một cặp câu mới Sau đó chúng tôi phải kiểm tra ngữ nghĩa với các câu được tạo ra có đúng hay không, nếu đúng với tiếng Việt thì lưu tất cả các cặp câu Việt – Ba Na vào file kết quả

Lần lượt thực hiện quy trình trên cho các câu đơn chúng tôi trích xuất được từ các câu trong đoạn hội thoại ở cuốn từ điển Việt – Ba Na, kết quả tạo các cặp câu được minh hoạ trong hình 4.2.

Hình 4.10: Minh họa kết quả tạo thành câu mới

Mô hình học sâu dịch máy Việt – Ba Na

Để dịch máy từ tiếng Việt sang tiếng Ba Na, luận văn sử dụng chủ yếu kỹ thuật dịch máy dựa trên kiến trúc Transformer[1] đã được nhóm nghiên cứu của Google Brain để thực hiện

Ví dụ minh họa: Đầu vào: Tôi đi học (tiếng Việt) Đầu ra: Inh năm hok (tiếng Ba Na)

Kiến trúc tổng quan mô hình dịch máy Việt – Ba Na được luận văn đề xuất như hình 4.11 và 4.12, sử dụng kiến trúc tương tự như mô hình Transformer based

Hình 4.11: Kiến trúc của mô hình huấn luyện dịch máy Việt – Ba Na

Hình 4.12: Kiến trúc của mô hình dịch máy Việt – Ba Na Ở hình 4.13 là một ví dụ minh họa cách mô hình vận hành Với các từ trong một câu x=(x1, x2, x3) sẽ được đưa vào tầng encoder song song, sau đó thu được các từ x’=(x’1, x’2, x’3) tương ứng có chứa nội dung ngữ cảnh Chúng ta sẽ đưa thông tin của x’1, x’2, x’3 vào các tầng decoder để huấn luyện các ma trận trọng số của WK, WQ,

WV Các mũi tên ở Hình 4.3 minh họa cách gửi output encoder của từ “học” sang tầng decoder, dĩ nhiên các từ “Tôi” và “đi” cũng tương tự

Hình 4.13: Kiến trúc của mô hình huấn luyện dịch máy Việt – Ba Na, minh họa cho bước gửi output encoder của từ “học” qua các tầng decoders.

THỰC NGHIỆM VÀ ĐÁNH GIÁ

Tiêu chí đánh giá

Trong những năm qua, một số độ đo – metrics đã được đề xuất để đánh giá hệ thống dịch máy, mỗi độ đo mới được đề xuất để khắc phục các điểm yếu của các độ đo trước đó Việc sử dụng chúng phụ thuộc vào mục tiêu nghiên cứu và ứng dụng [10] Trong phạm vi đề tài của luận văn, như hầu hết các đề tài dịch máy khác, chúng tôi đánh giá hệ thống dựa trên phương pháp đánh giá chất lượng bản dịch là phương pháp BLEU [11]

BLEU được đề xuất trong một báo cáo nghiên cứu của IBM tại hội nghị ACL vào năm 2011 Ý tưởng chính của phương pháp này là đánh giá chất lượng bản dịch đầu ra của hệ thống dịch máy thông qua việc so sánh nó với các bản dịch tham khảo có chất lượng tốt từ con người, bản dịch càng giống với bản tham khảo thì càng chất lượng

Công thức để tính điểm đánh giá BLEU như sau [11]:

- BP : là chỉ số brevity penalty, bao gồm các tham số c là tổng số lượng các từ trong bản dịch cần đánh giá (candidate translation) từ hệ thống dịch máy, r là tổng số lượng các từ trong bản dịch tham khảo từ con người (reference translation), được tính như sau:

- p n : là chỉ số modified n-gram precision, biểu diễn mức độ trùng khớp của văn bản cần đánh giá từ hệ thống hệ thống dịch máy so với các bản dịch tham khảo từ con người, pn được tính như sau:

32 Với Count clip (n-gram) là số lượng các cụm từ có n từ liên tiếp (n-gram) trùng nhau giữa bản dịch cần đánh giá – candidate translation và các bản dịch tham khảo từ con người – reference translation

Count (n-gram) là số lượng các cụm từ có n từ liên tiếp trong bản dịch từ hệ thống máy

Giá trị score đánh giá mức độ tương ứng giữa hai bản dịch và nó được thực hiện trên từng phân đoạn, ở đây phân đoạn được hiểu là đơn vị tối thiểu trong các bản dịch, thông thường mỗi phân đoạn là một câu hoặc một đoạn Giá trị BLEU luôn nằm trong khoảng từ 0 đến 1, khi giá trị của BLEU càng gần 1, điều này chỉ ra rằng các bản dịch của hệ thống càng gần mới bản dịch tham khảo Vì một văn bản ngôn ngữ nguồn có thể tồn tại nhiều bản dịch khác nhau ở ngôn ngữ đích nhưng đều tương đương với nhau về nghĩa nên việc bổ sung nhiều bản dịch tham khảo có thể làm tăng giá trị của điểm BLEU Dù vẫn còn nhược điểm nhưng nó đã được chứng minh là một thước đo có tương quan hợp lý so với cách đánh giá từ con người.

Chuẩn bị dữ liệu

Theo phương pháp được giới thiệu ở mục 4.1, đề tài đã tiến hành trích xuất dữ liệu từ cuốn từ điển Ba Na Kriem và một số nội dung đài phát thanh radio huyện Vĩnh Thạnh từ 07/2019 đến 06/2020 để xây dựng tập dữ liệu dịch máy Việt – Ba Na Tập dữ liệu sẽ được chia làm 2 tập riêng biệt là tập huấn luyện (training set) và tập kiểm thử (test set) Tập huấn luyện với mục đích tối ưu các thông số của mô hình Tập kiểm thử dùng để đánh giá kết quả của phương pháp sau quá trình huấn luyện Như đã nói, vì dữ liệu khá mỏng nên chúng tôi nhân dữ liệu lên nhiều lần với các từ vựng, các câu ngắn không bị thay đổi, với các câu hội thoại thì ít hơn Chi tiết các tập dữ liệu được mô tả trong bảng 5.1

Bảng 5.1: Dữ liệu phục vụ cho đề tài

STT Tập dữ liệu Số từ/câu

2 Cụm từ ngắn (ít bị thay đổi) 465 (x10)

3 Các câu đoạn hội thoại 1.216 (x5)

5 Dữ liệu được làm giàu 7.267 (x3)

6 Tập huấn luyện (training set) 59.245

7 Tập kiểm thử (test set) 14.811

Cài đặt thực nghiệm

Đề tài đã cài đặt thực nghiệm dựa trên mô hình transformer based Cấu hình huấn luyện như sau:

Cấu hình hệ thống thực nghiệm Để huấn luyện mô hình học sâu đòi hỏi phải có phần cứng máy tính rất mạnh, đặc biệt là GPU và RAM Do đó luận văn chủ yếu chạy các thực nghiệm trên môi trường Google Colab Pro có cấu hình phần cứng và môi trường như sau:

Các thực nghiệm hiện thực bằng ngôn ngữ lập trình python kết hợp với Google Colab Notebook, sử dụng thư viện học sâu chính là PyTorch phiên bản 1.8.0 Thời gian huấn luyện mô hình được thể hiện như bảng 5.1

Bảng 5.2: Thời gian huấn luyện mô hình

Mô hình Thời gian huấn luyện

Mô hình huấn luyện 3 giờ

Kết quả thực nghiệm

Mô hình sau khi huấn luyện cho kết quả dịch khá khả quan Đánh giá mô hình sử dụng tập kiểm thử hơn 11 nghìn từ/câu và đã đạt được điểm số BLEU là 0.39 Với mục tiêu ban đầu là dịch được các từ và câu cơ bản, đề tài có thể đáp ứng được, với phần dữ liệu khá mỏng thì kết quả của quá trình dịch cho thấy có thể phát triển khả quan hơn trong tương lai với tập dữ liệu nhiều hơn nữa Vậy nên nghiên cứu ngôn ngữ, thu thập dữ liệu càng nhiều sẽ là hướng đi đầu tiên trong tương lai sắp tới

Luận văn đã xây dựng một mô hình giúp dịch từ tiếng Việt sang tiếng Ba Na Kết quả đạt được tương đối khả quan và có thể được ứng dụng trong thực tế Ưu điểm của mô hình là tận dụng được những nghiên cứu của mô hình Transformer [5] cho việc dịch máy Mặt khác, đề tài cũng đề xuất một số phương pháp thu thập, sinh dữ liệu với tập sẵn có phục vụ huấn luyện mô hình dịch máy

Trong tương lai sẽ còn rất nhiều việc để làm, như tận dụng được mô hình BERT [8] cho tầng mã hóa (encoders) để giúp tối ưu hơn cho phần huấn luyện cũng như độ chính xác Hiện BERT đã có tập tiền huấn luyện tiếng Việt của VinAI phát triển, trong tương lai chúng tôi sẽ nghiên cứu để tận dụng mô hình tiền huấn luyện này vào đề tài Sau đó chúng tôi sẽ cải thiện độ chính xác của mô hình bằng cách điều chỉnh mô hình, cải thiện bộ dữ liệu về số lượng cũng như chất lượng, thay đổi các thông số huấn luyện khác nhau

Ngày đăng: 03/08/2024, 23:03

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Nguyễn Minh Bằng. “Bắt lỗi chính tả bằng phương pháp Attention.” Luận văn thạc sĩ, Đại học Bách Khoa Tp. Hồ Chí Minh, Tp. Hồ Chí Minh, 2020 Sách, tạp chí
Tiêu đề: Bắt lỗi chính tả bằng phương pháp Attention
[4] M. Freitag and Y. Al-Onaizan, “Beam Search Strategies for Neural Machine Translation,” Proceedings of the First Workshop on Neural Machine Translation, arXiv:1702.01806, 2017 Sách, tạp chí
Tiêu đề: Beam Search Strategies for Neural Machine Translation,” "Proceedings of the First Workshop on Neural Machine Translation
[5] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, Ł. Kaiser and I. Polosukhin, “Attention Is All You Need,” 31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA, arXiv preprint, arXiv: 1706.03762, 2017 Sách, tạp chí
Tiêu đề: Attention Is All You Need,” "31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA
[6] Y. Goldberg. Neural Network Methods in Natural Language Processing. Mogan & Claypool Publishers, 2017, p. 92 Sách, tạp chí
Tiêu đề: Neural Network Methods in Natural Language Processing
[7] Nguyễn Thị Phương Thảo. “Dịch máy Anh – Việt dựa trên phương pháp thống kê tích hợp với thông tin ngôn ngữ.” Luận văn thạc sĩ, Đại học Công nghệ Đại học Quốc Gia Hà Nội, Hà Nội, 2008 Sách, tạp chí
Tiêu đề: Dịch máy Anh – Việt dựa trên phương pháp thống kê tích hợp với thông tin ngôn ngữ
[8] J. Devlin, M.-W. Chang, K. Lee and K. Toutanova, “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, Proceedings of NAACL-HLT 2019, Minneapolis, Minnesota, June 2 - June 7, 2019, arXiv preprint, arXiv: 1810.04805, 2019, pp. 4171–4186 Sách, tạp chí
Tiêu đề: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, "Proceedings of NAACL-HLT 2019
[9] F. Stahlberg. “Neural Machine Translation: A Review and Survey”, arXiv preprint, arXiv:1912.02047v2, 2020 Sách, tạp chí
Tiêu đề: Neural Machine Translation: A Review and Survey
[10] M. Chodorow, M. Dickinson, R. Israel, and J. R Tetreault, "Problems in evaluating grammatical error detection systems," COLING, pp. 611–628, 2012 Sách, tạp chí
Tiêu đề: Problems in evaluating grammatical error detection systems
[11] K. Papineni, S. Roukos, T. Ward, and Z.-J. Zhu, "BLEU: a method for Automatic Evaluation of Machine Translation," Proceedings of the 20 th Annual Meeting of the Association for Computational Linguistics (ACL), Philadelphia, 2001, pp.311-318 Sách, tạp chí
Tiêu đề: BLEU: a method for Automatic Evaluation of Machine Translation
[12] A. Zhang, Z. C. Lipton, M. Li, and A. J. Smola, (June 15th, 2019). Dive into Deep Learning (Bản dịch Đắm mình vào học sâu). [Online] Available at https://d2l.aivivn.com/ Sách, tạp chí
Tiêu đề: Dive into Deep Learning
[2] Nguyễn Văn Lợi. “Xây dựng và hoàn chỉnh chữ viết, biên soạn sách phục vụ dạy và học tiếng Ba Na Kriêm, Hrê, Chăm Hroi ở Bình Ðịnh, Đề tài nghiên cứu, Viện Ngôn ngữ học, Hà Nội, 2005 Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN