« Home « Kết quả tìm kiếm

TÌM HIỂU MÔ HÌNH NGÔN NGỮ SỬ DỤNG PHƯƠNG PHÁP BLOOM FILTER


Tóm tắt Xem thử

- Tóm tắt nội dung Mô hình ngôn ngữ là một thành phần quan trọng trong các ứng dụng như nhận dạng tiếng nói, phân đoạn từ, dịch thống kê.
- Và chúng thường được mô hình hóa sử dụng các n-gram.
- Trong khóa luận này, chúng tôi nghiên cứu và tìm hiểu mô hình ngôn ngữ xây dựng dựa trên cấu trúc dữ liệu Bloom Filter.
- Sau khi tìm hiểu sơ lược về mô hình ngôn ngữ, chúng ta sẽ nghiên cứu hai kiểu cấu trúc dữ liệu dựa trên Bloom Filter là Log-Frequency Bloom Filter và Bloom Map.
- CHƯƠNG 1 - Tổng quan về mô hình ngôn ngữ.
- 3 1.2 Xây dựng mô hình ngôn ngữ.
- 9 1.3 Đánh giá mô hình ngôn ngữ.
- 17 2.4 Mô hình ngôn ngữ sử dụng Bloom Filter.
- Mô hình ngôn ngữ dựa trên Bloom Filter LF-BF-LM.
- Mô hình ngôn ngữ Log-Frequency Bloom Filter LM.
- Mô hình ngôn ngữ.
- Hình 1: Mô hình Markov bậc 2.
- Mở đầu Mô hình ngôn ngữ (Language Model - LM) là một thành phần quan trọng trong nhiều ứng dụng như dịch máy, nhận dạng tiếng nói.
- Từ nhiều nghiên cứu và thử nghiệm [19, 28], chúng ta có thể thấy rằng mô hình ngôn ngữ với ngữ liệu càng lớn, bậc càng cao thì mô phỏng càng chính xác.
- Ở Việt Nam cũng đã có một số nghiên cứu về vấn đề mô hình ngôn ngữ [39], nhưng mới chỉ dừng lại ở việc sử dụng các mô hình ngôn ngữ chuẩn.
- Khóa luận này nghiên cứu và tìm hiểu về mô hình ngôn ngữ dựa trên Bloom Filter do những cải tiến đáng chú ý những năm gần đây của loại cấu trúc dữ liệu này để xây dựng mô hình ngôn ngữ .
- Chương 1 trình bày các hiểu biết cơ bản cần biết về mô hình ngôn ngữ như n-gram, các thuật toán làm mịn được sử dụng trong mô hình ngôn ngữ và các thước đo để đánh giá một mô hình ngôn ngữ.
- Chương 2 tập trung nghiên cứu về các trúc dữ liệu dựa trên Bloom Filter được sử dụng cho mô hình ngôn ngữ, cụ thể là Log-Frequency Bloom Filter và Bloom Map..
- Chương 3 thử nghiệm xây dựng mô hình ngôn ngữ trên một ngữ liệu tiếng Anh và một ngữ liệu tiếng Việt..
- Chương 4 giới thiệu sơ lược về dịch máy thống kê, thử nghiệm dịch máy thống kê với hệ thống dịch máy nguồn mở Moses sử dụng các mô hình ngôn ngữ xây dựng ở chương 3.
- Thay vào đó, các mô hình ngôn ngữ thường ước lượng tương đối xác suất dựa trên giả định Markov (hay mô hình Markov ẩn), rằng từ tiếp theo chỉ chịu ảnh hưởng từ một vài từ trước đó [25].
- Hình 1: Mô hình Markov bậc 2 Một cách tổng quát, gọi.
- 1.2 Xây dựng mô hình ngôn ngữ Để xây dựng (huấn luyện) một mô hình ngôn ngữ ta cần một ngữ liệu đơn ngữ (corpus) có kích thước tương đối và một bộ ước lượng thống kê có nhiệm vụ mô hình hóa lượng xác suất của ngữ liệu.
- Chúng ta có thể sử dụng kết quả đếm các n-gram để xây dựng một mô hình ước lượng cực đại hóa khả năng (Maximium Likelihood Estimation - MLE) với tần suất tương đối của các n-gram trong ngữ liệu.
- Phương pháp này được gọi như vậy bởi vì nó cực đại hóa giá trị đầu ra để mô hình hóa ngữ liệu huấn luyện.
- Vậy thì xác suất mà một mô hình ngôn ngữ dùng MLE sẽ gán cho unigram “Chinese” là.
- Hai khái niệm quan trọng được sử dụng trong quá trình làm mịn các mô hình ngôn ngữ là backoff và interpolation.
- 1.3 Đánh giá mô hình ngôn ngữ.
- 1.3.1 Perplexity Sau khi LM đã được huấn luyện, chúng ta cần phải đánh giá chất lượng của mô hình.
- Cách đánh giá chính xác nhất một mô hình ngôn ngữ là kiểm tra trong thực tế.
- Entropy chéo của một mô hình là độ đo thông tin giữa hai phân phối xác suất.
- Đối với một phân phối xác suất q nào đó mà chúng ta sử dụng để mô hình hóa phân phối xác suất p, entropy chéo được định nghĩa là:.
- chúng ta sử dụng entropy chéo trong Perplexity để không bao giờ đánh giá thấp entropy thực sự của mô hình.
- Perplexity của một mô hình được đánh giá trên tập kiểm tra.
- Trong thực tế, Perplexity là thước đo đầu tiên để đánh giá một mô hình ngôn ngữ, và có thể được coi là hàm của cả cả ngôn ngữ và mô hình.
- Chính vì lý do này mà ta không thể sử dụng các phương pháp đo dựa trên Entropy như Perplexity để đánh giá chất lượng của mô hình.
- Bloom Filter Từ khi ra đời đến nay, việc mô hình ngôn ngữ đã có nhiều phát triển đáng kể cùng với các thuật toán làm mịn ngày càng tốt hơn [5].
- Đó là làm thế nào tạo ra được mô hình đại diện hiệu quả ngôn ngữ tự nhiên, bằng cách sử dụng nhiều dữ liệu, tăng bậc mô hình n-gram (n = 6, 7, 8.
- Tuy nhiên Talbot và Osborne đã đề xuất những cách cho phép tích hợp giá trị vào trong mô hình ngôn ngữ Bloom Filter.
- Các cấu trúc dữ liệu dựa trên Bloom Filter được sử dụng để xây dựng mô hình ngôn ngữ có nguồn gốc từ Bloom Filter (BF) cơ bản [4].
- 2.4.2 Bộ lọc dựa vào chuỗi con Các mô hình ngôn ngữ n-gram chuẩn lưu trữ xác suất điều kiện của n-gram trong một ngữ cảnh cụ thể.
- Hầu hết các mô hình ngôn ngữ này cũng lại sử dụng một số phương pháp nội suy để kết hợp xác suất điều kiện của n-gram đang xét với xác suất n-gram bậc thấp hơn.
- Bộ lọc này giảm tỉ lệ lỗi của các mô hình ngôn ngữ BF với phương pháp làm mịn nội suy, bằng cách sử dụng giá trị nhỏ nhất được trả lại bởi các mô hình bậc thấp làm cận trên cho các mô hình cấp cao hơn..
- Lưu ý: Từ nay trở đi trong khóa luận này, ta sẽ gọi chung các mô hình ngôn ngữ sử dụng cấu trúc dữ liệu dựa trên Bloom Filter là BF-LM.
- Mô hình ngôn ngữ xây dựng sử dụng cấu trúc dữ liệu Log-Frequency Bloom Filter được viết tắt là LF-BF-LM.
- nếu sử dụng cấu trúc dữ liệu Bloom Map thì được gọi là BloomMap-LM..
- Trong chương này, chúng tôi trình bày thử nghiệm xây dựng các mô hình ngôn ngữ với hai công cụ RandLM và SRILM [34]..
- Các mô hình ngôn ngữ BF-LM được xây dựng với công cụ mã nguồn mở RandLM.
- File buildlm được dùng để xây dựng các mô hình ngôn ngữ.
- Các mô hình ngôn ngữ chuẩn, không mất mát được xây dựng sử dụng SRI Language Modelling Toolkit (SRILM).
- Nó hỗ trợ nhiều kiểu mô hình ngôn ngữ khác nhau dựa trên thống kê về n-gram.
- 3.1 Ngữ liệu.
- Bảng 2: Thống kê các tập ngữ liệu tiếng Anh được sử dụng để xây dựng LM (Set 1.
- Mô hình ngôn ngữ không mất mát được huấn luyện sử dụng thuật toán làm mịn Kneser-Ney cải tiến (MKN).
- 3.3 Xây dựng LM với SRILM và RandLM · Với ngữ liệu tiếng Anh: Các mô hình ngôn ngữ SRILM được xây dựng từ các tập ngữ liệu trên sử dụng lệnh sau:.
- Câu lệnh trên sẽ tạo ra một mô hình ngôn ngữ 3-gram trong file model_sri_1.00GB_3-grams.txt từ file ngữ liệu news.lowercased_1GB.gz (SRILM cho phép đầu vào và đầu ra sử dụng file nén).
- Ta cũng có thể yêu cầu SRILM tạo ra những mô hình ngôn ngữ bậc cao hơn như 4-gram, 5-gram, thậm chí cao hơn nữa.
- SRILM sử dụng RAM để lưu trữ kết quả đếm n-gram tạm thời, với cấu hình máy tính thử nghiệm đã nêu trên (sử dụng 2GB RAM), chúng tôi đã xây dựng được mô hình ngôn ngữ 3-gram từ tập ngữ liệu 1GB.
- Việc xây dựng mô hình tốn khoảng 10 phút cho tập ngữ liệu 0.25GB (Set 1) cho đến vài tiếng đối với tập ngữ liệu 1GB (Set 4).
- Sau khi xây dựng ta có thể xem có bao nhiêu n-gram mỗi bậc trong file mô hình ngôn ngữ vừa được tạo ra (head –n 5 model_sri_1.00GB_3-grams.txt)..
- Đối với RandLM, xây dựng mô hình ngôn ngữ có thể được thực hiện theo 3 cách: i) từ ngữ liệu đã được chia từ sẵn.
- iii) từ một mô hình ngôn ngữ backoff đã được xây dựng trước đó với định dạng ARPA (định dạng của mô hình ngôn ngữ được tạo ra từ SRILM).
- Tham số order xác định bậc của mô hình n​-gram.
- Đặc biệt tham số -struct quyết định cấu trúc dữ liệu được sử dụng để xây dựng mô hình ngôn ngữ.
- Sử dụng RandLM, chúng tôi sẽ xây dựng các mô hình ngôn ngữ với cả hai loại cấu trúc dữ liệu này để so sánh kích thước cũng như hiệu quả của từng cấu trúc dữ liệu.
- randlm_3-grams_1.00GB.BloomMap Mô hình ngôn ngữ · randlm_3-grams_1.00GB.counts.sorted.gz.
- Thời gian để xây dựng các BF-LM sử dụng RandLM lâu hơn khi xây dựng các mô hình ngôn ngữ chuẩn cùng bậc, cùng lượng dữ liệu trong SRILM.
- mất xấp xỉ 20 tiếng RandLM mới xây dựng xong mô hình ngôn ngữ 3-gram với 1GB ngữ liệu (Set 4).
- Nhưng bù lại, RandLM lại có thể xây dựng các mô hình ngôn ngữ bậc cao hơn, sử dụng nhiều dữ liệu hơn SRILM.
- Ví dụ, trên máy tính thử nghiệm, RandLM đã có thể xây dựng thành công mô hình ngôn ngữ 4-gram từ 1GB ngữ liệu huấn luyện, trong khi SRILM thì không thể.
- Tuy thời gian huấn luyện của RandLM lâu hơn SRILM nhưng đó không phải là vấn đề lớn, vì ta chỉ xây dựng mô hình ngôn ngữ một lần duy nhất.
- Hơn nữa, dung lượng các mô hình ngôn ngữ Bloom Filter xây dựng từ RandLM chiếm ít bộ nhớ hơn các mô hình chuẩn từ SRILM rất nhiều.
- Bảng 5 thống kê dung lượng các mô hình ngôn ngữ 3-gram tạo bởi hai công cụ này (không nén) với các bộ ngữ liệu kích thước khác nhau.
- Qua bảng trên ta có thể thấy rằng dung lượng các mô hình ngôn ngữ tạo bởi RandLM chỉ bằng khoảng 1/6 lần dung lượng mô hình ngôn ngữ chuẩn tạo bởi SRILM nếu sử dụng cấu trúc dữ liệu Bloom Map, và bằng khoảng 1/5 lần nếu sử dụng cấu trúc dữ liệu Log-Frequency Bloom Filter.
- Kết quả thể hiện trong biểu đồ một lần nữa cho thấy sự chênh lệch lớn về dung lượng giữa các mô hình ngôn ngữ SRILM chuẩn và RandLM..
- Thử nghiệm: Hệ thống dịch máy thống kê với Moses Các mô hình được xây dựng ở trên sẽ được dùng trong dịch máy thống kê sử dụng hệ thống dịch máy mã nguồn mở Moses [21].
- Qua đó ta có thể so sánh hiệu quả của mô hình ngôn ngữ sử dụng Bloom Filter với mô hình ngôn ngữ chuẩn truyền thống..
- Mô hình của Brown (hay còn gọi là mô hình IBM) [7] biểu diễn quá trình dịch bằng một mô hình kênh nhiễu (noisy channel model) bao gồm ba thành phần: một mô hình dịch (translation model), có nhiệm vụ liên hệ các từ, cụm từ tương ứng của các ngôn ngữ khác nhau.
- một mô hình ngôn ngữ (LM), đại diện cho ngôn ngữ đích.
- một bộ giải mã (decoder), kết hợp mô hình dịch và mô hình ngôn ngữ để thực hiện nhiệm vụ dịch.
- Dịch dựa vào cụm sử dụng mô hình kênh nhiễu, áp dụng công thức Bayes ta có:.
- Việc xây dựng mô hình ngôn ngữ cần sử dụng một ngữ liệu đơn ngữ lớn, trong khi đó mô hình dịch lại cần đến ngữ liệu song ngữ tốt.
- Quá trình dịch cụm được mô hình hóa bởi phân phối xác suất.
- Việc đảo ví trí (reodering) của các cụm đầu ra được mô hình bởi phân phối xác suất.
- Ở đây chúng ta sử dụng mô hình đảo cụm rất đơn giản như sau:.
- Chính vì vậy, trong khóa luận này, điểm BLEU được sử dụng làm thước đo chất lượng dịch, từ đó so sánh các loại mô hình ngôn ngữ khác nhau.
- Chúng tôi xây dựng hệ thống dịch sử dụng GIZA++ 2.0.
- Mô hình ngôn ngữ sử dụng trong huấn luyện là một mô hình 3-gram với thuật toán làm mịn Kneser-Ney cải tiến.
- Mô hình ngôn ngữ tiếng Anh dùng trong huấn luyện hệ thống dịch được xây dựng từ ngữ liệu Europarl đơn ngữ tiếng Anh (xem thống kê chi tiết ở bảng 6)..
- Hệ thống dịch được thử nghiệm với các mô hình ngôn ngữ SRILM và RandLM, với việc dịch 2000 câu tiếng Đức.
- Thời gian để dịch hết 2000 câu này khi sử dụng mô hình ngôn ngữ SRILM là 98 phút, đối với BloomMap-LM là 124 phút và với LF-BF-LM là 117 phút.
- Như vậy là khi sử dụng các loại BF-LM, thời gian dịch lâu hơn khi sử dụng mô hình ngôn ngữ chuẩn khoảng 1.3 lần.
- Các mô hình ngôn ngữ này đều được xây dựng từ tập ngữ liệu Set 4 gồm 1 GB ngữ liệu tiếng Anh.
- Nhìn vào kết quả này ta có thể thấy rằng nếu cùng sử dụng mô hình 3-gram thì hệ thống dịch sử dụng mô hình ngôn ngữ SRI-LM có điểm cao hơn khi sử dụng mô hình các mô hình BF-LM.
- Thế nhưng, như đã nói ở phần trên, với cấu hình máy tính dùng cho thử nghiệm, ta chỉ có thể xây dựng mô hình ngôn ngữ 4-gram nếu sử dụng BF-LM.
- Sử dụng mô hình ngôn ngữ 4-gram BF-LM này (sử dụng cấu trúc dữ liệu Bloom Map) trong hệ thống dịch cho điểm số là 19.93, cao hơn rõ rệt khi sử dụng mô hình ngôn ngữ SRI-LM với 18.25 điểm..
- Hơn thế nữa, thời gian dịch khi sử dụng 2 loại mô hình này có sự chênh lệch không lớn.
- Kết luận Qua các chương của khóa luận, chúng tôi đã trình bày lý thuyết và thử nghiệm các mô hình ngôn ngữ xây dựng dựa trên hai cấu trúc dữ liệu Bloom Filter là Log-Frequency Bloom Filter và Bloom Map.
- Từ kết quả các thử nghiệm, ta có thể nhận thấy các mô hình ngôn ngữ Bloom Filter có hiệu quả xấp xỉ các lossless LM chuẩn nhưng tốc độ truy vấn chậm hơn.
- Trong tương lai, tôi mong muốn tiếp tục nghiên cứu các mô hình ngôn ngữ có nền tảng là các PDS và áp dụng vào xây dựng một hệ thống dịch máy thống kê Anh – Việt, Việt - Anh với ngữ liệu lớn