Mô hình ngôn ngữ (hay Mô hình ngôn ngữ thống kê, tiếng Anh Language Model) là mô hình thể hiện phân bố xác suất của các chuỗi từ, cho phép ước lượng xác suất xuất hiện của một từ hoặc một chuỗi từ hay cả một câu trong một ngữ cảnh nào đó.
Có hai bài toán cơ bản liên quan tới phân bố xác suất của chuỗi từ. Bài toán thứ nhất là tìm xác suất xuất hiện của một từ w biết chuỗi từ h xuất hiện trước đó P (w | h), ví dụ xác suất từ “mũ” xuất hiện sau chuỗi “đấy là một cái”. Có thể ước lượng xác suất này dựa vào một kho ngữ liệu huấn luyện rất lớn: đếm số lần xuất hiện C1 của chuỗi “đấy là một cái” và số lần xuất hiện C2 của chuỗi “đấy là một cái mũ”. Khi đó, xác suất P (mũ | đấy là một cái) được ước lượng bằng C2 / C1. Bài toán thứ hai là tính xác suất của cả chuỗi N từ P (w1w2 … wN), ví dụ xác suất của chuỗi 5 từ P (đấy là một cái mũ). Với một kho ngữ liệu đủ lớn làm dữ liệu huấn luyện, xác suất này có thể ước lượng bằng cách đếm số lần xuất hiện của chuỗi “đấy là một cái mũ” chia cho tổng số lần xuất hiện của tất cả các chuỗi 5 từ có thể có trong văn bản. Tuy nhiên, trong thực tế cách làm như vậy không khả thi. Một mặt là không có kho ngữ liệu nào, kể cả lấy toàn bộ ngữ liệu trên web, có thể đủ lớn để phủ hết các chuỗi từ cần đếm, vì khả năng sáng tạo ngôn ngữ là vô hạn. Mặt khác, số lượng các chuỗi cần đếm cũng quá lớn.
Phân loại[sửa]
Có thể phân loại các mô hình ngôn ngữ theo hai nhóm chính là các mô hình n-gram và các mô hình mạng nơ-ron.
Mô hình ngôn ngữ n-gram[sửa]
Đây là mô hình ngôn ngữ đơn giản nhất. Mô hình n-gram tổng quát, tương ứng với mô hình Markov bậc n – 1, giải quyết các bài toán ước lượng xác suất của một chuỗi phần tử dựa trên giả thiết Markov: xác suất xuất hiện một phần tử trong một chuỗi chỉ phụ thuộc vào n – 1 phần tử ngay trước đó. Trong mô hình ngôn ngữ n-gram, mỗi n-gram là một chuỗi n từ. Trong ví dụ chuỗi từ tiếng Việt “đấy là một cái mũ”, mỗi 1-gram (unigram) là một từ độc lập (ví dụ “đấy”, “là”, “một”), 2-gram (bigram) là chuỗi 2 từ (ví dụ “đấy là”, “là một”, “một cái”), 3-gram (trigram) là chuỗi ba từ (ví dụ “đấy là một”, “là một cái”, “một cái mũ”).
Với bài toán ước lượng xác suất P (w | h), các mô hình ngôn ngữ n-gram ước lượng xác suất xuất hiện của một từ chỉ dựa vào n-1 từ trước đó, do vậy chỉ cần đếm trong kho ngữ liệu huấn luyện các chuỗi từ có độ dài tối đa bằng n, không quan tâm tới việc đếm tần suất các chuỗi có độ dài lớn hơn n.
Với bài toán ước lượng xác suất của một chuỗi N từ, xác suất cần tính đưa về bài toán tính xác suất một từ khi biết n – 1 từ trước đó:
P (w1w2 … wN) = P (w1) P (w2 | w1) … P (wN | wN-n+1 … wN-1).
Vấn đề chính cần giải quyết khi huấn luyện mô hình ngôn ngữ n-gram là tính thưa của ngữ liệu. Có nhiều từ hoặc chuỗi từ cần tính xác suất chưa hề gặp trong ngữ liệu huấn luyện. Những xác suất bằng 0 này sẽ dẫn tới tất cả các ước lượng xác suất liên quan bằng 0. Để khắc phục các số 0 này, người ta sử dụng các phương pháp làm trơn. Có thể kể đến phương pháp làm trơn cộng 1 (Laplace) hoặc cộng k vào các bộ đếm, đảm bảo mỗi từ/chuỗi từ đều có giá trị đếm khác 0; phương pháp rút ngắn ngữ cảnh (backoff) dựa trên nguyên tắc là nếu xác suất ước lượng theo mô hình Markov bậc k bằng 0 thì thay xác suất này bằng ước lượng với mô hình Markov bậc k – 1; các phương pháp nội suy như Kneser-Ney trong đó xác suất cần tính theo mô hình Markov bậc n – 1 được ước lượng bằng cách kết hợp có trọng số các giá trị đếm của các k-gram, với mọi k trong khoảng [1, n].
Mô hình ngôn ngữ mạng nơ-ron[sửa]
Nhược điểm chính của các mô hình n-gram là số lượng các tham số tăng với tốc độ hàm mũ khi tăng bậc của mô hình Markov, và không thể tổng quát hoá mô hình từ tập huấn luyện sang tập kiểm tra. Các mô hình ngôn ngữ mạng nơ-ron, bao gồm mạng nơ-ron lan truyền tiến (feedforward neural network) và mạng nơ-ron hồi quy (recurrent neural network), giải quyết được nhược điểm này bằng cách ánh xạ các từ vào một không gian liên tục, trong đó các từ có ngữ cảnh tương tự sẽ có biểu diễn véc-tơ tương tự.
Tương tự như mô hình n-gram, mô hình ngôn ngữ sử dụng mạng nơ-ron lan truyền tiến cũng ước lượng xác suất xuất hiện của từ cuối cùng dựa vào các từ đứng trước trong cửa sổ ngữ cảnh có kích thước n. Sự khác biệt nằm ở chỗ thay vì xét trực tiếp từng từ cụ thể trong chuỗi từ như trong mô hình n-gram, mô hình mạng nơ-ron làm việc với biểu diễn véc-tơ nhúng của mỗi từ. Nghĩa là mỗi từ sẽ được ánh xạ vào không gian véc-tơ nhờ một mô hình nhúng sao cho hai từ thường xuất hiện trong những ngữ cảnh tương tự thì có các véc-tơ nhúng tương tự. Ví dụ, các từ “chó” và “mèo” thường xuất hiện trong những ngữ cảnh giống nhau, do vậy véc-tơ nhúng của chúng sẽ tương tự nhau. Khi đó, nếu mô hình mạng nơ-ron lan truyền tiến cho ước lượng xác suất xuất hiện véc-tơ nhúng của từ “chó” là cao thì xác suất xuất hiện véc-tơ nhúng của từ “mèo” cũng cao. Nói cách khác, nếu mô hình dự báo từ tiếp theo có khả năng cao là “chó” thì cũng có khả năng cao là “mèo”.
Khác với mô hình ngôn ngữ sử dụng mạng lan truyền tiến và mô hình n-gram, mô hình ngôn ngữ mạng nơ-ron hồi quy không giới hạn việc dự đoán sự xuất một từ chỉ dựa vào n – 1 từ trước đó, mà dựa vào tất cả các từ từ đầu câu tới vị trí đang xét. Điều này được thực hiện nhờ việc trạng thái ẩn trước mỗi từ đều chứa thông tin của toàn bộ các từ xuất hiện trước đó kể từ vị trí đầu câu.
Mô hình ngôn ngữ mạng nơ-ron gắn chặt với các mô hình nhúng từ, tức là xây dựng biểu diễn véc-tơ cho các từ dựa vào một kho ngữ liệu đã cho. Mỗi thành phần của véc-tơ nhúng từ phụ thuộc vào sự xuất hiện của một từ thuộc một tập từ vựng cho trước trong một cửa sổ ngữ cảnh nào đó của từ được nhúng. Chẳng hạn, một mô hình nhúng từ cho một ngôn ngữ có kích thước từ vựng là 20.000 có thể biểu diễn mỗi từ bằng một véc-tơ nhúng 20.000 chiều. Giả sử cần xây dựng véc-tơ nhúng của từ “mèo”, sử dụng mô hình đơn giản nhất là mô hình nhị phân. Khi đó, nếu từ thứ i trong từ vựng có xuất hiện một hoặc nhiều lần gần từ “mèo” trong kho ngữ liệu huấn luyện thì thành phần thứ i của véc-tơ nhúng sẽ bằng 1, nếu không thì thành phần này bằng 0.
Hướng tiếp cận[sửa]
Có hai cách tiếp cận đánh giá mô hình ngôn ngữ. Cách tiếp cận thứ nhất là đánh giá ngoài, dựa trên hiệu quả ứng dụng mô hình ngôn ngữ trong một hệ thống nào đó. Chẳng hạn áp dụng hai mô hình ngôn ngữ cho cùng một hệ thống nhận dạng tiếng nói, mô hình nào cho chất lượng hệ thống nhận dạng tiếng nói tốt hơn là mô hình tốt hơn. Cách tiếp cận này cần thiết nhưng thường rất tốn kém. Cách tiếp cận thứ hai là đánh giá nội tại. Hai mô hình ngôn ngữ có thể so sánh được với nhau nếu chúng được huấn luyện trên cùng một tập ngữ liệu. Sau bước huấn luyện xác định các tham số mô hình, thực hiện đánh giá hai mô hình trên cùng một tập ngữ liệu kiểm tra để so sánh xác suất các chuỗi trong tập kiểm tra theo mô hình ngôn ngữ nào là tốt hơn. Cách làm này cho phép đánh giá nhanh các mô hình ngôn ngữ được xây dựng.
Mô hình ngôn ngữ phản ảnh phân bố xác suất của các chuỗi từ xuất hiện trong kho ngữ liệu huấn luyện. Không có kho ngữ liệu nào phủ được tất cả từ vựng cũng như hiện tượng ngôn ngữ, do vậy việc lựa chọn kho ngữ liệu huấn luyện một mô hình ngôn ngữ cần phù hợp với miền ngôn ngữ của ứng dụng hướng tới.
Lịch sử phát triển[sửa]
Mô hình n-gram được Markov đề xuất đầu tiên năm 1913, sử dụng xích Markov bậc một và bậc hai để dự báo một chữ cái tiếp theo trong tác phẩm Eugene Onegin của Pushkin là nguyên âm hay phụ âm, dựa vào một hoặc hai chữ cái đứng trước. Năm 1948, Shannon áp dụng mô hình n-gram để tính các xấp xỉ cho các chuỗi từ tiếng Anh. Từ công trình của Shannon, mô hình Markov được sử dụng phổ biến để mô hình hoá các chuỗi từ trong những năm 1950. Tuy nhiên, từ những năm 1956 tới 1963, Noam Chomsky có nhiều bài viết cho rằng các quá trình Markov hữu hạn trạng thái mặc dù có thể hữu dụng trong thực nghiệm, nhưng không thể là một mô hình nhận thức đầy đủ về tri thức ngữ pháp của con người. Điều này đã làm cho các phương pháp mô hình hoá thống kê ít được quan tâm trong hàng thập kỉ. Những năm 1970 đánh dấu sự trở lại của mô hình n-gram với sự thành công của việc ứng dụng của mô hình này trong các hệ thống nhận dạng tiếng nói được phát triển một cách độc lập tại IBM (Jelinek và cộng sự) và CMU (Baker).
Từ đầu những năm 2000 trở đi là sự nổi lên của các mô hình ngôn ngữ mạng nơ-ron, đầu tiên là các mô hình sử dụng mạng nơ-ron truyền tiến, đến những năm 2010 là các mô hình sử dụng mạng nơ-ron hồi quy. Đây chính là những mô hình ngôn ngữ có độ chính xác cao nhất. Các tiến bộ liên quan tới mô hình ngôn ngữ mạng nơ-ron đi liền với các mô hình nhúng: biểu diễn từ bằng các véc-tơ.
Kể từ 2013, sự xuất hiện bộ công cụ word2vec của Google đánh dấu giai đoạn phổ biến nhiều mô hình nhúng từ huấn luyện sẵn trên các kho ngữ liệu cực lớn phục vụ cho các ứng dụng xử lí ngôn ngữ với các kiến trúc nổi tiếng như CBOW, Skip-Gram, Glove. Rất nhiều cải tiến cho kiến trúc mạng nơ-ron ứng dụng cho xử lí ngôn ngữ tự nhiên cũng đã được đề xuất trong thời gian này. Từ năm 2018, nhiều mô hình ngôn ngữ mạng nơ-ron huấn luyện sẵn đã được công bố, với những kiến trúc nổi tiếng như BERT, ALBERT, RoBERTa, ELMo, …
Mô hình ngôn ngữ được ứng dụng rộng rãi trong xử lí ngôn ngữ tự nhiên, sử dụng ước lượng xác suất một từ hay một chuỗi từ làm căn cứ xử lý các trường hợp có nhập nhằng.
Mặc dù định nghĩa mô hình ngôn ngữ gắn với xác suất các chuỗi từ, nhưng thực tế hoàn toàn có thể thay chuỗi từ bằng chuỗi các âm vị hay chuỗi các chữ cái. mô hình ngôn ngữ được ứng dụng phổ biến trong các hệ thống nhận dạng tiếng nói, phát hiện và/hoặc sửa lỗi chính tả hay ngữ pháp, dịch tự động...
Trong thực tế, các mô hình n-gram được sử dụng phổ biến nhất là các chuỗi 3; nếu có dữ liệu đủ lớn thì có thể dùng các mô hình chuỗi 4 hoặc 5.
Tài liệu tham khảo[sửa]
- Bengio, Y., Schwenk, H., Senécal, J.-S., Morin, F., and Gauvain, J.-L. (2006). Neural probabilistic language models. In Innovations in Machine Learning, 137–186. Springer.
- Chen, Stanley F. and Joshua Goodman. (1999). An Empirical Study of Smoothing Techniques for Language Modeling. Computer Speech and Language, 13(4): 359-394.
- Jelinek, F. (1990). Self-organized language modeling for speech recognition. In Waibel, A. and Lee, K.-F. (Eds.), Readings in Speech Recognition, 450–506. Morgan Kaufmann. Originally distributed as IBM technical report in 1985.
- Jurafsky, D. and Martin, J. H. (2008). Speech and Language Processing (2nd Ed.). Prentice Hall.
- Manning, C., and Schütze, H. (1999). Foundations of Statistical Natural Language Processing. The MIT Press.