semantic search چیست؟
در semantic search به جای معنای ظاهری کلمات، به مفهوم اصلی پنهان شده پشت کلمات توجه میشود.
اهمیت semantic search در چند حالت زیره:
حالت اول
حالت اول اهمیت سمنتیک سرچ وقتیه که کاربرها چیزی که شناخته شده نیست و اسمش رو نمیدونن رو وقتی میخوان سرچش کنن اون رو توصیف میکنن و فرض کنیم چند کاربر میخوان یک چیز واحد اما غیرمعروف رو سرچ کنن و هیچکدوم اسمش رو نمیدونن. هر کدوم یه جور توصیفش میکنه.
گنگ سرچ کردن کاربرها
حالت دوم درمورد کلماتی هست که چندتا معنی متفاوت میدن. مثلا شیر سه تا معنی میده، شیر آب، شیر جنگل و شیر پاکتی. حالا فرض کنیم کاربر سرچ کنه “شیر”. مشخص نیست منظورش کدوم شیره و اینجور کلمات چندمعنایی تا وقتی که توی جمله استفاده نشن معنی مورد نظر مشخص نمیشه.
سلسله مراتب واژگانی و ارتباط بین موجودیت ها
وقتی کاربر سرچ میکنه who’s the partner of the actor who played obi wan گوگل باید مراحل زیر رو طی بکنه تا بتونه نتایج مناسب رو به کاربر نشون بده:
- منظور کاربر از partner چیه؟ wife/girlfriend/husband/boyfriend/spouse
- Obi-Wan توی فیلم ها و سریال های زیادی و با بازیگرهای مختلفی بازی کرده
- بین دو مورد بالا ارتباط برقرار کنه
- نتایج جست و جو رو به شکلی که منعکس کننده ابهام در مورد Obi-Wan هست نشون بده
سلسله مراتب واژگانی روابط بین کلمات رو مشخص میکنه. کلمه partner بالاتر از wife, boyfriend, spouse و … هست. قبلا هم اشاره شد که معنای ظاهری کلمه با فهوم اصلی پنهان شده پشت کلمه متفاوته. مثلا وقتی کاربر سرچ میکنه مقرون به صرفه خیلی مهمه که بدونیم منظورش ارزونه یا یه چیزی با قیمت متوسط.
Entities توی این مثال کاراکترهای فیلم ها و سریال هایی هستند که Obi-Wan توشون نقش بازی کرده. افرادی با یک شغل مشخص (بازیگری) و با Obi-Wan در ارتباط هستند (پارتنرهاش). به طور کلی موجودیت ها اشیا یا مفاهیمی هستند که میشه اونها رو به طور مشخص شناسایی کرد مثل افراد، اماکن مشخص، اشیا و … .
مثال ایرانیزه:
منطقه ای درشمال کشور که پل معلق دارد
- منظور کاربر از منطقه چیه؟ شهر، روستا، استان و …
- پلهای معلق مختلفی در شمال کشور وجود دارد
- بین دو مورد بالا ارتباط برقرار کنه
- نتایج جست و جو رو به شکلی به کاربر نشون بده که ابهامی که در مورد پل معلق هست رو منعکس کنه
سلسله مراتب واژگانی روابط بین کلمات رو مشخص میکنه. کلمه منطقه بالاتر از شهر، روستا، استان و … هست. قبلا هم اشاره شد که معنای ظاهری کلمه با مفهوم اصلی پنهان شده پشت کلمه متفاوته. مثلا وقتی کاربر سرچ میکنه مقرون به صرفه خیلی مهمه که بدونیم منظورش ارزونه یا یه چیزی با قیمت متوسط.
Entities توی این مثال مکان هایی هستند که توشون پل معلق وجود داره. مکان هایی که در یک موقعیت جغرافیایی مشخص هستند(شمال کشور) و با پل معلق در ارتباط هستند (منطقه قرارگیری پل). به طور کلی موجودیت ها، مفاهیمی هستند که میشه اونها رو به طور مشخص شناسایی کرد مثل افراد، اماکن، اشیا و … .
اما پیچیدگی های سمانتیک سئو به همینجا ختم نمیشه و چیزهایی فراتر از این هم وجود داره.
نیاز به انعکاس علایق و گرایش های شخصی
python دو معنی متفاوت میده، یکیش یک نوع ماره و دیگری یک نوع زبان برنامه نویسی. وقتی یک برنامه نویس سرچ کنه python تمام نتایجی که گوگل به اون نشون میده مربوط به زبان برنامه نویسی پایتون میشه. یعنی گوگل از دیتای کاربر و سابقه سرچ اون استفاده میکنه برای اینکه نتایج بهتری رو بهش نشون بده.
برای اثبات این قضیه کافیه توی گوگل خدمات خاصی رو سرچ کنید و میبینید که گوگل نزدیک ترین مراکز ارائه دهنده اون خدمات به موقعیت شما رو بهتون نشون میده.
اما ویژگی برجسته گوگل توانیی اون برای پویایی نتایج جست و جو برای هر کوئری و تنظیم کردن اون بر اساس تغییر search intent هست.
مثلا ویروس کرونا خیلی وقت پیش توسط دانشمندان کشف شده و چیز جدیدی نیست و به گروهی از ویروس ها اشاره داره. اما وقتی بیماری کرونا در دنیا همه گیر شد، search intent کرونا تغییر کرد و کاربرها به دنبال اطلاعاتی در مورد نوع خاصی از ویروس کرونا بودند و SERP براساس اون تغییر کرد.
گوگل دائما الگوریتم هاش رو به روز میکنه و تکنولوژی های مرتبط با فهم زبان و search intent رو بهبود میده. 4 مورد که هرکدوم نقطه عطفی در semantic search هستند:
- Knowledge Graph
- Hummingbird
- RankBrain
- BERT
Knowledge Graph
Knowledge Graph یا گراف دانش گوگل در سال 2012 معرفی شد که یک پایگاه دانش در مورد موجودیت ها و روابط بین اونهاست. چیزی شبیه به تصویر زیر اما با بیش از 5 میلیار entities.