工程架构方向的程序员,看到推荐/搜索/广告等算法相关的技术,或多或少都会有些胆怯。但是仔细研究之后,我发现其实并没有那么难。今天给大家介绍一下推荐系统中的“协同过滤”。绝对没有公式,所以大家可以理解。什么是协同过滤(CollaborativeFiltering)?答:通过寻找具有相似兴趣或共同经历的群体,我们可以向用户推荐他们感兴趣的信息。比如如何利用协同过滤向用户A推荐电影?答:简要步骤如下:(1)找到用户A(user_id_1)的兴趣爱好;(2)找到与用户A(user_id_1)有相同电影爱好的用户组集合;(3)找到小组喜欢的电影集;(4)将这些电影集推荐给用户A(user_id_1);具体实施步骤是什么?答:简单步骤如下:(1)画一个大表格,横坐标全是movie_ids,纵坐标全是user_ids,交点代表用户最喜欢的电影;如上表所示:横坐标,假设有10w部电影,那么横坐标就有10w个movie_id,数据来自数据库纵坐标,假设有100w个用户,那么纵坐标就有100w个user_id,而数据也来自数据库的交集。“1”表示用户喜欢这部电影,数据来自日志画外音:什么是“喜欢”,需要手动定义,比如浏览过,搜索过喜欢过,反正里面有这些数据日志。(2)找到用户A(user_id_1)的兴趣爱好;如上表所示,可以看到用户A喜欢的电影{m1,m2,m3}(3)找到与用户A(user_id_1)有相同电影兴趣的用户组集合Set
