AI / Kiến thức · 09/03/2025 0

Tất tần tật về WordEmbedding – Word Embedding là gì?

Dạo này LLM (Large Language Model) nổi lên như một cơn sóng, các trang báo thì liên tục nói về ChatGPT, các tác giả blog thì lên bài về Prompting, RAG và các vấn đề liên quan. Và mình ở đây để giải thích cho các bạn về WordEmbedding, 1 keyword mà có thể bạn sẽ gặp khi muốn tìm hiểu về xử lý ngôn ngữ tự nhiên (NLP).

Word embeddings là gì?

Nếu để giải thích ngắn gọn và chính xác thì nó sẽ như sau:

Word embeddings là một cách để biểu diễn từ ngữ dưới dạng các vector trong không gian đa chiều, trong đó khoảng cách và hướng giữa các vector phản ánh sự tương đồng và mối quan hệ giữa các từ tương ứng.

Nhưng mà tại sao lại biểu diễn dưới dạng vector? Tại sao lại là không gian đa chiều?

Tương tự như cách mà mọi mô hình “AI” hoạt động, trước khi AI có thể giải quyết vấn đề, bạn phải tìm cách để máy tính hiểu được dữ liệu, đối với xử lý ngôn ngữ tự nhiên, WordEmbedding chính là công cụ để làm việc đó. WordEmbedding sẽ biến những văn bản, từ ngữ thành một thứ mà máy tính có thể hiểu được chúng – những con số.

Các phương pháp truyền thống để biểu diễn từ ngữ theo dạng số, chẳng hạn như one-hot encoding, biểu diễn mỗi từ dưới dạng một vector rời rạc với kích thước bằng kích thước của số lượng từ vựng (bag of words). Ở đây, chỉ có một phần tử của vector là “hot” (được đặt thành 1) để chỉ sự hiện diện của từ đó. Mặc dù đơn giản, cách tiếp cận này gặp phải vấn đề về chiều không gian, thiếu thông tin ngữ nghĩa và không nắm bắt được mối quan hệ giữa các từ.

Ví dụ về One hot encoding cho văn bản

Ngược lại, word embeddings là các vector dày đặc với các giá trị liên tục được huấn luyện bằng các kỹ thuật học máy, thường dựa trên mạng nơ-ron. Ý tưởng là học các biểu diễn mã hóa ý nghĩa ngữ nghĩa và mối quan hệ giữa các từ. Word embeddings được huấn luyện bằng cách cho mô hình tiếp xúc với một lượng lớn dữ liệu văn bản và điều chỉnh các biểu diễn vector dựa trên ngữ cảnh mà các từ xuất hiện.

Nếu bạn chưa hiểu word embedding có tác dụng thể hiện ngữ nghĩa của một từ như thế nào so với one-hot-encoding, mình sẽ giải thích ngay sau đây. Về cơ bản, cả 2 phương pháp bạn đều cố gắng “nhúng” mỗi từ ngữ trong từ điển thành 1 điểm trong không gian N chiều, với N=bag of words với phương pháp one-hot-encoding và N bất kì (xác định trước) với word embedding.

Trong ví dụ này, có thể thấy, nếu sử dụng phương pháp word embeddings, ta sẽ tận dụng được ý nghĩa về mặt khoảng cách trong không gian vector để thể hiện mối liên hệ giữa các từ ngữ (thường sử dụng khoảng cách cosine).

Một phương pháp phổ biến để huấn luyện word embeddings là Word2Vec, sử dụng mạng nơ-ron để dự đoán các từ xung quanh của một từ mục tiêu trong một ngữ cảnh nhất định. Một phương pháp khác được sử dụng rộng rãi là GloVe (Global Vectors for Word Representation), tận dụng các thống kê toàn cầu để tạo ra các embeddings, sau đó thì các mô hình wordembedding dựa trên transformer trở nên phổ biến. Mình sẽ giải thích về chúng ở trong phần sau của bài viết

Word embeddings đã chứng minh được giá trị to lớn trong NLP, vì chúng cho phép các thuật toán học máy hiểu và xử lý các mối quan hệ ngữ nghĩa giữa các từ một cách tinh tế hơn so với các phương pháp truyền thống. Sự phát triển của embedding để biểu diễn văn bản đã đóng vai trò quan trọng trong việc thúc đẩy các ứng dụng xử lý ngôn ngữ tự nhiên (NLP) và học máy (ML). Word embeddings đã trở thành một phần không thể thiếu trong các nhiệm vụ như phân loại văn bản, phân tích cảm xúc, dịch máy và nhiều hơn nữa.

Các phương pháp xây dựng một mô hình Word Embedding

Embedding dựa trên tần suất

Phương pháp embedding dựa trên tần suất – như tên gọi của nó, những vector embedding được suy ra từ tần suất xuất hiện của các từ trong một tập hợp văn bản (corpus). Phương pháp này dựa trên ý tưởng rằng tầm quan trọng hoặc ý nghĩa của một từ có thể được suy ra từ tần suất xuất hiện của nó trong văn bản. Ví dụ, nếu một từ “kim tự tháp” thường xuất hiện nhiều trong một loại văn bản nhất định (bài viết về Ai Cập hoặc Lịch sử, địa lý) mà không xuất hiện trong các loại văn bản khác, do đó, từ này được xem là quan trọng. Trong khi đó, từ “và” lại có tần xuất rất cao nhưng lại xuất hiện trong rất nhiều loại văn bản, ta có thể đoán rằng đây là một từ không quan trọng.

Một ví dụ về các biểu diễn dựa trên tần suất là Term Frequency-Inverse Document Frequency (TF-IDF). TF-IDF được thiết kế để làm nổi bật các từ vừa phổ biến trong một tài liệu cụ thể nhưng lại hiếm gặp trên toàn bộ tập hợp văn bản, do đó giúp xác định các thuật ngữ quan trọng cho một tài liệu cụ thể.

Điểm số TF-IDF cho một thuật ngữ (từ) trong một tài liệu được tính bằng công thức sau:

TF-IDF (t,d,D) = TF(t,d) x IDF(t, D)

Các ứng dụng của TF-IDF bao gồm truy xuất thông tin, xếp hạng tài liệu, tóm tắt văn bản và khai thác văn bản.

Mặc dù các biểu diễn dựa trên tần suất đơn giản và dễ hiểu, chúng thiếu chiều sâu của thông tin ngữ nghĩa và nhận thức ngữ cảnh được cung cấp bởi các biểu diễn dựa trên dự đoán tiên tiến hơn.

Word Embedding dựa trên dự đoán

Word Embedding dựa trên dự đoán là phương pháp huấn luyện các mô hình để dự đoán ngữ cảnh hoặc các từ lân cận của một từ. Không giống như các embedding dựa trên tần suất tập trung vào thống kê xuất hiện của từ, các wordembedding dựa trên dự đoán nắm bắt các mối quan hệ ngữ nghĩa và thông tin ngữ cảnh, cung cấp các biểu diễn phong phú hơn về ý nghĩa của từ.

Embedding dựa trên dự đoán có thể phân biệt giữa các từ đồng nghĩa và xử lý đa nghĩa (nhiều nghĩa của một từ) hiệu quả hơn. Các thuộc tính không gian vector của các biểu diễn dựa trên dự đoán cho phép thực hiện các nhiệm vụ như đo lường sự tương đồng của từ và giải quyết các phép ẩn dụ. Các biểu diễn dựa trên dự đoán cũng có thể tổng quát hóa tốt đối với các từ hoặc ngữ cảnh chưa từng thấy, làm cho chúng trở nên mạnh mẽ trong việc xử lý các thuật ngữ ngoài từ vựng.

Hai ví dụ phổ biến cho phương pháp word embedding này là Word2Vec và GloVe, từng thống trị trong lĩnh vực word embedding từ do khả năng nắm bắt ý nghĩa ngữ nghĩa phong phú và tổng quát hóa tốt đối với các nhiệm vụ NLP khác nhau, trước khi các phương pháp contextual embedding dựa trên transformer ra đời.

Dưới đây là bảng so sánh giữa Word2Vec, GloVe và FastText:

Tiêu chíWord2VecGloVeFastText
Phương phápDựa trên dự đoán (Prediction-based)Dựa trên thống kê (Count-based)Dựa trên dự đoán (Prediction-based)
Mô hìnhSkip-gram và CBOWGlobal Vectors for Word RepresentationSkip-gram và CBOW với thông tin subword
Đầu vàoTừ (Words)Từ (Words)Từ và subwords (n-grams)
Ưu điểmĐơn giản, dễ hiểuTận dụng thông tin toàn cụcXử lý tốt từ mới và từ hiếm
Nhược điểmKhông xử lý tốt từ mới và từ hiếmCần nhiều tài nguyên tính toán, phức tạp hơn Word2VecPhức tạp hơn Word2Vec, cần nhiều tài nguyên tính toán
Ứng dụngPhân loại văn bản, tìm kiếm thông tin, dịch máyPhân loại văn bản, tìm kiếm thông tin, dịch máyPhân loại văn bản, tìm kiếm thông tin, dịch máy

Transformer và mô hình Word Embedding dựa trên Transformer

Các mô hình embedding truyền thống như Word2Vec hay GloVe sử dụng cách tiếp cận dựa trên ngữ cảnh cục bộ để biểu diễn từ vựng. Chúng học từ mối quan hệ thống kê giữa các từ trong một cửa sổ ngữ cảnh cố định, dẫn đến các vector embedding tĩnh – nghĩa là một từ có cùng vector embedding dù xuất hiện trong các ngữ cảnh khác nhau.

Ngược lại, mô hình embedding dựa trên Transformer, như BERT hay T5, tận dụng kiến trúc self-attention để học biểu diễn ngữ nghĩa của từ theo từng ngữ cảnh cụ thể. Điều này giúp chúng hiểu được sắc thái ngữ nghĩa, đa nghĩa và cấu trúc câu phức tạp tốt hơn. Ngoài ra, thay vì chỉ xem xét ngữ cảnh cục bộ, chúng phân tích toàn bộ câu hoặc đoạn văn, cho phép tạo ra embedding có ý nghĩa sâu sắc và phù hợp hơn với bài toán xử lý ngôn ngữ tự nhiên hiện đại.

Mình có nói kĩ hơn về transformer và ứng dụng của đó trong các mô hình LLM trong bài viết dưới, mời các bạn tham khảo thêm.

Mục tiêu chính của các mô hình embedding là đưa ra vector biểu diễn của từ, câu hoặc đoạn văn sao cho chúng phản ánh ngữ nghĩa và ngữ cảnh. Các phương pháp huấn luyện phổ biến bao gồm:

  • Masked Language Modeling (MLM): Dự đoán từ bị che (BERT)
  • Next Sentence Prediction (NSP): Dự đoán câu tiếp theo (BERT)
  • Contrastive Learning: Tối ưu hóa để các câu có nghĩa gần nhau có embedding giống nhau (SimCSE)
  • Denoising Autoencoding: Khôi phục văn bản bị nhiễu để học representation tốt (T5, BART)

Vậy, hiện tại nên sử dụng mô hình nào để Word Embedding

Hiện nay, trong các mô hình word embedding, các mô hình phổ biến nhất đều dựa trên Transformer, vì chúng có khả năng tạo embedding theo Adaptive context, tức là ngữ cảnh động, thay vì embedding tĩnh như Word2Vec hay GloVe.

Bạn có thể dễ dàng tìm thấy một model Word embedding dựa trên transformer trên Huggingface với đủ thể loại kích thước mô hình từ vài chục ngàn đến vài tỷ tham số. Và chúng đều có thể dễ dàng triển khai với vài dòng code tương tự như bên dưới:

from transformers import BertModel, BertTokenizer
import torch

tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model = BertModel.from_pretrained("bert-base-uncased")

text = "Transformers are powerful models."
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)

embedding = outputs.last_hidden_state  # Lấy vector embedding của từng token

Lưu ý rằng mỗi model sẽ có một code để triển khai khác nhau, thường dễ dàng tìm thấy ở mục README trong mỗi model trên huggingface.

Một hướng tiếp cận khác, đó chính là sử dụng API word embedding từ các nhà cung cấp dịch vụ chẳng hạn như OpenAI. Với mô hình text-embedding-ada-002 (GPT-based), ta có thể dễ dàng nhận được embedding của từ/câu (cơ bản là text) với số chiều cố định 1536, đồng thời, giá của dịch vụ này hiện tại cũng cực kỳ rẻ, chỉ $0.0001 cho mỗi 1K tokens.

Và quan trọng nhất, Những ứng dụng Của Word Embedding

Word embedding là một trong những công nghệ cốt lõi của NLP, giúp máy tính hiểu được ý nghĩa của từ ngữ bằng cách biểu diễn chúng dưới dạng vector số. Nhờ đó, word embedding có rất nhiều ứng dụng quan trọng trong thực tế, đặc biệt trong các bài toán xử lý ngôn ngữ tự nhiên.

Ứng Dụng Word Embedding trong RAG

Như đã đề cập ở đầu bài viết, Trong Retrieval-Augmented Generation (RAG), word embedding đóng một vai trò cốt yếu, giúp hệ thống tìm kiếm thông tin liên quan để tạo ngữ cảnh nhằm tìm ra câu trả lời.

Ví dụ:

  • Một chatbot tài chính cần trả lời về chính sách vay vốn. Khi người dùng hỏi: “Điều kiện vay tín chấp là gì?”, hệ thống sẽ:
    1. Chuyển câu hỏi thành vector embedding.
    2. So sánh với embedding của các tài liệu có sẵn bằng cosine similarity.
    3. Trả về nội dung liên quan nhất trước khi sử dụng mô hình LLM để sinh câu trả lời chính xác hơn.

Việc này có một lợi ích quan trọng đối với LLM là giúp giảm hiện tượng hallucination và cung cấp thông tin chính xác hơn.


2. Tìm Kiếm Ngữ Nghĩa (Semantic Search)

Khác với tìm kiếm từ khóa thông thường, semantic search sử dụng word embedding để hiểu ngữ nghĩa thực sự của câu hỏi.

  • Người dùng tìm kiếm “Cách tiết kiệm chi phí du lịch”, hệ thống sẽ trả về các bài viết liên quan đến mẹo săn vé máy bay rẻ, cách đặt phòng giá tốt, thay vì chỉ tìm kiếm từ khóa “chi phí” và “du lịch”.
  • Google Search hay Amazon sử dụng semantic search để hiển thị kết quả chính xác hơn so với tìm kiếm truyền thống.

Semantic search giúp tìm kiếm thông tin thông minh hơn, phù hợp với tìm kiếm văn bản, hỏi đáp, và hệ thống khuyến nghị.


3. Phân Loại Văn Bản (Text Classification)

Embedding giúp mô hình hiểu được mối quan hệ giữa các từ, từ đó hỗ trợ phân loại văn bản một cách chính xác hơn. Ứng dụng chính của cái này là tự động hóa một số quy trình.

  • Hệ thống phân tích phản hồi khách hàng có thể xác định xem review sản phẩm có cảm xúc tích cực hay tiêu cực.
  • Email filtering: Dùng embedding để phát hiện email spam bằng cách nhận diện nội dung có dấu hiệu lừa đảo hoặc quảng cáo.

4. Hệ Thống Đề Xuất Nội Dung (Recommendation Systems)

Embedding giúp hệ thống đề xuất nội dung bằng cách tìm những bài viết, sản phẩm, đối tượng, và rất nhiều use case khác của hệ thống đề xuất.

  • Netflix sử dụng embedding để đề xuất phim dựa trên sở thích và lịch sử xem của người dùng.
  • Spotify gợi ý bài hát có phong cách giống nhau dựa trên embedding của lời bài hát và nhạc điệu.
  • E-commerce (Shopee, Tiki, Lazada) dùng embedding để gợi ý sản phẩm dựa trên mô tả và đánh giá sản phẩm.

Kết Luận

Word embedding không chỉ là công cụ giúp máy hiểu ngôn ngữ tự nhiên mà còn là nền tảng cho nhiều ứng dụng AI thực tế, từ hỗ trợ LLM trong RAG, tìm kiếm thông minh, phân loại văn bản đến hệ thống đề xuất nội dung. Nhờ khả năng biểu diễn ngữ nghĩa, embedding đang ngày càng đóng vai trò quan trọng trong các hệ thống AI hiện đại.