1. Trang chủ
  2. » Luận Văn - Báo Cáo

Sử dụng mô hình ngôn ngữ bloom filter trong cải tiến dịch máy thống kê

80 139 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 80
Dung lượng 1,84 MB

Nội dung

Sau khi tìm hiểu sơ lược về mô hình ngônngữ, chúng ta sẽ nghiên cứu kiểu cấu trúc dữ liệu dựa trên Bloom Filter là Bloom Map.Qua các thử nghiệm, chúng tôi chỉ ra sự ưu việt của các mô hì

Trang 1

ĐẠI HỌC THÁI NGUYÊNTRƯỜNG ĐẠI HỌC CNTT & TT

SỬ DỤNG MÔ HÌNH NGÔN NGỮ BLOOM FILTER TRONG CẢI TIẾN DỊCH MÁY THỐNG KÊ

TRẦN TIẾN THÀNH

THÁI NGUYÊN 2015

Trang 2

LỜI CAM ĐOAN

Em - Trần Tiến Thành, học viên lớp Cao học K12E Trường Đại học Công nghệ thông

tin và Truyền thông Thái Nguyên - cam kết Luận văn thạc sỹ khoa học máy tính: “Sử dụng mô hình ngôn ngữ Bloom Filter trong cải tiến dịch máy thống kê” là công trình

nghiên cứu của bản thân em dưới sự hướng dẫn của 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 – Trường Đại học Công nghệ - Đại họcQuốc gia Hà Nội

Các kết quả trong luận văn tốt nghiệp là trung thực, không sao chép

toàn văn của bất kỳ công trình nào khác

Thái Nguyên, ngày 05 tháng 10 năm 2015

TÁC GIẢ

Trần Tiến Thành

Trang 3

LỜI CẢM ƠN

Em 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 tinh, Khoa Công nghệ thông tin - Trường Đại học Công nghệ - Đại họcQuốc gia Hà Nội đã khuyến khích và tận tình hướng dẫn em trong suốt quá trình thực hiệnluận văn Em cũng xin cảm ơn anh Trần Hồng Việt, nghiên cứu sinh Trường Đại học Côngnghệ, giảng viên Trường Đại học Kinh tế kĩ thuật công nghiệp đã hết lòng giúp đỡ emtrong quá trình thực hiện đề tài Nhờ sự quan tâm chỉ bảo và những ý kiến đóng góp quýbáu của thầy và của anh em mới có thể hoàn thành luận văn này

Em xin chân thành cảm ơn tập thể các thầy, cô giáo Trường Đại học Công nghệthông tin và Truyền thông Thái Nguyên đã tận tình giảng dạy truyền đạt cho em nhữngkiến thức, kinh nghiệm quý báu trong suốt những năm học vừa qua

Em cũng xin cảm ơn Sở Giáo dục và Đào tạo Phú Thọ, Trường THPT Minh Đài đãtạo điều kiện về kinh phí và thời gian để em có thể học tập và hoàn thành luận văn

Cuối cùng em xin chân thành cảm ơn gia đình, người thân đã hết lòng giúp đỡ, hỗtrợ về vật chất lẫn tinh thần giúp em yên tâm học tập và nghiên cứu trong suốt quátrình học tập và thực hiện luận văn

Trong khoảng thời gian có hạn, cũng như kiến thức còn nhiều hạn chế luận vănkhông tránh khỏi những sai sót về nội dung cũng như hình thức Kính mong nhậnđược sự góp ý của quý thầy cô, bạn bè và đồng nghiệp

Thái Nguyên, ngày 05 tháng 10 năm 2015

TÁC GIẢ

Trần Tiến Thành

Trang 4

MKN Phương pháp làm mịn Kneser-Ney cải tiến

SMT Dịch máy bằng phương pháp thống kê

Trang 5

DANH MỤC CÁC HÌNH VẼ

Hình 3 Ví dụ về hàm băm Các xâu ký tự được chuyển thành chữ ký đại diện. 35

Hình 4 Cặp khóa ki và giá trị ai của tập S được ánh xạ thông qua hàm

băm vào bảng băm Xuất hiện xung đột giữa 2 phần tử k1 và k3 36

Trang 6

MỤC LỤC

MỞ ĐẦU 9

1 Đặt vấn đề 9

2 Đối tượng và phạm vi nghiên cứu 10

3 Nhiệm vụ nghiên cứu 10

4 Những nội dung nghiên cứu chính 10

NỘI DUNG 11

CHƯƠNG I 11

TỔNG QUAN VỀ DỊCH MÁY THỐNG KÊ DỰA VÀO CỤM TỪ 11

VÀ MÔ HÌNH NGÔN NGỮ 11

1.1 Dịch máy thống kê dựa trên cụm từ 11

1.1.1 Dịch máy và dịch máy thống kê 11

1.1.2 Dịch máy thống kê dựa trên cụm 15

1.2.1 N-gram 17

1.2.2 Mô hình ngôn ngữ 19

1.2.3 Huấn luyện mô hình ngôn ngữ 21

1.2.3.1 Ước lượng cực đại hóa khả năng (Maximium Likelihood Estimation -MLE) 21

1.2.3.2 Các phương pháp làm mịn 22

1.2.3.2.1 Kneser-Ney 24

1.2.3.2.2 Kneser-Ney cải tiến (Modified Kneser-Ney - MKN) 25

1.2.3.2.3 Stupid Backoff 26

1.3 Đánh giá mô hình ngôn ngữ 27

1.3.1 Entropy – Độ đo thông tin 27

1.3.2 Độ hỗn loạn thông tin (Perplexity) 29

1.3.3 Tỉ lệ lỗi (Error rate) 30

1.4 Đánh giá chất lượng dịch tự động dựa trên điểm BLEU 31

CHƯƠNG 2 32

Trang 7

MÔ HÌNH NGÔN NGỮ BLOOM FILTER 32

2.1 Các cấu trúc dữ liệu xác suất (PDS) 33

2.2 Hàm băm (Hash function) 35

2.3 Bloom Filter cơ bản 37

2.4 Mô hình ngôn ngữ Bloom Filter 43

2.4.1 Bloom Filter tần số log (Log-frequency Bloom Filter) 43

2.4.2 Bộ lọc dựa vào chuỗi con (sub-sequence filtering) 45

CHƯƠNG 3 47

ỨNG DỤNG BLOOM FILTER CHO HỆ DỊCH MÁY THỐNG KÊ DỰA VÀO CỤM TỪ 47

3.1 Hệ dịch máy thống kê mã nguồn mở Moses 47

3.2 Tích hợp Mô hình ngôn ngữ Bloom Filter vào hệ thống Moses 48

3.2.1 Xây dựng LM với RandLM và SRILM 48

3.2.1.1 Ngữ liệu 49

3.2.1.2 Thuật toán làm mịn 53

3.2.1.3 Xây dựng LM với SRILM và RandLM 53

3.3 Thử nghiệm và đánh giá 65

KẾT LUẬN 78

TÀI LIỆU THAM KHẢO 79

Trang 8

mà việc tìm kiếm không gian lưu trữ là vô cùng quan trọng trong mô hình ngôn ngữ.

Chính vì thế, luận văn này tôi lựa chọn và thực hiện đề tài: “Sử dụng mô hình ngôn ngữ Bloom Filter trong cải tiến dịch máy thống kê”.

Trong luận văn này, chúng tôi nghiên cứu và tìm hiểu mô hình ngôn ngữ xâydựng dựa trên cấu trúc dữ liệu Bloom Filter Không lưu trữ toàn bộ tập n-gram giốngnhư các mô hình truyền thống, loại mô hình ngôn ngữ này sử dụng một quy trình

mã hóa đặc biệt, cho phép chia sẻ một cách hiệu quả các bit khi lưu trữ thông tin thống

kê n-gram, nhờ đó tiết kiệm đáng kể bộ nhớ Sau khi tìm hiểu sơ lược về mô hình ngônngữ, chúng ta sẽ nghiên cứu kiểu cấu trúc dữ liệu dựa trên Bloom Filter là Bloom Map.Qua các thử nghiệm, chúng tôi chỉ ra sự ưu việt của các mô hình ngôn ngữ dựa trênBloom Filter trên cả phương diện dung lượng và tính hiệu quả khi ứng dụng trong thực tế,

cụ thể ở đây là hệ thống dịch máy bằng phương pháp thống kê với Moses [2]

Trang 9

2 Đối tượng và phạm vi nghiên cứu

- Luận văn này chúng tôi nghiên cứu về n-gram và cách ước lượng, tính toán biễu diễn môhình ngôn ngữ

- Thực hiện thử nghiệm với dữ liệu tiếng Việt

3 Nhiệm vụ nghiên cứu

- Thông qua luận văn, trình bày các hiểu biết cơ bản cần biết về mô hình ngôn ngữ nhưn-gram, các thuật toán làm mịn được sử dụng trong mô hình ngôn ngữ và các thước đo

để đánh giá một mô hình ngôn ngữ

- Luận văn tập trung nghiên cứu về các trúc dữ liệu dựa trên Bloom Filter được sử dụng

cho mô hình ngôn ngữ cụ thể là Log-Frequency Bloom Filter

- Thực hiện thử nghiệm xây dựng mô hình ngôn ngữ trên một ngữ liệu tiếng

Việt và một ngữ liệu tiếng Anh

- Ngoài ra, luận văn còn giới thiệu sơ lược về dịch máy thống kê, thử nghiệm dịch máy

thống kê với hệ thống dịch máy mã nguồn mở Moses sử dụng các mô hình ngôn ngữ xâydựng ở chương 3

4 Những nội dung nghiên cứu chính

Luận văn được trình bày thành 3 phần: MỞ

ĐẦU

NỘI DUNG

Chương 1 - Tổng quan về dịch máy thống kê dựa vào cụm từ và mô hình ngônngữ

Chương 2 - Mô hình ngôn ngữ Bloom Filter

Chương 3 - Ứng dụng Bloom Filter cho hệ dịch máy thống kê dựa vào cụm từKẾT LUẬN

Trang 10

NỘI DUNG CHƯƠNG I

TỔNG QUAN VỀ DỊCH MÁY THỐNG KÊ DỰA VÀO CỤM TỪ

VÀ MÔ HÌNH NGÔN NGỮ

1.1 Dịch máy thống kê dựa trên cụm từ

1.1.1 Dịch máy và dịch máy thống kê

Dịch máy (Machine Translation - MT) xuất hiện từ thập kỷ 50 của thế kỷ trước và

đặc biệt được phát triển mạnh mẽ từ thập kỷ 80 cho đến ngày nay Trên thế giới, hiện tại

có rất nhiều hệ dịch máy thương mại nổi tiếng như Systrans, Kant, … hay những hệdịch máy mở tiêu biểu là hệ dịch của Google, hỗ trợ hàng chục cặp ngôn ngữ phổbiến như Anh-Pháp, Anh-Trung, Anh-Nhật, Hoa-Nhật, … Các cách tiếp cận MT chia làm

bốn lớp chính là dịch trực tiếp (direct), dịch dựa trên luật chuyển đổi (transfer), dịch liên ngữ (interlingua) và dịch dựa vào thống kê (statistical MT) Trước đây, phương pháp dịch

dựa trên luật chuyển đổi và dịch liên ngữ chủ yếu dựa vào cú pháp có thời gian phát triểnkhá dài và hiện vẫn còn được sử dụng phổ biến trong nhiều hệ dịch thương mại Những

hệ dịch máy loại này này đã đạt được kết quả khá tốt với những cặp ngôn ngữ tươngđồng nhau về cú pháp như Anh- Pháp, Anh-Tây Ban Nha, … nhưng còn gặp nhiều hạn chếđối với các cặp ngôn ngữ có cú pháp rất khác nhau như Anh-Trung, Anh-Nhật, …

Dịch Anh-Việt, Việt-Anh ở nước ta cũng vấp phải những khó khăn tương tự do sựkhác biệt về mặt cấu trúc ngữ pháp và tính nhập nhằng của ngữ nghĩa Hệ thống dịchAnh-Việt dựa trên luật chuyển đổi được thương mại hóa đầu tiên ở Việt Nam là EVTran.Nhiều nghiên cứu với yêu cầu tăng chất lượng dịch hiện nay vẫn đang được thực hiện

và có thể thích nghi với đặc điểm của các cặp ngôn ngữ khác nhau

Trang 11

Dịch máy thống kê (SMT) là một p h ư ơ n g p h áp d ị ch m á y , trong đó các bản dịchđược tạo ra trên cơ sở các mô hình thống kê có các tham số được bắt nguồn từ việcphân tích các c ặ p c âu song ngữ Các phương pháp tiếp cận thống kê tương phản vớicác phương pháp tiếp cận dựa trên luật trong dị c h m á y c ũng như với d ị c h m á y d ự a tr ê n

v í d ụ

Những ý tưởng đầu tiên của dịch máy thống kê đã được giới thiệu bởiW

arren W ea v er v ào năm 1949 [ 1 ] , bao gồm cả những ý tưởng của việc áp dụng l ý t h u y ế t

t hô n g t i n c ủa C l a u d e S h a n n o n Dịch máy thống kê được tái giới thiệu vào năm 1991bởi các nhà nghiên cứu làm việc tại T r u n g t âm n gh i ên c ứ u Th o m as J W a t s o n c ủa

những năm gần đây Ngày nay nó là phương pháp dịch máy được nghiên cứu nhiều nhất

Dịch máy bằng phương pháp thống kê (Statistical Machine Translation)

đã chứng tỏ là một hướng tiếp cận đầy đầy tiềm năng bởi những ưu điểm vượt trội so vớicác phương pháp dịch máy dựa trên cú pháp truyền thống qua nhiều thử nghiệm về dịchmáy Thay bằng việc xây dựng các từ điển, các luật chuyển đổi bằng tay, hệ dịch này tựđộng xây dựng các từ điển, các quy luật dựa trên kết quả thống kê có được từ dữ liệu

Vì thế, dịch máy dựa vào thống kê có tính khả chuyển cao, có khả năng áp dụng được chocặp ngôn ngữ bất kỳ Hệ thống SMT được đề xuất lần đầu tiên bởi Brown năm

1990 sử dụng mô hình kênh nhiễu và đã phát triển áp đảo trong ngành MT nhiều năm

trở lại đây Thêm vào đó dịch máy thống kê có những ưu điểm sau: Dịch máy (MT) là vấn

đề quyết định: Cho trước những từ trong ngônngữ nguồn, chúng ta phải quyết định chọn những từ trong ngôn ngữ đích Vì vậy, nó tạocho chúng ta một cảm giác là có thể giải quyết nó bằng định lý quyết định thống kê Điếu

đó dẫn đến cách tiếp cận thống kê được đề xuất

Trang 12

Mối quan hệ giữa đối tượng ngôn ngữ như từ, cụm từ và cấu trúc ngữ phápthường yếu và mơ hồ Để mô hình hóa những phụ thuộc này, chúng ta cần một công thứchóa như đưa ra phân phối xác suất mà nó có thể giải quyết với những vấn đề phụ thuộclẫn nhau

Để thực hiện MT, chúng ta nhất thiết phải kết hợp nhiều nguồn trí thức Trongdịch thống kê, chúng ta dựa vào toán học để thực hiện kết hợp tối ưu của các nguồn tríthức

Trong dịch máy thống kê (SMT), trí thức dịch được học một cách tự động từ dữliệu huấn luyện Với kết quả như vậy, việc phát triển một hệ dịch dựa vào thống kê sẽ rấtnhanh so với hệ dịch dựa vào luật

SMT khá phù hợp với ứng dụng nhúng mà ở đây MT là một phần của ứng dụng lớnhơn Ví dụ, trong dịch các bài nói chuyện, máy nhận dạng tiếng nói sẽ được thêm vào.SMT xem như rất phù hợp với cách tiếp cận này bởi vì nó tận dụng được sức mạnh củangôn ngữ tự nhiện

Việc đưa ra khái niệm “chính xác” của mối quan hệ ngữ pháp, ngữ nghĩa, vănphong là rất khó khăn nếu không nói là không thể Vì vậy, việc hình thức hóa vấn đềnày càng chính xác càng tốt không thể dựa vào sự giằng buộc bởi các luật mô tả chúng.Thay vào đó, trong cách tiếp cận thống kê, các giả định mô hình được kiểm định bằngthực nghiệm dựa vào dữ liệu huấn

Trang 13

cuối cùng ta mới dịch ra câu hoàn chỉnh Đối với dịch liên ngữ, câu vào được phân tích thành một dạng biểu diễn trừu tượng hóa về ngữ nghĩa, được gọi là “interlingua”, sau đó

ta tìm cách xây dựng câu đích phù hợp nhất với “interlingua” này Dịch máy thống kê có

cách tiếp cận hoàn toàn khác, khả năng dịch có được là dựa trên các mô hình thống kêđược huấn luyện từ các ngữ liệu song ngữ Kiến trúc chung của một hệ thống SMTđược thể hiện trong hình 1

Mô hình của Brown (hay còn gọi là mô hình IBM) [7] biểu diễn quá trình dịch bằng

một mô hình kênh nhiễu (noisy channel model) bao gồm ba thành phần: một mô hình dịch (translation model), có nhiệm vụ liên hệ các từ, cụm từ tương ứng của các ngôn ngữ khác nhau; một mô hình ngôn ngữ (LM), đại diện cho ngôn ngữ đích; một bộ giải mã

(decoder), kết hợp mô hình dịch và mô hình ngôn ngữ để thực hiện nhiệm vụ dịch

Ngôn ngữ nguồn ( f )

Tiền xử lý

Bộ giải mã

*

Mô hình ngôn ngữ Pr(e)

Hậu xử lý

Ngôn ngữ đích ( e )

Hình 1: Kiến trúc của một hệ thống SMT

Trang 14

1.1.2 Dịch máy thống kê dựa trên cụm

He is a good doctor

Anh ấy là một bác sỹ giỏi

Hình 2: Minh họa dịch máy thống kê dựa vào cụm

Với dịch dựa trên cụm, một chuỗi các từ liên tiếp (cụm) được dịch sang ngôn ngữđích, với độ dài cụm ngôn ngữ nguồn và đích có thể không giống nhau Hình 2 minh họaphương pháp dịch cụm: câu vào được chia thành một số cụm; từng cụm một được dịchsang ngôn ngữ đích và sau đó các cụm được đảo trật tự theo một cách nào đó rồi ghépvới nhau Kết quả ta thu được câu dịch trong ngôn ngữ đích

Nếu gọi ngôn ngữ nguồn là f và ngôn ngữ đích là e, ta sẽ cố gắng tối

đa hóa xác suất Pr( f | e) với mong muốn có được bản dịch tốt nhất Trong

thực tế tồn tại hơn một bản dịch đúng cho cùng một câu, mục đích của ta là tìm ra câu ngôn ngữ e phù hợp nhất khi cho trước câu ngôn ngữ nguồn f Dịch

dựa vào cụm áp dụng mô hình kênh nhiễu, sử dụng công thức Bayes ta có:

arg maxePr(e| f )  a r g m a x eP r ( f | e ) P r( e ) Pr( f )

Vì Pr(f) là không thay đổi đối với e, bài toán trở thành việc tìm câu e

nhằm cực đại hoá giá trị Pr( f | e) Pr(e) , Pr( f | e) Pr(e) có giá trị cực đại khiPr( f |

e) và Pr(e) cực đại Việc xây dựng mô hình ngôn ngữ cần sử dụng một

ngữ liệu đơn ngữ lớn, trong khi đó mô hình dịch lại cần đến ngữ liệu song ngữ

Trang 15

đảo ví trí cho nhau Quá trình dịch cụm được mô hình

i ei

hóa bởi phân phối xác suất  ( | )

Việc đảo vị trí (reodering) của các cụm đầu ra được mô hình bởi phân phối xác

suất d(ai – bi-1), trong đó ai đại diện cho vị trí bắt đầu của cụm trong câu nguồn được dịch thành cụm thứ i trong câu đích, và bi-1 là ký hiệu chỉ vị trí kết thúc của cụm trong câu nguồn được dịch thành cụm (i-1) trong câu

đích Ở đây chúng ta sử dụng mô hình đảo cụm như sau:

d (ai bi  )   |1|i1 i

Trong đó α là giá trị tham số thích hợp.

Muốn xác định độ dài phù hợp của câu dịch, ta đưa thêm thừa số ω khi sinh ra câutrong ngôn ngữ đích Qua quá trình tìm kiếm câu dịch tối ưu thừa số này sẽ được tối ưu

Độ dài của câu trong ngôn ngữ đích càng dài khi thừa

số này càng lớn hơn 1

Như vậy, câu dịch tốt nhất

hình trong là:

ebes t

được sinh ra từ câu nguồn theo mô

ebest  arg max Pr(e | f )  arg max Pr( f | e)Pr LM (e)length ( e) Với Pr( f | e) được phân tích:

I I I Pr( f | )  ( f |e ) d(  ) 1 e1 i

1

i i ai

bi 1

Trang 16

1.2 Tổng quan về mô hình ngôn ngữ

Mô hình ngôn ngữ là một phân bố xác suất trên các tập văn bản Nói đơn giản,

mô hình ngôn ngữ có thể cho biết xác suất một câu (hoặc cụm từ) thuộc một ngôn ngữ làbao nhiêu

Ví dụ: Khi áp dụng mô hình ngôn ngữ cho tiếng Việt: P[“hôm

qua là ngày nghỉ lễ”] = 0.001

P[“nghỉ lễ là qua hôm ngày”] = 0

Mô hình ngôn ngữ được áp dụng trong rất nhiều lĩnh vực của xử lý ngôn ngữ

tự nhiên như: kiểm lỗi chính tả, dịch máy hay phân đoạn từ Chính vì vậy, nghiên cứu môhình ngôn ngữ chính là tiền đề để nghiên cứu các lĩnh vực tiếp theo

Mô hình ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo

Với n = 3 ta gọi là trigram

Nếu một chuỗi kí tự có rất nhiều n-gram hợp lệ thì ta có thể kết luận chuỗi kí tự

đó là chuỗi hợp lệ Kí hiệu b(y/x) là xác suất mà từ y theo sau từ x Chúng ta có thể ướclượng xác suất này dựa vào Corpus

Xác suất bigram điều kiện là thương số của phép chia số lần xuất hiện cụm “xy”cho số lần xuất hiện từ “x” trong Corpus, được kí hiệu là p(x|y)

Ví dụ về xác suất bigram điều kiện:

Trang 17

P(qua | hôm,): ta có thể hiểu là xác suất để từ “qua” xuất hiện sau từ “hôm” Vềgiá trị này, chúng ta có thể xác định trực tiếp và tự động từ corpus tiếng Anh Giả sử trongcorpus mà ta test, “hôm” xuất hiện 468 lần, còn “hôm qua” xuất hiện 63 lần, thì P(qua |hôm) = 63/468 = 0,13.

Tương tự, ta có định nghĩa tương tự đối với xác suất trigram điều kiện Ví dụ về xác suất trigram điều kiện:

P(là | hôm qua): ta có thể hiểu là xác suất để từ “là” xuất hiện sau dãy hai từ “hôm qua” Giả sử trong corpus mà ta test, “hôm qua là” xuất hiện 9 lần, còn “hôm qua”xuất hiện là 28 lần, như vậy P(là | hôm qua) = 9/28 =

0,32

Ta nhận thấy rằng mỗi từ sẽ liên quan có điều kiện tới toàn bộ các từ trước nó (ta

sẽ gọi đây là lịch sử của sự kiện hoặc từ đó)

Tuy nhiên, việc sử dụng toàn bộ các từ trước đó để đoán nhận từ tiếp theo làkhông thể thực hiện được vì hai nguyên nhân sau Đầu tiên là phương pháp này khôngkhả thi về mặt tính toán do tốn quá nhiều thời gian, tài nguyên hệ thống cho mỗilần dự đoán Hai là, trong rất nhiều trường hợp, chỉ sau khi duyệt vài từ trong lịch sử, ta

đã nhận thấy rằng đó là một câu chưa từng gặp trước đây Bởi vậy kể cả khi đã biếttoàn bộ lịch sử của một từ, xác suất của nó vẫn có thể là không biết Thay vào đó, các môhình ngôn ngữ thường được ước lượng tương đối xác suất dựa trên giả định Markov (hay

mô hình Markov ẩn), rằng từ tiếp theo chỉ chịu ảnh hưởng từ một vài từ trước đó Một

mô hình Markov bậc n giả định rằng chỉ n từ trước đó có liên hệ ngữ cảnh với từđang cần xác định Việt quyết định bao nhiêu từ trước đó mà LM quan tâm được gọi là

bậc n (order) của LM, và thường được gọi là 1-gram (unigram), 2-gram (bigram), 3- gram (trigram), 4-gram (fourgram) tương ứng với các mô hình Markov bậc một, hai, ba, bốn Ví

dụ, nếu chúng ta muốn ước

Trang 18

Một cách tổng quát, gọi w i là một n-gram chiều dài n kết thúc bằng

từ wi Khi đó để ước lượng xác xuất n-gram cho một chuỗi chiều dài N ta sử

có thể nhất (xác suất cao nhất)

Ví dụ: dãy các từ “hôm qua là ngày nghỉ lễ” và “tôi vẫn phải đi làm” là có thể hiểuđược (có thể tồn tại) ngược lại dãy “nghỉ lễ là qua hôm ngày” và “đi tôi vẫn làm phải” làkhông thể hiểu được (không tồn tại) Về ngôn ngữ học, theo truyền thống chúng ta chiacác dãy các từ này thành hai loại: đúng ngữ pháp và sai ngữ pháp nhưng trong dịch máychúng ta luôn luôn phải chọn giữa hai câu đúng ngữ pháp

Ví dụ: Cách dịch nào là tốt hơn trong (A) và (B)

(A) Hôm qua là ngày nghỉ lễ nhưng tôi vẫn phải đi làm (B) Ngày

hôm qua là nghỉ lễ nhưng tôi vẫn phải đi làm

Trang 19

Mặt khác, trong nhận dạng tiếng nói người ta sử dụng khá nhiều xác suất theokinh nghiệm gán cho dãy các từ Ví dụ: “nghỉ lễ là” đúng hơn là “là nghỉ lễ”.

Phương pháp sử dụng ở đây là dựa vào bigram hoặc trigram để chuyển chúngthành xác suất để so sánh

Để gán xác suất cho toàn bộ một câu, ta nhân xác suất điều kiện n-gram mà nóbao gồm Vì vậy, một câu tốt (càng đúng ngữ pháp) là câu mà có nhiều dãy n-gram Ví dụtrong bigram ta có:

P(Hôm qua là ngày nghỉ lễ) =

P(Hôm | đầu câu) *

Như vậy, ta có thể coi toàn bộ các chủ đề về gán xác suất cho một câu

được gọi là mô hình ngôn ngữ

Mô hình ngôn ngữ không chỉ có ích cho thứ tự các từ mà còn có ích cho việcchọn nghĩa giữa các cách dịch khác nhau

Ví dụ: Cho 2 câu (A) và (B)

(A) Áo trắng em đến trường, cùng đàn chim ca rộn ràng (B) Em

đến trường áo trắng, cùng đàn chim ca rộn ràng

Quyết định này dịch từ tiếng Anh sang tiếng Việt, cụm từ “Áo trắng em

đến trường” dùng để chỉ nữ sinh còn “Em đến trường áo trắng” lại dùng để

Trang 20

chỉ trang phục Nếu trong corpus của chúng ta, giả sử trigram “Áo trắng em đến trường”xuất hiện 10 lần, trong khi “Em đến trường áo trắng” không xuất hiện (hoặc khá nhỏ sovới “Áo trắng em đến trường”) thì (A) là câu tốt hơn (được chọn) Điều đó có nghĩa là ta

có thể giả quyết vấn đề nhập nhằng ngữ nghĩa chỉ dựa vào ngôn ngữ đích

1.2.3 Huấn luyện mô hình ngôn ngữ

Khi huấn luyện (xây dựng) một mô hình ngôn ngữ ta cần chuẩn bị dữ liệu là một

ngữ liệu đơn ngữ (corpus) (kích thước dữ liệu huấn luyện lớn sẽ cho mô hình ngôn ngữ

tốt) và một bộ ước lượng thống kê có nhiệm vụ mô hình hóa lượng xác suất của ngữliệu Các bộ ước lượng được mà LM sử dụng đều cần đến tần suất của các n-gram, vì vậy

ta cần đếm tần suất xuất hiện của các n-gram từ 1-gram cho đến số bậc mô hình đang

nào đó sẽ xuất hiện tiếp theo đơn giản là tần suất nó xuất hiện trong ngữ liệu

Phương pháp này được gọi như vậy bởi vì nó cực đại hóa giá trị đầu ra để mô hình hóangữ liệu huấn luyện Ví dụ, trong ngữ liệu Brown1, một ngữ liệu với một triệu từ, từ khóa

”Chinese” xuất hiện 400 lần Vậy thì xác suất mà một

mô hình ngôn ngữ dùng MLE sẽ gán cho unigram ”Chinese” là

PrMLE (Chinese)  400  0.0004

1000000

Trang 21

Nghĩa là một từ nào đó có tần suất xuất hiện thường xuyên sau lịch sử có bậc

n-1 Để minh họa, ta tiếp tục ví dụ trên, xác suất bigram ”Chinese food” xuất hiện là sốlần từ ”food” xuất hiện sau từ ”Chinese” chia cho c(Chinese) = 400 Với ngữ liệu Brown,cụm từ ”Chinese food” xuất hiện 120

lần, ta có:

PrMLE(food|Chinese) = 0.3 1.2.3.2 Các phương pháp làm mịn

MLE là một phương pháp dễ hiểu, dễ sử dụng để ước lượng xác suất cho môhình, tuy nhiên trong thực tế ta gặp phải vấn đề dữ liệu thưa (data sparseness problem).Nghĩa là tập ngữ liệu dùng để xây dựng LM dù lớn cũng chỉ là tập hữu hạn các câu trong

vô số câu có thể của một ngôn ngữ tự nhiên Do đó một LM chỉ sử dụng MLE sẽ gán xácsuất bằng 0 cho nhiều n-gram tốt Để hạn chế vấn đề này, người ta thường sử dụng cácphương pháp ước lượng xác suất thống kê phức tạp hơn thay cho MLE Những phươngpháp này được gọi là làm mịn (smoothing) hay trừ hao (discounting), khi mà một phần xácsuất từ các sự kiện trong mô hình sẽ được dành cho những sự kiện chưa từng xuất hiện.Việc lấy từ cái gì và trừ hao như thế nào là một đề tài vẫn đang

được nghiên cứu nhiều Ví dụ, cách cổ điển nhất của làm mịn là phương pháp

Add-one smoothing [13], trong phương pháp này, ta thêm một lượng

kết quả đếm số lần xuất hiện của tất cả từ vựng trong ngữ liệu

Trang 22

(n-2)-gram, cứ tiếp tục như vậy cho đến khi tính được xác suất của n-gram.

Quá trình này được gọi là backoff và được định nghĩa như sau:

sử,  là tham số backoff Khi số lượng từ vựng đủ lớn, chúng ta có thể sẽ cần gán xác

suất bằng 0 cho một số từ ngoài từ điển (out of vocabulary – OOV) khi ở mức unigram.

Ví dụ như khi ta có một cuốn từ điển chuyên ngành và không muốn chia sẻ lượng xácsuất của các từ vựng đó (các danh từ chung, các số thực đặc biệt, .) cho các OOV.Một cách khác là chúng ta làm mịn LM và dành một lượng xác suất nhỏ gán cho các OOVkhi ở mức unigram

Interpolation là phương pháp kết hợp thông tin thống kê n-gram qua tất cả các bậc của LM Nếu bậc của LM là n thì công thức đệ quy interpolation

như sau:

n PrI (wi | i n 1 PrLM (wi |)   )  (1  

Với  là trọng số quyết định bậc của LM có ảnh hưởng lớn nhất đến giá trị đầu

ra Tổng trọng số  được sử dụng cho tất cả các bậc n-gram bằng một Có nhiều cách

để xác định giá trị cho các trọng số  này, đối với phương pháp interpolation đơngiản thì các giá trị  này giảm theo số bậc n- gram Tuy nhiên thông thường chúng sẽ tínhtoán theo điều kiện ngữ cảnh cụ thể, nghĩa là theo tần suất của các bậc n-gram trong lịch

sử Các trọng số này không được tính toán từ dữ liệu huấn luyện, mà sử dụng tập dữ liệu

held-out riêng biệt – tập này chỉ được dùng để huấn luyện các tham số, mà trong

trường hợp này là các giá trị  Cần thấy rằng sự khác biệt cơ bản giữa hai phươngpháp này là interpolation sử dụng thông tin từ các bậc thấp hơn ngay

Trang 23

cả khi dữ liệu xác suất của n-gram cần tính đã khác 0; trong khi đó backoff lại chỉ tìm kiếm đến dữ liệu khác 0 gần nhất.

Những tiểu mục tiếp theo sẽ trình bày về một số phương pháp làm mịn phổ biến

nhất hiện nay, như Kneser-Ney[6] hay Stupid backoff của Google[5].

1.2.3.2.1 Kneser-Ney

Kneser-Ney (KN) là thuật toán làm mịn công bố năm 1995 [6], được phát triển bởi

Reinhard Kneser và Hermann Ney Trong thuật toán KN, xác suất của một unigram không

tỉ lệ thuận với tần suất xuất hiện của nó mà với số tiền tố mà nó có

Có thể minh họa như sau, bigram “San Francisco” rất phổ biến trong cuốn sách

“Lịch sử thành phố San Francisco” Với tần suất bigram này cao như vậy thì nếu sửdụng phương pháp đơn giản, tần suất của từng từ “San” và “Francisco” cũng sẽ phải rất

cao Tuy nhiên trong thuật toán KN thì xác suất Pr(Francisco) lại có thể là rất thấp, vì từ

“Francisco” thường chỉ đứng sau từ “San” Do các LM bậc thấp thường được sử dụng choviệc tính xác suất backoff của các LM bậc cao hơn, nên thuật toán KN muốn tận dụng sựlãng phí lượng xác suất này trong các thuật toán trước đó để dành cho các sự kiện có khảnăng xảy ra lớn hơn

Trước hết chúng ta định nghĩa số lượng tiền tố của một từ như sau:

N1( wi) |

wi1

: c(wi1 w)  0|

Thuật ngữ N1 để chỉ số lượng các từ xuất hiện một lần hoặc nhiều

hơn và ký tự “ o ” chỉ một từ bất kỳ nào đó Thay vì sử dụng tần suất như trong

MLE, tần suất thô của mỗi từ được thay thế bằng số lượng từ (khác nhau)

đứng trước từ đó Xác suất của unigram trong thuật toán KN được tính là:

Pr ( )  N 1 wi

i ' N1 ( wi ')

Trang 24

Tức là bằng số lượng tiền tố của từ wi chia cho tổng số tiền tố của tất cả các

unigram trong ngữ liệu

Với các bậc cao hơn, xác suất này được tính như sau:

i1 )  N 1 (wi  n  2 )

Và mẫu số là tổng số lượng tiền tố của tất cả các n-gram có cùng chiều

dài w i Mô hình đầy đủ của thuật toán KN được nội suy và có dạng như

sau:

i1 max c ( i )

D ,0 )  in1

)  0|

Là số lượng hậu tố (khác nhau) xuất hiện sau từ w i 1 ; và D là tham số

trừ hao

1.2.3.2.2 Kneser-Ney cải tiến (Modified Kneser-Ney - MKN)

Thuật toán làm mịn Kneser-Ney cải tiến do Chen và Goodman nghiên cứu, công bố năm 1999 [11], được phát triển từ thuật toán KN Thuật toán KN dùng phương pháp trừ hao tuyệt đối (absolutely discounting), trừ đi một giá trị D duy nhất, 0 < D < 1, cho mọi

kết quả đếm khác 0 Thuật toán MKN nâng cao hiệu quả của KN bằng cách sử dụng các giátrị trừ hao khác nhau trong những trường hợp khác nhau, dựa trên giá trị đếm của mỗi n-

Trang 25

i ' i ' n1

Trang 26

 D2 if c  2

Và:

D3 c  3

  n1 n1  2n2

D  1  2 n 2

n1 n3 D2  2  3 n2 D3  3  4 n 4

n3 Với ni là tổng số n-gram có kết quả đếm là i của mô hình bậc n đang

được nội suy Tổng tất cả các phân phối phải bằng một, do vậy:

i1 i{1, 2 , 3  } Di N i wi  n 1

 ( ) 

in1 i ' wi ' n1 c( ) Trong đó N 2 và N 3 tương ứng đại diện cho số sự kiện có kết quả đếm là hai và

ba hoặc nhiều hơn ba

1.2.3.2.3 Stupid Backoff

Thuật toán Kneser-Ney và Kneser-Ney cải tiến ở trên tuy hiệu quả trong thực

tế nhưng việc tính toán lại khá phức tạp, khối lượng tính toán sẽ trở nên rất lớn khi dữliệu nhiều, chẳng hạn như ngữ liệu n-gram Trillion Words của Google

Thay vì sử dụng thuật toán KN và MKN, Google sử dụng một thuật toán làmmịn đơn giản hơn là Stupid Backoff Thuật toán này sử dụng tần suất tương đối của các n-gram một cách trực tiếp như sau:

Trang 27

Với N là cỡ của ngữ liệu huấn luyện Brants[5] đã tuyên bố rằng khi có lượng dữ

liệu đủ lớn, thì hiệu quả của Stupid Backoff xấp xỉ làm mịn MKN Lý do ở đây ký hiệu S được sử dụng thay cho P là để nhấn mạnh rằng phương pháp này trả lại điểm số tương

đối chứ không phải là xác suất được chuẩn

hóa

1.3 Đánh giá mô hình ngôn ngữ

Để xây dựng được một mô hình ngôn ngữ hiệu quả, chúng ta phải có cách đểđánh giá chúng Dưới đây là một số phương pháp phổ biến để đánh giá một mô hìnhngôn ngữ:

- Entropy – Độ đo thông tin

- Perplexity – Độ hỗn loạn thông tin

- Error rate – Tỉ lệ lỗi

1.3.1 Entropy – Độ đo thông tin

Entropy là thước đo thông tin, có giá trị rất lớn trong xử lý ngôn ngữ Nó thểhiện mức độ thông tin trong ngữ pháp, thể hiện sự phù hợp của một câu với ngônngữ, và dự đoán được từ tiếp theo trong cụm n-gram Entropy của một biến ngẫu nhiên

X được tính theo công thức:

H ( X )   p(x)log

Xét các câu gồm hữu hạn m từ W  ( , , , ) trong ngôn ngữ L.

Ta có công thức tính entropy như sau:

w1 w2 wm

H( , , , )    p( , , , )log w1 w2 p( , , , )

w1 w2 wm

2 w1 w2 wm

Trang 28

wm wmn1

wm1

Công thức trên đã được biến đổi qua nhiều bước với các xấp xỉ gần đúng, do vậy

để tăng tính chính xác khi sử dụng độ đo entropy thì câu kiểm tra cần phải đủ dài vàtổng quát (phân tán rộng) để tránh tập trung vào các xác suất lớn (chỉ chứa các cụm thôngdụng)

Các bước biến đổi gần đúng công thức trên khiến giá trị H(L) tình theo công thứccuối cùng sẽ lớn hơn giá trị H(L) gốc Do vậy, khi tính H(L) của

Trang 29

các mô hình ngôn ngữ khác nhau trên ngôn ngữ L, mô hình nào cho H(L) nhỏ hơn thì mô hình ngôn ngữ đó thể hiện chính xác ngôn ngữ L hơn

1.3.2 Độ hỗn loạn thông tin (Perplexity)

LM sau khi được huấn luyện cần phải đánh giá chất lượng của mô hình Cách đánhgiá chính xác nhất một mô hình ngôn ngữ là kiểm tra trong thực tế Ví dụ trong nhận dạngtiếng nói, chúng ta có thể so sánh hiệu quả của 2 mô hình ngôn ngữ bằng cách chạy bộnhận dạng ngôn ngữ 2 lần, mỗi lần với 1 mô hình và xem mô hình nào cho kết quả chínhxác hơn Nhưng cách này lại rất tốn thời gian, vì thế, chúng ta cần 1 công cụ mà có thể

nhanh chóng đánh giá hiệu quả của một mô hình, Perplexity (PP) [3] là thước đo thường

được dùng cho công việc này

Perplexity thực chất là một dạng biến đổi của entropy chéo (cross entropy)

của mô hình Entropy chéo là cận trên của entropy Entropy là một khái niệm cơ bản

trong Thuyết thông tin, đánh giá lượng thông tin của dữ liệu bằng độ đo sự không chắc chắn Nếu một biến ngẫu nhiên x tồn tại trong khoảng X của thông tin đang được đánh giá với phân phối xác suất là p, thì

khi đó entropy của x được định nghĩa là:

H (x)   p log p

x X

Ví dụ khi tung một đồng xu, x chỉ có thể là mặt ngửa hoặc mặt sấp và

xác suất p=0.5 trong cả hai trường hợp Nhưng khi tung một hột xúc xắc 6 mặt,

khoảng giá trị có thể của kết quả rộng hơn, và các xác suất là p  1 Vì hành

6động tung xúc xắc có độ đo không chắc chắn lớn hơn, nên entropy của nó cũng cao hơn hành động tung đồng xu

Entropy chéo của một mô hình là độ đo thông tin giữa hai phân phối xác suất Đối

với một phân phối xác suất q nào đó mà chúng ta sử dụng để mô hình hóa phân phối xác suất p, entropy chéo được định nghĩa là:

Trang 30

Định lý Shannon-McMillan-Breiman [3] chỉ ra rằng đối với tất cả entropy và

entropy chéo chúng ta đều có thể bỏ đi phần p nếu chuỗi giá trị x đủ

dài Nếu chúng ta cần tính entropy cho từng từ thì chỉ việc chia cho tổng số từ:

H ( p, q)   1 x long 2 q( x)   n 1long 2 xn q( )

Perplexity được định nghĩa là PP  H (

p,q)

Do entropy chéo là cận trên

của entropy, H ( p, q)  H ( p) , chúng ta sử dụng entropy chéo trong Perplexity để

không bao giờ đánh giá thấp entropy thực sự của mô hình Perplexity của một mô hìnhđược đánh giá trên tập kiểm tra Trong thực tế, Perplexity là thước đo đầu tiên để đánhgiá một mô hình ngôn ngữ, và có thể được coi là hàm của cả ngôn ngữ và mô hình Trênphương diện là hàm của mô hình, nó đánh giá một mô hình mô phỏng ngôn ngữ chính xácđến mức độ nào Còn trên phương diện là hàm của ngôn ngữ, nó đo tính phức tạp củangôn ngữ

1.3.3 Tỉ lệ lỗi (Error rate)

Người ta thường sử dụng độ đo entropy và perplexity để so sánh độ chínhxác của các mô hình ngôn ngữ khi xây dựng một mô hình ngôn ngữ tổng quát Trong cácbài toán cụ thể, người ta sử dụng tỉ lệ lỗi để so sánh độ chính xác của các mô hình ngônngữ

Soát lỗi chính tả: xét tỉ lệ giữa số lỗi phát hiện sai hoặc không phát hiện

được trên tổng số lỗi có trong văn bản

Phân đoạn từ: xét tỉ lệ giữa từ phân đoạn sai trên tổng số từ có trong văn

bản

Bỏ dấu tự động: xét tỉ lệ giữa số từ bị bỏ dấu nhầm trên tổng số từ có

trong văn bản

Trang 31

Tỉ lệ lỗi thấp chứng tỏ mô hình ngôn ngữ hiệu quả Việc sử dụng tỉ lệ lỗi để đánhgiá đưa lại kết quả chính xác nhất khi muốn chọn lựa mô hình ngôn ngữ phù hợp để giảiquyết bài toán cụ thể Tỉ lệ lỗi thường tỉ lệ thuận với giá trị entropy nhưng đôi khi mức độtăng/giảm của tỉ lệ lỗi và entropy không đều.

1.4 Đánh giá chất lượng dịch tự động dựa trên điểm BLEU

Muốn đánh giá chất lượng các hệ thống dịch có thể sử dụng phương pháp thủcông bởi chuyên gia hoặc sử dụng phương pháp đánh giá tự động Quá trình đánh giá thủcông cho điểm cho các câu dịch dựa trên sự trôi chảy và chính xác của câu dịch Có thểkhẳng định rằng đây là phương pháp đánh giá có độ chính xác nhất Tuy nhiên, công việcđánh giá thủ công này lại tiêu tốn quá nhiều thời gian, đặc biệt khi cần so sánh nhiều môhình ngôn ngữ, nhiều hệ thống khác nhau Công bằng mà nói, mỗi phương pháp đều có

ưu nhược điểm riêng Mặc dù đánh giá tự động có thể không phản ánh được hết mọi khíacạnh của chất lượng dịch, nhưng nó có thể nhanh chóng cho ta biết: chất lượng của hệdịch ở mức nào, có tăng hay không sau khi được cải tiến hoặc thay đổi một vài tham sốnào đó Thực tế, hai phương pháp này được sử dụng song song, và điểm BLEU là độ đochất lượng hệ dịch phổ biến nhất hiện nay, được đề xuất bởi Papineni năm 2002

Đối chiếu kết quả dịch với tài liệu dịch tham khảo và tài liệu nguồn là cách tínhđiểm của BLEU Dù [9] chỉ ra rằng điểm BLEU thường không thực sự tương quan với đánhgiá thủ công bằng chuyên gia với các loại hệ thống khác nhau, thế nhưng vẫn có thể kháchính xác để đánh giá trên cùng một hệ thống, hoặc những hệ thống tương tự nhau Vìthế, trong khóa luận này, tôi sử dụng điểm BLEU làm thước đo chất lượng dịch và từ đó

so sánh các loại mô hình ngôn ngữ khác nhau

Trang 32

CHƯƠNG 2

MÔ HÌNH NGÔN NGỮ BLOOM FILTER

Mô hình ngôn ngữ kể từ khi xuất hiện đến nay đã có những bước phát triển đáng

kể cùng với các thuật toán làm mịn ngày càng tốt hơn [5] Tuy nhiên cũng còn nhiềuthách thức mà LM phải đối mặt Đó là làm thế nào tạo ra được mô hình đại diện hiệuquả ngôn ngữ tự nhiên, bằng cách sử dụng ngữ liệu lớn, tăng bậc mô hình n-gram và giảm

độ phức tạp trong tính toán và sử dụng ít bộ nhớ Một tập ngữ liệu như của Google làquá lớn (24GB khi đã nén), bộ nhớ RAM thông thường không thế chứa vừa Điều này làđộng lực thúc đẩy các nhà nghiên cứu cần tìm ra một giải pháp thay thế cách biểu diễn n-gram truyền thống, nếu vẫn muốn tận dụng ưu thế của các tập ngữ liệu lớn mà không cần

sử dụng các phương thức tốn kém truyền thống như hệ thống siêu máy tính trong môitrường điện toán phân tán của Google

Bloom Fillter (BF) [4] là một loại cấu trúc dữ liệu có khả năng đáp ứng phần nào những yêu cầu nêu trên, đó chính là, sử dụng một dạng mã hóa có mất mát thông tin

(lossy encoding), ý tưởng của BF là thay vì lưu trữ tất cả các n-gram, chúng ta chỉ lưu

tập đại diện mang tính ngẫu nhiên của nó Mã hóa có mất mát thông tin là một loại

kỹ thuật phổ biến thường được dùng trong lưu trữ đa phương tiện như chuẩn nén JPEGcho hình ảnh, MP3 cho âm thanh hay MPEG cho nén video Trong đó mặc dù một phần

dữ liệu bị mất đi khi mã hóa, nhưng đại diện mới được tạo thành sau khi được giải

mã vẫn chứa đựng khá đầy đủ các thông tin hữu ích

Để trả lời cho câu hỏi “Liệu phần tử x có thuộc tập S hay không?” mà một cấu trúc

dữ liệu xác suất Bloom Filter đã được xây dựng Nếu câu trả lời là có thì ta gọi đó là một

HIT, còn ngược lại thì ta gọi là MISS Khi đối tượng được truy vấn không thuộc tập S ( x  S ), nhưng lại HIT có hai loại lỗi có thể xảy ra Còn false negative thì trái ngược với false positive, tức là một đối

Trang 33

tượng x  S bị kết luận là MISS trong khi thực tế thì hoàn toàn ngược lại Cấu

trúc dữ liệu thống kê nào chỉ gặp một trong hai loại lỗi này được gọi là có lỗi một phía (one-side error) và lỗi hai phía trong trường hợp còn lại BF là cấu trúc dữ liệu chỉ có lỗi

một phía

Cấu trúc dữ liệu này yêu cầu dung lượng lưu trữ thấp hơn khá nhiều ngưỡng dướicủa thuyết Entropy nhưng lại có tỉ lệ lỗi khá thấp và có thể xác định được Bloom Filternguyên bản không hỗ trợ lưu trữ cả cặp khóa-giá trị Tuy nhiên Talbot và Osborne đã đềxuất những cách cho phép tích hợp giá trị vào trong mô hình ngôn ngữ Bloom Filter

2.1 Các cấu trúc dữ liệu xác suất (PDS)

Lưu trữ và xử lý dữ liệu là một bước quan trọng trong khâu thiết kế của mộtchương trình Cấu trúc dữ liệu sử dụng trong chương trình được đánh giá và lựa chọncẩn trọng có ý nghĩa rất quan trọng: tiết kiệm tài nguyên, tăng đáng kể hiệu năng củachương trình, dễ dàng bảo trì hệ thống trong tương lai nếu được lựa chọn đúng; ngượclại, khả năng vận hành của hệ thống có thể bị hạn chế do khối lượng tính toán quá lớnhay hoạt động thiếu ổn định, thậm chí không hoạt động được với những tập dữ liệu lớnnếu sử dụng một cấu trúc dữ liệu tồi

Hiện nay tuỳ thuộc vào mục đích sử dụng khác nhau mà tồn tại nhiều dạng cấutrúc dữ liệu khác nhau Một vài cấu trúc dữ liệu chỉ là những kho chứa dữ liệu thôngthường, còn một số khác lại được dùng cho những ứng dụng đặc biệt và chỉ phát huyđược hiệu năng tối đa trong điều kiện nhất định

Thực tế nhiều trường hợp, khi tập ngữ liệu quá lớn đến mức hiện tại không mộtsiêu máy tính nào có khả năng quản lý được và cũng chưa có cấu trúc dữ liệu chuẩn nào

có thể lưu trữ được nó Ví dụ như, trong lĩnh vực dịch máy thống kê, năm 2006, Google

đã khiến cả cộng đồng ngành NLP phải kinh ngạc khi họ công bố một ngữ liệu Ngramkhổng lồ Với khoảng 3 tỉ từ,

Trang 34

chiếm 24 GB bộ nhớ khi đã nén, tập ngữ liệu như vậy là quá lớn, thậm chí ngay cả với hệthống bộ nhớ của những siêu máy tính Rõ ràng là ta có thể lưu trữ nó trong ổ đĩa cứng,nhưng ví dụ như với dịch máy thống kê (SMT), một mô hình ngôn ngữ có thể được truyvấn hàng trăm nghìn lần mỗi câu, vậy nên hiển nhiên đây không phải là một phương ánkhả thi Chúng ta cần tìm ra một hướng tiếp cận khác cho những tập ngữ liệu khổng lồnhư vậy.

Có một cách tiếp cận khả thi hơn là thay vì tìm cách biểu diễn đầy đủ một tập ngữ

liệu lớn, không mất mát (lossless), ta chấp nhận sử dụng một tập đại diện có mất mát (lossy) của nó Nghĩa là bằng cách sử dụng một số kỹ thuật nào đó:

i) Một lượng dữ liệu mà ta kiểm soát được bị mất đi.

ii) Sự toàn vẹn dữ liệu bị tổn hại gây ra bởi lượng dữ liệu đã mất có thể đượccoi là nhỏ khi so sánh với không gian lưu trữ đáng kể ta tiết kiệm được Đồng thời thay vì

không thể kiểm soát được dữ liệu (không sử dụng được trong các chương trình do tập này quá lớn, thời gian tìm kiếm lâu, …), giờ đây ta đã có thể kiểm soát được chúng.

Phương pháp này phát triển thành một lớp cấu trúc dữ liệu mới, được gọi là

các Cấu trúc dữ liệu ngẫu nhiên (Randomised Data Structure - RDS) hay còn được gọi

là các Cấu trúc dữ liệu xác suất (Probabilistic Data Structure - PDS) Trong các PDS, dữ liệu được mã hóa và tối ưu dưới dạng bị mất mát, và từ “ngẫu nhiên” ám chỉ các cấu trúc

dữ liệu này dựa trên những thuật toán mã hóa mang tính ngẫu nhiên nhất định

Có thể định nghĩa một thuật toán ngẫu nhiên là “thuật toán sử dụng các lựa chọn tùy ý, không xác định trước trong quá trình tính toán” [14] Khi mã hóa vào một PDS, một

phần dữ liệu sẽ bị mất Tuy vậy thông tin sẽ được lưu trữ sao cho dạng biểu diễn mấtmát này của dữ liệu vẫn có hiệu quả tương đồng với dạng biểu diễn đầy đủ (không mấtmát) của nó

Trang 35

Trong những năm gần đây có nhiều loại cấu trúc dữ liệu xác suất đã được nghiêncứu, phát triển và ứng dụng, có thể kể đến như Skip List, Sparse Partition [8], LossyDictionary và một cấu trúc dữ liệu tuy đã xuất hiện từ khá lâu nhưng hiện tại lại tiếp tụcđược nghiên cứu nhiều đó là Bloom Filter.

Bloom Filter có một số ưu điểm như tốc độ, khả năng tiết kiệm bộ nhớ đáng kể,tôi đã chọn nghiên cứu loại cấu trúc dữ liệu này và trình bày trong luận văn Cấu trúc dữliệu Bloom Filter cơ bản sẽ được giới thiệu trong phần sau của chương này Tiếp đó là cảitiến đơn giản để có thể lưu trữ dữ liệu theo cặp {khóa, giá trị} – Logarithmic FrequencyBloom Filter (hay Bloom Filter tần số log)

2.2 Hàm băm (Hash function)

Hàm băm là một thành phần rất quan trọng được sử dụng trong Bloom Filter Vìvậy trước khi đi sâu tìm hiểu cấu trúc dữ liệu BF, mục này trình bày vài nét sơ lược về hàmbăm

Một hàm ánh xạ phần tử từ tập này sang một tập khác (thường là nhỏ

hơn) được gọi là Hàm băm.

w b

h :U {0,1} {0,1}

INPUT OUTPUT

Quả Hàm băm DFA2C4ED

Quả táo Hàm băm BE34C87A

Quả cam Hàm băm 7CD4ADE

Hình 3: Ví dụ về hàm băm Các xâu ký tự được chuyển thành chữ ký đại diện.

Phần tử cần được băm thuộc tập S có cỡ n, tập này nằm trong tập dữ

w liệu ban đầu U với S  U và U = {0,1} Đại diện của phần tử đó trong miền

b được gọi là chữ ký hay dấu ấn của dữ liệu Hàm h này phải ổn định, nghĩa là

Trang 36

k1 ,w

k4 ,w

đáng chú ý của bảng giá trị băm này là thời gian tìm kiếm

không phụ thuộc vào kích cỡ của tập dữ liệu được mã hóa vào bảng

Hình 4: Cặp khóa ki và giá trị ai của tập S được ánh xạ thông qua hàm băm

vào bảng băm Xuất hiện xung đột giữa 2 phần tử k1 và k3.

Hàm băm tốt khi giá trị của nó phải có phân phối đều Số lượng giá trị chúng ta có thể lưu trữ với b-bits là 2b Nếu tập S lớn và b < w thì một số phần tử thuộc tập S sẽ xung đột với nhau khi được ánh xạ từ không gian lớn cỡ w vào không gian nhỏ hơn là b.

Ta có thể tối thiểu hóa va chạm khi chọn được hàm băm có đầu ra phân phối đều trên b.

Bởi vì nếu hàm băm không có phân phối đều, đầu ra của chúng sẽ chỉ tập trung ánh

xạ vào một số vị trí trong bảng băm, trong khi nhiều vị trí khác lại bị bỏ trống

Trang 37

1 0 1 0 0 1 0 1 1 0 1

k

2.3 Bloom Filter cơ bản

Mô hình ngôn ngữ có nguồn gốc từ Bloom Filter (BF) cơ bản [4] được xây dựngdựa trên các cấu trúc dữ liệu dựa trên Bloom Filter BF, trước hết là một cấu trúc dữ liệuxác suất (PDS), hỗ trợ truy vấn kiểm tra một đối tượng có thuộc tập hợp hay không BF

sử dụng một thuật toán mã hóa cho phép tiết kiệm đáng kể không gian lưu trữ, thời giantruy vấn gần như giữ nguyên, không phụ thuộc vào kích cỡ của tập cần đại diện và có tỉ lệlỗi-một-phía điều

khiển được

xk

xk  S

hk1(xk)hk2(xk)hk3(xk)

m bits

Hình 5: Huấn luyện Bloom Filter

Một BF đại diện cho một tập S = x1, x2, , xn, với n phần tử được lấy ngẫu nhiên từ tập ban đầu U cỡ N Bộ nhớ BF sử dụng là một mảng bit cỡ m.

Trước quá trình huấn luyện, mảng này chỉ chứa các giá trị 0 Để huấn luyện

BF, chúng ta sử dụng k hàm băm độc lập, mỗi hàm băm có đầu ra trỏ đến một

vị trí trong mảng bit m tùy theo giá trị đầu vào x,h  x  0,1, , m 1 Mỗi phần tử x trong tập S cỡ n chúng ta đang cần biểu diễn được băm k lần sử

dụng k hàm băm nêu trên, và bit tương ứng với đầu ra của mỗi hàm băm trong

Trang 38

bảng m được thiết lập giá trị bằng 1 Như vậy là với mỗi phần tử x  S , k vị trí

tương ứng được “bật lên”, nếu một bit hk nào đó đã có giá trị bằng 1 rồi thì bit đó vẫngiữ nguyên trạng thái Nghĩa là, một khi đã được thiết lập, giá trị này sẽ không bị thay đổi

nữa qua cả quá trình huấn luyện Cần lưu ý rằng có thể tồn tại khả năng k hàm băm của một phần tử có đầu ra không trỏ đến k vị trí riêng biệt trong mảng bit, BF không tránh sự

va chạm này Các bit trong mảng do cơ chế này mà có thể được chia sẻ cho các phần tửdùng chung, đem lại khả năng tiết kiệm đáng kể bộ nhớ cho BF, tuy nhiên lại tồn tạimột xác

suất lỗi false positive khác 0

xk  S

Hình 6: Truy vấn Bloom Filter

Chúng ta lại đưa nó chạy qua k hàm băm trên để kiểm tra một phần tử nào đó cóthuộc tập đã được mã hóa trong BF hay không Khi tất cả các bit được tham chiếu bởi k

hàm băm có giá trị bằng 1 thì ta coi phần tử đó thuộc tập hợp; còn nếu tồn tại bất cứ giá trị nào bằng 0 thì chúng ta biết chắc chắn nó không thuộc tập hợp Tại sao ở đây cần phải nhấn mạnh từ “coi” và “chắc chắn” ? Đó là vì các phần tử thực sự của tập S thì luôn được xác định chính xác, nhưng có một xác suất lỗi false positive sẽ xuất hiện nếu như k

bit tương

Trang 39

xk S

1 0 1 0 0 1 0 1 1 0 1

ứng thực ra được thiết lập do các phần tử trong tập huấn luyện mà phần tử đang xét

thì không thuộc tập này Đây được gọi là lỗi một phía.

Sử dụng Bloom Filter thay vì thực sự lưu trữ tập S, thực chất chúng ta chỉ đang lưu trữ một đại diện của nó - B, một mảng bit cỡ m Các phần tử trong S thực chất

bị mất: Bloom Filter không thể giúp chúng ta khôi phục được tập đó Nhưng nếu vấn

đề chúng ta quan tâm đến là liệu một phần tử có nằm trong tập S hay không thì Bloom

Filter lại có thể thực hiện được, đồng thời tiết kiệm một lượng lớn bộ nhớ trong khi tốc

độ truy vấn là bất biến

Mặc dù không thể tránh khỏi, tuy nhiên lỗi một phía của Bloom Filter lại là yếu

tố mà ta có thể kiểm soát được, đó cũng là một ưu điểm đáng chú ý

nữa của Bloom Filter

xk

xk  SNhưng HIT

hk1(xk)hk2(xk)hk3(xk)

m bits

Hình 7: Lỗi một phía trong Bloom Filter

Nếu chúng ta coi các hàm băm có phân phối đều và hoàn toàn ngẫu nhiên, tức là

chúng sẽ chọn các vị trí trong mảng m-bit với xác suất tương đương nhau thì xác suất

một bit bất kỳ được thiết lập bằng 1 bởi một hàm

Trang 40

băm là 1/m Xác suất một bit bất kỳ không phải là 1 sau khi thực hiện một

m

 Sau quá trình huấn luyện xác suất một bit vẫn là 0:

kn

1 1 

Ngày đăng: 23/05/2018, 23:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Văn Vinh (2005). “Xây dựng chương trình dịch tự động Anh-Việt bằng phương pháp dịch thống kê”. Luận văn Thạc sĩ, Đại học Công nghệ, ĐHQGHN.Tiếng Anh Sách, tạp chí
Tiêu đề: ). “Xây dựng chương trình dịch tự động Anh-Việt bằngphương pháp dịch thống kê”
Tác giả: Nguyễn Văn Vinh
Năm: 2005
[2] Brants, T., Popat, A. C., Xu, P., Och, F. J., and Dean, J.. “Large language models in machine translation”. In Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP-CoNLL), 2007, pages858–867 Sách, tạp chí
Tiêu đề: Large language modelsin machine translation
[3] Callison-Burch, Chris, Miles Osborne, and Philipp Koehn. “Re- evaluating the role of Bleu in machine translation research”. In EACL 2006: Proceedings the Eleventh Conference of the European Chapter of the Association for Computational Linguistics, 2006 Sách, tạp chí
Tiêu đề: Re- evaluating therole of Bleu in machine translation research
[4] Costa, L. H. M. K., Fdida, S., and Duarte, O. C. M. B. “Incremental service deployment using the hop-by-hop multcast routing protocol”. IEEE/ACM Trans. Netw., 2006, 14(3): pages 543–556 Sách, tạp chí
Tiêu đề: Incremental servicedeployment using the hop-by-hop multcast routing protocol
[6] To Hong Thang. “Building language model for Vietnamese and its application”.Dissertation, Bachelor of IT, College of Technology, Vietnam National University, 2008 Sách, tạp chí
Tiêu đề: Building language model for Vietnamese and its application
[7] Koehn, P.. “Empirical Methods in Natural Language Processing”.From course slides at htp: / / www .inf . e d .ac . u k / t ea c h in g / c o u r s e s / e m nlp/ , 2007. [8] Talbot, D. and Talbot, J.. “Bloom maps”. In Proceedings of theFourth Workshop on Analytc Algorithmics and Combinatorics (ANALCO). Society for Industrial and Applied Mathematics, 2008 Sách, tạp chí
Tiêu đề: Empirical Methods in Natural Language Processing”.From course slides at htp: / / www .inf . e d .ac . u k / t ea c h in g / c o u r s e s / e m nlp/ , 2007. [8] Talbot,D. and Talbot, J.. “Bloom maps
[9] Koehn, P. and Hoang, H.. “Factored translation models”. In Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Sách, tạp chí
Tiêu đề: Factored translation models
[10] Levenberg, A. D. “Bloom filter and lossy dictionary based language models”.Dissertation, master of science, School of Informatcs, University of Edinburgh, 2007 Sách, tạp chí
Tiêu đề: Bloom filter and lossy dictionary based language models
[11] Masao Utiyama. “A survey of statistical machine translaton”.Lecture slides, Kyoto University, 2006 Sách, tạp chí
Tiêu đề: A survey of statistical machine translaton
[12] Och, F. “The Google Statistical Machine Translation System for the 2005 NIST MT Evaluation”. Oral presentation at the 2005 NIST MT Evaluation workshop, 2005 Sách, tạp chí
Tiêu đề: The Google Statistical Machine Translation System for the 2005NIST MT Evaluation
[13] Pagh, A., Pagh, R., and Rao, S. S.. “An optimal bloom filter replacement”.In SODA ’05: Proceedings of the sixteenth annual ACM-SIAM symposium on Discrete algorithms, Philadelphia, PA, USA. Society for Industrial and Applied Mathematcs, 2005, pages 823–829 Sách, tạp chí
Tiêu đề: An optimal bloom filter replacement
[14] Talbot, D. and Osborne, M., “Randomised language modelling for statistical machine translation”. In Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics, Prague, Czech Republic. Association for Computational Linguistics, 2007a, pages 512–519 Sách, tạp chí
Tiêu đề: Randomised language modelling for statisticalmachine translation
[15] Talbot, D. and Osborne, M., “Smoothed Bloom filter language models:Tera-scaleLMs on the cheap”. In Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP-CoNLL), 2007b, pages Sách, tạp chí
Tiêu đề: Smoothed Bloom filter language models:Tera-scaleLMs on the cheap

TỪ KHÓA LIÊN QUAN

w