L2-Normalized Embedding trong FAISS giúp so sánh vector theo góc (cosine) như thế nào?

Tác giả: AI VIET NAM (AI VIET NAM)

Keywords: L2-normalized embedding, cosine similarity, FAISS, dot-product, vector search

Mở bài

Khi làm việc với FAISS để tìm kiếm tương đồng vector, nhiều người gặp một câu hỏi quen thuộc: “Tại sao cần L2-normalized embedding để tính cosine similarity?”. Điều này xuất hiện nhiều trong các dự án AI có dùng embedding văn bản, hình ảnh, hoặc audio. Việc hiểu rõ bản chất giúp quá trình thiết kế hệ thống tìm kiếm trở nên rõ ràng hơn.

L2-normalized embedding là gì?

Một vector khi được chuẩn hóa L2 nghĩa là ta chia toàn bộ các giá trị cho độ dài của chính nó. Sau chuẩn hóa, vector luôn có độ dài bằng 1. Công thức thường được diễn đạt như sau:

  • Độ dài của vector v là: norm = căn bậc hai của tổng bình phương các phần tử
  • Vector chuẩn hóa: v_norm = v chia cho norm

Khi mọi vector đều có độ dài bằng 1, việc so sánh không còn bị ảnh hưởng bởi độ lớn, mà chỉ phụ thuộc vào góc giữa chúng.

Vì sao chuẩn hóa L2 biến cosine similarity thành dot-product?

Cosine similarity của hai vector a và b là:

cos(a, b) = (a nhân b) chia cho (độ dài a nhân độ dài b)

Nếu cả hai vector đều đã được chuẩn hóa L2 (độ dài = 1), mẫu số trở thành 1. Lúc này: cos(a, b) = a nhân b

Nghĩa là chỉ cần tính dot-product là đủ. Đây là lý do FAISS thường yêu cầu chuẩn hóa trước khi dùng các index dựa trên dot-product.

Ví dụ thực tế

Giả sử bạn có hai đoạn văn được chuyển thành embedding:

  • Văn bản A dài nhưng mô tả không chi tiết
  • Văn bản B ngắn nhưng diễn đạt rõ ràng, có cùng ý nghĩa

Nếu không chuẩn hóa, vector của A có thể có độ lớn lớn hơn, khiến dot-product bị lệch. Chuẩn hóa giúp hệ thống chú ý vào nội dung thay vì độ lớn của embedding. Điều này thường xảy ra trong dự án NLP, đặc biệt khi dùng các mô hình thuộc nhóm Module 10 trong dải kiến thức NLP: embedding, tokenization, vector hóa văn bản.

Góc nhìn khi làm dự án AI/ML

Trong các ứng dụng như:

  • hệ thống tìm kiếm văn bản
  • tìm ảnh tương tự
  • xếp hạng gợi ý
  • truy vấn vector ở tốc độ cao

… thì FAISS thường được chọn vì tối ưu truy vấn. Chuẩn hóa vector trước khi đưa vào index giúp kết quả ổn định, đặc biệt khi pipeline xuyên suốt theo các bước quen thuộc: tạo embedding → lưu trữ → truy vấn → ranking.

Ở góc nhìn MLOps (Module 4–7), việc chuẩn hóa embedding cũng giúp đồng nhất quy trình, hạn chế sai lệch giữa lúc training và khi chạy production.

Liên hệ kiến thức nền

Phần chuẩn hóa vector xuất hiện sớm trong các module toán (Module 1–2), sau đó được nhắc lại trong Machine Learning (Module 4) khi tính khoảng cách, rồi tiếp tục được sử dụng trong Deep Learning (Module 7–8). Khi qua NLP hoặc CV (Module 9–10), embedding trở thành thành phần quen thuộc, và việc chuẩn hóa giúp mô hình vận hành đúng bản chất của cosine similarity.

Lời khuyên cho người bắt đầu

Bạn có thể thử tạo một bộ embedding nhỏ, rồi tính dot-product trước và sau chuẩn hóa để thấy rõ sự khác biệt. Cách quan sát trực tiếp này giúp hiểu sâu về bản chất cosine similarity và lý do FAISS thường yêu cầu L2-normalization.

Hỏi đáp nhanh

  1. L2-normalized embedding có làm thay đổi hướng vector không?
    Không, chỉ thay đổi độ lớn nhưng giữ nguyên hướng.

  2. Không chuẩn hóa có dùng được FAISS không?
    Có, nhưng cosine similarity sẽ không phản ánh đúng nếu dùng dot-product.

  3. L2-normalization có tốn nhiều tài nguyên không?
    Khoảng chi phí nhỏ, thường không đáng kể so với bước tạo embedding.

  4. Cosine similarity và dot-product có thể giống nhau không?
    Có, nhưng chỉ khi cả hai vector đã được chuẩn hóa về độ dài bằng 1.

FAQ về AIO

Q1. Con số 0 thì học nổi không?
Ans: Chỉ cần bạn có thời gian học. Điều quan trọng nhất không phải giỏi hay không, mà là có học đều mỗi ngày. Kiến thức – tài liệu – môi trường đã có team lo. Nếu bạn không có thời gian thì nên cân nhắc.

Q2. Ai dạy AIO?
Ans: Đội admin dạy toàn bộ. Admin trực tiếp hướng dẫn và hỗ trợ mọi câu hỏi của bạn trong suốt quá trình học.

Q3. Admin có “xịn” không?
Ans: Admin đều là người làm nghề thật, mỗi người một cách dạy. Quan trọng là bạn cảm thấy hợp cách truyền đạt. Admin không dám nói xịn, chỉ dạy bằng hết sức.

Q4. AIO có gì khác những nơi khác?
Ans: AIO không phải trung tâm. Đây là dự án học tập cộng đồng, được cải tiến qua từng khóa. Tinh thần của AIO: Cùng nhau học – cùng nhau khổ – cùng nhau lớn. Nếu hợp tinh thần đó, bạn sẽ thấy phù hợp.

Tài nguyên học AI: