بازیابی

فرض کنید یک مدل تعبیه شده دارید. با توجه به یک کاربر، چگونه تصمیم می گیرید که کدام موارد را توصیه کنید؟

در زمان خدمت، با دادن یک پرس و جو، با انجام یکی از موارد زیر شروع می کنید:

  • برای مدل فاکتورسازی ماتریس، جاسازی پرس و جو (یا کاربر) به صورت ایستا شناخته شده است و سیستم می تواند به سادگی آن را از ماتریس تعبیه شده کاربر جستجو کند.
  • برای یک مدل DNN، سیستم تعبیه پرس و جو را محاسبه می کند \(\psi(x)\)در زمان خدمت با اجرای شبکه بر روی بردار ویژگی \(x\).

وقتی پرس و جو را جاسازی کردید \(q\)، جاسازی های مورد را جستجو کنید\(V_j\) که نزدیک هستند \(q\) در فضای تعبیه این مشکل نزدیکترین همسایه است. به عنوان مثال، می توانید k آیتم های برتر را با توجه به امتیاز شباهت برگردانید \(s(q, V_j)\).

تصویر طیف دو بعدی با چندین فیلم و کاربر مرتب شده است از فیلم های کودکان تا بزرگسالان، آثار هنری تا فیلم های پرفروش. یک کاربر است هایلایت شده و همچنین دو فیلم نزدیک.

شما می توانید از یک رویکرد مشابه در توصیه های مربوط به موارد استفاده کنید. به عنوان مثال، زمانی که کاربر در حال تماشای یک ویدیوی YouTube است، سیستم می‌تواند ابتدا به جستجوی جاسازی آن آیتم بپردازد و سپس به دنبال جاسازی موارد دیگر بگردد.\(V_j\) که در فضای تعبیه نزدیک هستند.

بازیابی در مقیاس بزرگ

برای محاسبه نزدیکترین همسایگان در فضای تعبیه شده، سیستم می تواند به طور کامل به هر نامزد بالقوه امتیاز دهد. امتیازدهی جامع می‌تواند برای گروه‌های بسیار بزرگ گران باشد، اما می‌توانید از یکی از استراتژی‌های زیر برای کارآمدتر کردن آن استفاده کنید:

  • اگر جاسازی پرس و جو به صورت ایستا شناخته شده باشد، سیستم می تواند امتیازدهی جامع را به صورت آفلاین انجام دهد، از پیش محاسبه کرده و لیستی از نامزدهای برتر برای هر پرس و جو را ذخیره کند. این یک روش معمول برای توصیه موارد مرتبط است.
  • از نزدیکترین همسایگان تقریبی استفاده کنید.گوگل یک ابزار منبع باز در GitHub به نام ScaNN (نزدیکترین همسایگان مقیاس پذیر) ارائه می دهد. این ابزار جستجوی کارآمد شباهت برداری را در مقیاس انجام می دهد.