Giới thiệu
Trong bài viết này, chúng ta sẽ đi sâu vào cách tính điểm (scoring) trong dịch vụ Azure AI Search của Microsoft. Sau khi đã tìm hiểu về tìm kiếm toàn văn (Full-text search) trong bài trước, giờ đây, chúng ta sẽ khám phá các phương pháp và công thức nhằm đánh giá độ phù hợp của tài liệu với truy vấn tìm kiếm, bao gồm cả phần bổ sung từ Semantic Search.
Tìm Kiếm Toàn Văn (BM25)
Tìm kiếm toàn văn là nền tảng của nhiều hệ thống tìm kiếm hiện đại, trong đó Azure AI Search sử dụng hàm xếp hạng Okapi BM25 (Best Matching) để đánh giá độ liên quan của tài liệu đối với truy vấn. Để hiểu rõ, hãy xem công thức dưới đây:
Công Thức Tính Điểm
$$
score(D, Q) = \sum_{i=1}^{n} IDF(q_{i}) \cdot \frac{f(q_{i},D) \cdot (k_{1}+1)}{f(q_{i},D) + k_{1} \cdot (1-b + b \cdot \frac{|D|}{avgdl})}
$$
Giải Thích Các Tham Số
- Query Q: Bao gồm các thuật ngữ truy vấn q1, q2, …, qn.
- f(qi, D): Số lần xuất hiện của thuật ngữ truy vấn qi trong tài liệu D.
- |D|: Chiều dài tài liệu tính bằng từ.
- avgdl: Chiều dài trung bình của các tài liệu đang xem xét.
- k1, b: Các tham số điều chỉnh; thường thì k1 nằm trong khoảng [1.2, 2.0] và b = 0.75.
- IDF(qi): Trọng số IDF của thuật ngữ truy vấn qi, được tính như sau:
$$
IDF(q_{i}) = ln \left( \frac{N - n(q_{i}) + 0.5}{n(q_{i}) + 0.5} + 1 \right)
$$
Trong đó:
- N: Tổng số tài liệu trong tập hợp.
- n(qi): Số tài liệu chứa thuật ngữ qi.
Một Số Nhận Xét
- Nếu thuật ngữ xuất hiện nhiều tài liệu, IDF sẽ nhỏ hơn.
- Nếu thuật ngữ xuất hiện nhiều lần trong tài liệu, f(qi, D) cao hơn, dẫn đến score cao hơn.
- Nếu chiều dài tài liệu lớn hơn chiều dài trung bình, score sẽ giảm.
Semantic Reranker
Semantic ranking là một tính năng quan trọng trong Azure AI Search, giúp cải thiện độ chính xác trong việc xếp hạng kết quả tìm kiếm. Thay vì chỉ đánh giá sự khớp từ khóa, semantic ranking hiểu ngữ nghĩa, ngữ cảnh và quan hệ giữa các thuật ngữ.
Công Nghệ Sử Dụng
- Xử Lý Ngôn Ngữ Tự Nhiên (NLP): Phân tích mối quan hệ ngữ nghĩa giữa các từ và cụm từ.
- Word2Vec: Diễn đạt từ để hiểu mối quan hệ ngữ nghĩa.
- Trích Xuất Thông Tin Ngữ Nghĩa: Hiểu khái niệm và quan hệ để cung cấp thông tin sâu hơn về tài liệu.
Khả Năng Của Semantic Reranker
- Cung cấp điểm số xếp hạng mới dựa trên ngữ nghĩa của truy vấn.
- Trích xuất câu và cụm từ chính xác từ tài liệu kèm theo highlight để người dùng dễ dàng nhận diện.
- Cung cấp câu trả lời trực tiếp cho truy vấn có dạng câu hỏi.
Cách Tính Điểm
- Điểm được tính dựa trên caption và nội dung từ summary string xuất ra từ mô hình tóm tắt.
- Mỗi tài liệu được gán 1 @search.rerankerScore, dao động từ 4 (cao) đến 0 (thấp).
- Azure AI Search sử dụng các mô hình AI nhưng chưa công bố chi tiết về các mô hình cụ thể.
Kết Luận
Trong bài viết này, chúng ta đã tìm hiểu về cách tính score trong Azure AI Search thông qua phương pháp BM25 và Semantic Reranker. Điều này giúp nâng cao độ chính xác trong kết quả tìm kiếm và cải thiện trải nghiệm người dùng khi tìm kiếm thông tin. Những kiến thức này sẽ là nền tảng để tìm hiểu sâu hơn về Azure AI Search trong các phần tiếp theo.
source: viblo