Chương 1 Cơ sở lý thuyết Trong chương đầu của luận văn, tôi sẽ trình bày ngắn gọn các kiến thức cơ sở liên quan đến nội dung chính của luận văn. Nội dung của chương sẽ bao gồm hai phần chính: • Giới thiệu tổng quan về ngôn ngữ tự nhiên: một số bài toán, kiến thức cơ bản về xử lý ngôn ngữ tự nhiên, cơ sở lý thuyết về ngôn ngữ tự nhiên, các hướng tiếp cận chính. • Giới thiệu về mô hình ngôn ngữ, định nghĩa và khái niệm, mô hình ngôn ngữ cổ điển và mô hình ngôn ngữ hiện đại. Phần mô hình ngôn ngữ hiện đại sẽ đi sâu về mô hình BERT [13].
Một số kiến thức, khái niệm liên quan như là học sâu (deep learning), cơ chế chú ý (attention), kiến trúc biến đổi (transformer) cũng sẽ được lồng ghép trong nội dung của chương này. 7 LUẬN VĂN THẠC SĨ NGUYỄN HOÀNG ĐẠT 1.1 Xử lý ngôn ngữ tự nhiên 1.1 Giới thiệu về xử lý ngôn ngữ tự nhiên Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là một lĩnh vực nghiên cứu cách để máy tính có thể hiểu, xử lý, phân tích và sử dụng ngôn ngữ tự nhiên của con người [8]. Ngôn ngữ tự nhiên là ngôn ngữ mà con người sử dụng để giao tiếp hàng ngày, có thể thể hiện ở dạng chữ viết, đánh máy, chữ nổi,. Xử lý ngôn ngữ tự nhiên liên quan đến nhiều lĩnh vực khác bao gồm ngôn ngữ học tính toán, khoa học tính toán, khoa học nhận thức và trí tuệ nhân tạo.
Xử lý ngôn ngữ tự nhiên có nhiều ứng dụng trong đời sống, trong đó một số ứng dụng rất dễ nhận ra đó là tìm kiếm Google, Google dịch, trợ lý ảo Siri của Apple, Cortana của Microsoft. Cốt lõi của các ứng dụng đó là những bài toán cơ bản trong NLP: gán nhãn văn bản (document classification), gán nhãn chuỗi (sequence classification), trả lời câu hỏi (question answering), phân tích phụ thuộc (dependency parsing), mô hình ngôn ngữ (language modeling).2 Cơ sở lý thuyết của ngôn ngữ tự nhiên Trước khi bắt đầu giải quyết một bài toán NLP, kiến thức về ngôn ngữ là thiết yếu [26]. Những kiến thức đó sẽ quy định một đoạn ký tự thế nào thì tạo thành một từ có nghĩa, cấu trúc từ như thế nào sẽ tạo một câu có nghĩa, hay là một từ có nghĩa như thế nào trong ngữ cảnh cho trước. 8 LUẬN VĂN THẠC SĨ NGUYỄN HOÀNG ĐẠT Một số khái niệm cơ bản của ngôn ngữ tự nhiên • Hình thái (morphology): Phân tích và miêu tả cấu trúc của hình vị và các đơn vị ý nghĩa khác như phụ tố, từ loại, thanh điệu, hàm ý.
Trong đó, khái niệm từ loại đặc biệt dùng nhiều trong các bài toán NLP. Từ loại (part of speech - POS) là những nhóm từ có chức năng, kiểu nghĩa giống nhau. Ba loại từ loại chính đó là danh từ, động từ, tính từ. Phụ tố bao gồm tiền tố (prefix) và hậu tố (suffix) là các từ đặt trước hay sau từ khác, làm bổ sung hay thay đổi nghĩa của từ.
Phụ tố dễ thấy ở tiếng Anh hơn, ví dụ như ed, s, un, còn tiếng Việt thì có thể coi một số từ như là sẽ, đã, đang, rồi, chưa. • Cú pháp (syntax): Cách các từ được sắp xếp và kết hợp lại với nhau để tạo nên cụm từ, câu văn, đoạn văn. Phân tích cú pháp giúp xác định từ chính trong cụm từ, phân tích cấu trúc câu như là chủ ngữ, vị ngữ, bổ ngữ. • Ngữ nghĩa (sematics): Ý nghĩa của cụm từ, câu văn có thể đưa ra từ ý nghĩa từng từ và cú pháp.
Phân tích ngữ nghĩa liên kết từ, cụm từ và câu với sự vật và hiện tượng, xác định chủ thể của hành động là gì, hành động là gì và như thế nào. • Ngữ dụng (pragmatics): Ý nghĩa của cụm từ, câu văn trong ngữ cảnh sử dụng cụ thể. Thông tin về ngữ cảnh có thể thay đổi cách hiểu về sự vật hiện tượng trong câu. • Diễn ngôn (discourse): Phân tích ý nghĩa ngôn ngữ trong cả văn bản, đoạn hội thoại, xác định vai trò về ý nghĩa của câu trong tổng thể cả câu chuyện.
9 LUẬN VĂN THẠC SĨ NGUYỄN HOÀNG ĐẠT. Một tính chất đặc biệt quan trọng của ngôn ngữ tự nhiên đó là tính nhập nhằng. Tính nhập nhằng của ngôn ngữ tự nhiên Định nghĩa 1. Tính nhập nhằng (ambiguity) là khả năng có thể hiểu một xâu (câu văn, đoạn văn) theo nhiều nghĩa khác nhau.
Tính nhập nhằng của ngôn ngữ tự nhiên có thể được thể hiện ở một số dạng như sau: • Từ vựng nhập nhằng (Lexical Ambiguity): Một từ có thể được hiểu theo nhiều nghĩa khác nhau. • Cú pháp nhập nhằng (Syntactic Ambiguity): Một câu có thể được phân tích cú pháp theo nhiều cách khác nhau. • Ngữ nghĩa nhập nhằng (Sematic Ambiguity): Một câu, theo cùng một cách phân tích cú pháp có thể được hiểu theo nhiều nghĩa khác nhau. • Ngữ dụng nhập nhằng (Pragmatic Ambiguity): Một câu, có thể hiểu theo nghĩa khác nhau tùy thuộc ngữ cảnh.
Nhận biết và xử lý tính nhập nhằng là vấn đề quan trọng trong việc tiếp cận các bài toán xử lý ngôn ngữ tự nhiên, đồng thời cũng hầu như là phần khó nhất của bài toán NLP. 10 LUẬN VĂN THẠC SĨ NGUYỄN HOÀNG ĐẠT 1.3 Hướng tiếp cận chính trong xử lý ngôn ngữ tự nhiên Hướng tiếp cận giải quyết những bài toán NLP thay đổi theo thời gian, phụ thuộc vào những phát hiện, nghiên cứu mới. Quá trình phát triển của NLP có thể chia làm ba giai đoạn chính, tương ứng với ba hướng tiếp cận chính. Trong đó, hướng tiếp cận chính được xem xét trong luận văn sẽ là hướng tiếp cận sử dụng học sâu.
Hướng tiếp cận dựa vào logic Trong giai đoạn đầu của NLP, với các vấn đề cụ thể, những chuyên gia sẽ miêu tả lại những tri thức và sự lập luận của con người thành các quy tắc, sau đó lập trình các quy tắc này vào hệ thống NLP. Những hệ thống NLP tốt nhất tại thời điểm đó, ví dụ như là ELIZA [57], đều được xây đựng bởi những bộ quy tắc rất phức tạp. Những hệ thống NLP xây dựng theo hướng này rất hiệu quả khi sử dụng trong vấn đề hẹp mà chuyên gia đã giải quyết. Hơn nữa, kết quả của các hệ thống này đều dựa trên các logic rõ ràng và chi tiết, vì vậy, người dùng có thể dễ dàng hiểu được và tận dụng hệ thống.
Tuy nhiên, do tính nhập nhằng của ngôn ngữ, ngay với vấn đề nghe có vẻ đơn giản như xác định sắc thái của một đoạn văn cũng cần đưa ra rất nhiều quy tắc để có thể bao trùm nhiều trường hợp. Dễ thấy, hướng tiếp cận này là khó có thể áp dụng , khái quát hóa cho các lĩnh vực hay bài toán khác, làm giảm đi sự linh hoạt của hệ thống. Hướng tiếp cận dựa vào kinh nghiệm Khi lượng dữ liệu và khả năng tính toán của hệ thống máy tính tăng lên, hướng tiếp cận cho các bài toán NLP tập trung nhiều hơn vào dữ liệu lớn và 11 LUẬN VĂN THẠC SĨ NGUYỄN HOÀNG ĐẠT các thuật toán học máy [36], thay vì các quy tắc và lý thuyết về ngôn ngữ. [40] Một chương trình máy tính được xem là học được từ kinh nghiệm E liên quan đến họ các công việc T được đo hiệu suất bằng P, nếu mà hiệu suất của chương trình khi thực hiện công việc trong T đo bởi P, được cải thiện bằng kinh nghiệm E.
Học máy là các kỹ thuật cho phép học từ dữ liệu mà không cần lập trình rõ. Việc học bản chất là giải quyết bài toán tối ưu với nghiệm là bộ tham số để tối đa hiệu suất P dựa vào kinh nghiệm E. Hướng tiếp cận dựa vào kinh nghiệm giả thiết rằng cấu trúc của ngôn ngữ có thể học được thông qua dữ liệu, vì vậy không cần định nghĩa một cách quá chi tiết các quy tắc để đưa vào hệ thống NLP. Độ chính xác khi dự đoán dữ liệu mới của thuật toán dần tăng lên khi thuật toán thu lại được nhiều "kinh nghiệm" hơn.
Hai lớp bài toán chính học máy giải quyết bao gồm: • Học có giám sát (supervised learning): mỗi một quan sát trong tập dữ liệu dùng để học là một cặp x, y, trong đó x ∈ X là giá trị quan sát được, và y ∈ Y là một nhãn tương ứng thuộc tập nhãn Y gán với quan sát đó. Mục tiêu của bài toán học giám sát là học được một ánh xạ từ X → Y , để có thể dự đoán nhãn của một quan sát mới. Một số thuật toán học máy hay được sử dụng đó là mô hình phân loại Naive-Bayes, mặt phân cách (support vector classifier - SVC),. • Học không giám sát (unsupervised learning): mô hình học, khám phá những cấu trúc ẩn trong một tập dữ liệu cho trước.
Cấu trúc ẩn ở đây có thể là cụm các quan sát có điểm tương đồng, hay là quan hệ giữa một số quan sát hay đặc trưng với nhau. Khác với học có giám sát, mỗi quan 12 LUẬN VĂN THẠC SĨ NGUYỄN HOÀNG ĐẠT sát ở đây không biết trước thông tin nó thuộc cụm nào hay có quan hệ như thế nào mà mô hình tự khám phá điều đó. Ngoài ra, một số lớp bài toán khác là học bán giám sát (semi-supervised learning), tự giám sát (self-supervised learning), học tăng cường (reinforce- ment learning). Mô hình học máy không phải lúc nào cũng học được "kinh nghiệm" tốt.
Trong một số trường hợp, mô hình không học được từ dữ liệu, khiến cho kết quả dự đoán trên tập luyện không được như mong muốn, khi này mô hình bị dưới khớp (underfit). Ngược lại, một số trường hợp mô hình hoạt động rất tốt trên tập dữ liệu luyện, nhưng khi sử dụng với dữ liệu mới thì kết quả rất tệ. Khi này, mô hình bị quá khớp (overfit), do mô hình đã học phải nhiễu từ dữ liệu. Dữ liệu luyện có thể lỗi, không cân bằng, thiếu đa dạng.
Để phát hiện sớm những hiện tượng nay, tập dữ liệu ban đầu sẽ tách thành hai phần: phần dữ liệu luyện để mô hình và phần dữ liệu kiểm thử để đánh giá mô hình trong quá trình luyện. Những phương pháp dựa vào dữ liệu tập trung vào các vấn đề rộng và khái quát nhưng cũng đơn giản hơn, khác với phương pháp cũ tập trung phân tích sâu trong vấn đề hẹp. Các phương pháp học máy tại thời điểm này vẫn tồn tại hạn chế là phải lựa chọn đúng các đặc trưng để mô tả dữ liệu và đưa vào mô hình. Việc này ảnh hưởng lớn đến hiệu quả của mô hình và thường được thực hiện bởi chuyên gia.