مفهوم اصلی
اگرچه TF-IDF یک الگوریتم کلاسیک برای Keyword Search است، اما بیشتر Retrieverهای مدرن از الگوریتمی به نام:
BM25 (Best Matching 25)
استفاده میکنند.
نام BM25 به این دلیل انتخاب شده است که این الگوریتم، نسخه بیستوپنجم از مجموعه توابع امتیازدهی پیشنهادی سازندگان آن بوده است.
BM25 در واقع بهبودهایی روی TF-IDF ایجاد میکند تا بتواند اسناد مرتبط را بهتر رتبهبندی کند.
نحوه عملکرد کلی BM25
BM25 مانند TF-IDF عمل میکند:
- برای هر Keyword موجود در Prompt، یک امتیاز ارتباط با Document محاسبه میکند.
- امتیاز تمام Keywordها برای یک Document با هم جمع میشوند.
- امتیاز نهایی برای رتبهبندی Documentها استفاده میشود.
فرمول BM25:
- برای هر Keyword یک امتیاز مرتبط بودن تولید میکند.
- مجموع این امتیازها، میزان ارتباط کلی Document را مشخص میکند.
بهبودهای BM25 نسبت به TF-IDF
BM25 چند مشکل TF-IDF را اصلاح میکند.
1. Term Frequency Saturation (اشباع تکرار کلمه)
مشکل TF-IDF
در TF-IDF:
هرچه یک Keyword بیشتر در Document تکرار شود، امتیاز آن بیشتر افزایش پیدا میکند.
اما این همیشه منطقی نیست.
مثال:
Document A:
pizza pizza pizza ... (20 بار)
Document B:
pizza pizza pizza ... (10 بار)
Document A الزاماً دو برابر مرتبطتر از Document B نیست.
راهحل BM25
BM25 از مفهوم:
Term Frequency Saturation
استفاده میکند.
یعنی:
هرچه تعداد تکرار یک Keyword بیشتر شود، ارزش هر تکرار جدید کمتر میشود.
نتیجه:
- اولین چند بار دیده شدن Keyword اهمیت زیادی دارد.
- تکرارهای بسیار زیاد تأثیر کمتری دارند.
2. Document Length Normalization (نرمالسازی طول سند)
مشکل TF-IDF
در TF-IDF:
اسناد طولانیتر ممکن است به دلیل داشتن تعداد بیشتری کلمه، بیش از حد جریمه شوند.
زیرا احتمال دارد فقط به دلیل طول زیاد، Keywordهای بیشتری داشته باشند.
راهحل BM25
BM25 نیز طول Document را در نظر میگیرد، اما جریمه را به شکل تدریجی اعمال میکند.
یعنی:
- Documentهای بلند همچنان میتوانند امتیاز خوبی بگیرند.
- اگر تعداد Keywordهای مرتبط در آنها زیاد باشد، حذف نمیشوند.
این فرآیند:
Document Length Normalization
نام دارد.
Hyperparameterهای BM25
BM25 برخلاف TF-IDF دارای دو پارامتر قابل تنظیم (Tunable Hyperparameters) است.
این پارامترها اجازه میدهند میزان موارد زیر کنترل شود:
1. Term Frequency Saturation
کنترل میکند:
- با چند بار تکرار یک Keyword، افزایش امتیاز چقدر کاهش پیدا کند.
2. Document Length Normalization
کنترل میکند:
- طول Document چه مقدار روی امتیاز تأثیر بگذارد.
در یک Retriever واقعی:
این پارامترها بر اساس:
- دادههای موجود در Knowledge Base
- نیاز پروژه
تنظیم میشوند.
مقایسه BM25 و TF-IDF
| ویژگی | TF-IDF | BM25 |
|---|---|---|
| نوع روش | Keyword Search | Keyword Search |
| استفاده در Retrieverهای مدرن | کمتر | بسیار رایج |
| توجه به تکرار Keyword | دارد | بهتر مدیریت میکند |
| کنترل اشباع تکرار | ندارد | دارد |
| نرمالسازی طول سند | دارد | بهتر انجام میدهد |
| پارامتر قابل تنظیم | ندارد | دارد |
| عملکرد عملی | خوب | معمولاً بهتر |
چرا BM25 در سیستمهای Production استفاده میشود؟
BM25 در مقایسه با TF-IDF:
عملکرد بهتر
معمولاً اسناد مرتبط را بهتر پیدا میکند.
هزینه محاسباتی مشابه
نیاز به منابع پردازشی تقریباً مشابه TF-IDF دارد.
انعطاف بیشتر
به دلیل داشتن Hyperparameterها میتوان آن را برای Datasetهای مختلف تنظیم کرد.
مرور کلی Keyword Search
ایده اصلی
Keyword Search بر اساس این فرض کار میکند:
هرچه کلمات موجود در Prompt بیشتر در یک Document تکرار شوند، احتمال مرتبط بودن آن Document بیشتر است.
تبدیل متن به Sparse Vector
در Keyword Search:
هم Prompt و هم Documentها به Sparse Vector تبدیل میشوند.
این Vectorها نشان میدهند:
- هر کلمه از Vocabulary چند بار در متن وجود دارد.
نقش TF-IDF و BM25
TF-IDF و BM25 روشهایی برای پردازش این Sparse Vectorها هستند تا:
- امتیاز ارتباط ایجاد کنند.
- Documentها را رتبهبندی کنند.
آنها عواملی مانند موارد زیر را در نظر میگیرند:
- میزان کمیابی Keyword
- تعداد دفعات استفاده Keyword در Document
- طول Document
نقاط قوت Keyword Search
1. سادگی
مهمترین مزیت Keyword Search:
- ساده است.
- قابل درک است.
- در عمل عملکرد خوبی دارد.
گاهی حتی میتواند بهتنهایی یک Benchmark قوی ایجاد کند.
2. تطابق دقیق کلمات
Keyword Search تضمین میکند که Documentهای بازیابیشده شامل کلمات موجود در Prompt باشند.
این ویژگی در شرایطی بسیار مهم است که کاربر از:
- اصطلاحات فنی
- نام دقیق محصولات
- کلمات تخصصی
استفاده میکند.
مثال:
اگر کاربر جستجو کند:
Cisco Catalyst 9300 configuration
وجود همین کلمات دقیق اهمیت زیادی دارد.
محدودیتهای Keyword Search
وابستگی به کلمات مشابه
مشکل اصلی:
Keyword Search فقط زمانی موفق است که کلمات Prompt با کلمات Document تطابق داشته باشند.
اگر:
- معنی مشابه باشد.
- اما کلمات متفاوت باشند.
ممکن است نتیجه پیدا نشود.
مثال
Prompt:
How can I protect my computer from attacks?
Document:
Cybersecurity defense best practices
از نظر معنا مرتبط هستند.
اما اگر کلمات مشترک کافی نداشته باشند، Keyword Search ممکن است آن را پیدا نکند.
جمعبندی
- BM25 الگوریتم رایج Keyword Search در Retrieverهای مدرن است.
- BM25 نسخه بهبود یافته TF-IDF است.
- BM25 مشکل تکرار بیش از حد Keyword را با Term Frequency Saturation حل میکند.
- BM25 طول Document را با Document Length Normalization بهتر مدیریت میکند.
- BM25 دارای Hyperparameterهایی است که امکان تنظیم برای Datasetهای مختلف را فراهم میکنند.
- Keyword Search برای تطابق دقیق کلمات بسیار قدرتمند است.
- ضعف اصلی Keyword Search این است که معنی مشابه با کلمات متفاوت را بهخوبی تشخیص نمیدهد.
- برای حل این مشکل، از Semantic Search استفاده میشود.