Semantic Search
Định nghĩa
Semantic search là tìm kiếm theo ý nghĩa bằng cách so sánh embeddings của query và documents.
Cách hiểu bằng lời của tôi
Thay vì chỉ khớp từ khóa, semantic search hỏi: query này gần đoạn nào về mặt nghĩa trong vector space?
Cần biết
- Cần embedding model tốt, chunking hợp lý và vector database.
- Dense retrieval có thể tìm kết quả dùng từ khác nhưng cùng nghĩa.
- Có thể kết hợp keyword search và semantic search để tăng độ phủ.
- Reranking thường cải thiện kết quả top-k.
- ANN index giúp tìm vector gần đúng nhanh hơn so với quét toàn bộ corpus.
- Trong product search, semantic search thường phải kết hợp filter như availability, location, fulfillment type hoặc tenant boundary.
- Vector search không tự giải quyết ranking cuối; nó thường là candidate generation trước khi reranker/business rules xử lý.
Từ ByteByteGo
Instacart cho thấy semantic search không chỉ là chọn vector database. Khi keyword và semantic retrieval nằm ở hai hệ thống khác nhau, app phải overfetch, filter muộn và merge kết quả ở application layer. Khi đưa vector search về gần dữ liệu catalog/inventory bằng pgvector, hệ thống có thể filter trước ANN search và giảm round trip.
Airtable cho thấy đặc tính workload quyết định kiến trúc vector search: nhiều tenant nhỏ, isolation mạnh, phần lớn base cold, p99 dưới 500ms. Vì vậy partitioning, index type và hot/cold loading quan trọng ngang embedding model.
Feed retrieval case mở rộng semantic search từ query-document sang user-content: user/profile/activity và post/video cùng được đưa vào không gian meaning để lấy candidate trước ranking.