Chương 1: Trình bày các kiến thức cơ bản về mô hình ngôn ngữ, mô hình N-gram, các phƣơng pháp làm mịn và các độ đo dùng để đánh giá mô hình ngôn ngữ. Chương 2: Nghiên cứu sâu hơn mô hình ngôn ngữ dựa trên mạng nơron. Đặc biệt tập trung vào mô hình ngôn ngữ dựa trên mạng nơron hồi quy. Chương 3: Thực nghiệm đánh giá mô hình theo hai phƣơng pháp: trực tiếp và gián tiếp.
Đánh giá trực tiếp là chạy các bộ dữ liệu với hai ngôn ngữ tiếng Anh và tiếng Việt trên mô hình và so sánh các mô hình khác. Đánh giá gián tiếp là việc gắn mô hình vào hệ thống dịch máy thống kê Moses để đánh giá kết quả dịch. 2 z Chƣơng 1: MÔ HÌNH NGÔN NGỮ Mô hình ngôn ngữ đang nhận được nhiều sự quan tâm của các nhà khoa học hiện nay. Đã có rất nhiều mô hình ngôn ngữ đưa ra nhằm cải tiến mô hình ngôn ngữ đầu tiên.
Mô hình ngôn ngữ được sử dụng vào các bài toán về nhận dạng tiếng nói và dịch máy thống kê. Trong chương này tôi sẽ trình bày kiến thức cơ bản về mô hình ngôn ngữ như: định nghĩa mô hình ngôn ngữ, mô hình N-gram, các độ đo để đánh giá một mô hình và giới thiệu một số phương pháp làm mịn. Từ những kiến thức cơ sở có thể hiểu sâu hơn về các mô hình ngôn ngữ sau này.1 Giới thiệu chung Mô hình ngôn ngữ là một phân bố xác suất của một đoạn văn bản trên một tập dữ liệu văn bản lớn. Ví dụ, một mô hình ngôn ngữ dựa trên tập dữ liệu về giáo dục thì xác suất của câu “hôm nay chúng em đi học” sẽ cao hơn câu “hôm chúng nay học em đi”.
Thuật ngữ mô hình ngôn ngữ bắt nguồn từ các mô hình xác suất sinh ngôn ngữ dùng trong hệ thống nhận dạng tiếng nói, phát triển vào những năm 1980. Lịch sử phát triển của mô hình ngôn ngữ từ đầu thế kỷ 20 khi Andrey Markov đƣa ra mô hình Markov sử dụng để lập mô hình cho chuỗi các chữ cái. Sau đó Claude Shannon đƣa ra mô hình cho chuỗi các chữ cái và các từ. Những năm 90 mô hình ngôn ngữ đƣợc sử dụng rộng rãi trong các ứng dụng xử lý ngôn ngữ tự nhiên nhƣ phân loại từ vựng, dịch máy và nhận dạng chữ viết.
Mô hình ngôn ngữ còn đƣợc các nhà nghiên cứu sử dụng để truy hồi thông tin. Mô hình ngôn ngữ đƣợc định nghĩa nhƣ sau: V là một tập tất cả các từ trong ngôn ngữ. Ví dụ ta xây dựng mô hình ngôn ngữ cho tiếng anh thì ta có: 𝑉 = {𝑡𝑒, 𝑑𝑜𝑔, 𝑙𝑎𝑢𝑔𝑠, 𝑠𝑎𝑤, 𝑏𝑎𝑟𝑘𝑠, 𝑐𝑎𝑡 … } Tập V là tập dữ liệu lớn, cỡ hàng nghìn từ và là tập hữu hạn. Một câu trong ngôn ngữ là một tập các từ đứng gần nhau w1w2…wn (với 𝑛 ≥ 1.), một ký hiệu <s> ở đầu câu và </s> ở cuối câu (hai ký hiệu <s> và </s> không thuộc tập V).
Ví dụ: 3 z <s> the dog barks </s> <s> the cat laughs </s> <s> the cat saw the dog </s> Tập V+ là tập các câu sinh ra từ các từ trong tập V. Đây là tập không hữu hạn. Mô hình ngôn ngữ: Là mô hình gồm một tập hữu hạn V và một hàm P(w1w2…wn) như sau: 1. 𝑤 1 𝑤 2 …𝑤 𝑛 𝑉+ 𝑃(𝑤1 𝑤2 … 𝑤𝑛 ) = 1 Khi đó, P(w1w2…wn) là một phân bố xác suất của câu trên tập V+.
Gọi C(w1w2…wn) là số lần xuất hiện của câu w1w2…wn trong tập huấn luyện, N là tổng các câu. Mô hình ngôn ngữ đơn giản trên tập dữ liệu huấn luyện định nghĩa nhƣ sau: 𝐶(𝑤1 𝑤2 … 𝑤𝑛 ) 𝑃 𝑤1 𝑤2 … 𝑤𝑛 = (1.1) 𝑁 Tuy nhiên, đây không phải là một mô hình tốt vì sẽ cho xác suất 0 với các câu không xuất hiện trong tập dữ liệu huấn luyện, do đó không thể tổng quát hóa cho trƣờng hợp câu không có trong tập V+. Mặc dù có hạn chế nhƣng mô hình ngôn ngữ vẫn đƣợc xem xét để nghiên cứu và cải tiến vì những lý do sau: 1. Mô hình ngôn ngữ vẫn cần cho một số ứng dụng nhƣ nhận diện giọng nói và dịch máy.
Từ định nghĩa hàm P và ức lƣợng các tham số từ tập dữ liệu huấn luyện sẽ cho đƣợc kết quả với nhiều ngữ cảnh khác nhau: ví dụ mô hình Markov ẩn trình bày trong phần tiếp theo.2 Mô hình N-gram Câu hỏi đặt ra là xác suất P(w1w2…wn) là bao nhiêu? Phân tách P bằng một xác suất dây chuyền (chain rule of probability): 𝑃 𝑋1 … 𝑋𝑛 = 𝑃 𝑋1 𝑃 𝑋2 𝑋1 𝑃 𝑋3 𝑋12 … 𝑃 𝑋𝑛 𝑋1𝑛−1 4 z 𝑛 = 𝑃(𝑋𝑘 |𝑋1𝑘−1 ) (1.2) 𝑘 =1 Ứng dụng xấp xỉ trên với từ: 𝑃 𝑤1 … 𝑤𝑛 = 𝑃 𝑤1 𝑃 𝑤2 𝑤1 𝑃 𝑤3 𝑤12 … 𝑃 𝑤𝑛 𝑤1𝑛−1 𝑛 = 𝑃(𝑤𝑘 |𝑤1𝑘 −1 ) (1.3) 𝑘 =1 Quy tắc dây chuyền chỉ ra mối liên hệ giữa xác suất cả cụm từ và xác suất của một từ đi sau một số từ trƣớc đó. Do đó mô hình cần một lƣợng bộ nhớ khá lớn để lƣu xác xuất của tất cả các cụm từ. Rõ ràng quy tắc này vẫn không hiệu quả khi chiều dài của cụm từ lớn và việc tính 𝑃(𝑤𝑘 |𝑤1𝑘−1 ) rất khó. Giả sử cần tính xác suất của từ w đi sau cụm từ h, hay P(w|h).
Ví dụ h là cụm từ tiếng anh “its water is so transparent” và tính xác suất của từ the đi sau cụm từ trên là: 𝑃(𝑡𝑒|𝑖𝑡𝑠 𝑤𝑎𝑠 𝑖𝑠 𝑠𝑜 𝑡𝑟𝑎𝑛𝑠𝑝𝑎𝑟𝑒𝑛𝑡 𝑡𝑎𝑡) 𝐶(𝑖𝑡𝑠 𝑤𝑎𝑠 𝑖𝑠 𝑠𝑜 𝑡𝑟𝑎𝑛𝑠𝑝𝑎𝑟𝑒𝑛𝑡 𝑡𝑎𝑡 𝑡𝑒) = (1.4) 𝐶(𝑖𝑡𝑠 𝑤𝑎𝑠 𝑖𝑠 𝑠𝑜 𝑡𝑟𝑎𝑛𝑠𝑝𝑎𝑟𝑒𝑛𝑡 𝑡𝑎𝑡) Với tập dữ liệu đủ lớn thì ta có thể đếm các tần suất xuất hiện của hai cụm từ 𝑖𝑡𝑠 𝑤𝑎𝑠 𝑖𝑠 𝑠𝑜 𝑡𝑟𝑎𝑛𝑠𝑝𝑎𝑟𝑒𝑛𝑡 𝑡𝑎𝑡 𝑡𝑒 và 𝑖𝑡𝑠 𝑤𝑎𝑠 𝑖𝑠 𝑠𝑜 𝑡𝑟𝑎𝑛𝑠𝑝𝑎𝑟𝑒𝑛𝑡 𝑡𝑎𝑡 bên trên. Trong trƣờng hợp dữ liệu không đủ lớn thì việc ƣớc lƣợng xác suất theo công thức (1.4) khó thực hiện đƣợc. Hay cả khi có dữ liệu đủ lớn thì việc đếm số lần xuất hiện cũng rất khó. Mô hình N-gram ra đời thay thế xác suất của một từ phụ thuộc vào toàn bộ các từ trƣớc đó bằng một xấp xỉ của hữu hạn từ trƣớc đó.
Ví dụ với mô hình 2-gram, xác suất của một từ chỉ phụ thuộc vào từ đứng liền trƣớc nó, thay vì toàn bộ dãy từ w1w2…wn-1, hay: 𝑃 𝑤𝑛 𝑤1𝑛−1 ≈ 𝑃 𝑤𝑛 𝑤𝑛 −1 (1.5) Ví dụ ta có: 𝑃(𝑡𝑒|𝑖𝑡𝑠 𝑤𝑎𝑡𝑒𝑟 𝑖𝑠 𝑠𝑜 𝑡𝑟𝑎𝑛𝑠𝑝𝑎𝑟𝑒𝑛𝑡 𝑡𝑎𝑡) ≈ 𝑃(𝑡𝑒|𝑡𝑎𝑡) 5 z Giả định rằng xác suất của một từ chỉ phụ thuộc vào hữu hạn từ trƣớc đó gọi là xấp xỉ Markov. Xấp xỉ Markov có thể dự đoán xác suất của một từ khi biết 1,.,n từ trƣớc đó (với n đủ nhỏ). Mô hình Markov còn gọi là mô hình N-gram. Áp dụng xấp xỉ Markov ta có công thức (1.5) tƣơng đƣơng nhƣ sau: 𝑃 𝑤𝑛 𝑤1𝑛 −1 ≈ 𝑃(𝑤𝑛 |𝑤𝑛−𝑁+1 𝑛−1 ) (1.6) Mô hình 2-gram trong ví dụ trên sẽ tƣơng đƣơng công thức xác suất: 𝑛 𝑃 𝑤1 … 𝑤𝑛 ≈ 𝑃 𝑤𝑘 𝑤𝑘−1 (1.7) 𝑘 =1 Làm sao để ƣớc lƣợng đƣợc xác suất của 2-gram hay N-gram? Cách đơn giản hay sử dụng là Ƣớc lƣợng hợp lý cực đại (Maximum Likelihood Estimation - MLE).
Ví dụ, với xác suất 2-gram của từ y đi sau từ x là số lần xuất hiện của từ xy,C(xy).8) 𝑤 𝐶(𝑤𝑛−1 𝑤) Đơn giản công thức (1.8) bằng cách coi số lần xuất hiện 2-gram bắt đầu bằng từ wn-1 bằng số lần xuất hiện của từ wn-1 ta có: 𝐶(𝑤𝑛 −1 𝑤𝑛 ) 𝑃 𝑤𝑛 𝑤𝑛−1 = (1.9) 𝐶(𝑤𝑛−1 ) Xem ví dụ đơn giản với 3 câu nhƣ sau: <s> I am Sam </s> <s> Sam I am </s> <s> I do not like green eggs and ham </s> Xác suất 2-gram của tập dữ liệu trên: 2 1 2 𝑃 𝐼 <𝑠> = = 0.33 2 2 3 Công thức MLE cho trƣờng hợp tổng quát N-gram: 𝑛 −1 𝐶(𝑤𝑛𝑛−𝑁+1 −1 𝑤𝑛 ) 𝑃 𝑤𝑛 𝑤𝑛−𝑁+1 = 𝑛−1 (1.10) 𝐶(𝑤𝑛−𝑁+1 ) 6 z Ta có xác suất 2-gram của các cụm từ nhƣ sau: 𝑃 𝐼 < 𝑠 > = 0.68 Xác suất của cả câu “I want english food” đƣợc tính: 𝑃(< 𝑠 > 𝑖 𝑤𝑎𝑛𝑡 𝑒𝑛𝑔𝑙𝑖𝑠 𝑓𝑜𝑜𝑑 </𝑠 > = 𝑃 𝑖 < 𝑠 > 𝑃 𝑤𝑎𝑛𝑡 𝑖 𝑃(𝑒𝑛𝑔𝑙𝑖𝑠| 𝑤𝑎𝑛𝑡) 𝑃(𝑓𝑜𝑜𝑑 𝑒𝑛𝑔𝑙𝑖𝑠 𝑃(𝑓𝑜𝑜𝑑| </𝑠 >) = 0.3 Đánh giá mô hình ngôn ngữ Rất nhiều mô hình ngôn ngữ đã đƣợc đƣa ra thì một câu hỏi cho những ngƣời sử dụng là làm sao để biết đƣợc mô hình nào tốt hay dở. Cách tốt nhất là đƣa mô hình đó nhúng vào một ứng dụng khác để đánh giá. Ví dụ với hệ thống nhận dạng tiếng nói ngƣời ta thực hiện so sánh hiệu năng của hai mô hình ngôn ngữ bằng cách chạy lần lƣợt từng mô hình và xem kết quả trả về. Hạn chế của cách đánh giá này là phải nhờ đến hệ thống bên ngoài và thƣờng chi phí đắt và khá lâu.
Do đó các nhà nghiên cứu đã sử dụng một công thức để đánh giá tính hiệu quả của mô hình ngôn ngữ độc lập với ứng dụng. Độ hỗn loạn thông tin (perplexity) là một đánh giá mô hình ngôn ngữ N- gram thông dụng nhất. Ngoài ra còn có một số đánh giá khác nhƣ độ đo thông tin (entropy) và tỉ lệ lỗi từ (word error rate).1 Độ hỗn loạn thông tin (Perplexity) Độ hỗn loạn thông tin đƣa ra khi cần đánh giá hai mô hình ngôn ngữ, mô hình nào đƣa ra kết quả phù hợp với dữ liệu kiểm thử hoặc dự đoán từ tốt nhất. Cho tập dữ liệu kiểm thử W=w1w2.wn, độ hỗn loạn thông tin (PPL) là xác suất của tập dữ liệu kiểm thử trên tổng các từ trong tập đó, đƣợc tính theo công thức: 1 𝑃𝑃𝐿 𝑊 = 𝑃(𝑤1 𝑤2 … 𝑤𝑁 )−𝑁 (1.11) 7 z 𝑁 1 = 𝑃(𝑤1 𝑤2 … 𝑤𝑁 ) Áp dụng luật dây chuyền ta có: 𝑁 𝑁 1 𝑃𝑃𝐿 𝑊 = (1.12) 𝑃(𝑤𝑖 |𝑤1 … 𝑤𝑖−1 ) 𝑖=1 Theo công thức (1.12) thì xác suất càng cao thì độ hỗn loạn thông tin càng thấp.
Độ hỗn loạn thông tin cũng có thể hiểu nhƣ là độ đo thông tin trung bình theo hàm mũ. Ví dụ, nếu nhƣ mô hình mã hóa một từ 8 bit thì độ hỗn loạn thông tin là 256. Vì sao lại sử dụng độ hỗn loạn thông tin thay vì độ đo thông tin. Thứ nhất, rất dễ để nhớ giá trị tuyệt đối trong khoảng từ 100-200 hơn là nhớ các số lẻ trong khoảng 6.
Thứ hai, khi báo cáo với độ hỗn loạn thông tin thì hiệu quả nâng lên 10% sẽ dễ cảm nhận hơn là sử dụng 2% với độ đo thông tin. Điều quan trọng hơn cả là độ hỗn loạn thông tin dễ dàng tính toán hơn so với độ đo khác.