Word Embedding trong NLP: Biểu diễn từ bằng vector
“mèo” → [0.21, −0.74, 0.35, ..., 0.18]
Biểu diễn từ bằng vector (word embedding) là kỹ thuật ánh xạ mỗi từ sang một vector số có số chiều cố định. Thay vì coi các từ chỉ là những ký hiệu rời rạc, Word Embedding cho phép mô hình học máy xử lý chúng trong một không gian số, nơi những từ có cách sử dụng hoặc ngữ nghĩa gần nhau thường có biểu diễn tương đối gần nhau.
Word Embedding giải quyết hạn chế của cách biểu diễn từ rời rạc bằng cách học một vector dày đặc cho mỗi từ. Khoảng cách và góc giữa các vector có thể phản ánh một phần quan hệ về ngữ nghĩa hoặc cách dùng từ. Bài viết trình bày trực giác toán học, cách Word2Vec học embedding, phép đo cosine, ví dụ Python và sự khác biệt giữa embedding tĩnh với embedding theo ngữ cảnh.
1. Vì sao NLP cần Word Embedding?
Máy tính không trực tiếp hiểu các từ như “học sinh”, “giáo viên” hay “trường học”. Trước khi đưa văn bản vào mô hình, mỗi từ cần được chuyển thành một dạng số. Một cách đơn giản là gán cho mỗi từ một chỉ số, nhưng các chỉ số như 12, 53 hay 917 không mang thông tin về quan hệ giữa các từ.
Biểu diễn one-hot giải quyết phần nào vấn đề này bằng cách tạo một vector có kích thước bằng số lượng từ trong từ điển. Nếu từ điển có V từ thì mỗi từ được biểu diễn bằng một vector V chiều, trong đó chỉ có một phần tử bằng 1 và các phần tử còn lại bằng 0.
“chó” = [0, 1, 0, 0, 0]
“xe” = [0, 0, 1, 0, 0]
Vấn đề là các vector này trực giao với nhau. Theo biểu diễn one-hot, “mèo” không gần “chó” hơn so với “mèo” và “xe”. Ngoài ra, khi từ điển có hàng chục nghìn từ, vector trở nên rất lớn nhưng hầu hết phần tử bằng 0.
Word Embedding thay thế biểu diễn thưa đó bằng một vector ngắn và dày đặc hơn. Ví dụ, một từ có thể được biểu diễn bởi vector 100 chiều thay vì vector 50.000 chiều.
2. Không gian vector và ý nghĩa của khoảng cách
Giả sử một từ w được ánh xạ thành vector vw ∈ ℝd, trong đó d là số chiều của embedding. Khi mô hình được huấn luyện trên một lượng văn bản đủ phù hợp, những từ có môi trường sử dụng tương tự thường có vector gần nhau.
Chẳng hạn, các từ “mèo”, “chó” và “thỏ” có thể xuất hiện gần những từ như “nuôi”, “thú cưng”, “ăn” hoặc “con vật”. Vì chúng có ngữ cảnh sử dụng tương đối giống nhau, quá trình huấn luyện có thể đưa các vector của chúng vào những vùng gần nhau trong không gian.
Một phép đo thường dùng để so sánh hai vector là độ tương đồng cosine (cosine similarity). Với hai vector u và v, ta có:
Giá trị càng gần 1 thì hướng của hai vector càng giống nhau. Trong NLP, điều đó thường được diễn giải là hai biểu diễn có mức tương đồng cao hơn, nhưng không nên đồng nhất tuyệt đối cosine cao với “đồng nghĩa”. Mô hình học từ thống kê sử dụng từ, vì vậy nó có thể đặt các từ có chức năng hoặc chủ đề liên quan gần nhau dù nghĩa không hoàn toàn giống nhau.
3. Word2Vec học vector từ như thế nào?
Word2Vec là một nhóm phương pháp học embedding từ các cặp từ và ngữ cảnh. Hai kiến trúc phổ biến là CBOW và Skip-gram. Điểm cốt lõi của cả hai không phải là ghi nhớ định nghĩa của từ, mà là học từ cách các từ xuất hiện cùng nhau trong văn bản.
CBOW: dự đoán từ trung tâm
Với câu:
Nếu từ trung tâm là “nằm”, CBOW có thể sử dụng các từ xung quanh như “mèo”, “đang”, “trên”, “ghế” để dự đoán từ trung tâm. Qua rất nhiều ví dụ, mạng học các vector giúp thực hiện nhiệm vụ dự đoán này tốt hơn.
Skip-gram: dự đoán ngữ cảnh
Skip-gram thực hiện chiều ngược lại: từ một từ trung tâm, mô hình dự đoán những từ có khả năng xuất hiện trong vùng lân cận của nó. Nếu từ trung tâm là “mèo”, các từ như “con”, “nuôi”, “chạy”, “ăn” hoặc “thú cưng” có thể xuất hiện trong các ngữ cảnh liên quan.
| Phương pháp | Đầu vào | Mục tiêu |
|---|---|---|
| CBOW | Các từ ngữ cảnh | Dự đoán từ trung tâm |
| Skip-gram | Từ trung tâm | Dự đoán các từ xung quanh |
Sau khi huấn luyện, phần quan trọng không nhất thiết là bộ phân loại dùng để dự đoán từ, mà chính là ma trận trọng số chứa các vector embedding đã học được.
4. Word2Vec, GloVe và embedding theo ngữ cảnh khác nhau ở đâu?
Word Embedding không phải là tên của một mô hình duy nhất. Đây là một nhóm kỹ thuật biểu diễn ngôn ngữ bằng vector.
| Phương pháp | Ý tưởng chính | Biểu diễn một từ | Hạn chế chính |
|---|---|---|---|
| Word2Vec | Học qua dự đoán từ và ngữ cảnh | Một vector cố định | Không phân biệt nghĩa theo câu |
| GloVe | Khai thác thống kê đồng xuất hiện toàn cục | Một vector cố định | Không xử lý tốt từ đa nghĩa theo ngữ cảnh |
| Embedding theo ngữ cảnh | Biểu diễn từ phụ thuộc toàn bộ câu | Vector thay đổi theo ngữ cảnh | Tính toán phức tạp hơn |
Điểm hạn chế quan trọng của embedding tĩnh là một từ chỉ có một vector. Chẳng hạn từ “đường” trong “đường phố” và “đường ăn” có nghĩa khác nhau nhưng Word2Vec truyền thống vẫn sử dụng cùng một biểu diễn.
Các mô hình ngôn ngữ hiện đại khắc phục vấn đề này bằng embedding theo ngữ cảnh. Vector của một token được tính dựa trên các token xung quanh, vì vậy cùng một từ có thể nhận biểu diễn khác nhau trong những câu khác nhau.
5. Thử Word Embedding bằng Python
Thư viện Gensim cung cấp cách tương đối đơn giản để huấn luyện Word2Vec trên một tập câu. Ví dụ nhỏ dưới đây chỉ nhằm minh họa quy trình; với dữ liệu thực tế, cần tập văn bản lớn hơn nhiều để vector học được quan hệ ổn định.
Tham số vector_size=50 quy định mỗi từ được biểu diễn bởi vector 50 chiều. window=3 xác định phạm vi ngữ cảnh xung quanh từ trung tâm, còn sg=1 chọn kiến trúc Skip-gram.
Kết quả độ tương đồng trong ví dụ nhỏ này không nên được xem như một số liệu có ý nghĩa thực nghiệm vì tập dữ liệu quá ít. Mục tiêu của đoạn mã là cho thấy Word Embedding được truy cập dưới dạng vector số và hai từ có thể được so sánh trực tiếp bằng độ tương đồng cosine.
6. Từ Word Embedding đến biểu diễn câu
Một vector cho từng từ chưa trực tiếp tạo ra biểu diễn cho cả câu hoặc tài liệu. Với embedding tĩnh, một cách đơn giản là lấy trung bình các vector từ:
Cách này nhanh và đơn giản nhưng làm mất trật tự từ. Hai câu chứa cùng các từ nhưng sắp xếp khác nhau có thể nhận biểu diễn giống hoặc rất gần nhau. Đây là một trong những lý do các kiến trúc xử lý chuỗi và mô hình Transformer trở nên quan trọng: chúng tạo biểu diễn có xét tới vị trí và ngữ cảnh.
Trong các hệ thống hiện đại, embedding thường không chỉ tồn tại như một bảng vector từ cố định. Nó có thể là lớp đầu vào của mạng nơ-ron và được cập nhật cùng toàn bộ mô hình trong quá trình huấn luyện.
7. Khi nào Word Embedding vẫn hữu ích?
Dù các mô hình ngôn ngữ theo ngữ cảnh mạnh hơn trong nhiều tác vụ, embedding tĩnh vẫn hữu ích khi tài nguyên tính toán hạn chế, dữ liệu không lớn hoặc bài toán không cần xử lý sâu hiện tượng đa nghĩa. Word2Vec và GloVe cũng rất phù hợp để giải thích trực giác về biểu diễn phân bố của ngôn ngữ.
- Phân loại văn bản đơn giản: vector từ có thể được tổng hợp thành đặc trưng cho câu hoặc tài liệu.
- Tìm từ tương tự: so sánh các vector bằng cosine để tìm những từ có biểu diễn gần nhau.
- Khởi tạo mạng nơ-ron: ma trận embedding đã huấn luyện trước có thể được dùng làm trọng số ban đầu.
- Phân tích từ vựng: khảo sát cấu trúc không gian từ trong một miền dữ liệu cụ thể.
Kết luận
Word Embedding tạo ra cầu nối giữa ngôn ngữ tự nhiên và không gian số bằng cách biểu diễn mỗi từ dưới dạng vector. Thay vì xem các từ hoàn toàn độc lập, mô hình có thể khai thác khoảng cách, hướng và cấu trúc của các vector để học những quan hệ hữu ích cho các nhiệm vụ NLP.
Hiểu rõ Word2Vec, cosine similarity và giới hạn của embedding tĩnh là nền tảng quan trọng trước khi học các mô hình biểu diễn theo ngữ cảnh như BERT và các Transformer hiện đại. Điểm cốt lõi cần nhớ là embedding không phải bản thân ngữ nghĩa, mà là một biểu diễn số được học từ cách ngôn ngữ xuất hiện trong dữ liệu.
Nội dung gốc thuộc tác giả. Vui lòng không đăng lại toàn văn khi chưa được phép, trừ trường hợp pháp luật hoặc giấy phép áp dụng cho phép. Nội dung của bên thứ ba tuân theo quyền và giấy phép tương ứng.
Nguồn gốc: Word Embedding trong NLP: Biểu diễn từ bằng vector