Neural language model & ngram language model?

  1. Lê Hồng Phương

Em tham khảo một số bài báo có nói rằng neural language model sẽ rất có ích khi chỉ có ít dữ liệu in-domain vì nó giúp vector hóa các 'từ' vào không gian vector liên tục, các từ có nghĩa gần nhau sẽ 'gần' nhau hơn. Ví dụ như "anh" sẽ gần nghĩa với "chị". Do làm được việc này nên sẽ cần ít dữ liệu hơn nên em nghĩ mô hình này khá hay & nên tìm hiểu (em thử nghiệm với cùng 1 tập in-domain thì PPL của ngram là 44 trong khi của RNNLM chỉ là 29) . Tuy nhiên em có khá nhiều thắc mắc như sau ạ:

  • Với neural language modeling, RNNLM của Mikolov khi sơ khai vẫn dùng one hot vector nhưng sau đó lại học được cách biểu diễn từ một cách hợp lý để có được phân bố như em nói ở trên, vậy nó học như thế nào ạ.
  • Neural network cũng học luôn được cách mô hình hóa một câu/chuỗi từ... như thế nào ạ. Như n-gram thì nó sẽ dùng tần suất xuất hiện, và nếu em chỉ cần thêm k lần một đoạn text in-domain mà em muốn vào tập train thì nó sẽ nghiêng phần xác suất thêm về phía in-domain mà em muốn (đây là cách em làm khi thêm dữ liệu học từ các nguồn ngoài). Vậy nếu em dùng cách thay đổi tỉ lệ dữ liệu in-domain này với neural language model thì kết quả sẽ thay đổi như thế nào ạ.
  • Sau năm 2013 có một số kĩ thuật mới của Mikolov như skip-gram, fasttext của FB giúp học được cách vector hóa các từ, vậy nếu áp dụng cách này vào RNNLM thì kết quả liệu có tốt hơn là học trực tiếp từ text như bài báo RNNLM gốc của Mikolov không ạ?
  • Theo em biết thì mạng neural có thể học được nhiều thông tin hơn rất nhiều so với các mô hình khác. Vậy nếu em có tập học gồm có 1 phần text in-domain (giả sử đúng câu cú 100% do có người verify), phần còn lại (gọi là phần 2) là text thu thập được từ các bình luận trên diễn đàn, tạm cho là gần với text in-domain nhưng lại có những câu sai chính tả, cú pháp... tỉ lệ sai này khoảng 1/4 so với số câu đúng. Thì nếu em tăng số lượng phần 2 này có giúp tăng chất lượng của neural language model so với chỉ tập train gồm text in-domain không ạ.

Em chưa biết lập trình neural network nên có những băn khoăn có thể tự kiểm chứng nhưng lại chưa làm được. Em cảm ơn ạ.

Từ khóa: 

giảng viên đại học quốc gia hà nội

Chào em,

Trong post của mình em đặt khá nhiều câu hỏi. Nếu mình trả lời hết thì sẽ khá dài, người đọc chắc cũng ngại, người viết cũng ngại gõ dài. :-) Lẽ ra em nên tách thành nhiều câu hỏi, mỗi câu hỏi chỉ tập trung vào một vấn đề thì mọi người dễ tương tác hơn.

Về câu hỏi đầu tiên của em, RNNLM học biểu diễn vector từ như thế nào. Để trả lời thấu đáo thì có lẽ mình cần dẫn các bài báo công bố liên quan để giải thích kĩ. Nhưng có lẽ đó không phải là mục đích của câu hỏi của em. Mình đoán em chỉ hỏi về ý nghĩa, nguyên lí, giải thích diễn nôm cho dễ hiểu thôi, không biết có đúng không?

Nếu đúng như thế thì mình diễn đạt vắn tắt nguyên lí của phương pháp học em đang hỏi như thế này.

Nói riêng, RNN LM hay các cách học phi hướng dẫn khác thì người ta sử dụng các đặc trưng thông tin ngữ cảnh của một từ để tìm hiểu về từ đó. Nguyên lí chính của phương pháp này là giả thiết phân phối (distributional hypothesis) được ông Zellig Harris đưa ra năm 1954. Giả thiết này nói rằng những từ nào xuất hiện trong các ngữ cảnh giống nhau thì sẽ có những quan hệ hay tính chất giống nhau.

Có vẻ giả thiết này rất hợp lí, phù hợp với quan sát tiên nghiệm của chúng ta. Trong các quan hệ xã hội cũng vậy, có câu nói đại khái là "Hãy cho tôi biết bạn bè anh là những người như thế nào, tôi sẽ cho biết anh là ai". Ý là chỉ cần biết về những người xung quanh một người A, những người mà A hay tương tác với, thì ta có thể suy đoán được A là người như thế nào một các tương đối.

Ví dụ, hai từ "đẹp" và "xinh" xuất hiện ở những câu sau, với những ngữ cảnh tương tự nhau thì chúng có thể giống nhau ở một số khía cạnh cú pháp, ngữ nghĩa nào đó:

  • Cô ấy rất xinh.
  • Hoa rất xinh.
  • Hoa khá đẹp.
  • Hoa khá xinh
  • Uyên khá đẹp
  • Cô ấy khá đẹp.

Phương pháp RNN LM khai thác thông tin ngữ cảnh của nhiều câu viết trong ngôn ngữ theo nguyên lí đó để tìm biểu diễn vector của các từ. Theo đó, mỗi từ sẽ được chiếu (hay nhúng) vào một không gian vector thực nhiều chiều (ví dụ 300 chiều). Hai từ gần giống nhau về nghĩa thì vector biểu diễn chúng gần nhau theo một độ đo khoảng cách nào đó.

Tạm thế nhé. Những ý hỏi khác của em ở trên mình sẽ trả lời dần sau. Cũng đã có một bạn hỏi một câu tương tự về việc huấn luyện với dữ liệu nhiễu (sai chính tả) với một số ý gần giống với ý em hỏi.

Trả lời

Chào em,

Trong post của mình em đặt khá nhiều câu hỏi. Nếu mình trả lời hết thì sẽ khá dài, người đọc chắc cũng ngại, người viết cũng ngại gõ dài. :-) Lẽ ra em nên tách thành nhiều câu hỏi, mỗi câu hỏi chỉ tập trung vào một vấn đề thì mọi người dễ tương tác hơn.

Về câu hỏi đầu tiên của em, RNNLM học biểu diễn vector từ như thế nào. Để trả lời thấu đáo thì có lẽ mình cần dẫn các bài báo công bố liên quan để giải thích kĩ. Nhưng có lẽ đó không phải là mục đích của câu hỏi của em. Mình đoán em chỉ hỏi về ý nghĩa, nguyên lí, giải thích diễn nôm cho dễ hiểu thôi, không biết có đúng không?

Nếu đúng như thế thì mình diễn đạt vắn tắt nguyên lí của phương pháp học em đang hỏi như thế này.

Nói riêng, RNN LM hay các cách học phi hướng dẫn khác thì người ta sử dụng các đặc trưng thông tin ngữ cảnh của một từ để tìm hiểu về từ đó. Nguyên lí chính của phương pháp này là giả thiết phân phối (distributional hypothesis) được ông Zellig Harris đưa ra năm 1954. Giả thiết này nói rằng những từ nào xuất hiện trong các ngữ cảnh giống nhau thì sẽ có những quan hệ hay tính chất giống nhau.

Có vẻ giả thiết này rất hợp lí, phù hợp với quan sát tiên nghiệm của chúng ta. Trong các quan hệ xã hội cũng vậy, có câu nói đại khái là "Hãy cho tôi biết bạn bè anh là những người như thế nào, tôi sẽ cho biết anh là ai". Ý là chỉ cần biết về những người xung quanh một người A, những người mà A hay tương tác với, thì ta có thể suy đoán được A là người như thế nào một các tương đối.

Ví dụ, hai từ "đẹp" và "xinh" xuất hiện ở những câu sau, với những ngữ cảnh tương tự nhau thì chúng có thể giống nhau ở một số khía cạnh cú pháp, ngữ nghĩa nào đó:

  • Cô ấy rất xinh.
  • Hoa rất xinh.
  • Hoa khá đẹp.
  • Hoa khá xinh
  • Uyên khá đẹp
  • Cô ấy khá đẹp.

Phương pháp RNN LM khai thác thông tin ngữ cảnh của nhiều câu viết trong ngôn ngữ theo nguyên lí đó để tìm biểu diễn vector của các từ. Theo đó, mỗi từ sẽ được chiếu (hay nhúng) vào một không gian vector thực nhiều chiều (ví dụ 300 chiều). Hai từ gần giống nhau về nghĩa thì vector biểu diễn chúng gần nhau theo một độ đo khoảng cách nào đó.

Tạm thế nhé. Những ý hỏi khác của em ở trên mình sẽ trả lời dần sau. Cũng đã có một bạn hỏi một câu tương tự về việc huấn luyện với dữ liệu nhiễu (sai chính tả) với một số ý gần giống với ý em hỏi.