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

گاهی اوقات مردم به Yandex مراجعه می کنند تا فیلمی را پیدا کنند که عنوان آن ذهن آنها را از دست داده است. آنها طرح داستان، صحنه های به یاد ماندنی، جزئیات واضح را شرح می دهند: به عنوان مثال، [نام فیلمی که در آن مردی یک قرص قرمز یا آبی را انتخاب می کند چیست]. تصمیم گرفتیم توضیحات فیلم های فراموش شده را مطالعه کنیم و بفهمیم مردم چه چیزی را بیشتر از این فیلم ها به یاد دارند.

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

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


همه موتورهای جستجو با جستجوی کلمه شروع به کار کردند. Yandex در ابتدا توانست مورفولوژی زبان روسی را در نظر بگیرد، اما هنوز همان جستجوی کلمات از یک پرس و جو در صفحات اینترنت بود. ما فهرستی از تمام صفحات شناخته شده را برای هر کلمه نگه داشتیم. اگر درخواست حاوی عبارتی بود، کافی بود از لیست کلمات عبور کنید - پاسخ شما در اینجا است. در آن روزها که وب‌سایت‌های کمی وجود داشت، عالی کار می‌کرد و موضوع رتبه‌بندی هنوز آنقدر مهم نبود.

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

سه عامل بسیار کم است. به خصوص زمانی که بهینه سازان بسیار با استعداد برای موتورهای جستجو سعی در فریب دادن آنها دارند. اما هضم بیشتر با دست مشکل بود. و در اینجا عصر یادگیری ماشینی آغاز شد. در سال 2009، ما Matrixnet را بر اساس تقویت گرادیان معرفی کردیم (بعداً این فناوری اساس یک کتابخانه متن باز پیشرفته تر را تشکیل داد. CatBoost).

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

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


رتبه‌بندی دیگر فقط به مقایسه کلمات و صفحات درخواستی نیست. دو نمونه.

در سال 2014، ما فناوری حاشیه نویسی اسناد را با پرس و جوهای مشخصه معرفی کردیم. بیایید بگوییم که در گذشته یک پرس و جو [سریال تلویزیونی از برزیل در مورد پادشاه گوشت] وجود داشت که قبلاً پاسخ خوبی برای آن شناخته شده است. سپس کاربر دیگری وارد یک پرس و جو می شود [سریال تلویزیونی برزیلی که در آن یک پادشاه گوشت و یک پادشاه لبنیات وجود داشت] که دستگاه هنوز پاسخ آن را نمی داند. اما این پرس و جوها کلمات مشترک زیادی دارند. این سیگنالی است که نشان می دهد صفحه یافت شده برای درخواست اول ممکن است برای درخواست دوم مرتبط باشد.

مثالی دیگر. بیایید جستارهای [سریال تلویزیونی برزیلی که در آن یک پادشاه گوشت و یک پادشاه لبنیات وجود داشت] و [سریال تلویزیونی وراثت کشنده] را در نظر بگیریم. آنها فقط یک کلمه مشترک دارند - "سری"، و این برای مقایسه صریح پرس و جوها کافی نیست. در این مورد، ما شروع به در نظر گرفتن سابقه جستجو کردیم. اگر سایت‌های مشابهی در نتایج جستجو برای دو پرس‌و‌جوی متفاوت مورد تقاضا باشند، می‌توانیم فرض کنیم که پرس‌وجوها قابل تعویض هستند. این مفید است زیرا اکنون متون هر دو عبارت را جستجو می کنیم تا صفحات مفیدتری را پیدا کنیم. اما این فقط برای پرس و جوهای مکرر کار می کند، زمانی که حداقل آماری وجود داشته باشد. با درخواست های جدید چه کنیم؟

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


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

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

به همین ترتیب، ما شروع به مقایسه متون پرس و جو برای شناسایی ارتباط بین آنها کردیم. یک مثال واقعی از زیر کاپوت یک موتور جستجو: برای پرسش [سریال آمریکایی در مورد نحوه طبخ مت آمفتامین]، این شبکه عصبی است که عبارات [شکستن بد] و [شکستن بد] را از نظر معنی مشابه می یابد.

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

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

دلیل آن قابل پیش بینی است - منابع محدود و الزامات بالا برای سرعت پاسخ. محدودیت های سخت محاسبات از یک واقعیت ساده ناشی می شود: شما نمی توانید کاربر را منتظر نگه دارید. اما بعد به چیزی رسیدیم.


در سال 2017، به‌روزرسانی جستجوی Korolev را ارائه کردیم که نه تنها شامل استفاده گسترده از شبکه‌های عصبی، بلکه کار جدی روی معماری برای صرفه‌جویی در منابع بود. قبلاً در پست دیگری در Habré با جزئیات بیشتری همراه با نمودارهای لایه و سایر جزئیات توضیح داده ایم، اما اکنون اجازه دهید نکته اصلی را به شما یادآوری کنیم.

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

نمودار دیگری برای کنجکاوهافیلمی که در آن خاک بود. تحقیق Yandex و تاریخچه مختصری از جستجو بر اساس معنی

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

در نتیجه، تغییر معماری و توزیع مجدد بارها به ما این امکان را داد که از شبکه های عصبی نه تنها در مرحله L3، بلکه برای L2 و L1 نیز استفاده کنیم. علاوه بر این، توانایی تولید یک برداری از قبل و با الزامات عملکردی کمتر به ما اجازه می‌دهد که نه تنها عنوان صفحه، بلکه از متن آن نیز استفاده کنیم.


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

امروز یک بار دیگر به شما یادآوری کردیم که چگونه موتورهای جستجو می‌آموزند وقتی سؤال مبهم است و اطلاعات کافی وجود ندارد، پاسخی را پیدا کنند. جست‌وجوی فیلم‌ها بر اساس توضیحات آنها نه تنها یک مورد خاص از چنین پرسش‌هایی است، بلکه موضوعی عالی برای آن‌ها است پژوهش. از آن خواهید آموخت: آنچه مردم در سینما به شدت به یاد می آورند، ژانرها و سینماهای مختلف کشورهای مختلف با چه چیزهایی مرتبط هستند، چه حرکات داستانی تأثیر خاصی می گذارد.

منبع: www.habr.com

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