Bỏ qua để đến nội dung
Search & RAG

Tầng 2 — Hybrid & Fusion

Vấn đề: điểm số không so sánh được

Phần tiêu đề “Vấn đề: điểm số không so sánh được”

BM25 cho điểm không chặn trên (có thể 3.7, có thể 48.2, tuỳ độ dài truy vấn và idf). Cosine cho điểm trong [−1, 1]. Cộng trực tiếp hai thang này là vô nghĩa.

Ba cách xử lý:

1. Reciprocal Rank Fusion (RRF) — bỏ điểm, chỉ dùng thứ hạng:

RRF(d)=hH1k+rankh(d),k thường=60\mathrm{RRF}(d) = \sum_{h \in \mathcal{H}} \frac{1}{k + \mathrm{rank}_h(d)}, \qquad k \text{ thường} = 60
  • Ưu điểm lớn nhất: không cần chuẩn hoá, không cần tuning. Thứ hạng vốn đã so sánh được giữa các hệ khác nhau.
  • k làm phẳng đường cong: k lớn → khác biệt giữa hạng 1 và hạng 10 giảm đi, hệ nào cũng được lắng nghe. k=0 → chỉ hạng 1 có ý nghĩa.
  • Nhược điểm: mất thông tin về độ tự tin. Một tài liệu thắng áp đảo và một tài liệu thắng sát sao đều chỉ là “hạng 1”.

2. Weighted score fusion — chuẩn hoá rồi trộn:

score=αnorm(bm25)+(1α)norm(dense)\mathrm{score} = \alpha \cdot \mathrm{norm}(\mathrm{bm25}) + (1-\alpha) \cdot \mathrm{norm}(\mathrm{dense})

Chuẩn hoá bằng min-max (nhạy với outlier) hoặc z-score (ổn định hơn). Giữ được độ tự tin, nhưng α phải tune, và α tối ưu phụ thuộc lớp truy vấn — đây là lý do nhiều hệ dùng router chọn α theo loại truy vấn (Tầng 7).

3. Learned sparse (SPLADE) như chân thứ ba. SPLADE dùng model để mở rộng truy vấn/tài liệu trong chính không gian từ vựng: “gói dùng thử” sinh ra trọng số cho cả “miễn phí”, “trial”. Kết quả là một vector thưa — chạy được trên inverted index sẵn có, nhưng có ngữ nghĩa. Lai đúng nghĩa, và thường là lựa chọn tốt hơn “BM25 + dense” nếu bạn chỉ muốn một hệ.

  • Khi một nhánh quá yếu, nó chỉ thêm nhiễu. Phải đo từng nhánh riêng trước khi trộn.
  • Khi corpus toàn văn bản tự nhiên đồng nhất, không có mã/định danh → lexical đóng góp ít.
  • Chi phí: hybrid nhân đôi index, nhân đôi latency retrieval, cộng thêm bước fusion.

Đối thủ kiến trúc của “hybrid + rerank” là late interaction — thay vì trộn hai stage 1 rồi xếp lại, nó đổi chính stage 1 sang index đa vector. So sánh cùng một harness (chất lượng, dung lượng index, latency) ở 5.6 — Late interaction hay “hybrid + rerank”?.

Phần 4 — Lý thuyết