1. Trang chủ
  2. » Công Nghệ Thông Tin

Language modeling là gì?

12 956 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 319,23 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ví dụ, trong ngôn ngữ tiếng Việt, ta sẽ có danh sách các từ sau con, con mèo, kêu, nhảy, chuối, bánh, kem, …: Mục tiêu của chúng ta là xây dựng được mô hình có khả năng tính toán xác suấ

Trang 1

Language Modeling là gì

Language model Trong bài viết này, ta sẽ tìm hiểu thế nào là một mô hình ngôn ngữ

(language modeling) Làm sao để xây dựng được một mô hình ngôn ngữ từ tập các mẫu câu của một ngôn ngữ bất kỳ (Anh, Việt, Nhật, …) Mô hình ngôn ngữ ban đầu được ứng dụng trong nhận dạng tiếng nói (speech recognition)

và đã được áp dụng vào trong những tác vụ khác liên quan trong lĩnh vực Xử

lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) như gán nhãn từ loại (tagging), phân tích cây cú pháp (parsing), dịch máy (machine

translation), …

Tại sao chúng ta cần mô hình ngôn ngữ? Lý do thứ nhất, mô hình này cung cấp cho bạn thông tin về phân bố xác suất tiền nghiệm (prior

distribution) để xét xem câu gồm các từ đầu vào có phù hợp hay không với ngôn ngữ xác định Ví dụ, ta sẽ có xác suất của

vậy mà ta xác định được câu “tối nay được đi chơi rồi vui quá” sẽ phù hợp hơn với ngôn ngữ tiếng Việt hơn câu hai“quá rồi vui đi chơi tối” Thứ hai, các

kĩ thuật liên quan đến ước lượng tham số cho mô hình thông qua tập dữ liệu

Trang 2

huấn luyện cho trước được sử dụng trong các mô hình khác như Hidden Markov Model, Natural Language Parsing Và cuối cùng, đây là một trong những cơ sở kiến thức để các bạn đọc hiểu được các bài viết liên quan đến Long short-term memory (LSTM)

Đặt vấn đề

Giả sử ta có một ngữ liệu (corpus) thu thập được từ các trang web như

vnexpress, baomoi, hay foody Ngữ liệu là tập dữ liệu gồm các câu

(sentence) cho một ngôn ngữ xác định Tiếp theo, ta định nghĩa

(vocabulary) là bộ từ vựng của một ngôn ngữ gồm tập hợp hữu hạn các từ Ví

dụ, trong ngôn ngữ tiếng Việt, ta sẽ có danh sách các từ sau (con, con mèo, kêu, nhảy, chuối, bánh, kem, …):

Mục tiêu của chúng ta là xây dựng được mô hình có khả năng tính toán xác suất của một câu bất kỳ thuộc về một ngôn ngữ cụ thể

Trong đó, là chuỗi các từ tạo nên một câu là chiều dài của

hiệu đặc biệt ( ) Như vậy, ta sẽ có tập hợp các câu như bên dưới

1

2

3

4

5

6

con meo nhay STOP

con meo keu STOP

keu meo con STOP

meo meo meo STOP

STOP

Từ đây, ta đặt là tập hợp tất cả các câu từ bộ từ vựng Đây là tập vô hạn, vì các câu có độ dài bất kỳ

Định nghĩa một cách toán học một xíu Một mô hình ngôn ngữ gồm tập

hữu hạn từ vựng , và một hàm xác suất sao cho:

Trang 3

Như vậy là phân bố xác suất của các câu trong tập

Ta có thể định nghĩa xác suất trên bằng công thức đơn giản như sau

Với (count) là số lần xuất hiện của câu trong ngữ liệu, và là

số lượng các câu trong ngữ liệu huấn luyện

Sentence frequency

Công thức này thật sự đơn giản khi bắt đầu, nhưng ta cần biết được hạn chế của nó khi tử số bằng không Tử số bằng không có nghĩa là câu được tính không nằm trong ngữ liệu huấn luyện Điều này dẫn đến mô hình không có khả năng tổng quát hoá, trong khi mục tiêu của Machine Learning là đi tổng quát hoá để có thể dự đoán được bất kỳ mẫu dữ liệu nào không có trong ngữ liệu Ta sẽ đi khắc phục nhược điểm này ở các phương pháp sẽ được đề cập ở mục tiếp theo

Trang 4

Markov Models

Ý tưởng chính của mô hình Markov là giả định xác suất của đối tượng hiện hành chỉ phụ thuộc vào ( ) đối tượng trước đó của một chuỗi Ngược lại với xác suất đồng thời (chain rule), xác suất của đối tượng hiện hành phải phụ thuộc vào đối tượng trước đó Trigram Language Models được rút ra trực tiếp từ mô hình này, ta sẽ bàn ở mục tiếp theo

Xét một chuỗi các biến ngẫu nhiên Mỗi biến ngẫu nhiên này có thể có các giá trị thuộc tập hữu hạn Mục tiêu của chúng ta là mô hình hoá xác suất của một chuỗi bất kỳ , trong đó và sao

cho như sau

Như vậy, với chuỗi có dạng ta có thể phát sinh ra được các khả năng Rõ ràng ta không thể liệt kê hết bằng tay danh sách các chuỗi này để tính xác suất Thay vì vậy, ta có thể tổng quát hoá thành công thức bên dưới, với tên gọi là mô hình Markov bậc nhất (first-order Markov)

(1.1) là công thức chuẩn suy ra được từ xác suất đồng thời (chain rule), (1.2) suy ra được từ công thức này với giả định rằng đối tượng thứ chỉ phụ thuộc điều kiện vào một đối tượng trước đó là trong chuỗi Nghĩa là

Tương tự, ta có mô hình Markov bậc hai (second-order Markov)

=

Trang 5

Để thuận tiện cho xử lý, ta đặt , trong đó là ký hiệu bắt đầu của một chuỗi/câu

Để tính xác suất xuất hiện của đối tượng có phân bố là

ta thực hiện các bước sau

1 Khởi tạo , và

2 Phát sinh đối tượng từ công thức

3 Nếu thì ta trả về chuỗi Ngược lại, ta gán và quay lại bước 2

Như vậy, ta đã có một mô hình có thể phát sinh được một chuỗi có chiều dài bất kỳ

Trigram Language Models

Unigram

Trong thực tế, ta có nhiều cách để xây dựng mô hình ngôn ngữ, nhưng ta sẽ tập trung vào mô hình cơ bản nhất là Trigram Language Models Mô hình này chính là Markov bậc hai như đã đề cập ở phần trên

Trang 6

=

Định nghĩa cho mô hình này gồm một tập hữu hạn từ vựng , và tham số

đó, được hiểu như xác suất xuất hiện của từ ngay sau bigram Với mọi câu , trong đó sao cho và , xác suất của một câu trong trigram language model sẽ là

và đặt

Các tham số này thoả ràng buộc trigram và bigram

Ta có thể xem ví dụ bên dưới cho câu “Việt nam là đất nước tươi đẹp”

Maximum-Likelihood Estimates

Để ước lượng xác suất cực đại, ta định nghĩa là số lần xuất hiện của trigram trong ngữ liệu, ví dụ là số lần xuất hiện của

chuỗi gồm ba từ chó gặm xương trong ngữ liệu Tương tự, ta định

nghĩa là số lần xuất hiện của bigram trong ngữ liệu Từ hai định nghĩa này, ta đặt

Ví dụ cho câu chó gặm xương ta có

Trang 7

Công thức ước lượng thật đơn giản phải không nào Tuy nhiên, công thức trên vướng phải những vấn đề sau:

1 Do số lượng từ vựng của chúng ta trong thực tế là khá lớn

khoảng từ vựng, như vậy ta sẽ có

vậy, sẽ có nhiều mẫu câu có giá trị xác suất bằng không do

2 Và tham số không xác định khi

Để giải quyết vấn đề này, ta có thể áp dụng một số phương pháp như

Linear interpolation

Ta định nghĩa trigram, bigram, và unigram như sau

Trong đó, ta lưu ý là tổng số các từ xuất hiện trong ngữ liệu (không phải tổng số từ vựng ) Nhờ có tham số , ta luôn có giá trị lớn hơn không

để đảm bảo xác suất của một câu đầu vào khác không

Ý tưởng của phương pháp linear interpolation (nội suy tuyến tính) đó là sử dụng cả ba tham số trên bằng cách định nghĩa trigram estimate như sau

Trong đó, là các tham số thêm vào mô hình, thoả các điều kiện

Trang 8

Chúng còn được gọi là trọng số trung bình (weighted average) cho từng tham

số Để ước lượng giá trị cho tham số , ta có thể áp dụng phương pháp Log-likelihood và bucketing

_ Log-likelihood

Ta chia ngữ liệu ban đầu thành ba tập: training, testing, developing (ví dụ tỷ

lệ tương ứng là 60%, 10%, 20%) Ta định nghĩa là số lần xuất hiện của trigram trong tập developing Ta có công thức log-likelihood cho tập developing này

=

=

Mục tiêu của chúng ta là chọn được các giá trị sao cho giá trị

đạt được cực đại

_ Bucketing

Ta định nghĩa lại các tham số một các đơn giản hơn

Trong đó là tham số duy nhất cần tìm của phương pháp này và được tính nhờ vào maximum log-likelihood

Trang 9

Discounting Methods

Đây là một hướng tiếp cận khác để ước lượng tham số trong thực tế Đầu tiên, ta xét trường hợp bigram

với mọi

Với mọi bigram , ta định nghĩa discounted counts (trừ đi một giá trị nào đó sau khi đếm )

trong đó (thông thường ta đặt ) Ta làm như vậy là do trong quá trình đếm tần suất các câu trong ngữ liệu, ta đã làm cho tần suất của câu trong ngữ liệu quá cao và tần suất của câu không nằm trong ngữ liệu quá thấp Điều này giúp cho mô hình của chúng ta ít bị over-fitting hơn

Từ đây, ta định nghĩa

Ví dụ, sau khi áp dụng công thức trên, ta có bảng tương tự bên dưới ( )

Trang 10

con,cóc 1 0.5 0.5/100

Với mọi ngữ cảnh , ta tính được khối xác suất bị mất (missing probability mass)

Từ bảng ví dụ trên ta có

Lúc này Ta dùng giá trị này để tính giá trị cho

các Như vậy, ta định nghĩa hai tập như sau

Theo ví dụ trên ta có

và là các cặp từ còn lại

Tổng quát hoá cho trường hợp trigram

Với mọi bigram ta định nghĩa đệ quy cho trigram như sau

Trang 11

Trong mô hình này, để ước lượng tham số ta lại áp dụng phương pháp held-out lên tập developing bằng cách cực đại hoá log-likelihood

Ta thực hiện bằng cách lặp qua các giá trị để tính log-likelihood và chọn ra giá trị khiến cho hàm này đạt cực đại

Đánh giá mô hình này như thế nào

Làm thế nào để đánh giá chất lượng của một mô hình ngôn ngữ? Một trong những phương pháp phổ biến đó là perplexity (độ hỗn độn)

Giả sử ta có tập các câu để test (held-out: không nằm trong tập

training) Mỗi câu có là chuỗi các từ , trong đó là độ dài của câu thứ

Ta tính xác suất cho từng thông qua mô hình ngôn ngữ vừa training xong Khi đó, chất lượng của mô hình ngôn ngữ này sẽ được tính như sau

giá trị thu được từ phép tính trên càng cao thì chất lượng của mô hình càng tốt đối với dữ liệu chưa hề thấy trong tập training

Perplexity được định nghĩa như sau

trong đó

Trang 12

Theo công thức trên, nếu giá trị của perplexity càng nhỏ, mô hình ngôn ngữ xây dựng được càng tốt

Trong thực nghiệm của Goodman, ông đưa ra biểu đồ cho thấy perplexity là

74 đối với trigram model, 137 cho bigram model, và 955 cho unigram model

Mô hình này đơn giản chỉ gán xác suất 1/50,000 cho từng từ với bộ từ vựng 50,000 Như vậy trigram model cho ta giá trị đánh giá mô hình ngôn ngữ tốt hơn bigram và unigram

k

Ngày đăng: 30/08/2016, 23:33

TỪ KHÓA LIÊN QUAN

w