Đăng ký Đăng nhập
Trang chủ Nghiên cứu mô hình ngôn ngữ dựa trên mạng nơron ...

Tài liệu Nghiên cứu mô hình ngôn ngữ dựa trên mạng nơron

.PDF
62
6
127

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ VŨ THƢƠNG HUYỀN NGHIÊN CỨU MÔ HÌNH NGÔN NGỮ DỰA TRÊN MẠNG NƠRON LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM Hà Nội – 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ VŨ THƢƠNG HUYỀN NGHIÊN CỨU MÔ HÌNH NGÔN NGỮ DỰA TRÊN MẠNG NƠRON Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN VINH Hà Nội - 2015 LỜI CAM ĐOAN Tôi xin cam đoan kết quả trong luận văn là sản phẩm của riêng cá nhân tôi. Trong toàn bộ nội dung của luận văn, những điều đƣợc trình bày hoặc là của cá nhân hoặc là đƣợc tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và đƣợc trích dẫn hợp pháp. Tôi xin hoàn toàn chịu trách nhiệm theo quy định cho lời cam đoan của mình. Hà Nội, ngày 20 tháng 10 năm 2015 Ngƣời cam đoan Vũ Thƣơng Huyền LỜI CẢM ƠN Tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS. Nguyễn Văn Vinh – Bộ môn Khoa học máy tính - Khoa Công nghệ thông tin - Đại học Công Nghệ - Đại học Quốc gia Hà Nội đã hƣớng dẫn, chỉ bảo tận tình và hết lòng giúp đỡ tôi trong suốt thời gian làm luận văn. Tôi xin cảm ơn các thầy cô giáo trong Khoa Công nghệ thông tin – Đại học Công Nghệ - Đại học Quốc gia Hà Nội đã cho tôi nhiều kiến thức bổ ích khi học tập tại trƣờng. Xin cảm ơn các anh trong nhóm nghiên cứu Dịch máy thống kê do thầy giáo TS. Nguyễn Văn Vinh hƣớng dẫn đã giúp đỡ tôi trong quá trình nghiên cứu. Xin cảm ơn ban chủ nhiệm đề tài và các thành viên trong nhóm đã cho tôi cơ hội tham gia đề tài “Cải tiến chất lượng dịch máy thống kê dựa vào thông tin cú pháp phụ thuộc”, mã số QC.15.23. Đây là cơ hội cho tôi đƣa luận văn vào thực tiễn. Cuối cùng tôi xin chân thành cảm ơn Ban lãnh đạo và các đồng nghiệp Khoa Công nghệ thông tin – Đại học Thủy Lợi đã tạo điều kiện cho tôi trong quá trình học. Học viên Vũ Thƣơng Huyền MỤC LỤC LỜI CAM ĐOAN .............................................................................................................. LỜI CẢM ƠN .................................................................................................................... MỤC LỤC ......................................................................................................................... DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ....................................................... DANH MỤC CÁC BẢNG ................................................................................................ DANH MỤC HÌNH ẢNH ................................................................................................. MỞ ĐẦU .........................................................................................................................1 Chƣơng 1: MÔ HÌNH NGÔN NGỮ .........................................................................3 1.1 Giới thiệu chung .....................................................................................................3 1.2 Mô hình N-gram .....................................................................................................4 1.3 Đánh giá mô hình ngôn ngữ ...................................................................................7 1.3.1 Độ hỗn loạn thông tin (Perplexity) ..................................................................7 1.3.2 Độ đo thông tin (Entropy)................................................................................8 1.3.3 Tỉ lệ lỗi (Word Error Rate) ..............................................................................9 1.4 Các phƣơng pháp làm mịn ...................................................................................10 1.4.1 Phƣơng pháp Add-one ...................................................................................10 1.4.2 Phƣơng pháp làm mịn Good-Turing ..............................................................12 1.4.3 Phƣơng pháp truy hồi Back-off .....................................................................13 1.4.4 Phƣơng pháp nội suy (interpolation) .............................................................15 1.4.5 Phƣơng pháp chiết khấu tuyệt đối (Absolute discounting) ...........................15 1.4.6 Phƣơng pháp Kneser-Ney ..............................................................................16 1.4.7 Phƣơng pháp Kneser-Ney cải tiến (Modified Kneser-Ney) ..........................17 1.5 Mô hình N-gram phân lớp (Class-based) .............................................................18 Chƣơng 2: MÔ HÌNH NGÔN NGỮ MẠNG NƠRON ...........................................19 2.1 Mô hình ngôn ngữ mạng nơron truyền thẳng ......................................................19 2.2 Mô hình ngôn ngữ mạng nơron hồi quy ..............................................................22 2.2.1 Thuật toán học lan truyền ngƣợc ...................................................................24 2.2.2 Thuật toán học lan truyền ngƣợc thời gian ....................................................26 2.2.3 Một số nhƣợc điểm của mạng nơron hồi quy ................................................29 2.3 Một số kỹ thuật cải tiến mô hình ngôn ngữ mạng nơron .....................................30 2.3.1 Giảm kích thƣớc bộ từ vựng ..........................................................................30 2.3.2 Phân tách tầng ra của mạng nơron (Factorization) ........................................30 2.3.3 Kết hợp giữa các mô hình mạng nơron .........................................................32 Chƣơng 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ ........................................................33 3.1 Môi trƣờng chạy thực nghiệm ..............................................................................33 3.2 Dữ liệu ..................................................................................................................34 3.3 Công cụ sử dụng chạy thực nghiệm .....................................................................35 3.3.1 Cài đặt mô hình ngôn ngữ dựa trên mạng nơron hồi quy ..............................35 3.3.2 Công cụ mã nguồn mở RNNLM Toolkit ......................................................37 3.3.3 Công cụ mã nguồn mở SRILM......................................................................38 3.4 Đánh giá mô hình ngôn ngữ mạng nơron hồi quy ...............................................38 3.4.1 Đánh giá các tham số của mạng ....................................................................39 3.4.2 So sánh với các mô hình khác .......................................................................42 3.5 Đánh giá gián tiếp qua hệ thống dịch máy thống kê Moses ................................ 44 3.5.1 Dịch máy thống kê .........................................................................................44 3.5.2 Dịch máy thống kê với công cụ Moses .........................................................45 3.5.3 Điểm BLEU ...................................................................................................45 3.5.4 Đánh giá mô hình ngôn ngữ qua Moses ........................................................46 3.6 Kết luận ................................................................................................................49 KẾT LUẬN ...................................................................................................................50 TÀI LIỆU THAM KHẢO .............................................................................................51 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Ký hiệu RNNLM Ý nghĩa Recurrent Neural Network Language Model – Mô hình ngôn ngữ mạng nơron hồi quy WER Word Error Rate – Tỉ lệ lỗi ASR Automatic Speech Recognition – Nhận dạng tiếng nói tự động MLE Maximum Likelihood Estimation – Ƣớc lƣợng hợp lý cực đại MSE Mean Squared Error - Sai số toàn phƣơng trung bình DANH MỤC CÁC BẢNG Bảng 1.1: Thống kê kết quả Perplexity với mô hình N-gram ..........................................8 Bảng 3.2: Thống kê dữ liệu Anh-Việt (EV1) ..................................................................34 Bảng 3.3: Thống kê dữ liệu IWSLT2015 .......................................................................35 Bảng 3.4: Thống kê dữ liệu IWSLT2015 theo dung lượng ............................................35 Bảng 3.5: Kết quả Perplexity theo số lượng tần ẩn ......................................................39 Bảng 3.6: Kết quả Perplexity theo số phân lớp ở tầng ẩn ............................................40 Bảng 3.7: Kết quả Perplexity theo số lần hồi quy .........................................................40 Bảng 3.8: Kết quả Perplexity theo dung lượng tập huấn luyện ....................................41 Bảng 3.9: Kết quả Perplexity khi so sánh các mô hình ngôn ngữ .................................42 Bảng 3.10: Kết quả Perplexity khi so sánh các mô hình ngôn ngữ ...............................43 Bảng 3.11: Kết quả BLEU khi tích hợp với hệ thống dịch máy Moses .........................47 Bảng 3.12: Kết quả Perplexity khi so sánh các mô hình ngôn ngữ ...............................48 DANH MỤC HÌNH ẢNH Hình 2.1: Mô hình ngôn ngữ mạng nơron truyền thẳng ...............................................22 Hình 2.2: Mạng nơron hồi quy đơn giản .......................................................................23 Hình 2.3: Mạng nơron lan truyền ngược thời gian với 3 bước hồi quy .......................27 Hình 2.4: Các giá trị gradient được lan truyền trong mạng nơron hồi quy ................29 Hình 2.5: Phân tách tầng ra của mạng nơron..............................................................31 Hình 3.1: Thiết lập các tham số cho mạng ...................................................................36 Hình 3.2: Huấn luyện dữ liệu để xây dựng mô hình .....................................................36 Hình 3.3: Kiểm tra mô hình ..........................................................................................37 Hình 3.4: Perplexity theo số lượng phân lớp ở tầng ra................................................39 Hình 3.5: Perplexity theo số lượng phân lớp ở tầng ra................................................40 Hình 3.6: Perplexity theo số lần hồi quy ......................................................................41 Hình 3.7: Perplexity theo dung lượng tập huấn luyện .................................................42 Hình 3.8: So sánh Perplexity giữa 2 mô hình theo dung lượng tập huấn luyện ..........43 Hình 3.9: Cơ chế thực hiện khi tích hợp trực tiếp với mô hình ngôn ngữ vào Moses..46 Hình 3.10: Cơ chế thực hiện khi sử dụng n-best list sinh ra từ hệ thống Moses..........48 MỞ ĐẦU Ngày nay công nghệ thông tin đang bùng nổ trên khắp thế giới, lƣợng thông tin trao đổi trên mạng là rất lớn. Dữ liệu về văn bản, hình ảnh, âm thanh đang trở thành những dữ liệu khổng lồ phục vụ nhu cầu lƣu trữ và trao đổi thông tin của con ngƣời. Đã có rất nhiều ứng dụng đƣa ra thay con ngƣời kiểm tra chính tả trên các văn bản, nhận dạng dữ liệu, dịch tài liệu, nhận dạng tiếng nói, phân đoạn từ, dịch thống kê,v.v. Để giúp máy tính có thể làm đƣợc những điều đó ngƣời ta đã đƣa ra mô hình ngôn ngữ nhƣ là một thành phần quan trọng để áp dụng vào các lĩnh vực trên. Mô hình ngôn ngữ là các phân phối xác suất trên một ngữ liệu đơn ngữ và đƣợc sử dụng trong nhiều bài toán khác nhau của xử lý ngôn ngữ tự nhiên. Thực chất mô hình ngôn ngữ có thể cho biết xác suất một câu hoặc một cụm từ tùy thuộc vào ngôn ngữ là bao nhiêu. Chính vì vậy một mô hình ngôn ngữ tốt sẽ đánh giá câu đúng ngữ pháp và độ trôi chảy tốt hơn những câu có thứ tự ngẫu nhiêu. Cách thông dụng nhất đƣợc dùng để mô hình hóa ngôn ngữ chính là thông qua các N-gram. Khi xây dựng mô hình ngôn ngữ cần phải có lƣợng bộ nhớ khá lớn để có thể lƣu trữ đƣợc xác suất của tất cả các chuỗi và cấu hình máy khá mạnh để tính toán, xử lý. Có rất nhiều cách lƣợng tử để nhằm tối ƣu bộ nhớ và bộ xử lý. Các phƣơng pháp làm mịn, truy hồi, đồng hóa, nén là những phƣơng pháp trƣớc đây dùng để tối ƣu giá trị xác suất và tối ƣu bit lƣu trữ. Một số ứng dụng về xây dựng mô hình ngôn ngữ đƣợc sử dụng trong những năm gần đây nhƣ SRILM toolkit [21], Random Forest Language Model toolkit [22], v.v. Mục đích chính của SRILM là để hỗ trợ ƣớc lƣợng và đánh giá mô hình ngôn ngữ. Random Forest Language Model Toolkit xây dựng dựa trên SRILM Toolkit, là một các mô hình ngôn ngữ cây quyết định cho kết quả thực hiện khá tốt. Hay một số các công cụ khác nhƣ: Language Model toolkit, Neural Probability LM toolkit, MSRLM, v.v. Với mỗi công cụ đều sử dụng kỹ thuật riêng để làm cho mô hình ngôn ngữ hiệu quả. Gần đây các nhà khoa học xây dựng mô hình ngôn ngữ dựa trên mạng nơron nhằm cải thiện việc tính toán hiệu quả hơn. Mạng nơron đã đƣợc sử dụng nhiều trong học máy và khai phá dữ liệu. Khi đƣa mạng nơron vào xây dựng mô hình ngôn ngữ đã thu đƣợc kết quả tốt cả về độ hỗn tạp và tỉ lệ lỗi của từ. Mạng nơron 1 học các từ trong các từ khác để đƣa ra mối liên hệ giữa các từ đó và đƣa ra đƣợc một số lƣợng lớn dữ liệu học từ dữ liệu ban đầu. Do đó, luận văn sẽ tập trung nghiên cứu việc sử dụng mạng nơ-ron vào việc xây dựng mô hình ngôn ngữ giúp cải tiến mô hình cũ. Từ những nghiên cứu đó sẽ có đƣợc những đánh giá chính xác các ƣu điểm khi sử dụng mạng nơ-ron với các mô hình trƣớc đó. Đồng thời cũng đƣa ra hƣớng nghiên cứu tiếp theo về xây dựng mô hình ngôn ngữ. Nội dung bài luận văn bao gồm các phần sau: 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 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.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 ở đầu câu và ở cuối câu (hai ký hiệu không thuộc tập V). Ví dụ: 3 the dog barks the cat laughs the cat saw the dog 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. 2. Với cụm (w1w2…wn)  V+, P(w1w2…wn) ≥ 0 𝑤 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. 2. 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. 1.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 𝑛 𝑃(𝑋𝑘 |𝑋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 Ví dụ ta có: 𝑃(𝑡𝑕𝑒|𝑖𝑡𝑠 𝑤𝑎𝑡𝑒𝑟 𝑖𝑠 𝑠𝑜 𝑡𝑟𝑎𝑛𝑠𝑝𝑎𝑟𝑒𝑛𝑡 𝑡𝑕𝑎𝑡) ≈ 𝑃(𝑡𝑕𝑒|𝑡𝑕𝑎𝑡) 5 (1.5) 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). 𝑃 𝑤𝑛 𝑤𝑛 −1 = 𝐶(𝑤𝑛 −1 𝑤𝑛 ) 𝑤 𝐶(𝑤𝑛−1 𝑤) (1.8) Đơ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 ) (1.9) Xem ví dụ đơn giản với 3 câu nhƣ sau: I am Sam Sam I am I do not like green eggs and ham Xác suất 2-gram của tập dữ liệu trên: 𝑃 𝐼 <𝑠> = 2 3 = 0.67 𝑃 𝑆𝑎𝑚 = 1 2 𝑃 𝑆𝑎𝑚 < 𝑠 > = = 0.5 𝑃 𝑆𝑎𝑚 𝑎𝑚 = 1 2 1 3 = 0.33 = 0.5 𝑃 𝑎𝑚 𝐼 = 𝑃 𝑑𝑜 𝐼 = 2 3 1 3 = 0.67 = 0.33 Công thức MLE cho trƣờng hợp tổng quát N-gram: 𝑛 −1 𝑃 𝑤𝑛 𝑤𝑛−𝑁+1 = −1 𝐶(𝑤𝑛𝑛−𝑁+1 𝑤𝑛 ) 𝑛−1 𝐶(𝑤𝑛−𝑁+1 ) 6 (1.10) Ta có xác suất 2-gram của các cụm từ nhƣ sau: 𝑃 𝐼 < 𝑠 > = 0.25 𝑃 𝑒𝑛𝑔𝑙𝑖𝑠𝑕 𝑤𝑎𝑛𝑡 = 0.0011 𝑃 𝑓𝑜𝑜𝑑 𝑒𝑛𝑔𝑙𝑖𝑠𝑕 = 0.5 𝑃 𝑓𝑜𝑜𝑑 = 0.68 Xác suất của cả câu “I want english food” đƣợc tính: 𝑃(< 𝑠 > 𝑖 𝑤𝑎𝑛𝑡 𝑒𝑛𝑔𝑙𝑖𝑠𝑕 𝑓𝑜𝑜𝑑 = 𝑃 𝑖 < 𝑠 > 𝑃 𝑤𝑎𝑛𝑡 𝑖 𝑃(𝑒𝑛𝑔𝑙𝑖𝑠𝑕| 𝑤𝑎𝑛𝑡) 𝑃(𝑓𝑜𝑜𝑑 𝑒𝑛𝑔𝑙𝑖𝑠𝑕 𝑃(𝑓𝑜𝑜𝑑| ) = 0.25 ∗ 0.33 ∗ 0.0011 ∗ 0.5 ∗ 0.68 = 0.000031 1.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ữ Ngram 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.3.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 … 𝑤𝑁 )−𝑁 7 (1.11) = 𝑁 1 𝑃(𝑤1 𝑤2 … 𝑤𝑁 ) Áp dụng luật dây chuyền ta có: 𝑁 𝑁 𝑃𝑃𝐿 𝑊 = 𝑖=1 1 𝑃(𝑤𝑖 |𝑤1 … 𝑤𝑖−1 ) (1.12) 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.64 – 7.64 bits. 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. Bảng 1.1 là kết quả tính toán độ hỗn loạn thông tin trên mô hình ngôn ngữ Ngram trên tập dữ liệu Wall Street Journal 1.5 triệu từ: Bảng 1.1: Thống kê kết quả Perplexity với mô hình N-gram N-gram 1-gram 2-gram 3-gram Perplexity 962 170 109 1.3.2 Độ đo thông tin (Entropy) Độ đo thông tin (entropy) là thƣớc đo thông tin, thể hiện mức độ thông tin trong ngôn ngữ. Trong mô hình ngôn ngữ thì entropy thể hiện sự phù hợp của một câu và dự đoán đƣợc từ tiếp theo trong cụm N-gram. Hàm entropy của một biến ngẫu nhiên X đƣợc tính theo công thức: 𝐻 𝑋 = − 𝑝 𝑥 𝑙𝑜𝑔2 (𝑝 𝑥 ) (1.13) Với mô hình ngôn ngữ, entropy của một cụm từ W=w1w2...wn: 𝐻 𝑤1 𝑤1 … 𝑤𝑛 = − 𝑝 𝑤1 𝑤1 … 𝑤𝑛 𝑙𝑜𝑔2 (𝑝(𝑤1 𝑤1 … 𝑤𝑛 )) 8 (1.14) Entropy của một ngôn ngữ đƣợc tính: 1 𝐻 𝑊1 𝑊2 … 𝑊𝑛 𝑛→∞ 𝑛 𝐻 𝐿 = − lim (1.15) 1.3.3 Tỉ lệ lỗi (Word Error Rate) Tỉ lệ lỗi (WER) trong nhận dạng tiếng nói đƣợc định nghĩa là: 𝑊𝐸𝑅 = 𝑆+𝐷+𝐼 𝑁 (1.16) Trong đó: - S là số lƣợng từ có thể thay thế đƣợc. - D là số lƣợng từ có thể xóa đƣợc - I là số lƣợng từ có thể thêm đƣợc - N là tổng số từ Tỉ lệ lỗi từ đƣợc sử dụng trực tiếp trong hệ thống nhận dạng tiếng nói bằng cách đếm số từ lỗi giữa đầu ra của hệ thống và bản dịch. So với các kỹ thuật khác, thì tỉ lệ lỗi từ có thể không chính xác và một số nhà khoa học hiểu sai ý nghĩa khi nâng cấp hệ thống. So sánh với độ hỗn loạn thông tin (perplexity) có ƣu điểm: dễ đánh giá, tƣơng đồng về kết quả với các hệ thống đánh giá khác. Nhƣợc điểm của độ hỗn loạn thông tin là rất khó để kiểm tra kết quả đánh giá là đúng. Perplexity thƣờng đo dựa trên các từ trƣớc đó, nó không chính xác với hệ thống ASR (Automatic Speech Recognition). Trong đó, điểm lợi của độ đo WER là khi tối ƣu độ đo, thì việc đánh giá chỉ phụ thuộc vào một số tham số. Việc đánh giá cho kết quả tốt khi có đƣợc dữ liệu bản dịch lớn. Nhƣợc điểm của WER là thƣờng kết quả bị nhiễu, với dữ liệu kiểm thử nhở thì độ nhiễu là 0.5%. Vì độ đo phụ thuộc vào dữ liệu bản dịch, kết quả không tốt khi bản dịch cũng chứa lỗi. Tỉ lệ từ thay thể lớn làm cho độ đo có kết quả tốt nhƣng thực tế khi các từ thay thế đó cùng ý nghĩa hoặc lại làm giảm ý nghĩa của bản dịch thì kết quả đo không phản ánh đúng. 9 1.4 Các phƣơng pháp làm mịn Một vấn đề gặp phải khi dùng ƣớc lƣợng hợp lí cực đại (Maximum Likelihood Estimation - MLE) với dữ liệu huấn luyện phân bố không đều dấn đến ƣớc lƣợng không chính xác. Vì vậy, với bất kỳ tập huấn luyện nào đều có giới hạn làm cho tỉ lệ từ có xác suất bằng 0 là khá lớn. Hơn nữa, ƣớc lƣợng MLE sẽ cho kết quả không tốt khi tần suất xuất hiện của từ lớn hơn 0 nhƣng là một giá trị rất nhỏ. Câu hỏi đặt ra là liệu có một công thức ƣớc lƣợng nào hiệu quả cho các từ có tần suất xuất hiện bằng 0 hoặc giá trị rất nhỏ. Ngoài ra, để đánh giá bằng độ hỗn loạn thông tin yêu cầu xác suất của các câu trong bộ dữ liệu kiểm tra, nếu các câu này không xuất hiện trong tập dữ liệu huấn luyện thì kết quả trả ra là 0. Do đó cần phải thay thế ƣớc lƣợng hợp lý cực đại để gán cho những từ có xác suất bằng 0 một giá trị khác 0 với bất kỳ N-gram. Vì những lý do trên dẫn đến việc thay đổi ƣớc lƣợng hợp lý cực đại. Thuật ngữ làm mịn (smoothing) sử dụng cho việc đánh giá lại xác suất của các cụm N-gram. Các phƣơng pháp làm mịn có thể chia thành hai loại nhƣ sau: - Chiết khấu (Discounting): giảm xác suất của các cụm N-gram có xác suất lớn hơn 0 để bù cho các cụm N-gram không xuất hiện trong tập huấn luyện. Ví dụ: phƣơng pháp Add-one, Good-Turing - Truy hồi (Back-off): tính toán xác suất của các cụm N-gram không xuất hiện trong tập huấn luyện dựa vào các cụm N-gram ngắn hơn có xác suất lớn hơn 0. Ví dụ: Katz back-off. - Nội suy (Interpolation): tính toán xác suất của tất cả các cụm N-gram dựa vào xác suất của các cụm N-gram ngắn hơn. 1.4.1 Phƣơng pháp Add-one Phƣơng pháp làm mịn Add-one hay còn gọi là phƣơng pháp làm mịn Laplace Smoothing [10][7] thực hiện cộng thêm 1 vào tần số xuất hiện của tất cả các cụm Ngram. Phƣơng pháp này không cho kết quả tốt với mô hình ngôn ngữ N-gram, nhƣng đây là phƣơng pháp tiền đề cho các phƣơng pháp làm mịn sau này. Xác suất của các cụm 1 từ wi với tần suất xuất hiện là ci là: 10 𝑃 𝑤𝑖 = 𝐶𝑖 𝑁 Phƣơng pháp Add-one thêm 1 vào các ci, với V là số các từ trong bộ dữ liệu từ điển, ta có xác suất nhƣ sau: 𝑃𝐴𝑑𝑑 −𝑜𝑛𝑒 𝑤𝑖 = 𝐶𝑖 + 1 𝑁+𝑉 (1.17) Thay vì phải thay đổi công thức tính xác suất ở cả tử và mẫu, ta điều chỉnh lại tần suất c thành c*: 𝐶 ∗ = (𝐶𝑖 + 1) 𝑁 𝑁+𝑉 (1.18) Khi đó, xác suất đƣợc tính theo công thức: 𝐶∗ 𝑃 𝑤𝑖 = 𝑁 ∗ (1.19) Phƣơng pháp Add-one đạt đƣợc xác suất khối (probability mass) bằng cách làm giảm xác suất của những cụm từ có tần suất xuất hiện lớn hơn 0 bù cho những từ có tuần suất bằng 0. Áp dụng công thức (1.10) và (1.19) để tính xác suất cụm 2-gram ta có: ∗ 𝑃𝐴𝑑𝑑 −𝑜𝑛𝑒 𝑤𝑛 |𝑤𝑛−1 = 𝐶(𝑤𝑛 −1 𝑤𝑛 ) 𝐶 𝑤𝑛 + 𝑉 (1.20) Để thuận tiện ta tính lại các tần suất cho cụm 2-gram nhƣ sau: 𝐶 ∗ 𝑤𝑛−1 𝑤𝑛 = 𝐶 𝑤𝑛−1 𝑤𝑛 + 1 ∗ 𝐶(𝑤𝑛−1 ) 𝐶 𝑤𝑛 −1 + 𝑉 (1.21) Có thể thấy là tần suất xuất hiện của từ thay đổi khá nhiều dẫn đến xác suất đƣợc phân bố lại. Thay vì cộng thêm vào tần suất của mỗi từ 1 đơn vị ta có thể thay bằng giá trị , nhƣng phải chọn đƣợc giá trị  đủ tốt để thu đƣợc xác suất hợp lý. Phƣơng pháp này gọi là Add- (Lidstone,1920). Phƣơng pháp Add-one có ƣu điểm là dễ cài đặt tính toán. Nhƣợc điểm là làm giảm xác suất của những cụm từ hay xuất hiện trong tập huấn luyện. Nếu tỉ lệ các từ không xuất hiện càng lớn thì xác suất gán cho các từ này sẽ tăng và làm giảm đáng kể xác suất của các từ khác. 11
- Xem thêm -

Tài liệu liên quan