۱. مقدمه

سامانه پیشنهاد فیلم شاخه ای از سامانه های توصیه گر محسوب می شود.سامانه ی توصیه گر سامانه ای است که با بررسی رفتار کاربر خود، مناسب ترین داده را به وی پیشنهاد می نماید. علت اصلی به وجود آمد این سامانه ها افزایش چشمگیر حجم اطلاعات است و کاربر بدون داشتن راهنما به سختی می تواند به اطلاعات یا داده های مطلوب خود دست یابد. اگر به میزان فیلم های تولید شده در سال های اخیر توجه کنیم متوجه می شویم که با پیشرفت صنعت سینما و استقبال مخاطب میزان فیلم های تولیدی به حدی رسیده است که بدون معیاری برای انتخاب فیلم های بهترفرد نمی تواند فیلم های مورد پسند خود را تشخیص داده و انتخاب نماید. در نمودار زیر تعداد فیلم های با کیفیت و مورد پسند مردم در هر سال، از سال 2000 تا کنون که از سایت imdb به دست آمده آورده شده است:

تعداد فیلم های ثبت شده هر سال

و در مجموع تا کنون 3,523,374 فیلم در این سایت به ثبت رسیده است که این رقم به لزوم وجود سامانه توصیه گر برای پیشنهاد فیلم تاکید میکند.
توصیه‌هایی که از سوی سیستم‌های توصیه‌گر ارائه می‌شوند به طور کلی می‌توانند دو نتیجه در برداشته باشند :
1) کاربر را در اخذ تصمیمی یاری می‌کنند که مثلاً از میان چندین گزینه پیش رو کدام بهتر است و آن را انتخاب کند و ...
2) موجب افزایش آگاهی کاربر، در زمینه مورد علاقه وی می‌شود (مثلاً در حین ارائه توصیه به کاربر موجب می‌شود تا وی با اقلام و اشیاء جدیدی را که قبلاً آنها را نمی‌شناخته، آشنا شود)
در صورتی که بخواهیم این سامانه را مدل سازی ریاضی کنیم آن را می‌توان با این نگاشت همسان دانست و مدل کرد: u : C*S -> R
فرض کنید C مجموعه تمامی کاربران و S مجموعه اقلام در دسترس باشند. تابعی را که میزان مفید و متناسب بودن کالای S برای کاربر C را محاسبه می‌کند با u نشان می‌دهیم، که در آن Rمجموعه‌ای است کاملاً مرتب(براساس میزان اهمیت) . هرکدام از عناصر S را می‌توان با مجموعه‌ای از خصوصیات، مشخص کرد. در مورد سامانه پیشنهاد فیلم محصولی مثل فیلم را می‌توان با مشخصه‌هایی چون عنوان فیلم، کارگردان، طول زمانی فیلم، تاریخ تولید و ... ثبت کرد. همچنین عناصر
مجموعه C را نیز می‌توان بر اساس ویژگی‌های مثل سن، جنسیت و ... ثبت کرد. (باید توجه داشت که u روی تمام فضای مجموعه آغازین S×C تعریف شده نیست؛ از این رو باید برون‌یابی شود.)

۲. انواع سامانه های توصیه گر

سامانه های توصیه گر معمولا بر اساس چگونگی تولید توصیه ها، به دسته های زیر طبقه بندی می
شوند:
پالایش مبتنی بر محتوا: به کاربر اقلامی توصیه خواهد شد، که او قبلا آنها را ترجیح داده بود.
پالایش مبتنی بر همکاری: به کاربر اقلامی توصیه خواهد شد که دیگران در گذشته با تمایلات و ترجیحات مشابه او این اقلام را پسندیدند.
پالایش مبتنی بر دانش: متدهای مبتنی بر دانش یا رویکرد پالایش مبتنی بر دانش با استدلال در مورد آن اقلامی که نیازمندی های کاربر را رفع میکنند، توصیه هایی ایجاد میکند.
پالایش مبتنی بر محتوا
در برخی از سیستم های توصیه گر، ممکن است از پالایش مبتنی بر محتوا استفاده شود، که پیشنهادها را بر اساس انتخاب های گذشته ی کاربر، ارائه می­دهد (برای مثال اگر کاربر چند فیلم تخیلی را در گذشته پسندیده باشد، سیستم توصیه ممکن است فیلم های تخیلی اخیری را که او تابحال ندیده است، پیشنهاد دهد). همچنین، پالایش محتوا محور، پیشنهادها را با استفاده از محتوای اشیاء در نظر گرفته شده برای پیشنهاد، ارائه می دهد؛ بنابراین، محتوای خاصی ممکن است
تحلیل شود برای مثال برای توصیه فیلم ها به کاربر a ، سیستم توصیه گر محتوا محور سعی میکند تا اشتراکات میان فیلم هایی که کاربر a در گذشته برای آنها رتبه ی بالایی را درنظر گرفته، بفهمد (بازیگران خاص، کارگردانان، ژانر، موضوع و غیره). سپس، تنها فیلم هایی را که دارای میزان بالای شباهت به هر یک از ترجیحات کاربر هستند را توصیه میکند.
بصورت عمومی، مراحل پالایش مبتنی بر محتوا به شرح زیر است:

  1. ایجاد پروفایل ‏های اقلام: برای هر قلم باید پروفایلی ایجاد کنیم که ویژگی‏ های قلم را مشخص می‏کند. برای تعیین ویژگی های یک سند، از فراوانی کلمه، فراوانی سند معکوس، استفاده میکنیم. فراوانی کلمه، فراوانی سند معکوس هر سند را بصورت یک بردار نشان میدهیم و سپس برای مشابهت، از مشابهت کسینوسی بین دو بردار استفاده میکنیم.

  2. ایجاد پروفایل ‏های کاربر: با داشتن ماتریس نشان دهنده ارتباط هر کاربر با اقلام، می‏توان ترجیحات کاربران را استخراج کرد. مثلا اگر در 20% فیلم های مورد علاقه ی کاربری، بازیگر b بازی میکند، سپس پروفایل کاربر دارای 0.2 برای این بازیگر است.

  3. توصیه اقلام به کاربران: محاسبه ‏ی فاصله ‏ی کسینوسی بین بردارهای کاربر و اقلام. با استفاده از تکنیک LSH می‏توان پروفایل اقلام را در سطلی (bucket) قرار داد و با استفاده از این تکنیک می‏توان تعیین کرد کدام سطل‏ ها دارای اقلام با فاصله کم از کاربر هستند.
    پالایش مبتنی بر همکاری
    برخلاف متدهای توصیه ی محتوا محور، در سیستم های توصیه گر همکاری محوربهره وری اقلام برای یک کاربر خاص، بر اساس اقلامی که قبلا بوسیله ی کاربران مشابه، رتبه دهی شده، پیش بینی میشود. برای مثال برای توصیه ی فیلم ها به کاربر u ، سیستم توصیه گر همکاری محور سعی میکند تا "نظایر" کاربر u را پیدا کند، برای نمونه، کاربران دیگری که دارای سلایق مشابه در فیلم ها هستند (به همین فیلم ها بصورت مشابه رتبه می دهند). سپس، تنها فیلم هایی که بیشتر مورد پسند نظایر قرار گرفته اند، توصیه میشود.
    رویکردهای گوناگونی برای محاسبه ی مشابهت بین دو کاربر در سیستم های توصیه گر همکاری محور استفاده شده است. در بسیاری از این رویکردها، مشابهت بین دو کاربر بر اساس رتبه هایی است که هر دو کاربر به اقلام داده­اند. نتیجه ی اندازه گیری مشابهت، بین +1 , -1 است؛ +1 مشابهت کامل را نشان میدهد و مقادیر مثبت بیانگر وجود شباهت بین دو کاربر است و نتیجه ی منفی، بیانگر عدم مشابهت در امتیازات دو کاربر به اقلام، میباشد. دو رویکرد معروف، ضریب همبستگی پیرسون و رویکرد کسینوسی میباشد s(x,y) را قرار میدهیم مجموعه ی تمام اقلامی که توسط دو کاربر x و y به آنها رتبه ای داده شده است.
    متدهای مبتنی بر دانش
    متدهای مبتنی بر دانش یا رویکرد پالایش مبتنی بر دانش با استدلال در مورد آن اقلامی که نیازمندی های کاربر را رفع میکنند، توصیه هایی ایجاد میکند دانش از طریق ثبت ترجیحات/انتخاب های کاربر یا از طریق درخواست از کاربر جهت ارائه ی نیازمندی ها، ایجاد می­شود. تابع مشابهت، نشاندهنده حدی است که نیازهای کاربر با گزینه های اقلام موجود، مرتبط می باشند. مقدار تابع مشابهت معمولا برای نشان دادن مفید بودن هر توصیه بکار می رود. معمولا زمانی که امکان اعمال پالایش همکاری و محتوا محور وجود ندارد به دلیل، رتبه دار نبودن اقلام، یا مشکل شروع سرد(که در ادامه مقاله با توضیح آن خواهیم پرداخت) از پالایش
    مبتنی بر دانش استفاده می­شود. در سیستم توصیه فیلم این مشکل وجود ندارد و معمولا از این روش استفاده نمیشود پس به شرح بیشتر این روش بیشتر از این
    نمیپردازیم
    #چالش های اصلی
    از اصلی ترین مشکلاتی که سیستم توصیه گر میتواند با آنها مواجه شود به موارد زیر می توان اشاره کرد:
    مشکل شروع سرد که از مهمترین مسائل پیش روی سیستم های توصیه گر می باشد، زمانی رخ میدهد که ایجاد توصیه های قابل اعتماد به علت عدم وجود رتبه های اولیه، ممکن نیست. این مشکل در وضعیت هایی نظیر قلم جدید و کاربر جدید به وجود می آید.
    مشکل قلم جدید به دلیل اینکه اقلام جدید وارد شده در سیستم توصیه ­گر معمولا فاقد رتبه­ های اولیه نیستند، بنابراین سیستم توصیه ­گر مایل به توصیه ­ی این اقلام نمی­باشد. قلمی که توصیه نشود، توسط جامعه بزرگی از کاربران بی توجه باقی می­ماند، و بدلیل اینکه آنها از این قلم آگاه نیستند، در نتیجه به این قلم رتبه­ ای اختصاص نمی­دهند. این مشکل تاثیر اندکی بر روی فرآیند توصیه­ دارد، زیرا می­توان اقلام را به نحو دیگری به کاربران معرفی کرد مثلا تبلیغات فیلم های تازه تولید شده از عواملی است که به جلوگیری از وقوع این مشکل کمک میکند
    مشکل کاربر جدید یکی از مشکلات بزرگی است که سیستم های توصیه­ گر با آن روبرو می باشند. به دلیل اینکه کاربران جدید در سیستم هنوز هیچ امتیاز یا رتبه ای را ارائه نداده اند، این کاربران نمیتوانند پیشنهاد شخصی سازی شده ای را بر اساس متدهای همکاری محور مبتنی بر حافظه دریافت کنند؛ زمانیکه کاربران اولین امتیازات خودشان را وارد میکنند، آنها از سیستم توصیه گر انتظار دارند تا توصیه های مرتبط با علایق خودشان را ارائه دهد، اما معمولا این تعداد امتیاز ارائه شده در سیستم توصیه گر هنوز هم برای ارائه ی توصیه های همکاری محور قابل اعتماد، کافی نمیباشند، و بنابراین کاربران جدید احساس میکنند که سیستم سرویس هایی را که انتظار دارند به آنها ارائه نمیدهد و ممکن است از استفاده از سیستم صرف نظر کنند.
    خلوت بودن داده ها : در هر سیستم توصیه گر تعدادی از رتبه هایی که بدست آمده اند در مقایسه با تعداد رتبه هایی که برای پیشبینی نیاز است، بسیار کم
    است. پیش بینی موثر رتبه دهیها از موارد با تعداد کم، حائز اهمیت می باشد برای مثال فیلم های بسیاری توسط تنها تعداد کمی از افراد رتبه دهی شده اند و حتی اگر این کاربران اندک، رتبه های بالایی را به این فیلم ها اختصاص داده باشند هنوز هم این فیلم ها به ندرت پیشنهاد خواهند شد. همچنین برای کاربرانی که سلایق آنها در مقایسه با کل جمعیت، غیر معمول باشد، کاربران دیگری وجود ندارند تا شبیه این کاربر باشند که باز هم به پیشنهادهای
    ضعیف منجر خواهد شد.
    قابلیت مقیاس پذیری : در حالیکه داده ها اکثرا پراکنده هستند، سایت های اصلی شامل چند میلیون کاربر و قلم است. بنابراین توجه به مسائل هزینه ی محاسباتی و جستجوی الگوریتم هایی که نیازمندی های کمی دارند و به آسانی قابل موازی سازی هستند، امری است حیاتی. در واقع راه حل ارائه شده در سیستم های اخیر، پیاده سازی سرویس دهنده و پایگاه های داده بصورت توزیع شده و در بستر ابر میباشد.
    # کارهای مرتبط
    ابتدا به بررسی اجمالی چند سایت برتر که سامانه پیشنهاد فیلم دارند می پردازیم:
    Rotten Tomatoes :
    به جای این که به این سایت بگویید چه فیلم هایی را دوست دارید می توانید به آن بگویید چه نوع فیلم هایی را دوست دارید یا چه بازیگر هایی را می خواهید در فیلم
    ببینید و ملاک هایی از این قبیل برای انتخاب فیلم.
    MovieLen :
    این سایت طراحی ضعیفی دارد اما الگوریتم پیشرفته ای برای پیشنهاد فیلم دارد که برا اساس فیلم هایی که قبلا کاربر دیده است کار میکند و بعد از این که کاربر به 15 فیلم امتیاز دهی کرد می تواند به کاربر فیلمی مطابق سلیقه اش پیشنهاد دهد.
    Fixster :
    اینسایت با ظاهری بهتر از movielen و با الگوریتمی مشابه به پیشنهاد فیلم می پردازد. این سایت علاوه بر امکانات سایت movielen امکاناتی از قبیل امکان مشاهده امتیاز دهی سایر کاربران را در اختیار آنها قرار میدهد.
    IMDB :
    این سایت به جای این که ار کاربر بخواهد به فیلم ها امتیاز بدهند به طور خودکار فیلم هایی با توجه search هایی که انجام داده اید پیشنهاد فیلم میدهد. قسمت recommendations به کاربر می گوید که اگر یک فیلم را دوست داشته است چه فیلم هایی شبیه آن وجود دارد و کاربر احتمالا آنها را هم خواهد پسندید. در واقع بجای بررسی شباهت بین کاربر ها این سایت به بررسی شباهت بین فیلم ها با توجه به اطلاعاتی که از آنها دارد میپردازد. و از این طریق بدون اینکه نیازی باشد کاربر وقت صرف امتیازدهی به فیلم ها کند می تواند فیلم مورد پسند خود را در این سایت پیدا کند
    Criticker :
    این سایت هم با پیدا کردن همسایه های کاربر و با توجه به امتیاز دهی این همسایه ها به فیلم ها برای هر فیلم امتیازی که کاربر احتمالا به آن فیلم خواهد داد را تخمین میزند. این سایت امکاناتی از قبیل شناسایی 1000 همسایه نزدیک خود و امکان مشاهده پروفایل این افراد را به کاربر میدهد.
    Clerkdogs :
    به صورت ساده تر و با پیروی از روش IMDB کار میکند به این صورت که نام یک فیلم را کاربر در آن وارد کرده و سایت فیلم های شبیه به آن فیلم ها را پیشنهاد می دهد. سایت های NanoCrowd و Tastekid هر با سیستمی مشابه همین سایت کار میکنند.

همانطور که اشاره شد، criticker.com یکی از سایت های معتبر پیشنهاد فیلم میباشد. به طور کلی می توان گفت این سایت همکاری محور بوده
و بر اساس پیشنهاد سایر کاربران به کاربر هدف فیلم پیشنهاد می دهد. الگوریتم های این سایت مبدا آزمایش های این پروژه خواهد بود به همین دلیل در این بخش به توضیح کامل این الگوریتم ها می پردازیم.
ابتدا دو مفهوم که در این سایت بسیار استفاده میشوند را شرح می دهیم:
PSI :
نشان دهنده ی امتیازی است که سایت به کاربر، برای امتیاز دهی به یک فیلم مشخص پیشنهاد می دهد(یک عدد بین صفر تا صد)
TCI :
نشان دهنده ی اختلاف سلیقه ی دو کاربر، با توجه به فیلم های مشترکی که تا کنون امتیاز دهی کرده اند، میباشد. در واقع هر چه این عدد کوچکتر باشد بیانگر آن است که دو کاربر همسایه های نزدیکتری به هم هستند (این عدد بین صفر و ده می باشد)

لازم است همین جا توضیح داده شود که توجه به این که ممکن است مثلا امتیاز 50 برای یک کاربر اککتیازی بالا و برای کاربر دیگری امتیاز پایین محسوب شود، برای حل این مشکل سایت تعداد فیلم هایی که کاربر به آنها امتیاز داده است را به 10 تقسیم کرده و ده بسته فیلم ایجاد می کند و به هر یک از این بسته ها یک عدد از یک تا ده متناظر میکند عدد حاصل از این تناظر با T1 تا T10 نشان داده می شود.
این سایت برای پیشنهاد دهی به کاربر ابتدا TCI او با همه ی کاربر های موجود در سایت را محاسبه می نماید، و لیست 1000 کاربر که کمترین TCI را داشته اند
را، به عنوان بهترین TCI ها نگه می دارد (و امکان مشاهده این لیست را به کاربر می دهد) فرض می کنیم این لیست BTCI نام داشته باشد به طوری که [BTCI[ i ][0 برابر با نام iامین همسایه نزدیک به کاربر هدف بوده (TCI کمتر) و [BTCI[ i ][1 مقدار این TCI باشد.
در توضیح نحوه ی محاسبه ی TCI می توان این چنین گفت که اگر فرض کنیم لیست فیلم های مشترکی که دوکاربر(کاربر هدف و کاربری که TCI قرار است برای آن محاسبه شود) تا کنون امتیاز دهی کرده اند CMOV نام داشته باشد به طوری که [CMOV[i][0 امتیاز کاربر هدف به فیلم iام و [CMOV[i][1 امتیاز کاربر دیگر به فیلم باشد، داریم:


اکنون همانطور که در مقدمه به آن اشاره شد، پس از پیدا کردن همسایه ها نوبت به محاسبه ی یک عدد برای پیشنهاد برای امتیاز دهی به فیلم (PSI) میرسد. برای این کار سایت criticker اگر فرض کنیم می خواهد امتیازی که کاربر a به فیلم x خواهد داد را حدس بزند، 10 TCI اول (کمتر) a را که به این فیلم امتیاز داده اند را در نظر میگیرد، میانگین T این کاربر ها برای فیلم x را محاسبه می کند ( هر چند به نظر می رسد این روش مشکلاتی دادر چون با میانگین گرفتن
در واقع به اختلاف اهمیت نظر همسایه اول و آخر این 10 کاربر توجه نشده است)
عددی که در اینجا محاسبه شده چون میانگین T هاست، عددی بین یک تا ده است و چون قرار است کاربر از صفر تا صد به فیلم امتیاز دهی کند عدد متناظر با T را با در نظر گرفتن همان ده بسته ی T1 تا T10 کاربر محاسبه میکند و به عنوان PSI ارائه می دهد.
علاوه بر این سیستم که بر حسب فیلمی که کاربر می خواهد PSI را محاسبه می کند، در صفحه اصلی سایت با تقسیم بندی بر اسا ژانر تعدادی فیلم به طور random از این ژانر ها را از database خود انتخاب کرده، PSI آنها را محاسبه کرده، و فیلمی که در این میان بیشترین PSI را داشته باشد را در این صفحه به عنوان نماینده ای از این ژانر، پیشنهاد می دهد. این انتخاب random فیلم ها و پیشنهاد از میان آنها سرعت فرایند پیشنهاد فیلم را بالا می برد اما در عوض دقت آن را به شدت کاهش می دهد. این فیلم پیشنهادی که با هر بار refresh کردن صفحه تغییر می کند، دارای PSI ماکزیمم محلی بوده و ممکن است اختلاف زیادی با ماکزیمم کل داشته باشد.
برای تکمیل توضیحات پیرامون روش کار این سایت می توان نکات زیر را مورد توجه قرار داد:

· برای محاسبه ی TCI ابتدا سایت بررسی می کند که حداقل این کاربر به 15% از فیلم هایی که کاربر هدف امتیاز دهی کرده است، امتیاز داده است یا خیر. اگر این گونه نبود، سایت این کاربر را برای محاسبه TCI در نظر نمی گیرد. با این کار دقت پیشنهاد دهی بهبود می یابد و جلوی قضاوت در باره شباهت سلیقه ی دو نفر تنها بر اساس تعداد محدودی امتیاز دهی مشترک گرفته می شود. عدد این درصد (15%) می تواند توسط کاربر در بخش تنظیمات کاربری به 10% الی 30% تغییر پیدا کند.
· هنگام محاسبه PSI ابتدا بررسی می کند که آیا حداقل 10 نفر از 100 TCI کمتر کاربر فیلم مورد نظر را امتیاز دهی کرده اند یا خیر. اگر این امتیاز دهی انجام نشده باشد PSI رامحاسبه نمی کند و به کاربر اعلام میکند اطلاعات کافی برای این محاسبه را ندارد. چون در غیر این صورت نظر کاربرانی مورد توجه قرار میگیرد که اختلاف سلیقه ی نسبتا زیادی با کاربر هدف داشته اند و این باعث کاهش دقت محاسبات می گردد.

در برابر سایت های نسبتا ساده ای مثل citicker سایت های پیشرفته ای مانند netflix وجود دارد که پیشنهاد فیلم تنها یکی از امکانات آن می باشد.
در این سایت الگوریتم های پیچیده ای به صورت همزمان مورد استفاده هستند. اگر تنها بر روی بخش پیشنهاد فیلم آن متمرکز شویم میتوان گفت در این بخش دو الگوریتم اصلی استفاده شده ( RBM Restricted Boltzman Machines) و فرم فاکتورگیری ماتریس استفاده شده است.
به دلیل پیچیدگی الگوریتم ها و عموما در درسترس نبودن آنها از توضیح بیشتر درباره این الگوریتم ها صرف نظر می شود. گستردگی اطلاعات در این سایت دلیل دیگری بر پیچیدگی الگوریتم های آن است. این سایت با وجود حدود 480 کاربر، 18 هزار فیلم و 100 میلیون امتیاز ثبت شده در چند ثانیه توصیه فیلم را انجام می دهد. این سایت در سال 2006 مسابقه ای برگزار کرد و برای کسی که بتواند الگوریتم های این سایت را تنها 10% بهبود بخشد 1 میلیون دلار جایزه در نظر گرفت، این مسابقه تا سال 2008 ادامه داشت. از نکاتی این سایت را از بقیه ی سایت ها متمایز می کند و ما در این مقاله تنها به ذکر این مورد اشاره میکنیم، استفاده از امکان دیگر این سایت یعنی پخش فیلم بای پیشنهاد دهی فیلم است.
در واقع این سایت علاوه بر روش های متداول سیستم های پیشنهاد فیلم از روش های دیگری استفاده میکند که پیچیدگی الگوریتم و دقت نتایج را بالا میبرد. یکی از این تفاوت های که یکی از توسعه دهندگان این سایت در مصاحبه ای درباره ی آن سخن گفت این است که "پیشنهاداتی که این سایت در روز های کاری اول هفته ارائه می دهد کاملا متفاوت با فیلم هایی است که عصر روز های تعطیل ارائه میدهد!"
همانطور که پیشتر اشاره شد این سایت با استفاده از اطلاعاتی که از طریق پخش آنلاین فیلم به دست می آورد نتایج خود را بهبود میدهد. از این اطلاعات می توان به موارد زیر اشاره کرد:
· چه روزی کاربر فیلم را دیده است(به عنوان مثال این سایت متوجه شده است که عموم مردم در طول هفته ترجیح میدهند برانامه های تلویزیونی و در آخر هفته فیلم های سینمایی ببینند)
· کاربر چه زمانی فیلم را با سرعت زیاد دیده است یا از دیدن آن به کلی صرف نظر کرده
· در چه ساعت و تاریخی فیلم ها بیشتر دیده می شوند
· موقعیت جغرافیای کاربر
· با چه دستگاهی فیلم دیده شده است (مثلا اینکه افراد معمولا برنامه های تلویزیون را با گوشی نگاه کرده یا مثلا برنامه های مربوط به کودکان عموما باipad مشاهده می شوند)
و ...

۳. آزمایش‌ها

۴. کارهای آینده

۵. مراجع

[1] M. Satyanarayanan, "Pervasive Computing: Vision and Challenges," Personal Communications, IEEE, 2001.
[2] M. Weiser, "The Computer for the 21st Century," Scientific American, pp. 94-104 , 1991.
[3] B. Schilit, N. Adams and R. Want, "Context-Aware Computing Applications," in Mobile Computing Systems and Applications, Workshop on, Santa Cruz, CA, 1994.
[4] Burke, R. The Wasabi Personal Shopper: A Case-Based Recommender System. In Proceedings of the 11th National Conference on Innovative Applications of Artificial Intelligence, pages 844-849. AAAI, 1999.
[5] Marko Balabanovic , Yoav Shoham .Content-based, collaborative recommendation (1997)
[6] P. Resnick and H. R. Varian, "Recommender systems," Communications of the ACM, vol. 40, no. 3, 1997 .
[7] G. Adomavicius and A. Tuzhilin, "Context-Aware Recommender Systems," in Recommender Systems Handbook, Springer, 2011, pp. 217-253.

تایید شده

سلام.
خسته نباشید.
از نظر علمی مطلب را خوب شروع کرده‌اید و توضیحات مناسبی در خصوص دلیل پرداختن به مسئله و دسته‌بندی روش‌ها ذکر کرده‌اید. هر چند بهتر بود ارتباط بین این دسته‌بندی‌ها و روش‌هایی که در مرحلهٔ بعد به آن‌ها اشاره می‌کنید واضح‌تر بیان شوند.
بزرگ‌ترین ایراد کار شما در این است که بیش از مقدار مورد نیاز به نحوهٔ کار سیستم‌های تجاری موجود پرداخته‌اید. دقت داشته باشید که عموماً نحوهٔ کار این سیستم‌ها بر شما پوشیده‌اند و در نتیجه نخواهید توانست هدف از انجام این پروژه که آشنایی با نحوهٔ استفاده از هوش مصنوعی در یک مسئلهٔ دنیای واقع است برآورده سازید. بنابراین بهتر است برای گام‌های بعد توجّه خود را به مقالات علمی معطوف نمایید. برخی نکات در خصوص متن شما به چشم می‌خورد که بهتر است آن‌ها را اصلاح کنید:

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

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

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

  • برای همهٔ کلمات فنی که ترجمه می‌شوند، متن اصلی آن‌ها باید در پاورقی حاضر باشد و در اولین مورد استفاده به آن پاورقی ارجاع داده شود.

  • برای حروف اختصاری نیز باید در اولین مورد استفاده کلمات کامل را به صورت پاورقی بیاورید.