TAHA
11-02-2012, 12:13 PM
شاید شما هم به این موضوع فکر کرده باشید که موتورهای جستجو چگونه کار میکنند؟ توسط چه الگوریتم هایی با سرعتی بسیار بالا، نتایج موردنظر شما را درباره یک درخواست از بین میلیون ها صفحه یافته و استخراج میکنند؟ چگونه لینک هایی که ارتباط بیشتری به موضوع مورد نظر شما دارند را تشخیص داده و آنها را در صفحات اول جستجو قرار میدهند؟ بازیابی اطلاعات (Information Retrieval) علمی است که سرمنشاء کارکرد موتورهای جستجو است.
تفاوت Information Retrieval با کارکرد سیستم های Data Retrieval :
احتمالا قبلا با دیتابیس ها کار کرده اید. شما یک Query مشخص مینویسید و درخواست خود را کاملا واضح و دقیق به بانک اطلاعاتی اعلام میکنید. DBMS نیز رکوردهایی از جداول موردنظر شما را که با درخواست شما تطابق دارند برای شما می آورد. مثلا شما نمرات دانشجویانی را که تجدید شده اند میخواهید و نتایج جستجو کلیه ی نمرات زیر 10 را برای شما نمایش میدهد. آنچه در دیتابیس های کنونی اتفاق می افتد Exact matching است. و به این فرایند Data Retrieval میگویند که یکی از حالات خاص برای Information retrieval محسوب میشود. یعنی دقیقا همان چیزی را که اعلام کرده اید ، برای شما میآورد. در این جستجو
قطعیت
وجود دارد. مثلا در مورد این درخواست، اینگونه نیست که دانشجویان نمایش داده شده در نتایج کوئری
احتمالا
مردود باشند. بلکه 100% تجدید هستند. اما آنچه که بعنوان نتایج سیستم های بازیابی اطلاعات (IR:
I
nformation
R
etrieval) در خروجی ظاهر میشود تا جای ممکن
شبیــه
به درخواست شماست. در واقع نتایج خروجی این سیستم ها دارای Similarity با درخواست واردشده هستند. همچنین در این سیستم ها درصدی از خطا در نتایج همواره قابل پذیرش است. (بطور مثال بارها برای شما پیش آمده است که در گوگل چیزی را جستجو کرده باشید و به نتایج نسبی - و نه کاملا آنچه مدنظرتان بوده - رسید اید.)
گوگل چگونه کار میکند؟
برای امتحان کردن کارکرد IR کافیست در گوگل مثلا عبارت "مقالات
آموزش
فتوشاپ" را جستجو کنید. خواهید دید که در نتایج ظاهر شده عباراتی با عنوان "مقالات
آموزشی
فتوشاپ" نیز پررنگ شده اند. مسلما از دید گوگل کلمات
آموزش
و
آموزشی
متفاوت هستند و درکی که شما بعنوان یک فارسی زبان از این دو کلمه دارید با درک یک موتور جستجوگر کاملا متفاوت است. اما چه چیزی باعث میشود تا گوگل این دو کلمه را شبیه هم ارزیابی کند؟ گوگل با جستجو در میان میلیون ها صفحه و یافتن ارتباط بین آنها فهمیده است که این دو کلمه هم ارز یکدیگرند. در واقع اصلی ترین کارکرد سیستم های IR نیز همین است. هر موتور جستجو تعداد مشخصی صفحه (Document) را در بانک اسناد خود نگه داری میکند که به این بانک Text DB میگوییم. هر Document یا سند توسط الگوریتم های خاصی بررسی و index گذاری میشود تا کلمات مرتبط با هر سند استخراج گردد و در جستجوها مورد بررسی قرار گیرد. روش های index گذاری شامل دو نوع FullText و SomeKeywords است. برخی الگوریتم ها تمام کلمات موجود در یک سند را بعنوان کلمات کلیدی آن سند بررسی میکنند و برخی الگوریتم ها فقط به بعضی لغات اهمیت میدهند و آنها را بعنوان کلمات کلیدی سند مورد نظر درنظر میگیرند. لفات درنظرگرفته شده، دید کلی از سند موردنظر را برای موتور جستجوگر فراهم میکند. به همین دلیل این لفات را Logical View of the document میگویند.
در فرایند اجرای یک کوئری چه اتفاقی میافتد؟
http://pnu-club.com/imported/2012/04/25.gif
در ابتدا کاربر درخواست خود را از طریق User interface وارد میکند. الگوریتم های Text Operation درخواست کاربر را به Logical View هایی که موتورجستجوگر میفهمد ترجمه میکنند (بطور مثال کلماتی مانند and/or از داخل کلماتی که وارد کرده اید حذف میشوند و کلمات بر اساس اهمیتشان مرتب میشوند). بخش Query operation یک کوئری از روی کلمات داده شده میسازد و به موتور سرچ میدهد. موتور سرچ از داخل index هایی که قبلا در بانک index ها ثبت شده اند، نتایج را استخراج میکند. نتایج حاصل در بخش Ranking بر اساس میزان مرتبط بودنشان با درخواست کاربر طبقه بندی میشوند و نتایج به کاربر نمایش داده میشود.
دریافت Feedback از کاربر:
موتورهای جستجوگر جدید از نظرات کاربر درمورد نتایج نمایش داده شده برای بهبود نتایج بعدی استفاده میکنند. بطور مثال شما در گوگل وقتی روی یکی از نتایج جستجو کلیک میکنید، گوگل امتیاز ویژه ای را برای آن مورد در نظر میگیرد. زیرا شما از بین 10 نتیجه ی نمایش داده شده در آن صفحه فقط روی آن مورد خاص کلیک کردید. همچنین جدیدا گوگل سرویس دیگری را در بخش نتایج خود فراهم کرده است که به کاربران امکان میدهد تا نتایجی که از نظر آنها با موضوعی که جستجو کرده اند بیشتر مرتبط است ، به بالای سایر نتایج منتقل کنند و با اینکار گوگل میفهمد که شما در مقابل جستجوی آن عبارت خاص، این نتیجه را از بین سایز نتیجه ها بیشتر پسندیده اید. همچنین میتوانید نتایج نامناسب را از داخل نتایج نمایش داده شده حذف کنید، مسلما گوگل از این Feedback ها برای بهبود نتایج جستجویش استفاده میکند.
در بخش جستجوی تصاویر گوگل وقتی شما یک عبارت را جستجو میکنید و نتایجی را به شما نمایش میدهد، شما فقط بر روی چند عکس خاص کلیک میکنید. گوگل از این طریق میفهمد که عکس موردنظر با جستجوی شما رابطه ی نزدیک تری دارد تا عکس هایی که رویشان کلیک نکردید.
چگونه اسناد مرتبط با درخواست کاربر یافت میشوند؟
آنچه بین موتورهای جستجوگر باعث نمایش نتایج جستجوی متفاوت میشود، استفاده از مدل های مختلف IR در مدلسازی خروجی است. هم اکنون سه مدل کلاسیک با نام های Boolean و Vector و Probabilistic model وجود دارند که سرمنشاء کلیه مدلهای جاری برای مدلسازی داده های خروجی در موتورهای جستجوگر هستند. موتورهای جستجوی امروزی مانند گوگل گرچه از هیچ یک از این سه مدل استفاده نمیکنند، اما مدلهای آنها نیز برداشتی جدید از همین مدل ها محسوب میشود.
تفاوت Information Retrieval با کارکرد سیستم های Data Retrieval :
احتمالا قبلا با دیتابیس ها کار کرده اید. شما یک Query مشخص مینویسید و درخواست خود را کاملا واضح و دقیق به بانک اطلاعاتی اعلام میکنید. DBMS نیز رکوردهایی از جداول موردنظر شما را که با درخواست شما تطابق دارند برای شما می آورد. مثلا شما نمرات دانشجویانی را که تجدید شده اند میخواهید و نتایج جستجو کلیه ی نمرات زیر 10 را برای شما نمایش میدهد. آنچه در دیتابیس های کنونی اتفاق می افتد Exact matching است. و به این فرایند Data Retrieval میگویند که یکی از حالات خاص برای Information retrieval محسوب میشود. یعنی دقیقا همان چیزی را که اعلام کرده اید ، برای شما میآورد. در این جستجو
قطعیت
وجود دارد. مثلا در مورد این درخواست، اینگونه نیست که دانشجویان نمایش داده شده در نتایج کوئری
احتمالا
مردود باشند. بلکه 100% تجدید هستند. اما آنچه که بعنوان نتایج سیستم های بازیابی اطلاعات (IR:
I
nformation
R
etrieval) در خروجی ظاهر میشود تا جای ممکن
شبیــه
به درخواست شماست. در واقع نتایج خروجی این سیستم ها دارای Similarity با درخواست واردشده هستند. همچنین در این سیستم ها درصدی از خطا در نتایج همواره قابل پذیرش است. (بطور مثال بارها برای شما پیش آمده است که در گوگل چیزی را جستجو کرده باشید و به نتایج نسبی - و نه کاملا آنچه مدنظرتان بوده - رسید اید.)
گوگل چگونه کار میکند؟
برای امتحان کردن کارکرد IR کافیست در گوگل مثلا عبارت "مقالات
آموزش
فتوشاپ" را جستجو کنید. خواهید دید که در نتایج ظاهر شده عباراتی با عنوان "مقالات
آموزشی
فتوشاپ" نیز پررنگ شده اند. مسلما از دید گوگل کلمات
آموزش
و
آموزشی
متفاوت هستند و درکی که شما بعنوان یک فارسی زبان از این دو کلمه دارید با درک یک موتور جستجوگر کاملا متفاوت است. اما چه چیزی باعث میشود تا گوگل این دو کلمه را شبیه هم ارزیابی کند؟ گوگل با جستجو در میان میلیون ها صفحه و یافتن ارتباط بین آنها فهمیده است که این دو کلمه هم ارز یکدیگرند. در واقع اصلی ترین کارکرد سیستم های IR نیز همین است. هر موتور جستجو تعداد مشخصی صفحه (Document) را در بانک اسناد خود نگه داری میکند که به این بانک Text DB میگوییم. هر Document یا سند توسط الگوریتم های خاصی بررسی و index گذاری میشود تا کلمات مرتبط با هر سند استخراج گردد و در جستجوها مورد بررسی قرار گیرد. روش های index گذاری شامل دو نوع FullText و SomeKeywords است. برخی الگوریتم ها تمام کلمات موجود در یک سند را بعنوان کلمات کلیدی آن سند بررسی میکنند و برخی الگوریتم ها فقط به بعضی لغات اهمیت میدهند و آنها را بعنوان کلمات کلیدی سند مورد نظر درنظر میگیرند. لفات درنظرگرفته شده، دید کلی از سند موردنظر را برای موتور جستجوگر فراهم میکند. به همین دلیل این لفات را Logical View of the document میگویند.
در فرایند اجرای یک کوئری چه اتفاقی میافتد؟
http://pnu-club.com/imported/2012/04/25.gif
در ابتدا کاربر درخواست خود را از طریق User interface وارد میکند. الگوریتم های Text Operation درخواست کاربر را به Logical View هایی که موتورجستجوگر میفهمد ترجمه میکنند (بطور مثال کلماتی مانند and/or از داخل کلماتی که وارد کرده اید حذف میشوند و کلمات بر اساس اهمیتشان مرتب میشوند). بخش Query operation یک کوئری از روی کلمات داده شده میسازد و به موتور سرچ میدهد. موتور سرچ از داخل index هایی که قبلا در بانک index ها ثبت شده اند، نتایج را استخراج میکند. نتایج حاصل در بخش Ranking بر اساس میزان مرتبط بودنشان با درخواست کاربر طبقه بندی میشوند و نتایج به کاربر نمایش داده میشود.
دریافت Feedback از کاربر:
موتورهای جستجوگر جدید از نظرات کاربر درمورد نتایج نمایش داده شده برای بهبود نتایج بعدی استفاده میکنند. بطور مثال شما در گوگل وقتی روی یکی از نتایج جستجو کلیک میکنید، گوگل امتیاز ویژه ای را برای آن مورد در نظر میگیرد. زیرا شما از بین 10 نتیجه ی نمایش داده شده در آن صفحه فقط روی آن مورد خاص کلیک کردید. همچنین جدیدا گوگل سرویس دیگری را در بخش نتایج خود فراهم کرده است که به کاربران امکان میدهد تا نتایجی که از نظر آنها با موضوعی که جستجو کرده اند بیشتر مرتبط است ، به بالای سایر نتایج منتقل کنند و با اینکار گوگل میفهمد که شما در مقابل جستجوی آن عبارت خاص، این نتیجه را از بین سایز نتیجه ها بیشتر پسندیده اید. همچنین میتوانید نتایج نامناسب را از داخل نتایج نمایش داده شده حذف کنید، مسلما گوگل از این Feedback ها برای بهبود نتایج جستجویش استفاده میکند.
در بخش جستجوی تصاویر گوگل وقتی شما یک عبارت را جستجو میکنید و نتایجی را به شما نمایش میدهد، شما فقط بر روی چند عکس خاص کلیک میکنید. گوگل از این طریق میفهمد که عکس موردنظر با جستجوی شما رابطه ی نزدیک تری دارد تا عکس هایی که رویشان کلیک نکردید.
چگونه اسناد مرتبط با درخواست کاربر یافت میشوند؟
آنچه بین موتورهای جستجوگر باعث نمایش نتایج جستجوی متفاوت میشود، استفاده از مدل های مختلف IR در مدلسازی خروجی است. هم اکنون سه مدل کلاسیک با نام های Boolean و Vector و Probabilistic model وجود دارند که سرمنشاء کلیه مدلهای جاری برای مدلسازی داده های خروجی در موتورهای جستجوگر هستند. موتورهای جستجوی امروزی مانند گوگل گرچه از هیچ یک از این سه مدل استفاده نمیکنند، اما مدلهای آنها نیز برداشتی جدید از همین مدل ها محسوب میشود.