Natural Language Understanding (NLU)
Hiểu ngôn ngữ tự nhiên (NLU) là một phần của NLP, trích xuất ý nghĩa, ý định và thực thể từ văn bản, như trong trợ lý giọng nói và công cụ tìm kiếm.
Hiểu ngôn ngữ tự nhiên (NLU) là phần của xử lý ngôn ngữ tự nhiên (NLP) xác định ý nghĩa của một đoạn văn bản: người viết muốn gì, họ nhắc đến những đối tượng nào và cần chọn cách diễn giải nào khi câu chữ có thể mang nhiều nghĩa. Hệ thống NLU chuyển "Book a table for two at 7 tomorrow" thành một yêu cầu có cấu trúc, gồm ý định như reserve_table cùng các trường về số người, giờ và ngày để phần mềm xử lý. Trợ lý ảo, chatbot dịch vụ khách hàng và công cụ tìm kiếm chạy NLU trên mỗi yêu cầu trước khi quyết định hành động hoặc phản hồi.
Vì sao việc hiểu ngôn ngữ lại khó#
Cùng một từ có thể mang ý nghĩa khác nhau ở mọi cấp độ. "Bank" có thể là ngân hàng hoặc bờ sông; câu "I saw the man with the telescope" không cho biết ai đang cầm kính viễn vọng; còn trong câu "The trophy doesn't fit in the brown suitcase because it is too big," "it" chỉ chiếc cúp, nhưng nếu đổi "big" thành "small" thì "it" lại chỉ chiếc vali. Năm 2011, Hector Levesque đề xuất các tình huống Winograd như vậy để kiểm tra khả năng hiểu của máy, vì giải quyết chúng đòi hỏi kiến thức về thế giới chứ không chỉ thống kê từ ngữ. Các hệ thống dựa trên quy tắc đời đầu như SHRDLU (1968–1970) của Terry Winograd chỉ hiểu lệnh được nhập trong một thế giới mô phỏng gồm các khối mà quy tắc của hệ thống mô tả đầy đủ.
Các tác vụ cốt lõi của NLU#
- Phân loại ý định: Gán yêu cầu vào một trong các mục tiêu của ứng dụng, chẳng hạn kiểm tra số dư hoặc khóa thẻ.
- Nhận dạng thực thể có tên (NER): Tìm người, địa điểm, sản phẩm, ngày tháng và số tiền được nhắc đến trong yêu cầu; trợ lý dùng chúng để điền các trường của ý định.
- Phân tích ngữ nghĩa: Ánh xạ câu thành biểu diễn hình thức mà chương trình có thể thực thi, chẳng hạn truy vấn cơ sở dữ liệu hoặc lệnh gọi API.
- Giải quyết đồng tham chiếu: Liên kết đại từ và các cách quy chiếu khác với thực thể mà chúng chỉ đến.
- Suy luận ngôn ngữ tự nhiên: Xác định một câu kéo theo, mâu thuẫn hay trung tính so với câu khác.
- Phân tích cảm xúc: Xác định ý kiến được thể hiện trong văn bản.
Trợ lý thường phân loại ý định bằng một bộ mã hóa transformer được tinh chỉnh. Bộ mã hóa câu cũng có thể phân loại ý định theo cách one-shot, chỉ cần một ví dụ cho mỗi ý định, bằng cách chọn ý định có ví dụ gần nghĩa nhất với yêu cầu:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# One labeled example per intent, as an assistant's training data would provide
intents = {
"check_balance": "What is my account balance?",
"block_card": "Please freeze my debit card",
"transfer_money": "Send money to another account",
}
utterances = ["my card was stolen", "how much cash do I have left", "pay Alex back 20 dollars"]
# Assign each utterance the intent whose example is closest in meaning
scores = model.similarity(model.encode(utterances), model.encode(list(intents.values())))
for text, row in zip(utterances, scores):
best = int(row.argmax())
print(f"{text!r} -> {list(intents)[best]} ({row[best]:.2f})")Cả ba yêu cầu đều nhận đúng ý định: block_card (0.42), check_balance (0.49) và transfer_money (0.28). "how much cash do I have left" và "pay Alex back 20 dollars" không có từ nào trùng với ví dụ ý định tương ứng, vì vậy kết quả khớp dựa trên embedding chứ không phải từ khóa. Yêu cầu chuyển tiền đạt 0.28, cao hơn mức 0.17 của các ý định còn lại; các framework như Rasa chuyển yêu cầu có điểm cao nhất thấp hơn ngưỡng tin cậy sang phương án dự phòng, yêu cầu người dùng diễn đạt lại.
Benchmark và model#
GLUE (2018) kết hợp chín tác vụ câu và cặp câu, gồm phân tích cảm xúc, phát hiện diễn đạt lại và suy luận ngôn ngữ tự nhiên, thành một điểm số; BERT nâng điểm số lên 80.5 vào năm 2018. Phiên bản kế nhiệm khó hơn là SuperGLUE (2019) bổ sung tác vụ đồng tham chiếu kiểu Winograd; đến tháng 1 năm 2021, DeBERTa của Microsoft và T5 + Meena của Google đều vượt mức cơ sở của con người là 89.8. Điểm cao có thể dựa vào học lối tắt: năm 2018, Suchin Gururangan và các cộng sự cho thấy bộ phân loại chỉ đọc câu thứ hai của mỗi cặp suy luận vẫn gán nhãn đúng khoảng 67% dataset SNLI, vì các dấu hiệu như từ phủ định có tương quan với nhãn "mâu thuẫn". Hiện nay, mô hình ngôn ngữ lớn (LLM) thực hiện phần lớn tác vụ NLU từ prompt; model bộ mã hóa nhỏ vẫn phổ biến khi độ trễ và chi phí mỗi yêu cầu là yếu tố quan trọng.
NLU trong tìm kiếm và thị giác#
Tìm kiếm ngữ nghĩa áp dụng NLU vào truy vấn, đối chiếu ý nghĩa của truy vấn thay vì khớp chính xác từng từ; tìm kiếm vector giúp thực hiện việc này nhanh chóng trên hàng triệu mục. Ý tưởng tương tự hoạt động giữa các phương thức khi văn bản và hình ảnh dùng chung không gian embedding, như trong CLIP. Tab Images trên trang Explore của Ultralytics Platform nhận mô tả cảnh như "cats on a sofa" rồi trả về hình ảnh từ các dataset công khai dựa trên nội dung hiển thị, không phụ thuộc tên tệp hay thẻ.
NLU và các thuật ngữ liên quan#
- NLP: Toàn bộ lĩnh vực máy tính xử lý ngôn ngữ của con người. NLU diễn giải đầu vào, còn tạo ngôn ngữ tự nhiên (NLG) tạo đầu ra.
- Nhận dạng giọng nói: Chuyển âm thanh lời nói thành văn bản, sau đó NLU diễn giải bản chép lời.
- Nhận dạng ký tự quang học (OCR): Trích xuất ký tự từ hình ảnh văn bản để NLU có thể đọc và hiểu ý nghĩa.
- Hỏi đáp: Trả lời câu hỏi bằng ngôn ngữ tự nhiên; việc này đòi hỏi NLU diễn giải cả câu hỏi lẫn văn bản chứa câu trả lời.










