From Wikipedia, the free encyclopedia
سامانه توصیهگر (به انگلیسی: Recommender System) یا سامانه پیشنهادگر (واژه سیستم یا سامانه گاهی با پلتفرم یا موتور جایگزین میشود)، با تحلیل رفتار کاربر خود، اقدام به پیشنهاد مناسبترین اقلام (داده، اطلاعات، کالا و…)مینماید. این سیستم رویکردی است که برای مواجهه با مشکلات ناشی از حجم فراوان و رو به رشد اطلاعات ارائه شدهاست و به کاربر خود کمک میکند تا در میان حجم عظیم اطلاعات سریعتر به هدف خود نزدیک شوند. برخی سامانه پیشنهادگر را معادل پالایش گروهی (به انگلیسی: Collaborative filtering) میدانند.
پیشبینی میشد که تا اوایل سال ۲۰۰۷ میلادی در سایت دانشنامه اینترنتی ویکیپدیا چیزی حدود ۵٫۱ میلیون مقاله به ثبت رسیده باشد یا سایت مدیریت و به اشتراکگذاری تصاویر فلیکر بالغ بر ۲۵۰ میلیون تصویر را در خود جای دهد. از این رو، میتوان گفت که ما در میان حجم عظیمی از داده و اطلاعات قرار گرفتهایم که بدون راهنمایی و ناوبری درست ممکن است انتخابهایی غلط یا غیر بهینه از میان آنها داشته باشیم. سیستمهای توصیهگر سیستمهای تأثیرگذار در راهنمایی و هدایت کاربر، در میان حجم عظیمی از انتخابهای ممکن، برای رسیدن به گزینه مفید و مورد علاقه وی هستند، به گونهای که این فرایند برای همان کاربر شخصیسازی شده باشد.
تعاریف متفاوتی برای سیستمهای توصیهگر ارائه شدهاست. از آن جمله، تعریف کلینگر و خلاصه آقای Ting-peng liang در سال ۲۰۰۷ است که RS را زیرمجموعهای از DSSها میداند و آنها را سیستمهای اطلاعاتی تعریف میکند که، توانایی تحلیل رفتارهای گذشته و ارائه توصیههایی برای مسائل جاری را دارا هستند. به زبان سادهتر در سیستمهای توصیهگر تلاش بر این است تا با حدس زدن شیوه تفکر کاربر (به کمک اطلاعاتی که از نحوه رفتار وی یا کاربران مشابه وی و نظرات آنها داریم) به وی مناسبترین و نزدیکترین کالا به سلیقه او را شناسایی و پیشنهاد کنیم. این سیستمها در حقیقت همان فرایندی که ما در زندگی روزمره خود به کار میبریم و طی آن تلاش میکنیم تا افرادی با سلایق نزدیک به خود را پیدا کرده و از آنها در مورد انتخابهایمان نظر بخواهیم. توصیههایی که از سوی سیستمهای توصیهگر ارائه میشوند بهطور کلی میتوانند دو نتیجه دربرداشته باشند:
سیستمهای توصیهگر برای هر دو طرف یک تعامل (تجاری یا غیرتجاری)، مفید هستند و مزایایی را فراهم میآورد. برای نمونه در یک تعامل تجاری، مشتریها از این جهت که عمل جستجو در میان حجم زیاد اطلاعات برای آنها تسهیل و تسریع میشود، استفاده از سیستمهای توصیهگر را مفید میدانند؛ فروشندگان به کمک این سیستمها میتوانند رضایت مشتریان را بالا برده و نیز فروش خود را افزایش دهد.
حجم فراوان و روبه رشد اطلاعات بر روی وب و اینترنت، فرایند تصمیمگیری و انتخاب اطلاعات، داده یا کالاهای مورد نیاز را، برای بسیاری از کاربران وب دشوار کردهاست. این موضوع، خود انگیزهای شد تا محققان را وادار به پیدا کردن راهحلی برای رویارویی با این مشکل اساسی عصر جدید که با عنوان سرریز دادهها شناخته میشود کند. برای رویارویی با این مسئله تاکنون دو رویکرد مطرح شدهاند، اولین رویکردی که به کار گرفته شد استفاده از دو مفهوم بازیابی اطلاعات و تصفیهسازی اطلاعات بود. عمده محدودیتی که این دو مفهوم در ارائه پیشنهادها دارند، این است که برخلاف توصیهگرهای انسانی (مثل دوستان، اعضای خانواده و …)، این دو روش قادر به تشخیص و تفکیک اقلام با کیفیت و بی کیفیت، در ارائه پیشنهاد برای یک موضوع یا کالا، نیستند. مشکل مذکور، موجب شد تا رویکرد دومی تحت عنوان سیستم توصیهگر پدید آید. این سیستمهای جدید، مشکل سیستمهای موجود در رویکرد اولیه را حل کردهاند.
تقریباً در اواسط دهه ۹۰ بود که مطالعه بر روی سیستمهای توصیهگر به عنوان یک شاخه مستقل در تحقیقات مطرح شد و علت این توجه خاص، ابراز تمایل محققان، برای حل مشکل روشهای توصیهگری بود که در رویکرد اولیه به مسئله جستجو در حجم فراوان اطلاعات، از آنها استفاده میشد.
ظرفیت رایانهها در فراهم آوردن توصیهها تقریباً از همان اوایل تاریخچه رایانهها شناخته شد. گراندی، یک کتابدار کامپیوتری گامی اولیه به سمت سامانههای توصیهگر خودکار بود. این کتابدار یک توصیهگر نسبتاً ساده و اولیه بود که کاربران را به قالبهایی بر اساس مصاحبه کوتاه با استفاده از اطلاعات مستقیمکدشده(hard-coded) دربارهٔ سلایق کتاب قالبهای مختلف گروهبندی میکرد تا توصیهها را تولید کند، ولی این کار ورود اولیه مهم به فضای سامانههای توصیهگر قلمداد میشود.
در اوایل دهه نود میلادی، تکنیک پالایش مشارکتی به عنوان راهحلی برای مدیریت فضای اطلاعات بسیار زیاد آنلاین به وجود آمدند. تپستری Tapestry یک سامانه پالایش مشارکتی دستی بود. این سامانه به کاربر اجازه انجام پرسوجو برای آیتمهای موجود در یک حوزه اطلاعاتی مانند ایمیل بر اساس عقاید و اقدامات دیگر کاربران میداد (همه ایمیلهایی که از طرف John فوروارد شدهاند را به من نشان بده). اینکار مستلزم تلاش از طرف کاربرانش بود ولی به آنها اجازه کنترل واکنشهای خوانندگان قبلی یک قسمت از مکاتبات را میداد تا میزان ارتباطش با آنها را تعیین کند.
خیلی زود بعد از سامانههای خودکار پالایش مشارکتی، مکانیابی خودکار عقاید مرتبط و تجمع آنها برای دادن توصیه مطرح شد. GroupLens از این تکنیک برای تعیین کردن مقالههای Usenet که احتمال دارد مورد علاقه کاربر خاصی باشد استفاده کرد. کاربران تنها نیاز داشتند تا نمرهدهی یا دیگر اقدامات قابل مشاهده انجام دهند. سامانه اینها را با نمرهها یا اقدامات کاربران دیگر ترکیب میکرد تا نتایج شخصیشده تولید کند. با این سامانهها، برای دریافت پیشنهادها، کابران نه قادرند هیچ اطلاعات مستقیمی از عقاید دیگر کاربران بهدست بیاورند و نه نیازی دارند تا بدانند کاربران یا آیتمهای دیگر سامانه چهچیزهایی هستند.
طی این دوره، سامانههای توصیهگر و پالایش مشارکتی تبدیل به موضوعی مورد علاقه در بین محققان حوزههای تعاملات انسان-رایانه، یادگیری ماشین و بازیابی اطلاعات شدند. این علاقه منجر به ایجاد تعدادی سامانه توصیهگر برای زمینههای مختلفی شد از جمله Ringo برای موسیقی، توصیهگر ویدیو BellCore برای فیلمها و Jester برای لطیفهها شد. خارج از دنیای رایانه، حوزه بازاریابی توصیهها را برای تواناییشان در افزایش فروش و بهبود تجربه مشتریان آنالیز کردهاست.
در اواخر دهه نود میلادی، پیادهسازیهای تجاری فناوری توصیهگرها شروع به ظهور کردند. شاید معروفترین کاربرد فناوریهای سامانههای توصیه گر وبسایت Amazon.com باشد. بر اساس تاریخچه خرید، تاریخچه بازدید و آیتمی که کاربر در حال مشاهده آن است آنها به کاربر آیتمهایی را توصیه میکنند تا برای خرید در نظر بگیرد.
از زمان بهکارگیری توسط آمازون، فناوری توصیه، اغلب بر اساس پالایش مشارکتی، در بسیاری از سامانههای تجارت الکترونیک و آنلاین تعبیه شدهاست. یک انگیزه قابل ملاحظه برای انجام اینکار افزایش حجم فروش است، مشتریان ممکن است کالایی را بخرند اگر آن کالا به آنها پیشنهاد شود ولی درغیراینصورت ممکن است آن کالا را نخرند. شرکتهای بسیاری مانند NetPerceptions و Strands بخاطر فراهم کردن فناوری و خدمات توصیه به خردهفروشان آنلاین به وجود آمدهاند.
جعبه ابزار تکنیکهای توصیه گر به چیزی بیش از پالایش مشارکتی گسترش یافتهاند و شامل رویکردهای محتوامحور(Content-Based) بر اساس متدهای بازیابی اطلاعات، استنتاج بیزی (Bayesian Inference) و استدلال مورد محور (Case-Based Reasonong) است. این متدها به جای یا درعوض الگوهای نمره دهی کاربران، محتوا یا ویژگیهای اصلی آیتمهایی که قرار است توصیه شود را در نظر میگیرند. با به بلوغ رسیدن استراتژیهای توصیه مختلف، سامانههای توصیهگر ترکیبی (Hybrid Recommender Systems) نیز ظهور یافتهاند و الگوریتمهای مختلفی را در سیستمهای مرکبی ترکیب کردهاند که بر اساس قدرت الگوریتمهای تشکیلدهندهشان ایجاد شدهاند. البته در کنار رویکردهای محتوا محور، پالایش مشارکتی، هم روش تکی و هم ترکیبشدهاش به عنوان روشی مؤثر همچنان مطرح هستند.
زمانی که Netflix جایزه Netflix Prize را در سال ۲۰۰۶ به منظور بهبود بخشیدن وضعیت توصیههای فیلمش برقرار کرد، تحقیق بر روی الگوریتمهای سامانههای توصیهگر توجه بسیاری را به خودش جلب کرد. هدف این رقابت ساختن یک الگوریتم توصیهگری بود که بتواند الگوریتم CineMatch که متعلق به خود Netflix بود را با ۱۰٪ بهبود در آزمایشها آفلاین شکست دهد. این امر موجب ایجاد خروشی از اقدامات شد، هم در بین محیط آکادمیک و هم در بین سایر علاقمندان. جایزه یک میلیون دلاری ارزشی را که فروشندگان برای دقت توصیهها قائل هستند نشان میدهد[1].
سیستمهای توصیهگر کاربردهای فراوانی دارند که برخی از زمینههای کاربردی آن به شرح زیر است:
لازم است برای درک مفهوم سیستم توصیهگر، مفاهیم چهارگانه و ابتدایی زیر را بررسی کنیم.
حال با مفهوم تابع سودمندی آشنا خواهیم شد که قصد داریم به کمک آن یک مدل کلی ریاضی از سیستمهای توصیهگر را نیز ارائه دهیم. در واقع یک سیستم توصیهگر را میتوان با این نگاشت همسان دانست و مدل کرد:
فرض کنید C مجموعه تمامی کاربران و S مجموعه اقلام در دسترس باشند. تابعی را که میزان مفید و متناسب بودن کالای S برای کاربر C را محاسبه میکند با u نشان میدهیم، که در آن R مجموعهای است کاملاً مرتب (براساس میزان اهمیت). هرکدام از عناصر S را میتوان با مجموعهای از خصوصیات، مشخص کرد. برای مثال، محصولی مثل فیلم را میتوان با مشخصههایی چون عنوان فیلم، کارگردان، طول زمانی فیلم، تاریخ تولید و … ثبت کرد. همچنین عناصر مجموعه C را نیز میتوان بر اساس ویژگیهای مثل سن، جنسیت و … ثبت کرد. (باید توجه داشت که u روی تمام فضای مجموعه آغازین S×C تعریف شده نیست؛ از این رو باید برونیابی شود)
سامانههای توصیهگر بهطور کلی به سه دسته تقسیم میشوند؛ در رایجترین تقسیمبندی، آنها را به سه گروه ۱. محتوا محور ۲. دانش محور و ۳. صافیسازی تجمعی، تقسیم میکنند، که البته گونه چهارمی تحت عنوان Hybrid RS هم برای آنها قائل میشوند.
یک رویکرد در سیستمهای توصیهگر، استفاده از الگوریتمهای CF یا صافیسازی تجمعی است. منطق این روش این گونه است که افرادی که در گذشته علایق مشترک داشتند، در آینده نیز اشتراک خواهند داشت. این الگوریتمها این گونه عمل میکنند که برای ارائه یک پیشنهاد به یک کاربر، کاربری با امتیازات مشابه کاربر فعلی را جستوجو میکنند. این الگوریتمها از نوع داده پیشنهاد شده و پیچیدگی آن مستقل هستند و به همین دلیل حتی برای دادههای پیچیده نتایج دقیقی خواهند داشت. از ابتدایی ترین الگوریتمهای استفاده شده برای یافتن شباهت موارد و کاربرها، الگوریتم کی-نزدیکترین همسایه و ضریب همبستگی پیرسون هستند. [2] از نقاط ضعف این روش میتوان موارد زیر اشاره کرد:
شروع سرد: برای یک کاربر یا مورد جدید که اطلاعات زیادی از آن در دست نیست، نمیتوان با دقت پیشبینی کرد. در چنین شرایطی، سیستمها معمولاً از یادگیری فعال (Active Learning)[3][4] یا استفاده از ویژگیهای شخصیتی کاربر،[5] یا Multi-armed bandit برای حل مشکل استفاده میکنند.
مقیاس: تعداد کاربران و موارد بسیار زیاد است و برای یافتن بهترین پیشنهاد، عملیات و محاسبات زیادی باید توسط کامپیوتر انجام شود.
پراکندگی: موارد زیادی به فروش میرسند ولی تعداد کمی از آنها دارای امتیاز هستند و حتی پرفروش ترین کالاها هم تعداد امتیاز آنها به نسبت تعداد فروششان بسیار کم است.
در روش محتوا محور، اقلام پیشنهادی، به این دلیل که با اقلامی که کاربر فعال (کاربری که قرار است. به او توصیه کنیم) نسبت به آنها ابراز علاقه کردهاست شباهتهایی دارند، به کاربر توصیه میشوند ولی در CF، لیست اقلام پیشنهادی، بر اساس این اصل که، کاربرانی، مشابه کاربر فعال، از آنها رضایت داشتهاند تهیه میشود. از این رو واضح است که در روش محتوامحور، تمرکز بر روی یافتن شباهت بین اقلام بوده، در حالی که در CF، تمرکز روی یافتن شباهت بین کاربران است؛ بدین ترتیب که پیشنهادها در CF، بر اساس تشابه رفتاری کاربر فعال با کاربران دیگر صورت میگیرد و نه بر اساس تشابه ویژگی کالاهای پیشنهادی با ویژگیهای کالاهای مورد علاقه وی (کاربر فعال). رویکرد محتوا محور یکی از روشهای مؤثر برای حلی نوعی از مشکل شروع سرد است که برای کالاهای (آیتمهای) جدید رخ میدهد (New Item problem)[6] که به تازگی به لیست سیستم اضافه شدهاند و هیچ کاربری در مورد آنها نظری نداده است. در چنین حالتی رویکرد صافیسازی تجمعی نمیتواند این کالاها را به کاربران توصیه کند.
اما گونه سوم این سیستمها را با نام سیستمهای دانش محور میشناسند. این سیستمها براساس ادراکی که از نیازهای مشتری و ویژگیهای کالاها پیدا کردهاند، توصیههایی را ارائه میدهند. به عبارتی در این گونه از سیستمهای توصیهگر مواد اولیه مورد استفاده برای تولید لیستی از پیشنهادها، دانش سیستم در مورد مشتری و کالا است. سیستمهای دانش محور از متدهای مختلفی که برای تحلیل دانش، قابل استفاده هستند بهره میبرند که متدهای رایج در الگوریتمهای ژنتیک، فازی، شبکههای عصبی و … از جمله آنهاست. همچنین، در این گونه سیستمها از درختهای تصمیم، استدلال نمونهمحور و … نیز میتوان استفاده کرد. یکی از رایجترین متدهای تحلیل دانش درسیستمهای توصیهگر دانش محور ،CBR یا روش استدلال نمونهمحور است.
گونه چهارم سیستمهای ترکیبی هستند. طراحان این نوع سیستمها دو یا چند گونه از انواع سهگانه مذکور را غالباً به دو منظور با هم ترکیب میکنند؛ ۱- افزایش عملکرد سیستم ۲- کاهش اثر نقاط ضعفی که آن سیستمها وقتی به تنهایی به کار گرفته شوند، دارند. از میان سه روش موجود (CF و CB و KB)، غالباً روش CF یک پای ثابت این ترکیبات است.
سامانههای توصیهگر مانند هر مدل یادگیری ماشینی دیگر، برای فهمیدن بهترین الگوریتم برای شرایط حاضر، باید ارزیابی شوند. روشهای ارزیابی برای سامانههای توصیهگر به دو دسته اصلی ارزیابی با معیارهای مشخص و ارزیابی با قضاوت انسان تقسیم میشوند که در ادامه به توضیح این دو روش میپردازیم.
اگر سامانه توصیهگر براساس مدلی باشد که خروجی آن مقادیر عددی تولید میکند، مانند پیش بینی امتیاز، میتوانیم از معیارهای مرسوم مانند خطای میانگین مربعات استفاده کنیم. در این حالت مدل با بخشی از تعاملات آموزش میبیند و از بقیه برای آزمون استفاده میکند. اگر سامانه توصیهگر مقادیر عددی تولید نکند و صرفا دنباله ای از پیشنهادها را به کاربر نشان دهد، باز هم میتوانیم یک معیار دقیق را مانند نسبت موارد پیشنهاد شده که واقعا برای کاربر مناسب بودهاند، تعریف کنیم و از آن برای ارزیابی استفاده کنیم که برای آزمون آن تنها باید از مواردی که توسط کاربر امتیازدهی شده، استفاده کنیم. یک مثال چالش برانگیز، طراحی سامانه توصیهگر برای پیشنهاد مقالات مشابه به کاربر است. برای ارزیابی آن میتوانیم تعیین کنیم چه نسبتی از مقالات موجود در لیست منابع آن مقاله را به کاربر پیشنهاد میدهد.
اصولا سامانههای توصیهگر سعی در این دارند که دقت را بهترین نحو بالا ببرند ولی عوامل دیگری هم تاثیر بسزایی در موفقیت آنها دارند.
ارزیابی تنوع و توضیحپذیری دشوار است. همچنین در مواردی نمیتوان معیار مشخص دقیقی برای مدل طراحی کرد. در چنین مواردی میتوانیم در شرایط واقعی و با آزمون آ/ب، سامانه توصیهگر را بسنجیم.