Chuyển đến nội dung chính

Word Embedding trong NLP: Biểu diễn từ bằng vector

NATURAL LANGUAGE PROCESSING / VECTOR REPRESENTATION

Word Embedding trong NLP: Biểu diễn từ bằng vector

từ  →  vector  →  không gian ngữ nghĩa
“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.

Tóm tắt nội dung

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.

Không gian embedding đơn giản hóa xuống 2 chiều Trong thực tế, vector thường có hàng chục hoặc hàng trăm chiều. dimension 1 dimension 2 mèo chó thỏ xe máy ô tô xe tải nhóm từ về động vật nhóm từ về phương tiện

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.

“mèo” = [1, 0, 0, 0, 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.

"mèo" → [0.21, -0.74, 0.35, 0.08, ..., 0.18]

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.

Nguyên tắc phân bố: các từ xuất hiện trong những ngữ cảnh tương tự có xu hướng mang những đặc điểm ngữ nghĩa hoặc chức năng tương tự. Word Embedding khai thác chính tín hiệu thống kê này từ dữ liệu văn bản.

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ó:

cos(u,v) = u · v ||u|| ||v||

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:

con mèo đang nằm trên ghế

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.

Python
from gensim.models import Word2Vec

sentences = [
["mèo", "là", "động_vật", "nuôi"],
["chó", "là", "động_vật", "nuôi"],
["mèo", "ăn", "cá"],
["chó", "ăn", "thức_ăn"],
["xe_máy", "là", "phương_tiện"],
["ô_tô", "là", "phương_tiện"]
]

model = Word2Vec(
sentences=cau,
vector_size=50,
window=3,
min_count=1,
sg=1,
epochs=200,
seed=42
)

vector_meo = model.wv["mèo"]
similar = model.wv.similarity("mèo", "chó")

print(vector_meo[:5]) 
print(similar)

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ừ:

vsentence = 1 n   Σi=1n vi

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ể.
Điểm cần nhớ
Word Embedding không lưu “nghĩa từ điển” của từ theo cách con người định nghĩa. Vector được học từ các mẫu thống kê trong dữ liệu. Vì vậy chất lượng embedding phụ thuộc mạnh vào ngữ liệu, cách tiền xử lý, kích thước từ điển và mục tiêu huấn luyện.

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.

© The CS Note · THE CS NOTE

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

Về trang chủ Về đầu bài

Bài Đăng Phổ Biến

Bài toán tháp Hà nội

Trải nghiệm Tháp Hà Nội Kéo thả đĩa hoặc chạm vào các nút bên dưới để di chuyển. Bạn phải chuyển toàn bộ đĩa sang cột ngoài cùng bên phải (Cột 3) mà không đặt đĩa to lên đĩa nhỏ. Cột 1 Cột 2 Cột 3 Điều khiển & Chế độ Số lượng đĩa 4 Tốc độ máy giải ↪ Undo ↻ Chơi lại 🤖 Máy tự giải Thống kê ván chơi Nước đã đi 0 Thời gian 00:00 Tối thiểu cần 15 Kỷ lục của bạn - Lịch sử và Nguồn gốc Truyền thuyết Bài toán Tháp Hà Nội (hay Tháp Brahma) là một trò chơi xếp hình toán học kinh điển được giới thiệu lần đầu vào năm 1883 bởi nhà toán học người Pháp Édouard L...

Bài toán phân tích cảm xúc trong văn bản

Bài toán phân tích cảm xúc (sentiment analysis) là một bài toán NLP nhằm xác định thái độ hoặc cảm xúc được thể hiện trong văn bản. Ví dụ, từ một đánh giá như “Điện thoại đẹp, chạy nhanh nhưng pin hơi yếu”, hệ thống có thể nhận biết rằng người dùng có cả nhận xét tích cực và tiêu cực. Điểm thú vị của bài toán nằm ở khoảng cách giữa cách con người hiểu ngôn ngữ và cách máy tính xử lý dữ liệu. Một hệ thống phân tích cảm xúc cần biến văn bản tự nhiên thành dữ liệu có cấu trúc, học được các mẫu ngôn ngữ từ dữ liệu huấn luyện và đưa ra dự đoán hợp lý trên những câu chưa từng gặp. 1. Bài toán phân tích cảm xúc bắt đầu từ đâu? Hãy tưởng tượng một cửa hàng trực tuyến có hàng nghìn đánh giá mỗi ngày. Con người có thể đọc từng đánh giá để biết khách hàng hài lòng hay không, nhưng việc này nhanh chóng trở nên tốn thời gian khi dữ liệu tăng lên. NLP có thể biến bài toán đó thành một bài toán phân loại. Với mỗi văn bản, hệ thống nhận vào một chuỗi ký...

KAN cho phân đoạn khối u não với bộ BraTS 2020

Kolmogorov-Arnold Network (KAN) mở ra một hướng khác với MLP truyền thống: thay vì chỉ học các trọng số vô hướng trên mỗi kết nối, KAN có thể học những hàm phi tuyến một biến trên các cạnh . Khi đưa ý tưởng này vào kiến trúc encoder-decoder như U-Net, ta có thể sử dụng convolution để giữ cấu trúc không gian của ảnh MRI và dùng KAN để thực hiện các phép biến đổi phi tuyến mạnh hơn trên representation trung gian. Một bài toán phù hợp để nghiên cứu hướng này là phân đoạn u thần kinh đệm trên BraTS 2020 . Dataset cung cấp MRI đa mô thức và yêu cầu xác định các vùng Whole Tumor (WT), Tumor Core (TC) và Enhancing Tumor (ET). Đây là bài toán 3D có sự mất cân bằng voxel lớn, hình dạng khối u rất đa dạng và ranh giới giữa các mô bệnh lý không đơn giản. Lưu ý học thuật quan trọng: U-KAN gốc được công bố cho nhiều benchmark phân đoạn ảnh y tế nhưng không báo cáo kết quả BraTS 2020. Một công trình sau đó đã mở rộng U-KAN sang 3D MRI brain tumor segmentation , nhưng đánh giá trên BraTS 2...

Tách từ trong tiếng Việt Word Segmentation

Tách từ tiếng Việt là bài toán xác định ranh giới giữa các từ trong một chuỗi văn bản. Khó khăn nằm ở chỗ khoảng trắng trong tiếng Việt thường phân cách các âm tiết , nhưng một từ hoàn chỉnh có thể gồm nhiều âm tiết như “sinh viên” , “đại học” , “công nghệ” hay “tự nhiên” . Tách từ đúng giúp các hệ thống NLP dựa trên từ biểu diễn văn bản hợp lý hơn, đặc biệt trong tìm kiếm, TF-IDF, phân loại văn bản, gán nhãn từ loại và một số mô hình ngôn ngữ tiếng Việt. Tuy nhiên, với các Transformer sử dụng tokenizer dưới mức từ như subword hoặc SentencePiece, tách từ thủ công không phải lúc nào cũng là bước bắt buộc . Việc có cần tách từ trước hay không phụ thuộc vào mô hình và pipeline cụ thể. Tóm tắt nội dung Khoảng trắng trong tiếng Việt không phải lúc nào cũng là ranh giới từ ; nhiều từ gồm hai hoặc nhiều âm tiết. Word segmentation và tokenization có liên quan nhưng không hoàn toàn đồng nghĩa. Ba hướng chính gồm dựa trên từ điển, mô hình thống kê và mô hình học sâu . Tron...

KAN là gì? Mạng Kolmogorov-Arnold khác MLP thế nào?

Kolmogorov-Arnold Network (KAN) là một kiến trúc mạng nơ-ron trong đó mỗi cạnh không chỉ chứa một trọng số vô hướng mà mang một hàm một biến có thể học được . Đây là khác biệt cốt lõi so với Multi-Layer Perceptron (MLP), nơi các cạnh chủ yếu thực hiện phép nhân với trọng số còn hàm kích hoạt thường được áp dụng tại các node. KAN được lấy cảm hứng từ định lý biểu diễn Kolmogorov-Arnold và đặc biệt đáng chú ý trong các bài toán xấp xỉ hàm, mô hình hóa khoa học và symbolic regression. Tuy nhiên, KAN không nên được hiểu là kiến trúc đã thay thế MLP trong mọi bài toán Deep Learning; khả năng biểu diễn, chi phí tính toán và mức độ phù hợp của hai kiến trúc khác nhau theo từng nhiệm vụ. Tóm tắt nội dung MLP học chủ yếu trọng số trên các cạnh , còn KAN đặt hàm một biến học được trên từng cạnh . Một KAN layer cộng kết quả của nhiều hàm cạnh để tạo activation của node tiếp theo. KAN gốc sử dụng B-spline để tham số hóa các hàm phi tuyến trên cạnh. KAN có lợi thế đáng chú ý về trực...