به نام یگانه هستی بخش

چکیده

در این پروژه هدف طراحی و پیاده سازی یک سیستم پیشنهادگر به منظور پیشنهاد مطالب بلاگ‌های وردپرس به کاربران مطابق سلیقه آنان خواهد بود. برای این منظور ابتدا در بخش اول به اختصار سیستم‌های پیشنهادگر را معرفی و انواع آن را ذکر می‌کنیم. سپس با تمرکز بر روی "سیستم پیشنهادگر ترکیبی" تلاش خواهیم کرد تا سیستمی مناسب مسئله مورد نظر طراحی کنیم.

۱. ۱.مقدمه

در دنیای امروز، شبکه جهانی وب به عنوان ابزاری فراگیر به منظور رفع نیازهای مختلف مورد استفاده قرار گرفته است و حدود نیمی از جمعیت کره زمین از آن استفاده می‌کنند.[1] جست و جوی اطلاعات مورد نیاز ، تبادل اطلاعات ، برقراری روابط اجتماعی ، خرید و فروش کالا و حتی گذراندن اوقات فراغت ، امروزه توسط بسیاری از افراد در بستر وب صورت می‌پذیرد.
استقبال کاربران از وب سبب شده فعالان این حوزه تمرکز اصلی خود را بر ارتفاء هر چه بیشتر سطح کیفی خدمات به منظور جذب مخاطب بیشتر، قرار دهند. و مسلما کسی برنده میدان رقابت خواهد بود که مخاطب خود را بهتر شناخته و مطابق سلیقه او ، خدمات خویش را ارائه دهد.
سیستم‌های پیشنهادگر (Recommender Systems) از میانه دهه 1990 به عنوان یک زمینه پژوهشی مستقل به منظور پاسخ به همین نیاز، یعنی شناخت مخاطب و ارائه آیتمی که بدان علاقه‌مند است، مطرح شده‌اند[2][3]. در اینجا آیتم هر محصول یا خدمتی است که به مخاطب ارائه می‌شود ( مانند کتاب، فیلم، اخبار ، صفحات وب ، نتایج جست و جو و … ).

۱.۱. ۱.۱.سیستم پیشنهادگر

مجموعه‌ای از ابزارهای نرم‌افزاری و روش‌هایی است که به وسیله آن می‌توان آیتمی که کاربر ممکن است به آن علاقه‌مند باشد را به او پیشنهاد داد. هدف اصلی RS افزایش تعداد پیشنهادهای مؤثر است.
دلایل استفاده از RS را می‌توان موارد زیر دانست[2]:

  • افزایش تعداد فروش کالا
    یکی از مهمترین دلایل استفاده از RS فروش کالاهایی است که در برابر کالاهای پرفروش قرار دارند. این امر را می‌توان به افزایش تعداد مشاهده یک پست در وب سایت‌های اجتماعی، خبری و … نگاشت داد.

  • فروش کالاهای متنوع
    هدف دیگر استفاده از RS کمک به کاربر به منظور پیدا کردن آیتمی است که در حالت عادی بدون یک پیشنهاد دقیق ، به سختی یافت می‌شود.

  • افزایش سطح رضایت کاربران
    اگر RS به خوبی طراحی شود ، می‌تواند تجربه کاربری سرویس ارائه شده را بهبود بخشد. کاربر پیشنهادها را مرتبط با سلیقه خود می‌یابد و از تعامل با سیستم لذت خواهد برد.

  • افزایش سطح وفاداری کاربران
    کاربران نسبت به سیستمی که با آن‌ها مطابق سلیقه‌شان رفتار می‌کند و خود را بر اساس اطلاعات به دست آمده از سابقه تعامل کاربر و سلیقه‌مندی او تطبیق می‌هد، وفادار خواهند بود و به راحتی سیستم دیگری را به عنوان جایگزین انتخاب نخواهند کرد.

  • درک بهتر خواسته‌های کاربران
    اطلاعات به دست آمده از تعامل کاربران با سیستم، اطلاعات بسیار ارزشمندی به شمار می‌آیند. بررسی و آنالیز این اطلاعات می‌تواند در تعیین سیاست‌های کلی و مدیریت منابع و انتخاب آیتم‌های ارائه شونده به منظور سود آوری و پاسخ به نیاز کاربران کمک شایانی نماید.
    در نتیجه RS باید بین نیازهای کاربر و ارائه دهنده خدمت نوعی تعادل ایجاد کرده تا سرویس ارائه شده برای هر دو طرف ارزشمند و سودآور باشد.

۱.۲. ۲.۱.داده ها و اطلاعات در سیستم‌های پیشنهادگر

از دیدگاه فنی RS ها سیستم های پردازش اطلاعاتی هستند که به صورت فعال به عنوان جزئی از سیستم اصلی به جمع آوری اطلاعات مختلف می‌پردازند-اطلاعاتی در مورد آیتم‌های پیشنهاد شده و کاربرانی که پیشنهادها را دریافت می‌کنند-.
در تقسیم بندی کلی از منظر وابستگی به این اطلاعات سیستم‌های پیشنهادگر به دو دسته تقسیم می‌شوند[2]:

  • دسته اول تنها از اطلاعات ساده و پایه (مانند امتیاز کاربران به آیتم‌ها) استفاده می‌کنند.

  • در مقابل دسته دوم از روش‌هایی استفاده می‌کنند که از اطلاعات مریوط به هستی شناسی کاربران و آیتم‌ها بهره می‌برند.
    در هر حال، به عنوان یک تقسیم بندی کلی اطلاعات جمع آوری شده به سه موجودیت کلی مرتبط‌اند[2]:

  • آیتم‌ها

  • کاربران

  • تراکنش‌ها، که توصیف کننده ارتباط بین کاربر و آیتم‌ها هستند.

۱.۳. ۳.۱.تقسیم بندی سیستم‌های پیشنهادگر

به منظور ارائه یک دید کلی از انواع RS تقسیم بندی زیر را به طور خلاصه مطرح می‌کنیم[3]:.

  1. محتوا محور1
    سیستم یاد می‌گیرد تا آیتم‌هایی را پیشنهاد دهد که مشابه آیتم‌هایی است که کاربر در گذشته برگزیده. مقایسه آیتم‌ها بر اساس ویژگی‌هایی صورت می‌گیرد که به آن‌ها نسبت داده شده.(مانند ژانر یک فیلم و یا برچسب‌های یک سند)

  2. کاربر محور2
    حالت کلی و ساده‌ترین نوع این سیستم به کاربران فعال سیستم آیتم‌هایی را پیشنهاد می‌دهد که سایر کاربران با سلیقه مشابه در گذشته برگزیده‌اند. تشابه سلیقه دو کاربر بر اساس سابقه امتیاز دهی کاربران به آیتم‌ها محاسبه می‌شود. این سیستم معروف‌ترین نوع RS است.

  3. ویژگی‌هاى جمعیتى محور3
    این سیستم آیتم‌ها را بر اساس ویژگی‌های جمعیتی (مانند محل زندگی، سن، جنسیت و …) پیشنهاد می‌کند.

  4. دانش محور4
    این نوع سیستم آیتم‌ها را بر اساس دامنه‌ی مشخصی از دانش، در این زمینه که ویژگی‌های یک آیتم تا چه اندازه مطابق نیازها و سلیقه کاربر خواهد بود، پیشنهاد می‌کند. سیستم‌های محدودیت محور5 نوع دیگری از سیستم‌های دانش محور محسوب می‌گردند.
    سیستم‌های دانش محور نسبت به سایر سیستم‌ها در بدو راه اندازی بهتر عمل می‌کنند و می‌توانند مجهز به زیر سیستم‌های یادگیری نباشند(از دامنه دانش مشخص شده اولیه استفاده کنند)، اما اکثرا از متدهایی به منظور استفاده از سابقه تعامل کاربر با سیستم استفاده می‌کنند تا عملکرد بهتری داشته باشند.

  5. جامعه محور6
    این سیستم‌ آیتم‌ها را بر اساس سلیقه دوستان کاربر مورد نظر و روابط اجتماعی او پیشنهاد می‌کند. با رشد شبکه‌های اجتماعی این سیستم‌ها اخیرا مورد توجه قرار گرفته‌اند.

  6. سیستم ترکیبی7
    این سیستم ترکیبی از سیستم‌های اشاره شده در موارد فوق است. یک سیستم ترکیبی متشکل از سیستم‌های A و B سعی دارد تا از مزایای A برای پوشش معایب B استفاده کند. به عنوان مثال سیستم collaborative filtering قادر به پیشنهاد آیتم‌های جدیدی که توسط هیچ یک از کاربران امتیاز دهی نشده‌اند ، نیست اما این مشکل در سیستم محتوا محور وجود ندارد چرا که پیشنهادها بر اساس ویژگی آیتم‌ها صورت می‌پذیرد. با در نظر گرفتن دو RS روش‌های متعددی برای ایجاد یک سیستم ترکیبی ارائه شده است. (برای توضیحات دقیق‌تر رجوع شود به [3])

در این پروژه سعی بر این خواهد بود تا یک سیستم پیشنهادگر ترکیبی مبتنی بر یادگیری، بر اساس سیستم‌های محتوا محور و کاربر محور ، پیاده‌سازی شود برای تست و توسعه سیستم از داده‌های مربوط به پست‌ها و کاربران وردپرس برگرفته از Kaggle.com استفاده خواهیم کرد.
این مجموعه شامل اطلاعاتی در مورد پست‌ها (متن، رده و برچسب‌ها) و کاربران (پست‌های لایک شده توسط آن‌ها) می‌باشد.

۱.۴. ۴.۱.چالش‌های پیش رو

تمامی سیستم‌های مبتنی بر یادگیری (Collaborative، Content-based، Demographic) در ارائه پیشنهاد برای آیتم‌ها و کاربران جدید دارای مشکل هستنند[3]. (cold-start problem)
این مشکل به بیان دیگر به صورت مسئله حفظ ثبات8 در برابر انعطاف‌پذیری9 بیان می‌شود.به عنوان مثال کاربری که از ورزش به هنر تغییر علاقه می‌دهد تا مدت ها پیشنهادهای ورزشی دریافت خواهد کرد. برخی سیستم‌های انطباقی10 با کاهش تاثیر امتیازات در اثر گذشت زمان به حل این مشکل می‌پردازند[4] [5] اما این سیستم‌ها نیز با ریسک از دست دادن اطلاعات در مورد علاقه‌مندی‌های ثابتی که کاربر به ندرت به آن‌ها مراجعه میکند نیز مواجه‌اند. برای مثال یک کاربر ممکن است نسبت به وقایع زلزله علاقه‌مند باشد اما تا زمانی که زلزله جدیدی رخ ندهد، کاربر به سراغ این نوع اطلاعات نرود.[3]

۲. ۲.سیستم پیشنهادگر ترکیبی

سیستم‌های پیشنهادگر ترکیبی به منظور حل مسئله cold-start که در بالا بدان اشاره شد، مطرح شده‌اند، در این بخش ابتدا ۷ روش ترکیب سیستم‌های پیشنهادگر را به اختصار ذکر خواهیم نمود[3] سپس الگوریتم‌های پایه‌ای را که در این سیستم‌ها استفاده می‌شوند ذکر خواهیم کرد و در آخر چگونگی مدل سازی کاربران را به منظور مقدمه مرحله پیاده‌سازی شرح خواهیم داد.

۲.۱. ۱.۲.استراتژی‌های ایجاد یک پیشنهادگر ترکیبی

  1. ترکیب وزنی11 : ترکیب عددی امتیاز خروجی سیستم‌ها به عنوان خروجی نهایی

  2. ترکیب گزینشی12 : انتخاب یکی از امتیازهای خروجی سیستم‌ها به عنوان خروجی نهایی

  3. ترکیب آمیخته13 : نمایش خروجی همه‌ی سیستم‌ها

  4. ترکیب ویژگی‌ها14 : ویژگی‌های استخراج شده از سیستم‌های مختلف به یک الگوریتم پیشنهادگر داده میشود

  5. تقویت ویژگی‌ها15 : ویژگی‌های استخراج شده توسط یک سیستم به عنوان بخشی از ورودی سیستم دیگر استفاده می‌شود

  6. ترکیب آبشاری16 : سیستم‌ها اولویت بندی شده و بر اساس این اولویت امتیاز نهایی محاسبه می‌گردد

  7. ترکیب مرحله‌ای17 : با استفاده از یک سیستم بخشی از مدل ایجاد شده و به عنوان ورودی توسط سیستم دیگر استفاده می‌شود.

۲.۲. ۲.۲.الگوریتم‌های پایه

  • Collaborative Pearson – CFP :
    الگوریتمی بر اساس الگوریتم Collaborative filtering که از ضریب هم‌بستگی پیرسون18 استفاده می‌کند.

UserSimilarity(a,b)=\cfrac{\sum_{j=1}^{n} (V_{aj} - \bar{V_a})(V_{bj} - \bar{V_b})} { \sqrt{\sum_{j=1}^{n}(V_{aj} - \bar{V_a})^2} . \sqrt{ \sum_{j=1}^{n}(V_{bj} - \bar{V_b})^2 } }
V_{aj} :\text{ User "a" rate to item j}
\bar{V_a} : \text{Average of User "a" item rates}
  • Collaborative Heuristic – CFH :
    الگوریتمی بر پایه الگوریتم Collaborative با این تفاوت که امتیازها را از دید معنایی بررسی می‌کند. ر.ک[6]

  • Content-Based – CN :
    این الگوریتم بر پایه الگوریتم naive Bayes احتمال لایک شدن یک پست را محاسبه می‌کند.

۲.۳. ۳.۲.User Model

یک user model حاوی اطلاعاتی در مورد سلایق شخصی کاربر است و رفتار کاربر را در سیستم توصیف می‌کند.
در اینجا عناصر تشکیل دهنده user model را به اختصار شرح می‌دهیم[7]:

۲.۳.۱. ۱.۳.۲.‌User profile representation

پروفایل کاربر19 باید تمامی اطلاعات لازم برای مدل سازی کاربر در سیستم پیشنهادگر را دارا باشد. این پروفایل را در سیستم می‌توان به فرم‌های مختلف از قبیل : بردارهای باینری20 ، بردارهای ویژگی21، درخت22، درخت تصمیم‌گیری23، شبکه‌های معنایی24 و … نمایش داد.

۲.۳.۲. ۲.۳.۲.‌User profiles initialization

پروفایل اولیه خصوصا در سیستم‌های محتوا محور خالی از اطلاعات است. پروفایل‌های کاربری اغلب توسط فرم‌های پرس و جو در زمان ثبت نام کاربر، و بر اساس فعالیت کاربر در سیستم(مشاهده پست، لایک کردن و به اشتراک گذاری پست و …) تکمیل می‌گردد.

۲.۳.۳. ۳.۳.۲.‌Distance and similarity between user profiles

برای تمامی مقادیر صفات25 پروفایل کاربری باید یک تابع جهت محاسبه فاصله توسط طراح سیستم به صورت زیر ارائه شود:

\delta ^{at} : V_a \times V_a \rightarrow [0,1] \text{ for all } a \in A

فاصله بین پروفایل‌های کاربری می‌تواند به شیوه‌های مختلفی محاسبه گردد:

  • به عنوان اولین و ساده‌ترین راه می‌توان برای تاپل‌های i و j مجموع فواصل مقادیر آن‌ها را فاصله دو تاپل در نظر گرفت:

    d(r_i ,r_j ) = \sum_{a \in A}d^{at} (r_i (a),r_j (a)) .

  • دومین راه محاسبه ریشه مجموع مربعات فواصل فوق است

  • و به عنوان راه سوم می‌توان با استفاده از یک ضریب بین ۰ و ۱ اهمیت هر صفت را در محاسبه فاصله تعیین نمود:

    d(r_i ,r_j ) = \sum_{a \in A}[c(a)*d^{at} (r_i (a),r_j (a))] .

    به هر حال می‌توان از فرمول‌های محاسبه شباهت نظیر ضریب همبستگی پیرسون که در بخش ۲.۲ بدان اشاره شد نیز استفاده کرد.

۲.۳.۴. ۴.۳.۲.User Profile Clustering

مسئله خوشه‌بندی26 در اینجا به صورت تقسیم مجموعه کاربران (U) به زیر مجموعه‌هایی از این مجموعه بر اساس معیارهای بهینه سازی مطرح می‌شود. می‌توان از سه الگوریتم خوشه‌بندی زیر برای این منظور استفاده نمود:

  • ‌Hierarchical

  • ‌Euclidean

  • ‌Similar metric space and similarity matrix
    که از این میان، الگوریتم‌‌های خانواده ‌Euclidean و Similar metric space از محبوبیت بیشتری برخوردارند[7]
    معیار بهینه‌سازی را می‌توان کمینه بودن فاصله کاربران در هر خوشه تعریف نمود، این فاصله به صورت زیر محاسبه خواهد شد:

    d(C_i) = \sum_{j=1}^r\sum_{k=1}^rd(u_j,u_k), \text{ where } r=Card(C_i)

    در فازهای بعدی به صورت مفصل‌‌ به تکمیل این بخش خواهیم پرداخت.

۳. ۳.کارهای مرتبط

در اینجا به چند پروژه مشابه که در آینده ممکن است از آن‌ها استفاده شود، اشاره می‌کنیم:

۳.۱. ۱.۳.‌Personalized recommendation of popular blog articles ‌

در این سیستم با تمرکز بر محیط کاربری موبایل از یک پیشنهادگر ترکیبی متشکل از سیستم محتوا محور ، الگوریتم item-based collaborative filtering و خوشه بندی مقالات بلاگ استفاده شده و وزن دهی بر اساس قدمت اطلاعات صورت می‌گیرد.[8]

۳.۲. ۲.۳. An Analysis of the Use of Tags in a Blog Recommender System

این سیستم برای سازمان‌دهی بلاگ‌ها، از تگها به منظور خوشه‌بندی محتوا محور27 استفاده می‌کند. سپس با معرفی یک روش امتیاز دهی به خوشه‌ها، به حذف خوشه‌های نامناسب می‌پردازد.[9]

۳.۳. ۳.۳.‌Fab: content-based, collaborative recommendation

یک سیستم پیشنهادگر ترکیبی (CB-CF) که برای کتابخانه‌های دیجیتال طراحی شده‌ است.[10]

۴. ۴.مراجع

[1] internetlivestats.com
[2]Ricci, F., Rokach, L., Shapir, B.: Introduction to Recommender Systems Handbook . (2011)
[3] Burke, R. : Hybrid web recommender systems. In: The Adaptive Web, pp. 377–408. Springer Berlin / Heidelberg (2007)
[4] Billsus, D. & Pazzani, M.: User Modelingfor Adaptive News Access. UMUAI 10(2-3),147-180. (2000)
[5] Schwab, I. & Kobsa, A.: Adaptivity through Unobstrusive Learning.Künstliche Intelli-genz 16(3): 5-9. (2002)
[6] Burke, R.: Knowledge-based Recommender Systems. In: A. Kent (ed.): Encyclopedia of Library and Information Syst ems, 69, Sup. 32. (2000)
[7] Sobecki, J.:Implementations of Web-basedRecommender Systems UsingHybrid Methods, Institute of Applied Informatics, pp 52 - 64. (2006)
[8] Liu, DR., Tsai, PY., Chiu, PH. :Personalized recommendation of popular blog articles for mobile applications - Information Sciences, - Elsevier (2011)
[9]Hayes, C., Avesani, P. : An analysis of the use of tags in a blog recommender system, IJCAI'07, (2007)
[10] Balabanović, M. ,Shoham, Y. :Fab: content-based, collaborative recommendation - Communications of the ACM, (1997)


  1. Content-based

  2. Collaborative filtering

  3. Demography based

  4. Knowledge-based

  5. Constraint-based

  6. Community-based

  7. Hybrid recommender systems

  8. stability

  9. plasticity

  10. adaptive systems

  11. Weighted

  12. Switching

  13. Mixed

  14. Feature Combination

  15. Feature Augmentation

  16. Cascade

  17. Meta-level

  18. Pearson's correlation coefficient

  19. User Profile

  20. binary vectors

  21. feature vectors

  22. tree

  23. decision tree

  24. Bayesian networks

  25. attributes

  26. clustering

  27. content-based clustering

سعید عادل مهربان

سلام،
وقت به خیر و خسته نباشید.
کارتون بسیار منسجم و قشنگ انجام شده و جای تبریک داره. امیدوارم در قسمت‌های پیاده‌سازی بتونید حق مطلب رو ادا کنید و این کار قشنگ رو به نتیجهٔ درخوری برسونید.
در ادامه فقط نکات ریزی که به ذهن می‌رسه برای رفع نواقص ریز خدمت شما عرض می‌کنم:

  • از شما انتظاری می‌رفت که کارهای مرتبط رو در این فاز مطالعه کرده باشید امّا احتمالاً به دلیل طولانی شدن مقدّمه به اون قسمت نرسیدید. تلاشتون رو بیشتر کنید و برای فاز بعد این قسمت رو هم تکمیل کنید. من با چشم‌پوشی از این مسئله کار شما رو ارزیابی خواهم کرد.

  • سیستم پیشنهادگر یا حتّی از اون بهتر، سامانهٔ پیشنهادگر رو جایگزین RS کنید. داشتن علایم اختصاری این چنینی در متن شما جای تعجّب داره. به علاوه موارد دیگری هم هستند که نیاز به ترجمه دارند ولی عیناً در متن اومدن.

  • به خوبی از پانویس استفاده کردید، امّا هنوز هم جای کار بیشتر هست و من این رو ناشی از قوّت کار می‌دونم. کلمات باقی‌مانده رو هم به پانویس انتقال بدید.

  • اینکه برای فرمول‌ها از لاتک استفاده کردید جای تشکّر داره. امّا ای کاش توضیح مربوط به متغیّرها رو فارسی نوشته بودید.

  • متأسّفانه عناوین بخش ۲.۳ همه انگلیسی هستند. واقعاً چرا؟

  • یکی دو بار متن خودتون رو بخونید و مطمئن باشید ایرادهای ریزی هستند که من اینجا نگفتم و اگه برطرفشون کنید نتیجه بهتر خواهد بود.