سامانه توصیه گر
سیستم توصیه گر (به انگلیسی: 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 بود را با ۱۰٪ بهبود در آزمایشات آفلاین شکست دهد. این امر موجب ایجاد خروشی از اقدامات شد، هم در بین محیط آکادمیک و هم در بین سایر علاقمندان. جایزه یک میلیون دلاری ارزشی را که فروشندگان برای دقت توصیهها قائل هستند نشان میدهد[۱].
کاربردها
سیستمهای توصیهگر کاربردهای فراوانی دارند که برخی از زمینههای کاربردی آن به شرح زیر است:
- تجارت الکترونیک: برای توصیه محصولات و خدمات مختلف.
- اینترانتهای بنگاهی: برای پیدا کردن افراد خبره در یک زمینه خاص یا افرادی که در رویارویی با شرایط مشابه، تجاربی کسب کرده و راه حلهایی یافتهاند (بیشتر داخل یک سازمان کاربرد دارد).
- کتابخانه دیجیتال: پیدا کردن کتاب، مقاله و …
- کاربردهای پزشکی: انتخاب پزشک متناسب با شرایط (مکان، نوع بیماری، زمان و …) بیمار، انتخاب دارو و …
- مدیریت ارتباط با مشتری CRM: برای ارائه راهکارهایی برای حل مشکلات تولیدکننده و مصرفکننده در زنجیره تأمین.
مقایسه سامانههای توصیه گر و سامانههای تصمیمیار کلاسیک
اگر چه شباهتهای بسیاری بین این دو سیستم وجود دارد اما بین آنها تفاوتهایی هم هست، که مهمترین این تفاوتها، این است که در DSSها کاربر نهایی مدیران ارشد یا میانی یک سازمان هستند، در حالی که در سیستمهای توصیهگر کاربری سیستم به سطح خاصی محدود نمیشود و سیستم مورد استفاده عام است. اما عمده شباهت این دو سیستم نیز بر این اساس که سیستمهای توصیهگر، جدای از دیدگاه سطوح کاربری و به لحاظ فنی، به نوعی زیر مجموعه DSS به شمار میروند. هر دوی آنها کاربر خود را در اخذ تصمیم، یاری میکنند و هر دو سیستمهای اطلاعاتیای هستند که دارای پایگاه دانش، پایگاه داده، رابط کاربری و … میباشند.
تعاریف و اصطلاحات عمده
لازم است برای درک مفهوم سیستم توصیهگر، مفاهیم چهارگانه و ابتدایی زیر را بررسی کنیم.
- در سیستمهای توصیه گر به کاربری که توصیه جاری در سیستم، برای وی در حال پردازش و آماده شدن است، کاربر فعال یا کاربر هدف میگویند.
- الگوریتمهای به کار رفته در این سیستمها، از ماتریسی به نام ماتریس رتبهها استفاده میکنند؛ اصطلاحات رایج برای این ماتریس Rating Database و Preference Database نیز هستند.
- از فعل مصرف کردن در سیستمهای توصیهگر، زمانی استفاده میکنند که کاربر توصیه ارائه شده را میپذیرد. به عبارتی وقتی کاربری پیشنهادی را که توسط سیستم به وی شده میپذیرد، میگوییم کاربر آن پیشنهاد را مصرف کرده، این پذیرش میتواند به شکلهای مختلفی باشد، مثلاً کاربر، کتاب پیشنهادی را میخرد، سایت پیشنهادی را مرور میکند یا به شرکت خدماتی ای که به او پیشنهاد شده مراجعه میکند. ساختار ماتریس رتبهها بدین گونهاست که در آن، هر سطر ماتریس نمایانگر یک کاربر و هر ستون آن معرف کالایی (شئای) خاص است.
حال با مفهوم تابع سودمندی آشنا خواهیم شد که قصد داریم به کمک آن یک مدل کلی ریاضی از سیستمهای توصیهگر را نیز ارائه دهیم. در واقع یک سیستم توصیهگر را میتوان با این نگاشت همسان دانست و مدل کرد: {\displaystyle u:C*S->R}
فرض کنید C مجموعه تمامی کاربران و S مجموعه اقلام در دسترس باشند. تابعی را که میزان مفید و متناسب بودن کالای S برای کاربر C را محاسبه میکند با u نشان میدهیم، که در آن R مجموعهای است کاملاً مرتب (براساس میزان اهمیت). هرکدام از عناصر S را میتوان با مجموعهای از خصوصیات، مشخص کرد. برای مثال، محصولی مثل فیلم را میتوان با مشخصههایی چون عنوان فیلم، کارگردان، طول زمانی فیلم، تاریخ تولید و … ثبت کرد. همچنین عناصر مجموعه C را نیز میتوان بر اساس ویژگیهای مثل سن، جنسیت و … ثبت کرد. (باید توجه داشت که u روی تمام فضای مجموعه آغازین S×C تعریف شده نیست؛ از این رو باید برونیابی شود)
سیستم توصیه گر (Recommender System) قسمت 1
سیستم توصیه گر (Recommender System) قسمت 2
سیستم توصیه گر (Recommender System) قسمت 3