概述
中秋假期期间,又一次拜读了《推荐系统实战》一书,把一些收获分享给大家。
提到推荐系统,就不得不提“协同过滤” :
协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。(来自百度百科)。
上述解释再通俗一点来讲,就是大家齐心协力过滤出来最合适的物品(社交就是人)推荐给最有意向的人。
推荐系统中最常用的算法是“基于邻域的协同过滤算法”,基于邻域的算法分为两大类,一类是基于用户的协同过滤算法,另一类是 基于物品的协同过滤算法。
-
基于用户的协同过滤算法(userCF)
基于用户的协同过滤算法主要包括两个步骤。
(1) 找到和目标用户兴趣相似的用户集合。
(2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
步骤1中相似用户的计算涉及到相似度的计算,其中相似度最基本的算法是余玄相似度(很多情况下是最基础最好用的),需要对用户的各个指标向量化(特征向量化是最麻烦的,首先需要选特征,这就和业务密切相关,其次需要分清特征的主次),然后计算相似度。
计算相似度的算法还有其他的算法,比如基于位置的曼哈顿距离,还有杰卡得(Jaccard)距离等等,计算距离公式的选取,往往会根据业务来确定,公式选取会直接影响推荐结果
步骤二中,需要计算相似用户和被推荐用户的差集 -
基于物品的协同过滤算法(itemCF)
基于物品的协同过滤算法主要分为两步。
(1) 计算物品之间的相似度。
(2) 根据物品的相似度和用户的历史行为给用户生成推荐列表。
步骤一中的相似度的计算使用如下公式
这个公式惩罚了物品j的权重,如果物品j很热门,很多人都喜欢,
那么Wij就会很大,接近1,因此这个公式减轻了热门物品会和很多物品相似的可能性
- 两种算法的比较
参考文献:
《推荐系统实战》
最后
以上就是老实水蜜桃为你收集整理的机器学习第二篇----协同过滤的全部内容,希望文章能够帮你解决机器学习第二篇----协同过滤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复