گوگل از زمانی که کار خود را به عنوان یک موتور جستجو شروع کرد، همواره قصد داشت کاربر محور باشد و به همین دلیل دائماً بهروزرسانی میشود. اگرچه بهروزرسانیهای اول ساده و ابتدایی به نظر میرسید، اما همانها سکوی پرشی بودند تا گوگل به الگوریتم هوش مصنوعی دست پیدا کند. بعد از آن الگوریتمهای هوشمند نسل جدید همچون BERT روی کار آمدند و لبخند رضایت را بر روی لبان کاربران گوگل حفظ کردند.
مقدمهای در مورد الگوریتمهای هوش مصنوعی گوگل
گوگل کمکم در حال تبدیل شدن از mobile-first به AI-first است. هوش مصنوعی یا Artificial Intelligence (AI) در تمام پروژههای گوگل به چشم میخورد. حتی الگوریتمها نیز به سمت هوشمند بودن حرکت میکنند. اگر دقت کنید تمام الگوریتمهای اخیر گوگل به نوعی هوشمند بودهاند.
از وقتی که گوگل الگوریتم Rank Brain را در سال 2015 معرفی کرد تا سال 2019 که الگوریتم برت معرفی شد، همواره تلاش برای فهم معنای کلمات در الگوریتمها دیده شده است. حتی الگوریتمهایی مثل Possum یا Pigeon که برای سئو محلی به وجود آمدهاند نیز با استفاده از هوش مصنوعی قادر به درک معنای کلمات بوده و میتوانند با توجه به کلماتی که سرچ شدهاند به محلی بودن سرچ پی ببرند.
آشنایی با الگوریتم برت
الگوریتم برت برای تشخیص بهتر مفهوم عبارات توسط گوگل ابداع شد. از همین رو نوعی هوش مصنوعی به حساب میآید و یکی از بزرگترین الگوریتمهای هوش مصنوعی گوگل تا به امروز بوده است. این بهروزرسانی بزرگ با اینکه تغییرات زیادی در حوزه جستجو به وجود آورد، ولی اثرات زیادی بر رتبهبندی نتایج بر جا نگذاشت. به نمودار زیر که در سایت Search Engine Land گزارش شده توجه کنید:
همان طور که مشاهده میکنید تغییرات مانند الگوریتمهای قبلی چندان شدید نبودند. به علاوه در دو نوبت اتفاق افتادند. هیچیک از وبمستران یا سئوکاران چنین تجربهای در مورد بهروزرسانیهای گوگل نداشتهاند.
دقیقاً به همین دلیل شاید خیلی از وبمستران اصلاً متوجه این آپدیت گوگل نشده باشند. با این کار برای کاربران اثرات بزرگی را با خود آورد. با وجود این بهروزرسانی، کاربران میتوانند با تایپ آنچه در سر دارند، نزدیکترین نتیجه را روی مانیتور مشاهده کنند. حتی در سرچهای محلی هم بیتأثیر نبوده و کمک بزرگی به کسبوکارهای محلی کرده است.
الگوریتم برت چیست؟
الگوریتم BERT روش ابداعی گوگل برای آموزش پردازش زبان طبیعی (NLP) به کامپیوترهاست. کلمه BERT هم از حروف اول عبارت Bidirectional Encoder Representations from Transformers گرفته شده که به همین موضوع اشاره دارد.
با این الگوریتم برای فهرست بندی صفحات وب بر اساس کلیدواژهها، فهرستهای متنوعی برای یک کلمه در جایگاههای مختلف و با معانی مختلف ایندکس کرد تا هر لحظه کاربر آن را سرچ کند بلافاصله فهرست مورد نظر نمایش داده شود.
در آن سوی قضیه، از آنجا که گوگل بهتر میتواند معنای یک کلمه را در متنهای مختلف تشخیص دهد؛ با توجه به کلماتی که قبل و بعد از یک واژه قرار میگیرند بهتر به هدف کاربری که عبارتی را سرچ کرده پی برده و نتایج مرتبطتری را برای وی به نمایش در خواهد آورد.
تاریخچه الگوریتم برت
محققان پیش از اینکه به الگوریتم برت به عنوان یک ماشین درک معانی زبان طبیعی برسند، بارها به ماشینها آموزشهای سادهتری داده بودند. این آموزشها به صورت مرحلهای انجام میشد. به این صورت که ابتدا انجام یک کاری را روی یک مدل به ماشین یاد میدادند. سپس با استفاده از کار آموزش داده شده، از ماشین میخواستند یک هدف جدید را روی مدل جدید به انجام برساند. در سالهای اخیر محققان به این نتیجه رسیدند که همین تکنیک برای اهداف زبانی هم میتواند مفید واقع شود.
الگوریتم برت چگونه کار میکند؟
کل نحوه کار الگوریتم برت در عبارت Bidirectional Encoder Representations from Transformers توضیح داده شده است. اما ما در اینجا برای درک بهتر، هر کلمه را مجزا توضیح میدهیم:
- Transformers
برت برای درک معانی لغات از یک مکانیسم توجه استفاده میکند که به آن Transformer میگویند. در این مکانیسم، ماشین به روابطی که در متن بین کلمات وجود دارد توجه میکند. در واقع Transformer از دو مکانیسم مجزا شامل میشود:
- رمزگذاری (encoder) که متن را به عنوان ورودی میخواند.
- رمزگشایی (decoder) که معنی لغات را پیشبینی میکند.
- Encoder
از آنجایی که هدف الگوریتم برت تولید مدلهای زبانی است، فقط مرحله اول (Encoder) کفایت میکند و مرحله دوم فقط روی کاغذ باقی میماند.
- Bidirectional
همان طور که میدانید بعضی زبانها از چپ به راست نوشته میشوند و برخی دیگر از راست به چپ. بنابراین گوگل باید تمام متنها را دو بار بخواند؛ یکبار از راست به چپ و یکبار از چپ به راست یعنی Bidirectional.
البته حقیقت ماجرا این است که ماشین مورد استفاده گوگل کل تناوب یک کلمه در متن و کلمات قبل و بعدش را فقط یکبار میخواند و معنای آن را بر اساس کلماتی که در اطراف آن قرار دارد تشخیص میدهد. در واقع بهتر بود بگوییم این ماشین nondirectional است.
بر همین اساس، هرچه متنهای بیشتری میخواند پایگاه دادههای خود را تکمیل میکند و میتواند جای خالی یک جمله را با کلمه صحیح پر کند یا جمله بعدی یک متن را حدس بزند.
نحوه استفاده از مدلهای BERT برای جستجو
با اینکه الگوریتم BERT تنها یک لایه کوچک به مدل هسته اضافه کرده، میتواند برای طیف وسیعی از کاربردهای زبانی مورد استفاده قرار بگیرد. به عبارت دیگر این الگوریتم یک مقاله مفصل است که تنها بخشی از آن در اختیار سرچ گوگل قرار گرفته است. برای مثال ماشینها قادرند با استفاده از الگوی برت به سؤالات پاسخ دهند، متن را خلاصه یا نامگذاری کنند و حتی برای مشکلات راه حل پیدا کنند.
مدل برت برای جستجو از دید کاربر
متن زیر از وبلاگ گوگل گرفته شده است:
Applying BERT models to Search
Last year, we introduced and open-sourced a neural network-based technique for natural language processing (NLP) pre-training called Bidirectional Encoder Representations from Transformers, or as we call it--BERT, for short. This technology enables anyone to train their own state-of-the-art question answering system.This breakthrough was the result of Google research on transformers: models that process words in relation to all the other words in a sentence, rather than one-by-one in order. BERT models can therefore consider the full context of a word by looking at the words that come before and after it—particularly useful for understanding the intent behind search queries.
در این متن گوگل به این واقعیت اشاره دارد که به کمک مدلهای برت، درک معنای کلمات در کنار هم و درون متن انجام میشود – نه کلمه به کلمه – و به همین دلیل گوگل قادر است به هدف کاربر از جستجوی یک عبارت پی ببرد. برای درک بهتر این واقعیت به مثال زیر توجه کنید.
به کمک مدلهای BERT درک گوگل از آنچه کاربر سرچ میکند بهتر شده و متعاقباً قادر است نتایج مرتبطتری ارائه دهد. شاید اگر تا قبل از پیدایش هوش مصنوعی، چهار کلمه «آیا فردا باران میبارد» را کنار هم مینوشتید، گوگل متوجه ربط این کلمات با هم نمیشد و به دنبال عبارتهایی میگشت که هر کدام از این کلمات را داشته باشند.
شاید برای شما یک شعر عاشقانه در مورد باران باریدن یا کتابی با نام فردا باران میبارد نمایش داده میشد. در حالی که امروز وقتی چنین عبارتی سرچ شود، گوگل میفهمد که شما به دنبال هواشناسی هستید و در نتیجه با صفحهای مانند صفحه زیر مواجه خواهید شد:
بنابراین اکنون اگر قصد جستجوی عبارتی را داشته باشید بهتر است از عبارتهای بلند و طولانی استفاده کنید تا به نتایج نزدیکتری به مقصود خود دست یابید. این درحالی است که در گذشته باید خلاف این کار را انجام میدادید.
مدل برت برای جستجو از دید نویسنده محتوا
برت فقط معنای عبارتها را بهتر درک میکند. پس تنها کاری که لازم است برای سایت خود انجام دهید این است که:
- روان و شیوا بنویسید.
- از کلمات مترادف و هم معنی کلیدواژه استفاده کنید.
- کلیدواژه را در جمع عبارتهای مختلف بکار ببرید و هر نوع عبارتی که میتوان با آن ساخت را در متن داشته باشید.
- از کلیدواژههای طولانی برای رتبه گرفتن راحتتر استفاده کنید. لازم نیست برای یک کلیدواژه یک کلمهای سئو کنید.
همان طور که خود کارشناسان گوگل نیز اعلام کردهاند هیچ راهی برای بهینه سازی یک مطلب برای برت وجود ندارد. تنها راه این است که به کاربرانی که مطالبتان را میخوانند بسیار اهمیت دهید و بهترینها را برایشان بنویسید. این مطالب باید کاملاً مفید و کاربردی باشند.
این گوگل هوشمند اکنون دیگر قادر است یک محتوای خوب را از یک محتوای بد تشخیص دهد.
الگوریتم BERT چگونه بر نتایج جستجو اثر میگذارد؟
همان طور که گفته شد، با وجود الگوریتم برت، گوگل بهتر میتواند به نیت کاربران از جستجوهایشان پی ببرد. پیشتر دیدید که وقتی عبارت «آیا فردا باران میبارد» را جستجو کنیم با چه نتایجی رو به رو خواهیم شد. اکنون ببینید وقتی فقط دو کلمه از این عبارت را حذف کنیم، سرچ «باران میبارد» چه اثری بر نتایج جستجو خواهد گذاشت:
مطمئناً تا قبل از بهروزرسانی الگوریتم برت نمیتوانستید شاهد چنین تفاوت بزرگی باشید.
آیا برت بر نتایج محلی هم اثر میگذارد؟
گوگل در مورد اینکه آیا برت بر روی نتایج محلی هم اثر خواهد گذاشت یا خیر چیزی نگفته است. آنچه گوگل صریحاً به آن اقرار کرده این است که «برت از هر 10 سرچ بر روی یکی اثرگذار خواهد بود». شاید این عدد یک دهم، سرچهای محلی را هم شامل شود.
از ارقام که خارج شویم و به طرز کار مدلهای برت دقت کنیم حتماً به این نتیجه میرسیم که این الگوریتم به گوگل کمک میکند مقصود کاربران را از آوردن اسم یک شهر در عبارت سرچ درک کند و بر اساس آن نتایج محلی یا معمولی را نمایش دهد. برای مثال فرض کنید شما شهر روم را سرچ کنید یا محمد رومی را سرچ کنید. اکنون گوگل متوجه تفاوت این دو و خیلی از عبارتهای مشابه دیگر خواهد شد.
اثر برت بر نقشه گوگل یا Google maps
گوگل اعلام کرده با وجود الگوریتم برت، کاربران میتوانند بدون جستجو در مورد یک محل به خصوص، بر روی نقشه تمام نقاط شلوغ را ببینند. این مسئله در دوران شیوع کرونا میتواند کمک بزرگی برای کاربران گوگل باشد. به این ترتیب، وقتی حوصلهتان سر برود با نگاه به نقشه میتوانید ببینید کدام ساحل یا مرکز خرید خلوتتر است.
حتی در نقشه کشورهایی به جز ایران، کاربران میتوانند به امکانات فروشگاهها از نظر مسائل بهداشتی مربوط به کووید-19 پی ببرند. برای مثال اینکه آیا در این محل تست تب سنجی انجام میشود یا خیر، ماسک زدن الزامی است یا خیر و مواردی از این دست.
اثر الگوریتم بر نتایج طبیعی جستجو
به کمک الگوریتم برت، گوگل قادر است کلمات اشتباه جمله را حدس بزند یا کلمات بعدی را حدس بزند. به این ترتیب بخشی که گوگل از قبل نیز با عنوان Did you mean در صورت تایپ اشتباه کلمات در جستجوها نمایش میداد، این بار با دقت بیشتری پا به میدان گذاشته است.
پردازش زبان طبیعی NLP در هوش مصنوعی
پردازش زبان طبیعی یا Natural Language Processing (NLP) شاخهای از هوش مصنوعی است که با ارتباطات زبانی بین کامپیوترها و انسانها سر و کار دارد. اگر دقت کرده باشید ما هم گاهی برای اینکه با کامپیوتر یا گوشی خود کار کنیم باید لغاتی را در آن وارد کنیم. این همان بخشی است که NLP وارد میشود.
هدف NLP خواندن، تفسیر کردن و فهمیدن زبان انسانها توسط کامپیوترهاست.
اکثر تکنیکهای NLP تکیه بر ماشین یادگیری دارند. به این معنا که این ماشین یادگیری است که معنا را از زبان انسانها استخراج میکند. از این تکنیکها برای موارد زیر استفاده میشود:
- صحبت کردن یک انسان با یک کامپیوتر
- ضبط کردن صدا توسط یک کامپیوتر
- تبدیل صدا به متن یا برعکس
- پردازش اطلاعات یک متن
- تبدیل داده به صدا یا برعکس
- پاسخ دادن ماشین به انسان به صورت صوتی
ما از این قابلیتها در خیلی اپلیکیشنها استفاده میکنیم و حتماً اگر دقت کنید استفاده آنها را در اطراف خود دیدهاید. برای مثال:
- اپلیکیشنهای ترجمه زبان
- پردازشگرهای کلمه مثل Microsoft Word
- اپلیکیشنهای موبایلی که به صدای شما پاسخ میدهند مثل Hi Google یا bixby
در ویدئوی زیر بیشتر با فواید NLP آشنا خواهید شد:
در این ویدئو توضیح داده میشود که با وجود NLP دیگر گوگل عبارتهایی که جستجو میشوند را کلمه به کلمه ترجمه نمیکند، بلکه به معنای کلی آن توجه خواهد کرد. مثالی که در این ویدئو از آن استفاده شده عبارت «کاهش جراحات بدن» است. چنانچه قبلاً این عبارت را سرچ میکردید، گوگل به تک تک کلمات توجه میکرد و شاید با دیدن کلمات کاهش و بدن، حتی متنهایی مانند کاهش سایز بدن و ... را هم نتایج میداد. این در حالی است که با وجود مدل NLP گوگل قادر است مقصود کاربر از سرچ این عبارت را درک کرده و فقط عبارتهای مرتبط را نمایش دهد.
در ادامه توضیح داده میشود این مدل با اینکه قادر به خواندن متنها نیست؛ اما میتواند با بررسی تعداد زیادی متن، الگوهای موجود را پیدا کند. برای این کار یاد میگیرد که هنگام بررسی متن، کلماتی را که ارزش چندانی ندارند حذف کند. کلماتی مانند: است، و، در، این و .... سپس عبارتها یا گروه کلماتی که معمولاً با هم ظاهر شدهاند را در متنهای مختلف پیدا میکند. اگر یک گروه کلمه فقط در تعداد کمی از متنها تکرار شده باشد به این معنی است که این گروه کلمه (عبارت) معنای خاصی نمیدهد؛ اما وقتی یک عبارت در تعداد زیادی از متنها تکرار میشود به این معنی است که یک عبارت معنادار بوده و احتمالاً سرچ هم میشود.
بنابراین هرچه تعداد متنهایی که به عنوان دادههای ورودی در اختیار NLP قرار بگیرند افزایش یابد، توانایی آن در درک بهتر معنای زبان طبیعی بیشتر خواهد شد.
آپدیتهای الگوریتم BERT
برت از اکتبر 2019 که راه اندازی شد تا امروز که مارس 2021 است تنها یک بار دیگر بهروزرسانی شده و آن هم در تاریخ 9 دسامبر 2019 بود. به نقل از ماز به ترتیب آپدیتهای الگوریتم برت عبارتاند از:
- 18 آذر 98 (9 دسامبر 2019)
در این تاریخ گوگل اعلام کرد که پردازش زبان طبیعی (NLP) به 70 زبان زنده دنیا امکانپذیر شد و در واقع میتوان گفت الگوریتم برت بینالمللی شد.
- 30 مهر 1398 (22 اکتبر 2019)
روز راه اندازی و معرفی برت به جهان؛ گوگل الگوریتمها و سخت افزارهای بنیادی کارش را آپدیت کرد تا قادر به پشتیبانی از الگوریتم BERT باشند.
گوگل در وبلاگ خود اعلام کرده آپدیت الگوریتم برت نه تنها یک آپدیت نرم افزاری بود بلکه یک آپدیت سخت افزاری نیز نیاز داشت تا تحقق این پیشرفتهای نرم افزاری را ممکن سازد. بعضی از مدلهایی که با BERT ساخته میشوند به حدی پیشرفته هستند که انجامشان با سخت افزارهای قدیمی با محدودیتهایی مواجه بود. به همین دلیل گوگل در این زمان برای اولین بار از Cloud TPUها استفاده کرد تا بتواند در کوتاهترین زمان ممکن نتایج مرتبط را به کاربرانش ارائه دهد.
جمعبندی
تمام الگوریتمهای گوگل در راستای خدمت به کاربرانی که سرچ میکنند و راحتی ایشان به بازار عرضه میشوند. اما آنچه الگوریتم برت را در این میان خاص کرده، گسترده بودن این پروژه تحقیقاتی است. از یک سو مدلهای BERT در خیلی جهات در ساخت اپلیکیشنهایی که با انسانها تعامل دارند به جامعه بشریت کمک کردهاند.
از سوی دیگر این مدلها به هیچ وجه مانند الگوریتمهای نخستین گوگل بازیچه دست سئوکاران کلاه سیاه قرار نگرفتند. وجه تمایز برت با سایر الگوریتمها این است که سایر الگوریتمها همگی با یک چشم قضاوتگر به صفحات وب نگاه میکردند و سعی میکردند تا بر اساس آنچه به آنها آموخته شده صفحه وب یا سایت را مورد قضاوت قرار داده و با توجه به معیارهای رتبهبندی، یک رتبه به هر کدام بدهند. این در حالی است که الگوریتم برت هیچ صفحهای را قضاوت نمیکند، فقط آن را میفهمد و بر اساس درکی که از آن صفحه وب دارد، آن را برای مرتبطترین query به نمایش درمیآورد.
در مورد الگوریتم های دیگر گوگل بخوانید: