# week11 **Repository Path**: yaotengdong/week11 ## Basic Information - **Project Name**: week11 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-06-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # week11 ## 一. 请简述基于内容的推荐和基于协同过滤的推荐的基本原理,并指出二者的适用场景。(20分) ### 1.基于内容的推荐: 对每个物品有特征表示,发现物品或内容的相关性,先计算用户的profile,用户的profile是基于用户之前喜欢过的物品之上,在计算新物品与用户画像的匹配程度,从而进行推荐 适用场景::比如根据用户自己的历史浏览记录,推荐用户感兴趣的物品,所以需要对物品的特征值进行提取,提取关联度大的新物品。 基于内容的推荐只考虑了对象的本身性质,将对象按标签形成集合,如果你消费集合中的一个则向你推荐集合中的其他对象。 如该用户过去购买了A类书籍,新产品D归于A类,则会自动推荐给该用户。 ![![输入图片说明](https://images.gitee.com/uploads/images/2019/0721/104809_27745fc4_1803884.png "屏幕截图.png")](https://images.gitee.com/uploads/images/2019/0721/104809_d123d2e2_1803884.png "屏幕截图.png") 基于协同过滤推荐分为以下三类: (1)基于用户的协同过滤推荐(User-based Collaborative Filtering Recommendation) 基于用户的协同过滤推荐算法先使用统计技术寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的喜好产生向目标用户的推荐。基本原理就是利用与用户访问行为的相似的其他用户来互相推荐用户可能感兴趣的资源,如图所示: ![输入图片说明](https://images.gitee.com/uploads/images/2019/0721/105400_14c934dd_1803884.png "屏幕截图.png") 上图是基于用户协同过滤推荐算法的图解,假设用户A喜欢物品A、C,用户B喜欢物品B,用户C喜欢物品A、C、D ,从这些用户的历史喜好信息中,我们可以发现用户A和用户C的口味和偏好是比较类似的,同事用户C还喜欢物品D,那么我们可以推断用户A可能也喜欢物品D,因此可以将物品D推荐给用户A。 (2)基于物品的协同过滤推荐(Item-based Collaborative Filtering Recommendation) 根据所有用户对物品或者信息的评价,发现物品和物品之间的相似度,然后根据用户的历史偏好信息将类似的物品推荐给用户,如图所示: ![输入图片说明](https://images.gitee.com/uploads/images/2019/0721/105723_fcc88ea5_1803884.png "屏幕截图.png") 上图是基于项目的协同过滤推荐基本原理的图解,用户A喜欢物品A、C,用户B喜欢物品A、B、C,用户C喜欢物品A,从这些用户的历史喜好中可以认为物品A与物品C比较类似,喜欢物品A的都喜欢物品C,基于这个判断用户C可能也喜欢物品C,所以推荐系统将物品C推荐给用户C。 (3)基于模型的系统过滤推荐(Model-based Collaborative Filtering Recommendation) 基于模型的协同过滤推荐就是基于作为样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测的推荐。 基于协同过滤的推荐算法,充分利用集体智慧,即在大量的人群行为和数据中得到答案,以帮助我们对整个人群得到统计意义上的结论,推荐的个性化程度高。 基于协同的内容推荐,可以根据分析相似用户群的喜好,只能推荐产品,如购买衣服,根据类似用户推荐记录,只能推荐您可能的喜好。 ## 二. 请分别给出一个基于用户的协同过滤和基于物品的协同过滤的典型应用场景。(20分) ### 1.基于用户的协同过滤: 基于用户的协同过滤 比如A购买了电影票A,B,C,通过调用的记录发现用户D同用户A同类用户,已经购买了A、B电影票,则智能给用户D推荐电影票C。 如新闻推荐系统,新闻物品的更新速度远大于用户加入速度,采用用户的协同过滤 ### 2.基于物品的协同过滤: 基于物品的协同过滤 即某产品推荐给哪个用户的问题,通过用户购买记录的相似性,智能推荐物品给某一类用户。 比如啤酒与尿布的关联性,当用户A购买了啤酒和尿布,当用户B购买了啤酒,即可以向用户B推荐尿布。 如电商平台,物品相对固定,如亚马逊 ## 三. 将推荐电影数目改成20个,运行课程给的代码,比较三种协同过滤算法的性能,并和推荐数目为10的推荐结果比较。(60分) 1. 基于用户的协同过滤 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0721/114637_703b4db9_1803884.png "屏幕截图.png") 2. 基于物品的协同过滤 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0721/114819_1e6fe41f_1803884.png "屏幕截图.png") 3. 基于矩阵分解的协同过滤 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0721/114837_56d1d87a_1803884.png "屏幕截图.png") 综上所叙,三种协同过滤推荐方法,无论是推荐10个电影还是20个电影,基于矩阵分解的协同过滤推荐算法更有效, 以Recall或者Precision为目标,预测的是用户最感兴趣的商品有哪些:协同过滤更好 用RMSE做目标,预测的是用户对每个商品感兴趣的程度:协同过滤更好,均方误差小 而,对比推荐10个与20个影片,推荐20个的精确度更高,但召回率增大,对于覆盖率来说,基于商品的推荐和基于矩阵分解的推荐覆盖率更高。基于物品的推荐覆盖率较低