فرض کنید یک مدل تعبیه شده دارید. با توجه به یک کاربر، چگونه تصمیم می گیرید که کدام موارد را توصیه کنید؟
در زمان خدمت، با دادن یک پرس و جو، با انجام یکی از موارد زیر شروع می کنید:
- برای مدل فاکتورسازی ماتریس، جاسازی پرس و جو (یا کاربر) به صورت ایستا شناخته شده است و سیستم می تواند به سادگی آن را از ماتریس تعبیه شده کاربر جستجو کند.
- برای یک مدل DNN، سیستم با اجرای شبکه بر روی بردار ویژگی \(x\)پرس و جوی جاسازی شده \(\psi(x)\)در زمان سرویس محاسبه می کند.
هنگامی که درخواست جاسازی \(q\)داشتید، موارد جاسازی\(V_j\) را که نزدیک به \(q\) هستند در فضای جاسازی جستجو کنید. این مشکل نزدیکترین همسایه است. برای مثال، میتوانید k آیتمهای برتر را با توجه به امتیاز شباهت \(s(q, V_j)\)برگردانید.
شما می توانید از یک رویکرد مشابه در توصیه های مربوط به موارد استفاده کنید. به عنوان مثال، زمانی که کاربر در حال تماشای یک ویدیوی YouTube است، سیستم میتواند ابتدا جاسازی آن مورد را جستجو کند و سپس به دنبال جاسازیهای سایر موارد\(V_j\) که در فضای جاسازی نزدیک هستند، بگردد.
بازیابی در مقیاس بزرگ
برای محاسبه نزدیکترین همسایگان در فضای تعبیه شده، سیستم می تواند به طور کامل به هر نامزد بالقوه امتیاز دهد. امتیازدهی جامع میتواند برای گروههای بسیار بزرگ گران باشد، اما میتوانید از یکی از استراتژیهای زیر برای کارآمدتر کردن آن استفاده کنید:
- اگر جاسازی پرس و جو به صورت ایستا شناخته شده باشد، سیستم می تواند امتیازدهی جامع را به صورت آفلاین انجام دهد، از پیش محاسبه کرده و لیستی از نامزدهای برتر برای هر پرس و جو را ذخیره کند. این یک روش معمول برای توصیه موارد مرتبط است.
- از نزدیکترین همسایگان تقریبی استفاده کنید.