TROISINH
Chuyên sâuRAG & Search

Semantic search là gì?

Hiểu semantic search - công nghệ tìm kiếm theo ý nghĩa thay vì từ khóa, nền tảng của RAG và chatbot thông minh hiện đại.

Định nghĩa

Semantic search là phương pháp tìm kiếm dựa trên ý nghĩa ngữ nghĩa của câu hỏi thay vì chỉ khớp từ khóa ký tự, sử dụng vector embedding để hiểu ngữ cảnh, ý định người dùng và mối liên hệ ngầm giữa các khái niệm.

Giải thích chi tiết

Từ tìm kiếm từ khóa sang tìm kiếm ý nghĩa

Tìm kiếm truyền thống (lexical search) hoạt động như tra từ điển: nếu bạn tìm "laptop học lập trình", hệ thống chỉ trả về kết quả chứa đúng chuỗi ký tự đó. Nếu tài liệu viết "máy tính xách tay cho developer" hoặc "notebook học code", tìm kiếm truyền thống sẽ bỏ qua — dù ý nghĩa hoàn toàn giống nhau.

Semantic search giải quyết bài toán này bằng cách chuyển cả câu query và tài liệu thành các vector số (embedding) trong không gian đa chiều. Hai câu có ý nghĩa tương đồng sẽ nằm gần nhau trong không gian vector, dù từ vựng khác biệt.

Embedding và không gian vector

Khi bạn gõ câu hỏi, một embedding model (như OpenAI text-embedding-3, BERT hoặc Voyage AI) sẽ biến câu văn thành một vector có thể có hàng nghìn chiều (ví dụ: 1536 dimensions). Mỗi chiều đại diện cho một khía cạnh ngữ nghĩa: cảm xúc, chủ đề, ngữ cảnh sử dụng, mối quan hệ với các khái niệm khác.

Vector của "laptop học lập trình" và "máy tính cho developer" sẽ có khoảng cách gần nhau (cosine similarity cao), trong khi vector của "laptop học lập trình" và "laptop chơi game" sẽ xa hơn dù cùng chứa từ "laptop".

Cosine similarity và ngưỡng ngữ nghĩa

Hệ thống tính toán độ tương đồng giữa vector query và vector tài liệu bằng cosine similarity — đo góc giữa hai vector trong không gian đa chiều. Kết quả nằm trong khoảng -1 đến 1, thường lọc ngưỡng 0.7-0.8 để đảm bảo độ chính xác.

Khác với tìm kiếm boolean (có/không), semantic search trả về danh sách được xếp hạng theo mức độ liên quan ngữ nghĩa, cho phép bắt được các kết quả "gần đúng" mà không chia sẻ từ khóa nào.

Vị trí trong pipeline RAG

Trong kiến trúc RAG, semantic search đóng vai trò retrieval layer — khâu quyết định LLM sẽ đọc tài liệu nào để trả lời câu hỏi. Nếu khâu này trả về tài liệu không liên quan (dù LLM mạnh cỡ nào), câu trả lời cũng sẽ sai lệch. Semantic search chính là bộ lọc thông minh giúp RAG hiểu đúng ý định người dùng trước khi generation xảy ra.

Ví dụ thực tế

Tìm kiếm tài liệu pháp lý nội bộ

Luật sư tại một công ty Việt Nam cần tìm thông tin về "chấm dứt hợp đồng lao động". Với tìm kiếm từ khóa, họ phải thử nhiều biến thể: "sa thải", "nghỉ việc", "thôi việc", "đuổi việc". Semantic search hiểu tất cả những thuật ngữ này đều liên quan đến termination of employment, trả về kết quả đầy đủ ngay cả khi văn bản dùng từ "kết thúc quan hệ lao động" — từ không có trong query.

Chatbot hỗ trợ kỹ thuật của Shopee/Grab

Khi khách hàng chat "tôi không vào được app" hoặc "bị văng ra ngoài khi đặt xe", semantic search trong hệ thống RAG của chatbot hiểu đây là vấn đề về "lỗi đăng nhập" hoặc "crash ứng dụng", dù người dùng không dùng thuật ngữ kỹ thuật. Hệ thống tự động truy xuất bài hướng dẫn "Cách xử lý lỗi đăng nhập trên iOS/Android" thay vì trả về bài viết về "cách cài đặt app".

Tìm kiếm sản phẩm trên sàn thương mại điện tử

Người dùng tìm "đồ uống giải nhiệt mùa hè". Semantic search không chỉ tìm sản phẩm có từ "giải nhiệt" trong tên, mà hiểu rằng trà sữa trân châu, cà phê đá, nước dừa tươi, trà đào đều thuộc category này — dựa trên vector embedding đã học được mối liên hệ giữa "mát", "giải khát", "hè nóng" với các loại đồ uống cụ thể.

Ứng dụng

Developer xây dựng hệ thống RAG

Là người triển khai hệ thống retrieval cho chatbot doanh nghiệp, bạn cần hiểu semantic search để chọn embedding model phù hợp (multilingual cho tiếng Việt, domain-specific cho y khoa/pháp lý), thiết lập ngưỡng similarity và xử lý các trường hợp edge case như từ đồng nghĩa trong tiếng Việt (máy tính = computer = laptop).

Doanh nghiệp triển khai knowledge base

Team vận hành có thể xây dựng hệ thống tìm kiếm nội bộ trên tài liệu công ty mà không cần gắn tag thủ công. Nhân viên mới vào có thể hỏi "làm sao xin nghỉ phép" và tìm được quy trình "đơn xin nghỉ phép năm" dù không biết tên chính xác của văn bản nội bộ.

Researcher và data analyst

Trong việc literature review, semantic search giúp tìm các paper liên quan đến đề tài dù tác giả dùng thuật ngữ khác biệt (ví dụ: "attention mechanism" vs "self-attention architectures" vs "transformer attention heads"). Công cụ như Elicit, Consensus hoặc vector databases như Pinecone/Weaviate cho phép tìm kiếm trên hàng triệu paper mà không bỏ sót nghiên cứu quan trọng chỉ vì khác từ khóa.

So sánh

Tiêu chíKeyword Search (Lexical)Semantic Search
Cơ chếKhớp ký tự, inverted indexVector embedding, similarity search
Ngôn ngữYêu cầu từ khóa chính xácHiểu ngữ nghĩa, từ đồng nghĩa
Ngữ cảnhKhông hiểu ngữ cảnhHiểu ý định và chủ đề
Tài nguyênNhẹ, nhanh trên CPUNặng, cần GPU cho embedding, vector DB
Kết quảChính xác nhưng thiếu linh hoạtLinh hoạt nhưng có thể nhiễu nếu threshold sai
Use case phù hợpTìm ID, SKU, tên riêng, mã đơn hàngTìm kiếm tài liệu, hỏi đáp, recommendation

Sự thật là hệ thống tìm kiếm hiện đại nhất (như của Google, Notion AI, hay các RAG engine) thường kết hợp cả hai: dùng keyword search để lọc nhanh các ứng viên, sau đó dùng semantic search để xếp hạng lại theo độ liên quan ý nghĩa.

Bài viết liên quan

Cùng cụm

  • RAG là gì? — Hiểu tổng quan kiến trúc Retrieval-Augmented Generation mà semantic search là một thành phần cốt lõi
  • Cách hoạt động của RAG — Pipeline chi tiết từ query đến generation, bao gồm cách embedding được tạo và truy vấn
  • Khi nào nên dùng RAG — So sánh RAG với fine-tuning và các phương pháp khác để chọn giải pháp phù hợp
  • Vector search là gì? — Tìm hiểu sâu về kỹ thuật tìm kiếm gần đúng trên không gian vector, nền tảng kỹ thuật của semantic search

Đọc tiếp

  • Fine-tuning thực chiến — Khi dữ liệu nội bộ đủ lớn và ngữ cảnh quá đặc thù, fine-tuning LLM có thể là lựa chọn thay thế hoặc bổ sung cho RAG
  • Embedding và vector representation — Nền tảng toán học và cách các model tạo ra vector ngữ nghĩa từ văn bản tiếng Việt

On this page