جستجوی معنایی با بردارها


اگر آخرین اخبار را در جستجو دنبال می کنید، احتمالاً در مورد جستجوی برداری شنیده اید.

و حتی ممکن است شروع به کندوکاو در موضوع کرده باشید تا بیشتر در مورد آن بیاموزید، اما سر دیگر گیج شده اید. آیا آن ریاضی را در دانشگاه رها نکردی؟

جستجوی بردار ساختمان دشوار است. درک آن لازم نیست.

و درک اینکه جستجوی برداری آینده نیست، جستجوی ترکیبی است – این به همان اندازه مهم است.

بردارها چیست؟

وقتی در مورد بردارها در زمینه یادگیری ماشین صحبت می کنیم، منظور ما این است: بردارها گروه هایی از اعداد هستند که چیزی را نشان می دهند.

آن چیز می تواند یک تصویر، یک کلمه یا تقریباً هر چیزی باشد.

البته سؤال این است که چرا آن بردارها مفید هستند و چگونه ایجاد می شوند.

بیایید ابتدا ببینیم که آن بردارها از کجا آمده اند. پاسخ کوتاه: یادگیری ماشینی.

جی آلمار شاید بهترین پست وبلاگی را دارد که تا به حال روی آن نوشته شده است بردارها چیست.

به‌طور خلاصه، یادگیری ماشین آیتم‌های ورودی را مدل‌سازی می‌کند (از اینجا به بعد فقط کلمات را فرض می‌کنیم) و سعی می‌کند بهترین فرمول‌ها را برای پیش‌بینی چیز دیگری کشف کند.

به عنوان مثال، ممکن است مدلی داشته باشید که کلمه «زنبور» را به کار می‌برد، و سعی می‌کند بهترین فرمول‌هایی را بیابد که به‌دقت پیش‌بینی کند که «زنبور» در زمینه‌های مشابهی مانند «حشرات» و «زنبور» دیده می‌شود.

هنگامی که آن مدل بهترین فرمول را داشت، می‌تواند کلمه «زنبور» را به گروهی از اعداد تبدیل کند که اتفاقاً شبیه گروه اعداد «حشرات» و «زنبور» هستند.

چرا بردارها قدرتمند هستند

بردارها به این دلیل واقعا قدرتمند هستند: مدل‌های زبان بزرگ مانند Generative Pre-trained Transformer 3 (GPT-3) یا مدل‌های Google میلیاردها کلمه و جمله را در نظر می‌گیرند، بنابراین می‌توانند شروع به ایجاد این ارتباطات کنند و واقعاً باهوش شوند.

درک اینکه چرا مردم برای استفاده از این هوش برای جستجو بسیار هیجان زده هستند، آسان است.

حتی برخی این را می گویند جستجوی برداری جایگزین جستجوی کلیدواژه خواهد شد ما دهه هاست که می شناسیم و دوست داشته ایم.

با این حال، موضوع این است که جستجوی برداری جایگزین جستجوی کل کلمات کلیدی نمی شود. فکر کردن به اینکه جستجوی کلیدواژه ارزش بسیار زیادی را حفظ نخواهد کرد، خوش بینی زیادی را در جدید و درخشان ایجاد می کند.

جستجوی برداری و جستجوی کلمات کلیدی هر کدام نقاط قوت خود را دارند و زمانی که با هم کار می کنند بهترین عملکرد را دارند.

جستجوی برداری برای جستارهای دم بلند

اگر در جستجو کار می کنید، احتمالاً از نزدیک با دم طولانی پرس و جوها آشنا هستید.

این مفهوم، توسط کریس اندرسون برای توصیف محتوای دیجیتال رایج شد، می گوید که برخی از آیتم ها (برای عبارت های جستجو) وجود دارند که بسیار محبوب تر از هر چیز دیگری هستند، اما تعداد زیادی آیتم های فردی وجود دارند که هنوز توسط شخصی می خواهند.

در مورد جستجو هم همینطور است.

تعداد کمی از پرس و جوها (که پرس و جوهای “سر” نیز نامیده می شوند) هر کدام زیاد جستجو می شوند، اما اکثریت پرس و جوها بسیار کم جستجو می شوند – شاید حتی فقط یک بار.

اعداد از سایتی به سایت دیگر متفاوت خواهند بود، اما در یک سایت متوسط، حدود یک سوم کل جستجوها ممکن است از چند ده پرس و جو باشد، در حالی که تقریباً نیمی از حجم جستجو از جستارهایی خارج از 1000 پرطرفدار است.

جستارهای دم بلند معمولا طولانی تر هستند و حتی ممکن است جستارهای زبان طبیعی باشند.

تحقیقات شرکت من Algolia نشان داد که 75٪ از پرس و جوها دو کلمه یا کمتر هستند. 90% پرس و جوها چهار کلمه یا کمتر هستند. سپس، برای رسیدن به 99٪ پرس و جوها، به 13 کلمه نیاز دارید!

با این حال، آنها همیشه طولانی نیستند، آنها فقط می توانند مبهم باشند. برای یک وب‌سایت مد زنانه، «لباس ارغوانی» می‌تواند یک سوال دم بلند باشد، زیرا مردم اغلب آن رنگ را نمی‌خواهند. “Wristlet” نیز ممکن است یک پرس و جو به ندرت دیده شود، حتی اگر وب سایت دارای دستبندهایی برای فروش باشد.

جستجوی برداری معمولاً برای پرس و جوهای دم طولانی عالی عمل می کند. می‌تواند درک کند که مچ‌بندها شبیه دستبند هستند و حتی بدون تنظیم مترادف دستبندها را روی آن قرار می‌دهند. وقتی کسی چیزی را به رنگ ارغوانی جستجو می کند، می تواند لباس های صورتی یا بنفش را نشان دهد.

جستجوی برداری حتی می تواند برای آن جستارهای طولانی یا طبیعی به خوبی کار کند. «چیزی برای سرد نگه داشتن نوشیدنی‌های من» یخچال‌ها را در جستجوی وکتور به خوبی تنظیم می‌کند، در حالی که با جستجوی کلیدواژه، بهتر است امیدوار باشید که متن جایی در توضیحات محصول باشد.

به عبارت دیگر، جستجوی برداری، یادآوری نتایج جستجو یا تعداد نتایج یافت شده را افزایش می دهد.

جستجوی برداری چگونه کار می کند

جستجوی برداری این کار را با گرفتن گروه‌هایی از اعدادی که در بالا توضیح دادیم انجام می‌دهد و موتور جستجوی برداری را می‌پرسد: «اگر بخواهم این گروه‌ها از اعداد را به‌عنوان خطوط رسم کنم، کدامیک به هم نزدیک‌تر هستند؟»

یک راه آسان برای مفهوم سازی این است که به گروه هایی فکر کنید که فقط دو عدد دارند. گروه [1,2] قرار است به گروه نزدیک تر شود [2,2] نسبت به گروه [2,500].

(البته، از آنجایی که بردارها دارای ده ها عدد هستند، در ده ها بعد “نمودار” می شوند، که تجسم آن چندان آسان نیست.)

این رویکرد برای تعیین شباهت قدرتمند است زیرا بردارهایی که کلماتی مانند “دکتر” و “پزشکی” را نشان می دهند، بسیار شبیه تر از کلمات “پزشک” و “سنگ” “نمودار” خواهند بود.

معایب جستجوی برداری

با این حال، جستجوی برداری معایبی دارد.

اول هزینه است. همه آن یادگیری ماشینی که در بالا به آن پرداختیم؟ هزینه هایی دارد.

برای یک چیز، ذخیره بردارها از ذخیره یک فهرست جستجوی مبتنی بر کلمه کلیدی گران تر است. جستجو در آن بردارها نیز در بیشتر موارد کندتر از جستجوی کلمه کلیدی است.

اکنون، هش کردن می تواند هر دوی این مشکلات را کاهش دهد.

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

هش کردن یک سری مراحل را برای تبدیل بخشی از اطلاعات (مانند یک رشته یا یک عدد) به عدد انجام می دهد که حافظه کمتری نسبت به اطلاعات اصلی اشغال می کند.

معلوم می شود که ما نیز می توانیم استفاده کنیم هش برای کاهش اندازه بردارها در حالی که همچنان آنچه که بردارها را مفید می کند حفظ می کند: توانایی آنها برای مطابقت با موارد مفهومی مشابه.

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

جزئیات بسیار فنی هستند، اما آنچه مهم است درک امکان پذیر بودن آن است.

سودمندی مداوم جستجوی کلمات کلیدی

این بدان معنا نیست که جستجوی کلمه کلیدی هنوز مفید نیست! جستجوی کلیدواژه عموما سریعتر از جستجوی برداری است.

علاوه بر این، درک اینکه چرا نتایج به شکلی که هستند رتبه بندی می شوند آسان تر است.

به عنوان مثال عبارت “تگزاس” و “tejano” و “state” را به عنوان تطابق کلمات بالقوه در نظر بگیرید. واضح است که اگر از منظر جستجوی کلمه کلیدی خالص به مقایسه نگاه کنیم، “tejano” نزدیک تر است. با این حال، تشخیص اینکه کدام یک از رویکرد جستجوی برداری نزدیکتر است، آسان نیست.

جستجوی مبتنی بر کلمه کلیدی «تگزاس» را بیشتر شبیه «تجانو» می‌داند، زیرا از رویکردی مبتنی بر متن برای یافتن رکوردها استفاده می‌کند.

اگر رکوردها حاوی کلماتی باشند که دقیقاً مشابه آنچه در پرس و جو هستند (یا در سطح معینی از اختلاف برای محاسبه اشتباهات املایی) هستند، آنگاه رکورد مربوطه در نظر گرفته می شود و به مجموعه نتایج باز می گردد.

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

جستجوی کلید واژه به عنوان سودمند برای جستجوهای سر

به همین دلیل، جستجوی کلمات کلیدی برای پرس و جوهای اصلی بسیار خوب عمل می کند: آن دسته از جستارهایی که محبوب ترین هستند.

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

از آنجایی که جستجوی کلیدواژه برای جستارهای سر و جستجوی برداری برای جستارهای طولانی بهترین کار می کند، این دو در هماهنگی بهترین کار را دارند.

این به عنوان جستجوی ترکیبی شناخته می شود.

جستجوی ترکیبی زمانی است که یک موتور جستجو از جستجوی کلیدواژه و بردار برای یک پرس و جو استفاده می کند و رکوردها را به درستی رتبه بندی می کند، مهم نیست که کدام رویکرد جستجو باعث ایجاد آنها شده است.

رتبه بندی رکوردها در منابع جستجو

رتبه بندی رکوردهایی که از دو منبع مختلف به دست می آیند آسان نیست.

این دو رویکرد، به دلیل ماهیت خود، روش های متفاوتی برای کسب رکورد دارند.

جستجوی برداری امتیازی را برمی‌گرداند، در حالی که برخی از موتورهای مبتنی بر کلمات کلیدی این کار را نمی‌کنند. حتی اگر موتورهای مبتنی بر کلمه کلیدی امتیازی را برگردانند، هیچ تضمینی وجود ندارد که این دو امتیاز معادل باشند.

اگر نمرات معادل نباشند، نمی توانید بگویید که امتیاز 0.8 از موتور کلمه کلیدی نسبت به امتیاز 0.79 از موتور برداری مرتبط تر است.

جایگزین دیگر این است که همه نتایج را از طریق امتیازدهی موتور برداری یا موتور کلمه کلیدی اجرا کنید.

این مزیت دریافت فراخوان اضافی از موتور برداری است، اما دارای معایبی نیز هست. آن نتایج فراخوان اضافی که از موتور بردار به دست می‌آیند به عنوان مرتبط با امتیاز کلمه کلیدی رتبه‌بندی نمی‌شوند، در غیر این صورت در نتایج مجموعه‌ای از قبل ظاهر می‌شوند.

شما می توانید به طور متناوب همه نتایج را – کلیدواژه یا موارد دیگر – از طریق امتیاز دهی برداری اجرا کنید، اما این کار کند و گران است.

جستجوی برداری به عنوان یک بازگشت

به همین دلیل است که برخی از موتورهای جستجو حتی سعی نمی کنند این دو را با هم ترکیب کنند، اما در عوض همیشه ابتدا نتایج کلیدواژه و سپس نتایج بردار را نمایش می دهند.

تفکر اینجا این است که اگر یک جستجو صفر یا چند نتیجه را برگرداند، می توانید به نتایج برداری بازگردید.

به یاد داشته باشید، جستجوی برداری به منظور بهبود یادآوری یا یافتن نتایج بیشتر است، و بنابراین ممکن است نتایج مرتبطی را پیدا کند که جستجوی کلیدواژه نتوانسته است.

این یک توقف مناسب است اما آینده جستجوی ترکیبی واقعی نیست.

جستجوی ترکیبی واقعی چندین منبع جستجوی مختلف را در یک مجموعه نتیجه با ایجاد امتیازی قابل مقایسه در منابع مختلف رتبه‌بندی می‌کند.

امروزه تحقیقات زیادی در مورد این رویکرد وجود دارد، اما تعداد کمی از آنها این کار را به خوبی انجام می دهند و موتور خود را به صورت عمومی ارائه می کنند.

پس این برای شما چه معنایی دارد؟

در حال حاضر، بهترین کاری که می توانید انجام دهید این است که محکم بنشینید و از آنچه در صنعت اتفاق می افتد به روز باشید.

جستجوی ترکیبی مبتنی بر کلیدواژه و برداری در سال‌های آینده در دسترس خواهد بود و برای افرادی که تیم‌های علم داده نیستند در دسترس خواهد بود.

در این میان، جستجوی کلیدواژه همچنان ارزشمند است و تنها زمانی بهبود می‌یابد که جستجوی برداری بعداً وارد شود.

منابع بیشتر:


تصویر ویژه: pluie_r/Shutterstock





منبع

مطالب مرتبط