工程架构的程序员,看到推荐/搜索/广告等算法相关技术,内心或多或少会感到胆怯。但是仔细研究之后,我发现其实并没有那么难。在今天的1分钟系列中,我将向大家介绍推荐系统中的“协同过滤”。绝对没有公式,所以大家可以理解。什么是协同过滤(CollaborativeFiltering)?答:通过寻找具有相似兴趣或共同经历的群体,我们可以向用户推荐他们感兴趣的信息。比如如何利用协同过滤向用户A推荐电影?答:简要步骤如下:找到用户A(user_id_1)的兴趣爱好找到一组与用户A(user_id_1)有相同电影爱好的用户群找到这个群的最爱电影收藏集如何推荐这些电影集给用户A(user_id_1)?答:简要步骤如下(1)画一个大表格,横坐标都是movie_id,纵坐标都是user_id,交点代表这个用户喜欢这部电影如上表:横坐标,假设有10w部电影,所以横坐标上有10w个movie_id,数据纵坐标来自数据库,假设有100w个用户,那么纵坐标上有100w个user_id,数据也来自数据库cross这里,“1”表示用户喜欢这部电影。数据来自日志画外音:什么是“喜欢”,需要手动定义,比如浏览过、搜索过、喜欢过。反正日志里有这些数据(2)找到用户A(user_id_1)的兴趣爱好如上表所示。可见用户A喜欢电影{m1,m2,m3}(3)如上表所示,找到与用户A(user_id_1)有相同电影爱好的用户组集合Set。可以看到,喜欢{m1,m2,m3}的用户,除了u1,还有{u2,u3}(4)找到这个组喜欢的电影集合。最喜欢的电影集是{m4,m5}画外音:“Synergy”来了。(5)用户A(use_id_1)以后访问该网站时,向ta推荐电影{m4,m5}。【本文为专栏作者《58神剑》原创稿件,转载请联系原作者】点此阅读更多该作者好文
