مایکروسافت کتابخانه جستجوی برداری مورد استفاده در بینگ را منبع باز کرد

مایکروسافت опубликовала کدهای منبع کتابخانه یادگیری ماشین SPTAG (Space Partition Tree And Graph) با پیاده سازی الگوریتم تقریبی جستجوی نزدیکترین همسایه. کتابخانه توسعه یافته در بخش تحقیقاتی تحقیقات مایکروسافت و مرکز توسعه فناوری جستجو (مرکز فناوری جستجوی مایکروسافت). در عمل، SPTAG توسط موتور جستجوی Bing برای تعیین مرتبط‌ترین نتایج بر اساس زمینه جستجوها استفاده می‌شود. کد به زبان C++ و نوشته شده است توزیع شده توسط تحت مجوز MIT Build برای لینوکس و ویندوز پشتیبانی می شود. یک اتصال برای زبان پایتون وجود دارد.

علیرغم این واقعیت که ایده استفاده از ذخیره سازی برداری در موتورهای جستجو برای مدت طولانی مطرح بوده است، در عمل، اجرای آنها به دلیل شدت منابع بالای عملیات با بردارها و محدودیت های مقیاس پذیری با مشکل مواجه می شود. ترکیب روش‌های یادگیری ماشین عمیق با الگوریتم‌های تقریبی جستجوی نزدیک‌ترین همسایه، این امکان را فراهم کرده است که عملکرد و مقیاس‌پذیری سیستم‌های برداری را به سطح قابل قبولی برای موتورهای جستجوی بزرگ برساند. به عنوان مثال، در Bing، برای یک شاخص برداری بیش از 150 میلیارد بردار، زمان واکشی مرتبط ترین نتایج در 8 میلی ثانیه است.

این کتابخانه شامل ابزارهایی برای ایجاد فهرست و سازماندهی جستجوهای برداری، و همچنین مجموعه ای از ابزارها برای حفظ یک سیستم جستجوی آنلاین توزیع شده است که مجموعه های بسیار بزرگی از بردارها را پوشش می دهد. ارایه شده ماژول های زیر: سازنده شاخص برای نمایه سازی، جستجوگر برای جستجو با استفاده از یک شاخص توزیع شده در یک خوشه از چندین گره، سرور برای اجرای کنترل کننده ها بر روی گره ها، Aggregator برای ترکیب چندین سرور در یک، و مشتری برای ارسال پرس و جو. گنجاندن بردارهای جدید در فهرست و حذف بردارها در پرواز پشتیبانی می شود.

کتابخانه دلالت بر این دارد که داده های پردازش شده و ارائه شده در مجموعه در قالب بردارهای مرتبط قالب بندی شده است که می توان بر اساس آن مقایسه کرد. اقلیدسی (L2) یا کسینوس فاصله ها عبارت جستجو بردارهایی را برمی گرداند که فاصله آنها بین آنها و بردار اصلی حداقل است. SPTAG دو روش برای سازماندهی فضای برداری ارائه می دهد: SPTAG-KDT (درخت K-dimensional (kd-tree) و نمودار همسایگی نسبی) و SPTAG-BKT (k-به معنی درخت (k-به معنی درخت و نمودار همسایگی نسبی). روش اول هنگام کار با شاخص به منابع کمتری نیاز دارد و روش دوم دقت بالاتر نتایج جستجو را برای مجموعه های بسیار بزرگی از بردارها نشان می دهد.

در عین حال، جستجوی برداری به متن محدود نمی شود و می تواند برای اطلاعات و تصاویر چند رسانه ای و همچنین در سیستم هایی برای تولید خودکار توصیه ها اعمال شود. به عنوان مثال، یکی از نمونه‌های اولیه مبتنی بر چارچوب PyTorch، یک سیستم برداری را برای جستجو بر اساس شباهت اشیاء در تصاویر پیاده‌سازی کرد که با استفاده از داده‌های چندین مجموعه مرجع با تصاویر حیوانات، گربه‌ها و سگ‌ها ساخته شد که به مجموعه‌ای از بردارها تبدیل شدند. . هنگامی که یک تصویر دریافتی برای جستجو دریافت می‌شود، با استفاده از یک مدل یادگیری ماشینی به بردار تبدیل می‌شود که بر اساس آن مشابه‌ترین بردارها با استفاده از الگوریتم SPTAG از فهرست انتخاب می‌شوند و در نتیجه تصاویر مرتبط برگردانده می‌شوند.

منبع: opennet.ru

اضافه کردن نظر