بخشی از مقاله
خلاصه
امروزه پالایش مشارکتی در سیستم های پیشنهاددهنده گستردهترین رویکرد موفق بوده است که در سال های اخیر توجه زیادی را به خود جلب کرده است. یک سیستم پیشنهاددهنده مبتنی بر پالایش مشارکتی به صورت صریح و یا ضمنی یک کاربر را با گروهی از کاربران همفکر آن بر اساس ترجیحات فردی آنها روی همه آیتمها مرتب میسازد و سپس آن دسته از آیتمهای مشاهده نشده توسط کاربر را که مورد پسند گروه باشد به او توصیه میکند. درحالیکه دو کاربر در یک زیرمجموعه آیتم با سلیقههای مشابه می توانند سلیقههای کاملا متفاوتی در زیرمجموعه دیگری داشته باشند. به عبارت دیگر تعداد زیادی زیرگروه در ماتریس امتیازات کاربر-کالا وجود دارد که هر کدام شامل یک زیرمجموعه از آیتمها و یک گروه از کاربران همفکر روی این آیتمها میشود. منطقی تر است که این پیش بینی توسط زیرگروه یا زیرگروه های همبسته کاربر انجام شود تا اینکه توسط کل ماتریس کاربر-کالا انجام شود. مهمترین مسئله بعد از بدست آوردن زیرگروه ها و پیش بینی امتیازات زیرگروه ها نحوه ادغام این امتیازات بدست آمده می باشد. در این پژوهش رویکرد جدیدی برای ادغام امتیازات به منظور رفع چالش های موجود و بهبود دقت پیش بینی امتیازات ارائه نمودیم. آزمایشات سیستماتیک در مجموعه داده Movielens اثربخشی روش پیشنهادی را نشان میدهد.
کلمات کلیدی: پالایش مشارکتی، سیستم پیشنهاددهنده، زیرگروههای کاربر-کالا، مدل خوشهبندی، خوشه بندی فازی
.1 مقدمه
با توجه به رشد روز افزون اطلاعات در شبکه جهانی وب، سیستمهای توصیهگر می توانند نقش موثری در دسترسی به اطلاعات مورد نیاز داشته باشند. نمونه معروف این سیستمها در آمازون، Last.fm و Movielens میباشد. یک سیستم توصیهگر با طراحی مناسب باعث میشود فروشندگان و مصرف کنندگان هر دو بهرهمند شوند. بطور کلی سیستمهای توصیهگر را می توان به دو دسته الگوریتمهای مبتنی بر محتوا و الگوریتمهای مبتنی بر پالایش مشارکتی بخش بندی کرد[29]، [10]، .[1] برخلاف بسیاری از الگوریتمهای مبتنی بر محتوا که از صفات کاربران و کالاها استفاده میکند، روشهای مبتنی بر پالایش مشارکتی بدون نیاز به داشتن دانش اضافی تنها با استفاده از اطلاعات تعاملی بین کاربر و کالا پیشبینیهای خود را انجام می دهد. این روشها روابط پنهان بین کاربران و کالاها را بدست میآورند و توانایی ارائه اقلام غیرمترقبه به منظور بهبود نتیجه توصیه را دارا میباشند.[16] اطلاعات تعاملی بین کاربر و کالا می تواند بصورت صریح یا ضمنی باشد.[4]
تعامل صریح، آگاهانه به کاربران ترجیحات - سلایق - فردی خود را برای اقلام بیان میکند. به عنوان مثال رتبهبندیهای گسسته برای فیلمها تعامل ضمنی هر منبع اطلاعات تولید شده توسط کاربر، از جمله خرید، کلیک، بوکمارک و... میباشد. معمولا هر دو تعامل صریح و ضمنی را میتوان در یک ماتریس داده بزرگ اما بسیار پراکنده - تنک - با سطرهایی که نشاندهنده کاربران و ستونهایی که نشاندهنده کالاها هستند نمایش داد که آن را ماتریس کاربر-کالا مینامیم. در واقع بسیاری از الگوریتمهای پالایش مشارکتی معمولی یک کاربر را با یک گروه از کاربران همفکر بر اساس تاریخچه انتخابها - ترجیحات - خود بصورت صریح یا ضمنی روی همه اقلام مرتبط میسازد و سپس اقلام مورد علاقه گروه را به کاربر پیشنهاد میکند. ما همیشه گروه کاربران همفکر را همسایگان آن کاربر مینامیم. فرض اساسی این است که کاربران با رفتارهای مشابه روی آیتمهای مشاهده شده - به عنوان مثال امتیازدهیها یا رتبه دهیها - سلیقههای یکسان روی آیتمهای مشاهده نشده خواهند داشت.
دو کاربر با داشتن سلیقههای مشابه در یک زیرمجموعه می توانند سلیقهی کاملا متفاوت در زیرمجموعه دیگری داشته باشند. علاوه بر این علایق یک کاربر معمولا در برخی از موضوعات و یا دسته بندیها متمرکز است، اما روی همه آیتمها پراکنده نیستند. بنابراین منطقیتر است که گفته شود یک گروه از کاربران در یک زیرمجموعه از کالاها - نه همه کالاها - همفکر هستند. شکل 1 سه زیرگروه را نشان میدهد. در هر زیرگروه کاربران و کالاها رابطه درونی نزدیک به یکدیگر دارند. توجه داشته باشید که برخی از کاربران و کالاها ممکن است بازیرگروه های مختلف به عنوان مثال زیرگروه هایی که همپوشانی دارند به اشتراک گذاشته شوند. ما انتظار داریم که زیرگروهها در بدست آوردن علایق کاربر روی یک زیرمجموعه از کالا بتوانند کمک کنند.
.2 کارهای گذشته
بسیاری از مدلهای خوشهبندی پالایش مشارکتی به منظور طراحی الگوریتمهای پالایش مشارکتی از خوشههای کاربر، خوشههای کالا یا خوشهبندیهای همزمان استفاده میکند. در این مدلها هر کاربر یا کالا میتواند تنها به یک خوشه تعلق داشته باشند. در واقع منطقیتر است که فرض کنیم کاربران یا کالاها می توانند عضو چندین خوشه یا زیرگروه باشند به عنوان مثال یک کاربر ممکن است چند موضوع فیلم را دوست بدارد و یک فیلم میتواند به دسته های مختلفی تعلق داشته باشد. روش مبتنی بر پالایش مشارکتی بطور کلی به دو دسته تقسیم میشود: الگوریتمهای مبتنی بر حافظه و الگوریتمهای مبتنی بر مدل. الگوریتمهای مبتنی بر حافظه ترتیب اصلی وظیفه پالایش مشارکتی را حفظ میکنند. آنها با کمک روشهای آماری روابط همسایگی برای یک کاربر فعال را کشف نموده و سپس برای پیشبینی ارزشها یا مقادیر از دست رفته است معمولا از یک مجموع وزندار در رتبهبندی استفاده میکنند[27]، [30]، [19]، .[7] این فرآیند کمی شبیه طبقهبندی نزدیکترین همسایگی است، در حالیکه نتیجه امتیاز واقعی است و برچسب یک دسته نیست.
الگوریتمهای مبتنی بر مدل، در مقابل، استفاده از مجموعه دادههای آموزشی برای یادگیری یک مدل در ابتدا و سپس استفاده از آن برای پیشبینی به جای تغییر مستقیم در پایگاهداده اصلی است. فرآیند مدلسازی همیشه با یادگیری ماشین یا روشهای دادهکاوی مانند مدل بیزی، مدل مبتنی بر رگرسیون و مدل خوشهبندی است. اگرچه مدلهای پالایش مشارکتی معمولی در بسیاری از زمینهها موفق بوده، ولی با چالشهایی از قبیل پراکندگی دادهها، مقیاسپذیری، شروع سرد روبرو شده است. برای کاهش مسئله پراکندگی بسیاری از مدلهای تجزیه ماتریس مانند تجزیه مقدار تکین، تجزیه نامنفی ماتریس، تجزیه احتمالی ماتریس و... اتخاذ شده است.
این مدلها معمولا بُعد ماتریس کاربر-کالا را کاهش میدهند و اثرات اطلاعات نویزی را کم میکنند که همچنین برای مقیاسپذیری هم مفید است. بسیاری شواهد نشان میدهد که برخی مدلهای تجزیه ماتریس در دقت پیشبینی نسبت به روشهای پالایش مشارکتی معمولی بهتر عمل میکنند. مسئله شروع سرد برای یک سیستم توصیهگر واقعی عادی است به دلیل اینکه در زمانهای مختلف کاربران جدید و کالاهای جدید دارند. برای یک کاربر جدید با اطلاعات تولید شده تعداد کمی کاربر روشهای پالایش مشارکتی معمولی نمیتواند علایق شخصی آن کاربر را با دقت بدست آورد. یک راه حل بصری اضافه کردن ویژگیهای مبتنی بر محتوا به مدلهای مشارکتی است. یک خوشه مجموعهای از نمونه دادهها با ویژگیهای مشابه و روابط نزدیک است. برای پالایش مشارکتی، خوشهبندی اغلب یک فرآیند متوسط و خوشههای نتیجه برای تجزیه و تحلیل بیشتر استفاده میشوند.
اخیرا مقاله [38] بر اساس روش خوشه بندی دو بخشی فازی روشی نوین به منظور بهبود بخش پیشنهاددهی ارائه داده است. در آن سعی شده است تا اگر ∈ × که نشان دهنده ماتریس امتیازدهی کاربر-کالا باشد، کاربران و کالاها را به یک فضای مشترک با بعد پایین منتقل کند یعنی بدین صورت که ∈ - + - × نمایش دهد که n تعداد کاربران و m تعداد کالاها و k تعداد زیرگروهها است که مقداردهی این k دلخواه است. در این روش اگر ∈ × ماتریس امتیازدهی کاربر-کالا باشد از آن دو ماتریس و بدست میآورم که به ترتیب نشان دهنده شباهت کالاها با کالاها و شباهت کاربران با کاربران است. حال به دنبال این است که داده ها در فضای پنهان طوری بدست بیایند که اولا ارتباط کاربر-کالا، کاربر-کاربر و کالا-کالا به نسبت فضای اصلی باشد یعنی همزمان می خواهد سه تابع به فرم 1، 2 و 3 را مینیمم کند.
با مفروضاتی که در بالا به آن اشاره کردیم در ابتدا ارتباط بین کاربران و کالاها بدست میآوریم، در واقع منظور این است که اگر بخواهیم دو بردار در فضای جدید به هم نزدیک باشند باید امتیاز بالایی داشته باشند.که -i امین سطر Q و -j امین سطر R است. ∈ × ماتریس قطری درجه کاربران با = ∑ =1قطری درجه کاربران با = ∑ 1 می باشد. بنابراین ارتباط کاربر با کالا بدین صورت میشود:
در گام بعدی به سراغ بدست آوردن رابطه کاربر-کاربر میرویم که D ماتریس قطری با = ∑ =1است. در نتیجه ارتباط کاربر-کاربر بدین شکل محاسبه میشود:
به همین ترتیب رابطه کالا-کالا را هم می توان بدست آورد:
در این قسمت تابع هدف که از مجموع سه فرمول 1، 2 و 3 بدست میآید به شکل زیر میشود:
حال چون کاربران و کالاها در یک فضا هستند می توان آنها را به راحتی خوشه بندی نمود، مقاله[38] از روش kmeans برای خوشه بندی کاربران و کالاها استفاده کرده است. در قسمت بعدی در مورد نحوه ادغام امتیازات بدست آمده توضیح بیشتری خواهیم داد.
.2 رویکرد جدید ادغام امتیازات بر اساس خوشه بندی فازی
در پالایش مشارکتی ورودی ما تنها ماتریس کاربر-کالا می باشد و خروجی امتیازات یا رتبه بندی های پیش بینی شده برای داده های از دست رفته در ماتریس است. مسئله آخر و مهمترین مسئله نحوه ترکیب کردن امتیازات پیش بینی شده از همه زیرگروه ها که با استفاده از الگوریتم های پالایش مشارکتی بدست آمده است، می باشد. با در نظر گرفتن این موضوع که یک کاربر یا یک کالا می تواند بصورت همزمان عضو چندین زیرگروه باشد و یا اینکه عضو هیچ زیرگروهی نباشد ما یک چارچوب واحد برای کنترل این حالت ها در نظر گرفته ایم.
حال که خوشه ها انتخاب شدند به دنبال این هستیم تا در زیرگروه های بدست آمده پیشنهاددهی انجام میشود و سپس میخوام امتیازات بدست آمده را با هم ادغام کنیم مقاله [38] از روش - 7 - استفاده کرده است که مشکل این روش این است که در هنگام ادغام امتیازات، امتیاز کاربر یا کالا با بیشترین میزان تعلق را در نظر میگیرد بدین صورت که امتیاز آن کاربر یا کالا را در آن خوشه که نسبت به بقیه بیشتر تعلق دارد محاسبه می کند و بقیه امتیازاتش را نادیده میگیرد در این حالت اگر میزان تعلق کاربر یا کالایی نسبت به یک خوشه صفر باشد مشکلی پیش نخواهد آمد اما اگر وزن آن کم باشد آن را در نظر نمیگیرد و به دنبال بیشترین وزن برای تعیین امتیاز مورد نظر می باشد. ما در ادامه راهکاری برای حل این مسئله ارائه خواهیم نمود.در این پژوهش سعی بر این شده تا مسئله ادغام را بهبود ببخشیم، برای مدل کردن رابطه کاربر-کالا از امتیازدهی استفاده میکنیم و برای روابط کالا-کالا و کاربر-کاربر از شباهت استفاده مینماییم که در اینجا ماتریس W است که خودمان از ماتریس T بدست می آوریم که ماتریس T همان امتیاز دهی کاربران به کالاهاست.
اگر ومتعلق به یک یا چند زیرگروه باشند ∑ Pr - , , - .در غیر اینصورت 0که در آن Pr - ui, yj, k - امتیاز پیشبینی کاربر i به کالای j در زیرگروه k با روش پالایش مشارکتی می باشد و نیز امتیاز پیشبینی شده نهایی می باشد. اما این روش مسائلی از قبیل اثر دادن امتیازات کاربران و کالاهای با وزن نسبی کم را در نظر نمی گیرد. حال روش پیشنهادی ما برای ترکیب امتیازات پیشبینی بدست آمده از زیرگروههای مختلف استفاده از مجموع ضرب امتیازات هر کاربر یا کالا در میزان تعلق آن به خوشه موردنظر می باشد. بدین صورتکه اگر ومتعلق به یک یا چند زیرگروه باشند.