سامانه توصیهگر
سامانه توصیهگر (به انگلیسی: 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: برای ارائه راهکارهایی برای حل مشکلات تولیدکننده و مصرفکننده در زنجیره تأمین.
تعاریف و اصطلاحات عمده
لازم است برای درک مفهوم سیستم توصیهگر، مفاهیم چهارگانه و ابتدایی زیر را بررسی کنیم.
- در سیستمهای توصیه گر به کاربری که توصیه جاری در سیستم، برای وی در حال پردازش و آماده شدن است، کاربر فعال یا کاربر هدف میگویند.
- الگوریتمهای به کار رفته در این سیستمها، از ماتریسی به نام ماتریس رتبهها استفاده میکنند؛ اصطلاحات رایج برای این ماتریس Rating Database و Preference Database نیز هستند.
- از فعل مصرف کردن در سیستمهای توصیهگر، زمانی استفاده میکنند که کاربر توصیه ارائه شده را میپذیرد. به عبارتی وقتی کاربری پیشنهادی را که توسط سیستم به وی شده میپذیرد، میگوییم کاربر آن پیشنهاد را مصرف کرده، این پذیرش میتواند به شکلهای مختلفی باشد، مثلاً کاربر، کتاب پیشنهادی را میخرد، سایت پیشنهادی را مرور میکند یا به شرکت خدماتی ای که به او پیشنهاد شده مراجعه میکند. ساختار ماتریس رتبهها بدین گونهاست که در آن، هر سطر ماتریس نمایانگر یک کاربر و هر ستون آن معرف کالایی (شئای) خاص است.
حال با مفهوم تابع سودمندی آشنا خواهیم شد که قصد داریم به کمک آن یک مدل کلی ریاضی از سیستمهای توصیهگر را نیز ارائه دهیم. در واقع یک سیستم توصیهگر را میتوان با این نگاشت همسان دانست و مدل کرد:
فرض کنید C مجموعه تمامی کاربران و S مجموعه اقلام در دسترس باشند. تابعی را که میزان مفید و متناسب بودن کالای S برای کاربر C را محاسبه میکند با u نشان میدهیم، که در آن R مجموعهای است کاملاً مرتب (براساس میزان اهمیت). هرکدام از عناصر S را میتوان با مجموعهای از خصوصیات، مشخص کرد. برای مثال، محصولی مثل فیلم را میتوان با مشخصههایی چون عنوان فیلم، کارگردان، طول زمانی فیلم، تاریخ تولید و … ثبت کرد. همچنین عناصر مجموعه C را نیز میتوان بر اساس ویژگیهای مثل سن، جنسیت و … ثبت کرد. (باید توجه داشت که u روی تمام فضای مجموعه آغازین S×C تعریف شده نیست؛ از این رو باید برونیابی شود)
انواع سامانههای توصیهگر
سامانههای توصیهگر بهطور کلی به سه دسته تقسیم میشوند؛ در رایجترین تقسیمبندی، آنها را به سه گروه ۱. محتوا محور ۲. دانش محور و ۳. صافیسازی تجمعی، تقسیم میکنند، که البته گونه چهارمی تحت عنوان Hybrid RS هم برای آنها قائل میشوند.
یک رویکرد به سیستمهای توصیهگر، استفاده از الگوریتمهای CF یا صافیسازی تجمعی است. در این رویکرد به جای استفاده از محتوای (Content) اقلام، از نظرات و رتبهبندیهای انجام شده توسط کاربران برای ارائه پیشنهاد، استفاده میشود. مشکل اصلی استفاده از این رویکرد، مشکل شروع سرد (Cold Start problem) است که برای کاربران جدید بروز میکند که در سیستم ثبت نام میکنند و سیستم هیچ اطلاعاتی از نظرات یا علایق کاربر ندارد (New User problem). در چنین شرایطی، سیستمها معمولاً از یادگیری فعال (Active Learning) یا استفاده از ویژگیهای شخصیتی کاربر، برای حل مشکل استفاده میکنند.
در روش محتوا محور، اقلام پیشنهادی، به این دلیل که با اقلامی که کاربر فعال (کاربری که قرار است. به او توصیه کنیم) نسبت به آنها ابراز علاقه کردهاست شباهتهایی دارند، به کاربر توصیه میشوند ولی در CF، لیست اقلام پیشنهادی، بر اساس این اصل که، کاربرانی، مشابه کاربر فعال، از آنها رضایت داشتهاند تهیه میشود. از این رو واضح است که در روش محتوامحور، تمرکز بر روی یافتن شباهت بین اقلام بوده، در حالی که در CF، تمرکز روی یافتن شباهت بین کاربران است؛ بدین ترتیب که پیشنهادها در CF، بر اساس تشابه رفتاری کاربر فعال با کاربران دیگر صورت میگیرد و نه بر اساس تشابه ویژگی کالاهای پیشنهادی با ویژگیهای کالاهای مورد علاقه وی (کاربر فعال). رویکرد محتوا محور یکی از روشهای مؤثر برای حلی نوعی از مشکل شروع سرد است که برای کالاهای (آیتمهای) جدید رخ میدهد (New Item problem) که به تازگی به لیست سیستم اضافه شدهاند و هیچ کاربری در مورد آنها نظری نداده است. در چنین حالتی رویکرد صافیسازی تجمعی نمیتواند این کالاها را به کاربران توصیه کند.
اما گونه سوم این سیستمها را با نام سیستمهای دانش محور میشناسند. این سیستمها براساس ادراکی که از نیازهای مشتری و ویژگیهای کالاها پیدا کردهاند، توصیههایی را ارائه میدهند. به عبارتی در این گونه از سیستمهای توصیهگر مواد اولیه مورد استفاده برای تولید لیستی از پیشنهادها، دانش سیستم در مورد مشتری و کالا است. سیستمهای دانش محور از متدهای مختلفی که برای تحلیل دانش، قابل استفاده هستند بهره میبرند که متدهای رایج در الگوریتمهای ژنتیک، فازی، شبکههای عصبی و … از جمله آنهاست. همچنین، در این گونه سیستمها از درختهای تصمیم، استدلال نمونهمحور و … نیز میتوان استفاده کرد. یکی از رایجترین متدهای تحلیل دانش درسیستمهای توصیهگر دانش محور ،CBR یا روش استدلال نمونهمحور است.
گونه چهارم سیستمهای ترکیبی هستند. طراحان این نوع سیستمها دو یا چند گونه از انواع سهگانه مذکور را غالباً به دو منظور با هم ترکیب میکنند؛ ۱- افزایش عملکرد سیستم ۲- کاهش اثر نقاط ضعفی که آن سیستمها وقتی به تنهایی به کار گرفته شوند، دارند. از میان سه روش موجود (CF و CB و KB)، غالباً روش CF یک پای ثابت این ترکیبات است.
ارزیابی
سامانههای توصیهگر مانند هر مدل یادگیری ماشینی دیگر، برای فهمیدن بهترین الگوریتم برای شرایط حاضر، باید ارزیابی شوند. روشهای ارزیابی برای سامانههای توصیهگر به دو دسته اصلی ارزیابی با معیارهای مشخص و ارزیابی با قضاوت انسان تقسیم میشوند که در ادامه به توضیح این دو روش میپردازیم.
معیارهای مشخص
اگر سامانه توصیهگر براساس مدلی باشد که خروجی آن مقادیر عددی تولید میکند، مانند پیش بینی امتیاز، میتوانیم از معیارهای مرسوم مانند خطای میانگین مربعات استفاده کنیم. در این حالت مدل با بخشی از تعاملات آموزش میبیند و از بقیه برای آزمون استفاده میکند. اگر سامانه توصیهگر مقادیر عددی تولید نکند و صرفا دنباله ای از پیشنهادها را به کاربر نشان دهد، باز هم میتوانیم یک معیار دقیق را مانند نسبت موارد پیشنهاد شده که واقعا برای کاربر مناسب بودهاند، تعریف کنیم و از آن برای ارزیابی استفاده کنیم که برای آزمون آن تنها باید از مواردی که توسط کاربر امتیازدهی شده، استفاده کنیم. یک مثال چالش برانگیز، طراحی سامانه توصیهگر برای پیشنهاد مقالات مشابه به کاربر است. برای ارزیابی آن میتوانیم تعیین کنیم چه نسبتی از مقالات موجود در لیست منابع آن مقاله را به کاربر پیشنهاد میدهد.
ارزیابی با قضاوت انسان
اصولا سامانههای توصیهگر سعی در این دارند که دقت را بهترین نحو بالا ببرند ولی عوامل دیگری هم تاثیر بسزایی در موفقیت آنها دارند.
- تنوع: سعی کنیم تا جای ممکن موارد متنوعی را به کاربر پیشنهاد دهیم. موارد پیشنهادی باید در عین نزدیکی به علایق کاربر، شباهت زیادی به هم نداشته باشند.
- توضیحپذیری: تجربه نشان داده اگر کاربر دلیل پیشنهاد موارد را نداند به اطمینان خود به سامانه توصیهگر را از دست داده و به آن توجه نخواهد کرد. بهتر است در طراحی سعی شود علاوه بر پیشنهاد موارد، عباراتی مانند «افرادی که به این مورد علاقه دارند به این موارد پیشنهادی نیز علاقه دارند.» و ... نیز به کاربر نمایش داده شود.
ارزیابی تنوع و توضیحپذیری دشوار است. همچنین در مواردی نمیتوان معیار مشخص دقیقی برای مدل طراحی کرد. در چنین مواردی میتوانیم در شرایط واقعی و با آزمون آ/ب، سامانه توصیهگر را بسنجیم.
منابع
- ↑ Collaborative Filtering Recommender Systems http://www.nowpublishers.com/article/Details/HCI-009
- ↑ «A survey of active learning in collaborative filtering recommender systems». Computer Science Review. Elsevier. ۲۰۱۶. doi:10.1016/j.cosrev.2016.05.002.
- ↑ روبنز، نیل؛ الهی، مهدی؛ سوگیاما، ماساشی؛ کاپلان، داین (۲۰۱۶). «Recommender Systems Handbook, Edition: ۲». در ریچی، فرانچسکو. Active Learning in Recommender Systems. Springer. doi:10.1007/978-1-4899-7637-6_24.
- ↑ رسول کریمی، الکساندر نانوپولیس، لارس اشمیت تیمه (2015). "A supervised active learning framework for recommender systems based on decision trees". User Modeling and User-Adapted Interaction (به انگلیسی). Springer. doi:10.1007/s11257-014-9153-z.
- ↑ «Alleviating the New User Problem in Collaborative Filtering by Exploiting Personality Information». User Modeling and User-Adapted Interaction. Springer. doi:10.1007/s11257-016-9172-z.
- ↑ «Content-Based Video Recommendation System Based on Stylistic Visual Features». Journal on Data Semantics. Springer. ۲۰۱۶. doi:10.1007/s13740-016-0060-9.
جستارهای وابسته
پیوند به بیرون
کنفرانسهای مرتبط
- کنفرانس سامانههای توصیه گر (ACM RecSys)
- کنفرانس مدلسازی و شخصیسازی کاربر (UMAP)
- کنفرانس واسطهای کاربری هوشمند (ACM IUI)
مجلات مرتبط
- مجله مدلسازی و وفقپذیری با کاربر (UMUAI)
- مجله سیستمهای هوشمند (ACM TIIS)
- مجله سیستمها و فناوریهای هوشمند (ACM TIST)
گروههای تحقیقاتی مرتبط: