(二)个性化推荐 不同的人对于“好”的理解不一样,换句话说也就是偏好不同,所以推荐新加入的好内容我认为是个性化推荐问题。 个性化推荐的两个主要思想八个字概括之:物以类聚、人以群分。主要的方法及变种应该有很多,像协同过滤、基于内容的推荐、基于标签的推荐等等。国内项亮著有《推荐系统实践》,对于解决推荐问题有比较详细的介绍。 一图胜千言
1.基于内容的推荐(主流) 基于内容的推荐算法,原理是用户喜欢和自己关注过的Item在内容上类似的Item,比如你看了哈利波特I,基于内容的推荐算法发现哈利波特II-VI,与你以前观看的在内容上面(共有很多关键词)有很大关联性,就把后者推荐给你,这种方法可以避免Item的冷启动问题。 冷启动:如果一个Item从没有被关注过,其他推荐算法则很少会去推荐,但是基于内容的推荐算法可以分析Item之间的关系,实现推荐。 弊端在于推荐的Item可能会重复,典型的就是新闻推荐,如果你看了一则关于MH370的新闻,很可能推荐的新闻和你浏览过的,内容一致; 另外一个弊端则是对于一些多媒体的推荐(比如音乐、电影、图片等)由于很难提内容特征,则很难进行推荐,一种解决方式则是人工给这些Item打标签。
2.协同过滤的推荐(主流) 协同过滤算法,原理是用户喜欢那些具有相似兴趣的用户喜欢过的商品,比如你的朋友喜欢电影哈利波特I,那么就会推荐给你,这是最简单的基于用户的协同过滤算法(user-based collaboratIve filtering)。 还有一种是基于Item的协同过滤算法(item-based collaborative filtering),这两种方法都是将用户的所有数据读入到内存中进行运算的,因此成为Memory-based Collaborative Filtering。 另一种则是Model-based collaborative filtering(基于模型的协同),包括Aspect Model,pLSA,LDA,聚类,SVD,Matrix Factorization等,这种方法训练过程比较长,但是训练完成后,推荐过程比较快。 常见的个性化推荐原理
- 基于用户基本信息推荐 Demographic-based Recommendation
- 基于物品/内容基本信息推荐Content-based Recommendation
- 协同推荐 Collaborative Filtering
这是一个用户关注内容的列表,当然是非常简化之后的。 显然在这个列表中,小张和小明关注的内容更为相似,那么就可以给小张推荐比特币。 两个步骤:找到和用户兴趣相似的用户集合,找到集合中用户喜欢且目标用户没有听说过的额物品推荐给用户。首先要计算用户相似度。对于冷门物品采取行为更能说明他们的兴趣相似度。如几乎说有人都买过新华字典,但是购买数据导论的人显然兴趣更加相似。 - 基于物品的协同推荐(目前业界使用最多的) 以物为本建立各商品之间的相似度关系矩阵,“用户看了x也会看y”。
小张和小明都不约而同地看了产品经理和Google,这可以说明产品经理和Google有相似,那么之后有看了Google相关内容的用户就可以给推荐产品经理的相关内容。 基于用户和被推荐物推荐不需要特别多的数据,比较适合应用在冷启动阶段。 而协同推荐是基于大数据的,所以我前面举的例子都是简化之后的,在实际的操作过程中用户的行为会比前面的例子复杂的多,但是道理都是相通的。 活跃用户对于物品的相似度的贡献要小于不活跃用户,加入一定的惩罚因素
3.基于规则的推荐 发现用户与物品之间的关联关系。协同规律推荐。 对于用户建模:基础数据、第三方数据、产品中操作(点赞、评论)、建立用户兴趣图谱(知识图谱)、标签体系树结构配上权重。 对于物品的建模:如歌曲的风格,年份,演唱者。 4.基于知识的推荐算法(主流) 最后一种方法是基于知识的推荐算法,也有人将这种方法归为基于内容的推荐,这种方法比较典型的是构建领域本体,或者是建立一定的规则,进行推荐。 利用某一领域的一整套规则和路线进行推荐。参照可汗学院知识树。如随着阅历增长,程序员看书越来越有专业性,有一定的路线可寻。
5.混合推荐 混合推荐算法,则会融合以上方法,以加权或者串联、并联等方式尽心融合。现在的推荐系统往往不是单一的模型,而是多种方式混合:加权混合、切换混合、分区混合、分层混合。
6.基于人口统计信息的推荐 结合热门榜单可以进一步做个性化推荐,如手机的操作系统,城市位置,常用wifi 还是4G。每一项都有统计意义,性别-关联电视剧表,年龄-关联电视剧表,职业-关联电视剧表,根据权重相互叠加可以推荐列表。人口统计学越多,越能准确的预测用户的兴趣。 7.基于模型的推荐 机器学习的方式训练用户喜好的模型。技术驱动方向。基于一些反馈数据。
二、推荐算法程序架构
三、如何判断一个推荐系统做得好不好
- 获得反馈并一直迭代