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
Trang 1Đ¾I HàC QUàC GIA HÀ NàI
TR¯äNG Đ¾I HàC CÔNG NGHÞ
LU ÀN VN TH¾C S) CÔNG NGHÞ THÔNG TIN
NG¯äI H¯âNG D¾N KHOA HàC: TS NGUYỄN VN VINH
Hà N ái 2021
Trang 2Đ¾I HàC QUÞC GIA HÀ NàI TR¯äNG Đ¾I HàC CÔNG NGHÞ
LU ÀN VN TH¾C S) CÔNG NGHÞ THÔNG TIN
NG¯äI H¯âNG D¾N KHOA HàC: TS NGUYỄN VN VINH
Hà N ái 2021
Trang 3L à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
Trang 4L à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
Trang 5MĀ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
Trang 62.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
Trang 7Danh m āc các ký hiệu và chā viÁt tắt
LI Language Identification Xác đßnh ngôn ngữ
LID Automatic Language Identification Tự đáng nhận biết ngôn ngữ
ANN Artifical Neural Network M¿ng nơ ron nhân t¿o
FFNN Feed Forward Neural Network M¿ng nơ ron chuyển tiếp
nguồn cung cấp
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
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ơ
Trang 8Bả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
Trang 9Danh 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
Trang 10M Ở ĐÀ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
Trang 11Ch°¡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
Trang 12CH¯¡NG 1: TàNG QUAN V BÀI TOÁN NH¾N BIÀT NGÔ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 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ý
Trang 13ngô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, , āÿ21, āÿ, 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, , āþ21, āþ) =
P(ā1)*P(ā2|ā1)*P(ā3|ā1ā2)* *P(āþ|ā1ā2& āþ21)
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, , āþ21) = P(āþ|āþ2ÿ, āþ2ÿ+1, , āþ21)
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
Trang 14Tuy 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(āÿ|āÿ22āÿ21)
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ó (āþ2ÿ, āþ2ÿ+1, , āþ21) chứ không phải
phā thuác vào toàn bá dãy từ đứng trước (ā1, ā2, , āþ21) 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(āþ21|āþ2ÿ21āþ2ÿ …āþ22)*P(āþ|āþ2ÿāþ2ÿ+1 …āþ21)
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
Trang 15Xá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
Trang 16Khi 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
ĀĀ = 3þÿ=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’| là sá lưÿng các từ trong văn bản d’
1.5
1.6
Trang 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
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
Trang 18Phương trình siêu mặt phẳng chứa vector āÿ trong không gian như sau:
ā�㕖
⃗⃗⃗ ā⃗⃗ + b = 0
h(ā⃗⃗⃗ ) = sign(ā�㕖 ⃗⃗⃗ ā⃗⃗ ) = {+, ā�㕖 ⃗⃗⃗ ā⃗⃗ + ÿ > 0�㕖
2, ā⃗⃗⃗ ā⃗⃗ + ÿ < 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
Trang 19phá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(ā⃗⃗ ,ĀĀ) = 3āÿ ∈ {�㔾þþ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ }ýÿþ(Ă,⃗⃗⃗ ā⃗⃗⃗⃗⃗ 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)
Trang 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
(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
Trang 21Khi <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
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
Trang 22Giả 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(ÿ�㕡�㕇�㖗�㖄)
3�㕁ÿ=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:
3ā ∈ �㖗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;āþ)=2 3 log exp(ÿþ�㕇�㖗�㖄)
3 ý 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)
Trang 23Nhậ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(āĀ| āþ) = 3 log exp(ÿ�㕡�㕇Āý)
3�㕁ÿ=1exp(ÿ�㕡�㕇Āý)
ÿ ∈ ÿ�㕡 =ÿþĀĀĀ - log3þÿ=1exp (ÿþĀĀĀ) Đ¿o hàm theo ÿþ:
�㔕ýĀĄ�㕃(āý| ā�㕡)
�㔕ÿ�㕡 = ĀĀ - 3 exp(ÿ�㕡�㕇Āý)
3�㕁ÿ=1exp(ÿ�㕡�㕇Āý)
þ Ā21 = ĀĀ - 3þ ÿ(āĀ|
Ā=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
Trang 24X ấ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:
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(2ÿþĀĀĀ) 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
Trang 251.2.6.2 Túi từ liên tục (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ý3C∈Ct�㖗�㖄)
3�㕁ÿ=1exp(ÿ�㕡�㕇1ý3C∈Ct�㖗�㖄)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
Trang 261.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ổ
Trang 27CH¯¡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
Trang 28chú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)
Trang 29giá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 + Ă 2þĐá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)