工程架构方向的程序员,看到介绍/搜查/广告等和算法关系的技术,心中或多或少有一丝胆大。但仔细钻研之后,发现其实没有这么难。
当天给大家引见下介绍系统中的“协同过滤”,绝无任何公式,保障大伙弄懂。
什么是协同过滤(Collaborative Filtering)?
答:经过找到兴味相投,或许有独特阅历的个体,来向用户介绍感兴味的消息。
举例,如何协同过滤,来对用户A启动电影介绍?
答:简明步骤如下:
(1)找到用户A(user_id_1)的兴味喜好;
(2)找到与用户A(user_id_1)具有相反电影兴味喜好的用户个体汇合Set
(3)找到该个体喜欢的电影汇合Set
(4)将这些电影Set
详细实施步骤如何?
答:简明步骤如下:
(1)画一个大表格,横坐标是一切的movie_id,纵坐标一切的user_id,交叉处代表这个用户喜欢这部电影;
如上表:
画外音:什么是“喜欢”,须要人为定义,例如阅读过,查找过,点赞过,反正日志里有这些数据。
(2)找到用户A(user_id_1)的兴味喜好;
如上表,可以看到,用户A喜欢电影{m1, m2, m3}
(3)找到与用户A(user_id_1)具有相反电影兴味喜好的用户个体汇合Set<user_id>
如上表,可以看到,喜欢{m1, m2, m3}的用户,除了u1,还有{u2, u3}
(4)找到该个体喜欢的电影汇合Set<user_id>
如上表,具有相反喜好的用户群里{u2, u3},还喜好的电影汇合是{m4, m5}
画外音:“协同”就体如今这里。
(5)未来用户A(use_id_1)来访问网站时,要介绍电影{m4, m5}给ta。
协同过滤大抵原理如上,宿愿大家有收获。
戳这里,看该作者更多好文
© 版权声明