Tải bản đầy đủ (.docx) (12 trang)

Language modeling là gì?

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (355.34 KB, 12 trang )

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
câu
nhờ 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 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.

trong đó
. Ta đặt
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
con meo
keu meo
meo meo
STOP
...

là chiều dài của câu,

là một ký hiệu đặc biệt (


). Như


nhay STOP
keu STOP
con STOP
meo STOP

Từ đây, ta đặt
dài bất kỳ.

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ó độ

Đị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
một hàm xác suất

sao cho:

, và




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
câu trong ngữ liệu huấn luyện.

trong ngữ liệu, và

là số lượng các

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.


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
thuộc tập hữu hạn
kỳ


. Mỗi biến ngẫu nhiên này có thể có các giá trị

. 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

, trong đó



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)
=

(1.2)

(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 đó



trong chuỗi. Nghĩa là

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


=
Để 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.
2.

Khởi tạo

3.

Nếu

, và

Phát sinh đối tượng

từ công thức


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.

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

với mỗi trigram

, ta có



hiểu như xác suất xuất hiện của từ
đó

sao cho
model sẽ là

, và tham số

ngay sau bigram


. Trong đó,
. Với mọi câu

này thoả ràng buộc trigram

, trong

, xác suất của một câu trong trigram language

và đặt

Các tham số

được

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
trong ngữ liệu, ví dụ

là số lần xuất hiện của trigram

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
ngữ liệu. Từ hai định nghĩa này, ta đặt

là số lần xuất hiện của bigram

trong

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

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
vậy ta sẽ có khoảng

các khả năng của tham số

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

từ vựng, như

.

Để 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

. Vì


Trong đó, ta lưu ý
Nhờ có tham số
vào khác không.

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

).

, 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

Ý 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


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
developing. Ta có công thức log-likelihood cho tập developing này

trong tập

=
=

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.


Discounting Methods
Đây là một hướng tiếp cận khác để ước lượng tham số
trường hợp bigram

trong thực tế. Đầu tiên, ta xét

với mọi

Với mọi bigram
đếm

, ta định nghĩa discounted counts (trừ đi một giá trị

nào đó sau khi

).

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ị overfitting 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 (

con
con,chó

con,mèo
con,gà
con,bò
con,tàu
con,con
con,cóc
con,heo
con,mồi
con,thoi

48
15
11
10
5
2
1
1
1
1
1

14.5
10.5
9.5
4.5
1.5
0.5
0.5
0.5

0.5
0.5

)

14.5/100
10.5/100
9.5/100
4.5/100
1.5/100
0.5/100
0.5/100
0.5/100
0.5/100
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 định nghĩa hai tập

. Ta dùng giá trị này để tính giá trị cho các
như sau

. Như vậy,


Theo ví dụ trên ta có




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

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ị
ra giá trị

để tính log-likelihood và chọn

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)
câu




là chuỗi các từ

, trong đó

. Mỗi

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 đó

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




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×