Tải bản đầy đủ (.pdf) (62 trang)

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

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 (1.52 MB, 62 trang )

ĐẠ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 <s> ở đầu câu và
</s> ở cuối câu (hai ký hiệu <s> và </s> không thuộc tập V). Ví dụ:

3


<s> the dog barks </s>
<s> the cat laughs </s>
<s> the cat saw the dog </s>
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:
<s> I am Sam </s>
<s> Sam I am </s>
<s> I do not like green eggs and ham </s>
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


1.4.2 Phƣơng pháp làm mịn Good-Turing
Có rất nhiều thuật toán làm mịn tốt hơn nhƣng phức tạp hơn so với phƣơng pháp
làm mịn Add-one. Trong phần này sẽ mô tả phƣơng pháp làm mịn Good-Turing [5]. Ý
tƣởng của các phƣơng pháp làm mịn bằng phƣơng pháp chiết khấu là đếm tần số xuất
hiện của các từ có trong tập huấn luyện để tính xác suất của các từ chƣa xuất hiện.
Thuật toán Good-Turing đƣợc đƣa ra đầu tiên bởi Good [6]. Thuật toán Good-Turing
thực hiện ƣớc lƣợng lại xác suất của những cụm từ (N-gram) có tần suất bằng 0 dựa
trên số các từ có tần số xuất hiện bằng 1.
Thuật toán Good-Turing dựa trên việc tính số Nc, số N-gram xuất hiện c lần hay
gọi là tần số của tần số c (frequency of frequency). Do đó, N0 là số cụm từ xuất hiện 0
lần, N1 là số cụm từ xuất hiện 1 lần, v.v. Tổng quát ta có:
𝑁𝑐 =

1

(1.22)

𝑥:𝑐𝑜𝑢𝑛𝑡 𝑥 =𝑐

Ƣớc lƣợng Good-Turing thay thế bằng một số c* là hàm của Nc+1:
𝑐∗ = 𝑐 + 1

𝑁𝑐+1
𝑁𝑐

(1.23)


Dùng công thức (1.23) để thay thế tần sô MLE trong công thức (1.9). Xét trƣờng hợp
tính xác suất cho N0 (trƣờng hợp cụm từ không xuất hiện trong tập huấn luyện), ta
dùng công thức thay thế sau:

𝑃𝐺𝑇
𝑁0 =

𝑁1
𝑁

(1.24)

Trong đó, N là tổng các từ xuất hiện trong tập huấn luyện.
Theo ƣớc lƣợng Good-Turing, khi tính lại c* phụ thuộc vào Nc+1, công thức
(1.23) cho kết quả 0. Trƣờng hợp này xảy ra thƣờng xuyên khi sử dụng thuật toán. Để
giải quyết vấn đề này chúng ta sử dụng giải pháp có tên là Simple Good-Turing [5’].
Theo thuật toán Simple Good-Turing, sau khi tính các tần suất của tần suất Nc nhƣng
trƣớc khi tính công thức (1.23), tính lại cho các Nc có giá trị bằng 0. Thay thế các giá
trị Nc bằng giá trị hồi quy tuyến tính nhƣ sau:
log 𝑁𝑐 = 𝑎 + 𝑏 ∗ log 𝑐

12

(1.25)


Ngoài ra, các giá trị chiết khấu c* không sử dụng cho mọi giá trị c. Với giá trị c
lớn (c>k, trong đó k là một ngƣỡng) thì có thể chấp nhận đƣợc. Katz [8] đề xuất k = 5.
Định nghĩa lại c*:
𝑐 ∗ = 𝑐 𝑣ớ𝑖 𝑐 > 𝑘


(1.26)

Katz [8] cũng tính lại giá trị c* với trƣờng hợp còn lại:
𝑐∗ =

𝑐+1

𝑁𝑐+1

−𝑐

(𝑘+1)𝑁𝑘+1

𝑁𝑐
𝑁1
(𝑘+1)𝑁 𝑘+1

1−

𝑣ớ𝑖 1 ≤ 𝑐 ≤ 𝑘

(1.27)

𝑁1

Trên thực tế, phƣơng pháp Good-Turing không sử dụng độc lập mà thƣờng
dùng để kết hợp với các phƣơng pháp truy hồi và nội suy.

1.4.3 Phƣơng pháp truy hồi Back-off

Phƣơng pháp này đƣợc đƣa ra bởi Katz [8] khi thực hiện kết hợp phƣơng pháp
truy hồi với phƣơng pháp chiết khấu và đặt tên là Katz backoff. Trong mô hình Katz
backoff, nếu một cụm N-gram có tần số 0 thì xấp xỉ nó bằng giá trị ở cụm (N-1)-gram.
Tiếp tục lùi lại các gram trƣớc đó cho đến khi gặp tần số lớn hơn 0:

−1
𝑃𝑘𝑎𝑡𝑧 𝑤𝑛 𝑤𝑛𝑛−𝑁+1
=

𝑛 −1
𝑃∗ 𝑤𝑛 𝑤𝑛−𝑁+1

𝑛ế𝑢 𝐶 𝑤𝑛𝑛−𝑁+1 > 0
(1.28)

𝛼

𝑤 𝑛𝑛 −1
−𝑁+1

−1
𝑃𝑘𝑎𝑡𝑧 𝑤𝑛 𝑤𝑛𝑛−𝑁+2

𝑛ế𝑢 𝐶

𝑤𝑛𝑛−𝑁+1

=0

Áp dụng phƣơng pháp này cho mô hình 3-gram: gọi x, y, z là các từ theo thứ tự trong

mô hình 3-gram. Ta có xác suất nhƣ sau:
𝑃∗ 𝑧 𝑥𝑦
𝑃𝑘𝑎𝑡𝑧 𝑧 𝑥𝑦 = 𝛼 𝑥, 𝑦 𝑃𝑘𝑎𝑡𝑧 𝑧 𝑦

𝑛ế𝑢 𝐶 𝑥𝑦𝑧 > 0
𝑛ế𝑢 𝐶 𝑥𝑦𝑧 = 0 𝑣à 𝐶 𝑥𝑦 > 0

𝑃∗ 𝑧
𝑃𝑘𝑎𝑡𝑧 𝑧 𝑦 =

(1.29)

𝑡𝑟ườ𝑛𝑔 𝑕ợ𝑝 𝑐ò𝑛 𝑙ạ𝑖

𝑃∗ 𝑧 𝑦
𝑛ế𝑢 𝐶 𝑦𝑧 > 0

𝛼 𝑦 𝑃 𝑧 𝑛ế𝑢 𝐶 𝑦𝑧 = 0

13

(1.30)


Katz kết hợp với phƣơng pháp chiết khấu nhƣ là một phần thuật toán của mình.
Phƣơng pháp Katz Backoff là phƣơng pháp tốt cho việc phân phối lại xác suất của
những cụm từ không xuất hiện.
Một câu hỏi đặt ra là tại sao lại sử dụng chiết khấu và giá trị α trong công thức
(1.29) và (1.30). Vì nếu không chiết khấu và sử dụng α thì tổng xác suất sẽ không bằng
1. Nếu sử dụng xác suất MLE và dùng truy hồi về các gram nhỏ hơn thì xác suất sẽ

đƣợc tính thêm một lƣợng, do đó tổng sẽ không bằng 1. Đây là lý do phải sử dụng kết
hợp với phƣơng pháp chiết khấu. Hệ số α đƣợc sử dụng để đảm bảo tổng xác suất ở
mức dƣới bằng lƣợng để chiết khấu cho mức trên. Xác suất có điều kiện P* của cụm
N-gram là:
𝑃



−1
𝑤𝑛 𝑤𝑛𝑛−𝑁+1

𝑛
𝑐 ∗ (𝑤𝑛−𝑁+1
)
=
𝑛 −1
𝑐(𝑤𝑛−𝑁+1 )

(1.31)

Vì chiết khấu c* nhỏ hơn c nên xác suất P* nhỏ hơn xác suất P.
Sự chính xác của mô hình truy hồi phụ thuộc vào các tham số α. Cách đơn giản
ta chọn α là hằng số. Tuy nhiên rất khó để chọn hằng số sao cho tổng xác suất của tất
cả các cụm N-gram không đổi. Gọi β là hàm biểu diễn tổng xác suất bên trái của hàm
xác suất khối, β là hàm của cụm (N-1)-gram. Hàm β tính bằng 1 trừ đi tổng xác suất
khối giảm tại mức N-gram:
𝑛−1
𝛽 𝑤𝑛−𝑁+1
=1−


𝑛−1
𝑃∗ (𝑤𝑛 |𝑤𝑛−𝑁+1
)

(1.32)

𝑤 𝑛 :𝑐 𝑤 𝑛𝑛 −𝑁 +1 >0

Mỗi cụm từ trong (N-1)-gram sẽ nhận một phần nhỏ trong khối xác suất. Do đó phải
phân bố đều cho các cụm từ ở mức (N-1)-gram, ta có α nhƣ sau:
𝛼

−1
𝑤𝑛𝑛−𝑁+1

=
𝑤 𝑛 :𝑐

=

−1
𝛽(𝑤𝑛𝑛−𝑁+1
)
𝑛−1
𝑤 𝑛𝑛 −𝑁 +1 =0 𝑃𝑘𝑎𝑡𝑧 (𝑤𝑛 |𝑤𝑛−𝑁+2 )
−1
𝑤𝑛 𝑤𝑛𝑛−𝑁+1
)

1−


𝑤 𝑛 :𝑐 𝑤 𝑛𝑛 −𝑁+1 >0 𝑃



1−

𝑤 𝑛 :𝑐 𝑤 𝑛𝑛 −𝑁 +1 >0 𝑃

∗( 𝑤
𝑛

𝑛 −1
𝑤𝑛−𝑁+2

𝑛 −1
Chú ý rằng α là một hàm phụ thuộc vào chuỗi từ có trƣớc 𝑤𝑛−𝑁+1
.

14

(1.33)


1.4.4 Phƣơng pháp nội suy (interpolation)
Các phƣơng pháp chiết khấu nhƣ đã đề cập ở mục 1.4.3 giúp giải quyết đƣợc vấn
đề của các cụm từ có tần suất xuất hiện bằng 0. Giả sử cần phải tính xác suất có điều
kiện P(wn|wn-1wn-2) nhƣng không có cụm từ wn-2wn-1wn trong tập huấn luyện, ta có thể
tính thông qua xác suất 2-gram P(wn|wn-1). Tƣơng tự nếu không tính đƣợc P(wn|wn-1) ta
sử dụng P(wn). Có hai cách để thực hiện điều này là dùng phƣơng pháp truy hồi và

phƣơng pháp nội suy. Với phƣơng pháp truy hồi đơn giản, chỉ thực hiện truy hồi
xuống mức thấp khi mà tần suất của cụm từ đó bằng 0. Ngƣợc lại, phƣơng pháp nội
suy thực hiện kết hợp các xác suất ở các N-gram. Ở ví dụ trên ta tính kết hợp cả 3 mức
1-gram, 2-gram, 3-gram:
𝑃 𝑤𝑛 𝑤𝑛−2 𝑤𝑛−1 = 𝜆1 𝑃 𝑤𝑛 𝑤𝑛−2 𝑤𝑛−1 + 𝜆2 𝑃 𝑤𝑛 𝑤𝑛−1 + 𝜆3 𝑃 𝑤𝑛

(1.34)

với:
𝜆1 + 𝜆2 + 𝜆3 = 1

(1.35)

Phƣơng pháp truy hồi phức tạp hơn thì với mỗi trọng số λ là một hàm phức tạp
dựa vào ngữ cảnh các cụm từ. Từ công thức (1.34) ta có công thức xác suất sau:
𝑛−1
𝑃 𝑤𝑛 𝑤𝑛 −2 𝑤𝑛−1 = 𝜆1 𝑤𝑛−2
𝑃 𝑤𝑛 𝑤𝑛 −2 𝑤𝑛−1
𝑛−1
𝑛 −1
+ 𝜆2 𝑤𝑛−2
𝑃 𝑤𝑛 𝑤𝑛 −1 + 𝜆3 𝑤𝑛−2
𝑃 𝑤𝑛

(1.36)

Để tính đƣợc các tham số λ dựa vào tập dữ liệu đánh giá. Sau khi tính đƣợc xác
suất trên tập đánh giá này, ta có thể tính λ.

1.4.5 Phƣơng pháp chiết khấu tuyệt đối (Absolute discounting)

Phƣơng pháp chiết khấu tuyệt đối (absolute discounting) bao gồm cả nội suy ở
cụm gram mức cao và mức thấp. Tuy nhiên, thay vì nhân với xác suất phân bố hợp lý
−1
cực đại ở mức cao với một tham số 𝜆𝑤 𝑛𝑛 −𝑁
ta trừ xác suất đó đi một lƣợng chiết khấu
+1

D từ các cụm gram mức cao có tần suất lớn hơn 0.

15


−1
𝑃𝑎𝑏𝑠 𝑤𝑛 𝑤𝑛𝑛−𝑁+1
𝑛
max⁡
{𝑐 𝑤𝑛−𝑁+1
− 𝐷, 0}
−1
−1
=
+(1 − 𝜆𝑤 𝑛𝑛 −𝑁
)𝑃𝑎𝑏𝑠 𝑤𝑛 𝑤𝑛𝑛−𝑁+2
(1.37)
𝑛
+1
𝑐(
𝑤
)
𝑤𝑛

𝑛−𝑁+1

Để cho tổng xác suất này bằng 1 thì:
−1
(1 − 𝜆𝑤 𝑛𝑛 −𝑁
)=
+1

𝐷
𝑛
𝑁1+ 𝑤𝑛−𝑁+1

𝑛
𝑤 𝑛 𝑐 𝑤𝑛−𝑁+1

(1.38)

𝑛
Trong đó 𝑁1+ 𝑤𝑛−𝑁+1
đƣợc tính theo công thức:
𝑛
𝑁1+ 𝑤𝑛−𝑁+1


−1
= 𝑤𝑛 : 𝑐 𝑤𝑛𝑛−𝑁+1
𝑤𝑛 > 0

(1.39)


Với N1+ là tổng các từ có tần suất xuất hiện lớn hơn 1 và dấu • có nghĩa là bất kỳ từ
nào.
Chiết khấu D là giá trị trong khoảng từ 0 đến 1 (0 D  1). Theo Ney etal. (1994) chỉ
ra rằng tham số D là ƣớc lƣợng bỏ đi trên tập dữ liệu huấn luyện.
𝐷=

𝑁1
𝑁1 + 2𝑁2

(1.40)

1.4.6 Phƣơng pháp Kneser-Ney
Kneser và Ney [9] đƣa ra phƣơng pháp mở rộng từ phƣơng pháp chiết khấu
tuyệt đối (absolute discounting) bằng cách kết hợp xác suất ở gram mức dƣới và xác
suất ở gram mức trên. Ví dụ khi xây dựng mô hình 2-gram trên tập dữ liệu huấn luyện,
xem xét trƣờng hợp từ Francisco luôn xuất hiện sau từ San. Khi c(Francisco) cao thì
xác suất 1-gram P(Francisco) cũng sẽ cao. Tuy nhiên trong trƣờng hợp c(Francisco)
thấp, và từ Francisco chỉ đứng sau mỗi từ San nhƣng xác suất 2-gram thì lại cao.
Trong phƣơng pháp Kneser-Ney, xác suất của từ không tính dựa trên tần suất xuất hiện
của từ đó mà dựa trên số từ khác nhau mà nó đứng liền kề sau.
Theo Kneser và Ney [9] thì xác suất đƣợc tính nhƣ sau:
−1
𝑃𝐾𝑁 𝑤𝑛 𝑤𝑛𝑛−𝑁+1

max⁡
{𝑐 𝑤𝑛𝑛−𝑁+1 − 𝐷, 0}
=
𝑛
𝑤 𝑛 𝑐( 𝑤𝑛−𝑁+1 )
+


𝐷
𝑛
−1
𝑁1+ 𝑤𝑛−𝑁+1
• 𝑃𝐾𝑁 𝑤𝑛 𝑤𝑛𝑛−𝑁+2
𝑛
𝑐
𝑤
𝑤𝑛
𝑛−𝑁+1

với:
16

(1.41)


×