جستجوی شباهت برداری از یادگیری ماشینی برای ترجمه شباهت متن، تصویر یا صدا به فضای برداری استفاده میکند و جستجو را سریعتر، دقیقتر و مقیاسپذیرتر میکند.
فرض کنید میخواهید یک سرویس موسیقی اجرا کنید که مانند Spotify عمل کند و آهنگهایی را برای شما پیدا کند که شبیه آهنگهایی است که دوست دارید. چگونه در مورد آن اقدام می کنید؟ یک راه این است که هر آهنگ را بر اساس تعدادی ویژگی طبقه بندی کنید، آن “بردارها” را در یک پایگاه داده نمایه شده ذخیره کنید و در پایگاه داده جستجو کنید تا بردارهای توصیف آهنگ “نزدیک” مورد علاقه خود را پیدا کنید. به عبارت دیگر، میتوانید جستجوی شباهت برداری انجام دهید.
جستجوی تشابه برداری چیست؟
معمولاً چهار مؤلفه برای جستجوی شباهت برداری وجود دارد: تعبیههای برداری که ویژگیهای کلیدی شی اصلی، مانند آهنگ، تصویر یا متنی را نشان میدهند. معیارهای فاصله که نشان دهنده “نزدیک” بین بردارها هستند. الگوریتم های جستجو؛ و پایگاه داده ای که بردارها را نگه می دارد و از جستجوی برداری با نمایه ها پشتیبانی می کند.
جاسازی های برداری چیست؟
جاسازیهای برداری اساساً بردارهای ویژگی هستند، همانطور که در زمینه یادگیری ماشینی و یادگیری عمیق درک میشوند. آنها را می توان با انجام مهندسی ویژگی به صورت دستی یا با استفاده از خروجی مدل ها تعریف کرد.
به عنوان مثال، رشتههای متنی را میتوان با استفاده از شبکههای عصبی، کاهش ابعاد در ماتریس همروی کلمه، مدلهای احتمالی، روشهای مبتنی بر دانش قابل توضیح، و نمایش صریح از نظر زمینه کدام کلمات ظاهر می شود مدلهای رایج برای آموزش و استفاده از جاسازی کلمات عبارتند از word2vec (Google)، GloVe (استنفورد)، ELMo (موسسه آلن/دانشگاه واشنگتن)، BERT (Google) و fastText (Facebook).
تصاویر اغلب با گرفتن خروجی مدلهای شبکه عصبی کانولوشنال (CNN) یا مدلهای ترانسفورماتور جاسازی میشوند. این مدلها بهطور خودکار ابعاد بردارهای ویژگی را با چرخاندن تکههای پیکسلها («پیچیده») در ویژگیها، و نمونهبرداری پایین با لایههای ادغام، کاهش میدهند.
توصیههای محصول میتواند بر اساس جاسازی کلمات و عبارات در توضیحات محصول، درجبندی تصاویر محصول یا هر دو باشد. تعبیههای صوتی ممکن است بر اساس تبدیل فوریه صدا (که طیف را به شما میدهد) باشد. در مورد توصیف آهنگساز، ژانر، هنرمند، تمپو، ریتم و صدای بلند. یا در هر دو طیف و کلمات کلیدی. این زمینه به سرعت در حال پیشرفت است، بنابراین من انتظار دارم تکنیک های جاسازی جدیدی برای بسیاری از زمینه های کاربردی وجود داشته باشد.
معیارهای فاصله چیست؟
ما معمولاً فاصله را برحسب خطوط مستقیم در دو یا سه بعدی در نظر می گیریم. تعبیههای برداری غالباً ۱۰ بعدی هستند و ۱۰۰۰ ابعاد آن اصلاً غیرعادی نیست. فرمول کلی فواصل از نام هرمان مینکوفسکی گرفته شده است که بیشتر (حداقل برای فیزیکدانان) به دلیل فرمول بندی نسبیت خاص اینشتین به عنوان یک فضا-زمان چهار بعدی با زمان به عنوان بعد چهارم شناخته شده است. متریک مینکوفسکی (یا فاصله) تعمیم فواصل اقلیدسی (خطوط مستقیم مستقیم) و منهتن است. فواصل (خطوط ناهموار، مانند پیاده روی بلوک های شهر).
فاصله اقلیدسی که به عنوان فاصله L2 یا هنجار L2 نیز شناخته می شود، رایج ترین متریک مورد استفاده برای الگوریتم های خوشه بندی. معیار دیگر، شباهت کسینوس، اغلب برای پردازش متن استفاده می شود، جایی که جهت بردارهای جاسازی شده مهم است اما فاصله بین آنها مهم نیست.
چه الگوریتم هایی می توانند جستجوی شباهت برداری را انجام دهند؟
به طور کلی، یک الگوریتم K-نزدیکترین همسایه (KNN) احتمالاً پاسخهای خوبی به مشکلات جستجوی برداری میدهد. مشکل اصلی KNN این است که از نظر محاسباتی گران است، هم از نظر پردازنده و هم در استفاده از حافظه.
جایگزینهای KNN عبارتند از تقریبی نزدیکترین همسایگان ( ANN) الگوریتمهای جستجو و یک تغییر در ANN، درخت پارتیشن فضایی و نمودار (SPTAG). SPTAG توسط Microsoft Research و Bing برای منبع باز منتشر شد. یک تغییر مشابه در ANN که توسط فیس بوک برای منبع باز منتشر شد، جستجوی شباهت هوش مصنوعی فیسبوک (فایس) . کوانتیزرهای محصول و IndexIVFPQ شاخص به سرعت بخشیدن به Faiss و برخی دیگر از انواع ANN کمک می کند. همانطور که قبلاً اشاره کردم، پایگاههای اطلاعاتی برداری اغلب برای بهبود سرعت جستجو، نمایههای برداری میسازند. p>
Faiss برای جستجوی اسناد چندرسانه ای که شبیه به یک سند پرس و جو در یک پایگاه داده میلیارد بردار هستند ساخته شده است. برای اهداف ارزیابی، توسعهدهندگان از Deep1B استفاده کردند، مجموعهای از یک میلیارد تصویر. Faiss به شما این امکان را می دهد که پیش پردازش برداری، پارتیشن بندی پایگاه داده و رمزگذاری برداری (کوانتی سازی محصول) خود را سفارشی کنید تا مجموعه داده در RAM موجود قرار گیرد. Faiss به طور جداگانه برای CPU و GPU پیاده سازی شده است. در پردازندههای مرکزی، Faiss میتواند در ۲ میلیثانیه به امتیاز فراخوانی ۴۰ درصدی در مجموعه دادههای یک میلیاردی تصویر دست یابد که به ۵۰۰ پرس و جو در ثانیه در هر هسته تبدیل میشود. در GPU Nvidia کلاس پاسکال، Faiss بیش از ۲۰ برابر سریعتر از CPU جستجو می کند.
SPTAG برای اهداف مشابه ساخته شده است، البته با استفاده از روشهای کمی متفاوت. بینگ بیش از ۱۵۰ میلیارد قطعه داده را که توسط موتور جستجو نمایه شده بود را بردارید تا نتایج را نسبت به تطبیق کلمات کلیدی سنتی بهبود بخشد. داده های برداری شده شامل تک کلمات، کاراکترها، تکه های صفحه وب، پرس و جوهای کامل، و رسانه های دیگر است. نویسندگان SPTAG بر اساس تحقیقات قبلی خود در مورد ANN در Microsoft Research Asia با استفاده از همسایگی تکراری مبتنی بر پرس و جو ساخته شده اند. جستجوی نمودار، و هر دو الگوریتم kd-tree (برای ایجاد فهرست بهتر) و درخت k-means متعادل (بهتر برای دقت جستجو) پیاده سازی شد. جستجوها با چندین دانه تصادفی شروع میشوند، سپس به طور مکرر در درختها و نمودار ادامه مییابند.
Pinecone یک پایگاه داده برداری کاملاً مدیریت شده با یک API است که افزودن جستجوی برداری به برنامه های تولید را آسان می کند. . خدمات جستجوی شباهت Pinecone توزیع شده، بدون سرور، پایدار، سازگار، خرد شده و در بسیاری از گره ها تکرار می شود. Pinecone می تواند میلیاردها جاسازی برداری را انجام دهد و می توانید جستجوی شباهت را در برنامه ها و نوت بوک های پایتون یا جاوا انجام دهید.
Pinecone ادعا میکند که حتی با میلیاردها مورد و هزاران درخواست در ثانیه، تاخیر کمتر از ۵۰ میلیثانیه دارد. این زیرساخت سخت شده AWS اجرا می شود. داده ها در ظروف ایزوله ذخیره می شوند و در حین انتقال رمزگذاری می شوند.
معماری جستجوی وکتور Bing ANN، توسط Microsoft Research.
کاربردهای جستجوی برداری چیست؟
علاوه بر جستجوی تصویر نشاندادهشده توسط فیسبوک و جستجوی متن معنایی پیادهسازی شده توسط مایکروسافت بینگ، جستجوی شباهت برداری میتواند موارد استفاده زیادی را ارائه دهد. به عنوان مثال میتوان به توصیههای محصول، پاسخهای پرسشهای متداول، شخصیسازی، جستجوی صوتی، حذف تکراری، و شناسایی تهدید در گزارشهای رویداد فناوری اطلاعات اشاره کرد.
پست های مرتبط
جستجوی برداری چیست؟ جستجوی بهتر از طریق هوش مصنوعی
جستجوی برداری چیست؟ جستجوی بهتر از طریق هوش مصنوعی
جستجوی برداری چیست؟ جستجوی بهتر از طریق هوش مصنوعی