隐式的用户反馈:这类是用户在使用网站是产生的数据,隐式地反映了用户对物品的喜好,例如用户购买了某物品,用户查看了某物品的信息,等等。
显式的用户反馈能准确地反映用户对物品的真实喜好,但需要用户付出额外的代价;而隐式的用户行为,通过一些分析和处理,也能反映用户的喜好,只是数据不是很精确,有些行为的分析存在较大的噪音。但只要选择正确的行为特征,隐式的用户反馈也能得到很好的效果,只是行为特征的选择可能在不同的应用中有很大的不同,例如在电子商务的网站上,购买行为其实就是一个能很好表现用户喜好的隐式反馈。
推荐引擎根据不同的推荐机制可能用到数据源中的一部分,然后根据这些数据,分析出一定的规则或者直接对用户对其他物品的喜好进行预测计算。这样推荐引擎可以在用户进入时给他推荐他可能感兴趣的物品。
MLlib目前支持基于协同过滤的模型,在这个模型里,用户和产品被一组可以用来预测缺失项目的潜在因子来描述。特别是我们实现交替最小二乘(ALS)算法来学习这些潜在的因子,在 MLlib 中的实现有如下参数:
numBlocks是用于并行化计算的分块个数(设置为-1时 为自动配置);
rank是模型中隐性因子的个数;
iterations是迭代的次数;
lambda是ALS 的正则化参数;
implicitPrefs决定了是用显性反馈ALS 的版本还是用隐性反馈数据集的版本;
alpha是一个针对于隐性反馈 ALS 版本的参数,这个参数决定了偏好行为强度的基准。
协同过滤算法 应用场景
1、电商平台的买了XX的还买了XX,组合搭配套餐、随便看一看功能。
2、今日头条的个性化推荐。
3、豆瓣相同兴趣的小组。
4、电影推荐系统。
5、百度地图基于地理位置的附近的美食
……
参考资料
1、Spark官网MLlib说明
2、Spark企业级实战
3、天池DataCastleCCF