• Tidak ada hasil yang ditemukan

TỰ ĐỘNG NHẬN BIẾT NGÔN NGỮ DỰA VÀO HỌC SÂU

N/A
N/A
Protected

Academic year: 2024

Membagikan "TỰ ĐỘNG NHẬN BIẾT NGÔN NGỮ DỰA VÀO HỌC SÂU"

Copied!
58
0
0

Teks penuh

(1)

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN HỒNG THANH

TỰ ĐỘNG NHẬN DẠNG NGÔN NGỮ DỰA VÀO HỌC SÂU

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN VINH

Hà Nội 2021

(2)

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN HỒNG THANH

TỰ ĐỘNG NHẬN DẠNG NGÔN NGỮ DỰA VÀO HỌC SÂU

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN VINH

Hà Nội 2021

(3)

LỜI CAM ĐOAN

Tôi cam đoan luận văn được thực hiện dưới sự hướng dẫn của TS.Nguyễn Văn Vinh. Các số liệu, kết quả kiểm tra dữ liệu kiểm thử trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác.

Hà Nội, Ngày 01 tháng 12 năm 2021 Người cam đoan

Nguyễn Hồng Thanh

(4)

LỜI CẢM ƠN

Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các giảng viên trong Khoa Công nghệ thông tin - Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã truyền đạt kiến thức và định hướng nghiên cứu cho em trong thời gian em học tập tại Trường.

Em xin gửi lời cảm ơn đến các cán bộ phụ trách thuộc Khoa Công nghệ thông tin đào tạo sau đại học, những người đã quản lý, tư vấn và hỗ trợ em trong quá trình học tập cũng như làm luận văn.

Em xin gửi lời cảm ơn sâu sắc đến TS. Nguyễn Văn Vinh, người thầy đã trực tiếp tận tình hướng dẫn, tạo mọi điều kiện thuận lợi cho em trong suốt thời gian làm luận văn tốt nghiệp.

Cuối cùng, Em xin gửi lời cảm ơn đến bạn bè, đồng nghiệp cũng như gia đình luôn tạo điều kiện để em hoàn thành luận văn.

Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng chắc rằng luận văn này khó tránh khỏi những thiếu sót. Em rất mong nhận được sự chia sẽ, đóng góp ý kiến của giảng viên và các bạn.

Hà Nội, Ngày 01 tháng 12 năm 2021 Học viên

Nguyễn Hồng Thanh

(5)

MỤC LỤC

LỜI CAM ĐOAN ... i

LỜI CẢM ƠN ... ii

Danh mục các ký hiệu và chữ viết tắt ... v

Danh mục các bảng ... vi

Danh mục các hình vẽ, đồ thị ... vii

MỞ ĐẦU ... 1

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN NHẬN BIẾT NGÔN NGỮ ... 3

1.1 Giới thiệu chung ... 3

1.2 Các phương pháp xác định ngôn ngữ ... 3

1.2.1 Mô hình ngôn ngữ ... 3

1.2.2 Phương pháp xác định ngôn ngữ dựa trên n-gram ... 6

1.2.3 Phương pháp xác định ngôn ngữ dựa vào Naive Bayes ... 7

1.2.4 Phương pháp xác định ngôn ngữ dựa vào máy hỗ trợ vectơ (SVM) ... 8

1.2.5 Phương pháp láng giềng gần nhất (K-Nearest Neighbor)... 9

1.2.6 Phương pháp Word2vec ... 10

1.2.6.1 Skip-gram ... 12

1.2.6.2 Túi từ liên tục (CBOW) ... 16

1.2.7 Phương pháp xác định ngôn ngữ dựa vào học sâu ... 17

CHƯƠNG 2: MÔ HÌNH MẠNG LSTM ... 18

2.1 Mạng Nơ ron nhân tạo ... 18

2.1.1 Hàm kích hoạt. ... 19

2.1.2 Chức năng kích hoạt đầu ra ... 22

2.2 Mạng nơ ron hồi qui RNN ... 25

2.3 Mạng LSTM ... 27

2.3.1 Cổng đầu vào, cổng quên và cổng đầu ra ... 27

2.3.2 Ô nhớ tiềm năng ... 28

2.3.3 Ô nhớ ... 29

2.3.4 Các trạng thái ẩn ... 30

2.4 Kỹ thuật Dropout ... 31

(6)

2.4.1 Drop-Out ... 31

2.4.2 Hoạt động của Drop-Out ... 31

2.4.3 Tính hiệu quả của Drop-Out ... 32

CHƯƠNG 3: ÁP DỤNG MÔ HÌNH LSTM CHO BÀI TOÁN NHẬN BIẾT NGÔN NGỮ ... 34

3.1 Giới thiệu ... 34

3.2 Áp dụng LSTM cho bài toán nhận biết ngôn ngữ... 34

3.3 Đánh giá và thử nghiệm. ... 37

3.3.1 Phương pháp đánh giá ... 37

3.3.2 Cấu hình thử nghiệm ... 38

3.3.3 Kịch bản đánh giá thử nghiệm ... 40

3.3.4 Kết quả đánh giá thử nghiệm ... 44

3.3.5 Phân tích và thảo luận ... 45

KẾT LUẬN ... 47

Tài liệu tham khảo: ... 48

(7)

Danh mục các ký hiệu và chữ viết tắt

Viết tắt Tiếng Anh Tiếng việt

LM Language Model Mô hình ngôn ngữ

LI Language Identification Xác định ngôn ngữ

LID Automatic Language Identification Tự động nhận biết ngôn ngữ

NN Neural Network Mạng nơ ron

ANN Artifical Neural Network Mạng nơ ron nhân tạo

DNN Deep Neural Network Mạng học sâu

FFNN Feed Forward Neural Network Mạng nơ ron chuyển tiếp nguồn cung cấp

FP Forward Propagation Lan truyền xuôi

BP Back Propagation Lan truyền ngược

GRU Gate Recurrent Unit Đơn vị hồi qui có cổng

RNN Recurrent Neural Network Mạng Nơ ron hồi qui LSTM Long Short-Term Memory Bộ nhớ ngắn hạn dài

ML Machine Learning Học máy

NLP Nature Language Processing Xử lý ngôn ngữ tự nhiên

NB Naive Bayes

KNN K-Nearest Neighbor K láng giềng gần nhất.

SVM Support Vector Machine Máy hỗ trợ vectơ

LR Linear Regression Hồi qui tuyến tính.

(8)

Danh mục các bảng

Bảng 3.1 Cấu hình phần cứng máy tính ... 38 Bảng 3.2 Gán nhãn cho 10 ngôn ngữ ... 39 Bảng 3.3 Thử nghiệm trên 2 lớp LSTM và BiLSTM với độ dài vector

Embedding = 256 ... 40 Bảng 3.4 Kết quả thực nghiệm với các vector embedding có kích thước khác nhau nhưng có cùng batch size khi sử dụng mô hình BiLSTM. ... 41 Bảng 3.5 Kết quả thực nghiệm với cùng một độ dài của vector embedding nhưng batch_size có kích thước khác nhau. ... 41 Bảng 3.6 Độ chính xác mô của hình huấn luyện với các batch size khác nhau 42 Bảng 3.7 Độ chính xác f1-score trong quá trình huấn luyện trên 10 ngôn ngữ với batch_size = 64... 42

(9)

Danh mục các hình vẽ, đồ thị

Hình 1.1 Kiến trúc hệ thống ... 6

Hình 1.2 Máy hỗ trợ vectơ SVM ... 9

Hình 1.3 Minh họa Skip-gram dưới dạng mạng neural. ... 14

Hình 1.4 Minh họa CBOW dưới dạng mạng neural ... 16

Hình 2.1 Một mạng nơron chuyển tiếp nguồn cấp dữ liệu đơn giản ... 19

Hình 2.2 Hàm kích hoạt ReLU() được sử dụng trong NN ... 20

Hình 2.3 Hàm kích hoạt sigmoid() được sử dụng trong NN ... 20

Hình 2.4 Mạng nơron hai lớp được xây dựng bởi một lớp ẩn, bao gồm M số đơn vị ẩn hi. ... 21

Hình 2.5 Mạng nơ ron học sâu với L lớp ẩn ... 22

Hình 2.6 Lớp đầu ra softmax trong một bài toán phân loại, mang lại xác suất cho mỗi lớp cho một mẫu đầu vào ... 22

Hình 2.7 Hàm softmax()... 23

Hình 2.8 Tìm giá trị hàm mất mát nhỏ nhất là mục tiêu khi huấn luyện mạng nơ ron ... 24

Hình 2.9 Một RNN có kết nối phản hồi bên trong lớp ẩn ... 26

Hình 2.10 Kiến trúc RNN chưa được mở rộng ... 26

Hình 2.11 Các phép tính tại cổng đầu vào, cổng quên và cổng đầu ra trong một đơn vị LSTM ... 28

Hình 2.12 Các phép tính toán trong ô nhớ tiềm năng của LSTM ... 29

Hình 2.13 Sử dụng phép nhân theo từng phần tử trong ô nhớ của LSTM ... 30

Hình 2.14 Phép tính nhân được thực hiện trên từng phần tử của trạng thái ẩn .. 30

Hình 2.15 Mô tả kỹ thuật drop-out... 31

Hình 3.1 Mô hình LSTM áp dụng cho bài toán ... 34

Hình 3.2 Mô tả chi tiết lớp LSMT ... 35

Hình 3.3 Mô tả hoạt động của lớp DROP-OUT ... 35

Hình 3.4 Mô tả cấu trúc của lớp DENSE ... 36

Hình 3.5 Độ chính xác (accuracy) với epochs = 4 với mô hình 10 ngôn ngữ .... 43

Hình 3.6 Độ mất mát (loss) với hơn 4 epochs đối với mô hình 10 ngôn ngữ .... 43

Hình 3.7 Mô hình nhận biết ngôn ngữ tự động dựa vào học sâu cho kết quả chính xác ... 44

Hình 3.8 Gán nhãn sai dẫn đến kết quả dự đoán sai trong quá trình nhận biết ngôn ngữ ... 44

Hình 3.9 Kết quả dự đoán sai ... 45

(10)

MỞ ĐẦU

Hiện nay, công nghệ thông tin ngày càng phát triển và ứng dụng mạnh mẽ trên mọi lĩnh vực kinh tế, xã hội, .... Hơn nữa, chúng ta đã và đang trải qua đại dịch Covid19 vì vậy, việc liên lạc và giao dịch trực tuyến ngày càng quan trọng và thực hiện thường xuyên trong công việc hàng ngày. Lượng thông tin chúng ta tìm kiếm và giao tiếp ngày càng nhiều và thể hiện với nhiều ngôn ngữ khác nhau.

Chính vì vậy, việc tự động nhận biết ngôn ngữ tự động (Automatic Language Identification - LID) giúp cho việc tìm kiếm thông tin và dịch máy chính xác và hiệu quả hơn. Do đó, chúng tôi tập trung nghiên cứu và giải quyết bài toán nhận biết ngôn ngữ tự động.

Hiện nay có nhiều cách tiếp cận cho bài toán nhận biết ngôn ngữ tự động như coi bài toán nhận biết ngôn ngữ là bài toán phân lớp văn bản và các kỹ thuật học máy được áp dụng cho bài toán trên. Gần đây, các kỹ thuật học sâu thể hiện vượt trội trong việc áp dụng cho các bài toán phân lớp văn bản. Chính vì vậy, chúng tôi lựa chọn mô hình bộ nhớ ngắn dài hạn (LSTM - Long Short Term Memory) để áp dụng cho bài toán tự động xác định ngôn ngữ. Đây là mô hình hiệu quả cho các bài toán xử lý văn bản.

Chúng tôi cũng xây dựng tập dữ liệu cho 10 ngôn ngữ và thử nghiệm việc nhận biết ngôn ngữ tự động trên 10 ngôn ngữ đó. Đánh giá và thử nghiệm trên 10 ngôn ngữ cho kết quả khả quan.

Bố cục luận văn như sau:

Luận văn được tổ chức thành ba chương có nội dung như sau:

Mở đầu

Chương 1: Xác định ngôn ngữ trong văn bản:

Giới thiệu tổng quan về nhận biết ngôn ngữ tự động dựa vào học sâu, giới thiệu một vài phương pháp nhận biết ngôn ngữ tự động hiện tại, so sánh các phương pháp này với nhau.

Chương 2: Mô hình mạng LSTM:

Trình bày các mô hình nhận biết ngôn ngữ tự động dựa vào học sâu mà đầu vào là các đoạn văn bản. Chúng tôi tập trung vào mô tả chi tiết về lý thuyết mô hình LSTM. Mô hình này được đánh giá là tốt trong các mô hình nhận biết ngôn ngữ dựa vào đoạn văn bản hiện nay và sử dụng chúng trong bài toán xác định ngôn ngữ của luận văn này.

(11)

Chương 3: Áp dụng mô hình LSTM cho bài toán nhận biết ngôn ngữ:

Trình bày mô hình LSTM trong nhận biết ngôn ngữ tự động dựa vào học sâu áp dụng cho bài toán với đầu vào là các đoạn văn bản, dựa trên việc mô hình hóa dữ liệu và thuật toán học máy cho LID. Với mỗi một đoạn văn bản đưa vào, thuật toán học máy này sẽ xác định được ngôn ngữ.

Kết luận

Trình bày vắn tắt những công việc mà luận văn đã làm được đồng thời nêu định hướng phát triển tiếp theo của luận văn.

(12)

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN NHẬN BIẾT NGÔN NGỮ

Giới thiệu tổng quan về nhận biết ngôn ngữ tự động dựa vào học sâu với đầu vào là các đoạn văn bản, giới thiệu một vài phương pháp nhận biết ngôn ngữ hiện tại, so sánh các phương pháp này với nhau.

1.1 Giới thiệu chung

Trong những năm gần đây, các trang web sử dụng tính năng tự động nhận biết ngôn ngữ trở nên phổ biến hơn, các trang web của các mạng xã hội như Facebook, Twitter ... các website tìm kiếm như Bing, Baidu, Google [1]. Điều ấn tượng là cách dịch và nhận biết ngôn ngữ thường chính xác. Mặc dù đôi khi bản dịch của một biểu thức hoặc một đoạn văn bản không hoàn toàn phù hợp với ý nghĩa thực sự của nó.

Nhận dạng ngôn ngữ tự động (LID - language Identification) nhằm mục đích xác định tự động ngôn ngữ mà không cần có sự can thiệp của con người [2].

LID là một quy trình hiện diện trong nhiều dịch vụ web ngày nay. Khi tìm kiếm trên web, nhiều trang web có hỗ trợ LID cho văn bản được viết trên thanh tìm kiếm, các kết quả tìm kiếm phù hợp nhất sau đó được hiển thị đầu tiên.

Các ngôn ngữ liên tục phát triển và thay đổi, điều này có thể trở thành một vấn đề khi xây dựng các mô hình tự động nhận biết ngôn ngữ. Trong thời đại mà mọi người giao tiếp trực tuyến, những thay đổi diễn ra nhanh chóng, từ ngày này sang ngày khác, một cộng đồng trực tuyến có thể bắt đầu sử dụng một từ hoặc tiếng lóng hoàn toàn mới. Nó phổ biến với văn bản viết xấu hoặc các từ viết sai chính tả trực tuyến do giao tiếp nhanh chóng trên các nền tảng trực tuyến. Khả năng xác định một ngôn ngữ của các đoạn văn bản vẫn cần được khám phá thêm.

Trí tuệ nhân tạo và máy học cố gắng bắt chước cách thức hoạt động của bộ não con người [3]. Một số phương pháp tiếp cận khác nhau đã được nghiên cứu từ những năm 60 trong lĩnh vực nhận dạng ngôn ngữ tự động [2], nhưng cũng giống như AI, đã có sự gia tăng nhanh chóng về hiệu suất trong 10 năm qua. LID có thể được sử dụng trên dữ liệu từ giọng nói, ngôn ngữ ký hiệu hoặc từ văn bản.

1.2 Các phương pháp xác định ngôn ngữ 1.2.1 Mô hình ngôn ngữ

Mô hình ngôn ngữ (Language Model - LM) là các phân phối xác suất trên một ngữ liệu đơn ngữ, được sử dụng trong nhiều bài toán khác nhau của xử lý

(13)

ngôn ngữ tự nhiên, ví dụ: dịch máy bằng phương pháp thống kê, nhận dạng giọng nói, nhận dạng chữ viết tay, sửa lỗi chính tả hay phân đoạn từ,…. Thực chất, mô hình ngôn ngữ là một hàm chức năng có đầu vào là một chuỗi các từ và đầu ra là điểm đánh giá xác suất một người bản ngữ có thể nói chuỗi đó.

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ữ nào đó là bao nhiêu?

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

P[“thứ 6 tôi đi học Trí Tuệ Nhân Tạo”] = 0.9 P[“đi học thứ 6 tôi Nhân Trí Tuệ Tạo”] = 0.02

Trong mô hình ngôn ngữ, nếu tập văn bản càng lớn, càng đa dạng thì kết quả của mô hình ngôn ngữ càng chính xác.

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 tra 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 mô hình n-gram.

Mô hình ngôn ngữ n-gram:

Cách thông dụng nhất được dùng để mô hình hóa ngôn ngữ vào trong LM là thông qua các n-gram. Với mô hình n-gram, chúng ta coi một văn bản, đoạn văn bản là chuỗi các từ liền kề nhau, 𝑤1, 𝑤2, ... , 𝑤𝑛−1, 𝑤𝑛, và sau đó phân tích xác suất của chuỗi với công thức xác suất kết hợp:

P(𝑤1, 𝑤2, ... , 𝑤𝑚−1, 𝑤𝑚) =

P(𝑤1)*P(𝑤2|𝑤1)*P(𝑤3|𝑤1𝑤2)*....*P(𝑤𝑚|𝑤1𝑤2… . . 𝑤𝑚−1)

Theo công thức (1.1), mô hình ngôn ngữ cần phải có một lượng bộ nhớ vô cùng lớn để có thể lưu hết xác suất của tất cả các chuỗi độ dài nhỏ hơn m. Rõ ràng, điều này là không thể khi m là độ dài của các văn bản ngôn ngữ tự nhiên (m có thể tiến tới vô cùng). Để có thể tính được xác suất của văn bản với lượng bộ nhớ chấp nhận được, ta sử dụng xấp xỉ Markov bậc n [4]:

P(𝑤𝑚|𝑤1, 𝑤1, ... , 𝑤𝑚−1) = P(𝑤𝑚|𝑤𝑚−𝑛, 𝑤𝑚−𝑛+1, ... , 𝑤𝑚−1) Và do vậy, 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ừ đó).

1.1

1.2

(14)

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ông khả thi về mặt tính toán do tốn quá nhiều thời gian, tốn tài nguyên hệ thống cho mỗi lầ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ết toà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 lượng tương đối xác suất dựa trên giả định Markov (hay mô hình Markov ẩn [4]), 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ệc quyết định bao nhiêu từ trước đó mà LM quan tâm được gọi là bậc n (order) của mô hình ngôn ngữ.

Với n = 1, gọi là unigram, đó là tập hợp các chữ cái hoặc các từ đơn.

Với n = 2, gọi là bigram, đó là tập gồm hai chữ cái hoặc hai từ.

Với n = 3, gọi là trigram, đó là tập gồm các cụm ba chữ cái hoặc ba từ.

Ví dụ, nếu chúng ta muốn ước lượng xác suất 2-gram của một từ 𝑤𝑖 với mô hình Markov [4] bậc 2 thì chúng ta sẽ dựa trên hai từ trước đó:

P(𝑤1𝑤2. . . 𝑤𝑖) = P(𝑤𝑖|𝑤𝑖−2𝑤𝑖−1)

Một cách tổng quát, xác suất xuất hiện của một từ (𝑤𝑚) được coi như chỉ phụ thuộc vào n từ đứng liền trước nó (𝑤𝑚−𝑛, 𝑤𝑚−𝑛+1, ... , 𝑤𝑚−1) chứ không phải phụ thuộc vào toàn bộ dãy từ đứng trước (𝑤1, 𝑤2, ... , 𝑤𝑚−1). Như vậy, công thức tính xác suất văn bản được tính lại theo công thức:

P(𝑤1𝑤2 …𝑤𝑚) = P(𝑤1)*P(𝑤2|𝑤1)*P(𝑤3|𝑤1𝑤2)*…*

P(𝑤𝑚−1|𝑤𝑚−𝑛−1𝑤𝑚−𝑛 …𝑤𝑚−2)*P(𝑤𝑚|𝑤𝑚−𝑛𝑤𝑚−𝑛+1 …𝑤𝑚−1) Xây dựng mô hình ngôn ngữ:

Để xây dựng (huấn luyện) một mô hình ngôn ngữ ta cần một ngữ liệu đơn ngữ (corpus) có kích thước tương đối 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, theo những cách khác nhau, đều cần đến tần suất của các n-gram, do đó chúng ta cần phải đếm số lần xuất hiện của các n-gram từ 1-gram cho đến n-gram với n là số bậc mô hình chúng ta đang huấn luyện.

1.4 1.3

(15)

Xác định ngôn ngữ chính là bài toán phân loại văn bản nên trong phần này, chúng tôi sẽ giới thiệu một vài phương pháp xác định ngôn ngữ cũng như phương pháp phân loại văn bản. Có thể kể tên các loại phương pháp này như: mô hình Markov [4], vectơ tần suất 3-gram (Trigram Frequency Vector), phân lớp văn bản dựa trên n-gram, phương pháp Naive Bayes, phương pháp Support Vector Machine (SVM), phương pháp K-Nearest Neighbor (KNN).

Hình 1.1 miêu tả kiến trúc chung của các hệ thống. Tất cả đều là phương pháp thống kê, và làm việc với một tập các ngôn ngữ được xác định trước. Khi huấn luyện hệ thống với một ngôn ngữ nó lưu thông tin trong đường trung tâm.

Mỗi hệ thống có một mô hình thống kê cho mỗi ngôn ngữ mà nó huấn luyện. Khi một đoạn văn bản được phân lớp, hệ thống sẽ so sánh các đoạn văn bản lạ với mỗi mô hình ngôn ngữ, tính toán về khoảng cách và độ tương đồng sau đó chọn ngôn ngữ gần giống nhất.

1.2.2 Phương pháp xác định ngôn ngữ dựa trên n-gram (đưa vào đây)

Kỹ thuật này là phương pháp phân loại văn bản, được giới thiệu trong [5]

rằng có thể được áp dụng trong xác định ngôn ngữ, với mỗi lớp (category) là một ngôn ngữ.

Hệ thống này dựa trên việc so sánh các hồ sơ tần suất n-gram (n-gram frequency profiles). Một tập tần suất n-gram là một danh sách các n-gram xảy ra được xắp sếp theo thứ tự tăng dần. Với mỗi loại ngôn ngữ chúng ta muốn huấn luyện hệ thống, chúng ta tạo ra tập n-gram của nó sử dụng tất cả n-gram với n từ 1 đến 5.

Hình 1.1 Kiến trúc hệ thống

(16)

Khi muốn phân lớp một đoạn văn bản phải xây dựng tập tần suất n-gram cho đoạn văn bản đó rồi so sánh với tập ngôn ngữ mà đã tính toán khi huấn luyện hệ thống. Việc so sánh này là tính toán khoảng cách giữa các tập với nhau, bao gồm khác nhau về vị trí rank(𝑡𝑖, text) của n-gram 𝑡𝑖 trong hồ sơ đoạn văn bản chưa xác định với vị trí rank(𝑡𝑗, 𝑙𝑗) của n-gram tương ứng trong tài liệu j của ngôn ngữ. Khoảng cách giữa 2 hồ sơ được tính là tổng tất cả các khoảng cách cho mỗi n-gram.

𝐷𝑗 = ∑𝑁𝑖=1|rank(𝑡𝑖, text) - rank(𝑡𝑗, 𝑙𝑗) Trong đó:

N là số lượng trigrams.

Hệ thống tính toán khoảng cách giữa các hồ sơ của ngôn ngữ chưa được nhận dạng với ngôn ngữ đã biết và lấy ngôn ngữ có khoảng cách ngắn nhất.

1.2.3 Phương pháp xác định ngôn ngữ dựa vào Naive Bayes

Naive Bayes [6] là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực máy học và nhiều lĩnh vực khác như trong các công cụ tìm kiếm, các bộ lọc mail, …

Ý tưởng cơ bản của cách tiếp cận này là sử dụng xác suất có điều kiện giữa từ hoặc cụm từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại. Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau. Như thế NB không tận dụng được sự phụ thuộc của nhiều từ vào một chủ đề cụ thể. Chính giả định đó làm cho việc tính toán NB hiệu qủa và nhanh chóng hơn các phương pháp khác với độ phức tạp theo số mũ vì nó không sử dụng cách kết hợp các từ để đưa ra phán đoán chủ đề.

Mục đích chính là làm sao tính được xác suất P(𝐶𝑗|d’), xác suất để văn bản d’ nằm trong lớp 𝐶𝑗. Theo luật Bayes, văn bản d’ sẽ được gán vào lớp 𝐶𝑗 nào có xác suất P(𝐶𝑗|d’) cao nhất.

Công thức để tính P(𝐶𝑗|d’) như sau:

𝐻𝐵𝐴𝑌𝐸𝑆(d’) = arg max ( P(𝐶𝑗).∏|𝑑′|𝑖=1P(𝑤𝑖|𝐶𝑗)

𝐶′∈ 𝐶P(𝐶).|𝑑′|𝑖=1P(𝑤𝑖|𝐶))

𝐶𝑗 ∈ 𝐶

Trong đó:

|d’| là số lượng các từ trong văn bản d’

1.5

1.6

(17)

𝑤𝑖 là một từ trong không gian đặc trưng F với số chiều là |F|

P(𝐶𝑗) được tính dựa trên tỷ lệ phần trăm của số văn bản mỗi lớp tương ứng P(𝐶𝑗) = ||𝐶𝑗||

||𝐶|| = ||𝐶𝑗||

𝐶′ ∈𝐶||𝐶||

trong tập huấn luyện:

P(𝑤𝑖|𝐶𝑗) = 1+𝑇𝐹(𝑤𝑖|𝐶𝑗)

|𝐹|+∑𝑤′∈|𝐹|𝑇𝐹(𝑤|𝐶𝑗 )

Naive Bayes là một công cụ rất hiệu quả trong một số trường hợp. Kết quả có thể rất xấu nếu có ít dữ liệu huấn luyện và các tham số dự đoán (như không gian đặc trưng) có chất lượng kém. Nhìn chung, đây là một thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề. Naive Bayes có ưu điểm là cài đặt đơn giản, tốc độ thực hiện thuật toán nhanh, dễ dàng cập nhật dữ liệu huấn luyện mới và có tính độc lập cao với tập huấn luyện.

1.2.4 Phương pháp xác định ngôn ngữ dựa vào máy hỗ trợ vectơ (SVM)

Phương pháp máy hỗ trợ vectơ (Support Vector Machine - SVM) là phương pháp phân loại rất hiệu quả được Vapnik giới thiệu năm 1995 [7]. Ý tưởng của phương pháp là cho trước một tập huấn luyện được biểu diễn trong không gian vector, trong đó mỗi một văn bản được xem như một điểm trong không gian này.

Phương pháp này tìm ra một siêu mặt phẳng h quyết định tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng, tạm gọi là lớp + (cộng) và lớp – (trừ). Chất lượng của siêu mặt phẳng này được quyết định bởi một khoảng cách (được gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng cách biên càng lớn thì càng có sự phân chia tốt các điểm ra thành hai lớp, nghĩa là sẽ đạt được kết quả phân loại tốt. Mục tiêu của thuật toán SVM là tìm được khoảng cách biên lớn nhất để tạo kết qủa phân loại tốt.

Có thể nói SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán là tìm được một không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số khi phân loại là thấp nhất, nghĩa là kết qủa phân loại sẽ cho kết quả tốt nhất.

1.8 1.7

(18)

Phương trình siêu mặt phẳng chứa vector 𝑑𝑖 trong không gian như sau:

𝑑𝑖

⃗⃗⃗ . 𝑤⃗⃗ + b = 0

h(𝑑⃗⃗⃗ ) = sign(𝑑𝑖 ⃗⃗⃗ 𝑖 . 𝑤⃗⃗ ) = {+, 𝑑⃗⃗⃗ . 𝑤𝑖 ⃗⃗ + 𝑏 > 0

−, 𝑑⃗⃗⃗ . 𝑤𝑖 ⃗⃗ + 𝑏 < 0 Như thế vector h(𝑑⃗⃗⃗ ) biểu diễn sự phân lớp của vector 𝑑𝑖 𝑖 vào hai lớp. Gọi 𝑌𝑖 mang giá trị +1 hoặc -1, khi đó 𝑌𝑖 = +1 văn bản tương ứng với vector 𝑑𝑖 thuộc lớp (+) và ngược lại nó sẽ thuộc vào lớp (-). Bây giờ để có siêu mặt phẳng h, ta sẽ giải bài toán sau:

Tìm Min ||𝑤⃗⃗ || với 𝑤⃗⃗ và b thỏa mãn điều kiện:

∀ I ∈ 1, n: 𝑌𝑖(sign(𝑑𝑖 – w + b)) ≥ 1

Chúng ta thấy rằng SVM là mặt phẳng quyết định chỉ phụ thuộc vào các vector hỗ trợ có khoảng cách đến mặt phẳng quyết định là 1/𝑤𝑖. Khi các điểm khác bị xóa đi thì thuật toán vẫn cho kết quả giống như ban đầu. Chính đặc điểm này làm cho SVM khác với các thuật toán khác vì tất cả dữ liệu trong tập huấn luyện đều được dùng để tối ưu hóa kết quả.

1.2.5 Phương pháp láng giềng gần nhất (K-Nearest Neighbor)

Phương pháp láng giềng gần nhất (K-Nearest Neighbor - KNN) [8] là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm qua. KNN được đánh giá là một trong những phương

Hình 1.2 Máy hỗ trợ vectơ SVM

1.9 1.10

1.11

(19)

pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản.

Ý tưởng của phương pháp này đó là khi cần phân loại một văn bản mới, thuật toán sẽ xác định khoảng cách của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra K văn bản gần nhất, gọi là K láng giềng gần nhất (K Nearest Neighbor), sau đó dùng các khoảng cách này đánh trọng số cho tất cả các chủ đề. Khi đó, trọng số của một chủ đề chính là tổng tất cả các khoảng cách ở trên của các văn bản trong K láng giềng có cùng chủ đề, chủ đề nào không xuất hiện trong K láng giềng sẽ có trọng số bằng 0. Sau đó các chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao sẽ được chọn làm chủ đề của văn bản cần phân loại.

Trọng số của chủ đề 𝑐𝑗 đối với văn bản x được tính như sau:

W(𝑤⃗⃗ ,𝑐𝑗) = ∑𝑑 𝑠𝑖𝑚(𝑥,⃗⃗⃗

𝑖 ∈ {𝐾𝑁𝑁⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ } 𝑑⃗⃗⃗⃗⃗ 𝑖) . y(𝑑⃗⃗⃗ 𝑖, 𝑐𝑗) - 𝑏𝑗 Trong đó: y(𝑑⃗⃗⃗ 𝑖, 𝑐𝑗) thuộc {0,1}, với:

y = 0: văn bản 𝑑𝑗 không thuộc về chủ đề 𝑐𝑗 y = 1: văn bản 𝑑𝑗 thuộc về chủ đề 𝑐𝑗

𝑏𝑗 là ngưỡng phân loại của chủ đề 𝑐𝑗 được tự động học sử dụng một tập văn bản hợp lệ được chọn ra từ tập huấn luyện.

𝑠𝑖𝑚( 𝑥 , 𝑑⃗⃗⃗⃗⃗ 𝑖): độ giống nhau giữa văn bản cần phân loại x và văn bản d.

Chúng ta có thể sử dụng độ đo cosine để tính khoảng cách:

𝑠𝑖𝑚(𝑥 , 𝑑⃗⃗⃗⃗⃗ 𝑖) = cos(𝑥 , 𝑑⃗⃗⃗⃗⃗ 𝑖) = 𝑥 x 𝑑⃗⃗⃗⃗⃗ 𝑖

||𝑥 || x ||𝑑⃗⃗⃗⃗ ||𝑖

Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần được chạy thử nghiệm trên nhiều giá trị K khác nhau, giá trị K càng lớn thì thuật toán càng ổn định và sai sót càng thấp.

1.2.6 Phương pháp Word2vec

Word2vec là một mô hình đơn giản và nổi tiếng giúp tạo ra các biểu diễn embedding của từ trong một không gian có số chiều thấp hơn nhiều lần so với số từ trong từ điển. Ý tưởng của word2vec đã được sử dụng trong nhiều bài toán với dữ liệu khác xa với dữ liệu ngôn ngữ.

Ý tưởng cơ bản của word2vec có thể được tóm tắt trong các ý sau:

(1.12)

(1.13)

(20)

• Hai từ xuất hiện trong những văn cảnh giống nhau thường có ý nghĩa gần với nhau.

• Ta có thể đoán được một từ nếu biết các từ xung quanh nó trong câu. Ví dụ, với câu “sông Nil là con sông … thế giới ” thì từ trong dấu ba chấm khả năng cao là “dài nhất”. Với câu hoàn chỉnh “sông Nil là con sông dài nhất thế giới”, mô hình word2vec sẽ xây dựng ra embeding của các từ sao cho xác suất để từ trong dấu ba chấm là “dài nhất” là cao nhất.

Một vài định nghĩa

Trong ví dụ trên đây, từ “dài nhất” đang được xét và được gọi là từ đích (target word). Những từ xung quanh nó được gọi là hay từ ngữ cảnh (context words). Với mỗi từ đích trong một câu của cơ sở dữ liệu, các từ ngữ cảnh được định nghĩa là các từ trong cùng câu có vị trí cách từ đích một khoảng không quá C/2, với C là một số tự nhiên dương. Như vậy, với mỗi từ đích, ta sẽ có một bộ không quá C từ ngữ cảnh.

Xét ví dụ sau đây với câu tiếng Anh: “The quick brown fox jump over the lazy dog” với C=4

Văn bản nguồn Mẫu huấn luyện

(the, quick) (the, brown) (quick, the) (quick, brown) (quick, fox) (brown, the) (brown, quick) (brown, fox) (brown, jumps) (fox, quick) (fox, brown) (fox, jumps) (fox, over) Trên đây là một ví dụ về các cặp (từ đích, từ ngữ cảnh)1

1 Word2Vec Tutorial - The Skip-Gram Model.

over the lazy dog the quick brown

the quick brown fox jumps over the lazy dog fox jumps over the lazy dog

the quick brown fox jumps

the quick brown fox jumps over the lazy dog

(21)

Khi “the” là từ đích, ta có cặp dữ liệu huấn luyện là (the, quick) và (the, brown). Khi “brown” là từ đích, ta có cặp dữ liệu huấn luyện là (brown, the), (brown, quick), (brown, fox) và (brown, jumps).

Word2vec định nghĩa hai embedding vector cùng chiều cho mỗi từ w trong từ điển. Khi nó là một từ đích, embedding vector của nó là u, khi nó là một từ ngữ cảnh, embedding của nó là v. Sở dĩ ta cần hai embedding khác nhau vì ý nghĩa của từ đó khi nó là từ đích và từ ngữ cảnh là khác nhau. Tương ứng với đó, ta có hai ma trận embedding U và V cho các từ đích và các từ ngữ cảnh.

Có hai cách khác nhau xây dựng mô hình word2vec:

• Skip-gram: Dự đoán những từ ngữ cảnh nếu biết trước từ đích.

• CBOW (Continuous Bag of Words): Dựa vào những từ ngữ cảnh để dự đoán từ đích.

Mỗi cách có những ưu nhược điểm khác nhau và áp dụng với những loại dữ liệu khác nhau.

1.2.6.1 Skip-gram Xây dựng hàm mất mát

Mọi tính toán trong mục này được xây dựng xung quanh một từ ngữ cảnh.

Hàm mất mát tổng cộng sẽ là tổng của hàm mất mát tại mỗi từ ngữ cảnh. Việc tối ưu hàm mất mát có thể được thực hiện thông qua Gradient Descent trên từng từ ngữ cảnh hoặc một batch các từ ngữ cảnh.

Xét ví dụ bên trên với từ đích là “fox” và các từ ngữ cảnh là “quick”,

“brown”, “jumps” và “over”. Việc dự đoán xác suất xảy ra các từ ngữ cảnh khi biết từ đích được mô hình hóa bởi:

P("quick","brown","jumps","over"|"fox")

Ta có thể giả sử rằng sự xuất hiện của một từ ngữ cảnh khi biết từ đích độc lập với các từ ngữ cảnh khác để xấp xỉ xác suất trên đây bởi:

P("quick"|"fox")P("brown"|"fox")P("jumps"|"fox")P("over"|"fox") Note: Giả sử về việc các từ ngữ cảnh xuất hiện độc lập với nhau xunh quanh từ đích mâu thuẫn với ý tưởng của word2vec là những từ trong cùng văn cảnh có liên quan đến nhau. Tuy nhiên, giả thiết này giúp mô hình và độ phức tạp giảm đi rất nhiều trong khi vẫn mang lại kết quả khả quan.

(22)

Giả sử từ đích có chỉ số t trong từ điển V và tập hợp các chỉ số của các từ ngữ cảnh tương ứng là 𝐶𝑡. Số lượng phần tử của 𝐶𝑡 dao động từ C/2 (nếu 𝑤𝑡 đứng đầu hoặc cuối câu) tới C (nếu 𝑤𝑡 đứng ở giữa câu và có đủ C/2 từ ngữ cảnh ở mỗi phía).

Từ dữ liệu đã có, ta cần một mô hình sao cho xác suất dưới đây càng lớn càng tốt với mỗi từ ngữ cảnh 𝑤𝑡:

∏ 𝑃(

𝐶 ∈ 𝐶𝑡

𝑤𝑐| 𝑤𝑡)

Để tránh các sai số tính toán khi nhân các số nhỏ hơn 1 với nhau, bài toán tối ưu này thường được đưa về bài toán tối thiểu đối số của log (thường được gọi là negative log loss):

∑ logP(𝑤𝑐|𝑤𝑡)

𝐶 ∈ 𝐶𝑡

Xác suất có điều kiện P(𝑤𝑐| 𝑤𝑡) được định nghĩa bởi:

P(𝑤𝑐|𝑤𝑡) = exp(𝑢𝑡

𝑇𝒗𝒄)

𝑁𝑖=1exp(𝑢𝑡𝑇𝒗𝒄) Trong đó:

- N là số phần tử của từ điển 𝑣.

- exp(𝑢𝑡𝑇𝑣𝑐) thể hiện mỗi quan hệ giữa từ đích 𝑤𝑡 và từ ngữ cảnh 𝑤𝑐. Biểu thức này càng cao thì xác suất thu được càng lớn. Tích vô hướng exp(𝑢𝑡𝑇𝒗𝒄) cũng thể hiện sự tương tự giữa hai vector.

Biểu thức này rất giống với công thức Softmax. Việc định nghĩa xác suất như biểu thức (1.14) ở trên đảm bảo rằng:

𝑤 ∈ 𝒗P(𝑤|𝑤𝑡) =1

Tóm lại, hàm mất mát ứng với từ đích 𝑤𝑡 theo U, V được cho bởi:

ℒ(U,V;𝑤𝑡)=− ∑ log exp(𝑢𝑡

𝑇𝒗𝒄)

𝑁 exp(𝑢𝑡𝑇𝒗𝒄) 𝑖=1

𝐶 ∈ 𝐶𝑡

Biểu diễn dưới dạng mạng neural. Ta có thể thấy:

skip-gram word2vec là một mạng neural vô cùng đơn giản với chỉ một tầng ẩn không có hàm kích hoạt.

(1.14)

(23)

Nhận xét này có thể được minh họa trên hình 1.3. Ở đây, 𝑢𝑡 chính là kết quả của phép nhân vector one-hot tương ứng với 𝑤𝑡 với ma trận trọng số U, vì vậy đây chính là giá trị đầu ra của của tầng ẩn ở giữa khi xét từ đích 𝑤𝑡. Tiếp theo, đầu ra của tầng ẩn không hàm kích hoạt này được nhân trực tiếp với ma trận trọng số đầu ra V để được 𝑢𝑡𝑇𝑉, đây chính là giá trị vector logarit trước khi đi vào hàm kích hoạt softmax như trong biểu thức (1.14).

Kiến trúc đơn giản này giúp word2vec hoạt động tốt ngay cả khi số lượng từ trong từ điển là cực lớn (có thể lên tới nhiều triệu từ). Lưu ý rằng kích thước đầu vào và đầu ra của mạng word2vec này bằng với số lượng từ trong từ điển.

Tối ưu hàm mất mát

Việc tối ưu hai ma trận trọng số U và V được thực hiện thông qua các thuật toán Gradient Descent. Các thuật toán tối ưu dạng này yêu cầu tính gradient cho từng ma trận.

Xét riêng số hạng:

logP(𝑤𝑐| 𝑤𝑡) = ∑ log exp(𝑢𝑡𝑇𝑣𝑐)

𝑁𝑖=1exp(𝑢𝑡𝑇𝑣𝑐)

𝐶 ∈ 𝐶𝑡 =𝑢𝑡𝑇𝑣𝑐 - log∑𝑁𝑖=1exp (𝑢𝑡𝑇𝑣𝑐) Đạo hàm theo 𝑢𝑡:

𝜕𝑙𝑜𝑔𝑃(𝑤𝑐| 𝑤𝑡)

𝜕𝑢𝑡 = 𝑣𝑐 - ∑ exp(𝑢𝑡𝑇𝑣𝑐)

𝑁𝑖=1exp(𝑢𝑡𝑇𝑣𝑐)

𝑁𝑗−1 = 𝑣𝑐 - ∑𝑁𝑗=1𝑃(𝑤𝑗|𝑤𝑡)𝑣𝑗

Như vậy, mặc dù gradient này rất đẹp, chúng ta vẫn cần phải tính toán các xác suất P(𝑤𝑐| 𝑤𝑡). Mỗi xác suất này phụ thuộc toàn bộ ma trận trọng số V và vector 𝑢𝑡. Như vậy ta cần cập nhập tổng cộng N∗d + d trọng số. Đây rõ ràng là một con số rất lớn với N lớn.

Hình 1.3 Minh họa Skip-gram dưới dạng mạng neural.

(24)

Xấp xỉ hàm mất mát và lấy mẫu âm

Để tránh việc cập nhật rất nhiều tham số này trong một lượt, một phương pháp xấp xỉ được đề xuất giúp cải thiện tốc độ tính toán đáng kể. Mỗi xác suất P(𝑤𝑐| 𝑤𝑡) được mô hình bởi một hàm sigmoid thay vì hàm softmax:

P(𝑤𝑐| 𝑤𝑡) =

1

1+ exp(𝑢𝑡𝑇𝑣𝑖)

Lưu ý rằng tổng các xác suất ∑𝑤𝑐∈ vP(𝑤𝑐|𝑤𝑡) không còn bằng 1 nữa. Tuy nhiên, nó vẫn mang ý nghĩa về xác suất có mặt của riêng từ ngữ cảnh 𝑤𝑐 đi cùng với từ đích 𝑤𝑡.

Lúc này, việc tính toán P(𝑤𝑐| 𝑤𝑡) chỉ còn phụ thuộc vào vector 𝑢𝑡 và vector 𝑣𝑐 (thay vì cả ma trận V). Tương ứng với số hạng này, sẽ chỉ có 2d trọng số cần được cập nhật cho mỗi cặp (𝑤𝑐, 𝑤𝑡). Số lượng trọng số này không phụ thuộc vào kích thước từ điển, khiến cho cách mô hình này có thể hoạt động tốt với N rất lớn.

Có một vấn đề lớn với cách mô hình hóa này.

Vì không có sự ràng buộc giữa các xác suất P(𝑤𝑐| 𝑤𝑡), khi cố gắng tối đa hóa mỗi xác suất sẽ dẫn đến việc nghiệm thu được thỏa mãn mọi P(𝑤𝑐| 𝑤𝑡) đều cao. Điều này sẽ đạt được khi exp(−𝑢𝑡𝑇𝑣𝑐) xấp xỉ 0. Chỉ cần toàn bộ các phần tử của U và V tiến tới dương vô cùng là thỏa mãn. Việc xấp xỉ này bây giờ trở nên tầm thường và vô nghĩa. Để tránh vấn đề này, ta cần thêm đưa thêm các ràng buộc sao cho tồn tại các xác suất P(𝑤𝑐| 𝑤𝑡) khác cần được tối thiểu hóa khi xét tới từ đích 𝑤𝑡.

Bản chất của bài toán tối ưu ban đầu là xây dựng mô hình sao cho với mỗi từ đích 𝑤𝑡, xác suất của một từ ngữ cảnh 𝑤𝑐 xảy ra là cao trong khi xác suất của toàn bộ các từ ngoài ngữ cảnh đó là thấp, việc này được thể hiện trong hàm softmax(). Để hạn chế tính toán, trong phương pháp này ta chỉ lấy mẫu ngẫu nhiên một vài từ ngoài ngữ cảnh đó để tối ưu. Các từ trong ngữ cảnh được gọi là “từ dương”, các từ ngoài ngữ cảnh được gọi là “từ âm”; vì vậy phương pháp này còn có tên gọi khác là “lấy mẫu âm” (negative sampling).

Khi đó, với mỗi từ đích, ta có một bộ các từ ngữ cảnh với nhãn là 1 và 0 tương ứng với các từ ngữ cảnh ban đầu (gọi là ngữ cảnh dương) và các từ ngữ cảnh âm được lấy mẫu từ ngoài tập ngữ cảnh dương đó. Với các từ ngữ cảnh dương, - log(P(𝑤𝑐| 𝑤𝑡), tương tự với hàm mất mát trong hồi quy logistic với nhãn bằng 1. Tương tự, ta có thể dùng - log(1 - P(𝑤𝑐| 𝑤𝑡)) như là hàm mất mát cho các từ ngữ cảnh âm với nhãn bằng 0.

(25)

1.2.6.2 Túi t liên tc (CBOW)

Ngược với Skip-gram, túi từ liên tục (Continuous Bag of Words) đi tìm xác suất xảy ra từ đích khi biết các từ ngữ cảnh xung quanh. Ta cần mô hình hóa dữ liệu sao cho xác suất sau đây đạt giá trị lớn:

P("fox"|"quick","brown","jumps","over")

Vì có nhiều từ ngữ cảnh trong điều kiện, chúng thường được đơn giản hóa bằng cách lấy một từ “trung bình” làm đại diện.

P(𝑤𝑡|𝑤̅𝐶𝑡) Trong đó:

𝑤̅𝐶𝑡là trung bình cộng của các từ trong ngữ cảnh của từ đích 𝑤𝑡.

Embedding của từ trung bình này là trung bình của embedding các từ ngữ cảnh. Xác suất này cũng được định nghĩa tương tự như trong Skip-gram:

𝑃(𝑤𝑡|𝑤̅𝐶𝑡) = exp(𝑢𝑡𝑇1

𝑐C∈Ct𝒗𝒄)

∑ exp(𝑢𝑡𝑇1

𝑐C∈Ct𝒗𝒄)

𝑁𝑖=1

Biểu diễn mạng neural cho CBOW được thể hiện như trong hình 1.4 dưới đây:

Lưu ý rằng giá trị tại tầng ẩn là trung bình cộng của các embedding của các từ ngữ cảnh.

Kỹ thuật tối ưu likelihood này cũng tương tự như trong Skip-gram và phương pháp lấy mẫu âm với các từ đích cũng có thể được sử dụng một cách tương tự.

Hình 1.4 Minh họa CBOW dưới dạng mạng neural

(26)

1.2.7 Phương pháp xác định ngôn ngữ dựa vào học sâu

Mạng nơ-ron sâu (Deep Neural Network - DNN) đã được áp dụng thành công cho nhiều lĩnh vực, bao gồm cả nhận dạng giọng nói và thị giác máy. Đối với các bài toán trong lĩnh vực xử lý ngôn ngữ tự nhiên, mạng nơ-ron hồi qui (Recurrent Neural Network - RNN) [9] được sử dụng rộng rãi hơn vì khả năng ghi nhớ phụ thuộc dạng dãy của nó.

Tuy nhiên, mô hình RNN có vấn đề về sự biến mất gradient (vanishing gradient). Vì RNN có thể được coi là một mạng nơ ron sâu theo thời gian (độ dài dãy đầu vào), các ngữ cảnh ở đầu câu có thể không truyền và nhớ để dự đoán thành phần cuối câu, vì nhiều lớp ẩn trong mạng RNN đã biến đổi phi tuyến.

Mạng nơ-ron bộ nhớ thuật ngữ ngắn dài (LSTM) [10] là phần mở rộng của mạng RNN [11]. Thay vì sử dụng kết nối phi tuyến giữa các hàm kích hoạt của lớp ẩn trong quá khứ và lớp ẩn của lớp hiện tại, nó sử dụng sự phụ thuộc tuyến tính để liên kết bộ nhớ trong quá khứ với bộ nhớ hiện tại. Quan trọng là, một cổng quên được giới thiệu trong LSTM để điều chỉnh từng phần tử của bộ nhớ trong quá khứ được đóng góp vào ô nhớ hiện tại.

LSTM và các phần mở rộng của nó, chẳng hạn như đơn vị hồi tiếp có cổng (GRU - Gated Recurrent Unit)[12] đã được sử dụng thành công trong nhiều bài toán xử lý ngôn ngữ tự nhiên, bao gồm dịch máy[13] và hiểu ngôn ngữ[14].

Để xây dựng một mạng nơ-ron sâu, cách thường làm là xếp chồng nhiều lớp mạng nơ-ron (tầng ẩn). Tuy nhiên, điều này có cùng một vấn đề là xây dựng các mạng lặp lại đơn giản. Sự khác biệt ở đây là các tín hiệu lỗi từ phía trên, thay vì từ lần trước, phải truyền ngược trở lại qua nhiều lớp biến đổi phi tuyến và do đó các tín hiệu lỗi bị giảm nhanh hoặc bùng nổ.

(27)

CHƯƠNG 2: MÔ HÌNH MẠNG LSTM

Trình bày các mô hình nhận biết ngôn ngữ tự động dựa vào học sâu mà đầu vào là các đoạn văn bản. Chúng tôi tập trung vào mô tả chi tiết về lý thuyết mô hình LSTM. Mô hình này được đánh giá là tốt trong các mô hình nhận biết ngôn ngữ dựa vào đoạn văn bản hiện nay và sử dụng chúng trong bài toán xác định ngôn ngữ của luận văn này.

2.1 Mạng Nơ ron nhân tạo

Mạng nơ-ron nhân tạo (Artifical Neural Network - ANN) hay còn gọi là mạng nơ-ron (NN) đang bắt chước cấu trúc của bộ não của con người. Ý tưởng chính của mạng nơ ron là tạo ra một mạng bao gồm nhiều tế bào nơ ron sẽ nhận kiến thức về một nhiệm vụ thông qua huấn luyện, giống như bộ não con người được đào tạo để học những điều mới trong suốt cuộc đời.

Ý tưởng về trí tuệ nhân tạo và cụ thể là mạng nơ ron đã có từ rất lâu, và đã phát triển trong nhiều năm, ngày nay đôi khi được nhắc đến như là học sâu. Học sâu chính là khi mạng nơ ron trở nên sâu hơn có nghĩa là có nhiều lớp ẩn được thêm vào mạng nơ ron.

Thập kỷ vừa qua đã mang lại sự phát triển và cải tiến lớn của mạng nơ ron không chỉ do sức mạnh tính toán được cải thiện mà còn do khả năng thu thập dữ liệu. Dữ liệu lớn, khai thác dữ liệu, cơ sở dữ liệu, nguồn mở và điện toán đám mây đã giúp các nhà khoa học dữ liệu có thể xây dựng các thuật toán về trí tuệ nhân tạo và mô hình học máy mạnh mẽ hơn. Học sâu có thể thực hiện được bởi vì cho đến ngày nay, các máy tính có thể xử lý lượng lớn dữ liệu và kiến trúc lớn của mạng. Học sâu có thể được thực hiện trong các hệ thống cho một số lĩnh vực khác nhau như chẩn đoán bệnh, nhận dạng hình ảnh và nhận dạng ngôn ngữ.

Mạng nơ-ron nhân tạo (Neural Network - NN) là một mô hình lập trình mô phỏng cách thức hoạt động của mạng nơ-ron thần kinh của con người. Kết hợp với các kĩ thuật học sâu (Deep Learning - DL), mạng nơ-ron nhân tạo đang trở thành một công cụ rất mạnh mẽ mang lại hiệu quả tốt nhất cho nhiều bài toán khó như nhận dạng ảnh, giọng nói hay xử lý ngôn ngữ tự nhiên.

Một mạng nơ ron cơ bản nhất là mạng nơ-ron chuyển tiếp. Một NN chuyển tiếp nguồn cấp dữ liệu có thể được sử dụng cho cả ba loại học máy đó là học có giám sát, không giám sát và học tăng cường. Tất cả chúng đều dựa trên cấu trúc cơ bản giống nhau. Mạng nơ-ron được xây dựng bởi một số lớp nơ-ron, còn được gọi là nút, là các đơn vị “ẩn” đang được huấn luyện khi dữ liệu được chạy qua

(28)

chúng. Các nút được kết nối với nhau trong một lớp ẩn, hoạt động giống như một hộp đen của phần học của mô hình mạng nơ-ron. Các kết nối giữa các nút có thể được biểu diễn toán học dưới dạng trọng số, trọng số được cập nhật khi dữ liệu mới được sử dụng làm đầu vào. Một mạng nơ-ron thường bao gồm một số lớp ẩn, với nhiều trọng số được cập nhật trong quá trình huấn luyện mô hình mạng nơ ron [15]. Mạng nơ ron chuyển tiếp nguồn cấp dữ liệu được kết nối, nghĩa là mỗi nút trong mỗi lớp được kết nối với mọi nút trong lớp ẩn tiếp theo (hình 2.1). Một mạng nơ ron chuyển tiếp nguồn cấp cơ bản bao gồm một lớp đầu vào, các lớp ẩn và cuối cùng là một lớp đầu ra.

NN là các mô hình phi tuyến, được thiết kế để mô tả và xử lý các mối quan hệ phi tuyến. Mạng cho một đầu ra z với một đầu vào x, được cung cấp bởi một số lớp ẩn của các hàm tuyến tính và các hàm kích hoạt phi tuyến. Bài toán hồi quy tuyến tính cơ bản được đưa ra bởi phương trình (2.1).

z(x) = β01 + β1𝑥1 + β2𝑥2 + . . . + β𝑀𝑥𝑝

Ở đây đầu ra z được cho bằng tổng tất cả các giá trị đầu vào của x = [1 𝑥1 𝑥2 . . . . 𝑥𝑝]T, mỗi giá trị được nhân với một tham số β𝑀. Để mô tả các mối quan hệ phi tuyến giữa z và x, các yếu tố này được đưa vào một hàm phi tuyến, được gọi là hàm kích hoạt, thường được ký hiệu là σ, phương trình (2.2).

z(x) = σ(β01 + β1𝑥1 + β2𝑥2 + . . . + β𝑀𝑥𝑝) 2.1.1 Hàm kích hoạt.

Hai hàm kích hoạt (Activation functions) phổ biến được sử dụng trong NN là hàm logistic (sigmoid) và hàm (ReLU - Rectified Linear Unit). Chúng được mô tả bằng phương trình (2.3) và (2.4) và được mô tả trong hình 2.2 và 2.3. Ý tưởng về chức năng kích hoạt là bắt chước hoạt động của bộ não con người và hoạt động

Hình 2.1 Một mạng nơron chuyển tiếp nguồn cấp dữ liệu đơn giản

(2.1)

(2.2)

(29)

giống như một "công tắc", trong đó đóng góp đầu vào hoặc là giá trị của 1 hoặc được giữ nguyên là 0.

Hàm sigmoid() đã được lựa chọn đầu tiên làm hàm kích hoạt trong nhiều năm, nhưng trong những năm gần đây, hàm ReLU đơn giản hơn đã trở nên phổ biến được sử dụng. Lý do chính là vì sự đơn giản của ReLU và mạng học nhanh hơn so với hàm sigmoid [16]. Một vài nhược điểm của ReLU là các nơ-ron tiêu cực sẽ được giữ ở mức 0 và rất khó phục hồi, nếu tốc độ học tập quá cao, mô hình có thể ngừng cập nhật các trọng số. Chức năng ReLU chỉ được sử dụng cho các lớp ẩn, không phải cho lớp đầu ra.

Phương trình hàm ReLU: σ(x) = max(0,x)

Phương trình hàm sigmoid như sau: σ(x) = 1

1 + 𝑒−𝑥

Đối với mạng nơ-ron và các mạng nơ-ron sâu hơn nữa, một số đơn vị kích hoạt được ghép lại với nhau và sau đó chúng được mô tả là các đơn vị ẩn hi.

𝑖 = σ( β0𝑖1 + β1𝑖𝑥1 + β2𝑖𝑥2 + . . . + β𝑝𝑖𝑥𝑝), i=1, 2, .... M Hình 2.2 Hàm kích hoạt ReLU() được sử dụng trong NN

Hình 2.3 Hàm kích hoạt sigmoid() được sử dụng trong NN

(2.4) (2.3)

(2.5)

(30)

Trong hình 2.4 có thể thấy một mạng nơ-ron cơ bản, còn được gọi là "mạng nơ-ron hai lớp". Mô hình đầy đủ có thể được biểu diễn toán học dưới dạng ma trận bằng cách mô tả ma trận trọng số W và vectơ bù b, xem các phương trình 2.6.

b(1) = [1 𝛽01(1) 𝛽02(1) . . . 𝛽0𝑀(1)]T

𝑤1 = [

𝛽11(1) . . . 𝛽1𝑀(1) . . . . . . . . . . 𝛽𝑝1(1) . . . 𝛽𝑝𝑀(1)] b(2) = [𝛽0(2)]

𝑤2 = [ 𝛽1(2)

. . 𝛽𝑀(2)]

Do đó mô hình có thể được mô tả bằng phương trình (2.7) và (2.8)

h = 𝜎(W(1)Tx + b(1)T) z = W(2)Th + b(2)T

Hình 2.4 Mạng nơron hai lớp được xây dựng bởi một lớp ẩn, bao gồm M số đơn vị ẩn hi.

(2.7) (2.8) (2.6.1)

(2.6.2)

(2.6.3)

(2.6.4)

(31)

Hơn nữa, mạng nơ ron sâu được mô tả bằng cách thêm nhiều lớp ẩn hơn như được thấy trong hình (2.6.x), trong đó L lớp ẩn cho (M.(L - 1)) đơn vị ẩn2.

2.1.2 Chức năng kích hoạt đầu ra

Cho đến nay, mạng nơron đã được trình bày bao hàm vấn đề hồi quy. Khi xử lý một vấn đề phân lớp, một lớp chức năng kích hoạt khác được thêm vào cho lớp đầu ra.

2 A. Lindholm, N. Wahlström, F. Lindsten, T. B. Schön. Supervised Machine Learning. Department of Information Technology, Uppsala University. Avail- able at:

http://www.it.uu.se/edu/course/homepage/sml/literature/lecture_notes.pdf. March, 2019

Hình 2.5 Mạng nơ ron học sâu với L lớp ẩn

Hình 2.6 Lớp đầu ra softmax trong một bài toán phân loại, mang lại xác suất cho mỗi lớp cho một mẫu đầu vào

(32)

Điều này sẽ biến các đơn vị ẩn thành xác suất cho mỗi lớp, vì một bài toán phân loại xử lý dữ liệu định tính thay vì dữ liệu định lượng (như trong hồi quy).

Từ lớp đầu ra trong hình 2.5, chúng ta bổ sung thêm lớp softmax. Hình 2.6 cho thấy ý tưởng về lớp đầu ra softmax, lớp này sẽ mang lại xác suất của mọi lớp, trong trường hợp này là đối tượng mà đầu vào x đang đại diện.

Phương trình (2.9) cung cấp cho hàm softmax() và có thể được nhìn thấy trong hình 2.7. Hàm softmax() cung cấp một xác suất cho mỗi lớp, tổng lên đến 1. Mặt khác, hàm kích hoạt sigmoid() tạo ra các giá trị từ 0 đến 1 độc lập với nhau và không tổng thành 1.

S(𝑦𝑖) = 𝑒𝑦𝑖

∑ 𝑒𝑗 𝑦𝑖

Hàm Softmax() xuất ra một vectơ xác suất cho mỗi lớp. Điều này có thể cung cấp một gợi ý về mức độ chắc chắn của mô hình về việc dự đoán đúng lớp, hoặc mô hình bị nhầm lẫn như thế nào. Giá trị cao nhất của vectơ đầu ra softmax được chọn làm lớp dự đoán hoặc giá trị ngưỡng có thể được chọn cho mục đích này.

Kiến trúc chung của mạng nơ-ron đã được thiết lập, bây giờ chuyển sang cách mạng nơ-ron đang được huấn luyện trên các mẫu đầu vào mới x. Khi huấn luyện mạng nơ-ron, mục tiêu chính là giảm thiểu hàm mất mát. Hàm mất mát là một hàm mô tả khoảng cách giữa nhãn chính xác của dữ liệu đầu vào và nhãn dự đoán được đưa ra bởi mô hình mạng nơ-ron. Hình 2.8 cho thấy mô hình sẽ lặp lại để tìm ra giá trị mà ở đó hàm mất mát là tối thiểu. Khi hàm mất mát được tìm thấy, đó là những giá trị của trọng số mà mô hình cần giữ để hoạt động tốt. Hàm mất mát cung cấp khoảng cách giữa nhãn thực z của đầu vào x so với đầu ra dự đoán 𝑧0. Thông qua sự lan truyền ngược và tối ưu hóa, các trọng số của mạng

Hình 2.7 Hàm softmax()

(2.9)

(33)

được cập nhật. Sự lan truyền ngược tính toán độ dốc của hàm mất mát bằng cách đi ngược lại trong mạng nơ-ron để cập nhật trọng số. Một kỹ thuật tối ưu hóa phổ biến là giảm độ dốc ngẫu nhiên, sẽ tìm ra tổn thất nhỏ nhất như trong hình 2.8.

Một phương pháp thay thế của phương pháp này là phương pháp tối ưu hóa được gọi là ADAM (ước lượng thời điểm thích ứng) [17].

Tập dữ liệu được chia thành các phần khác nhau, một tập dữ liệu để huấn luyện, một tập dữ liệu để xác nhận và một tập dữ liệu để kiểm thử (tập dữ liệu tạm dừng). Tập dữ liệu huấn luyện được sử dụng để huấn luyện các trọng số của mô hình trong quá trình lan truyền ngược. Mặt khác, bộ dữ liệu xác nhận và kiểm thử chỉ được sử dụng để đánh giá mô hình, để xem mô hình hoạt động như thế nào trên dữ liệu mới. Bộ dữ liệu xác nhận được sử dụng trong quá trình đào tạo như một đánh giá không thiên vị.

Điều quan trọng là phải giữ cho tập dữ liệu đào tạo được tách biệt hoàn toàn khỏi tập xác nhận và kiểm tra, vì mô hình được cho là chung cho tất cả các loại dữ liệu. Nếu tập dữ liệu xác nhận cũng được sử dụng để đào tạo, thì mô hình sẽ bị sai lệch và không cho kết quả đáng tin cậy khi mô hình được sử dụng trên dữ liệu mới, dữ liệu chưa nhìn thấy. Tập dữ liệu xác thực được sử dụng để xác thực mô hình trong quá trình đào tạo. Một tập dữ liệu bổ sung, tập dữ liệu thử nghiệm, được sử dụng để đánh giá thêm về mô hình và nó dự đoán dữ liệu mới tốt như thế nào? Tất cả các mẫu dữ liệu đều được gắn nhãn và do đó, các dự đoán có thể được so sánh với các nhãn thực tế.

Phần tách của tập dữ liệu hoàn chỉnh là: 80% dữ liệu huấn luyện, 10% dữ liệu xác thực và 10% dữ liệu kiểm tra. Sự phân chia có thể được phân chia khác nhau giữa các bộ dữ liệu, cũng có thể sử dụng xác thực chéo, để sử dụng tất cả dữ liệu mà không gặp rủi ro, mô hình trang bị quá mức hoặc trang bị thiếu. Hiện tượng Overfitting có nghĩa là mô hình phù hợp tốt với dữ liệu huấn luyện, nhưng không tổng quát hóa tốt trên các mẫu dữ liệu mới. Việc trang bị một mô hình như

Hình 2.8 Tìm giá trị hàm mất mát nhỏ nhất là mục tiêu khi huấn luyện mạng nơ ron

Gambar

Hình 1.1 miêu tả kiến trúc chung của các hệ thống. Tất cả đều là phương  pháp thống kê, và làm việc với một tập các ngôn ngữ  được xác định trước
Hình 1.2 Máy hỗ trợ vectơ SVM
Hình 1.3 Minh họa Skip-gram dưới dạng mạng neural.
Hình 1.4 Minh họa CBOW dưới dạng mạng neural
+7

Referensi

Dokumen terkait

Tuy nhiên, tập trung bàn về những đóng góp của Saussure trong lĩnh vực văn chương, người nghiên cứu gặp phải những khó khăn như: Saussure được biết đến trước hết với tư cách là một nhà

Bài mới: - Giới thiệu: Bài Mở rộng vốn từ: Công dân sẽ giúp các em mở rộng, hệ thống hóa vốn từ gắn với chủ điểm Công dân cũng như vận dụng vốn từ đã học, viết được một đoạn văn ngắn

VIẾT BÁO CÁO VỀ CÔNG TRÌNH NGHIÊN CỨU Bố cục của một đề tài NCKH về khoa học tự nhiên về cơ bản bao gồm: Chương 1: Tổng quan - Giới thiệu chung về vấn đề nghiên cứu - Lịch sử nghiên

Đặc biệt hơn ở giai đoạn này, do ảnh hưởng ngôn ngữ nước ngoài, với những trí thức được đào tạo và ảnh hưởng bởi văn học, tư tưởng phương Tây nên xuất hiện nhiều từ mới, nhiều từ được

Mô tả của ông như sau: TTK thiếu quan hệ tiếp xúc về mặt tình cảm với người khác; cách chọn lựa các thói quen hàng ngày rất giống nhau về tính tỉ mỉ và tính kỳ dị; không có ngôn ngữ

Điều 5 khoản 3 của Hiến pháp nƣớc Cộng hòa Xã hội Chủ nghĩa Việt Nam năm 2013 có viết: “Ngôn ngữ quốc gia là tiếng Việt.” Cùng với những quy định, biện pháp nhằm xây dựng tiếng Việt sao

KẾT LUẬN Như vậy, từ các góc độ địa lý, lịch sử, văn hóa và ngôn ngữ, có thể hình dung quá trình hình thành và biến đổi địa danh “Cần Thơ” như sau: 1 tên gọi đầu tiên xuất hiện ở vùng

Như vậy, luận văn giải quyết bài toán phân loại các đoạn tín hiệu điện não liên tục theo thời gian sử dụng mô hình học sâu, cụ thể là mạng nơ-ron tích chập và đánh giá kết quả trên hai